@elementor/editor-app-bar 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/index.js +25 -25
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +32 -32
  5. package/dist/index.mjs.map +1 -1
  6. package/package.json +5 -5
  7. package/src/extensions/documents-indicator/components/__tests__/settings-button.test.tsx +5 -5
  8. package/src/extensions/documents-indicator/components/settings-button.tsx +4 -4
  9. package/src/extensions/documents-preview/hooks/__tests__/use-document-preview-props.test.ts +5 -5
  10. package/src/extensions/documents-preview/hooks/use-action-props.ts +3 -3
  11. package/src/extensions/documents-save/components/__tests__/primary-action.test.tsx +14 -14
  12. package/src/extensions/documents-save/components/primary-action.tsx +4 -4
  13. package/src/extensions/documents-save/hooks/__tests__/use-document-save-draft-props.test.ts +4 -4
  14. package/src/extensions/documents-save/hooks/__tests__/use-document-save-template-props.test.ts +2 -2
  15. package/src/extensions/documents-save/hooks/use-document-save-draft-props.ts +3 -3
  16. package/src/extensions/documents-save/hooks/use-document-save-template-props.ts +2 -2
  17. package/src/extensions/elements/hooks/__tests__/use-action-props.test.ts +3 -3
  18. package/src/extensions/elements/hooks/use-action-props.ts +1 -1
  19. package/src/extensions/elements/sync/__tests__/sync-panel-title.test.ts +2 -2
  20. package/src/extensions/elements/sync/sync-panel-title.ts +1 -1
  21. package/src/extensions/finder/hooks/__tests__/use-action-props.test.ts +3 -3
  22. package/src/extensions/finder/hooks/use-action-props.ts +1 -1
  23. package/src/extensions/history/hooks/__tests__/use-action-props.test.ts +3 -3
  24. package/src/extensions/history/hooks/use-action-props.ts +1 -1
  25. package/src/extensions/keyboard-shortcuts/hooks/__tests__/use-action-props.test.ts +2 -2
  26. package/src/extensions/keyboard-shortcuts/hooks/use-action-props.ts +1 -1
  27. package/src/extensions/site-settings/components/__tests__/portalled-primary-action.test.tsx +5 -5
  28. package/src/extensions/site-settings/components/__tests__/primary-action.test.tsx +7 -7
  29. package/src/extensions/site-settings/components/portal.tsx +1 -1
  30. package/src/extensions/site-settings/components/primary-action.tsx +3 -3
  31. package/src/extensions/site-settings/hooks/__tests__/use-action-props.test.ts +3 -3
  32. package/src/extensions/site-settings/hooks/use-action-props.ts +1 -1
  33. package/src/extensions/structure/hooks/__tests__/use-action-props.test.ts +3 -3
  34. package/src/extensions/structure/hooks/use-action-props.ts +1 -1
  35. package/src/extensions/theme-builder/hooks/__tests__/use-action-props.test.ts +2 -2
  36. package/src/extensions/theme-builder/hooks/use-action-props.ts +1 -1
  37. package/src/extensions/user-preferences/hooks/__tests__/use-action-props.test.ts +3 -3
  38. package/src/extensions/user-preferences/hooks/use-action-props.ts +1 -1
  39. package/src/extensions/wordpress/index.ts +2 -2
  40. package/src/sync/__tests__/redirect-old-menus.test.ts +2 -2
  41. package/src/sync/redirect-old-menus.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.9.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-app-bar@0.8.0...@elementor/editor-app-bar@0.9.0) (2023-09-14)
7
+
8
+
9
+ ### Features
10
+
11
+ * **v1-adapters:** mark private functions [ED-12029] ([#122](https://github.com/elementor/elementor-packages/issues/122)) ([2e79ccc](https://github.com/elementor/elementor-packages/commit/2e79ccc87add5f0508b5a142f9f6d832b4657062))
12
+
13
+
14
+
15
+
16
+
6
17
  # [0.8.0](https://github.com/elementor/elementor-packages/compare/@elementor/editor-app-bar@0.7.3...@elementor/editor-app-bar@0.8.0) (2023-09-11)
7
18
 
8
19
 
package/dist/index.js CHANGED
@@ -557,8 +557,8 @@ var import_editor2 = require("@elementor/editor");
557
557
  // src/sync/redirect-old-menus.ts
558
558
  var import_editor_v1_adapters = require("@elementor/editor-v1-adapters");
559
559
  function redirectOldMenus() {
560
- (0, import_editor_v1_adapters.listenTo)((0, import_editor_v1_adapters.routeOpenEvent)("panel/menu"), () => {
561
- (0, import_editor_v1_adapters.openRoute)("panel/elements/categories");
560
+ (0, import_editor_v1_adapters.__privateListenTo)((0, import_editor_v1_adapters.routeOpenEvent)("panel/menu"), () => {
561
+ (0, import_editor_v1_adapters.__privateOpenRoute)("panel/elements/categories");
562
562
  });
563
563
  }
564
564
 
@@ -573,7 +573,7 @@ function SettingsButton() {
573
573
  const activeDocument = (0, import_editor_documents.__useActiveDocument)();
574
574
  const hostDocument = (0, import_editor_documents.__useHostDocument)();
575
575
  const document2 = activeDocument && activeDocument.type.value !== "kit" ? activeDocument : hostDocument;
576
- const { isActive, isBlocked } = (0, import_editor_v1_adapters2.useRouteStatus)("panel/page-settings");
576
+ const { isActive, isBlocked } = (0, import_editor_v1_adapters2.__privateUseRouteStatus)("panel/page-settings");
577
577
  if (!document2) {
578
578
  return null;
579
579
  }
@@ -584,7 +584,7 @@ function SettingsButton() {
584
584
  value: "document-settings",
585
585
  selected: isActive,
586
586
  disabled: isBlocked,
587
- onChange: () => (0, import_editor_v1_adapters2.openRoute)("panel/page-settings/settings"),
587
+ onChange: () => (0, import_editor_v1_adapters2.__privateOpenRoute)("panel/page-settings/settings"),
588
588
  "aria-label": title,
589
589
  size: "small",
590
590
  sx: {
@@ -637,7 +637,7 @@ function useActionProps() {
637
637
  return {
638
638
  icon: import_icons5.EyeIcon,
639
639
  title: (0, import_i18n5.__)("Preview Changes", "elementor"),
640
- onClick: () => document2 && (0, import_editor_v1_adapters3.runCommand)("editor/documents/preview", {
640
+ onClick: () => document2 && (0, import_editor_v1_adapters3.__privateRunCommand)("editor/documents/preview", {
641
641
  id: document2.id,
642
642
  force: true
643
643
  })
@@ -735,7 +735,7 @@ var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
735
735
  function PrimaryAction() {
736
736
  const document2 = (0, import_editor_documents5.__useActiveDocument)();
737
737
  const { save } = (0, import_editor_documents5.__useActiveDocumentActions)();
738
- const isPreviewMode = (0, import_editor_v1_adapters4.useIsPreviewMode)();
738
+ const isPreviewMode = (0, import_editor_v1_adapters4.__privateUseIsPreviewMode)();
739
739
  const popupState = (0, import_ui15.usePopupState)({
740
740
  variant: "popover",
741
741
  popupId: "document-save-options"
@@ -825,17 +825,17 @@ var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
825
825
  function syncPanelTitle() {
826
826
  const panelTitle = (0, import_i18n9.__)("Elements", "elementor");
827
827
  const tabTitle = (0, import_i18n9.__)("Widgets", "elementor");
828
- (0, import_editor_v1_adapters5.listenTo)(
828
+ (0, import_editor_v1_adapters5.__privateListenTo)(
829
829
  (0, import_editor_v1_adapters5.routeOpenEvent)("panel/elements"),
830
830
  () => {
831
831
  setPanelTitle(panelTitle);
832
832
  setTabTitle(tabTitle);
833
833
  }
834
834
  );
835
- (0, import_editor_v1_adapters5.listenTo)(
835
+ (0, import_editor_v1_adapters5.__privateListenTo)(
836
836
  (0, import_editor_v1_adapters5.v1ReadyEvent)(),
837
837
  () => {
838
- if ((0, import_editor_v1_adapters5.isRouteActive)("panel/elements")) {
838
+ if ((0, import_editor_v1_adapters5.__privateIsRouteActive)("panel/elements")) {
839
839
  setPanelTitle(panelTitle);
840
840
  setTabTitle(tabTitle);
841
841
  }
@@ -857,11 +857,11 @@ var import_icons9 = require("@elementor/icons");
857
857
  var import_i18n10 = require("@wordpress/i18n");
858
858
  var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
859
859
  function useActionProps2() {
860
- const { isActive, isBlocked } = (0, import_editor_v1_adapters6.useRouteStatus)("panel/elements");
860
+ const { isActive, isBlocked } = (0, import_editor_v1_adapters6.__privateUseRouteStatus)("panel/elements");
861
861
  return {
862
862
  title: (0, import_i18n10.__)("Add Element", "elementor"),
863
863
  icon: import_icons9.PlusIcon,
864
- onClick: () => (0, import_editor_v1_adapters6.openRoute)("panel/elements/categories"),
864
+ onClick: () => (0, import_editor_v1_adapters6.__privateOpenRoute)("panel/elements/categories"),
865
865
  selected: isActive,
866
866
  disabled: isBlocked
867
867
  };
@@ -882,14 +882,14 @@ var import_i18n11 = require("@wordpress/i18n");
882
882
  var import_icons10 = require("@elementor/icons");
883
883
  var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
884
884
  function useActionProps3() {
885
- const { isBlocked } = (0, import_editor_v1_adapters7.useRouteStatus)("finder", {
885
+ const { isBlocked } = (0, import_editor_v1_adapters7.__privateUseRouteStatus)("finder", {
886
886
  blockOnKitRoutes: false,
887
887
  blockOnPreviewMode: false
888
888
  });
889
889
  return {
890
890
  title: (0, import_i18n11.__)("Finder", "elementor"),
891
891
  icon: import_icons10.SearchIcon,
892
- onClick: () => (0, import_editor_v1_adapters7.runCommand)("finder/toggle"),
892
+ onClick: () => (0, import_editor_v1_adapters7.__privateRunCommand)("finder/toggle"),
893
893
  disabled: isBlocked
894
894
  };
895
895
  }
@@ -928,11 +928,11 @@ var import_icons12 = require("@elementor/icons");
928
928
  var import_i18n13 = require("@wordpress/i18n");
929
929
  var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
930
930
  function useActionProps4() {
931
- const { isActive, isBlocked } = (0, import_editor_v1_adapters8.useRouteStatus)("panel/history");
931
+ const { isActive, isBlocked } = (0, import_editor_v1_adapters8.__privateUseRouteStatus)("panel/history");
932
932
  return {
933
933
  title: (0, import_i18n13.__)("History", "elementor"),
934
934
  icon: import_icons12.HistoryIcon,
935
- onClick: () => (0, import_editor_v1_adapters8.openRoute)("panel/history/actions"),
935
+ onClick: () => (0, import_editor_v1_adapters8.__privateOpenRoute)("panel/history/actions"),
936
936
  selected: isActive,
937
937
  disabled: isBlocked
938
938
  };
@@ -955,7 +955,7 @@ function useActionProps5() {
955
955
  return {
956
956
  icon: import_icons13.KeyboardIcon,
957
957
  title: (0, import_i18n14.__)("Keyboard Shortcuts", "elementor"),
958
- onClick: () => (0, import_editor_v1_adapters9.runCommand)("shortcuts/open")
958
+ onClick: () => (0, import_editor_v1_adapters9.__privateRunCommand)("shortcuts/open")
959
959
  };
960
960
  }
961
961
 
@@ -981,7 +981,7 @@ var React25 = __toESM(require("react"));
981
981
  var import_ui16 = require("@elementor/ui");
982
982
  var import_editor_v1_adapters10 = require("@elementor/editor-v1-adapters");
983
983
  function Portal(props) {
984
- const containerRef = (0, import_editor_v1_adapters10.useListenTo)(
984
+ const containerRef = (0, import_editor_v1_adapters10.__privateUseListenTo)(
985
985
  [
986
986
  (0, import_editor_v1_adapters10.routeOpenEvent)("panel/global"),
987
987
  (0, import_editor_v1_adapters10.routeCloseEvent)("panel/global")
@@ -994,7 +994,7 @@ function Portal(props) {
994
994
  return /* @__PURE__ */ React25.createElement(import_ui16.Portal, { container: containerRef.current, ...props });
995
995
  }
996
996
  function getContainerRef() {
997
- return (0, import_editor_v1_adapters10.isRouteActive)("panel/global") ? { current: document.querySelector("#elementor-panel-inner") } : { current: null };
997
+ return (0, import_editor_v1_adapters10.__privateIsRouteActive)("panel/global") ? { current: document.querySelector("#elementor-panel-inner") } : { current: null };
998
998
  }
999
999
 
1000
1000
  // src/extensions/site-settings/components/primary-action.tsx
@@ -1033,13 +1033,13 @@ var import_i18n16 = require("@wordpress/i18n");
1033
1033
  var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
1034
1034
  var import_icons14 = require("@elementor/icons");
1035
1035
  function useActionProps6() {
1036
- const { isActive, isBlocked } = (0, import_editor_v1_adapters11.useRouteStatus)("panel/global", {
1036
+ const { isActive, isBlocked } = (0, import_editor_v1_adapters11.__privateUseRouteStatus)("panel/global", {
1037
1037
  blockOnKitRoutes: false
1038
1038
  });
1039
1039
  return {
1040
1040
  title: (0, import_i18n16.__)("Site Settings", "elementor"),
1041
1041
  icon: import_icons14.AdjustmentsHorizontalIcon,
1042
- onClick: () => isActive ? (0, import_editor_v1_adapters11.runCommand)("panel/global/close") : (0, import_editor_v1_adapters11.runCommand)("panel/global/open"),
1042
+ onClick: () => isActive ? (0, import_editor_v1_adapters11.__privateRunCommand)("panel/global/close") : (0, import_editor_v1_adapters11.__privateRunCommand)("panel/global/open"),
1043
1043
  selected: isActive,
1044
1044
  disabled: isBlocked
1045
1045
  };
@@ -1063,11 +1063,11 @@ var import_i18n17 = require("@wordpress/i18n");
1063
1063
  var import_editor_v1_adapters12 = require("@elementor/editor-v1-adapters");
1064
1064
  var import_icons15 = require("@elementor/icons");
1065
1065
  function useActionProps7() {
1066
- const { isActive, isBlocked } = (0, import_editor_v1_adapters12.useRouteStatus)("navigator");
1066
+ const { isActive, isBlocked } = (0, import_editor_v1_adapters12.__privateUseRouteStatus)("navigator");
1067
1067
  return {
1068
1068
  title: (0, import_i18n17.__)("Structure", "elementor"),
1069
1069
  icon: import_icons15.StructureIcon,
1070
- onClick: () => (0, import_editor_v1_adapters12.runCommand)("navigator/toggle"),
1070
+ onClick: () => (0, import_editor_v1_adapters12.__privateRunCommand)("navigator/toggle"),
1071
1071
  selected: isActive,
1072
1072
  disabled: isBlocked
1073
1073
  };
@@ -1090,7 +1090,7 @@ function useActionProps8() {
1090
1090
  return {
1091
1091
  icon: import_icons16.ThemeBuilderIcon,
1092
1092
  title: (0, import_i18n18.__)("Theme Builder", "elementor"),
1093
- onClick: () => (0, import_editor_v1_adapters13.runCommand)("app/open")
1093
+ onClick: () => (0, import_editor_v1_adapters13.__privateRunCommand)("app/open")
1094
1094
  };
1095
1095
  }
1096
1096
 
@@ -1107,11 +1107,11 @@ var import_i18n19 = require("@wordpress/i18n");
1107
1107
  var import_icons17 = require("@elementor/icons");
1108
1108
  var import_editor_v1_adapters14 = require("@elementor/editor-v1-adapters");
1109
1109
  function useActionProps9() {
1110
- const { isActive, isBlocked } = (0, import_editor_v1_adapters14.useRouteStatus)("panel/editor-preferences");
1110
+ const { isActive, isBlocked } = (0, import_editor_v1_adapters14.__privateUseRouteStatus)("panel/editor-preferences");
1111
1111
  return {
1112
1112
  icon: import_icons17.ToggleRightIcon,
1113
1113
  title: (0, import_i18n19.__)("User Preferences", "elementor"),
1114
- onClick: () => (0, import_editor_v1_adapters14.openRoute)("panel/editor-preferences"),
1114
+ onClick: () => (0, import_editor_v1_adapters14.__privateOpenRoute)("panel/editor-preferences"),
1115
1115
  selected: isActive,
1116
1116
  disabled: isBlocked
1117
1117
  };
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/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/integrations-menu-location.tsx","../src/components/ui/popover-sub-menu.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\tintegrationsMenu,\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 { createLocation, Location } from '@elementor/locations';\nimport Action from '../components/actions/action';\nimport ToggleAction from '../components/actions/toggle-action';\nimport Link from '../components/actions/link';\n\ntype GroupName = string;\n\ntype MenuGroup<TGroup extends GroupName> = TGroup | 'default';\n\ntype GroupedItems<TGroup extends GroupName> = Record<MenuGroup<TGroup>, Array<{ id: string, MenuItem: ElementType }>>;\n\ntype GroupLocationMap<TGroup extends GroupName> = Record<MenuGroup<TGroup>, Location>;\n\ntype MenuItem<\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n> = {\n\tid: 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\ntype MenuActions<TGroup extends GroupName> = {\n\tregisterAction: ( args: MenuItem<TGroup, typeof Action> ) => void,\n\tregisterToggleAction: ( args: MenuItem<TGroup, typeof ToggleAction> ) => void,\n\tregisterLink: ( args: MenuItem<TGroup, typeof Link> ) => void,\n\tuseMenuItems: () => GroupedItems<TGroup>,\n}\n\nexport function createMenu<\n\tTGroup extends GroupName = 'default'\n>( groups: TGroup[] = [] ): MenuActions<MenuGroup<TGroup>> {\n\tconst menuGroups: MenuGroup<TGroup>[] = [\n\t\t...groups,\n\t\t'default' as const,\n\t];\n\n\tconst locations = menuGroups.reduce(\n\t\t( carry, group ) => ( {\n\t\t\t...carry,\n\t\t\t[ group ]: createLocation(),\n\t\t} ),\n\t\t{} as GroupLocationMap<TGroup>\n\t);\n\n\tconst [\n\t\tregisterAction,\n\t\tregisterToggleAction,\n\t\tregisterLink,\n\t] = [ Action, ToggleAction, Link ].map(\n\t\t( Component ) => createRegisterMenuItem( {\n\t\t\tlocations,\n\t\t\tmenuGroups,\n\t\t\tcomponent: Component,\n\t\t} )\n\t);\n\n\tconst useMenuItems = createUseMenuItems( locations );\n\n\treturn {\n\t\tregisterAction,\n\t\tregisterToggleAction,\n\t\tregisterLink,\n\t\tuseMenuItems,\n\t};\n}\n\nfunction createRegisterMenuItem<\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n>( { locations, menuGroups, component }: {\n\tlocations: GroupLocationMap<TGroup>\n\tmenuGroups: MenuGroup<TGroup>[],\n\tcomponent: TComponent,\n} ) {\n\treturn ( { group = 'default', id, 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 InjectedComponent = ( props: object ) => {\n\t\t\tconst componentProps = useProps();\n\n\t\t\treturn <Component { ...props } { ...componentProps } />;\n\t\t};\n\n\t\tlocations[ group ].inject( {\n\t\t\tid,\n\t\t\tcomponent: InjectedComponent,\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<TGroup extends GroupName>( locations : GroupLocationMap<TGroup> ) {\n\treturn () => {\n\t\t// Normalize the injections groups to an object with the groups as keys.\n\t\treturn useMemo( () => {\n\t\t\treturn Object.entries( locations ).reduce<GroupedItems<TGroup>>(\n\t\t\t\t( carry, [ groupName, location ] ) => {\n\t\t\t\t\tconst items = location.getInjections()\n\t\t\t\t\t\t.map( ( injection ) => ( {\n\t\t\t\t\t\t\tid: injection.id,\n\t\t\t\t\t\t\tMenuItem: injection.component,\n\t\t\t\t\t\t} ) );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...carry,\n\t\t\t\t\t\t[ groupName ]: items,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{} as GroupedItems<TGroup>\n\t\t\t);\n\t\t}, [] );\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\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 as BaseTooltip, TooltipProps } 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\n\t\t\t\t\t{ ...props }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tsx={ {\n\t\t\t\t\t\t'& .MuiSvgIcon-root': {\n\t\t\t\t\t\t\tfontSize: '1.25rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\tcolor: 'text.primary',\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n\nfunction Tooltip( props: TooltipProps ) {\n\treturn <BaseTooltip\n\t\tPopperProps={ {\n\t\t\tsx: {\n\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\tmt: 2,\n\t\t\t\t},\n\t\t\t},\n\t\t} }\n\t\t{ ...props }\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\tsx={ {\n\t\t\t\t'&:hover': {\n\t\t\t\t\tcolor: 'text.primary', // Overriding global CSS from the editor.\n\t\t\t\t},\n\t\t\t} }\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\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonChange={ onClick }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tsx={ {\n\t\t\t\t\t\tborder: 0, // Temp fix until the style of the ToggleButton component will be decided.\n\t\t\t\t\t\t'&.Mui-disabled': {\n\t\t\t\t\t\t\tborder: 0, // Temp fix until the style of the ToggleButton component will be decided.\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'& .MuiSvgIcon-root': {\n\t\t\t\t\t\t\tfontSize: '1.25rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t/>\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 { createLocation } from '@elementor/locations';\n\nexport { createMenu } from './menus';\n\nexport const {\n\tinject: injectIntoPageIndication,\n\tSlot: PageIndicationSlot,\n} = createLocation();\n\nexport const {\n\tinject: injectIntoResponsive,\n\tSlot: ResponsiveSlot,\n} = createLocation();\n\nexport const {\n\tinject: injectIntoPrimaryAction,\n\tSlot: PrimaryActionSlot,\n} = createLocation();\n\nexport const mainMenu = createMenu( [ 'exits' ] );\n\nexport const toolsMenu = createMenu();\n\nexport const utilitiesMenu = createMenu();\n\nexport const integrationsMenu = createMenu();\n\nexport const documentOptionsMenu = createMenu( [ 'save' ] );\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={ 1.5 }>\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';\nimport IntegrationsMenuLocation from './integrations-menu-location';\n\nconst { useMenuItems } = mainMenu;\n\nexport default function MainMenuLocation() {\n\tconst menuItems = useMenuItems();\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: 3 } } 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\tmarginThreshold={ 8 }\n\t\t\t>\n\t\t\t\t{ menuItems.default.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\n\t\t\t\t<IntegrationsMenuLocation key=\"integrations-location\" parentPopupState={ popupState } />\n\n\t\t\t\t{ menuItems.exits.length > 0 && <Divider /> }\n\t\t\t\t{ menuItems.exits.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\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: 1.5 },\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\tdense: true,\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 )( ( { theme } ) => ( {\n\tpadding: 0,\n\tborder: 0,\n\tcolor: theme.palette.text.primary,\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\t'& path': {\n\t\tfill: theme.palette.background.default,\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=\"large\"\n\t\t\tonMouseEnter={ () => setIsHoverState( true ) }\n\t\t\tonMouseLeave={ () => setIsHoverState( false ) }\n\t\t>\n\t\t\t<StyledElementorLogo\n\t\t\t\tfontSize=\"large\"\n\t\t\t\tshowMenuIcon={ showMenuIcon }\n\t\t\t\ttitleAccess={ __( 'Elementor Logo', 'elementor' ) }\n\t\t\t/>\n\t\t</StyledToggleButton>\n\t);\n}\n","import * as React from 'react';\nimport { integrationsMenu } from '../../locations';\nimport {\n\tbindMenu,\n\tDivider,\n\tListItemIcon,\n\tListItemText,\n\tMenuItem,\n\tusePopupState,\n\tbindHover,\n\tbindFocus,\n\twithDirection,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\nimport { ChevronRightIcon, PlugIcon } from '@elementor/icons';\nimport PopoverSubMenu from '../ui/popover-sub-menu';\n\ntype Props = {\n\tparentPopupState: ReturnType<typeof usePopupState>;\n}\n\nconst { useMenuItems } = integrationsMenu;\n\nconst DirectionalChevronIcon = withDirection( ChevronRightIcon );\n\nexport default function IntegrationsMenuLocation( { parentPopupState }: Props ) {\n\tconst menuItems = useMenuItems();\n\n\tconst popupState = usePopupState( {\n\t\tparentPopupState,\n\t\tvariant: 'popover',\n\t\tpopupId: 'elementor-v2-app-bar-integrations',\n\t} );\n\n\tif ( menuItems.default.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Divider />\n\t\t\t<MenuItem\n\t\t\t\t{ ...bindHover( popupState ) }\n\t\t\t\t{ ...bindFocus( popupState ) }\n\t\t\t>\n\t\t\t\t<ListItemIcon>\n\t\t\t\t\t<PlugIcon />\n\t\t\t\t</ListItemIcon>\n\t\t\t\t<ListItemText primary={ __( 'Integrations', 'elementor' ) } />\n\t\t\t\t<DirectionalChevronIcon />\n\t\t\t\t<PopoverSubMenu { ...bindMenu( popupState ) } onClick={ popupState.close }>\n\t\t\t\t\t{ menuItems.default.map(\n\t\t\t\t\t\t( { MenuItem: IntegrationsMenuItem, id } ) => <IntegrationsMenuItem key={ id } />\n\t\t\t\t\t) }\n\t\t\t\t</PopoverSubMenu>\n\t\t\t</MenuItem>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport PopoverMenu, { PopoverMenuProps } from './popover-menu';\nimport { useTheme } from '@elementor/ui';\n\nexport default function PopoverSubMenu( { children, ...props }: PopoverMenuProps ) {\n\tconst theme = useTheme();\n\tconst isRTL = theme.direction === 'rtl';\n\n\treturn (\n\t\t<PopoverMenu\n\t\t\tsx={ { pointerEvents: 'none' } }\n\t\t\tPaperProps={ {\n\t\t\t\tsx: {\n\t\t\t\t\t// This is a workaround to support RTL in PopoverMenu, since it doesn't support it yet.\n\t\t\t\t\t...( isRTL\n\t\t\t\t\t\t? { marginInlineEnd: -2 }\n\t\t\t\t\t\t: { marginInlineStart: 2 }\n\t\t\t\t\t),\n\t\t\t\t\tpointerEvents: 'auto',\n\t\t\t\t},\n\t\t\t} }\n\t\t\tanchorOrigin={ { vertical: 'center', horizontal: isRTL ? 'left' : 'right' } }\n\t\t\ttransformOrigin={ { vertical: 'center', horizontal: isRTL ? 'right' : 'left' } }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</PopoverMenu>\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: 1.5 } } spacing={ 1.5 } 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 { PrimaryActionSlot } from '../../locations';\n\nexport default function PrimaryActionLocation() {\n\treturn (\n\t\t<PrimaryActionSlot />\n\t);\n}\n","import * as React from 'react';\nimport { PageIndicationSlot } from '../../locations';\n\nexport default function PageIndicationLocation() {\n\treturn (\n\t\t<PageIndicationSlot />\n\t);\n}\n","import * as React from 'react';\nimport { ResponsiveSlot } from '../../locations';\n\nexport default function ResponsiveLocation() {\n\treturn (\n\t\t<ResponsiveSlot />\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\tid: 'app-bar',\n\t\tcomponent: 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 as BaseTooltip, TooltipProps } 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\tsx={ {\n\t\t\t\t\t\tborder: 0, // Temp fix until the style of the ToggleButton component will be decided.\n\t\t\t\t\t\t'&.Mui-disabled': {\n\t\t\t\t\t\t\tborder: 0, // Temp fix until the style of the ToggleButton component will be decided.\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<SettingsIcon fontSize=\"small\" />\n\t\t\t\t</ToggleButton>\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n\nfunction Tooltip( props: TooltipProps ) {\n\treturn <BaseTooltip\n\t\tPopperProps={ {\n\t\t\tsx: {\n\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\tmt: 1.7,\n\t\t\t\t},\n\t\t\t},\n\t\t} }\n\t\t{ ...props }\n\t/>;\n}\n","import { injectIntoPageIndication } from '../../locations';\nimport SettingsButton from './components/settings-button';\n\nexport function init() {\n\tinjectIntoPageIndication( {\n\t\tid: 'document-settings-button',\n\t\tcomponent: 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\tid: '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';\nimport { useIsPreviewMode } from '@elementor/editor-v1-adapters';\n\nexport default function PrimaryAction() {\n\tconst document = __useActiveDocument();\n\tconst { save } = __useActiveDocumentActions();\n\tconst isPreviewMode = useIsPreviewMode();\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 isPublishDisabled = isPreviewMode || ! isPublishEnabled( document );\n\tconst isSaveOptionsDisabled = isPreviewMode || document.type.value === 'kit';\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 && ! isPublishDisabled;\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={ {\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\t\tmaxWidth: '158px',\n\t\t\t\t\t\t'&.MuiButtonBase-root.MuiButtonGroup-grouped': {\n\t\t\t\t\t\t\tminWidth: '110px',\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ isPublishDisabled }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowSpinner ? <CircularProgress color=\"inherit\" size=\"1.5em\" /> : 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: 1,\n\t\t\t\t\t\t\t\tmr: 0.25,\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\tsize=\"small\"\n\t\t\t\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\t\t\t\tsx={ { px: 0, height: '100%', borderRadius: 0 } }\n\t\t\t\t\t\t\tdisabled={ isSaveOptionsDisabled }\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 isPublishEnabled( 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\tmarginThreshold={ 4 }\n\t\t\tPaperProps={ {\n\t\t\t\tsx: { mt: 0.5 },\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\tid: 'document-primary-action',\n\t\tcomponent: PrimaryAction,\n\t} );\n\n\t// Documents options menu.\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tid: '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\tid: '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\tid: '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 { 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\tdisabled: isBlocked,\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerAction( {\n\t\tid: '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\tid: '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\tid: '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\tid: '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\tid: 'site-settings-primary-action-portal',\n\t\tcomponent: PortalledPrimaryAction,\n\t} );\n\n\ttoolsMenu.registerToggleAction( {\n\t\tid: '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\tid: '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\tid: '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\tid: 'open-user-preferences',\n\t\tpriority: 30, // After history.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { mainMenu } from '../../locations';\nimport { __ } from '@wordpress/i18n';\nimport { WordpressIcon } from '@elementor/icons';\nimport { __useActiveDocument } from '@elementor/editor-documents';\n\nexport function init() {\n\tmainMenu.registerLink( {\n\t\tid: 'exit-to-wordpress',\n\t\tgroup: 'exits',\n\t\tuseProps: () => {\n\t\t\tconst document = __useActiveDocument();\n\n\t\t\treturn {\n\t\t\t\ttitle: __( 'Exit to WordPress', 'elementor' ),\n\t\t\t\thref: document?.links?.platformEdit,\n\t\t\t\ticon: WordpressIcon,\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","BaseTooltip","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","React","import_ui","import_i18n","import_icons","React","import_ui","useMenuItems","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","React","React","BaseAppBar","import_editor","React","import_ui","import_i18n","import_editor_v1_adapters","import_icons","document","Tooltip","BaseTooltip","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","import_editor_v1_adapters","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","import_editor_documents","init","document","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/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/integrations-menu-location.tsx","../src/components/ui/popover-sub-menu.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\tintegrationsMenu,\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 { createLocation, Location } from '@elementor/locations';\nimport Action from '../components/actions/action';\nimport ToggleAction from '../components/actions/toggle-action';\nimport Link from '../components/actions/link';\n\ntype GroupName = string;\n\ntype MenuGroup<TGroup extends GroupName> = TGroup | 'default';\n\ntype GroupedItems<TGroup extends GroupName> = Record<MenuGroup<TGroup>, Array<{ id: string, MenuItem: ElementType }>>;\n\ntype GroupLocationMap<TGroup extends GroupName> = Record<MenuGroup<TGroup>, Location>;\n\ntype MenuItem<\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n> = {\n\tid: 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\ntype MenuActions<TGroup extends GroupName> = {\n\tregisterAction: ( args: MenuItem<TGroup, typeof Action> ) => void,\n\tregisterToggleAction: ( args: MenuItem<TGroup, typeof ToggleAction> ) => void,\n\tregisterLink: ( args: MenuItem<TGroup, typeof Link> ) => void,\n\tuseMenuItems: () => GroupedItems<TGroup>,\n}\n\nexport function createMenu<\n\tTGroup extends GroupName = 'default'\n>( groups: TGroup[] = [] ): MenuActions<MenuGroup<TGroup>> {\n\tconst menuGroups: MenuGroup<TGroup>[] = [\n\t\t...groups,\n\t\t'default' as const,\n\t];\n\n\tconst locations = menuGroups.reduce(\n\t\t( carry, group ) => ( {\n\t\t\t...carry,\n\t\t\t[ group ]: createLocation(),\n\t\t} ),\n\t\t{} as GroupLocationMap<TGroup>\n\t);\n\n\tconst [\n\t\tregisterAction,\n\t\tregisterToggleAction,\n\t\tregisterLink,\n\t] = [ Action, ToggleAction, Link ].map(\n\t\t( Component ) => createRegisterMenuItem( {\n\t\t\tlocations,\n\t\t\tmenuGroups,\n\t\t\tcomponent: Component,\n\t\t} )\n\t);\n\n\tconst useMenuItems = createUseMenuItems( locations );\n\n\treturn {\n\t\tregisterAction,\n\t\tregisterToggleAction,\n\t\tregisterLink,\n\t\tuseMenuItems,\n\t};\n}\n\nfunction createRegisterMenuItem<\n\tTGroup extends GroupName,\n\tTComponent extends ElementType,\n>( { locations, menuGroups, component }: {\n\tlocations: GroupLocationMap<TGroup>\n\tmenuGroups: MenuGroup<TGroup>[],\n\tcomponent: TComponent,\n} ) {\n\treturn ( { group = 'default', id, 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 InjectedComponent = ( props: object ) => {\n\t\t\tconst componentProps = useProps();\n\n\t\t\treturn <Component { ...props } { ...componentProps } />;\n\t\t};\n\n\t\tlocations[ group ].inject( {\n\t\t\tid,\n\t\t\tcomponent: InjectedComponent,\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<TGroup extends GroupName>( locations : GroupLocationMap<TGroup> ) {\n\treturn () => {\n\t\t// Normalize the injections groups to an object with the groups as keys.\n\t\treturn useMemo( () => {\n\t\t\treturn Object.entries( locations ).reduce<GroupedItems<TGroup>>(\n\t\t\t\t( carry, [ groupName, location ] ) => {\n\t\t\t\t\tconst items = location.getInjections()\n\t\t\t\t\t\t.map( ( injection ) => ( {\n\t\t\t\t\t\t\tid: injection.id,\n\t\t\t\t\t\t\tMenuItem: injection.component,\n\t\t\t\t\t\t} ) );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...carry,\n\t\t\t\t\t\t[ groupName ]: items,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{} as GroupedItems<TGroup>\n\t\t\t);\n\t\t}, [] );\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\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 as BaseTooltip, TooltipProps } 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\n\t\t\t\t\t{ ...props }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tsx={ {\n\t\t\t\t\t\t'& .MuiSvgIcon-root': {\n\t\t\t\t\t\t\tfontSize: '1.25rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\tcolor: 'text.primary',\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n\nfunction Tooltip( props: TooltipProps ) {\n\treturn <BaseTooltip\n\t\tPopperProps={ {\n\t\t\tsx: {\n\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\tmt: 2,\n\t\t\t\t},\n\t\t\t},\n\t\t} }\n\t\t{ ...props }\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\tsx={ {\n\t\t\t\t'&:hover': {\n\t\t\t\t\tcolor: 'text.primary', // Overriding global CSS from the editor.\n\t\t\t\t},\n\t\t\t} }\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\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonChange={ onClick }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tsx={ {\n\t\t\t\t\t\tborder: 0, // Temp fix until the style of the ToggleButton component will be decided.\n\t\t\t\t\t\t'&.Mui-disabled': {\n\t\t\t\t\t\t\tborder: 0, // Temp fix until the style of the ToggleButton component will be decided.\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'& .MuiSvgIcon-root': {\n\t\t\t\t\t\t\tfontSize: '1.25rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t/>\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 { createLocation } from '@elementor/locations';\n\nexport { createMenu } from './menus';\n\nexport const {\n\tinject: injectIntoPageIndication,\n\tSlot: PageIndicationSlot,\n} = createLocation();\n\nexport const {\n\tinject: injectIntoResponsive,\n\tSlot: ResponsiveSlot,\n} = createLocation();\n\nexport const {\n\tinject: injectIntoPrimaryAction,\n\tSlot: PrimaryActionSlot,\n} = createLocation();\n\nexport const mainMenu = createMenu( [ 'exits' ] );\n\nexport const toolsMenu = createMenu();\n\nexport const utilitiesMenu = createMenu();\n\nexport const integrationsMenu = createMenu();\n\nexport const documentOptionsMenu = createMenu( [ 'save' ] );\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={ 1.5 }>\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';\nimport IntegrationsMenuLocation from './integrations-menu-location';\n\nconst { useMenuItems } = mainMenu;\n\nexport default function MainMenuLocation() {\n\tconst menuItems = useMenuItems();\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: 3 } } 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\tmarginThreshold={ 8 }\n\t\t\t>\n\t\t\t\t{ menuItems.default.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\n\n\t\t\t\t<IntegrationsMenuLocation key=\"integrations-location\" parentPopupState={ popupState } />\n\n\t\t\t\t{ menuItems.exits.length > 0 && <Divider /> }\n\t\t\t\t{ menuItems.exits.map( ( { MenuItem, id } ) => <MenuItem key={ id } /> ) }\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: 1.5 },\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\tdense: true,\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 )( ( { theme } ) => ( {\n\tpadding: 0,\n\tborder: 0,\n\tcolor: theme.palette.text.primary,\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\t'& path': {\n\t\tfill: theme.palette.background.default,\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=\"large\"\n\t\t\tonMouseEnter={ () => setIsHoverState( true ) }\n\t\t\tonMouseLeave={ () => setIsHoverState( false ) }\n\t\t>\n\t\t\t<StyledElementorLogo\n\t\t\t\tfontSize=\"large\"\n\t\t\t\tshowMenuIcon={ showMenuIcon }\n\t\t\t\ttitleAccess={ __( 'Elementor Logo', 'elementor' ) }\n\t\t\t/>\n\t\t</StyledToggleButton>\n\t);\n}\n","import * as React from 'react';\nimport { integrationsMenu } from '../../locations';\nimport {\n\tbindMenu,\n\tDivider,\n\tListItemIcon,\n\tListItemText,\n\tMenuItem,\n\tusePopupState,\n\tbindHover,\n\tbindFocus,\n\twithDirection,\n} from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\nimport { ChevronRightIcon, PlugIcon } from '@elementor/icons';\nimport PopoverSubMenu from '../ui/popover-sub-menu';\n\ntype Props = {\n\tparentPopupState: ReturnType<typeof usePopupState>;\n}\n\nconst { useMenuItems } = integrationsMenu;\n\nconst DirectionalChevronIcon = withDirection( ChevronRightIcon );\n\nexport default function IntegrationsMenuLocation( { parentPopupState }: Props ) {\n\tconst menuItems = useMenuItems();\n\n\tconst popupState = usePopupState( {\n\t\tparentPopupState,\n\t\tvariant: 'popover',\n\t\tpopupId: 'elementor-v2-app-bar-integrations',\n\t} );\n\n\tif ( menuItems.default.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Divider />\n\t\t\t<MenuItem\n\t\t\t\t{ ...bindHover( popupState ) }\n\t\t\t\t{ ...bindFocus( popupState ) }\n\t\t\t>\n\t\t\t\t<ListItemIcon>\n\t\t\t\t\t<PlugIcon />\n\t\t\t\t</ListItemIcon>\n\t\t\t\t<ListItemText primary={ __( 'Integrations', 'elementor' ) } />\n\t\t\t\t<DirectionalChevronIcon />\n\t\t\t\t<PopoverSubMenu { ...bindMenu( popupState ) } onClick={ popupState.close }>\n\t\t\t\t\t{ menuItems.default.map(\n\t\t\t\t\t\t( { MenuItem: IntegrationsMenuItem, id } ) => <IntegrationsMenuItem key={ id } />\n\t\t\t\t\t) }\n\t\t\t\t</PopoverSubMenu>\n\t\t\t</MenuItem>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\nimport PopoverMenu, { PopoverMenuProps } from './popover-menu';\nimport { useTheme } from '@elementor/ui';\n\nexport default function PopoverSubMenu( { children, ...props }: PopoverMenuProps ) {\n\tconst theme = useTheme();\n\tconst isRTL = theme.direction === 'rtl';\n\n\treturn (\n\t\t<PopoverMenu\n\t\t\tsx={ { pointerEvents: 'none' } }\n\t\t\tPaperProps={ {\n\t\t\t\tsx: {\n\t\t\t\t\t// This is a workaround to support RTL in PopoverMenu, since it doesn't support it yet.\n\t\t\t\t\t...( isRTL\n\t\t\t\t\t\t? { marginInlineEnd: -2 }\n\t\t\t\t\t\t: { marginInlineStart: 2 }\n\t\t\t\t\t),\n\t\t\t\t\tpointerEvents: 'auto',\n\t\t\t\t},\n\t\t\t} }\n\t\t\tanchorOrigin={ { vertical: 'center', horizontal: isRTL ? 'left' : 'right' } }\n\t\t\ttransformOrigin={ { vertical: 'center', horizontal: isRTL ? 'right' : 'left' } }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</PopoverMenu>\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: 1.5 } } spacing={ 1.5 } 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 { PrimaryActionSlot } from '../../locations';\n\nexport default function PrimaryActionLocation() {\n\treturn (\n\t\t<PrimaryActionSlot />\n\t);\n}\n","import * as React from 'react';\nimport { PageIndicationSlot } from '../../locations';\n\nexport default function PageIndicationLocation() {\n\treturn (\n\t\t<PageIndicationSlot />\n\t);\n}\n","import * as React from 'react';\nimport { ResponsiveSlot } from '../../locations';\n\nexport default function ResponsiveLocation() {\n\treturn (\n\t\t<ResponsiveSlot />\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\tid: 'app-bar',\n\t\tcomponent: AppBar,\n\t} );\n}\n","import { __privateListenTo as listenTo, __privateOpenRoute as 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 as BaseTooltip, TooltipProps } from '@elementor/ui';\nimport { __ } from '@wordpress/i18n';\nimport { __privateOpenRoute as openRoute, __privateUseRouteStatus as useRouteStatus } from '@elementor/editor-v1-adapters';\nimport { SettingsIcon } from '@elementor/icons';\nimport { __useActiveDocument as useActiveDocument, __useHostDocument as 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\tsx={ {\n\t\t\t\t\t\tborder: 0, // Temp fix until the style of the ToggleButton component will be decided.\n\t\t\t\t\t\t'&.Mui-disabled': {\n\t\t\t\t\t\t\tborder: 0, // Temp fix until the style of the ToggleButton component will be decided.\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<SettingsIcon fontSize=\"small\" />\n\t\t\t\t</ToggleButton>\n\t\t\t</Box>\n\t\t</Tooltip>\n\t);\n}\n\nfunction Tooltip( props: TooltipProps ) {\n\treturn <BaseTooltip\n\t\tPopperProps={ {\n\t\t\tsx: {\n\t\t\t\t'&.MuiTooltip-popper .MuiTooltip-tooltip.MuiTooltip-tooltipPlacementBottom': {\n\t\t\t\t\tmt: 1.7,\n\t\t\t\t},\n\t\t\t},\n\t\t} }\n\t\t{ ...props }\n\t/>;\n}\n","import { injectIntoPageIndication } from '../../locations';\nimport SettingsButton from './components/settings-button';\n\nexport function init() {\n\tinjectIntoPageIndication( {\n\t\tid: 'document-settings-button',\n\t\tcomponent: 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 { __privateRunCommand as runCommand } from '@elementor/editor-v1-adapters';\nimport { __useActiveDocument as 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\tid: '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 as useActiveDocument, __useActiveDocumentActions as 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 as 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 as useActiveDocument, __useActiveDocumentActions as useActiveDocumentActions } from '@elementor/editor-documents';\nimport { ChevronDownIcon } from '@elementor/icons';\nimport { __privateUseIsPreviewMode as useIsPreviewMode } from '@elementor/editor-v1-adapters';\n\nexport default function PrimaryAction() {\n\tconst document = useActiveDocument();\n\tconst { save } = useActiveDocumentActions();\n\tconst isPreviewMode = useIsPreviewMode();\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 isPublishDisabled = isPreviewMode || ! isPublishEnabled( document );\n\tconst isSaveOptionsDisabled = isPreviewMode || document.type.value === 'kit';\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 && ! isPublishDisabled;\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={ {\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\t\tmaxWidth: '158px',\n\t\t\t\t\t\t'&.MuiButtonBase-root.MuiButtonGroup-grouped': {\n\t\t\t\t\t\t\tminWidth: '110px',\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ isPublishDisabled }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowSpinner ? <CircularProgress color=\"inherit\" size=\"1.5em\" /> : 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: 1,\n\t\t\t\t\t\t\t\tmr: 0.25,\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\tsize=\"small\"\n\t\t\t\t\t\t\t{ ...bindTrigger( popupState ) }\n\t\t\t\t\t\t\tsx={ { px: 0, height: '100%', borderRadius: 0 } }\n\t\t\t\t\t\t\tdisabled={ isSaveOptionsDisabled }\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 isPublishEnabled( 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\tmarginThreshold={ 4 }\n\t\t\tPaperProps={ {\n\t\t\t\tsx: { mt: 0.5 },\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\tid: 'document-primary-action',\n\t\tcomponent: PrimaryAction,\n\t} );\n\n\t// Documents options menu.\n\tdocumentOptionsMenu.registerAction( {\n\t\tgroup: 'save',\n\t\tid: '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\tid: 'document-save-as-template',\n\t\tpriority: 20, // After save draft.\n\t\tuseProps: useDocumentSaveTemplateProps,\n\t} );\n}\n","import { __ } from '@wordpress/i18n';\nimport { __privateIsRouteActive as isRouteActive, __privateListenTo as 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 { __privateOpenRoute as openRoute, __privateUseRouteStatus as 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\tid: '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 { __privateRunCommand as runCommand, __privateUseRouteStatus as useRouteStatus } from '@elementor/editor-v1-adapters';\n\nexport default function useActionProps() {\n\tconst { 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\tdisabled: isBlocked,\n\t};\n}\n","import { utilitiesMenu } from '../../locations';\nimport useActionProps from './hooks/use-action-props';\n\nexport function init() {\n\tutilitiesMenu.registerAction( {\n\t\tid: '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\tid: '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 { __privateOpenRoute as openRoute, __privateUseRouteStatus as 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\tid: '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 { __privateRunCommand as 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\tid: '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\tid: 'site-settings-primary-action-portal',\n\t\tcomponent: PortalledPrimaryAction,\n\t} );\n\n\ttoolsMenu.registerToggleAction( {\n\t\tid: '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 { __privateIsRouteActive as isRouteActive, routeCloseEvent, routeOpenEvent, __privateUseListenTo as 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 as useActiveDocument, __useActiveDocumentActions as 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 { __privateRunCommand as runCommand, __privateUseRouteStatus as 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 { __privateRunCommand as runCommand, __privateUseRouteStatus as 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\tid: '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 { __privateRunCommand as 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\tid: '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 { __privateOpenRoute as openRoute, __privateUseRouteStatus as 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\tid: 'open-user-preferences',\n\t\tpriority: 30, // After history.\n\t\tuseProps: useActionProps,\n\t} );\n}\n","import { mainMenu } from '../../locations';\nimport { __ } from '@wordpress/i18n';\nimport { WordpressIcon } from '@elementor/icons';\nimport { __useActiveDocument as useActiveDocument } from '@elementor/editor-documents';\n\nexport function init() {\n\tmainMenu.registerLink( {\n\t\tid: 'exit-to-wordpress',\n\t\tgroup: 'exits',\n\t\tuseProps: () => {\n\t\t\tconst document = useActiveDocument();\n\n\t\t\treturn {\n\t\t\t\ttitle: __( 'Exit to WordPress', 'elementor' ),\n\t\t\t\thref: document?.links?.platformEdit,\n\t\t\t\ticon: WordpressIcon,\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","BaseTooltip","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","React","import_ui","import_i18n","import_icons","React","import_ui","useMenuItems","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","React","React","BaseAppBar","import_editor","listenTo","openRoute","React","import_ui","import_i18n","import_editor_v1_adapters","import_icons","useActiveDocument","useHostDocument","document","useRouteStatus","Tooltip","openRoute","BaseTooltip","import_i18n","import_icons","import_editor_v1_adapters","import_editor_documents","document","useActiveDocument","runCommand","init","import_i18n","import_icons","import_editor_documents","document","useActiveDocument","useActiveDocumentActions","import_i18n","import_icons","import_editor_documents","useActiveDocumentActions","React","import_i18n","React","import_ui","useMenuItems","MenuItem","import_ui","import_editor_documents","import_icons","import_editor_v1_adapters","document","useActiveDocument","useActiveDocumentActions","useIsPreviewMode","init","import_i18n","import_editor_v1_adapters","listenTo","isRouteActive","import_icons","import_i18n","import_editor_v1_adapters","useActionProps","useRouteStatus","openRoute","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","useRouteStatus","runCommand","init","useActionProps","import_i18n","import_icons","init","import_icons","import_i18n","import_editor_v1_adapters","useActionProps","useRouteStatus","openRoute","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","runCommand","init","useActionProps","React","React","import_ui","import_editor_v1_adapters","useListenTo","BasePortal","isRouteActive","React","import_editor_documents","import_ui","import_i18n","PrimaryAction","document","useActiveDocument","useActiveDocumentActions","PrimaryAction","import_i18n","import_editor_v1_adapters","import_icons","useActionProps","useRouteStatus","runCommand","init","useActionProps","import_i18n","import_editor_v1_adapters","import_icons","useActionProps","useRouteStatus","runCommand","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","runCommand","init","useActionProps","import_i18n","import_icons","import_editor_v1_adapters","useActionProps","useRouteStatus","openRoute","init","useActionProps","import_i18n","import_icons","import_editor_documents","init","document","useActiveDocument","init","init","init"]}