@elementor/editor-app-bar 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ## [0.2.1](https://github.com/elementor/elementor-packages/compare/v0.2.0...v0.2.1) (2023-05-11)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **editor-app-bar:** make save options button disabled in site-settings [ED-10221] ([#30](https://github.com/elementor/elementor-packages/issues/30)) ([1991096](https://github.com/elementor/elementor-packages/commit/1991096115efeae7bc3648e4889899b85d7328d6))
package/dist/index.js CHANGED
@@ -453,7 +453,7 @@ function AppBar() {
453
453
  }
454
454
 
455
455
  // src/init.ts
456
- var import_editor3 = require("@elementor/editor");
456
+ var import_editor2 = require("@elementor/editor");
457
457
 
458
458
  // src/sync/redirect-old-menus.ts
459
459
  var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
@@ -641,7 +641,16 @@ function PrimaryAction() {
641
641
  }
642
642
  }
643
643
  },
644
- /* @__PURE__ */ React22.createElement(import_ui13.Button, { sx: { px: 0 }, ...(0, import_ui13.bindTrigger)(popupState) }, /* @__PURE__ */ React22.createElement(import_icons7.ChevronDownIcon, null))
644
+ /* @__PURE__ */ React22.createElement(import_ui13.Box, { component: "span", "aria-label": void 0 }, /* @__PURE__ */ React22.createElement(
645
+ import_ui13.Button,
646
+ {
647
+ ...(0, import_ui13.bindTrigger)(popupState),
648
+ sx: { px: 0 },
649
+ disabled: document2.type.value === "kit",
650
+ "aria-label": (0, import_i18n7.__)("Save Options", "elementor")
651
+ },
652
+ /* @__PURE__ */ React22.createElement(import_icons7.ChevronDownIcon, null)
653
+ ))
645
654
  )), /* @__PURE__ */ React22.createElement(PrimaryActionMenu, { ...(0, import_ui13.bindMenu)(popupState), onClick: popupState.close }));
646
655
  }
647
656
  function getLabel(document2) {
@@ -985,22 +994,30 @@ function init12() {
985
994
  });
986
995
  }
987
996
 
997
+ // src/env.ts
998
+ var import_env = require("@elementor/env");
999
+ var { env, validateEnv } = (0, import_env.parseEnv)("@elementor/editor-app-bar", (envData) => {
1000
+ if (!isValid(envData)) {
1001
+ throw new import_env.InvalidEnvError("Invalid admin URL");
1002
+ }
1003
+ return envData;
1004
+ });
1005
+ function isValid(subject) {
1006
+ return "admin_url" in subject && typeof subject.admin_url === "string";
1007
+ }
1008
+
988
1009
  // src/extensions/wordpress/index.ts
989
- var import_editor2 = require("@elementor/editor");
990
1010
  var import_i18n19 = require("@wordpress/i18n");
991
1011
  var import_icons17 = require("@elementor/icons");
992
1012
  function init13() {
993
1013
  mainMenu.registerLink({
994
1014
  name: "manage-website",
995
1015
  group: "exits",
996
- useProps: () => {
997
- const { urls } = (0, import_editor2.useSettings)();
998
- return {
999
- title: (0, import_i18n19.__)("Manage Website", "elementor"),
1000
- href: urls.admin,
1001
- icon: import_icons17.WordpressIcon,
1002
- target: "_blank"
1003
- };
1016
+ props: {
1017
+ title: (0, import_i18n19.__)("Manage Website", "elementor"),
1018
+ href: env.admin_url,
1019
+ icon: import_icons17.WordpressIcon,
1020
+ target: "_blank"
1004
1021
  }
1005
1022
  });
1006
1023
  }
@@ -1024,9 +1041,10 @@ function init14() {
1024
1041
 
1025
1042
  // src/init.ts
1026
1043
  function init15() {
1044
+ validateEnv();
1027
1045
  redirectOldMenus();
1028
1046
  init14();
1029
- (0, import_editor3.injectIntoTop)({
1047
+ (0, import_editor2.injectIntoTop)({
1030
1048
  name: "app-bar",
1031
1049
  filler: AppBar
1032
1050
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/locations/menus.tsx","../src/components/actions/action.tsx","../src/contexts/menu-context.tsx","../src/components/ui/toolbar-menu-item.tsx","../src/components/ui/popover-menu-item.tsx","../src/components/actions/toggle-action.tsx","../src/components/ui/toolbar-menu-toggle-item.tsx","../src/components/actions/link.tsx","../src/locations/index.ts","../src/locations/consts.ts","../src/components/app-bar.tsx","../src/components/locations/main-menu-location.tsx","../src/components/ui/popover-menu.tsx","../src/components/ui/toolbar-logo.tsx","../src/components/locations/tools-menu-location.tsx","../src/components/ui/toolbar-menu.tsx","../src/components/ui/toolbar-menu-more.tsx","../src/components/locations/utilities-menu-location.tsx","../src/components/locations/primary-action-location.tsx","../src/components/locations/page-indication-location.tsx","../src/components/locations/responsive-location.tsx","../src/init.ts","../src/sync/redirect-old-menus.ts","../src/extensions/documents-indicator/components/settings-button.tsx","../src/extensions/documents-indicator/index.ts","../src/extensions/documents-preview/hooks/use-action-props.ts","../src/extensions/documents-preview/index.ts","../src/extensions/documents-save/hooks/use-document-save-draft-props.ts","../src/extensions/documents-save/hooks/use-document-save-template-props.ts","../src/extensions/documents-save/components/primary-action.tsx","../src/extensions/documents-save/components/primary-action-menu.tsx","../src/extensions/documents-save/index.ts","../src/extensions/elements/sync/sync-panel-title.ts","../src/extensions/elements/hooks/use-action-props.ts","../src/extensions/elements/index.ts","../src/extensions/finder/hooks/use-action-props.ts","../src/extensions/finder/index.ts","../src/extensions/help/index.ts","../src/extensions/history/hooks/use-action-props.ts","../src/extensions/history/index.ts","../src/extensions/keyboard-shortcuts/hooks/use-action-props.ts","../src/extensions/keyboard-shortcuts/index.ts","../src/extensions/site-settings/index.ts","../src/extensions/site-settings/components/portalled-primary-action.tsx","../src/extensions/site-settings/components/portal.tsx","../src/extensions/site-settings/components/primary-action.tsx","../src/extensions/site-settings/hooks/use-action-props.ts","../src/extensions/structure/hooks/use-action-props.ts","../src/extensions/structure/index.ts","../src/extensions/theme-builder/hooks/use-action-props.ts","../src/extensions/theme-builder/index.ts","../src/extensions/user-preferences/hooks/use-action-props.ts","../src/extensions/user-preferences/index.ts","../src/extensions/wordpress/index.ts","../src/extensions/index.ts"],"sourcesContent":["export {\n\tmainMenu,\n\ttoolsMenu,\n\tutilitiesMenu,\n\tdocumentOptionsMenu,\n\tinjectIntoPageIndication,\n\tinjectIntoResponsive,\n\tinjectIntoPrimaryAction,\n} from './locations/index';\n\nimport init from './init';\n\ninit();\n","import * as React from 'react';\nimport { ComponentPropsWithoutRef, ElementType, useMemo } from 'react';\nimport { inject, useInjectionsOf } from '@elementor/locations';\nimport Action from '../components/actions/action';\nimport ToggleAction from '../components/actions/toggle-action';\nimport Link from '../components/actions/link';\n\ntype MenuName = string;\ntype GroupName = string;\n\ntype Menu<TGroup extends GroupName = 'default'> = {\n\tname: MenuName,\n\tgroups: TGroup[],\n};\n\ntype MenuWithOptionalGroups<TGroup extends GroupName> = Omit<Menu<TGroup>, 'groups'> & { groups?: TGroup[] };\n\ntype MenuGroup<TGroup extends GroupName> = TGroup | 'default';\n\ntype GroupedItems<TGroup extends GroupName> = Record<MenuGroup<TGroup>, Array<{ id: string, MenuItem: ElementType }>>;\n\ntype MenuItem<\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n> = {\n\tname: string,\n\tgroup?: TGroup,\n\tpriority?: number,\n\toverwrite?: boolean,\n} & (\n\t{ props: ComponentPropsWithoutRef<TComponent>, useProps?: never } |\n\t{ useProps: () => ComponentPropsWithoutRef<TComponent>, props?: never }\n)\n\nexport function createMenu<TGroup extends GroupName = 'default'>( { name: menuName, groups = [] }: MenuWithOptionalGroups<TGroup> ) {\n\tconst menuGroups: MenuGroup<TGroup>[] = [\n\t\t...groups,\n\t\t'default' as const,\n\t];\n\n\tconst registerAction = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: Action,\n\t} );\n\n\tconst registerToggleAction = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: ToggleAction,\n\t} );\n\n\tconst registerLink = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: Link,\n\t} );\n\n\tconst useMenuItems = createUseMenuItems( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t} );\n\n\treturn {\n\t\tregisterAction,\n\t\tregisterToggleAction,\n\t\tregisterLink,\n\t\tuseMenuItems,\n\t};\n}\n\nfunction createRegisterMenuItem<\n\tTMenuName extends MenuName,\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n>( { menuName, menuGroups, component }: {\n\tmenuName: TMenuName,\n\tmenuGroups: MenuGroup<TGroup>[],\n\tcomponent: TComponent,\n} ) {\n\treturn ( { group = 'default', name, overwrite, priority, ...args }: MenuItem<MenuGroup<TGroup>, TComponent> ) => {\n\t\tif ( ! menuGroups.includes( group ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst useProps = 'props' in args ? () => args.props : args.useProps;\n\n\t\tconst Component = component as ElementType;\n\n\t\tconst Filler = ( props: object ) => {\n\t\t\tconst componentProps = useProps();\n\n\t\t\treturn <Component { ...props } { ...componentProps } />;\n\t\t};\n\n\t\tconst location = getMenuLocationId( menuName, group );\n\n\t\tinject( {\n\t\t\tlocation,\n\t\t\tname,\n\t\t\tfiller: Filler,\n\t\t\toptions: {\n\t\t\t\tpriority,\n\t\t\t\toverwrite,\n\t\t\t},\n\t\t} );\n\t};\n}\n\nfunction createUseMenuItems<\n\tTMenuName extends MenuName,\n\tTGroup extends GroupName,\n>( { menuName, menuGroups }: {\n\tmenuName: TMenuName,\n\tmenuGroups: MenuGroup<TGroup>[],\n} ) {\n\tconst locations = menuGroups.map( ( group ) => getMenuLocationId( menuName, group ) );\n\n\treturn () => {\n\t\tconst injectionsGroups = useInjectionsOf( locations );\n\n\t\t// Normalize the injections groups to an object with the groups as keys.\n\t\treturn useMemo( () => {\n\t\t\treturn injectionsGroups.reduce<GroupedItems<TGroup>>( ( acc, injections, index ) => {\n\t\t\t\tconst groupName = menuGroups[ index ];\n\n\t\t\t\treturn {\n\t\t\t\t\t...acc,\n\t\t\t\t\t[ groupName ]: injections.map( ( injection ) => ( {\n\t\t\t\t\t\tid: injection.id,\n\t\t\t\t\t\tMenuItem: injection.filler,\n\t\t\t\t\t} ) ),\n\t\t\t\t};\n\t\t\t}, {} as GroupedItems<TGroup> );\n\t\t}, [ injectionsGroups ] );\n\t};\n}\n\nfunction getMenuLocationId( menu: MenuName, group: GroupName ) {\n\treturn `editor/app-bar/${ menu }/${ group }` as const;\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport ToolbarMenuItem from '../ui/toolbar-menu-item';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\tdisabled?: boolean;\n\tvisible?: boolean;\n\tonClick?: () => void;\n};\n\nexport default function Action( { icon: Icon, title, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuItem title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import * as React from 'react';\nimport { createContext, PropsWithChildren, useContext } from 'react';\n\ntype MenuContextValue = {\n\ttype: 'toolbar' | 'popover';\n}\n\nconst MenuContext = createContext<MenuContextValue>( { type: 'toolbar' } );\n\nexport function MenuContextProvider( { type, children }: PropsWithChildren<MenuContextValue> ) {\n\treturn (\n\t\t<MenuContext.Provider value={ { type } }>\n\t\t\t{ children }\n\t\t</MenuContext.Provider>\n\t);\n}\n\nexport function useMenuContext() {\n\treturn useContext( MenuContext );\n}\n","import * as React from 'react';\nimport { Box, IconButton, IconButtonProps, Tooltip } from '@elementor/ui';\n\nexport type ToolbarMenuItemProps = IconButtonProps & {\n\ttitle?: string;\n\tselected?: boolean;\n}\n\nexport default function ToolbarMenuItem( { title, ...props }: ToolbarMenuItemProps ) {\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<IconButton { ...props } aria-label={ title } size=\"small\" />\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport {\n\tMenuItem,\n\tMenuItemProps,\n\tListItemText,\n\tListItemIcon,\n\twithDirection,\n} from '@elementor/ui';\nimport { ArrowUpRightIcon } from '@elementor/icons';\n\ntype ExtraProps = {\n\thref?: string;\n\ttarget?: string;\n\ttext?: string;\n\ticon?: JSX.Element;\n}\n\nexport type PopoverMenuItemProps = MenuItemProps & ExtraProps;\n\nconst DirectionalArrowIcon = withDirection( ArrowUpRightIcon );\n\nexport default function PopoverMenuItem( { text, icon, onClick, href, target, disabled, ...props }: PopoverMenuItemProps ) {\n\tconst isExternalLink = href && target === '_blank';\n\n\treturn (\n\t\t<MenuItem\n\t\t\t{ ...props }\n\t\t\tdisabled={ disabled }\n\t\t\tonClick={ onClick }\n\t\t\tcomponent={ href ? 'a' : 'div' }\n\t\t\thref={ href }\n\t\t\ttarget={ target }\n\t\t>\n\t\t\t<ListItemIcon>{ icon }</ListItemIcon>\n\t\t\t<ListItemText primary={ text } />\n\t\t\t{ isExternalLink && <DirectionalArrowIcon /> }\n\t\t</MenuItem>\n\t);\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport ToolbarMenuToggleItem from '../ui/toolbar-menu-toggle-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\tselected?: boolean;\n\tdisabled?: boolean;\n\tvisible?: boolean;\n\tonClick?: () => void;\n\tvalue?: string;\n};\n\nexport default function ToggleAction( { icon: Icon, title, value, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuToggleItem value={ value || title } title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuToggleItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import * as React from 'react';\nimport { Box, ToggleButton, ToggleButtonProps, Tooltip } from '@elementor/ui';\n\nexport type ToolbarMenuToggleItemProps = Omit<ToggleButtonProps, 'onChange'> & {\n\ttitle?: string;\n\tonClick?: () => void;\n}\n\nexport default function ToolbarMenuToggleItem( { title, onClick, ...props }: ToolbarMenuToggleItemProps ) {\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<ToggleButton { ...props } onChange={ onClick } aria-label={ title } size=\"small\" />\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport ToolbarMenuItem from '../ui/toolbar-menu-item';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\thref?: string;\n\tvisible?: boolean;\n\ttarget?: string;\n}\n\nexport default function Link( { icon: Icon, title, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuItem title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import { createMenu } from './menus';\nimport { createInjectorFor } from '@elementor/locations';\nimport { LOCATION_PAGE_INDICATION, LOCATION_PRIMARY_ACTION, LOCATION_RESPONSIVE } from './consts';\n\nexport * from './consts';\n\nexport { createMenu } from './menus';\n\nexport const injectIntoPageIndication = createInjectorFor( LOCATION_PAGE_INDICATION );\nexport const injectIntoResponsive = createInjectorFor( LOCATION_RESPONSIVE );\nexport const injectIntoPrimaryAction = createInjectorFor( LOCATION_PRIMARY_ACTION );\n\nexport const mainMenu = createMenu( {\n\tname: 'main',\n\tgroups: [ 'exits' ],\n} );\n\nexport const toolsMenu = createMenu( {\n\tname: 'tools',\n} );\n\nexport const utilitiesMenu = createMenu( {\n\tname: 'utilities',\n} );\n\nexport const documentOptionsMenu = createMenu( {\n\tname: 'document-options',\n\tgroups: [ 'save' ],\n} );\n","// Locations\nexport const LOCATION_PAGE_INDICATION = 'editor/app-bar/page-indication' as const;\nexport const LOCATION_RESPONSIVE = 'editor/app-bar/responsive' as const;\nexport const LOCATION_PRIMARY_ACTION = 'editor/app-bar/primary-action' as const;\n","import * as React from 'react';\nimport { AppBar as BaseAppBar, Box, Divider, Grid, ThemeProvider } from '@elementor/ui';\nimport MainMenuLocation from './locations/main-menu-location';\nimport ToolsMenuLocation from './locations/tools-menu-location';\nimport UtilitiesMenuLocation from './locations/utilities-menu-location';\nimport PrimaryActionLocation from './locations/primary-action-location';\nimport ToolbarMenu from './ui/toolbar-menu';\nimport PageIndicationLocation from './locations/page-indication-location';\nimport ResponsiveLocation from './locations/responsive-location';\n\nexport default function AppBar() {\n\treturn (\n\t\t<ThemeProvider colorScheme=\"dark\">\n\t\t\t<BaseAppBar position=\"sticky\">\n\t\t\t\t<Box display=\"grid\" gridTemplateColumns=\"repeat(3, 1fr)\">\n\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t<MainMenuLocation />\n\t\t\t\t\t\t<ToolsMenuLocation />\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"center\">\n\t\t\t\t\t\t<ToolbarMenu spacing={ 3 }>\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t\t<PageIndicationLocation />\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t\t<ResponsiveLocation />\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t</ToolbarMenu>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"flex-end\">\n\t\t\t\t\t\t<UtilitiesMenuLocation />\n\t\t\t\t\t\t<PrimaryActionLocation />\n\t\t\t\t\t</Grid>\n\t\t\t\t</Box>\n\t\t\t</BaseAppBar>\n\t\t</ThemeProvider>\n\t);\n}\n","import * as React from 'react';\nimport { usePopupState, bindMenu, bindTrigger, Stack, Divider } from '@elementor/ui';\nimport { mainMenu } from '../../locations';\nimport PopoverMenu from '../ui/popover-menu';\nimport ToolbarLogo from '../ui/toolbar-logo';\n\nconst { useMenuItems } = mainMenu;\n\nexport default function MainMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst orderedGroups = [\n\t\tmenuItems.default,\n\t\tmenuItems.exits,\n\t];\n\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: 'elementor-v2-app-bar-main-menu',\n\t} );\n\n\treturn (\n\t\t<Stack sx={ { paddingInlineStart: 4 } } direction=\"row\" alignItems=\"center\">\n\t\t\t<ToolbarLogo\n\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\tselected={ popupState.isOpen }\n\t\t\t/>\n\t\t\t<PopoverMenu\n\t\t\t\tonClick={ popupState.close }\n\t\t\t\t{ ...bindMenu( popupState ) }\n\t\t\t\tPaperProps={ {\n\t\t\t\t\tsx: { mt: 4, marginInlineStart: -2 },\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\torderedGroups\n\t\t\t\t\t\t.filter( ( group ) => group.length )\n\t\t\t\t\t\t.map( ( group, index ) => {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tindex > 0 ? <Divider key={ index } orientation=\"horizontal\" /> : null,\n\t\t\t\t\t\t\t\t...group.map(\n\t\t\t\t\t\t\t\t\t( { MenuItem, id } ) => <MenuItem key={ id } />\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t</PopoverMenu>\n\t\t</Stack>\n\t);\n}\n","import * as React from 'react';\nimport { Menu, MenuProps } from '@elementor/ui';\nimport { MenuContextProvider } from '../../contexts/menu-context';\n\nexport type PopoverMenuProps = MenuProps;\n\nexport default function PopoverMenu( { children, ...props }: PopoverMenuProps ) {\n\treturn (\n\t\t<MenuContextProvider type={ 'popover' }>\n\t\t\t<Menu\n\t\t\t\tPaperProps={ {\n\t\t\t\t\tsx: { mt: 4 },\n\t\t\t\t} }\n\t\t\t\t{ ...props }\n\t\t\t\tMenuListProps={ {\n\t\t\t\t\tcomponent: 'div',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Menu>\n\t\t</MenuContextProvider>\n\t);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { __ } from '@wordpress/i18n';\nimport { ToggleButton, ToggleButtonProps, SvgIconProps, SvgIcon, styled } from '@elementor/ui';\n\ninterface StyledElementorLogoProps extends SvgIconProps {\n\tshowMenuIcon?: boolean;\n}\n\ntype ToolbarLogoProps = Omit<ToggleButtonProps, 'value'>;\n\nconst ElementorLogo = ( props: SvgIconProps ) => {\n\treturn (\n\t\t<SvgIcon viewBox=\"0 0 32 32\" { ...props }>\n\t\t\t<g>\n\t\t\t\t<circle cx=\"16\" cy=\"16\" r=\"16\" />\n\t\t\t\t<path d=\"M11.7 9H9V22.3H11.7V9Z\" />\n\t\t\t\t<path d=\"M22.4 9H9V11.7H22.4V9Z\" />\n\t\t\t\t<path d=\"M22.4 14.4004H9V17.1004H22.4V14.4004Z\" />\n\t\t\t\t<path d=\"M22.4 19.6992H9V22.3992H22.4V19.6992Z\" />\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n\nconst StyledToggleButton = styled( ToggleButton )( () => ( {\n\tpadding: 0,\n\t'&.MuiToggleButton-root:hover': {\n\t\tbackgroundColor: 'initial',\n\t},\n\t'&.MuiToggleButton-root.Mui-selected': {\n\t\tbackgroundColor: 'initial',\n\t},\n} ) );\n\nconst StyledElementorLogo = styled( ElementorLogo, {\n\tshouldForwardProp: ( prop ) => prop !== 'showMenuIcon',\n} )<StyledElementorLogoProps>( ( { theme, showMenuIcon } ) => ( {\n\twidth: 'auto',\n\theight: '100%',\n\t'& path': {\n\t\tfill: 'initial',\n\t\ttransition: 'all 0.2s linear',\n\t\ttransformOrigin: 'bottom left',\n\t\t'&:first-of-type': {\n\t\t\ttransitionDelay: ! showMenuIcon && '0.2s',\n\t\t\ttransform: showMenuIcon && 'translateY(-9px) scaleY(0)',\n\t\t},\n\t\t'&:not(:first-of-type)': {\n\t\t\t// Emotion automatically change 4 to -4 in RTL moode.\n\t\t\ttransform: ! showMenuIcon && `translateX(${ theme.direction === 'rtl' ? '4' : '9' }px) scaleX(0.6)`,\n\t\t},\n\t\t'&:nth-of-type(2)': {\n\t\t\ttransitionDelay: showMenuIcon ? '0' : '0.2s',\n\t\t},\n\t\t'&:nth-of-type(3)': {\n\t\t\ttransitionDelay: '0.1s',\n\t\t},\n\t\t'&:nth-of-type(4)': {\n\t\t\ttransitionDelay: showMenuIcon ? '0.2s' : '0',\n\t\t},\n\t},\n} ) );\n\nexport default function ToolbarLogo( props: ToolbarLogoProps ) {\n\tconst [ isHoverState, setIsHoverState ] = useState( false );\n\tconst showMenuIcon = props.selected || isHoverState;\n\n\treturn (\n\t\t<StyledToggleButton\n\t\t\t{ ...props }\n\t\t\tvalue=\"selected\"\n\t\t\tsize=\"small\"\n\t\t\tonMouseEnter={ () => setIsHoverState( true ) }\n\t\t\tonMouseLeave={ () => setIsHoverState( false ) }\n\t\t>\n\t\t\t<StyledElementorLogo titleAccess={ __( 'Elementor Logo', 'elementor' ) } showMenuIcon={ showMenuIcon } />\n\t\t</StyledToggleButton>\n\t);\n}\n","import * as React from 'react';\nimport { toolsMenu } from '../../locations';\nimport ToolbarMenu from '../ui/toolbar-menu';\nimport ToolbarMenuMore from '../ui/toolbar-menu-more';\n\nconst MAX_TOOLBAR_ACTIONS = 5;\n\nconst { useMenuItems } = toolsMenu;\n\nexport default function ToolsMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst toolbarMenuItems = menuItems.default.slice( 0, MAX_TOOLBAR_ACTIONS );\n\tconst popoverMenuItems = menuItems.default.slice( MAX_TOOLBAR_ACTIONS );\n\n\treturn (\n\t\t<ToolbarMenu>\n\t\t\t{ toolbarMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t{ popoverMenuItems.length > 0 && (\n\t\t\t\t<ToolbarMenuMore id=\"elementor-editor-app-bar-tools-more\">\n\t\t\t\t\t{ popoverMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t\t</ToolbarMenuMore>\n\t\t\t) }\n\t\t</ToolbarMenu>\n\t);\n}\n","import * as React from 'react';\nimport { Stack, StackProps } from '@elementor/ui';\nimport { MenuContextProvider } from '../../contexts/menu-context';\n\nexport type ToolbarMenuProps = StackProps;\n\nexport default function ToolbarMenu( { children, ...props }: ToolbarMenuProps ) {\n\treturn (\n\t\t<MenuContextProvider type={ 'toolbar' }>\n\t\t\t<Stack sx={ { px: 4 } } spacing={ 4 } direction=\"row\" alignItems=\"center\" { ...props }>\n\t\t\t\t{ children }\n\t\t\t</Stack>\n\t\t</MenuContextProvider>\n\t);\n}\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { bindMenu, bindTrigger, usePopupState } from '@elementor/ui';\nimport ToolbarMenuItem from './toolbar-menu-item';\nimport { __ } from '@wordpress/i18n';\nimport { DotsVerticalIcon } from '@elementor/icons';\nimport PopoverMenu from './popover-menu';\n\nexport type ToolbarMenuMoreProps = PropsWithChildren<{\n\tid: string;\n}>\n\nexport default function ToolbarMenuMore( { children, id }: ToolbarMenuMoreProps ) {\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: id,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarMenuItem { ...bindTrigger( popupState ) } title={ __( 'More', 'elementor' ) }>\n\t\t\t\t<DotsVerticalIcon />\n\t\t\t</ToolbarMenuItem>\n\t\t\t<PopoverMenu onClick={ popupState.close } { ...bindMenu( popupState ) }>\n\t\t\t\t{ children }\n\t\t\t</PopoverMenu>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport { Fragment } from 'react';\nimport ToolbarMenu from '../ui/toolbar-menu';\nimport { utilitiesMenu } from '../../locations';\nimport { Divider } from '@elementor/ui';\nimport ToolbarMenuMore from '../ui/toolbar-menu-more';\n\nconst MAX_TOOLBAR_ACTIONS = 3;\n\nconst { useMenuItems } = utilitiesMenu;\n\nexport default function UtilitiesMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst toolbarMenuItems = menuItems.default.slice( 0, MAX_TOOLBAR_ACTIONS );\n\tconst popoverMenuItems = menuItems.default.slice( MAX_TOOLBAR_ACTIONS );\n\n\treturn (\n\t\t<ToolbarMenu>\n\t\t\t{ toolbarMenuItems.map(\n\t\t\t\t( { MenuItem, id }, index ) => (\n\t\t\t\t\t<Fragment key={ id }>\n\t\t\t\t\t\t{ index === 0 && <Divider orientation=\"vertical\" /> }\n\t\t\t\t\t\t<MenuItem />\n\t\t\t\t\t</Fragment>\n\t\t\t\t)\n\t\t\t) }\n\t\t\t{ popoverMenuItems.length > 0 && (\n\t\t\t\t<ToolbarMenuMore id=\"elementor-editor-app-bar-utilities-more\">\n\t\t\t\t\t{ popoverMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t\t</ToolbarMenuMore>\n\t\t\t) }\n\t\t</ToolbarMenu>\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_PRIMARY_ACTION } from '../../locations';\n\nexport default function PrimaryActionLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_PRIMARY_ACTION } />\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_PAGE_INDICATION } from '../../locations';\n\nexport default function PageIndicationLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_PAGE_INDICATION } />\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_RESPONSIVE } from '../../locations';\n\nexport default function ResponsiveLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_RESPONSIVE } />\n\t);\n}\n","import AppBar from './components/app-bar';\nimport { injectIntoTop } from '@elementor/editor';\nimport redirectOldMenus from './sync/redirect-old-menus';\nimport { init as initExtensions } from './extensions';\n\nexport default function init() {\n\tredirectOldMenus();\n\n\tinitExtensions();\n\n\tinjectIntoTop( {\n\t\tname: 'app-bar',\n\t\tfiller: AppBar,\n\t} );\n}\n","import { listenTo, openRoute, routeOpenEvent } from '@elementor/editor-v1-adapters';\n\nexport default function redirectOldMenus() {\n\t// Currently, in V1, when you click `esc` it opens the hamburger menu in the panel.\n\t// In V2, we don't have this panel, so we redirect the user to the elements panel instead.\n\tlistenTo( routeOpenEvent( 'panel/menu' ), () => {\n\t\topenRoute( 'panel/elements/categories' );\n\t} );\n}\n","import * as React from 'react';\nimport { Box, ToggleButton, Tooltip } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { SettingsIcon } from '@elementor/icons';\nimport { useActiveDocument, useHostDocument } from '@elementor/editor-documents';\n\nexport default function SettingsButton() {\n\tconst activeDocument = useActiveDocument();\n\tconst hostDocument = useHostDocument();\n\n\tconst document = activeDocument && activeDocument.type.value !== 'kit'\n\t\t? activeDocument\n\t\t: hostDocument;\n\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/page-settings' );\n\n\tif ( ! document ) {\n\t\treturn null;\n\t}\n\n\t/* translators: %s: Post type label. */\n\tconst title = __( '%s Settings', 'elementor' )\n\t\t.replace( '%s', document.type.label );\n\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<ToggleButton\n\t\t\t\t\tvalue=\"document-settings\"\n\t\t\t\t\tselected={ isActive }\n\t\t\t\t\tdisabled={ isBlocked }\n\t\t\t\t\tonChange={ () => openRoute( 'panel/page-settings/settings' ) }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<SettingsIcon />\n\t\t\t\t</ToggleButton>\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import { injectIntoPageIndication } from '../../locations';\nimport SettingsButton from './components/settings-button';\n\nexport function init() {\n\tinjectIntoPageIndication( {\n\t\tname: 'document-settings-button',\n\t\tfiller: SettingsButton,\n\t\toptions: {\n\t\t\tpriority: 20, // After document indicator.\n\t\t},\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { EyeIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\nimport { useActiveDocument } from '@elementor/editor-documents';\n\nexport default function useActionProps() {\n\tconst document = useActiveDocument();\n\n\treturn {\n\t\ticon: EyeIcon,\n\t\ttitle: __( 'Preview Changes', 'elementor' ),\n\t\tonClick: () => document && runCommand( 'editor/documents/preview', {\n\t\t\tid: document.id,\n\t\t\tforce: true,\n\t\t} ),\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useDocumentPreviewProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerAction( {\n\t\tname: 'document-preview-button',\n\t\tpriority: 30, // After help.\n\t\tuseProps: useDocumentPreviewProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { FileReportIcon } from '@elementor/icons';\nimport { useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\n\nexport default function useDocumentSaveDraftProps(): ActionProps {\n\tconst document = useActiveDocument();\n\tconst { saveDraft } = useActiveDocumentActions();\n\n\treturn {\n\t\ticon: FileReportIcon,\n\t\ttitle: __( 'Save Draft', 'elementor' ),\n\t\tonClick: saveDraft,\n\t\tdisabled: ! document || document.isSaving || document.isSavingDraft || ! document.isDirty,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { FolderIcon } from '@elementor/icons';\nimport { useActiveDocumentActions } from '@elementor/editor-documents';\n\nexport default function useDocumentSaveTemplateProps(): ActionProps {\n\tconst { saveTemplate } = useActiveDocumentActions();\n\n\treturn {\n\t\ticon: FolderIcon,\n\t\ttitle: __( 'Save as Template', 'elementor' ),\n\t\tonClick: saveTemplate,\n\t};\n}\n","import * as React from 'react';\nimport { __ } from '@wordpress/i18n';\nimport PrimaryActionMenu from './primary-action-menu';\nimport {\n\tbindMenu,\n\tbindTrigger,\n\tButton,\n\tButtonGroup,\n\tCircularProgress,\n\tTooltip,\n\tusePopupState,\n} from '@elementor/ui';\nimport { Document, useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\nimport { ChevronDownIcon } from '@elementor/icons';\n\nexport default function PrimaryAction() {\n\tconst document = useActiveDocument();\n\tconst { save } = useActiveDocumentActions();\n\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: 'document-save-options',\n\t} );\n\n\tif ( ! document ) {\n\t\treturn null;\n\t}\n\n\tconst isDisabled = ! isEnabled( document );\n\n\t// When the document is being saved, the spinner should not appear.\n\t// Usually happens when the Kit is being saved.\n\tconst shouldShowSpinner = document.isSaving && ! isDisabled;\n\n\treturn (\n\t\t<>\n\t\t\t<ButtonGroup size=\"large\" variant=\"contained\">\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ () => ! document.isSaving && save() }\n\t\t\t\t\tsx={ { width: '120px' } }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowSpinner ? <CircularProgress /> : getLabel( document ) }\n\t\t\t\t</Button>\n\n\t\t\t\t<Tooltip\n\t\t\t\t\ttitle={ __( 'Save Options', 'elementor' ) }\n\t\t\t\t\tPopperProps={ {\n\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\t\t\t\tmt: 3,\n\t\t\t\t\t\t\t\tmr: 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Button sx={ { px: 0 } } { ...bindTrigger( popupState ) }>\n\t\t\t\t\t\t<ChevronDownIcon />\n\t\t\t\t\t</Button>\n\t\t\t\t</Tooltip>\n\t\t\t</ButtonGroup>\n\t\t\t<PrimaryActionMenu { ...bindMenu( popupState ) } onClick={ popupState.close } />\n\t\t</>\n\t);\n}\n\nfunction getLabel( document: Document ) {\n\treturn document.userCan.publish\n\t\t? __( 'Publish', 'elementor' )\n\t\t: __( 'Submit', 'elementor' );\n}\n\nfunction isEnabled( document: Document ) {\n\tif ( document.type.value === 'kit' ) {\n\t\treturn false;\n\t}\n\n\treturn document.isDirty || document.status.value === 'draft';\n}\n","import * as React from 'react';\nimport { Divider, styled } from '@elementor/ui';\nimport { documentOptionsMenu } from '../../../locations';\nimport PopoverMenu, { PopoverMenuProps } from '../../../components/ui/popover-menu';\n\nconst { useMenuItems } = documentOptionsMenu;\n\n// CSS hack to hide dividers when a group is rendered empty (due to a limitation in our locations' mechanism).\n// It doesn't cover all the cases (i.e. when there are multiple dividers at the end), but it's good enough for our use-case.\nconst StyledPopoverMenu = styled( PopoverMenu )`\n\t& > .MuiPopover-paper > .MuiList-root > .MuiDivider-root {\n\t\t&:only-child, /* A divider is being rendered lonely */\n\t\t&:last-child, /* The last group renders empty but renders a divider */\n\t\t& + .MuiDivider-root /* Multiple dividers due to multiple empty groups */ {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n`;\n\nexport default function PrimaryActionMenu( props: PopoverMenuProps ) {\n\tconst { save: saveActions, default: defaultActions } = useMenuItems();\n\n\treturn (\n\t\t<StyledPopoverMenu\n\t\t\t{ ...props }\n\t\t\tanchorOrigin={ {\n\t\t\t\tvertical: 'bottom',\n\t\t\t\thorizontal: 'right',\n\t\t\t} }\n\t\t\ttransformOrigin={ {\n\t\t\t\tvertical: 'top',\n\t\t\t\thorizontal: 'right',\n\t\t\t} }\n\t\t\tPaperProps={ {\n\t\t\t\tsx: { mt: 2, ml: 3 },\n\t\t\t} }\n\t\t>\n\t\t\t{ saveActions.map( ( { MenuItem, id }, index ) => ( [\n\t\t\t\t( index > 0 ) && <Divider key={ `${ id }-divider` } />,\n\t\t\t\t<MenuItem key={ id } />,\n\t\t\t] ) ) }\n\n\t\t\t{ defaultActions.length > 0 && <Divider /> }\n\n\t\t\t{ defaultActions.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t</StyledPopoverMenu>\n\t);\n}\n","import { documentOptionsMenu, injectIntoPrimaryAction } from '../../locations';\nimport useDocumentSaveDraftProps from './hooks/use-document-save-draft-props';\nimport useDocumentSaveTemplateProps from './hooks/use-document-save-template-props';\nimport PrimaryAction from './components/primary-action';\n\nexport function init() {\n\tinjectIntoPrimaryAction( {\n\t\tname: 'document-primary-action',\n\t\tfiller: PrimaryAction,\n\t} );\n\n\t// Documents options menu.\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tname: 'document-save-draft',\n\t\tpriority: 10, // Before save as template.\n\t\tuseProps: useDocumentSaveDraftProps,\n\t} );\n\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tname: 'document-save-as-template',\n\t\tpriority: 20, // After save draft.\n\t\tuseProps: useDocumentSaveTemplateProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { isRouteActive, listenTo, routeOpenEvent, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\ntype ExtendedWindow = Window & {\n\telementor: {\n\t\tgetPanelView: () => {\n\t\t\tgetHeaderView: () => {\n\t\t\t\tsetTitle: ( title: string ) => void;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default function syncPanelTitle() {\n\tconst panelTitle = __( 'Elements', 'elementor' );\n\tconst tabTitle = __( 'Widgets', 'elementor' );\n\n\tlistenTo(\n\t\trouteOpenEvent( 'panel/elements' ),\n\t\t() => {\n\t\t\tsetPanelTitle( panelTitle );\n\t\t\tsetTabTitle( tabTitle );\n\t\t}\n\t);\n\n\tlistenTo(\n\t\tv1ReadyEvent(),\n\t\t() => {\n\t\t\tif ( isRouteActive( 'panel/elements' ) ) {\n\t\t\t\tsetPanelTitle( panelTitle );\n\t\t\t\tsetTabTitle( tabTitle );\n\t\t\t}\n\t\t}\n\t);\n}\n\nfunction setPanelTitle( title: string ) {\n\t( window as unknown as ExtendedWindow ).elementor?.getPanelView?.()?.getHeaderView?.()?.setTitle?.( title );\n}\n\nfunction setTabTitle( title: string ) {\n\tconst tab = document.querySelector( '.elementor-component-tab[data-tab=\"categories\"]' );\n\n\tif ( tab ) {\n\t\ttab.textContent = title;\n\t}\n}\n","import { PlusIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/elements' );\n\n\treturn {\n\t\ttitle: __( 'Add Element', 'elementor' ),\n\t\ticon: PlusIcon,\n\t\tonClick: () => openRoute( 'panel/elements/categories' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import syncPanelTitle from './sync/sync-panel-title';\nimport { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tsyncPanelTitle();\n\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'open-elements-panel',\n\t\tpriority: 1,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { SearchIcon } from '@elementor/icons';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'finder', {\n\t\tblockOnKitRoutes: false,\n\t\tblockOnPreviewMode: false,\n\t} );\n\n\treturn {\n\t\ttitle: __( 'Finder', 'elementor' ),\n\t\ticon: SearchIcon,\n\t\tonClick: () => runCommand( 'finder/toggle' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerToggleAction( {\n\t\tname: 'toggle-finder',\n\t\tpriority: 10, // Before help.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { utilitiesMenu } from '../../locations';\nimport { __ } from '@wordpress/i18n';\nimport { HelpIcon } from '@elementor/icons';\n\nexport function init() {\n\tutilitiesMenu.registerLink( {\n\t\tname: 'open-help-center',\n\t\tpriority: 20, // After Finder.\n\t\tuseProps: () => {\n\t\t\treturn {\n\t\t\t\ttitle: __( 'Help', 'elementor' ),\n\t\t\t\thref: 'https://go.elementor.com/editor-top-bar-learn/',\n\t\t\t\ticon: HelpIcon,\n\t\t\t\ttarget: '_blank',\n\t\t\t};\n\t\t},\n\t} );\n}\n","import { HistoryIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/history' );\n\n\treturn {\n\t\ttitle: __( 'History', 'elementor' ),\n\t\ticon: HistoryIcon,\n\t\tonClick: () => openRoute( 'panel/history/actions' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerToggleAction( {\n\t\tname: 'open-history',\n\t\tpriority: 20,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { KeyboardIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps(): ActionProps {\n\treturn {\n\t\ticon: KeyboardIcon,\n\t\ttitle: __( 'Keyboard Shortcuts', 'elementor' ),\n\t\tonClick: () => runCommand( 'shortcuts/open' ),\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerAction( {\n\t\tname: 'open-keyboard-shortcuts',\n\t\tgroup: 'default',\n\t\tpriority: 40, // After user preferences.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { injectIntoTop } from '@elementor/editor';\nimport PortalledPrimaryAction from './components/portalled-primary-action';\nimport { toolsMenu } from '../../locations/index';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\t// This is portal, so it injected into the top of the editor, but renders inside the site-settings panel.\n\tinjectIntoTop( {\n\t\tname: 'site-settings-primary-action-portal',\n\t\tfiller: PortalledPrimaryAction,\n\t} );\n\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'toggle-site-settings',\n\t\tpriority: 2,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import * as React from 'react';\nimport Portal from './portal';\nimport PrimaryAction from './primary-action';\n\nexport default function PortalledPrimaryAction() {\n\treturn (\n\t\t<Portal>\n\t\t\t<PrimaryAction />\n\t\t</Portal>\n\t);\n}\n","import * as React from 'react';\nimport { Portal as BasePortal, PortalProps } from '@elementor/ui';\nimport { isRouteActive, routeCloseEvent, routeOpenEvent, useListenTo } from '@elementor/editor-v1-adapters';\n\nexport default function Portal( props: Omit<PortalProps, 'container'> ) {\n\tconst containerRef = useListenTo(\n\t\t[\n\t\t\trouteOpenEvent( 'panel/global' ),\n\t\t\trouteCloseEvent( 'panel/global' ),\n\t\t],\n\t\tgetContainerRef\n\t);\n\n\tif ( ! containerRef.current ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BasePortal container={ containerRef.current } { ...props } />\n\t);\n}\n\nfunction getContainerRef() {\n\treturn isRouteActive( 'panel/global' )\n\t\t? { current: document.querySelector( '#elementor-panel-inner' ) }\n\t\t: { current: null };\n}\n","import * as React from 'react';\nimport { useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\nimport { Button, CircularProgress, Paper } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nexport default function PrimaryAction() {\n\tconst document = useActiveDocument();\n\tconst { save } = useActiveDocumentActions();\n\n\treturn (\n\t\t<Paper sx={ {\n\t\t\tpx: 5,\n\t\t\tpy: 4,\n\t\t\tborderTop: 1,\n\t\t\tborderColor: 'divider',\n\t\t} }>\n\t\t\t<Button\n\t\t\t\tvariant=\"contained\"\n\t\t\t\tdisabled={ ! document || ! document.isDirty }\n\t\t\t\tsize=\"medium\"\n\t\t\t\tsx={ { width: '100%' } }\n\t\t\t\tonClick={ () => document && ! document.isSaving ? save() : null }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\tdocument?.isSaving\n\t\t\t\t\t\t? <CircularProgress />\n\t\t\t\t\t\t: __( 'Save Changes', 'elementor' )\n\t\t\t\t}\n\t\t\t</Button>\n\t\t</Paper>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { ToggleActionProps } from '../../../types';\nimport { AdjustmentsHorizontalIcon } from '@elementor/icons';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/global', {\n\t\tblockOnKitRoutes: false,\n\t} );\n\n\treturn {\n\t\ttitle: __( 'Site Settings', 'elementor' ),\n\t\ticon: AdjustmentsHorizontalIcon,\n\t\tonClick: () => (\n\t\t\tisActive\n\t\t\t\t? runCommand( 'panel/global/close' )\n\t\t\t\t: runCommand( 'panel/global/open' )\n\t\t),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { StructureIcon } from '@elementor/icons';\nimport { ToggleActionProps } from '../../../types';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'navigator' );\n\n\treturn {\n\t\ttitle: __( 'Structure', 'elementor' ),\n\t\ticon: StructureIcon,\n\t\tonClick: () => runCommand( 'navigator/toggle' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'toggle-structure-view',\n\t\tpriority: 3,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ThemeBuilderIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\nimport { ActionProps } from '../../../types';\n\nexport default function useActionProps(): ActionProps {\n\treturn {\n\t\ticon: ThemeBuilderIcon,\n\t\ttitle: __( 'Theme Builder', 'elementor' ),\n\t\tonClick: () => runCommand( 'app/open' ),\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useThemeBuilderActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerAction( {\n\t\tname: 'open-theme-builder',\n\t\tuseProps: useThemeBuilderActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ToggleActionProps } from '../../../types';\nimport { ToggleRightIcon } from '@elementor/icons';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/editor-preferences' );\n\n\treturn {\n\t\ticon: ToggleRightIcon,\n\t\ttitle: __( 'User Preferences', 'elementor' ),\n\t\tonClick: () => openRoute( 'panel/editor-preferences' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerToggleAction( {\n\t\tname: 'open-user-preferences',\n\t\tpriority: 30, // After history.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { mainMenu } from '../../locations';\nimport { useSettings } from '@elementor/editor';\nimport { __ } from '@wordpress/i18n';\nimport { WordpressIcon } from '@elementor/icons';\n\nexport function init() {\n\tmainMenu.registerLink( {\n\t\tname: 'manage-website',\n\t\tgroup: 'exits',\n\t\tuseProps: () => {\n\t\t\tconst { urls } = useSettings();\n\n\t\t\treturn {\n\t\t\t\ttitle: __( 'Manage Website', 'elementor' ),\n\t\t\t\thref: urls.admin,\n\t\t\t\ticon: WordpressIcon,\n\t\t\t\ttarget: '_blank',\n\t\t\t};\n\t\t},\n\t} );\n}\n","/**\n * All the code in this directory is a temporary solution.\n * The code should be moved to the appropriate packages.\n */\n\nimport { init as initDocumentsIndicator } from './documents-indicator';\nimport { init as initDocumentsPreview } from './documents-preview';\nimport { init as initDocumentsSave } from './documents-save';\nimport { init as initElements } from './elements';\nimport { init as initFinder } from './finder';\nimport { init as initHelp } from './help';\nimport { init as initHistory } from './history';\nimport { init as initKeyboardShortcuts } from './keyboard-shortcuts';\nimport { init as initSiteSettings } from './site-settings';\nimport { init as initStructure } from './structure';\nimport { init as initThemeBuilder } from './theme-builder';\nimport { init as initUserPreferences } from './user-preferences';\nimport { init as initWordpress } from './wordpress';\n\nexport function init() {\n\tinitDocumentsIndicator();\n\tinitDocumentsPreview();\n\tinitDocumentsSave();\n\tinitElements();\n\tinitFinder();\n\tinitHelp();\n\tinitHistory();\n\tinitKeyboardShortcuts();\n\tinitSiteSettings();\n\tinitStructure();\n\tinitThemeBuilder();\n\tinitUserPreferences();\n\tinitWordpress();\n}\n"],"mappings":"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","names":["React","import_react","React","React","React","import_ui","React","React","import_ui","React","useMenuItems","import_locations","React","import_ui","React","import_ui","React","import_ui","React","import_react","import_ui","MenuItem","React","React","import_ui","React","import_ui","import_i18n","import_icons","useMenuItems","MenuItem","React","import_react","import_ui","MAX_TOOLBAR_ACTIONS","useMenuItems","MenuItem","React","import_locations","React","import_locations","React","import_locations","BaseAppBar","import_editor","React","import_ui","import_i18n","import_editor_v1_adapters","import_icons","document","import_i18n","import_icons","import_editor_v1_adapters","import_editor_documents","document","init","import_i18n","import_icons","import_editor_documents","document","import_i18n","import_icons","import_editor_documents","React","import_i18n","React","import_ui","useMenuItems","MenuItem","import_ui","import_editor_documents","import_icons","document","init","import_i18n","import_editor_v1_adapters","import_icons","import_i18n","import_editor_v1_adapters","useActionProps","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","init","useActionProps","import_i18n","import_icons","init","import_icons","import_i18n","import_editor_v1_adapters","useActionProps","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","init","useActionProps","React","React","import_ui","import_editor_v1_adapters","BasePortal","React","import_editor_documents","import_ui","import_i18n","PrimaryAction","document","PrimaryAction","import_i18n","import_editor_v1_adapters","import_icons","useActionProps","init","useActionProps","import_i18n","import_editor_v1_adapters","import_icons","useActionProps","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","init","useActionProps","import_editor","import_i18n","import_icons","init","init","init","init"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/locations/menus.tsx","../src/components/actions/action.tsx","../src/contexts/menu-context.tsx","../src/components/ui/toolbar-menu-item.tsx","../src/components/ui/popover-menu-item.tsx","../src/components/actions/toggle-action.tsx","../src/components/ui/toolbar-menu-toggle-item.tsx","../src/components/actions/link.tsx","../src/locations/index.ts","../src/locations/consts.ts","../src/components/app-bar.tsx","../src/components/locations/main-menu-location.tsx","../src/components/ui/popover-menu.tsx","../src/components/ui/toolbar-logo.tsx","../src/components/locations/tools-menu-location.tsx","../src/components/ui/toolbar-menu.tsx","../src/components/ui/toolbar-menu-more.tsx","../src/components/locations/utilities-menu-location.tsx","../src/components/locations/primary-action-location.tsx","../src/components/locations/page-indication-location.tsx","../src/components/locations/responsive-location.tsx","../src/init.ts","../src/sync/redirect-old-menus.ts","../src/extensions/documents-indicator/components/settings-button.tsx","../src/extensions/documents-indicator/index.ts","../src/extensions/documents-preview/hooks/use-action-props.ts","../src/extensions/documents-preview/index.ts","../src/extensions/documents-save/hooks/use-document-save-draft-props.ts","../src/extensions/documents-save/hooks/use-document-save-template-props.ts","../src/extensions/documents-save/components/primary-action.tsx","../src/extensions/documents-save/components/primary-action-menu.tsx","../src/extensions/documents-save/index.ts","../src/extensions/elements/sync/sync-panel-title.ts","../src/extensions/elements/hooks/use-action-props.ts","../src/extensions/elements/index.ts","../src/extensions/finder/hooks/use-action-props.ts","../src/extensions/finder/index.ts","../src/extensions/help/index.ts","../src/extensions/history/hooks/use-action-props.ts","../src/extensions/history/index.ts","../src/extensions/keyboard-shortcuts/hooks/use-action-props.ts","../src/extensions/keyboard-shortcuts/index.ts","../src/extensions/site-settings/index.ts","../src/extensions/site-settings/components/portalled-primary-action.tsx","../src/extensions/site-settings/components/portal.tsx","../src/extensions/site-settings/components/primary-action.tsx","../src/extensions/site-settings/hooks/use-action-props.ts","../src/extensions/structure/hooks/use-action-props.ts","../src/extensions/structure/index.ts","../src/extensions/theme-builder/hooks/use-action-props.ts","../src/extensions/theme-builder/index.ts","../src/extensions/user-preferences/hooks/use-action-props.ts","../src/extensions/user-preferences/index.ts","../src/env.ts","../src/extensions/wordpress/index.ts","../src/extensions/index.ts"],"sourcesContent":["export {\n\tmainMenu,\n\ttoolsMenu,\n\tutilitiesMenu,\n\tdocumentOptionsMenu,\n\tinjectIntoPageIndication,\n\tinjectIntoResponsive,\n\tinjectIntoPrimaryAction,\n} from './locations';\n\nimport init from './init';\n\ninit();\n","import * as React from 'react';\nimport { ComponentPropsWithoutRef, ElementType, useMemo } from 'react';\nimport { inject, useInjectionsOf } from '@elementor/locations';\nimport Action from '../components/actions/action';\nimport ToggleAction from '../components/actions/toggle-action';\nimport Link from '../components/actions/link';\n\ntype MenuName = string;\ntype GroupName = string;\n\ntype Menu<TGroup extends GroupName = 'default'> = {\n\tname: MenuName,\n\tgroups: TGroup[],\n};\n\ntype MenuWithOptionalGroups<TGroup extends GroupName> = Omit<Menu<TGroup>, 'groups'> & { groups?: TGroup[] };\n\ntype MenuGroup<TGroup extends GroupName> = TGroup | 'default';\n\ntype GroupedItems<TGroup extends GroupName> = Record<MenuGroup<TGroup>, Array<{ id: string, MenuItem: ElementType }>>;\n\ntype MenuItem<\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n> = {\n\tname: string,\n\tgroup?: TGroup,\n\tpriority?: number,\n\toverwrite?: boolean,\n} & (\n\t{ props: ComponentPropsWithoutRef<TComponent>, useProps?: never } |\n\t{ useProps: () => ComponentPropsWithoutRef<TComponent>, props?: never }\n)\n\nexport function createMenu<TGroup extends GroupName = 'default'>( { name: menuName, groups = [] }: MenuWithOptionalGroups<TGroup> ) {\n\tconst menuGroups: MenuGroup<TGroup>[] = [\n\t\t...groups,\n\t\t'default' as const,\n\t];\n\n\tconst registerAction = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: Action,\n\t} );\n\n\tconst registerToggleAction = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: ToggleAction,\n\t} );\n\n\tconst registerLink = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: Link,\n\t} );\n\n\tconst useMenuItems = createUseMenuItems( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t} );\n\n\treturn {\n\t\tregisterAction,\n\t\tregisterToggleAction,\n\t\tregisterLink,\n\t\tuseMenuItems,\n\t};\n}\n\nfunction createRegisterMenuItem<\n\tTMenuName extends MenuName,\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n>( { menuName, menuGroups, component }: {\n\tmenuName: TMenuName,\n\tmenuGroups: MenuGroup<TGroup>[],\n\tcomponent: TComponent,\n} ) {\n\treturn ( { group = 'default', name, overwrite, priority, ...args }: MenuItem<MenuGroup<TGroup>, TComponent> ) => {\n\t\tif ( ! menuGroups.includes( group ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst useProps = 'props' in args ? () => args.props : args.useProps;\n\n\t\tconst Component = component as ElementType;\n\n\t\tconst Filler = ( props: object ) => {\n\t\t\tconst componentProps = useProps();\n\n\t\t\treturn <Component { ...props } { ...componentProps } />;\n\t\t};\n\n\t\tconst location = getMenuLocationId( menuName, group );\n\n\t\tinject( {\n\t\t\tlocation,\n\t\t\tname,\n\t\t\tfiller: Filler,\n\t\t\toptions: {\n\t\t\t\tpriority,\n\t\t\t\toverwrite,\n\t\t\t},\n\t\t} );\n\t};\n}\n\nfunction createUseMenuItems<\n\tTMenuName extends MenuName,\n\tTGroup extends GroupName,\n>( { menuName, menuGroups }: {\n\tmenuName: TMenuName,\n\tmenuGroups: MenuGroup<TGroup>[],\n} ) {\n\tconst locations = menuGroups.map( ( group ) => getMenuLocationId( menuName, group ) );\n\n\treturn () => {\n\t\tconst injectionsGroups = useInjectionsOf( locations );\n\n\t\t// Normalize the injections groups to an object with the groups as keys.\n\t\treturn useMemo( () => {\n\t\t\treturn injectionsGroups.reduce<GroupedItems<TGroup>>( ( acc, injections, index ) => {\n\t\t\t\tconst groupName = menuGroups[ index ];\n\n\t\t\t\treturn {\n\t\t\t\t\t...acc,\n\t\t\t\t\t[ groupName ]: injections.map( ( injection ) => ( {\n\t\t\t\t\t\tid: injection.id,\n\t\t\t\t\t\tMenuItem: injection.filler,\n\t\t\t\t\t} ) ),\n\t\t\t\t};\n\t\t\t}, {} as GroupedItems<TGroup> );\n\t\t}, [ injectionsGroups ] );\n\t};\n}\n\nfunction getMenuLocationId( menu: MenuName, group: GroupName ) {\n\treturn `editor/app-bar/${ menu }/${ group }` as const;\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport ToolbarMenuItem from '../ui/toolbar-menu-item';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\tdisabled?: boolean;\n\tvisible?: boolean;\n\tonClick?: () => void;\n};\n\nexport default function Action( { icon: Icon, title, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuItem title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import * as React from 'react';\nimport { createContext, PropsWithChildren, useContext } from 'react';\n\ntype MenuContextValue = {\n\ttype: 'toolbar' | 'popover';\n}\n\nconst MenuContext = createContext<MenuContextValue>( { type: 'toolbar' } );\n\nexport function MenuContextProvider( { type, children }: PropsWithChildren<MenuContextValue> ) {\n\treturn (\n\t\t<MenuContext.Provider value={ { type } }>\n\t\t\t{ children }\n\t\t</MenuContext.Provider>\n\t);\n}\n\nexport function useMenuContext() {\n\treturn useContext( MenuContext );\n}\n","import * as React from 'react';\nimport { Box, IconButton, IconButtonProps, Tooltip } from '@elementor/ui';\n\nexport type ToolbarMenuItemProps = IconButtonProps & {\n\ttitle?: string;\n\tselected?: boolean;\n}\n\nexport default function ToolbarMenuItem( { title, ...props }: ToolbarMenuItemProps ) {\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<IconButton { ...props } aria-label={ title } size=\"small\" />\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport {\n\tMenuItem,\n\tMenuItemProps,\n\tListItemText,\n\tListItemIcon,\n\twithDirection,\n} from '@elementor/ui';\nimport { ArrowUpRightIcon } from '@elementor/icons';\n\ntype ExtraProps = {\n\thref?: string;\n\ttarget?: string;\n\ttext?: string;\n\ticon?: JSX.Element;\n}\n\nexport type PopoverMenuItemProps = MenuItemProps & ExtraProps;\n\nconst DirectionalArrowIcon = withDirection( ArrowUpRightIcon );\n\nexport default function PopoverMenuItem( { text, icon, onClick, href, target, disabled, ...props }: PopoverMenuItemProps ) {\n\tconst isExternalLink = href && target === '_blank';\n\n\treturn (\n\t\t<MenuItem\n\t\t\t{ ...props }\n\t\t\tdisabled={ disabled }\n\t\t\tonClick={ onClick }\n\t\t\tcomponent={ href ? 'a' : 'div' }\n\t\t\thref={ href }\n\t\t\ttarget={ target }\n\t\t>\n\t\t\t<ListItemIcon>{ icon }</ListItemIcon>\n\t\t\t<ListItemText primary={ text } />\n\t\t\t{ isExternalLink && <DirectionalArrowIcon /> }\n\t\t</MenuItem>\n\t);\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport ToolbarMenuToggleItem from '../ui/toolbar-menu-toggle-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\tselected?: boolean;\n\tdisabled?: boolean;\n\tvisible?: boolean;\n\tonClick?: () => void;\n\tvalue?: string;\n};\n\nexport default function ToggleAction( { icon: Icon, title, value, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuToggleItem value={ value || title } title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuToggleItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import * as React from 'react';\nimport { Box, ToggleButton, ToggleButtonProps, Tooltip } from '@elementor/ui';\n\nexport type ToolbarMenuToggleItemProps = Omit<ToggleButtonProps, 'onChange'> & {\n\ttitle?: string;\n\tonClick?: () => void;\n}\n\nexport default function ToolbarMenuToggleItem( { title, onClick, ...props }: ToolbarMenuToggleItemProps ) {\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<ToggleButton { ...props } onChange={ onClick } aria-label={ title } size=\"small\" />\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport ToolbarMenuItem from '../ui/toolbar-menu-item';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\thref?: string;\n\tvisible?: boolean;\n\ttarget?: string;\n}\n\nexport default function Link( { icon: Icon, title, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuItem title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import { createMenu } from './menus';\nimport { createInjectorFor } from '@elementor/locations';\nimport { LOCATION_PAGE_INDICATION, LOCATION_PRIMARY_ACTION, LOCATION_RESPONSIVE } from './consts';\n\nexport * from './consts';\n\nexport { createMenu } from './menus';\n\nexport const injectIntoPageIndication = createInjectorFor( LOCATION_PAGE_INDICATION );\nexport const injectIntoResponsive = createInjectorFor( LOCATION_RESPONSIVE );\nexport const injectIntoPrimaryAction = createInjectorFor( LOCATION_PRIMARY_ACTION );\n\nexport const mainMenu = createMenu( {\n\tname: 'main',\n\tgroups: [ 'exits' ],\n} );\n\nexport const toolsMenu = createMenu( {\n\tname: 'tools',\n} );\n\nexport const utilitiesMenu = createMenu( {\n\tname: 'utilities',\n} );\n\nexport const documentOptionsMenu = createMenu( {\n\tname: 'document-options',\n\tgroups: [ 'save' ],\n} );\n","// Locations\nexport const LOCATION_PAGE_INDICATION = 'editor/app-bar/page-indication' as const;\nexport const LOCATION_RESPONSIVE = 'editor/app-bar/responsive' as const;\nexport const LOCATION_PRIMARY_ACTION = 'editor/app-bar/primary-action' as const;\n","import * as React from 'react';\nimport { AppBar as BaseAppBar, Box, Divider, Grid, ThemeProvider } from '@elementor/ui';\nimport MainMenuLocation from './locations/main-menu-location';\nimport ToolsMenuLocation from './locations/tools-menu-location';\nimport UtilitiesMenuLocation from './locations/utilities-menu-location';\nimport PrimaryActionLocation from './locations/primary-action-location';\nimport ToolbarMenu from './ui/toolbar-menu';\nimport PageIndicationLocation from './locations/page-indication-location';\nimport ResponsiveLocation from './locations/responsive-location';\n\nexport default function AppBar() {\n\treturn (\n\t\t<ThemeProvider colorScheme=\"dark\">\n\t\t\t<BaseAppBar position=\"sticky\">\n\t\t\t\t<Box display=\"grid\" gridTemplateColumns=\"repeat(3, 1fr)\">\n\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t<MainMenuLocation />\n\t\t\t\t\t\t<ToolsMenuLocation />\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"center\">\n\t\t\t\t\t\t<ToolbarMenu spacing={ 3 }>\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t\t<PageIndicationLocation />\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t\t<ResponsiveLocation />\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t</ToolbarMenu>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"flex-end\">\n\t\t\t\t\t\t<UtilitiesMenuLocation />\n\t\t\t\t\t\t<PrimaryActionLocation />\n\t\t\t\t\t</Grid>\n\t\t\t\t</Box>\n\t\t\t</BaseAppBar>\n\t\t</ThemeProvider>\n\t);\n}\n","import * as React from 'react';\nimport { usePopupState, bindMenu, bindTrigger, Stack, Divider } from '@elementor/ui';\nimport { mainMenu } from '../../locations';\nimport PopoverMenu from '../ui/popover-menu';\nimport ToolbarLogo from '../ui/toolbar-logo';\n\nconst { useMenuItems } = mainMenu;\n\nexport default function MainMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst orderedGroups = [\n\t\tmenuItems.default,\n\t\tmenuItems.exits,\n\t];\n\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: 'elementor-v2-app-bar-main-menu',\n\t} );\n\n\treturn (\n\t\t<Stack sx={ { paddingInlineStart: 4 } } direction=\"row\" alignItems=\"center\">\n\t\t\t<ToolbarLogo\n\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\tselected={ popupState.isOpen }\n\t\t\t/>\n\t\t\t<PopoverMenu\n\t\t\t\tonClick={ popupState.close }\n\t\t\t\t{ ...bindMenu( popupState ) }\n\t\t\t\tPaperProps={ {\n\t\t\t\t\tsx: { mt: 4, marginInlineStart: -2 },\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\torderedGroups\n\t\t\t\t\t\t.filter( ( group ) => group.length )\n\t\t\t\t\t\t.map( ( group, index ) => {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tindex > 0 ? <Divider key={ index } orientation=\"horizontal\" /> : null,\n\t\t\t\t\t\t\t\t...group.map(\n\t\t\t\t\t\t\t\t\t( { MenuItem, id } ) => <MenuItem key={ id } />\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t</PopoverMenu>\n\t\t</Stack>\n\t);\n}\n","import * as React from 'react';\nimport { Menu, MenuProps } from '@elementor/ui';\nimport { MenuContextProvider } from '../../contexts/menu-context';\n\nexport type PopoverMenuProps = MenuProps;\n\nexport default function PopoverMenu( { children, ...props }: PopoverMenuProps ) {\n\treturn (\n\t\t<MenuContextProvider type={ 'popover' }>\n\t\t\t<Menu\n\t\t\t\tPaperProps={ {\n\t\t\t\t\tsx: { mt: 4 },\n\t\t\t\t} }\n\t\t\t\t{ ...props }\n\t\t\t\tMenuListProps={ {\n\t\t\t\t\tcomponent: 'div',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Menu>\n\t\t</MenuContextProvider>\n\t);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { __ } from '@wordpress/i18n';\nimport { ToggleButton, ToggleButtonProps, SvgIconProps, SvgIcon, styled } from '@elementor/ui';\n\ninterface StyledElementorLogoProps extends SvgIconProps {\n\tshowMenuIcon?: boolean;\n}\n\ntype ToolbarLogoProps = Omit<ToggleButtonProps, 'value'>;\n\nconst ElementorLogo = ( props: SvgIconProps ) => {\n\treturn (\n\t\t<SvgIcon viewBox=\"0 0 32 32\" { ...props }>\n\t\t\t<g>\n\t\t\t\t<circle cx=\"16\" cy=\"16\" r=\"16\" />\n\t\t\t\t<path d=\"M11.7 9H9V22.3H11.7V9Z\" />\n\t\t\t\t<path d=\"M22.4 9H9V11.7H22.4V9Z\" />\n\t\t\t\t<path d=\"M22.4 14.4004H9V17.1004H22.4V14.4004Z\" />\n\t\t\t\t<path d=\"M22.4 19.6992H9V22.3992H22.4V19.6992Z\" />\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n\nconst StyledToggleButton = styled( ToggleButton )( () => ( {\n\tpadding: 0,\n\t'&.MuiToggleButton-root:hover': {\n\t\tbackgroundColor: 'initial',\n\t},\n\t'&.MuiToggleButton-root.Mui-selected': {\n\t\tbackgroundColor: 'initial',\n\t},\n} ) );\n\nconst StyledElementorLogo = styled( ElementorLogo, {\n\tshouldForwardProp: ( prop ) => prop !== 'showMenuIcon',\n} )<StyledElementorLogoProps>( ( { theme, showMenuIcon } ) => ( {\n\twidth: 'auto',\n\theight: '100%',\n\t'& path': {\n\t\tfill: 'initial',\n\t\ttransition: 'all 0.2s linear',\n\t\ttransformOrigin: 'bottom left',\n\t\t'&:first-of-type': {\n\t\t\ttransitionDelay: ! showMenuIcon && '0.2s',\n\t\t\ttransform: showMenuIcon && 'translateY(-9px) scaleY(0)',\n\t\t},\n\t\t'&:not(:first-of-type)': {\n\t\t\t// Emotion automatically change 4 to -4 in RTL moode.\n\t\t\ttransform: ! showMenuIcon && `translateX(${ theme.direction === 'rtl' ? '4' : '9' }px) scaleX(0.6)`,\n\t\t},\n\t\t'&:nth-of-type(2)': {\n\t\t\ttransitionDelay: showMenuIcon ? '0' : '0.2s',\n\t\t},\n\t\t'&:nth-of-type(3)': {\n\t\t\ttransitionDelay: '0.1s',\n\t\t},\n\t\t'&:nth-of-type(4)': {\n\t\t\ttransitionDelay: showMenuIcon ? '0.2s' : '0',\n\t\t},\n\t},\n} ) );\n\nexport default function ToolbarLogo( props: ToolbarLogoProps ) {\n\tconst [ isHoverState, setIsHoverState ] = useState( false );\n\tconst showMenuIcon = props.selected || isHoverState;\n\n\treturn (\n\t\t<StyledToggleButton\n\t\t\t{ ...props }\n\t\t\tvalue=\"selected\"\n\t\t\tsize=\"small\"\n\t\t\tonMouseEnter={ () => setIsHoverState( true ) }\n\t\t\tonMouseLeave={ () => setIsHoverState( false ) }\n\t\t>\n\t\t\t<StyledElementorLogo titleAccess={ __( 'Elementor Logo', 'elementor' ) } showMenuIcon={ showMenuIcon } />\n\t\t</StyledToggleButton>\n\t);\n}\n","import * as React from 'react';\nimport { toolsMenu } from '../../locations';\nimport ToolbarMenu from '../ui/toolbar-menu';\nimport ToolbarMenuMore from '../ui/toolbar-menu-more';\n\nconst MAX_TOOLBAR_ACTIONS = 5;\n\nconst { useMenuItems } = toolsMenu;\n\nexport default function ToolsMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst toolbarMenuItems = menuItems.default.slice( 0, MAX_TOOLBAR_ACTIONS );\n\tconst popoverMenuItems = menuItems.default.slice( MAX_TOOLBAR_ACTIONS );\n\n\treturn (\n\t\t<ToolbarMenu>\n\t\t\t{ toolbarMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t{ popoverMenuItems.length > 0 && (\n\t\t\t\t<ToolbarMenuMore id=\"elementor-editor-app-bar-tools-more\">\n\t\t\t\t\t{ popoverMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t\t</ToolbarMenuMore>\n\t\t\t) }\n\t\t</ToolbarMenu>\n\t);\n}\n","import * as React from 'react';\nimport { Stack, StackProps } from '@elementor/ui';\nimport { MenuContextProvider } from '../../contexts/menu-context';\n\nexport type ToolbarMenuProps = StackProps;\n\nexport default function ToolbarMenu( { children, ...props }: ToolbarMenuProps ) {\n\treturn (\n\t\t<MenuContextProvider type={ 'toolbar' }>\n\t\t\t<Stack sx={ { px: 4 } } spacing={ 4 } direction=\"row\" alignItems=\"center\" { ...props }>\n\t\t\t\t{ children }\n\t\t\t</Stack>\n\t\t</MenuContextProvider>\n\t);\n}\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { bindMenu, bindTrigger, usePopupState } from '@elementor/ui';\nimport ToolbarMenuItem from './toolbar-menu-item';\nimport { __ } from '@wordpress/i18n';\nimport { DotsVerticalIcon } from '@elementor/icons';\nimport PopoverMenu from './popover-menu';\n\nexport type ToolbarMenuMoreProps = PropsWithChildren<{\n\tid: string;\n}>\n\nexport default function ToolbarMenuMore( { children, id }: ToolbarMenuMoreProps ) {\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: id,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarMenuItem { ...bindTrigger( popupState ) } title={ __( 'More', 'elementor' ) }>\n\t\t\t\t<DotsVerticalIcon />\n\t\t\t</ToolbarMenuItem>\n\t\t\t<PopoverMenu onClick={ popupState.close } { ...bindMenu( popupState ) }>\n\t\t\t\t{ children }\n\t\t\t</PopoverMenu>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport { Fragment } from 'react';\nimport ToolbarMenu from '../ui/toolbar-menu';\nimport { utilitiesMenu } from '../../locations';\nimport { Divider } from '@elementor/ui';\nimport ToolbarMenuMore from '../ui/toolbar-menu-more';\n\nconst MAX_TOOLBAR_ACTIONS = 3;\n\nconst { useMenuItems } = utilitiesMenu;\n\nexport default function UtilitiesMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst toolbarMenuItems = menuItems.default.slice( 0, MAX_TOOLBAR_ACTIONS );\n\tconst popoverMenuItems = menuItems.default.slice( MAX_TOOLBAR_ACTIONS );\n\n\treturn (\n\t\t<ToolbarMenu>\n\t\t\t{ toolbarMenuItems.map(\n\t\t\t\t( { MenuItem, id }, index ) => (\n\t\t\t\t\t<Fragment key={ id }>\n\t\t\t\t\t\t{ index === 0 && <Divider orientation=\"vertical\" /> }\n\t\t\t\t\t\t<MenuItem />\n\t\t\t\t\t</Fragment>\n\t\t\t\t)\n\t\t\t) }\n\t\t\t{ popoverMenuItems.length > 0 && (\n\t\t\t\t<ToolbarMenuMore id=\"elementor-editor-app-bar-utilities-more\">\n\t\t\t\t\t{ popoverMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t\t</ToolbarMenuMore>\n\t\t\t) }\n\t\t</ToolbarMenu>\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_PRIMARY_ACTION } from '../../locations';\n\nexport default function PrimaryActionLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_PRIMARY_ACTION } />\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_PAGE_INDICATION } from '../../locations';\n\nexport default function PageIndicationLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_PAGE_INDICATION } />\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_RESPONSIVE } from '../../locations';\n\nexport default function ResponsiveLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_RESPONSIVE } />\n\t);\n}\n","import AppBar from './components/app-bar';\nimport { injectIntoTop } from '@elementor/editor';\nimport redirectOldMenus from './sync/redirect-old-menus';\nimport { init as initExtensions } from './extensions';\nimport { validateEnv } from './env';\n\nexport default function init() {\n\tvalidateEnv();\n\n\tredirectOldMenus();\n\n\tinitExtensions();\n\n\tinjectIntoTop( {\n\t\tname: 'app-bar',\n\t\tfiller: AppBar,\n\t} );\n}\n","import { listenTo, openRoute, routeOpenEvent } from '@elementor/editor-v1-adapters';\n\nexport default function redirectOldMenus() {\n\t// Currently, in V1, when you click `esc` it opens the hamburger menu in the panel.\n\t// In V2, we don't have this panel, so we redirect the user to the elements panel instead.\n\tlistenTo( routeOpenEvent( 'panel/menu' ), () => {\n\t\topenRoute( 'panel/elements/categories' );\n\t} );\n}\n","import * as React from 'react';\nimport { Box, ToggleButton, Tooltip } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { SettingsIcon } from '@elementor/icons';\nimport { useActiveDocument, useHostDocument } from '@elementor/editor-documents';\n\nexport default function SettingsButton() {\n\tconst activeDocument = useActiveDocument();\n\tconst hostDocument = useHostDocument();\n\n\tconst document = activeDocument && activeDocument.type.value !== 'kit'\n\t\t? activeDocument\n\t\t: hostDocument;\n\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/page-settings' );\n\n\tif ( ! document ) {\n\t\treturn null;\n\t}\n\n\t/* translators: %s: Post type label. */\n\tconst title = __( '%s Settings', 'elementor' )\n\t\t.replace( '%s', document.type.label );\n\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<ToggleButton\n\t\t\t\t\tvalue=\"document-settings\"\n\t\t\t\t\tselected={ isActive }\n\t\t\t\t\tdisabled={ isBlocked }\n\t\t\t\t\tonChange={ () => openRoute( 'panel/page-settings/settings' ) }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<SettingsIcon />\n\t\t\t\t</ToggleButton>\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import { injectIntoPageIndication } from '../../locations';\nimport SettingsButton from './components/settings-button';\n\nexport function init() {\n\tinjectIntoPageIndication( {\n\t\tname: 'document-settings-button',\n\t\tfiller: SettingsButton,\n\t\toptions: {\n\t\t\tpriority: 20, // After document indicator.\n\t\t},\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { EyeIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\nimport { useActiveDocument } from '@elementor/editor-documents';\n\nexport default function useActionProps() {\n\tconst document = useActiveDocument();\n\n\treturn {\n\t\ticon: EyeIcon,\n\t\ttitle: __( 'Preview Changes', 'elementor' ),\n\t\tonClick: () => document && runCommand( 'editor/documents/preview', {\n\t\t\tid: document.id,\n\t\t\tforce: true,\n\t\t} ),\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useDocumentPreviewProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerAction( {\n\t\tname: 'document-preview-button',\n\t\tpriority: 30, // After help.\n\t\tuseProps: useDocumentPreviewProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { FileReportIcon } from '@elementor/icons';\nimport { useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\n\nexport default function useDocumentSaveDraftProps(): ActionProps {\n\tconst document = useActiveDocument();\n\tconst { saveDraft } = useActiveDocumentActions();\n\n\treturn {\n\t\ticon: FileReportIcon,\n\t\ttitle: __( 'Save Draft', 'elementor' ),\n\t\tonClick: saveDraft,\n\t\tdisabled: ! document || document.isSaving || document.isSavingDraft || ! document.isDirty,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { FolderIcon } from '@elementor/icons';\nimport { useActiveDocumentActions } from '@elementor/editor-documents';\n\nexport default function useDocumentSaveTemplateProps(): ActionProps {\n\tconst { saveTemplate } = useActiveDocumentActions();\n\n\treturn {\n\t\ticon: FolderIcon,\n\t\ttitle: __( 'Save as Template', 'elementor' ),\n\t\tonClick: saveTemplate,\n\t};\n}\n","import * as React from 'react';\nimport { __ } from '@wordpress/i18n';\nimport PrimaryActionMenu from './primary-action-menu';\nimport {\n\tbindMenu,\n\tbindTrigger,\n\tBox,\n\tButton,\n\tButtonGroup,\n\tCircularProgress,\n\tTooltip,\n\tusePopupState,\n} from '@elementor/ui';\nimport { Document, useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\nimport { ChevronDownIcon } from '@elementor/icons';\n\nexport default function PrimaryAction() {\n\tconst document = useActiveDocument();\n\tconst { save } = useActiveDocumentActions();\n\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: 'document-save-options',\n\t} );\n\n\tif ( ! document ) {\n\t\treturn null;\n\t}\n\n\tconst isDisabled = ! isEnabled( document );\n\n\t// When the document is being saved, the spinner should not appear.\n\t// Usually happens when the Kit is being saved.\n\tconst shouldShowSpinner = document.isSaving && ! isDisabled;\n\n\treturn (\n\t\t<>\n\t\t\t<ButtonGroup size=\"large\" variant=\"contained\">\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ () => ! document.isSaving && save() }\n\t\t\t\t\tsx={ { width: '120px' } }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowSpinner ? <CircularProgress /> : getLabel( document ) }\n\t\t\t\t</Button>\n\n\t\t\t\t<Tooltip\n\t\t\t\t\ttitle={ __( 'Save Options', 'elementor' ) }\n\t\t\t\t\tPopperProps={ {\n\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\t\t\t\tmt: 3,\n\t\t\t\t\t\t\t\tmr: 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\t\t\t\tsx={ { px: 0 } }\n\t\t\t\t\t\t\tdisabled={ document.type.value === 'kit' }\n\t\t\t\t\t\t\taria-label={ __( 'Save Options', 'elementor' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ChevronDownIcon />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Box>\n\t\t\t\t</Tooltip>\n\t\t\t</ButtonGroup>\n\t\t\t<PrimaryActionMenu { ...bindMenu( popupState ) } onClick={ popupState.close } />\n\t\t</>\n\t);\n}\n\nfunction getLabel( document: Document ) {\n\treturn document.userCan.publish\n\t\t? __( 'Publish', 'elementor' )\n\t\t: __( 'Submit', 'elementor' );\n}\n\nfunction isEnabled( document: Document ) {\n\tif ( document.type.value === 'kit' ) {\n\t\treturn false;\n\t}\n\n\treturn document.isDirty || document.status.value === 'draft';\n}\n","import * as React from 'react';\nimport { Divider, styled } from '@elementor/ui';\nimport { documentOptionsMenu } from '../../../locations';\nimport PopoverMenu, { PopoverMenuProps } from '../../../components/ui/popover-menu';\n\nconst { useMenuItems } = documentOptionsMenu;\n\n// CSS hack to hide dividers when a group is rendered empty (due to a limitation in our locations' mechanism).\n// It doesn't cover all the cases (i.e. when there are multiple dividers at the end), but it's good enough for our use-case.\nconst StyledPopoverMenu = styled( PopoverMenu )`\n\t& > .MuiPopover-paper > .MuiList-root > .MuiDivider-root {\n\t\t&:only-child, /* A divider is being rendered lonely */\n\t\t&:last-child, /* The last group renders empty but renders a divider */\n\t\t& + .MuiDivider-root /* Multiple dividers due to multiple empty groups */ {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n`;\n\nexport default function PrimaryActionMenu( props: PopoverMenuProps ) {\n\tconst { save: saveActions, default: defaultActions } = useMenuItems();\n\n\treturn (\n\t\t<StyledPopoverMenu\n\t\t\t{ ...props }\n\t\t\tanchorOrigin={ {\n\t\t\t\tvertical: 'bottom',\n\t\t\t\thorizontal: 'right',\n\t\t\t} }\n\t\t\ttransformOrigin={ {\n\t\t\t\tvertical: 'top',\n\t\t\t\thorizontal: 'right',\n\t\t\t} }\n\t\t\tPaperProps={ {\n\t\t\t\tsx: { mt: 2, ml: 3 },\n\t\t\t} }\n\t\t>\n\t\t\t{ saveActions.map( ( { MenuItem, id }, index ) => ( [\n\t\t\t\t( index > 0 ) && <Divider key={ `${ id }-divider` } />,\n\t\t\t\t<MenuItem key={ id } />,\n\t\t\t] ) ) }\n\n\t\t\t{ defaultActions.length > 0 && <Divider /> }\n\n\t\t\t{ defaultActions.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t</StyledPopoverMenu>\n\t);\n}\n","import { documentOptionsMenu, injectIntoPrimaryAction } from '../../locations';\nimport useDocumentSaveDraftProps from './hooks/use-document-save-draft-props';\nimport useDocumentSaveTemplateProps from './hooks/use-document-save-template-props';\nimport PrimaryAction from './components/primary-action';\n\nexport function init() {\n\tinjectIntoPrimaryAction( {\n\t\tname: 'document-primary-action',\n\t\tfiller: PrimaryAction,\n\t} );\n\n\t// Documents options menu.\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tname: 'document-save-draft',\n\t\tpriority: 10, // Before save as template.\n\t\tuseProps: useDocumentSaveDraftProps,\n\t} );\n\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tname: 'document-save-as-template',\n\t\tpriority: 20, // After save draft.\n\t\tuseProps: useDocumentSaveTemplateProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { isRouteActive, listenTo, routeOpenEvent, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\ntype ExtendedWindow = Window & {\n\telementor: {\n\t\tgetPanelView: () => {\n\t\t\tgetHeaderView: () => {\n\t\t\t\tsetTitle: ( title: string ) => void;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default function syncPanelTitle() {\n\tconst panelTitle = __( 'Elements', 'elementor' );\n\tconst tabTitle = __( 'Widgets', 'elementor' );\n\n\tlistenTo(\n\t\trouteOpenEvent( 'panel/elements' ),\n\t\t() => {\n\t\t\tsetPanelTitle( panelTitle );\n\t\t\tsetTabTitle( tabTitle );\n\t\t}\n\t);\n\n\tlistenTo(\n\t\tv1ReadyEvent(),\n\t\t() => {\n\t\t\tif ( isRouteActive( 'panel/elements' ) ) {\n\t\t\t\tsetPanelTitle( panelTitle );\n\t\t\t\tsetTabTitle( tabTitle );\n\t\t\t}\n\t\t}\n\t);\n}\n\nfunction setPanelTitle( title: string ) {\n\t( window as unknown as ExtendedWindow ).elementor?.getPanelView?.()?.getHeaderView?.()?.setTitle?.( title );\n}\n\nfunction setTabTitle( title: string ) {\n\tconst tab = document.querySelector( '.elementor-component-tab[data-tab=\"categories\"]' );\n\n\tif ( tab ) {\n\t\ttab.textContent = title;\n\t}\n}\n","import { PlusIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/elements' );\n\n\treturn {\n\t\ttitle: __( 'Add Element', 'elementor' ),\n\t\ticon: PlusIcon,\n\t\tonClick: () => openRoute( 'panel/elements/categories' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import syncPanelTitle from './sync/sync-panel-title';\nimport { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tsyncPanelTitle();\n\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'open-elements-panel',\n\t\tpriority: 1,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { SearchIcon } from '@elementor/icons';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'finder', {\n\t\tblockOnKitRoutes: false,\n\t\tblockOnPreviewMode: false,\n\t} );\n\n\treturn {\n\t\ttitle: __( 'Finder', 'elementor' ),\n\t\ticon: SearchIcon,\n\t\tonClick: () => runCommand( 'finder/toggle' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerToggleAction( {\n\t\tname: 'toggle-finder',\n\t\tpriority: 10, // Before help.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { utilitiesMenu } from '../../locations';\nimport { __ } from '@wordpress/i18n';\nimport { HelpIcon } from '@elementor/icons';\n\nexport function init() {\n\tutilitiesMenu.registerLink( {\n\t\tname: 'open-help-center',\n\t\tpriority: 20, // After Finder.\n\t\tuseProps: () => {\n\t\t\treturn {\n\t\t\t\ttitle: __( 'Help', 'elementor' ),\n\t\t\t\thref: 'https://go.elementor.com/editor-top-bar-learn/',\n\t\t\t\ticon: HelpIcon,\n\t\t\t\ttarget: '_blank',\n\t\t\t};\n\t\t},\n\t} );\n}\n","import { HistoryIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/history' );\n\n\treturn {\n\t\ttitle: __( 'History', 'elementor' ),\n\t\ticon: HistoryIcon,\n\t\tonClick: () => openRoute( 'panel/history/actions' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerToggleAction( {\n\t\tname: 'open-history',\n\t\tpriority: 20,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { KeyboardIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps(): ActionProps {\n\treturn {\n\t\ticon: KeyboardIcon,\n\t\ttitle: __( 'Keyboard Shortcuts', 'elementor' ),\n\t\tonClick: () => runCommand( 'shortcuts/open' ),\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerAction( {\n\t\tname: 'open-keyboard-shortcuts',\n\t\tgroup: 'default',\n\t\tpriority: 40, // After user preferences.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { injectIntoTop } from '@elementor/editor';\nimport PortalledPrimaryAction from './components/portalled-primary-action';\nimport { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\t// This is portal, so it injected into the top of the editor, but renders inside the site-settings panel.\n\tinjectIntoTop( {\n\t\tname: 'site-settings-primary-action-portal',\n\t\tfiller: PortalledPrimaryAction,\n\t} );\n\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'toggle-site-settings',\n\t\tpriority: 2,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import * as React from 'react';\nimport Portal from './portal';\nimport PrimaryAction from './primary-action';\n\nexport default function PortalledPrimaryAction() {\n\treturn (\n\t\t<Portal>\n\t\t\t<PrimaryAction />\n\t\t</Portal>\n\t);\n}\n","import * as React from 'react';\nimport { Portal as BasePortal, PortalProps } from '@elementor/ui';\nimport { isRouteActive, routeCloseEvent, routeOpenEvent, useListenTo } from '@elementor/editor-v1-adapters';\n\nexport default function Portal( props: Omit<PortalProps, 'container'> ) {\n\tconst containerRef = useListenTo(\n\t\t[\n\t\t\trouteOpenEvent( 'panel/global' ),\n\t\t\trouteCloseEvent( 'panel/global' ),\n\t\t],\n\t\tgetContainerRef\n\t);\n\n\tif ( ! containerRef.current ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BasePortal container={ containerRef.current } { ...props } />\n\t);\n}\n\nfunction getContainerRef() {\n\treturn isRouteActive( 'panel/global' )\n\t\t? { current: document.querySelector( '#elementor-panel-inner' ) }\n\t\t: { current: null };\n}\n","import * as React from 'react';\nimport { useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\nimport { Button, CircularProgress, Paper } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nexport default function PrimaryAction() {\n\tconst document = useActiveDocument();\n\tconst { save } = useActiveDocumentActions();\n\n\treturn (\n\t\t<Paper sx={ {\n\t\t\tpx: 5,\n\t\t\tpy: 4,\n\t\t\tborderTop: 1,\n\t\t\tborderColor: 'divider',\n\t\t} }>\n\t\t\t<Button\n\t\t\t\tvariant=\"contained\"\n\t\t\t\tdisabled={ ! document || ! document.isDirty }\n\t\t\t\tsize=\"medium\"\n\t\t\t\tsx={ { width: '100%' } }\n\t\t\t\tonClick={ () => document && ! document.isSaving ? save() : null }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\tdocument?.isSaving\n\t\t\t\t\t\t? <CircularProgress />\n\t\t\t\t\t\t: __( 'Save Changes', 'elementor' )\n\t\t\t\t}\n\t\t\t</Button>\n\t\t</Paper>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { ToggleActionProps } from '../../../types';\nimport { AdjustmentsHorizontalIcon } from '@elementor/icons';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/global', {\n\t\tblockOnKitRoutes: false,\n\t} );\n\n\treturn {\n\t\ttitle: __( 'Site Settings', 'elementor' ),\n\t\ticon: AdjustmentsHorizontalIcon,\n\t\tonClick: () => (\n\t\t\tisActive\n\t\t\t\t? runCommand( 'panel/global/close' )\n\t\t\t\t: runCommand( 'panel/global/open' )\n\t\t),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { StructureIcon } from '@elementor/icons';\nimport { ToggleActionProps } from '../../../types';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'navigator' );\n\n\treturn {\n\t\ttitle: __( 'Structure', 'elementor' ),\n\t\ticon: StructureIcon,\n\t\tonClick: () => runCommand( 'navigator/toggle' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'toggle-structure-view',\n\t\tpriority: 3,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ThemeBuilderIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\nimport { ActionProps } from '../../../types';\n\nexport default function useActionProps(): ActionProps {\n\treturn {\n\t\ticon: ThemeBuilderIcon,\n\t\ttitle: __( 'Theme Builder', 'elementor' ),\n\t\tonClick: () => runCommand( 'app/open' ),\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useThemeBuilderActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerAction( {\n\t\tname: 'open-theme-builder',\n\t\tuseProps: useThemeBuilderActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ToggleActionProps } from '../../../types';\nimport { ToggleRightIcon } from '@elementor/icons';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/editor-preferences' );\n\n\treturn {\n\t\ticon: ToggleRightIcon,\n\t\ttitle: __( 'User Preferences', 'elementor' ),\n\t\tonClick: () => openRoute( 'panel/editor-preferences' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerToggleAction( {\n\t\tname: 'open-user-preferences',\n\t\tpriority: 30, // After history.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { parseEnv, InvalidEnvError } from '@elementor/env';\n\ntype Env = {\n\tadmin_url: string;\n};\n\nexport const { env, validateEnv } = parseEnv( '@elementor/editor-app-bar', ( envData ): Env => {\n\tif ( ! isValid( envData ) ) {\n\t\tthrow new InvalidEnvError( 'Invalid admin URL' );\n\t}\n\n\treturn envData;\n} );\n\nfunction isValid( subject: object ): subject is Env {\n\treturn 'admin_url' in subject && typeof subject.admin_url === 'string';\n}\n","import { mainMenu } from '../../locations';\nimport { env } from '../../env';\nimport { __ } from '@wordpress/i18n';\nimport { WordpressIcon } from '@elementor/icons';\n\nexport function init() {\n\tmainMenu.registerLink( {\n\t\tname: 'manage-website',\n\t\tgroup: 'exits',\n\t\tprops: {\n\t\t\ttitle: __( 'Manage Website', 'elementor' ),\n\t\t\thref: env.admin_url,\n\t\t\ticon: WordpressIcon,\n\t\t\ttarget: '_blank',\n\t\t},\n\t} );\n}\n","/**\n * All the code in this directory is a temporary solution.\n * The code should be moved to the appropriate packages.\n */\n\nimport { init as initDocumentsIndicator } from './documents-indicator';\nimport { init as initDocumentsPreview } from './documents-preview';\nimport { init as initDocumentsSave } from './documents-save';\nimport { init as initElements } from './elements';\nimport { init as initFinder } from './finder';\nimport { init as initHelp } from './help';\nimport { init as initHistory } from './history';\nimport { init as initKeyboardShortcuts } from './keyboard-shortcuts';\nimport { init as initSiteSettings } from './site-settings';\nimport { init as initStructure } from './structure';\nimport { init as initThemeBuilder } from './theme-builder';\nimport { init as initUserPreferences } from './user-preferences';\nimport { init as initWordpress } from './wordpress';\n\nexport function init() {\n\tinitDocumentsIndicator();\n\tinitDocumentsPreview();\n\tinitDocumentsSave();\n\tinitElements();\n\tinitFinder();\n\tinitHelp();\n\tinitHistory();\n\tinitKeyboardShortcuts();\n\tinitSiteSettings();\n\tinitStructure();\n\tinitThemeBuilder();\n\tinitUserPreferences();\n\tinitWordpress();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,SAAuB;AACvB,IAAAC,gBAA+D;AAC/D,uBAAwC;;;ACFxC,IAAAC,SAAuB;;;ACAvB,YAAuB;AACvB,mBAA6D;AAM7D,IAAM,kBAAc,4BAAiC,EAAE,MAAM,UAAU,CAAE;AAElE,SAAS,oBAAqB,EAAE,MAAM,SAAS,GAAyC;AAC9F,SACC,oCAAC,YAAY,UAAZ,EAAqB,OAAQ,EAAE,KAAK,KAClC,QACH;AAEF;AAEO,SAAS,iBAAiB;AAChC,aAAO,yBAAY,WAAY;AAChC;;;ACnBA,IAAAC,SAAuB;AACvB,gBAA0D;AAO3C,SAAR,gBAAkC,EAAE,OAAO,GAAG,MAAM,GAA0B;AACpF,SACC,qCAAC,qBAAQ,SAER,qCAAC,iBAAI,WAAU,QAAO,cAAa,UAClC,qCAAC,wBAAa,GAAG,OAAQ,cAAa,OAAQ,MAAK,SAAQ,CAC5D,CACD;AAEF;;;ACjBA,IAAAC,SAAuB;AACvB,IAAAC,aAMO;AACP,mBAAiC;AAWjC,IAAM,2BAAuB,0BAAe,6BAAiB;AAE9C,SAAR,gBAAkC,EAAE,MAAM,MAAM,SAAS,MAAM,QAAQ,UAAU,GAAG,MAAM,GAA0B;AAC1H,QAAM,iBAAiB,QAAQ,WAAW;AAE1C,SACC;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAY,OAAO,MAAM;AAAA,MACzB;AAAA,MACA;AAAA;AAAA,IAEA,qCAAC,+BAAe,IAAM;AAAA,IACtB,qCAAC,2BAAa,SAAU,MAAO;AAAA,IAC7B,kBAAkB,qCAAC,0BAAqB;AAAA,EAC3C;AAEF;;;AHxBe,SAAR,OAAyB,EAAE,MAAM,MAAM,OAAO,UAAU,MAAM,GAAG,MAAM,GAAW;AACxF,QAAM,EAAE,KAAK,IAAI,eAAe;AAEhC,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,SAAO,SAAS,YACf,qCAAC,mBAAgB,OAAkB,GAAG,SACrC,qCAAC,UAAK,CACP,IAEA;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACL,MAAO;AAAA,MACP,MAAO,qCAAC,UAAK;AAAA;AAAA,EACd;AAEF;;;AIhCA,IAAAC,SAAuB;;;ACAvB,IAAAC,SAAuB;AACvB,IAAAC,aAA8D;AAO/C,SAAR,sBAAwC,EAAE,OAAO,SAAS,GAAG,MAAM,GAAgC;AACzG,SACC,qCAAC,sBAAQ,SAER,qCAAC,kBAAI,WAAU,QAAO,cAAa,UAClC,qCAAC,2BAAe,GAAG,OAAQ,UAAW,SAAU,cAAa,OAAQ,MAAK,SAAQ,CACnF,CACD;AAEF;;;ADDe,SAAR,aAA+B,EAAE,MAAM,MAAM,OAAO,OAAO,UAAU,MAAM,GAAG,MAAM,GAAW;AACrG,QAAM,EAAE,KAAK,IAAI,eAAe;AAEhC,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,SAAO,SAAS,YACf,qCAAC,yBAAsB,OAAQ,SAAS,OAAQ,OAAkB,GAAG,SACpE,qCAAC,UAAK,CACP,IAEA;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACL,MAAO;AAAA,MACP,MAAO,qCAAC,UAAK;AAAA;AAAA,EACd;AAEF;;;AElCA,IAAAC,SAAuB;AAcR,SAAR,KAAuB,EAAE,MAAM,MAAM,OAAO,UAAU,MAAM,GAAG,MAAM,GAAW;AACtF,QAAM,EAAE,KAAK,IAAI,eAAe;AAEhC,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,SAAO,SAAS,YACf,qCAAC,mBAAgB,OAAkB,GAAG,SACrC,qCAAC,UAAK,CACP,IAEA;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACL,MAAO;AAAA,MACP,MAAO,qCAAC,UAAK;AAAA;AAAA,EACd;AAEF;;;APEO,SAAS,WAAkD,EAAE,MAAM,UAAU,SAAS,CAAC,EAAE,GAAoC;AACnI,QAAM,aAAkC;AAAA,IACvC,GAAG;AAAA,IACH;AAAA,EACD;AAEA,QAAM,iBAAiB,uBAAwB;AAAA,IAC9C;AAAA,IACA;AAAA,IACA,WAAW;AAAA,EACZ,CAAE;AAEF,QAAM,uBAAuB,uBAAwB;AAAA,IACpD;AAAA,IACA;AAAA,IACA,WAAW;AAAA,EACZ,CAAE;AAEF,QAAM,eAAe,uBAAwB;AAAA,IAC5C;AAAA,IACA;AAAA,IACA,WAAW;AAAA,EACZ,CAAE;AAEF,QAAMC,gBAAe,mBAAoB;AAAA,IACxC;AAAA,IACA;AAAA,EACD,CAAE;AAEF,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAAA;AAAA,EACD;AACD;AAEA,SAAS,uBAIN,EAAE,UAAU,YAAY,UAAU,GAIjC;AACH,SAAO,CAAE,EAAE,QAAQ,WAAW,MAAM,WAAW,UAAU,GAAG,KAAK,MAAgD;AAChH,QAAK,CAAE,WAAW,SAAU,KAAM,GAAI;AACrC;AAAA,IACD;AAEA,UAAM,WAAW,WAAW,OAAO,MAAM,KAAK,QAAQ,KAAK;AAE3D,UAAM,YAAY;AAElB,UAAM,SAAS,CAAE,UAAmB;AACnC,YAAM,iBAAiB,SAAS;AAEhC,aAAO,qCAAC,aAAY,GAAG,OAAU,GAAG,gBAAiB;AAAA,IACtD;AAEA,UAAM,WAAW,kBAAmB,UAAU,KAAM;AAEpD,iCAAQ;AAAA,MACP;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,SAAS;AAAA,QACR;AAAA,QACA;AAAA,MACD;AAAA,IACD,CAAE;AAAA,EACH;AACD;AAEA,SAAS,mBAGN,EAAE,UAAU,WAAW,GAGtB;AACH,QAAM,YAAY,WAAW,IAAK,CAAE,UAAW,kBAAmB,UAAU,KAAM,CAAE;AAEpF,SAAO,MAAM;AACZ,UAAM,uBAAmB,kCAAiB,SAAU;AAGpD,eAAO,uBAAS,MAAM;AACrB,aAAO,iBAAiB,OAA8B,CAAE,KAAK,YAAY,UAAW;AACnF,cAAM,YAAY,WAAY,KAAM;AAEpC,eAAO;AAAA,UACN,GAAG;AAAA,UACH,CAAE,SAAU,GAAG,WAAW,IAAK,CAAE,eAAiB;AAAA,YACjD,IAAI,UAAU;AAAA,YACd,UAAU,UAAU;AAAA,UACrB,EAAI;AAAA,QACL;AAAA,MACD,GAAG,CAAC,CAA0B;AAAA,IAC/B,GAAG,CAAE,gBAAiB,CAAE;AAAA,EACzB;AACD;AAEA,SAAS,kBAAmB,MAAgB,OAAmB;AAC9D,SAAO,kBAAmB,QAAU;AACrC;;;AQ3IA,IAAAC,oBAAkC;;;ACA3B,IAAM,2BAA2B;AACjC,IAAM,sBAAsB;AAC5B,IAAM,0BAA0B;;;ADKhC,IAAM,+BAA2B,qCAAmB,wBAAyB;AAC7E,IAAM,2BAAuB,qCAAmB,mBAAoB;AACpE,IAAM,8BAA0B,qCAAmB,uBAAwB;AAE3E,IAAM,WAAW,WAAY;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ,CAAE,OAAQ;AACnB,CAAE;AAEK,IAAM,YAAY,WAAY;AAAA,EACpC,MAAM;AACP,CAAE;AAEK,IAAM,gBAAgB,WAAY;AAAA,EACxC,MAAM;AACP,CAAE;AAEK,IAAM,sBAAsB,WAAY;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ,CAAE,MAAO;AAClB,CAAE;;;AE5BF,IAAAC,UAAuB;AACvB,IAAAC,cAAwE;;;ACDxE,IAAAC,UAAuB;AACvB,IAAAC,aAAqE;;;ACDrE,IAAAC,SAAuB;AACvB,IAAAC,aAAgC;AAKjB,SAAR,YAA8B,EAAE,UAAU,GAAG,MAAM,GAAsB;AAC/E,SACC,qCAAC,uBAAoB,MAAO,aAC3B;AAAA,IAAC;AAAA;AAAA,MACA,YAAa;AAAA,QACZ,IAAI,EAAE,IAAI,EAAE;AAAA,MACb;AAAA,MACE,GAAG;AAAA,MACL,eAAgB;AAAA,QACf,WAAW;AAAA,MACZ;AAAA;AAAA,IAEE;AAAA,EACH,CACD;AAEF;;;ACtBA,IAAAC,UAAuB;AACvB,IAAAC,gBAAyB;AACzB,kBAAmB;AACnB,IAAAC,aAA+E;AAQ/E,IAAM,gBAAgB,CAAE,UAAyB;AAChD,SACC,sCAAC,sBAAQ,SAAQ,aAAc,GAAG,SACjC,sCAAC,WACA,sCAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,GAC/B,sCAAC,UAAK,GAAE,0BAAyB,GACjC,sCAAC,UAAK,GAAE,0BAAyB,GACjC,sCAAC,UAAK,GAAE,yCAAwC,GAChD,sCAAC,UAAK,GAAE,yCAAwC,CACjD,CACD;AAEF;AAEA,IAAM,yBAAqB,mBAAQ,uBAAa,EAAG,OAAQ;AAAA,EAC1D,SAAS;AAAA,EACT,gCAAgC;AAAA,IAC/B,iBAAiB;AAAA,EAClB;AAAA,EACA,uCAAuC;AAAA,IACtC,iBAAiB;AAAA,EAClB;AACD,EAAI;AAEJ,IAAM,0BAAsB,mBAAQ,eAAe;AAAA,EAClD,mBAAmB,CAAE,SAAU,SAAS;AACzC,CAAE,EAA6B,CAAE,EAAE,OAAO,aAAa,OAAS;AAAA,EAC/D,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,MAClB,iBAAiB,CAAE,gBAAgB;AAAA,MACnC,WAAW,gBAAgB;AAAA,IAC5B;AAAA,IACA,yBAAyB;AAAA;AAAA,MAExB,WAAW,CAAE,gBAAgB,cAAe,MAAM,cAAc,QAAQ,MAAM;AAAA,IAC/E;AAAA,IACA,oBAAoB;AAAA,MACnB,iBAAiB,eAAe,MAAM;AAAA,IACvC;AAAA,IACA,oBAAoB;AAAA,MACnB,iBAAiB;AAAA,IAClB;AAAA,IACA,oBAAoB;AAAA,MACnB,iBAAiB,eAAe,SAAS;AAAA,IAC1C;AAAA,EACD;AACD,EAAI;AAEW,SAAR,YAA8B,OAA0B;AAC9D,QAAM,CAAE,cAAc,eAAgB,QAAI,wBAAU,KAAM;AAC1D,QAAM,eAAe,MAAM,YAAY;AAEvC,SACC;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACL,OAAM;AAAA,MACN,MAAK;AAAA,MACL,cAAe,MAAM,gBAAiB,IAAK;AAAA,MAC3C,cAAe,MAAM,gBAAiB,KAAM;AAAA;AAAA,IAE5C,sCAAC,uBAAoB,iBAAc,gBAAI,kBAAkB,WAAY,GAAI,cAA8B;AAAA,EACxG;AAEF;;;AFzEA,IAAM,EAAE,aAAa,IAAI;AAEV,SAAR,mBAAoC;AAC1C,QAAM,YAAY,aAAa;AAE/B,QAAM,gBAAgB;AAAA,IACrB,UAAU;AAAA,IACV,UAAU;AAAA,EACX;AAEA,QAAM,iBAAa,0BAAe;AAAA,IACjC,SAAS;AAAA,IACT,SAAS;AAAA,EACV,CAAE;AAEF,SACC,sCAAC,oBAAM,IAAK,EAAE,oBAAoB,EAAE,GAAI,WAAU,OAAM,YAAW,YAClE;AAAA,IAAC;AAAA;AAAA,MACE,OAAG,wBAAa,UAAW;AAAA,MAC7B,UAAW,WAAW;AAAA;AAAA,EACvB,GACA;AAAA,IAAC;AAAA;AAAA,MACA,SAAU,WAAW;AAAA,MACnB,OAAG,qBAAU,UAAW;AAAA,MAC1B,YAAa;AAAA,QACZ,IAAI,EAAE,IAAI,GAAG,mBAAmB,GAAG;AAAA,MACpC;AAAA;AAAA,IAGC,cACE,OAAQ,CAAE,UAAW,MAAM,MAAO,EAClC,IAAK,CAAE,OAAO,UAAW;AACzB,aAAO;AAAA,QACN,QAAQ,IAAI,sCAAC,sBAAQ,KAAM,OAAQ,aAAY,cAAa,IAAK;AAAA,QACjE,GAAG,MAAM;AAAA,UACR,CAAE,EAAE,UAAAC,WAAU,GAAG,MAAO,sCAACA,WAAA,EAAS,KAAM,IAAK;AAAA,QAC9C;AAAA,MACD;AAAA,IACD,CAAE;AAAA,EAEL,CACD;AAEF;;;AGjDA,IAAAC,UAAuB;;;ACAvB,IAAAC,UAAuB;AACvB,IAAAC,aAAkC;AAKnB,SAAR,YAA8B,EAAE,UAAU,GAAG,MAAM,GAAsB;AAC/E,SACC,sCAAC,uBAAoB,MAAO,aAC3B,sCAAC,oBAAM,IAAK,EAAE,IAAI,EAAE,GAAI,SAAU,GAAI,WAAU,OAAM,YAAW,UAAW,GAAG,SAC5E,QACH,CACD;AAEF;;;ACdA,IAAAC,UAAuB;AAEvB,IAAAC,aAAqD;AAErD,IAAAC,eAAmB;AACnB,IAAAC,gBAAiC;AAOlB,SAAR,gBAAkC,EAAE,UAAU,GAAG,GAA0B;AACjF,QAAM,iBAAa,0BAAe;AAAA,IACjC,SAAS;AAAA,IACT,SAAS;AAAA,EACV,CAAE;AAEF,SACC,8DACC,sCAAC,mBAAkB,OAAG,wBAAa,UAAW,GAAI,WAAQ,iBAAI,QAAQ,WAAY,KACjF,sCAAC,oCAAiB,CACnB,GACA,sCAAC,eAAY,SAAU,WAAW,OAAU,OAAG,qBAAU,UAAW,KACjE,QACH,CACD;AAEF;;;AFvBA,IAAM,sBAAsB;AAE5B,IAAM,EAAE,cAAAC,cAAa,IAAI;AAEV,SAAR,oBAAqC;AAC3C,QAAM,YAAYA,cAAa;AAE/B,QAAM,mBAAmB,UAAU,QAAQ,MAAO,GAAG,mBAAoB;AACzE,QAAM,mBAAmB,UAAU,QAAQ,MAAO,mBAAoB;AAEtE,SACC,sCAAC,mBACE,iBAAiB,IAAK,CAAE,EAAE,UAAAC,WAAU,GAAG,MAAO,sCAACA,WAAA,EAAS,KAAM,IAAK,CAAG,GACtE,iBAAiB,SAAS,KAC3B,sCAAC,mBAAgB,IAAG,yCACjB,iBAAiB,IAAK,CAAE,EAAE,UAAAA,WAAU,GAAG,MAAO,sCAACA,WAAA,EAAS,KAAM,IAAK,CAAG,CACzE,CAEF;AAEF;;;AGzBA,IAAAC,UAAuB;AACvB,IAAAC,gBAAyB;AAGzB,IAAAC,aAAwB;AAGxB,IAAMC,uBAAsB;AAE5B,IAAM,EAAE,cAAAC,cAAa,IAAI;AAEV,SAAR,wBAAyC;AAC/C,QAAM,YAAYA,cAAa;AAE/B,QAAM,mBAAmB,UAAU,QAAQ,MAAO,GAAGD,oBAAoB;AACzE,QAAM,mBAAmB,UAAU,QAAQ,MAAOA,oBAAoB;AAEtE,SACC,sCAAC,mBACE,iBAAiB;AAAA,IAClB,CAAE,EAAE,UAAAE,WAAU,GAAG,GAAG,UACnB,sCAAC,0BAAS,KAAM,MACb,UAAU,KAAK,sCAAC,sBAAQ,aAAY,YAAW,GACjD,sCAACA,WAAA,IAAS,CACX;AAAA,EAEF,GACE,iBAAiB,SAAS,KAC3B,sCAAC,mBAAgB,IAAG,6CACjB,iBAAiB,IAAK,CAAE,EAAE,UAAAA,WAAU,GAAG,MAAO,sCAACA,WAAA,EAAS,KAAM,IAAK,CAAG,CACzE,CAEF;AAEF;;;AClCA,IAAAC,UAAuB;AACvB,IAAAC,oBAAqB;AAGN,SAAR,wBAAyC;AAC/C,SACC,sCAAC,0BAAK,UAAW,yBAA0B;AAE7C;;;ACRA,IAAAC,UAAuB;AACvB,IAAAC,oBAAqB;AAGN,SAAR,yBAA0C;AAChD,SACC,sCAAC,0BAAK,UAAW,0BAA2B;AAE9C;;;ACRA,IAAAC,UAAuB;AACvB,IAAAC,qBAAqB;AAGN,SAAR,qBAAsC;AAC5C,SACC,sCAAC,2BAAK,UAAW,qBAAsB;AAEzC;;;AVEe,SAAR,SAA0B;AAChC,SACC,sCAAC,6BAAc,aAAY,UAC1B,sCAAC,YAAAC,QAAA,EAAW,UAAS,YACpB,sCAAC,mBAAI,SAAQ,QAAO,qBAAoB,oBACvC,sCAAC,oBAAK,WAAS,QACd,sCAAC,sBAAiB,GAClB,sCAAC,uBAAkB,CACpB,GACA,sCAAC,oBAAK,WAAS,MAAC,gBAAe,YAC9B,sCAAC,eAAY,SAAU,KACtB,sCAAC,uBAAQ,aAAY,YAAW,GAChC,sCAAC,4BAAuB,GACxB,sCAAC,uBAAQ,aAAY,YAAW,GAChC,sCAAC,wBAAmB,GACpB,sCAAC,uBAAQ,aAAY,YAAW,CACjC,CACD,GACA,sCAAC,oBAAK,WAAS,MAAC,gBAAe,cAC9B,sCAAC,2BAAsB,GACvB,sCAAC,2BAAsB,CACxB,CACD,CACD,CACD;AAEF;;;AWnCA,IAAAC,iBAA8B;;;ACD9B,gCAAoD;AAErC,SAAR,mBAAoC;AAG1C,8CAAU,0CAAgB,YAAa,GAAG,MAAM;AAC/C,6CAAW,2BAA4B;AAAA,EACxC,CAAE;AACH;;;ACRA,IAAAC,UAAuB;AACvB,IAAAC,cAA2C;AAC3C,IAAAC,eAAmB;AACnB,IAAAC,6BAA0C;AAC1C,IAAAC,gBAA6B;AAC7B,8BAAmD;AAEpC,SAAR,iBAAkC;AACxC,QAAM,qBAAiB,2CAAkB;AACzC,QAAM,mBAAe,yCAAgB;AAErC,QAAMC,YAAW,kBAAkB,eAAe,KAAK,UAAU,QAC9D,iBACA;AAEH,QAAM,EAAE,UAAU,UAAU,QAAI,2CAAgB,qBAAsB;AAEtE,MAAK,CAAEA,WAAW;AACjB,WAAO;AAAA,EACR;AAGA,QAAM,YAAQ,iBAAI,eAAe,WAAY,EAC3C,QAAS,MAAMA,UAAS,KAAK,KAAM;AAErC,SACC,sCAAC,uBAAQ,SAER,sCAAC,mBAAI,WAAU,QAAO,cAAa,UAClC;AAAA,IAAC;AAAA;AAAA,MACA,OAAM;AAAA,MACN,UAAW;AAAA,MACX,UAAW;AAAA,MACX,UAAW,UAAM,sCAAW,8BAA+B;AAAA,MAC3D,cAAa;AAAA,MACb,MAAK;AAAA;AAAA,IAEL,sCAAC,gCAAa;AAAA,EACf,CACD,CACD;AAEF;;;ACvCO,SAAS,OAAO;AACtB,2BAA0B;AAAA,IACzB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,MACR,UAAU;AAAA;AAAA,IACX;AAAA,EACD,CAAE;AACH;;;ACXA,IAAAC,eAAmB;AACnB,IAAAC,gBAAwB;AACxB,IAAAC,6BAA2B;AAC3B,IAAAC,2BAAkC;AAEnB,SAAR,iBAAkC;AACxC,QAAMC,gBAAW,4CAAkB;AAEnC,SAAO;AAAA,IACN,MAAM;AAAA,IACN,WAAO,iBAAI,mBAAmB,WAAY;AAAA,IAC1C,SAAS,MAAMA,iBAAY,uCAAY,4BAA4B;AAAA,MAClE,IAAIA,UAAS;AAAA,MACb,OAAO;AAAA,IACR,CAAE;AAAA,EACH;AACD;;;ACbO,SAASC,QAAO;AACtB,gBAAc,eAAgB;AAAA,IAC7B,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,IACV,UAAU;AAAA,EACX,CAAE;AACH;;;ACTA,IAAAC,eAAmB;AAEnB,IAAAC,gBAA+B;AAC/B,IAAAC,2BAA4D;AAE7C,SAAR,4BAA0D;AAChE,QAAMC,gBAAW,4CAAkB;AACnC,QAAM,EAAE,UAAU,QAAI,mDAAyB;AAE/C,SAAO;AAAA,IACN,MAAM;AAAA,IACN,WAAO,iBAAI,cAAc,WAAY;AAAA,IACrC,SAAS;AAAA,IACT,UAAU,CAAEA,aAAYA,UAAS,YAAYA,UAAS,iBAAiB,CAAEA,UAAS;AAAA,EACnF;AACD;;;ACfA,IAAAC,eAAmB;AAEnB,IAAAC,gBAA2B;AAC3B,IAAAC,2BAAyC;AAE1B,SAAR,+BAA6D;AACnE,QAAM,EAAE,aAAa,QAAI,mDAAyB;AAElD,SAAO;AAAA,IACN,MAAM;AAAA,IACN,WAAO,iBAAI,oBAAoB,WAAY;AAAA,IAC3C,SAAS;AAAA,EACV;AACD;;;ACbA,IAAAC,UAAuB;AACvB,IAAAC,eAAmB;;;ACDnB,IAAAC,UAAuB;AACvB,IAAAC,cAAgC;AAIhC,IAAM,EAAE,cAAAC,cAAa,IAAI;AAIzB,IAAM,wBAAoB,oBAAQ,WAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAU/B,SAAR,kBAAoC,OAA0B;AACpE,QAAM,EAAE,MAAM,aAAa,SAAS,eAAe,IAAIA,cAAa;AAEpE,SACC;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACL,cAAe;AAAA,QACd,UAAU;AAAA,QACV,YAAY;AAAA,MACb;AAAA,MACA,iBAAkB;AAAA,QACjB,UAAU;AAAA,QACV,YAAY;AAAA,MACb;AAAA,MACA,YAAa;AAAA,QACZ,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE;AAAA,MACpB;AAAA;AAAA,IAEE,YAAY,IAAK,CAAE,EAAE,UAAAC,WAAU,GAAG,GAAG,UAAa;AAAA,MACjD,QAAQ,KAAO,sCAAC,uBAAQ,KAAM,GAAI,cAAgB;AAAA,MACpD,sCAACA,WAAA,EAAS,KAAM,IAAK;AAAA,IACtB,CAAI;AAAA,IAEF,eAAe,SAAS,KAAK,sCAAC,yBAAQ;AAAA,IAEtC,eAAe,IAAK,CAAE,EAAE,UAAAA,WAAU,GAAG,MAAO,sCAACA,WAAA,EAAS,KAAM,IAAK,CAAG;AAAA,EACvE;AAEF;;;AD5CA,IAAAC,cASO;AACP,IAAAC,2BAAsE;AACtE,IAAAC,gBAAgC;AAEjB,SAAR,gBAAiC;AACvC,QAAMC,gBAAW,4CAAkB;AACnC,QAAM,EAAE,KAAK,QAAI,mDAAyB;AAE1C,QAAM,iBAAa,2BAAe;AAAA,IACjC,SAAS;AAAA,IACT,SAAS;AAAA,EACV,CAAE;AAEF,MAAK,CAAEA,WAAW;AACjB,WAAO;AAAA,EACR;AAEA,QAAM,aAAa,CAAE,UAAWA,SAAS;AAIzC,QAAM,oBAAoBA,UAAS,YAAY,CAAE;AAEjD,SACC,8DACC,sCAAC,2BAAY,MAAK,SAAQ,SAAQ,eACjC;AAAA,IAAC;AAAA;AAAA,MACA,SAAU,MAAM,CAAEA,UAAS,YAAY,KAAK;AAAA,MAC5C,IAAK,EAAE,OAAO,QAAQ;AAAA,MACtB,UAAW;AAAA;AAAA,IAET,oBAAoB,sCAAC,kCAAiB,IAAK,SAAUA,SAAS;AAAA,EACjE,GAEA;AAAA,IAAC;AAAA;AAAA,MACA,WAAQ,iBAAI,gBAAgB,WAAY;AAAA,MACxC,aAAc;AAAA,QACb,IAAI;AAAA,UACH,6EAA6E;AAAA,YAC5E,IAAI;AAAA,YACJ,IAAI;AAAA,UACL;AAAA,QACD;AAAA,MACD;AAAA;AAAA,IAEA,sCAAC,mBAAI,WAAU,QAAO,cAAa,UAClC;AAAA,MAAC;AAAA;AAAA,QACE,OAAG,yBAAa,UAAW;AAAA,QAC7B,IAAK,EAAE,IAAI,EAAE;AAAA,QACb,UAAWA,UAAS,KAAK,UAAU;AAAA,QACnC,kBAAa,iBAAI,gBAAgB,WAAY;AAAA;AAAA,MAE7C,sCAAC,mCAAgB;AAAA,IAClB,CACD;AAAA,EACD,CACD,GACA,sCAAC,qBAAoB,OAAG,sBAAU,UAAW,GAAI,SAAU,WAAW,OAAQ,CAC/E;AAEF;AAEA,SAAS,SAAUA,WAAqB;AACvC,SAAOA,UAAS,QAAQ,cACrB,iBAAI,WAAW,WAAY,QAC3B,iBAAI,UAAU,WAAY;AAC9B;AAEA,SAAS,UAAWA,WAAqB;AACxC,MAAKA,UAAS,KAAK,UAAU,OAAQ;AACpC,WAAO;AAAA,EACR;AAEA,SAAOA,UAAS,WAAWA,UAAS,OAAO,UAAU;AACtD;;;AEjFO,SAASC,QAAO;AACtB,0BAAyB;AAAA,IACxB,MAAM;AAAA,IACN,QAAQ;AAAA,EACT,CAAE;AAGF,sBAAoB,eAAgB;AAAA,IACnC,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,IACV,UAAU;AAAA,EACX,CAAE;AAEF,sBAAoB,eAAgB;AAAA,IACnC,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,IACV,UAAU;AAAA,EACX,CAAE;AACH;;;ACzBA,IAAAC,eAAmB;AACnB,IAAAC,6BAAsE;AAYvD,SAAR,iBAAkC;AACxC,QAAM,iBAAa,iBAAI,YAAY,WAAY;AAC/C,QAAM,eAAW,iBAAI,WAAW,WAAY;AAE5C;AAAA,QACC,2CAAgB,gBAAiB;AAAA,IACjC,MAAM;AACL,oBAAe,UAAW;AAC1B,kBAAa,QAAS;AAAA,IACvB;AAAA,EACD;AAEA;AAAA,QACC,yCAAa;AAAA,IACb,MAAM;AACL,cAAK,0CAAe,gBAAiB,GAAI;AACxC,sBAAe,UAAW;AAC1B,oBAAa,QAAS;AAAA,MACvB;AAAA,IACD;AAAA,EACD;AACD;AAEA,SAAS,cAAe,OAAgB;AACvC,EAAE,OAAsC,WAAW,eAAe,GAAG,gBAAgB,GAAG,WAAY,KAAM;AAC3G;AAEA,SAAS,YAAa,OAAgB;AACrC,QAAM,MAAM,SAAS,cAAe,iDAAkD;AAEtF,MAAK,KAAM;AACV,QAAI,cAAc;AAAA,EACnB;AACD;;;AC9CA,IAAAC,gBAAyB;AACzB,IAAAC,eAAmB;AACnB,IAAAC,6BAA0C;AAE3B,SAARC,kBAAkC;AACxC,QAAM,EAAE,UAAU,UAAU,QAAI,2CAAgB,gBAAiB;AAEjE,SAAO;AAAA,IACN,WAAO,iBAAI,eAAe,WAAY;AAAA,IACtC,MAAM;AAAA,IACN,SAAS,UAAM,sCAAW,2BAA4B;AAAA,IACtD,UAAU;AAAA,IACV,UAAU;AAAA,EACX;AACD;;;ACVO,SAASC,QAAO;AACtB,iBAAe;AAEf,YAAU,qBAAsB;AAAA,IAC/B,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAUC;AAAA,EACX,CAAE;AACH;;;ACZA,IAAAC,gBAAmB;AACnB,IAAAC,gBAA2B;AAC3B,IAAAC,6BAA2C;AAE5B,SAARC,kBAAkC;AACxC,QAAM,EAAE,UAAU,UAAU,QAAI,2CAAgB,UAAU;AAAA,IACzD,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,EACrB,CAAE;AAEF,SAAO;AAAA,IACN,WAAO,kBAAI,UAAU,WAAY;AAAA,IACjC,MAAM;AAAA,IACN,SAAS,UAAM,uCAAY,eAAgB;AAAA,IAC3C,UAAU;AAAA,IACV,UAAU;AAAA,EACX;AACD;;;ACdO,SAASC,QAAO;AACtB,gBAAc,qBAAsB;AAAA,IACnC,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,IACV,UAAUC;AAAA,EACX,CAAE;AACH;;;ACRA,IAAAC,gBAAmB;AACnB,IAAAC,iBAAyB;AAElB,SAASC,QAAO;AACtB,gBAAc,aAAc;AAAA,IAC3B,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,IACV,UAAU,MAAM;AACf,aAAO;AAAA,QACN,WAAO,kBAAI,QAAQ,WAAY;AAAA,QAC/B,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,MACT;AAAA,IACD;AAAA,EACD,CAAE;AACH;;;ACjBA,IAAAC,iBAA4B;AAC5B,IAAAC,gBAAmB;AACnB,IAAAC,6BAA0C;AAE3B,SAARC,kBAAkC;AACxC,QAAM,EAAE,UAAU,UAAU,QAAI,2CAAgB,eAAgB;AAEhE,SAAO;AAAA,IACN,WAAO,kBAAI,WAAW,WAAY;AAAA,IAClC,MAAM;AAAA,IACN,SAAS,UAAM,sCAAW,uBAAwB;AAAA,IAClD,UAAU;AAAA,IACV,UAAU;AAAA,EACX;AACD;;;ACXO,SAASC,QAAO;AACtB,WAAS,qBAAsB;AAAA,IAC9B,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAUC;AAAA,EACX,CAAE;AACH;;;ACTA,IAAAC,gBAAmB;AAEnB,IAAAC,iBAA6B;AAC7B,IAAAC,6BAA2B;AAEZ,SAARC,kBAA+C;AACrD,SAAO;AAAA,IACN,MAAM;AAAA,IACN,WAAO,kBAAI,sBAAsB,WAAY;AAAA,IAC7C,SAAS,UAAM,uCAAY,gBAAiB;AAAA,EAC7C;AACD;;;ACRO,SAASC,QAAO;AACtB,WAAS,eAAgB;AAAA,IACxB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA;AAAA,IACV,UAAUC;AAAA,EACX,CAAE;AACH;;;ACVA,oBAA8B;;;ACA9B,IAAAC,UAAuB;;;ACAvB,IAAAC,UAAuB;AACvB,IAAAC,cAAkD;AAClD,IAAAC,6BAA4E;AAE7D,SAAR,OAAyB,OAAwC;AACvE,QAAM,mBAAe;AAAA,IACpB;AAAA,UACC,2CAAgB,cAAe;AAAA,UAC/B,4CAAiB,cAAe;AAAA,IACjC;AAAA,IACA;AAAA,EACD;AAEA,MAAK,CAAE,aAAa,SAAU;AAC7B,WAAO;AAAA,EACR;AAEA,SACC,sCAAC,YAAAC,QAAA,EAAW,WAAY,aAAa,SAAY,GAAG,OAAQ;AAE9D;AAEA,SAAS,kBAAkB;AAC1B,aAAO,0CAAe,cAAe,IAClC,EAAE,SAAS,SAAS,cAAe,wBAAyB,EAAE,IAC9D,EAAE,SAAS,KAAK;AACpB;;;AC1BA,IAAAC,UAAuB;AACvB,IAAAC,2BAA4D;AAC5D,IAAAC,cAAgD;AAChD,IAAAC,gBAAmB;AAEJ,SAARC,iBAAiC;AACvC,QAAMC,gBAAW,4CAAkB;AACnC,QAAM,EAAE,KAAK,QAAI,mDAAyB;AAE1C,SACC,sCAAC,qBAAM,IAAK;AAAA,IACX,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,aAAa;AAAA,EACd,KACC;AAAA,IAAC;AAAA;AAAA,MACA,SAAQ;AAAA,MACR,UAAW,CAAEA,aAAY,CAAEA,UAAS;AAAA,MACpC,MAAK;AAAA,MACL,IAAK,EAAE,OAAO,OAAO;AAAA,MACrB,SAAU,MAAMA,aAAY,CAAEA,UAAS,WAAW,KAAK,IAAI;AAAA;AAAA,IAG1DA,WAAU,WACP,sCAAC,kCAAiB,QAClB,kBAAI,gBAAgB,WAAY;AAAA,EAErC,CACD;AAEF;;;AF3Be,SAAR,yBAA0C;AAChD,SACC,sCAAC,cACA,sCAACC,gBAAA,IAAc,CAChB;AAEF;;;AGVA,IAAAC,gBAAmB;AACnB,IAAAC,8BAA2C;AAE3C,IAAAC,iBAA0C;AAE3B,SAARC,kBAAqD;AAC3D,QAAM,EAAE,UAAU,UAAU,QAAI,4CAAgB,gBAAgB;AAAA,IAC/D,kBAAkB;AAAA,EACnB,CAAE;AAEF,SAAO;AAAA,IACN,WAAO,kBAAI,iBAAiB,WAAY;AAAA,IACxC,MAAM;AAAA,IACN,SAAS,MACR,eACG,wCAAY,oBAAqB,QACjC,wCAAY,mBAAoB;AAAA,IAEpC,UAAU;AAAA,IACV,UAAU;AAAA,EACX;AACD;;;AJhBO,SAASC,QAAO;AAEtB,mCAAe;AAAA,IACd,MAAM;AAAA,IACN,QAAQ;AAAA,EACT,CAAE;AAEF,YAAU,qBAAsB;AAAA,IAC/B,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAUC;AAAA,EACX,CAAE;AACH;;;AKjBA,IAAAC,gBAAmB;AACnB,IAAAC,8BAA2C;AAC3C,IAAAC,iBAA8B;AAGf,SAARC,kBAAqD;AAC3D,QAAM,EAAE,UAAU,UAAU,QAAI,4CAAgB,WAAY;AAE5D,SAAO;AAAA,IACN,WAAO,kBAAI,aAAa,WAAY;AAAA,IACpC,MAAM;AAAA,IACN,SAAS,UAAM,wCAAY,kBAAmB;AAAA,IAC9C,UAAU;AAAA,IACV,UAAU;AAAA,EACX;AACD;;;ACZO,SAASC,SAAO;AACtB,YAAU,qBAAsB;AAAA,IAC/B,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAUC;AAAA,EACX,CAAE;AACH;;;ACTA,IAAAC,gBAAmB;AACnB,IAAAC,iBAAiC;AACjC,IAAAC,8BAA2B;AAGZ,SAARC,kBAA+C;AACrD,SAAO;AAAA,IACN,MAAM;AAAA,IACN,WAAO,kBAAI,iBAAiB,WAAY;AAAA,IACxC,SAAS,UAAM,wCAAY,UAAW;AAAA,EACvC;AACD;;;ACRO,SAASC,SAAO;AACtB,WAAS,eAAgB;AAAA,IACxB,MAAM;AAAA,IACN,UAAUC;AAAA,EACX,CAAE;AACH;;;ACRA,IAAAC,gBAAmB;AAEnB,IAAAC,iBAAgC;AAChC,IAAAC,8BAA0C;AAE3B,SAARC,kBAAqD;AAC3D,QAAM,EAAE,UAAU,UAAU,QAAI,4CAAgB,0BAA2B;AAE3E,SAAO;AAAA,IACN,MAAM;AAAA,IACN,WAAO,kBAAI,oBAAoB,WAAY;AAAA,IAC3C,SAAS,UAAM,uCAAW,0BAA2B;AAAA,IACrD,UAAU;AAAA,IACV,UAAU;AAAA,EACX;AACD;;;ACZO,SAASC,SAAO;AACtB,WAAS,qBAAsB;AAAA,IAC9B,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,IACV,UAAUC;AAAA,EACX,CAAE;AACH;;;ACTA,iBAA0C;AAMnC,IAAM,EAAE,KAAK,YAAY,QAAI,qBAAU,6BAA6B,CAAE,YAAkB;AAC9F,MAAK,CAAE,QAAS,OAAQ,GAAI;AAC3B,UAAM,IAAI,2BAAiB,mBAAoB;AAAA,EAChD;AAEA,SAAO;AACR,CAAE;AAEF,SAAS,QAAS,SAAkC;AACnD,SAAO,eAAe,WAAW,OAAO,QAAQ,cAAc;AAC/D;;;ACdA,IAAAC,gBAAmB;AACnB,IAAAC,iBAA8B;AAEvB,SAASC,SAAO;AACtB,WAAS,aAAc;AAAA,IACtB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,MACN,WAAO,kBAAI,kBAAkB,WAAY;AAAA,MACzC,MAAM,IAAI;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,IACT;AAAA,EACD,CAAE;AACH;;;ACGO,SAASC,SAAO;AACtB,OAAuB;AACvB,EAAAA,MAAqB;AACrB,EAAAA,MAAkB;AAClB,EAAAA,MAAa;AACb,EAAAA,MAAW;AACX,EAAAA,MAAS;AACT,EAAAA,MAAY;AACZ,EAAAA,MAAsB;AACtB,EAAAA,MAAiB;AACjB,EAAAA,OAAc;AACd,EAAAA,OAAiB;AACjB,EAAAA,OAAoB;AACpB,EAAAA,OAAc;AACf;;;AlC3Be,SAARC,SAAwB;AAC9B,cAAY;AAEZ,mBAAiB;AAEjB,EAAAA,OAAe;AAEf,oCAAe;AAAA,IACd,MAAM;AAAA,IACN,QAAQ;AAAA,EACT,CAAE;AACH;;;AtBLAC,OAAK;","names":["React","import_react","React","React","React","import_ui","React","React","import_ui","React","useMenuItems","import_locations","React","import_ui","React","import_ui","React","import_ui","React","import_react","import_ui","MenuItem","React","React","import_ui","React","import_ui","import_i18n","import_icons","useMenuItems","MenuItem","React","import_react","import_ui","MAX_TOOLBAR_ACTIONS","useMenuItems","MenuItem","React","import_locations","React","import_locations","React","import_locations","BaseAppBar","import_editor","React","import_ui","import_i18n","import_editor_v1_adapters","import_icons","document","import_i18n","import_icons","import_editor_v1_adapters","import_editor_documents","document","init","import_i18n","import_icons","import_editor_documents","document","import_i18n","import_icons","import_editor_documents","React","import_i18n","React","import_ui","useMenuItems","MenuItem","import_ui","import_editor_documents","import_icons","document","init","import_i18n","import_editor_v1_adapters","import_icons","import_i18n","import_editor_v1_adapters","useActionProps","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","init","useActionProps","import_i18n","import_icons","init","import_icons","import_i18n","import_editor_v1_adapters","useActionProps","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","init","useActionProps","React","React","import_ui","import_editor_v1_adapters","BasePortal","React","import_editor_documents","import_ui","import_i18n","PrimaryAction","document","PrimaryAction","import_i18n","import_editor_v1_adapters","import_icons","useActionProps","init","useActionProps","import_i18n","import_editor_v1_adapters","import_icons","useActionProps","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","init","useActionProps","import_i18n","import_icons","init","init","init","init"]}
package/dist/index.mjs CHANGED
@@ -571,6 +571,7 @@ function PrimaryActionMenu(props) {
571
571
  import {
572
572
  bindMenu as bindMenu3,
573
573
  bindTrigger as bindTrigger3,
574
+ Box as Box5,
574
575
  Button,
575
576
  ButtonGroup,
576
577
  CircularProgress,
@@ -612,7 +613,16 @@ function PrimaryAction() {
612
613
  }
613
614
  }
614
615
  },
615
- /* @__PURE__ */ React22.createElement(Button, { sx: { px: 0 }, ...bindTrigger3(popupState) }, /* @__PURE__ */ React22.createElement(ChevronDownIcon, null))
616
+ /* @__PURE__ */ React22.createElement(Box5, { component: "span", "aria-label": void 0 }, /* @__PURE__ */ React22.createElement(
617
+ Button,
618
+ {
619
+ ...bindTrigger3(popupState),
620
+ sx: { px: 0 },
621
+ disabled: document2.type.value === "kit",
622
+ "aria-label": __7("Save Options", "elementor")
623
+ },
624
+ /* @__PURE__ */ React22.createElement(ChevronDownIcon, null)
625
+ ))
616
626
  )), /* @__PURE__ */ React22.createElement(PrimaryActionMenu, { ...bindMenu3(popupState), onClick: popupState.close }));
617
627
  }
618
628
  function getLabel(document2) {
@@ -956,22 +966,30 @@ function init12() {
956
966
  });
957
967
  }
958
968
 
969
+ // src/env.ts
970
+ import { parseEnv, InvalidEnvError } from "@elementor/env";
971
+ var { env, validateEnv } = parseEnv("@elementor/editor-app-bar", (envData) => {
972
+ if (!isValid(envData)) {
973
+ throw new InvalidEnvError("Invalid admin URL");
974
+ }
975
+ return envData;
976
+ });
977
+ function isValid(subject) {
978
+ return "admin_url" in subject && typeof subject.admin_url === "string";
979
+ }
980
+
959
981
  // src/extensions/wordpress/index.ts
960
- import { useSettings } from "@elementor/editor";
961
982
  import { __ as __19 } from "@wordpress/i18n";
962
983
  import { WordpressIcon } from "@elementor/icons";
963
984
  function init13() {
964
985
  mainMenu.registerLink({
965
986
  name: "manage-website",
966
987
  group: "exits",
967
- useProps: () => {
968
- const { urls } = useSettings();
969
- return {
970
- title: __19("Manage Website", "elementor"),
971
- href: urls.admin,
972
- icon: WordpressIcon,
973
- target: "_blank"
974
- };
988
+ props: {
989
+ title: __19("Manage Website", "elementor"),
990
+ href: env.admin_url,
991
+ icon: WordpressIcon,
992
+ target: "_blank"
975
993
  }
976
994
  });
977
995
  }
@@ -995,6 +1013,7 @@ function init14() {
995
1013
 
996
1014
  // src/init.ts
997
1015
  function init15() {
1016
+ validateEnv();
998
1017
  redirectOldMenus();
999
1018
  init14();
1000
1019
  injectIntoTop2({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/locations/menus.tsx","../src/components/actions/action.tsx","../src/contexts/menu-context.tsx","../src/components/ui/toolbar-menu-item.tsx","../src/components/ui/popover-menu-item.tsx","../src/components/actions/toggle-action.tsx","../src/components/ui/toolbar-menu-toggle-item.tsx","../src/components/actions/link.tsx","../src/locations/index.ts","../src/locations/consts.ts","../src/components/app-bar.tsx","../src/components/locations/main-menu-location.tsx","../src/components/ui/popover-menu.tsx","../src/components/ui/toolbar-logo.tsx","../src/components/locations/tools-menu-location.tsx","../src/components/ui/toolbar-menu.tsx","../src/components/ui/toolbar-menu-more.tsx","../src/components/locations/utilities-menu-location.tsx","../src/components/locations/primary-action-location.tsx","../src/components/locations/page-indication-location.tsx","../src/components/locations/responsive-location.tsx","../src/init.ts","../src/sync/redirect-old-menus.ts","../src/extensions/documents-indicator/components/settings-button.tsx","../src/extensions/documents-indicator/index.ts","../src/extensions/documents-preview/hooks/use-action-props.ts","../src/extensions/documents-preview/index.ts","../src/extensions/documents-save/hooks/use-document-save-draft-props.ts","../src/extensions/documents-save/hooks/use-document-save-template-props.ts","../src/extensions/documents-save/components/primary-action.tsx","../src/extensions/documents-save/components/primary-action-menu.tsx","../src/extensions/documents-save/index.ts","../src/extensions/elements/sync/sync-panel-title.ts","../src/extensions/elements/hooks/use-action-props.ts","../src/extensions/elements/index.ts","../src/extensions/finder/hooks/use-action-props.ts","../src/extensions/finder/index.ts","../src/extensions/help/index.ts","../src/extensions/history/hooks/use-action-props.ts","../src/extensions/history/index.ts","../src/extensions/keyboard-shortcuts/hooks/use-action-props.ts","../src/extensions/keyboard-shortcuts/index.ts","../src/extensions/site-settings/index.ts","../src/extensions/site-settings/components/portalled-primary-action.tsx","../src/extensions/site-settings/components/portal.tsx","../src/extensions/site-settings/components/primary-action.tsx","../src/extensions/site-settings/hooks/use-action-props.ts","../src/extensions/structure/hooks/use-action-props.ts","../src/extensions/structure/index.ts","../src/extensions/theme-builder/hooks/use-action-props.ts","../src/extensions/theme-builder/index.ts","../src/extensions/user-preferences/hooks/use-action-props.ts","../src/extensions/user-preferences/index.ts","../src/extensions/wordpress/index.ts","../src/extensions/index.ts","../src/index.ts"],"sourcesContent":["import * as React from 'react';\nimport { ComponentPropsWithoutRef, ElementType, useMemo } from 'react';\nimport { inject, useInjectionsOf } from '@elementor/locations';\nimport Action from '../components/actions/action';\nimport ToggleAction from '../components/actions/toggle-action';\nimport Link from '../components/actions/link';\n\ntype MenuName = string;\ntype GroupName = string;\n\ntype Menu<TGroup extends GroupName = 'default'> = {\n\tname: MenuName,\n\tgroups: TGroup[],\n};\n\ntype MenuWithOptionalGroups<TGroup extends GroupName> = Omit<Menu<TGroup>, 'groups'> & { groups?: TGroup[] };\n\ntype MenuGroup<TGroup extends GroupName> = TGroup | 'default';\n\ntype GroupedItems<TGroup extends GroupName> = Record<MenuGroup<TGroup>, Array<{ id: string, MenuItem: ElementType }>>;\n\ntype MenuItem<\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n> = {\n\tname: string,\n\tgroup?: TGroup,\n\tpriority?: number,\n\toverwrite?: boolean,\n} & (\n\t{ props: ComponentPropsWithoutRef<TComponent>, useProps?: never } |\n\t{ useProps: () => ComponentPropsWithoutRef<TComponent>, props?: never }\n)\n\nexport function createMenu<TGroup extends GroupName = 'default'>( { name: menuName, groups = [] }: MenuWithOptionalGroups<TGroup> ) {\n\tconst menuGroups: MenuGroup<TGroup>[] = [\n\t\t...groups,\n\t\t'default' as const,\n\t];\n\n\tconst registerAction = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: Action,\n\t} );\n\n\tconst registerToggleAction = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: ToggleAction,\n\t} );\n\n\tconst registerLink = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: Link,\n\t} );\n\n\tconst useMenuItems = createUseMenuItems( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t} );\n\n\treturn {\n\t\tregisterAction,\n\t\tregisterToggleAction,\n\t\tregisterLink,\n\t\tuseMenuItems,\n\t};\n}\n\nfunction createRegisterMenuItem<\n\tTMenuName extends MenuName,\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n>( { menuName, menuGroups, component }: {\n\tmenuName: TMenuName,\n\tmenuGroups: MenuGroup<TGroup>[],\n\tcomponent: TComponent,\n} ) {\n\treturn ( { group = 'default', name, overwrite, priority, ...args }: MenuItem<MenuGroup<TGroup>, TComponent> ) => {\n\t\tif ( ! menuGroups.includes( group ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst useProps = 'props' in args ? () => args.props : args.useProps;\n\n\t\tconst Component = component as ElementType;\n\n\t\tconst Filler = ( props: object ) => {\n\t\t\tconst componentProps = useProps();\n\n\t\t\treturn <Component { ...props } { ...componentProps } />;\n\t\t};\n\n\t\tconst location = getMenuLocationId( menuName, group );\n\n\t\tinject( {\n\t\t\tlocation,\n\t\t\tname,\n\t\t\tfiller: Filler,\n\t\t\toptions: {\n\t\t\t\tpriority,\n\t\t\t\toverwrite,\n\t\t\t},\n\t\t} );\n\t};\n}\n\nfunction createUseMenuItems<\n\tTMenuName extends MenuName,\n\tTGroup extends GroupName,\n>( { menuName, menuGroups }: {\n\tmenuName: TMenuName,\n\tmenuGroups: MenuGroup<TGroup>[],\n} ) {\n\tconst locations = menuGroups.map( ( group ) => getMenuLocationId( menuName, group ) );\n\n\treturn () => {\n\t\tconst injectionsGroups = useInjectionsOf( locations );\n\n\t\t// Normalize the injections groups to an object with the groups as keys.\n\t\treturn useMemo( () => {\n\t\t\treturn injectionsGroups.reduce<GroupedItems<TGroup>>( ( acc, injections, index ) => {\n\t\t\t\tconst groupName = menuGroups[ index ];\n\n\t\t\t\treturn {\n\t\t\t\t\t...acc,\n\t\t\t\t\t[ groupName ]: injections.map( ( injection ) => ( {\n\t\t\t\t\t\tid: injection.id,\n\t\t\t\t\t\tMenuItem: injection.filler,\n\t\t\t\t\t} ) ),\n\t\t\t\t};\n\t\t\t}, {} as GroupedItems<TGroup> );\n\t\t}, [ injectionsGroups ] );\n\t};\n}\n\nfunction getMenuLocationId( menu: MenuName, group: GroupName ) {\n\treturn `editor/app-bar/${ menu }/${ group }` as const;\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport ToolbarMenuItem from '../ui/toolbar-menu-item';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\tdisabled?: boolean;\n\tvisible?: boolean;\n\tonClick?: () => void;\n};\n\nexport default function Action( { icon: Icon, title, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuItem title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import * as React from 'react';\nimport { createContext, PropsWithChildren, useContext } from 'react';\n\ntype MenuContextValue = {\n\ttype: 'toolbar' | 'popover';\n}\n\nconst MenuContext = createContext<MenuContextValue>( { type: 'toolbar' } );\n\nexport function MenuContextProvider( { type, children }: PropsWithChildren<MenuContextValue> ) {\n\treturn (\n\t\t<MenuContext.Provider value={ { type } }>\n\t\t\t{ children }\n\t\t</MenuContext.Provider>\n\t);\n}\n\nexport function useMenuContext() {\n\treturn useContext( MenuContext );\n}\n","import * as React from 'react';\nimport { Box, IconButton, IconButtonProps, Tooltip } from '@elementor/ui';\n\nexport type ToolbarMenuItemProps = IconButtonProps & {\n\ttitle?: string;\n\tselected?: boolean;\n}\n\nexport default function ToolbarMenuItem( { title, ...props }: ToolbarMenuItemProps ) {\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<IconButton { ...props } aria-label={ title } size=\"small\" />\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport {\n\tMenuItem,\n\tMenuItemProps,\n\tListItemText,\n\tListItemIcon,\n\twithDirection,\n} from '@elementor/ui';\nimport { ArrowUpRightIcon } from '@elementor/icons';\n\ntype ExtraProps = {\n\thref?: string;\n\ttarget?: string;\n\ttext?: string;\n\ticon?: JSX.Element;\n}\n\nexport type PopoverMenuItemProps = MenuItemProps & ExtraProps;\n\nconst DirectionalArrowIcon = withDirection( ArrowUpRightIcon );\n\nexport default function PopoverMenuItem( { text, icon, onClick, href, target, disabled, ...props }: PopoverMenuItemProps ) {\n\tconst isExternalLink = href && target === '_blank';\n\n\treturn (\n\t\t<MenuItem\n\t\t\t{ ...props }\n\t\t\tdisabled={ disabled }\n\t\t\tonClick={ onClick }\n\t\t\tcomponent={ href ? 'a' : 'div' }\n\t\t\thref={ href }\n\t\t\ttarget={ target }\n\t\t>\n\t\t\t<ListItemIcon>{ icon }</ListItemIcon>\n\t\t\t<ListItemText primary={ text } />\n\t\t\t{ isExternalLink && <DirectionalArrowIcon /> }\n\t\t</MenuItem>\n\t);\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport ToolbarMenuToggleItem from '../ui/toolbar-menu-toggle-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\tselected?: boolean;\n\tdisabled?: boolean;\n\tvisible?: boolean;\n\tonClick?: () => void;\n\tvalue?: string;\n};\n\nexport default function ToggleAction( { icon: Icon, title, value, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuToggleItem value={ value || title } title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuToggleItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import * as React from 'react';\nimport { Box, ToggleButton, ToggleButtonProps, Tooltip } from '@elementor/ui';\n\nexport type ToolbarMenuToggleItemProps = Omit<ToggleButtonProps, 'onChange'> & {\n\ttitle?: string;\n\tonClick?: () => void;\n}\n\nexport default function ToolbarMenuToggleItem( { title, onClick, ...props }: ToolbarMenuToggleItemProps ) {\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<ToggleButton { ...props } onChange={ onClick } aria-label={ title } size=\"small\" />\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport ToolbarMenuItem from '../ui/toolbar-menu-item';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\thref?: string;\n\tvisible?: boolean;\n\ttarget?: string;\n}\n\nexport default function Link( { icon: Icon, title, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuItem title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import { createMenu } from './menus';\nimport { createInjectorFor } from '@elementor/locations';\nimport { LOCATION_PAGE_INDICATION, LOCATION_PRIMARY_ACTION, LOCATION_RESPONSIVE } from './consts';\n\nexport * from './consts';\n\nexport { createMenu } from './menus';\n\nexport const injectIntoPageIndication = createInjectorFor( LOCATION_PAGE_INDICATION );\nexport const injectIntoResponsive = createInjectorFor( LOCATION_RESPONSIVE );\nexport const injectIntoPrimaryAction = createInjectorFor( LOCATION_PRIMARY_ACTION );\n\nexport const mainMenu = createMenu( {\n\tname: 'main',\n\tgroups: [ 'exits' ],\n} );\n\nexport const toolsMenu = createMenu( {\n\tname: 'tools',\n} );\n\nexport const utilitiesMenu = createMenu( {\n\tname: 'utilities',\n} );\n\nexport const documentOptionsMenu = createMenu( {\n\tname: 'document-options',\n\tgroups: [ 'save' ],\n} );\n","// Locations\nexport const LOCATION_PAGE_INDICATION = 'editor/app-bar/page-indication' as const;\nexport const LOCATION_RESPONSIVE = 'editor/app-bar/responsive' as const;\nexport const LOCATION_PRIMARY_ACTION = 'editor/app-bar/primary-action' as const;\n","import * as React from 'react';\nimport { AppBar as BaseAppBar, Box, Divider, Grid, ThemeProvider } from '@elementor/ui';\nimport MainMenuLocation from './locations/main-menu-location';\nimport ToolsMenuLocation from './locations/tools-menu-location';\nimport UtilitiesMenuLocation from './locations/utilities-menu-location';\nimport PrimaryActionLocation from './locations/primary-action-location';\nimport ToolbarMenu from './ui/toolbar-menu';\nimport PageIndicationLocation from './locations/page-indication-location';\nimport ResponsiveLocation from './locations/responsive-location';\n\nexport default function AppBar() {\n\treturn (\n\t\t<ThemeProvider colorScheme=\"dark\">\n\t\t\t<BaseAppBar position=\"sticky\">\n\t\t\t\t<Box display=\"grid\" gridTemplateColumns=\"repeat(3, 1fr)\">\n\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t<MainMenuLocation />\n\t\t\t\t\t\t<ToolsMenuLocation />\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"center\">\n\t\t\t\t\t\t<ToolbarMenu spacing={ 3 }>\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t\t<PageIndicationLocation />\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t\t<ResponsiveLocation />\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t</ToolbarMenu>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"flex-end\">\n\t\t\t\t\t\t<UtilitiesMenuLocation />\n\t\t\t\t\t\t<PrimaryActionLocation />\n\t\t\t\t\t</Grid>\n\t\t\t\t</Box>\n\t\t\t</BaseAppBar>\n\t\t</ThemeProvider>\n\t);\n}\n","import * as React from 'react';\nimport { usePopupState, bindMenu, bindTrigger, Stack, Divider } from '@elementor/ui';\nimport { mainMenu } from '../../locations';\nimport PopoverMenu from '../ui/popover-menu';\nimport ToolbarLogo from '../ui/toolbar-logo';\n\nconst { useMenuItems } = mainMenu;\n\nexport default function MainMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst orderedGroups = [\n\t\tmenuItems.default,\n\t\tmenuItems.exits,\n\t];\n\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: 'elementor-v2-app-bar-main-menu',\n\t} );\n\n\treturn (\n\t\t<Stack sx={ { paddingInlineStart: 4 } } direction=\"row\" alignItems=\"center\">\n\t\t\t<ToolbarLogo\n\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\tselected={ popupState.isOpen }\n\t\t\t/>\n\t\t\t<PopoverMenu\n\t\t\t\tonClick={ popupState.close }\n\t\t\t\t{ ...bindMenu( popupState ) }\n\t\t\t\tPaperProps={ {\n\t\t\t\t\tsx: { mt: 4, marginInlineStart: -2 },\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\torderedGroups\n\t\t\t\t\t\t.filter( ( group ) => group.length )\n\t\t\t\t\t\t.map( ( group, index ) => {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tindex > 0 ? <Divider key={ index } orientation=\"horizontal\" /> : null,\n\t\t\t\t\t\t\t\t...group.map(\n\t\t\t\t\t\t\t\t\t( { MenuItem, id } ) => <MenuItem key={ id } />\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t</PopoverMenu>\n\t\t</Stack>\n\t);\n}\n","import * as React from 'react';\nimport { Menu, MenuProps } from '@elementor/ui';\nimport { MenuContextProvider } from '../../contexts/menu-context';\n\nexport type PopoverMenuProps = MenuProps;\n\nexport default function PopoverMenu( { children, ...props }: PopoverMenuProps ) {\n\treturn (\n\t\t<MenuContextProvider type={ 'popover' }>\n\t\t\t<Menu\n\t\t\t\tPaperProps={ {\n\t\t\t\t\tsx: { mt: 4 },\n\t\t\t\t} }\n\t\t\t\t{ ...props }\n\t\t\t\tMenuListProps={ {\n\t\t\t\t\tcomponent: 'div',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Menu>\n\t\t</MenuContextProvider>\n\t);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { __ } from '@wordpress/i18n';\nimport { ToggleButton, ToggleButtonProps, SvgIconProps, SvgIcon, styled } from '@elementor/ui';\n\ninterface StyledElementorLogoProps extends SvgIconProps {\n\tshowMenuIcon?: boolean;\n}\n\ntype ToolbarLogoProps = Omit<ToggleButtonProps, 'value'>;\n\nconst ElementorLogo = ( props: SvgIconProps ) => {\n\treturn (\n\t\t<SvgIcon viewBox=\"0 0 32 32\" { ...props }>\n\t\t\t<g>\n\t\t\t\t<circle cx=\"16\" cy=\"16\" r=\"16\" />\n\t\t\t\t<path d=\"M11.7 9H9V22.3H11.7V9Z\" />\n\t\t\t\t<path d=\"M22.4 9H9V11.7H22.4V9Z\" />\n\t\t\t\t<path d=\"M22.4 14.4004H9V17.1004H22.4V14.4004Z\" />\n\t\t\t\t<path d=\"M22.4 19.6992H9V22.3992H22.4V19.6992Z\" />\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n\nconst StyledToggleButton = styled( ToggleButton )( () => ( {\n\tpadding: 0,\n\t'&.MuiToggleButton-root:hover': {\n\t\tbackgroundColor: 'initial',\n\t},\n\t'&.MuiToggleButton-root.Mui-selected': {\n\t\tbackgroundColor: 'initial',\n\t},\n} ) );\n\nconst StyledElementorLogo = styled( ElementorLogo, {\n\tshouldForwardProp: ( prop ) => prop !== 'showMenuIcon',\n} )<StyledElementorLogoProps>( ( { theme, showMenuIcon } ) => ( {\n\twidth: 'auto',\n\theight: '100%',\n\t'& path': {\n\t\tfill: 'initial',\n\t\ttransition: 'all 0.2s linear',\n\t\ttransformOrigin: 'bottom left',\n\t\t'&:first-of-type': {\n\t\t\ttransitionDelay: ! showMenuIcon && '0.2s',\n\t\t\ttransform: showMenuIcon && 'translateY(-9px) scaleY(0)',\n\t\t},\n\t\t'&:not(:first-of-type)': {\n\t\t\t// Emotion automatically change 4 to -4 in RTL moode.\n\t\t\ttransform: ! showMenuIcon && `translateX(${ theme.direction === 'rtl' ? '4' : '9' }px) scaleX(0.6)`,\n\t\t},\n\t\t'&:nth-of-type(2)': {\n\t\t\ttransitionDelay: showMenuIcon ? '0' : '0.2s',\n\t\t},\n\t\t'&:nth-of-type(3)': {\n\t\t\ttransitionDelay: '0.1s',\n\t\t},\n\t\t'&:nth-of-type(4)': {\n\t\t\ttransitionDelay: showMenuIcon ? '0.2s' : '0',\n\t\t},\n\t},\n} ) );\n\nexport default function ToolbarLogo( props: ToolbarLogoProps ) {\n\tconst [ isHoverState, setIsHoverState ] = useState( false );\n\tconst showMenuIcon = props.selected || isHoverState;\n\n\treturn (\n\t\t<StyledToggleButton\n\t\t\t{ ...props }\n\t\t\tvalue=\"selected\"\n\t\t\tsize=\"small\"\n\t\t\tonMouseEnter={ () => setIsHoverState( true ) }\n\t\t\tonMouseLeave={ () => setIsHoverState( false ) }\n\t\t>\n\t\t\t<StyledElementorLogo titleAccess={ __( 'Elementor Logo', 'elementor' ) } showMenuIcon={ showMenuIcon } />\n\t\t</StyledToggleButton>\n\t);\n}\n","import * as React from 'react';\nimport { toolsMenu } from '../../locations';\nimport ToolbarMenu from '../ui/toolbar-menu';\nimport ToolbarMenuMore from '../ui/toolbar-menu-more';\n\nconst MAX_TOOLBAR_ACTIONS = 5;\n\nconst { useMenuItems } = toolsMenu;\n\nexport default function ToolsMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst toolbarMenuItems = menuItems.default.slice( 0, MAX_TOOLBAR_ACTIONS );\n\tconst popoverMenuItems = menuItems.default.slice( MAX_TOOLBAR_ACTIONS );\n\n\treturn (\n\t\t<ToolbarMenu>\n\t\t\t{ toolbarMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t{ popoverMenuItems.length > 0 && (\n\t\t\t\t<ToolbarMenuMore id=\"elementor-editor-app-bar-tools-more\">\n\t\t\t\t\t{ popoverMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t\t</ToolbarMenuMore>\n\t\t\t) }\n\t\t</ToolbarMenu>\n\t);\n}\n","import * as React from 'react';\nimport { Stack, StackProps } from '@elementor/ui';\nimport { MenuContextProvider } from '../../contexts/menu-context';\n\nexport type ToolbarMenuProps = StackProps;\n\nexport default function ToolbarMenu( { children, ...props }: ToolbarMenuProps ) {\n\treturn (\n\t\t<MenuContextProvider type={ 'toolbar' }>\n\t\t\t<Stack sx={ { px: 4 } } spacing={ 4 } direction=\"row\" alignItems=\"center\" { ...props }>\n\t\t\t\t{ children }\n\t\t\t</Stack>\n\t\t</MenuContextProvider>\n\t);\n}\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { bindMenu, bindTrigger, usePopupState } from '@elementor/ui';\nimport ToolbarMenuItem from './toolbar-menu-item';\nimport { __ } from '@wordpress/i18n';\nimport { DotsVerticalIcon } from '@elementor/icons';\nimport PopoverMenu from './popover-menu';\n\nexport type ToolbarMenuMoreProps = PropsWithChildren<{\n\tid: string;\n}>\n\nexport default function ToolbarMenuMore( { children, id }: ToolbarMenuMoreProps ) {\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: id,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarMenuItem { ...bindTrigger( popupState ) } title={ __( 'More', 'elementor' ) }>\n\t\t\t\t<DotsVerticalIcon />\n\t\t\t</ToolbarMenuItem>\n\t\t\t<PopoverMenu onClick={ popupState.close } { ...bindMenu( popupState ) }>\n\t\t\t\t{ children }\n\t\t\t</PopoverMenu>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport { Fragment } from 'react';\nimport ToolbarMenu from '../ui/toolbar-menu';\nimport { utilitiesMenu } from '../../locations';\nimport { Divider } from '@elementor/ui';\nimport ToolbarMenuMore from '../ui/toolbar-menu-more';\n\nconst MAX_TOOLBAR_ACTIONS = 3;\n\nconst { useMenuItems } = utilitiesMenu;\n\nexport default function UtilitiesMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst toolbarMenuItems = menuItems.default.slice( 0, MAX_TOOLBAR_ACTIONS );\n\tconst popoverMenuItems = menuItems.default.slice( MAX_TOOLBAR_ACTIONS );\n\n\treturn (\n\t\t<ToolbarMenu>\n\t\t\t{ toolbarMenuItems.map(\n\t\t\t\t( { MenuItem, id }, index ) => (\n\t\t\t\t\t<Fragment key={ id }>\n\t\t\t\t\t\t{ index === 0 && <Divider orientation=\"vertical\" /> }\n\t\t\t\t\t\t<MenuItem />\n\t\t\t\t\t</Fragment>\n\t\t\t\t)\n\t\t\t) }\n\t\t\t{ popoverMenuItems.length > 0 && (\n\t\t\t\t<ToolbarMenuMore id=\"elementor-editor-app-bar-utilities-more\">\n\t\t\t\t\t{ popoverMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t\t</ToolbarMenuMore>\n\t\t\t) }\n\t\t</ToolbarMenu>\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_PRIMARY_ACTION } from '../../locations';\n\nexport default function PrimaryActionLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_PRIMARY_ACTION } />\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_PAGE_INDICATION } from '../../locations';\n\nexport default function PageIndicationLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_PAGE_INDICATION } />\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_RESPONSIVE } from '../../locations';\n\nexport default function ResponsiveLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_RESPONSIVE } />\n\t);\n}\n","import AppBar from './components/app-bar';\nimport { injectIntoTop } from '@elementor/editor';\nimport redirectOldMenus from './sync/redirect-old-menus';\nimport { init as initExtensions } from './extensions';\n\nexport default function init() {\n\tredirectOldMenus();\n\n\tinitExtensions();\n\n\tinjectIntoTop( {\n\t\tname: 'app-bar',\n\t\tfiller: AppBar,\n\t} );\n}\n","import { listenTo, openRoute, routeOpenEvent } from '@elementor/editor-v1-adapters';\n\nexport default function redirectOldMenus() {\n\t// Currently, in V1, when you click `esc` it opens the hamburger menu in the panel.\n\t// In V2, we don't have this panel, so we redirect the user to the elements panel instead.\n\tlistenTo( routeOpenEvent( 'panel/menu' ), () => {\n\t\topenRoute( 'panel/elements/categories' );\n\t} );\n}\n","import * as React from 'react';\nimport { Box, ToggleButton, Tooltip } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { SettingsIcon } from '@elementor/icons';\nimport { useActiveDocument, useHostDocument } from '@elementor/editor-documents';\n\nexport default function SettingsButton() {\n\tconst activeDocument = useActiveDocument();\n\tconst hostDocument = useHostDocument();\n\n\tconst document = activeDocument && activeDocument.type.value !== 'kit'\n\t\t? activeDocument\n\t\t: hostDocument;\n\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/page-settings' );\n\n\tif ( ! document ) {\n\t\treturn null;\n\t}\n\n\t/* translators: %s: Post type label. */\n\tconst title = __( '%s Settings', 'elementor' )\n\t\t.replace( '%s', document.type.label );\n\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<ToggleButton\n\t\t\t\t\tvalue=\"document-settings\"\n\t\t\t\t\tselected={ isActive }\n\t\t\t\t\tdisabled={ isBlocked }\n\t\t\t\t\tonChange={ () => openRoute( 'panel/page-settings/settings' ) }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<SettingsIcon />\n\t\t\t\t</ToggleButton>\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import { injectIntoPageIndication } from '../../locations';\nimport SettingsButton from './components/settings-button';\n\nexport function init() {\n\tinjectIntoPageIndication( {\n\t\tname: 'document-settings-button',\n\t\tfiller: SettingsButton,\n\t\toptions: {\n\t\t\tpriority: 20, // After document indicator.\n\t\t},\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { EyeIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\nimport { useActiveDocument } from '@elementor/editor-documents';\n\nexport default function useActionProps() {\n\tconst document = useActiveDocument();\n\n\treturn {\n\t\ticon: EyeIcon,\n\t\ttitle: __( 'Preview Changes', 'elementor' ),\n\t\tonClick: () => document && runCommand( 'editor/documents/preview', {\n\t\t\tid: document.id,\n\t\t\tforce: true,\n\t\t} ),\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useDocumentPreviewProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerAction( {\n\t\tname: 'document-preview-button',\n\t\tpriority: 30, // After help.\n\t\tuseProps: useDocumentPreviewProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { FileReportIcon } from '@elementor/icons';\nimport { useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\n\nexport default function useDocumentSaveDraftProps(): ActionProps {\n\tconst document = useActiveDocument();\n\tconst { saveDraft } = useActiveDocumentActions();\n\n\treturn {\n\t\ticon: FileReportIcon,\n\t\ttitle: __( 'Save Draft', 'elementor' ),\n\t\tonClick: saveDraft,\n\t\tdisabled: ! document || document.isSaving || document.isSavingDraft || ! document.isDirty,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { FolderIcon } from '@elementor/icons';\nimport { useActiveDocumentActions } from '@elementor/editor-documents';\n\nexport default function useDocumentSaveTemplateProps(): ActionProps {\n\tconst { saveTemplate } = useActiveDocumentActions();\n\n\treturn {\n\t\ticon: FolderIcon,\n\t\ttitle: __( 'Save as Template', 'elementor' ),\n\t\tonClick: saveTemplate,\n\t};\n}\n","import * as React from 'react';\nimport { __ } from '@wordpress/i18n';\nimport PrimaryActionMenu from './primary-action-menu';\nimport {\n\tbindMenu,\n\tbindTrigger,\n\tButton,\n\tButtonGroup,\n\tCircularProgress,\n\tTooltip,\n\tusePopupState,\n} from '@elementor/ui';\nimport { Document, useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\nimport { ChevronDownIcon } from '@elementor/icons';\n\nexport default function PrimaryAction() {\n\tconst document = useActiveDocument();\n\tconst { save } = useActiveDocumentActions();\n\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: 'document-save-options',\n\t} );\n\n\tif ( ! document ) {\n\t\treturn null;\n\t}\n\n\tconst isDisabled = ! isEnabled( document );\n\n\t// When the document is being saved, the spinner should not appear.\n\t// Usually happens when the Kit is being saved.\n\tconst shouldShowSpinner = document.isSaving && ! isDisabled;\n\n\treturn (\n\t\t<>\n\t\t\t<ButtonGroup size=\"large\" variant=\"contained\">\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ () => ! document.isSaving && save() }\n\t\t\t\t\tsx={ { width: '120px' } }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowSpinner ? <CircularProgress /> : getLabel( document ) }\n\t\t\t\t</Button>\n\n\t\t\t\t<Tooltip\n\t\t\t\t\ttitle={ __( 'Save Options', 'elementor' ) }\n\t\t\t\t\tPopperProps={ {\n\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\t\t\t\tmt: 3,\n\t\t\t\t\t\t\t\tmr: 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Button sx={ { px: 0 } } { ...bindTrigger( popupState ) }>\n\t\t\t\t\t\t<ChevronDownIcon />\n\t\t\t\t\t</Button>\n\t\t\t\t</Tooltip>\n\t\t\t</ButtonGroup>\n\t\t\t<PrimaryActionMenu { ...bindMenu( popupState ) } onClick={ popupState.close } />\n\t\t</>\n\t);\n}\n\nfunction getLabel( document: Document ) {\n\treturn document.userCan.publish\n\t\t? __( 'Publish', 'elementor' )\n\t\t: __( 'Submit', 'elementor' );\n}\n\nfunction isEnabled( document: Document ) {\n\tif ( document.type.value === 'kit' ) {\n\t\treturn false;\n\t}\n\n\treturn document.isDirty || document.status.value === 'draft';\n}\n","import * as React from 'react';\nimport { Divider, styled } from '@elementor/ui';\nimport { documentOptionsMenu } from '../../../locations';\nimport PopoverMenu, { PopoverMenuProps } from '../../../components/ui/popover-menu';\n\nconst { useMenuItems } = documentOptionsMenu;\n\n// CSS hack to hide dividers when a group is rendered empty (due to a limitation in our locations' mechanism).\n// It doesn't cover all the cases (i.e. when there are multiple dividers at the end), but it's good enough for our use-case.\nconst StyledPopoverMenu = styled( PopoverMenu )`\n\t& > .MuiPopover-paper > .MuiList-root > .MuiDivider-root {\n\t\t&:only-child, /* A divider is being rendered lonely */\n\t\t&:last-child, /* The last group renders empty but renders a divider */\n\t\t& + .MuiDivider-root /* Multiple dividers due to multiple empty groups */ {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n`;\n\nexport default function PrimaryActionMenu( props: PopoverMenuProps ) {\n\tconst { save: saveActions, default: defaultActions } = useMenuItems();\n\n\treturn (\n\t\t<StyledPopoverMenu\n\t\t\t{ ...props }\n\t\t\tanchorOrigin={ {\n\t\t\t\tvertical: 'bottom',\n\t\t\t\thorizontal: 'right',\n\t\t\t} }\n\t\t\ttransformOrigin={ {\n\t\t\t\tvertical: 'top',\n\t\t\t\thorizontal: 'right',\n\t\t\t} }\n\t\t\tPaperProps={ {\n\t\t\t\tsx: { mt: 2, ml: 3 },\n\t\t\t} }\n\t\t>\n\t\t\t{ saveActions.map( ( { MenuItem, id }, index ) => ( [\n\t\t\t\t( index > 0 ) && <Divider key={ `${ id }-divider` } />,\n\t\t\t\t<MenuItem key={ id } />,\n\t\t\t] ) ) }\n\n\t\t\t{ defaultActions.length > 0 && <Divider /> }\n\n\t\t\t{ defaultActions.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t</StyledPopoverMenu>\n\t);\n}\n","import { documentOptionsMenu, injectIntoPrimaryAction } from '../../locations';\nimport useDocumentSaveDraftProps from './hooks/use-document-save-draft-props';\nimport useDocumentSaveTemplateProps from './hooks/use-document-save-template-props';\nimport PrimaryAction from './components/primary-action';\n\nexport function init() {\n\tinjectIntoPrimaryAction( {\n\t\tname: 'document-primary-action',\n\t\tfiller: PrimaryAction,\n\t} );\n\n\t// Documents options menu.\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tname: 'document-save-draft',\n\t\tpriority: 10, // Before save as template.\n\t\tuseProps: useDocumentSaveDraftProps,\n\t} );\n\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tname: 'document-save-as-template',\n\t\tpriority: 20, // After save draft.\n\t\tuseProps: useDocumentSaveTemplateProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { isRouteActive, listenTo, routeOpenEvent, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\ntype ExtendedWindow = Window & {\n\telementor: {\n\t\tgetPanelView: () => {\n\t\t\tgetHeaderView: () => {\n\t\t\t\tsetTitle: ( title: string ) => void;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default function syncPanelTitle() {\n\tconst panelTitle = __( 'Elements', 'elementor' );\n\tconst tabTitle = __( 'Widgets', 'elementor' );\n\n\tlistenTo(\n\t\trouteOpenEvent( 'panel/elements' ),\n\t\t() => {\n\t\t\tsetPanelTitle( panelTitle );\n\t\t\tsetTabTitle( tabTitle );\n\t\t}\n\t);\n\n\tlistenTo(\n\t\tv1ReadyEvent(),\n\t\t() => {\n\t\t\tif ( isRouteActive( 'panel/elements' ) ) {\n\t\t\t\tsetPanelTitle( panelTitle );\n\t\t\t\tsetTabTitle( tabTitle );\n\t\t\t}\n\t\t}\n\t);\n}\n\nfunction setPanelTitle( title: string ) {\n\t( window as unknown as ExtendedWindow ).elementor?.getPanelView?.()?.getHeaderView?.()?.setTitle?.( title );\n}\n\nfunction setTabTitle( title: string ) {\n\tconst tab = document.querySelector( '.elementor-component-tab[data-tab=\"categories\"]' );\n\n\tif ( tab ) {\n\t\ttab.textContent = title;\n\t}\n}\n","import { PlusIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/elements' );\n\n\treturn {\n\t\ttitle: __( 'Add Element', 'elementor' ),\n\t\ticon: PlusIcon,\n\t\tonClick: () => openRoute( 'panel/elements/categories' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import syncPanelTitle from './sync/sync-panel-title';\nimport { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tsyncPanelTitle();\n\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'open-elements-panel',\n\t\tpriority: 1,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { SearchIcon } from '@elementor/icons';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'finder', {\n\t\tblockOnKitRoutes: false,\n\t\tblockOnPreviewMode: false,\n\t} );\n\n\treturn {\n\t\ttitle: __( 'Finder', 'elementor' ),\n\t\ticon: SearchIcon,\n\t\tonClick: () => runCommand( 'finder/toggle' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerToggleAction( {\n\t\tname: 'toggle-finder',\n\t\tpriority: 10, // Before help.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { utilitiesMenu } from '../../locations';\nimport { __ } from '@wordpress/i18n';\nimport { HelpIcon } from '@elementor/icons';\n\nexport function init() {\n\tutilitiesMenu.registerLink( {\n\t\tname: 'open-help-center',\n\t\tpriority: 20, // After Finder.\n\t\tuseProps: () => {\n\t\t\treturn {\n\t\t\t\ttitle: __( 'Help', 'elementor' ),\n\t\t\t\thref: 'https://go.elementor.com/editor-top-bar-learn/',\n\t\t\t\ticon: HelpIcon,\n\t\t\t\ttarget: '_blank',\n\t\t\t};\n\t\t},\n\t} );\n}\n","import { HistoryIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/history' );\n\n\treturn {\n\t\ttitle: __( 'History', 'elementor' ),\n\t\ticon: HistoryIcon,\n\t\tonClick: () => openRoute( 'panel/history/actions' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerToggleAction( {\n\t\tname: 'open-history',\n\t\tpriority: 20,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { KeyboardIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps(): ActionProps {\n\treturn {\n\t\ticon: KeyboardIcon,\n\t\ttitle: __( 'Keyboard Shortcuts', 'elementor' ),\n\t\tonClick: () => runCommand( 'shortcuts/open' ),\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerAction( {\n\t\tname: 'open-keyboard-shortcuts',\n\t\tgroup: 'default',\n\t\tpriority: 40, // After user preferences.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { injectIntoTop } from '@elementor/editor';\nimport PortalledPrimaryAction from './components/portalled-primary-action';\nimport { toolsMenu } from '../../locations/index';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\t// This is portal, so it injected into the top of the editor, but renders inside the site-settings panel.\n\tinjectIntoTop( {\n\t\tname: 'site-settings-primary-action-portal',\n\t\tfiller: PortalledPrimaryAction,\n\t} );\n\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'toggle-site-settings',\n\t\tpriority: 2,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import * as React from 'react';\nimport Portal from './portal';\nimport PrimaryAction from './primary-action';\n\nexport default function PortalledPrimaryAction() {\n\treturn (\n\t\t<Portal>\n\t\t\t<PrimaryAction />\n\t\t</Portal>\n\t);\n}\n","import * as React from 'react';\nimport { Portal as BasePortal, PortalProps } from '@elementor/ui';\nimport { isRouteActive, routeCloseEvent, routeOpenEvent, useListenTo } from '@elementor/editor-v1-adapters';\n\nexport default function Portal( props: Omit<PortalProps, 'container'> ) {\n\tconst containerRef = useListenTo(\n\t\t[\n\t\t\trouteOpenEvent( 'panel/global' ),\n\t\t\trouteCloseEvent( 'panel/global' ),\n\t\t],\n\t\tgetContainerRef\n\t);\n\n\tif ( ! containerRef.current ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BasePortal container={ containerRef.current } { ...props } />\n\t);\n}\n\nfunction getContainerRef() {\n\treturn isRouteActive( 'panel/global' )\n\t\t? { current: document.querySelector( '#elementor-panel-inner' ) }\n\t\t: { current: null };\n}\n","import * as React from 'react';\nimport { useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\nimport { Button, CircularProgress, Paper } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nexport default function PrimaryAction() {\n\tconst document = useActiveDocument();\n\tconst { save } = useActiveDocumentActions();\n\n\treturn (\n\t\t<Paper sx={ {\n\t\t\tpx: 5,\n\t\t\tpy: 4,\n\t\t\tborderTop: 1,\n\t\t\tborderColor: 'divider',\n\t\t} }>\n\t\t\t<Button\n\t\t\t\tvariant=\"contained\"\n\t\t\t\tdisabled={ ! document || ! document.isDirty }\n\t\t\t\tsize=\"medium\"\n\t\t\t\tsx={ { width: '100%' } }\n\t\t\t\tonClick={ () => document && ! document.isSaving ? save() : null }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\tdocument?.isSaving\n\t\t\t\t\t\t? <CircularProgress />\n\t\t\t\t\t\t: __( 'Save Changes', 'elementor' )\n\t\t\t\t}\n\t\t\t</Button>\n\t\t</Paper>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { ToggleActionProps } from '../../../types';\nimport { AdjustmentsHorizontalIcon } from '@elementor/icons';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/global', {\n\t\tblockOnKitRoutes: false,\n\t} );\n\n\treturn {\n\t\ttitle: __( 'Site Settings', 'elementor' ),\n\t\ticon: AdjustmentsHorizontalIcon,\n\t\tonClick: () => (\n\t\t\tisActive\n\t\t\t\t? runCommand( 'panel/global/close' )\n\t\t\t\t: runCommand( 'panel/global/open' )\n\t\t),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { StructureIcon } from '@elementor/icons';\nimport { ToggleActionProps } from '../../../types';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'navigator' );\n\n\treturn {\n\t\ttitle: __( 'Structure', 'elementor' ),\n\t\ticon: StructureIcon,\n\t\tonClick: () => runCommand( 'navigator/toggle' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'toggle-structure-view',\n\t\tpriority: 3,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ThemeBuilderIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\nimport { ActionProps } from '../../../types';\n\nexport default function useActionProps(): ActionProps {\n\treturn {\n\t\ticon: ThemeBuilderIcon,\n\t\ttitle: __( 'Theme Builder', 'elementor' ),\n\t\tonClick: () => runCommand( 'app/open' ),\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useThemeBuilderActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerAction( {\n\t\tname: 'open-theme-builder',\n\t\tuseProps: useThemeBuilderActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ToggleActionProps } from '../../../types';\nimport { ToggleRightIcon } from '@elementor/icons';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/editor-preferences' );\n\n\treturn {\n\t\ticon: ToggleRightIcon,\n\t\ttitle: __( 'User Preferences', 'elementor' ),\n\t\tonClick: () => openRoute( 'panel/editor-preferences' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerToggleAction( {\n\t\tname: 'open-user-preferences',\n\t\tpriority: 30, // After history.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { mainMenu } from '../../locations';\nimport { useSettings } from '@elementor/editor';\nimport { __ } from '@wordpress/i18n';\nimport { WordpressIcon } from '@elementor/icons';\n\nexport function init() {\n\tmainMenu.registerLink( {\n\t\tname: 'manage-website',\n\t\tgroup: 'exits',\n\t\tuseProps: () => {\n\t\t\tconst { urls } = useSettings();\n\n\t\t\treturn {\n\t\t\t\ttitle: __( 'Manage Website', 'elementor' ),\n\t\t\t\thref: urls.admin,\n\t\t\t\ticon: WordpressIcon,\n\t\t\t\ttarget: '_blank',\n\t\t\t};\n\t\t},\n\t} );\n}\n","/**\n * All the code in this directory is a temporary solution.\n * The code should be moved to the appropriate packages.\n */\n\nimport { init as initDocumentsIndicator } from './documents-indicator';\nimport { init as initDocumentsPreview } from './documents-preview';\nimport { init as initDocumentsSave } from './documents-save';\nimport { init as initElements } from './elements';\nimport { init as initFinder } from './finder';\nimport { init as initHelp } from './help';\nimport { init as initHistory } from './history';\nimport { init as initKeyboardShortcuts } from './keyboard-shortcuts';\nimport { init as initSiteSettings } from './site-settings';\nimport { init as initStructure } from './structure';\nimport { init as initThemeBuilder } from './theme-builder';\nimport { init as initUserPreferences } from './user-preferences';\nimport { init as initWordpress } from './wordpress';\n\nexport function init() {\n\tinitDocumentsIndicator();\n\tinitDocumentsPreview();\n\tinitDocumentsSave();\n\tinitElements();\n\tinitFinder();\n\tinitHelp();\n\tinitHistory();\n\tinitKeyboardShortcuts();\n\tinitSiteSettings();\n\tinitStructure();\n\tinitThemeBuilder();\n\tinitUserPreferences();\n\tinitWordpress();\n}\n","export {\n\tmainMenu,\n\ttoolsMenu,\n\tutilitiesMenu,\n\tdocumentOptionsMenu,\n\tinjectIntoPageIndication,\n\tinjectIntoResponsive,\n\tinjectIntoPrimaryAction,\n} from './locations/index';\n\nimport init from './init';\n\ninit();\n"],"mappings":"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","names":["React","React","React","React","React","React","Box","Tooltip","React","useMenuItems","React","Box","Divider","React","React","React","ToggleButton","MenuItem","React","React","Stack","Stack","React","bindMenu","bindTrigger","usePopupState","__","usePopupState","bindTrigger","__","bindMenu","useMenuItems","MenuItem","React","Fragment","Divider","MAX_TOOLBAR_ACTIONS","useMenuItems","MenuItem","Fragment","Divider","React","React","Slot","Slot","React","Slot","Slot","Box","Divider","injectIntoTop","React","Box","ToggleButton","Tooltip","__","openRoute","document","__","useActiveDocument","document","init","__","useActiveDocument","document","__","useActiveDocumentActions","React","__","React","Divider","styled","useMenuItems","styled","MenuItem","Divider","bindMenu","bindTrigger","Tooltip","usePopupState","useActiveDocument","useActiveDocumentActions","document","__","init","__","listenTo","routeOpenEvent","__","openRoute","useRouteStatus","useActionProps","init","useActionProps","__","runCommand","useRouteStatus","useActionProps","init","useActionProps","__","init","__","openRoute","useRouteStatus","useActionProps","init","useActionProps","__","runCommand","useActionProps","init","useActionProps","React","React","isRouteActive","routeOpenEvent","React","useActiveDocument","useActiveDocumentActions","Button","CircularProgress","__","PrimaryAction","document","PrimaryAction","__","runCommand","useRouteStatus","useActionProps","init","useActionProps","__","runCommand","useRouteStatus","useActionProps","init","useActionProps","__","runCommand","useActionProps","init","useActionProps","__","openRoute","useRouteStatus","useActionProps","init","useActionProps","__","init","init","init","injectIntoTop","init"]}
1
+ {"version":3,"sources":["../src/locations/menus.tsx","../src/components/actions/action.tsx","../src/contexts/menu-context.tsx","../src/components/ui/toolbar-menu-item.tsx","../src/components/ui/popover-menu-item.tsx","../src/components/actions/toggle-action.tsx","../src/components/ui/toolbar-menu-toggle-item.tsx","../src/components/actions/link.tsx","../src/locations/index.ts","../src/locations/consts.ts","../src/components/app-bar.tsx","../src/components/locations/main-menu-location.tsx","../src/components/ui/popover-menu.tsx","../src/components/ui/toolbar-logo.tsx","../src/components/locations/tools-menu-location.tsx","../src/components/ui/toolbar-menu.tsx","../src/components/ui/toolbar-menu-more.tsx","../src/components/locations/utilities-menu-location.tsx","../src/components/locations/primary-action-location.tsx","../src/components/locations/page-indication-location.tsx","../src/components/locations/responsive-location.tsx","../src/init.ts","../src/sync/redirect-old-menus.ts","../src/extensions/documents-indicator/components/settings-button.tsx","../src/extensions/documents-indicator/index.ts","../src/extensions/documents-preview/hooks/use-action-props.ts","../src/extensions/documents-preview/index.ts","../src/extensions/documents-save/hooks/use-document-save-draft-props.ts","../src/extensions/documents-save/hooks/use-document-save-template-props.ts","../src/extensions/documents-save/components/primary-action.tsx","../src/extensions/documents-save/components/primary-action-menu.tsx","../src/extensions/documents-save/index.ts","../src/extensions/elements/sync/sync-panel-title.ts","../src/extensions/elements/hooks/use-action-props.ts","../src/extensions/elements/index.ts","../src/extensions/finder/hooks/use-action-props.ts","../src/extensions/finder/index.ts","../src/extensions/help/index.ts","../src/extensions/history/hooks/use-action-props.ts","../src/extensions/history/index.ts","../src/extensions/keyboard-shortcuts/hooks/use-action-props.ts","../src/extensions/keyboard-shortcuts/index.ts","../src/extensions/site-settings/index.ts","../src/extensions/site-settings/components/portalled-primary-action.tsx","../src/extensions/site-settings/components/portal.tsx","../src/extensions/site-settings/components/primary-action.tsx","../src/extensions/site-settings/hooks/use-action-props.ts","../src/extensions/structure/hooks/use-action-props.ts","../src/extensions/structure/index.ts","../src/extensions/theme-builder/hooks/use-action-props.ts","../src/extensions/theme-builder/index.ts","../src/extensions/user-preferences/hooks/use-action-props.ts","../src/extensions/user-preferences/index.ts","../src/env.ts","../src/extensions/wordpress/index.ts","../src/extensions/index.ts","../src/index.ts"],"sourcesContent":["import * as React from 'react';\nimport { ComponentPropsWithoutRef, ElementType, useMemo } from 'react';\nimport { inject, useInjectionsOf } from '@elementor/locations';\nimport Action from '../components/actions/action';\nimport ToggleAction from '../components/actions/toggle-action';\nimport Link from '../components/actions/link';\n\ntype MenuName = string;\ntype GroupName = string;\n\ntype Menu<TGroup extends GroupName = 'default'> = {\n\tname: MenuName,\n\tgroups: TGroup[],\n};\n\ntype MenuWithOptionalGroups<TGroup extends GroupName> = Omit<Menu<TGroup>, 'groups'> & { groups?: TGroup[] };\n\ntype MenuGroup<TGroup extends GroupName> = TGroup | 'default';\n\ntype GroupedItems<TGroup extends GroupName> = Record<MenuGroup<TGroup>, Array<{ id: string, MenuItem: ElementType }>>;\n\ntype MenuItem<\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n> = {\n\tname: string,\n\tgroup?: TGroup,\n\tpriority?: number,\n\toverwrite?: boolean,\n} & (\n\t{ props: ComponentPropsWithoutRef<TComponent>, useProps?: never } |\n\t{ useProps: () => ComponentPropsWithoutRef<TComponent>, props?: never }\n)\n\nexport function createMenu<TGroup extends GroupName = 'default'>( { name: menuName, groups = [] }: MenuWithOptionalGroups<TGroup> ) {\n\tconst menuGroups: MenuGroup<TGroup>[] = [\n\t\t...groups,\n\t\t'default' as const,\n\t];\n\n\tconst registerAction = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: Action,\n\t} );\n\n\tconst registerToggleAction = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: ToggleAction,\n\t} );\n\n\tconst registerLink = createRegisterMenuItem( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t\tcomponent: Link,\n\t} );\n\n\tconst useMenuItems = createUseMenuItems( {\n\t\tmenuName,\n\t\tmenuGroups,\n\t} );\n\n\treturn {\n\t\tregisterAction,\n\t\tregisterToggleAction,\n\t\tregisterLink,\n\t\tuseMenuItems,\n\t};\n}\n\nfunction createRegisterMenuItem<\n\tTMenuName extends MenuName,\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n>( { menuName, menuGroups, component }: {\n\tmenuName: TMenuName,\n\tmenuGroups: MenuGroup<TGroup>[],\n\tcomponent: TComponent,\n} ) {\n\treturn ( { group = 'default', name, overwrite, priority, ...args }: MenuItem<MenuGroup<TGroup>, TComponent> ) => {\n\t\tif ( ! menuGroups.includes( group ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst useProps = 'props' in args ? () => args.props : args.useProps;\n\n\t\tconst Component = component as ElementType;\n\n\t\tconst Filler = ( props: object ) => {\n\t\t\tconst componentProps = useProps();\n\n\t\t\treturn <Component { ...props } { ...componentProps } />;\n\t\t};\n\n\t\tconst location = getMenuLocationId( menuName, group );\n\n\t\tinject( {\n\t\t\tlocation,\n\t\t\tname,\n\t\t\tfiller: Filler,\n\t\t\toptions: {\n\t\t\t\tpriority,\n\t\t\t\toverwrite,\n\t\t\t},\n\t\t} );\n\t};\n}\n\nfunction createUseMenuItems<\n\tTMenuName extends MenuName,\n\tTGroup extends GroupName,\n>( { menuName, menuGroups }: {\n\tmenuName: TMenuName,\n\tmenuGroups: MenuGroup<TGroup>[],\n} ) {\n\tconst locations = menuGroups.map( ( group ) => getMenuLocationId( menuName, group ) );\n\n\treturn () => {\n\t\tconst injectionsGroups = useInjectionsOf( locations );\n\n\t\t// Normalize the injections groups to an object with the groups as keys.\n\t\treturn useMemo( () => {\n\t\t\treturn injectionsGroups.reduce<GroupedItems<TGroup>>( ( acc, injections, index ) => {\n\t\t\t\tconst groupName = menuGroups[ index ];\n\n\t\t\t\treturn {\n\t\t\t\t\t...acc,\n\t\t\t\t\t[ groupName ]: injections.map( ( injection ) => ( {\n\t\t\t\t\t\tid: injection.id,\n\t\t\t\t\t\tMenuItem: injection.filler,\n\t\t\t\t\t} ) ),\n\t\t\t\t};\n\t\t\t}, {} as GroupedItems<TGroup> );\n\t\t}, [ injectionsGroups ] );\n\t};\n}\n\nfunction getMenuLocationId( menu: MenuName, group: GroupName ) {\n\treturn `editor/app-bar/${ menu }/${ group }` as const;\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport ToolbarMenuItem from '../ui/toolbar-menu-item';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\tdisabled?: boolean;\n\tvisible?: boolean;\n\tonClick?: () => void;\n};\n\nexport default function Action( { icon: Icon, title, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuItem title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import * as React from 'react';\nimport { createContext, PropsWithChildren, useContext } from 'react';\n\ntype MenuContextValue = {\n\ttype: 'toolbar' | 'popover';\n}\n\nconst MenuContext = createContext<MenuContextValue>( { type: 'toolbar' } );\n\nexport function MenuContextProvider( { type, children }: PropsWithChildren<MenuContextValue> ) {\n\treturn (\n\t\t<MenuContext.Provider value={ { type } }>\n\t\t\t{ children }\n\t\t</MenuContext.Provider>\n\t);\n}\n\nexport function useMenuContext() {\n\treturn useContext( MenuContext );\n}\n","import * as React from 'react';\nimport { Box, IconButton, IconButtonProps, Tooltip } from '@elementor/ui';\n\nexport type ToolbarMenuItemProps = IconButtonProps & {\n\ttitle?: string;\n\tselected?: boolean;\n}\n\nexport default function ToolbarMenuItem( { title, ...props }: ToolbarMenuItemProps ) {\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<IconButton { ...props } aria-label={ title } size=\"small\" />\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport {\n\tMenuItem,\n\tMenuItemProps,\n\tListItemText,\n\tListItemIcon,\n\twithDirection,\n} from '@elementor/ui';\nimport { ArrowUpRightIcon } from '@elementor/icons';\n\ntype ExtraProps = {\n\thref?: string;\n\ttarget?: string;\n\ttext?: string;\n\ticon?: JSX.Element;\n}\n\nexport type PopoverMenuItemProps = MenuItemProps & ExtraProps;\n\nconst DirectionalArrowIcon = withDirection( ArrowUpRightIcon );\n\nexport default function PopoverMenuItem( { text, icon, onClick, href, target, disabled, ...props }: PopoverMenuItemProps ) {\n\tconst isExternalLink = href && target === '_blank';\n\n\treturn (\n\t\t<MenuItem\n\t\t\t{ ...props }\n\t\t\tdisabled={ disabled }\n\t\t\tonClick={ onClick }\n\t\t\tcomponent={ href ? 'a' : 'div' }\n\t\t\thref={ href }\n\t\t\ttarget={ target }\n\t\t>\n\t\t\t<ListItemIcon>{ icon }</ListItemIcon>\n\t\t\t<ListItemText primary={ text } />\n\t\t\t{ isExternalLink && <DirectionalArrowIcon /> }\n\t\t</MenuItem>\n\t);\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport ToolbarMenuToggleItem from '../ui/toolbar-menu-toggle-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\tselected?: boolean;\n\tdisabled?: boolean;\n\tvisible?: boolean;\n\tonClick?: () => void;\n\tvalue?: string;\n};\n\nexport default function ToggleAction( { icon: Icon, title, value, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuToggleItem value={ value || title } title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuToggleItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import * as React from 'react';\nimport { Box, ToggleButton, ToggleButtonProps, Tooltip } from '@elementor/ui';\n\nexport type ToolbarMenuToggleItemProps = Omit<ToggleButtonProps, 'onChange'> & {\n\ttitle?: string;\n\tonClick?: () => void;\n}\n\nexport default function ToolbarMenuToggleItem( { title, onClick, ...props }: ToolbarMenuToggleItemProps ) {\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<ToggleButton { ...props } onChange={ onClick } aria-label={ title } size=\"small\" />\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import * as React from 'react';\nimport { useMenuContext } from '../../contexts/menu-context';\nimport ToolbarMenuItem from '../ui/toolbar-menu-item';\nimport PopoverMenuItem from '../ui/popover-menu-item';\nimport { ElementType } from 'react';\n\nexport type Props = {\n\ttitle: string;\n\ticon: ElementType;\n\thref?: string;\n\tvisible?: boolean;\n\ttarget?: string;\n}\n\nexport default function Link( { icon: Icon, title, visible = true, ...props }: Props ) {\n\tconst { type } = useMenuContext();\n\n\tif ( ! visible ) {\n\t\treturn null;\n\t}\n\n\treturn type === 'toolbar' ? (\n\t\t<ToolbarMenuItem title={ title } { ...props }>\n\t\t\t<Icon />\n\t\t</ToolbarMenuItem>\n\t) : (\n\t\t<PopoverMenuItem\n\t\t\t{ ...props }\n\t\t\ttext={ title }\n\t\t\ticon={ <Icon /> }\n\t\t/>\n\t);\n}\n","import { createMenu } from './menus';\nimport { createInjectorFor } from '@elementor/locations';\nimport { LOCATION_PAGE_INDICATION, LOCATION_PRIMARY_ACTION, LOCATION_RESPONSIVE } from './consts';\n\nexport * from './consts';\n\nexport { createMenu } from './menus';\n\nexport const injectIntoPageIndication = createInjectorFor( LOCATION_PAGE_INDICATION );\nexport const injectIntoResponsive = createInjectorFor( LOCATION_RESPONSIVE );\nexport const injectIntoPrimaryAction = createInjectorFor( LOCATION_PRIMARY_ACTION );\n\nexport const mainMenu = createMenu( {\n\tname: 'main',\n\tgroups: [ 'exits' ],\n} );\n\nexport const toolsMenu = createMenu( {\n\tname: 'tools',\n} );\n\nexport const utilitiesMenu = createMenu( {\n\tname: 'utilities',\n} );\n\nexport const documentOptionsMenu = createMenu( {\n\tname: 'document-options',\n\tgroups: [ 'save' ],\n} );\n","// Locations\nexport const LOCATION_PAGE_INDICATION = 'editor/app-bar/page-indication' as const;\nexport const LOCATION_RESPONSIVE = 'editor/app-bar/responsive' as const;\nexport const LOCATION_PRIMARY_ACTION = 'editor/app-bar/primary-action' as const;\n","import * as React from 'react';\nimport { AppBar as BaseAppBar, Box, Divider, Grid, ThemeProvider } from '@elementor/ui';\nimport MainMenuLocation from './locations/main-menu-location';\nimport ToolsMenuLocation from './locations/tools-menu-location';\nimport UtilitiesMenuLocation from './locations/utilities-menu-location';\nimport PrimaryActionLocation from './locations/primary-action-location';\nimport ToolbarMenu from './ui/toolbar-menu';\nimport PageIndicationLocation from './locations/page-indication-location';\nimport ResponsiveLocation from './locations/responsive-location';\n\nexport default function AppBar() {\n\treturn (\n\t\t<ThemeProvider colorScheme=\"dark\">\n\t\t\t<BaseAppBar position=\"sticky\">\n\t\t\t\t<Box display=\"grid\" gridTemplateColumns=\"repeat(3, 1fr)\">\n\t\t\t\t\t<Grid container>\n\t\t\t\t\t\t<MainMenuLocation />\n\t\t\t\t\t\t<ToolsMenuLocation />\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"center\">\n\t\t\t\t\t\t<ToolbarMenu spacing={ 3 }>\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t\t<PageIndicationLocation />\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t\t<ResponsiveLocation />\n\t\t\t\t\t\t\t<Divider orientation=\"vertical\" />\n\t\t\t\t\t\t</ToolbarMenu>\n\t\t\t\t\t</Grid>\n\t\t\t\t\t<Grid container justifyContent=\"flex-end\">\n\t\t\t\t\t\t<UtilitiesMenuLocation />\n\t\t\t\t\t\t<PrimaryActionLocation />\n\t\t\t\t\t</Grid>\n\t\t\t\t</Box>\n\t\t\t</BaseAppBar>\n\t\t</ThemeProvider>\n\t);\n}\n","import * as React from 'react';\nimport { usePopupState, bindMenu, bindTrigger, Stack, Divider } from '@elementor/ui';\nimport { mainMenu } from '../../locations';\nimport PopoverMenu from '../ui/popover-menu';\nimport ToolbarLogo from '../ui/toolbar-logo';\n\nconst { useMenuItems } = mainMenu;\n\nexport default function MainMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst orderedGroups = [\n\t\tmenuItems.default,\n\t\tmenuItems.exits,\n\t];\n\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: 'elementor-v2-app-bar-main-menu',\n\t} );\n\n\treturn (\n\t\t<Stack sx={ { paddingInlineStart: 4 } } direction=\"row\" alignItems=\"center\">\n\t\t\t<ToolbarLogo\n\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\tselected={ popupState.isOpen }\n\t\t\t/>\n\t\t\t<PopoverMenu\n\t\t\t\tonClick={ popupState.close }\n\t\t\t\t{ ...bindMenu( popupState ) }\n\t\t\t\tPaperProps={ {\n\t\t\t\t\tsx: { mt: 4, marginInlineStart: -2 },\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\torderedGroups\n\t\t\t\t\t\t.filter( ( group ) => group.length )\n\t\t\t\t\t\t.map( ( group, index ) => {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tindex > 0 ? <Divider key={ index } orientation=\"horizontal\" /> : null,\n\t\t\t\t\t\t\t\t...group.map(\n\t\t\t\t\t\t\t\t\t( { MenuItem, id } ) => <MenuItem key={ id } />\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t</PopoverMenu>\n\t\t</Stack>\n\t);\n}\n","import * as React from 'react';\nimport { Menu, MenuProps } from '@elementor/ui';\nimport { MenuContextProvider } from '../../contexts/menu-context';\n\nexport type PopoverMenuProps = MenuProps;\n\nexport default function PopoverMenu( { children, ...props }: PopoverMenuProps ) {\n\treturn (\n\t\t<MenuContextProvider type={ 'popover' }>\n\t\t\t<Menu\n\t\t\t\tPaperProps={ {\n\t\t\t\t\tsx: { mt: 4 },\n\t\t\t\t} }\n\t\t\t\t{ ...props }\n\t\t\t\tMenuListProps={ {\n\t\t\t\t\tcomponent: 'div',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Menu>\n\t\t</MenuContextProvider>\n\t);\n}\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { __ } from '@wordpress/i18n';\nimport { ToggleButton, ToggleButtonProps, SvgIconProps, SvgIcon, styled } from '@elementor/ui';\n\ninterface StyledElementorLogoProps extends SvgIconProps {\n\tshowMenuIcon?: boolean;\n}\n\ntype ToolbarLogoProps = Omit<ToggleButtonProps, 'value'>;\n\nconst ElementorLogo = ( props: SvgIconProps ) => {\n\treturn (\n\t\t<SvgIcon viewBox=\"0 0 32 32\" { ...props }>\n\t\t\t<g>\n\t\t\t\t<circle cx=\"16\" cy=\"16\" r=\"16\" />\n\t\t\t\t<path d=\"M11.7 9H9V22.3H11.7V9Z\" />\n\t\t\t\t<path d=\"M22.4 9H9V11.7H22.4V9Z\" />\n\t\t\t\t<path d=\"M22.4 14.4004H9V17.1004H22.4V14.4004Z\" />\n\t\t\t\t<path d=\"M22.4 19.6992H9V22.3992H22.4V19.6992Z\" />\n\t\t\t</g>\n\t\t</SvgIcon>\n\t);\n};\n\nconst StyledToggleButton = styled( ToggleButton )( () => ( {\n\tpadding: 0,\n\t'&.MuiToggleButton-root:hover': {\n\t\tbackgroundColor: 'initial',\n\t},\n\t'&.MuiToggleButton-root.Mui-selected': {\n\t\tbackgroundColor: 'initial',\n\t},\n} ) );\n\nconst StyledElementorLogo = styled( ElementorLogo, {\n\tshouldForwardProp: ( prop ) => prop !== 'showMenuIcon',\n} )<StyledElementorLogoProps>( ( { theme, showMenuIcon } ) => ( {\n\twidth: 'auto',\n\theight: '100%',\n\t'& path': {\n\t\tfill: 'initial',\n\t\ttransition: 'all 0.2s linear',\n\t\ttransformOrigin: 'bottom left',\n\t\t'&:first-of-type': {\n\t\t\ttransitionDelay: ! showMenuIcon && '0.2s',\n\t\t\ttransform: showMenuIcon && 'translateY(-9px) scaleY(0)',\n\t\t},\n\t\t'&:not(:first-of-type)': {\n\t\t\t// Emotion automatically change 4 to -4 in RTL moode.\n\t\t\ttransform: ! showMenuIcon && `translateX(${ theme.direction === 'rtl' ? '4' : '9' }px) scaleX(0.6)`,\n\t\t},\n\t\t'&:nth-of-type(2)': {\n\t\t\ttransitionDelay: showMenuIcon ? '0' : '0.2s',\n\t\t},\n\t\t'&:nth-of-type(3)': {\n\t\t\ttransitionDelay: '0.1s',\n\t\t},\n\t\t'&:nth-of-type(4)': {\n\t\t\ttransitionDelay: showMenuIcon ? '0.2s' : '0',\n\t\t},\n\t},\n} ) );\n\nexport default function ToolbarLogo( props: ToolbarLogoProps ) {\n\tconst [ isHoverState, setIsHoverState ] = useState( false );\n\tconst showMenuIcon = props.selected || isHoverState;\n\n\treturn (\n\t\t<StyledToggleButton\n\t\t\t{ ...props }\n\t\t\tvalue=\"selected\"\n\t\t\tsize=\"small\"\n\t\t\tonMouseEnter={ () => setIsHoverState( true ) }\n\t\t\tonMouseLeave={ () => setIsHoverState( false ) }\n\t\t>\n\t\t\t<StyledElementorLogo titleAccess={ __( 'Elementor Logo', 'elementor' ) } showMenuIcon={ showMenuIcon } />\n\t\t</StyledToggleButton>\n\t);\n}\n","import * as React from 'react';\nimport { toolsMenu } from '../../locations';\nimport ToolbarMenu from '../ui/toolbar-menu';\nimport ToolbarMenuMore from '../ui/toolbar-menu-more';\n\nconst MAX_TOOLBAR_ACTIONS = 5;\n\nconst { useMenuItems } = toolsMenu;\n\nexport default function ToolsMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst toolbarMenuItems = menuItems.default.slice( 0, MAX_TOOLBAR_ACTIONS );\n\tconst popoverMenuItems = menuItems.default.slice( MAX_TOOLBAR_ACTIONS );\n\n\treturn (\n\t\t<ToolbarMenu>\n\t\t\t{ toolbarMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t{ popoverMenuItems.length > 0 && (\n\t\t\t\t<ToolbarMenuMore id=\"elementor-editor-app-bar-tools-more\">\n\t\t\t\t\t{ popoverMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t\t</ToolbarMenuMore>\n\t\t\t) }\n\t\t</ToolbarMenu>\n\t);\n}\n","import * as React from 'react';\nimport { Stack, StackProps } from '@elementor/ui';\nimport { MenuContextProvider } from '../../contexts/menu-context';\n\nexport type ToolbarMenuProps = StackProps;\n\nexport default function ToolbarMenu( { children, ...props }: ToolbarMenuProps ) {\n\treturn (\n\t\t<MenuContextProvider type={ 'toolbar' }>\n\t\t\t<Stack sx={ { px: 4 } } spacing={ 4 } direction=\"row\" alignItems=\"center\" { ...props }>\n\t\t\t\t{ children }\n\t\t\t</Stack>\n\t\t</MenuContextProvider>\n\t);\n}\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { bindMenu, bindTrigger, usePopupState } from '@elementor/ui';\nimport ToolbarMenuItem from './toolbar-menu-item';\nimport { __ } from '@wordpress/i18n';\nimport { DotsVerticalIcon } from '@elementor/icons';\nimport PopoverMenu from './popover-menu';\n\nexport type ToolbarMenuMoreProps = PropsWithChildren<{\n\tid: string;\n}>\n\nexport default function ToolbarMenuMore( { children, id }: ToolbarMenuMoreProps ) {\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: id,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarMenuItem { ...bindTrigger( popupState ) } title={ __( 'More', 'elementor' ) }>\n\t\t\t\t<DotsVerticalIcon />\n\t\t\t</ToolbarMenuItem>\n\t\t\t<PopoverMenu onClick={ popupState.close } { ...bindMenu( popupState ) }>\n\t\t\t\t{ children }\n\t\t\t</PopoverMenu>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport { Fragment } from 'react';\nimport ToolbarMenu from '../ui/toolbar-menu';\nimport { utilitiesMenu } from '../../locations';\nimport { Divider } from '@elementor/ui';\nimport ToolbarMenuMore from '../ui/toolbar-menu-more';\n\nconst MAX_TOOLBAR_ACTIONS = 3;\n\nconst { useMenuItems } = utilitiesMenu;\n\nexport default function UtilitiesMenuLocation() {\n\tconst menuItems = useMenuItems();\n\n\tconst toolbarMenuItems = menuItems.default.slice( 0, MAX_TOOLBAR_ACTIONS );\n\tconst popoverMenuItems = menuItems.default.slice( MAX_TOOLBAR_ACTIONS );\n\n\treturn (\n\t\t<ToolbarMenu>\n\t\t\t{ toolbarMenuItems.map(\n\t\t\t\t( { MenuItem, id }, index ) => (\n\t\t\t\t\t<Fragment key={ id }>\n\t\t\t\t\t\t{ index === 0 && <Divider orientation=\"vertical\" /> }\n\t\t\t\t\t\t<MenuItem />\n\t\t\t\t\t</Fragment>\n\t\t\t\t)\n\t\t\t) }\n\t\t\t{ popoverMenuItems.length > 0 && (\n\t\t\t\t<ToolbarMenuMore id=\"elementor-editor-app-bar-utilities-more\">\n\t\t\t\t\t{ popoverMenuItems.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t\t\t</ToolbarMenuMore>\n\t\t\t) }\n\t\t</ToolbarMenu>\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_PRIMARY_ACTION } from '../../locations';\n\nexport default function PrimaryActionLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_PRIMARY_ACTION } />\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_PAGE_INDICATION } from '../../locations';\n\nexport default function PageIndicationLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_PAGE_INDICATION } />\n\t);\n}\n","import * as React from 'react';\nimport { Slot } from '@elementor/locations';\nimport { LOCATION_RESPONSIVE } from '../../locations';\n\nexport default function ResponsiveLocation() {\n\treturn (\n\t\t<Slot location={ LOCATION_RESPONSIVE } />\n\t);\n}\n","import AppBar from './components/app-bar';\nimport { injectIntoTop } from '@elementor/editor';\nimport redirectOldMenus from './sync/redirect-old-menus';\nimport { init as initExtensions } from './extensions';\nimport { validateEnv } from './env';\n\nexport default function init() {\n\tvalidateEnv();\n\n\tredirectOldMenus();\n\n\tinitExtensions();\n\n\tinjectIntoTop( {\n\t\tname: 'app-bar',\n\t\tfiller: AppBar,\n\t} );\n}\n","import { listenTo, openRoute, routeOpenEvent } from '@elementor/editor-v1-adapters';\n\nexport default function redirectOldMenus() {\n\t// Currently, in V1, when you click `esc` it opens the hamburger menu in the panel.\n\t// In V2, we don't have this panel, so we redirect the user to the elements panel instead.\n\tlistenTo( routeOpenEvent( 'panel/menu' ), () => {\n\t\topenRoute( 'panel/elements/categories' );\n\t} );\n}\n","import * as React from 'react';\nimport { Box, ToggleButton, Tooltip } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { SettingsIcon } from '@elementor/icons';\nimport { useActiveDocument, useHostDocument } from '@elementor/editor-documents';\n\nexport default function SettingsButton() {\n\tconst activeDocument = useActiveDocument();\n\tconst hostDocument = useHostDocument();\n\n\tconst document = activeDocument && activeDocument.type.value !== 'kit'\n\t\t? activeDocument\n\t\t: hostDocument;\n\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/page-settings' );\n\n\tif ( ! document ) {\n\t\treturn null;\n\t}\n\n\t/* translators: %s: Post type label. */\n\tconst title = __( '%s Settings', 'elementor' )\n\t\t.replace( '%s', document.type.label );\n\n\treturn (\n\t\t<Tooltip title={ title }>\n\t\t\t{ /* @see https://mui.com/material-ui/react-tooltip/#disabled-elements */ }\n\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t<ToggleButton\n\t\t\t\t\tvalue=\"document-settings\"\n\t\t\t\t\tselected={ isActive }\n\t\t\t\t\tdisabled={ isBlocked }\n\t\t\t\t\tonChange={ () => openRoute( 'panel/page-settings/settings' ) }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<SettingsIcon />\n\t\t\t\t</ToggleButton>\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n","import { injectIntoPageIndication } from '../../locations';\nimport SettingsButton from './components/settings-button';\n\nexport function init() {\n\tinjectIntoPageIndication( {\n\t\tname: 'document-settings-button',\n\t\tfiller: SettingsButton,\n\t\toptions: {\n\t\t\tpriority: 20, // After document indicator.\n\t\t},\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { EyeIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\nimport { useActiveDocument } from '@elementor/editor-documents';\n\nexport default function useActionProps() {\n\tconst document = useActiveDocument();\n\n\treturn {\n\t\ticon: EyeIcon,\n\t\ttitle: __( 'Preview Changes', 'elementor' ),\n\t\tonClick: () => document && runCommand( 'editor/documents/preview', {\n\t\t\tid: document.id,\n\t\t\tforce: true,\n\t\t} ),\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useDocumentPreviewProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerAction( {\n\t\tname: 'document-preview-button',\n\t\tpriority: 30, // After help.\n\t\tuseProps: useDocumentPreviewProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { FileReportIcon } from '@elementor/icons';\nimport { useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\n\nexport default function useDocumentSaveDraftProps(): ActionProps {\n\tconst document = useActiveDocument();\n\tconst { saveDraft } = useActiveDocumentActions();\n\n\treturn {\n\t\ticon: FileReportIcon,\n\t\ttitle: __( 'Save Draft', 'elementor' ),\n\t\tonClick: saveDraft,\n\t\tdisabled: ! document || document.isSaving || document.isSavingDraft || ! document.isDirty,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { FolderIcon } from '@elementor/icons';\nimport { useActiveDocumentActions } from '@elementor/editor-documents';\n\nexport default function useDocumentSaveTemplateProps(): ActionProps {\n\tconst { saveTemplate } = useActiveDocumentActions();\n\n\treturn {\n\t\ticon: FolderIcon,\n\t\ttitle: __( 'Save as Template', 'elementor' ),\n\t\tonClick: saveTemplate,\n\t};\n}\n","import * as React from 'react';\nimport { __ } from '@wordpress/i18n';\nimport PrimaryActionMenu from './primary-action-menu';\nimport {\n\tbindMenu,\n\tbindTrigger,\n\tBox,\n\tButton,\n\tButtonGroup,\n\tCircularProgress,\n\tTooltip,\n\tusePopupState,\n} from '@elementor/ui';\nimport { Document, useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\nimport { ChevronDownIcon } from '@elementor/icons';\n\nexport default function PrimaryAction() {\n\tconst document = useActiveDocument();\n\tconst { save } = useActiveDocumentActions();\n\n\tconst popupState = usePopupState( {\n\t\tvariant: 'popover',\n\t\tpopupId: 'document-save-options',\n\t} );\n\n\tif ( ! document ) {\n\t\treturn null;\n\t}\n\n\tconst isDisabled = ! isEnabled( document );\n\n\t// When the document is being saved, the spinner should not appear.\n\t// Usually happens when the Kit is being saved.\n\tconst shouldShowSpinner = document.isSaving && ! isDisabled;\n\n\treturn (\n\t\t<>\n\t\t\t<ButtonGroup size=\"large\" variant=\"contained\">\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ () => ! document.isSaving && save() }\n\t\t\t\t\tsx={ { width: '120px' } }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowSpinner ? <CircularProgress /> : getLabel( document ) }\n\t\t\t\t</Button>\n\n\t\t\t\t<Tooltip\n\t\t\t\t\ttitle={ __( 'Save Options', 'elementor' ) }\n\t\t\t\t\tPopperProps={ {\n\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\t\t\t\tmt: 3,\n\t\t\t\t\t\t\t\tmr: 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Box component=\"span\" aria-label={ undefined }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\t\t\t\tsx={ { px: 0 } }\n\t\t\t\t\t\t\tdisabled={ document.type.value === 'kit' }\n\t\t\t\t\t\t\taria-label={ __( 'Save Options', 'elementor' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ChevronDownIcon />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Box>\n\t\t\t\t</Tooltip>\n\t\t\t</ButtonGroup>\n\t\t\t<PrimaryActionMenu { ...bindMenu( popupState ) } onClick={ popupState.close } />\n\t\t</>\n\t);\n}\n\nfunction getLabel( document: Document ) {\n\treturn document.userCan.publish\n\t\t? __( 'Publish', 'elementor' )\n\t\t: __( 'Submit', 'elementor' );\n}\n\nfunction isEnabled( document: Document ) {\n\tif ( document.type.value === 'kit' ) {\n\t\treturn false;\n\t}\n\n\treturn document.isDirty || document.status.value === 'draft';\n}\n","import * as React from 'react';\nimport { Divider, styled } from '@elementor/ui';\nimport { documentOptionsMenu } from '../../../locations';\nimport PopoverMenu, { PopoverMenuProps } from '../../../components/ui/popover-menu';\n\nconst { useMenuItems } = documentOptionsMenu;\n\n// CSS hack to hide dividers when a group is rendered empty (due to a limitation in our locations' mechanism).\n// It doesn't cover all the cases (i.e. when there are multiple dividers at the end), but it's good enough for our use-case.\nconst StyledPopoverMenu = styled( PopoverMenu )`\n\t& > .MuiPopover-paper > .MuiList-root > .MuiDivider-root {\n\t\t&:only-child, /* A divider is being rendered lonely */\n\t\t&:last-child, /* The last group renders empty but renders a divider */\n\t\t& + .MuiDivider-root /* Multiple dividers due to multiple empty groups */ {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n`;\n\nexport default function PrimaryActionMenu( props: PopoverMenuProps ) {\n\tconst { save: saveActions, default: defaultActions } = useMenuItems();\n\n\treturn (\n\t\t<StyledPopoverMenu\n\t\t\t{ ...props }\n\t\t\tanchorOrigin={ {\n\t\t\t\tvertical: 'bottom',\n\t\t\t\thorizontal: 'right',\n\t\t\t} }\n\t\t\ttransformOrigin={ {\n\t\t\t\tvertical: 'top',\n\t\t\t\thorizontal: 'right',\n\t\t\t} }\n\t\t\tPaperProps={ {\n\t\t\t\tsx: { mt: 2, ml: 3 },\n\t\t\t} }\n\t\t>\n\t\t\t{ saveActions.map( ( { MenuItem, id }, index ) => ( [\n\t\t\t\t( index > 0 ) && <Divider key={ `${ id }-divider` } />,\n\t\t\t\t<MenuItem key={ id } />,\n\t\t\t] ) ) }\n\n\t\t\t{ defaultActions.length > 0 && <Divider /> }\n\n\t\t\t{ defaultActions.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\t\t</StyledPopoverMenu>\n\t);\n}\n","import { documentOptionsMenu, injectIntoPrimaryAction } from '../../locations';\nimport useDocumentSaveDraftProps from './hooks/use-document-save-draft-props';\nimport useDocumentSaveTemplateProps from './hooks/use-document-save-template-props';\nimport PrimaryAction from './components/primary-action';\n\nexport function init() {\n\tinjectIntoPrimaryAction( {\n\t\tname: 'document-primary-action',\n\t\tfiller: PrimaryAction,\n\t} );\n\n\t// Documents options menu.\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tname: 'document-save-draft',\n\t\tpriority: 10, // Before save as template.\n\t\tuseProps: useDocumentSaveDraftProps,\n\t} );\n\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tname: 'document-save-as-template',\n\t\tpriority: 20, // After save draft.\n\t\tuseProps: useDocumentSaveTemplateProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { isRouteActive, listenTo, routeOpenEvent, v1ReadyEvent } from '@elementor/editor-v1-adapters';\n\ntype ExtendedWindow = Window & {\n\telementor: {\n\t\tgetPanelView: () => {\n\t\t\tgetHeaderView: () => {\n\t\t\t\tsetTitle: ( title: string ) => void;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default function syncPanelTitle() {\n\tconst panelTitle = __( 'Elements', 'elementor' );\n\tconst tabTitle = __( 'Widgets', 'elementor' );\n\n\tlistenTo(\n\t\trouteOpenEvent( 'panel/elements' ),\n\t\t() => {\n\t\t\tsetPanelTitle( panelTitle );\n\t\t\tsetTabTitle( tabTitle );\n\t\t}\n\t);\n\n\tlistenTo(\n\t\tv1ReadyEvent(),\n\t\t() => {\n\t\t\tif ( isRouteActive( 'panel/elements' ) ) {\n\t\t\t\tsetPanelTitle( panelTitle );\n\t\t\t\tsetTabTitle( tabTitle );\n\t\t\t}\n\t\t}\n\t);\n}\n\nfunction setPanelTitle( title: string ) {\n\t( window as unknown as ExtendedWindow ).elementor?.getPanelView?.()?.getHeaderView?.()?.setTitle?.( title );\n}\n\nfunction setTabTitle( title: string ) {\n\tconst tab = document.querySelector( '.elementor-component-tab[data-tab=\"categories\"]' );\n\n\tif ( tab ) {\n\t\ttab.textContent = title;\n\t}\n}\n","import { PlusIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/elements' );\n\n\treturn {\n\t\ttitle: __( 'Add Element', 'elementor' ),\n\t\ticon: PlusIcon,\n\t\tonClick: () => openRoute( 'panel/elements/categories' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import syncPanelTitle from './sync/sync-panel-title';\nimport { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tsyncPanelTitle();\n\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'open-elements-panel',\n\t\tpriority: 1,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { SearchIcon } from '@elementor/icons';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'finder', {\n\t\tblockOnKitRoutes: false,\n\t\tblockOnPreviewMode: false,\n\t} );\n\n\treturn {\n\t\ttitle: __( 'Finder', 'elementor' ),\n\t\ticon: SearchIcon,\n\t\tonClick: () => runCommand( 'finder/toggle' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerToggleAction( {\n\t\tname: 'toggle-finder',\n\t\tpriority: 10, // Before help.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { utilitiesMenu } from '../../locations';\nimport { __ } from '@wordpress/i18n';\nimport { HelpIcon } from '@elementor/icons';\n\nexport function init() {\n\tutilitiesMenu.registerLink( {\n\t\tname: 'open-help-center',\n\t\tpriority: 20, // After Finder.\n\t\tuseProps: () => {\n\t\t\treturn {\n\t\t\t\ttitle: __( 'Help', 'elementor' ),\n\t\t\t\thref: 'https://go.elementor.com/editor-top-bar-learn/',\n\t\t\t\ticon: HelpIcon,\n\t\t\t\ttarget: '_blank',\n\t\t\t};\n\t\t},\n\t} );\n}\n","import { HistoryIcon } from '@elementor/icons';\nimport { __ } from '@wordpress/i18n';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/history' );\n\n\treturn {\n\t\ttitle: __( 'History', 'elementor' ),\n\t\ticon: HistoryIcon,\n\t\tonClick: () => openRoute( 'panel/history/actions' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerToggleAction( {\n\t\tname: 'open-history',\n\t\tpriority: 20,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ActionProps } from '../../../types';\nimport { KeyboardIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps(): ActionProps {\n\treturn {\n\t\ticon: KeyboardIcon,\n\t\ttitle: __( 'Keyboard Shortcuts', 'elementor' ),\n\t\tonClick: () => runCommand( 'shortcuts/open' ),\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerAction( {\n\t\tname: 'open-keyboard-shortcuts',\n\t\tgroup: 'default',\n\t\tpriority: 40, // After user preferences.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { injectIntoTop } from '@elementor/editor';\nimport PortalledPrimaryAction from './components/portalled-primary-action';\nimport { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\t// This is portal, so it injected into the top of the editor, but renders inside the site-settings panel.\n\tinjectIntoTop( {\n\t\tname: 'site-settings-primary-action-portal',\n\t\tfiller: PortalledPrimaryAction,\n\t} );\n\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'toggle-site-settings',\n\t\tpriority: 2,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import * as React from 'react';\nimport Portal from './portal';\nimport PrimaryAction from './primary-action';\n\nexport default function PortalledPrimaryAction() {\n\treturn (\n\t\t<Portal>\n\t\t\t<PrimaryAction />\n\t\t</Portal>\n\t);\n}\n","import * as React from 'react';\nimport { Portal as BasePortal, PortalProps } from '@elementor/ui';\nimport { isRouteActive, routeCloseEvent, routeOpenEvent, useListenTo } from '@elementor/editor-v1-adapters';\n\nexport default function Portal( props: Omit<PortalProps, 'container'> ) {\n\tconst containerRef = useListenTo(\n\t\t[\n\t\t\trouteOpenEvent( 'panel/global' ),\n\t\t\trouteCloseEvent( 'panel/global' ),\n\t\t],\n\t\tgetContainerRef\n\t);\n\n\tif ( ! containerRef.current ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BasePortal container={ containerRef.current } { ...props } />\n\t);\n}\n\nfunction getContainerRef() {\n\treturn isRouteActive( 'panel/global' )\n\t\t? { current: document.querySelector( '#elementor-panel-inner' ) }\n\t\t: { current: null };\n}\n","import * as React from 'react';\nimport { useActiveDocument, useActiveDocumentActions } from '@elementor/editor-documents';\nimport { Button, CircularProgress, Paper } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\n\nexport default function PrimaryAction() {\n\tconst document = useActiveDocument();\n\tconst { save } = useActiveDocumentActions();\n\n\treturn (\n\t\t<Paper sx={ {\n\t\t\tpx: 5,\n\t\t\tpy: 4,\n\t\t\tborderTop: 1,\n\t\t\tborderColor: 'divider',\n\t\t} }>\n\t\t\t<Button\n\t\t\t\tvariant=\"contained\"\n\t\t\t\tdisabled={ ! document || ! document.isDirty }\n\t\t\t\tsize=\"medium\"\n\t\t\t\tsx={ { width: '100%' } }\n\t\t\t\tonClick={ () => document && ! document.isSaving ? save() : null }\n\t\t\t>\n\t\t\t\t{\n\t\t\t\t\tdocument?.isSaving\n\t\t\t\t\t\t? <CircularProgress />\n\t\t\t\t\t\t: __( 'Save Changes', 'elementor' )\n\t\t\t\t}\n\t\t\t</Button>\n\t\t</Paper>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { ToggleActionProps } from '../../../types';\nimport { AdjustmentsHorizontalIcon } from '@elementor/icons';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/global', {\n\t\tblockOnKitRoutes: false,\n\t} );\n\n\treturn {\n\t\ttitle: __( 'Site Settings', 'elementor' ),\n\t\ticon: AdjustmentsHorizontalIcon,\n\t\tonClick: () => (\n\t\t\tisActive\n\t\t\t\t? runCommand( 'panel/global/close' )\n\t\t\t\t: runCommand( 'panel/global/open' )\n\t\t),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport { runCommand, useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { StructureIcon } from '@elementor/icons';\nimport { ToggleActionProps } from '../../../types';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'navigator' );\n\n\treturn {\n\t\ttitle: __( 'Structure', 'elementor' ),\n\t\ticon: StructureIcon,\n\t\tonClick: () => runCommand( 'navigator/toggle' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { toolsMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\ttoolsMenu.registerToggleAction( {\n\t\tname: 'toggle-structure-view',\n\t\tpriority: 3,\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ThemeBuilderIcon } from '@elementor/icons';\nimport { runCommand } from '@elementor/editor-v1-adapters';\nimport { ActionProps } from '../../../types';\n\nexport default function useActionProps(): ActionProps {\n\treturn {\n\t\ticon: ThemeBuilderIcon,\n\t\ttitle: __( 'Theme Builder', 'elementor' ),\n\t\tonClick: () => runCommand( 'app/open' ),\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useThemeBuilderActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerAction( {\n\t\tname: 'open-theme-builder',\n\t\tuseProps: useThemeBuilderActionProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { ToggleActionProps } from '../../../types';\nimport { ToggleRightIcon } from '@elementor/icons';\nimport { openRoute, useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps(): ToggleActionProps {\n\tconst { isActive, isBlocked } = useRouteStatus( 'panel/editor-preferences' );\n\n\treturn {\n\t\ticon: ToggleRightIcon,\n\t\ttitle: __( 'User Preferences', 'elementor' ),\n\t\tonClick: () => openRoute( 'panel/editor-preferences' ),\n\t\tselected: isActive,\n\t\tdisabled: isBlocked,\n\t};\n}\n","import { mainMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tmainMenu.registerToggleAction( {\n\t\tname: 'open-user-preferences',\n\t\tpriority: 30, // After history.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { parseEnv, InvalidEnvError } from '@elementor/env';\n\ntype Env = {\n\tadmin_url: string;\n};\n\nexport const { env, validateEnv } = parseEnv( '@elementor/editor-app-bar', ( envData ): Env => {\n\tif ( ! isValid( envData ) ) {\n\t\tthrow new InvalidEnvError( 'Invalid admin URL' );\n\t}\n\n\treturn envData;\n} );\n\nfunction isValid( subject: object ): subject is Env {\n\treturn 'admin_url' in subject && typeof subject.admin_url === 'string';\n}\n","import { mainMenu } from '../../locations';\nimport { env } from '../../env';\nimport { __ } from '@wordpress/i18n';\nimport { WordpressIcon } from '@elementor/icons';\n\nexport function init() {\n\tmainMenu.registerLink( {\n\t\tname: 'manage-website',\n\t\tgroup: 'exits',\n\t\tprops: {\n\t\t\ttitle: __( 'Manage Website', 'elementor' ),\n\t\t\thref: env.admin_url,\n\t\t\ticon: WordpressIcon,\n\t\t\ttarget: '_blank',\n\t\t},\n\t} );\n}\n","/**\n * All the code in this directory is a temporary solution.\n * The code should be moved to the appropriate packages.\n */\n\nimport { init as initDocumentsIndicator } from './documents-indicator';\nimport { init as initDocumentsPreview } from './documents-preview';\nimport { init as initDocumentsSave } from './documents-save';\nimport { init as initElements } from './elements';\nimport { init as initFinder } from './finder';\nimport { init as initHelp } from './help';\nimport { init as initHistory } from './history';\nimport { init as initKeyboardShortcuts } from './keyboard-shortcuts';\nimport { init as initSiteSettings } from './site-settings';\nimport { init as initStructure } from './structure';\nimport { init as initThemeBuilder } from './theme-builder';\nimport { init as initUserPreferences } from './user-preferences';\nimport { init as initWordpress } from './wordpress';\n\nexport function init() {\n\tinitDocumentsIndicator();\n\tinitDocumentsPreview();\n\tinitDocumentsSave();\n\tinitElements();\n\tinitFinder();\n\tinitHelp();\n\tinitHistory();\n\tinitKeyboardShortcuts();\n\tinitSiteSettings();\n\tinitStructure();\n\tinitThemeBuilder();\n\tinitUserPreferences();\n\tinitWordpress();\n}\n","export {\n\tmainMenu,\n\ttoolsMenu,\n\tutilitiesMenu,\n\tdocumentOptionsMenu,\n\tinjectIntoPageIndication,\n\tinjectIntoResponsive,\n\tinjectIntoPrimaryAction,\n} from './locations';\n\nimport init from './init';\n\ninit();\n"],"mappings":"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","names":["React","React","React","React","React","React","Box","Tooltip","React","useMenuItems","React","Box","Divider","React","React","React","ToggleButton","MenuItem","React","React","Stack","Stack","React","bindMenu","bindTrigger","usePopupState","__","usePopupState","bindTrigger","__","bindMenu","useMenuItems","MenuItem","React","Fragment","Divider","MAX_TOOLBAR_ACTIONS","useMenuItems","MenuItem","Fragment","Divider","React","React","Slot","Slot","React","Slot","Slot","Box","Divider","injectIntoTop","React","Box","ToggleButton","Tooltip","__","openRoute","document","__","useActiveDocument","document","init","__","useActiveDocument","document","__","useActiveDocumentActions","React","__","React","Divider","styled","useMenuItems","styled","MenuItem","Divider","bindMenu","bindTrigger","Box","Tooltip","usePopupState","useActiveDocument","useActiveDocumentActions","document","__","init","__","listenTo","routeOpenEvent","__","openRoute","useRouteStatus","useActionProps","init","useActionProps","__","runCommand","useRouteStatus","useActionProps","init","useActionProps","__","init","__","openRoute","useRouteStatus","useActionProps","init","useActionProps","__","runCommand","useActionProps","init","useActionProps","React","React","isRouteActive","routeOpenEvent","React","useActiveDocument","useActiveDocumentActions","Button","CircularProgress","__","PrimaryAction","document","PrimaryAction","__","runCommand","useRouteStatus","useActionProps","init","useActionProps","__","runCommand","useRouteStatus","useActionProps","init","useActionProps","__","runCommand","useActionProps","init","useActionProps","__","openRoute","useRouteStatus","useActionProps","init","useActionProps","__","init","init","init","injectIntoTop","init"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elementor/editor-app-bar",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "private": false,
5
5
  "author": "Elementor Team",
6
6
  "homepage": "https://elementor.com/",
@@ -19,7 +19,7 @@
19
19
  "repository": {
20
20
  "type": "git",
21
21
  "url": "https://github.com/elementor/elementor-packages.git",
22
- "directory": "packages/editor-app-bar"
22
+ "directory": "packages/core/editor-app-bar"
23
23
  },
24
24
  "bugs": {
25
25
  "url": "https://github.com/elementor/elementor-packages/issues"
@@ -32,12 +32,13 @@
32
32
  "dev": "tsup --config=../../tsup.dev.ts"
33
33
  },
34
34
  "dependencies": {
35
- "@elementor/editor": "^0.1.0",
36
- "@elementor/editor-documents": "^0.1.0",
37
- "@elementor/editor-v1-adapters": "^0.1.0",
38
- "@elementor/icons": "^0.1.0",
39
- "@elementor/locations": "^0.1.0",
40
- "@elementor/ui": "^1.4.47",
35
+ "@elementor/editor": "^0.2.1",
36
+ "@elementor/editor-documents": "^0.2.0",
37
+ "@elementor/editor-v1-adapters": "^0.2.0",
38
+ "@elementor/env": "^0.2.0",
39
+ "@elementor/icons": "^0.2.1",
40
+ "@elementor/locations": "^0.2.0",
41
+ "@elementor/ui": "^1.4.50",
41
42
  "@wordpress/i18n": "^4.31.0"
42
43
  },
43
44
  "peerDependencies": {
@@ -46,5 +47,5 @@
46
47
  "elementor": {
47
48
  "type": "extension"
48
49
  },
49
- "gitHead": "2ba9f13a9dbd085eb6ed8e6e303e9275ce626b8d"
50
+ "gitHead": "3559bb26178072f23c08caab4114671a76bb9eb6"
50
51
  }
package/src/env.ts ADDED
@@ -0,0 +1,17 @@
1
+ import { parseEnv, InvalidEnvError } from '@elementor/env';
2
+
3
+ type Env = {
4
+ admin_url: string;
5
+ };
6
+
7
+ export const { env, validateEnv } = parseEnv( '@elementor/editor-app-bar', ( envData ): Env => {
8
+ if ( ! isValid( envData ) ) {
9
+ throw new InvalidEnvError( 'Invalid admin URL' );
10
+ }
11
+
12
+ return envData;
13
+ } );
14
+
15
+ function isValid( subject: object ): subject is Env {
16
+ return 'admin_url' in subject && typeof subject.admin_url === 'string';
17
+ }
@@ -63,7 +63,7 @@ describe( '@elementor/editor-app-bar - Top Bar Primary Action', () => {
63
63
  expect( getAllByRole( 'button' )[ 0 ] ).toHaveTextContent( 'Publish' );
64
64
  } );
65
65
 
66
- it( 'should be disabled when the document is a Kit', () => {
66
+ it( 'should disable main and the menu buttons when the document is a Kit', () => {
67
67
  // Arrange.
68
68
  const mockDocument = createMockDocument( {
69
69
  isDirty: true,
@@ -76,26 +76,34 @@ describe( '@elementor/editor-app-bar - Top Bar Primary Action', () => {
76
76
  jest.mocked( useActiveDocument ).mockReturnValue( mockDocument );
77
77
 
78
78
  // Act.
79
- const { getAllByRole } = render( <PrimaryAction /> );
79
+ const { getByText, getByLabelText } = render( <PrimaryAction /> );
80
80
 
81
81
  // Assert.
82
- expect( getAllByRole( 'button' )[ 0 ] ).toBeDisabled();
82
+ const mainButton = getByText( 'Publish' );
83
+ const menuButton = getByLabelText( 'Save Options' );
84
+
85
+ expect( mainButton ).toBeDisabled();
86
+ expect( menuButton ).toBeDisabled();
83
87
  } );
84
88
 
85
- it( 'should be disabled when the document is pristine', () => {
89
+ it( 'should disable only the main button when the document is pristine', () => {
86
90
  // Arrange.
87
91
  const mockDocument = createMockDocument( { isDirty: false } );
88
92
 
89
93
  jest.mocked( useActiveDocument ).mockReturnValue( mockDocument );
90
94
 
91
95
  // Act.
92
- const { getAllByRole } = render( <PrimaryAction /> );
96
+ const { getByText, getByLabelText } = render( <PrimaryAction /> );
93
97
 
94
98
  // Assert.
95
- expect( getAllByRole( 'button' )[ 0 ] ).toBeDisabled();
99
+ const mainButton = getByText( 'Publish' );
100
+ const menuButton = getByLabelText( 'Save Options' );
101
+
102
+ expect( mainButton ).toBeDisabled();
103
+ expect( menuButton ).toBeEnabled();
96
104
  } );
97
105
 
98
- it( 'should always be enabled when the document status is draft', () => {
106
+ it( 'should always enable main and menu buttons when the document status is draft', () => {
99
107
  // Arrange.
100
108
  const mockDocument = createMockDocument( {
101
109
  isDirty: false,
@@ -108,10 +116,14 @@ describe( '@elementor/editor-app-bar - Top Bar Primary Action', () => {
108
116
  jest.mocked( useActiveDocument ).mockReturnValue( mockDocument );
109
117
 
110
118
  // Act.
111
- const { getAllByRole } = render( <PrimaryAction /> );
119
+ const { getByText, getByLabelText } = render( <PrimaryAction /> );
112
120
 
113
121
  // Assert.
114
- expect( getAllByRole( 'button' )[ 0 ] ).toBeEnabled();
122
+ const mainButton = getByText( 'Publish' );
123
+ const menuButton = getByLabelText( 'Save Options' );
124
+
125
+ expect( mainButton ).toBeEnabled();
126
+ expect( menuButton ).toBeEnabled();
115
127
  } );
116
128
 
117
129
  it( 'should save the active document on click', () => {
@@ -4,6 +4,7 @@ import PrimaryActionMenu from './primary-action-menu';
4
4
  import {
5
5
  bindMenu,
6
6
  bindTrigger,
7
+ Box,
7
8
  Button,
8
9
  ButtonGroup,
9
10
  CircularProgress,
@@ -54,9 +55,16 @@ export default function PrimaryAction() {
54
55
  },
55
56
  } }
56
57
  >
57
- <Button sx={ { px: 0 } } { ...bindTrigger( popupState ) }>
58
- <ChevronDownIcon />
59
- </Button>
58
+ <Box component="span" aria-label={ undefined }>
59
+ <Button
60
+ { ...bindTrigger( popupState ) }
61
+ sx={ { px: 0 } }
62
+ disabled={ document.type.value === 'kit' }
63
+ aria-label={ __( 'Save Options', 'elementor' ) }
64
+ >
65
+ <ChevronDownIcon />
66
+ </Button>
67
+ </Box>
60
68
  </Tooltip>
61
69
  </ButtonGroup>
62
70
  <PrimaryActionMenu { ...bindMenu( popupState ) } onClick={ popupState.close } />
@@ -1,6 +1,6 @@
1
1
  import { injectIntoTop } from '@elementor/editor';
2
2
  import PortalledPrimaryAction from './components/portalled-primary-action';
3
- import { toolsMenu } from '../../locations/index';
3
+ import { toolsMenu } from '../../locations';
4
4
  import useActionProps from './hooks/use-action-props';
5
5
 
6
6
  export function init() {
@@ -1,5 +1,5 @@
1
1
  import { mainMenu } from '../../locations';
2
- import { useSettings } from '@elementor/editor';
2
+ import { env } from '../../env';
3
3
  import { __ } from '@wordpress/i18n';
4
4
  import { WordpressIcon } from '@elementor/icons';
5
5
 
@@ -7,15 +7,11 @@ export function init() {
7
7
  mainMenu.registerLink( {
8
8
  name: 'manage-website',
9
9
  group: 'exits',
10
- useProps: () => {
11
- const { urls } = useSettings();
12
-
13
- return {
14
- title: __( 'Manage Website', 'elementor' ),
15
- href: urls.admin,
16
- icon: WordpressIcon,
17
- target: '_blank',
18
- };
10
+ props: {
11
+ title: __( 'Manage Website', 'elementor' ),
12
+ href: env.admin_url,
13
+ icon: WordpressIcon,
14
+ target: '_blank',
19
15
  },
20
16
  } );
21
17
  }
package/src/index.ts CHANGED
@@ -6,7 +6,7 @@ export {
6
6
  injectIntoPageIndication,
7
7
  injectIntoResponsive,
8
8
  injectIntoPrimaryAction,
9
- } from './locations/index';
9
+ } from './locations';
10
10
 
11
11
  import init from './init';
12
12
 
package/src/init.ts CHANGED
@@ -2,8 +2,11 @@ import AppBar from './components/app-bar';
2
2
  import { injectIntoTop } from '@elementor/editor';
3
3
  import redirectOldMenus from './sync/redirect-old-menus';
4
4
  import { init as initExtensions } from './extensions';
5
+ import { validateEnv } from './env';
5
6
 
6
7
  export default function init() {
8
+ validateEnv();
9
+
7
10
  redirectOldMenus();
8
11
 
9
12
  initExtensions();