diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/index.ts index 83511202c3..bdeb47efed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/index.ts @@ -7,10 +7,6 @@ export type * from './external-login-provider-element.interface.js'; export type * from './external-login-provider.extension.js'; export type * from './global-context.extension.js'; export type * from './header-app.extension.js'; -export type * from './menu-item-element.interface.js'; -export type * from './menu-item-element.interface.js'; -export type * from './menu-item.extension.js'; -export type * from './menu.extension.js'; export type * from './mfa-login-provider.extension.js'; export type * from './preview-app.extension.js'; export type * from './repository.extension.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/menu-item.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/menu-item.extension.ts deleted file mode 100644 index 811c645ba1..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/menu-item.extension.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { UmbMenuItemElement } from './menu-item-element.interface.js'; -import type { ManifestWithDynamicConditions, ManifestElement } from '@umbraco-cms/backoffice/extension-api'; - -export interface ManifestMenuItem - extends ManifestElement, - ManifestWithDynamicConditions { - type: 'menuItem'; - meta: MetaMenuItem; -} - -export interface MetaMenuItem { - label: string; - menus: Array; - entityType?: string; - icon?: string; -} - -export interface ManifestMenuItemTreeKind extends ManifestMenuItem { - type: 'menuItem'; - kind: 'tree'; - meta: MetaMenuItemTreeKind; -} - -export interface MetaMenuItemTreeKind extends MetaMenuItem { - treeAlias: string; - hideTreeRoot?: boolean; -} - -export interface ManifestMenuItemLinkKind extends ManifestMenuItem { - type: 'menuItem'; - kind: 'link'; - meta: MetaMenuItemLinkKind; -} - -export interface MetaMenuItemLinkKind extends MetaMenuItem { - href: string; -} - -export type UmbMenuItemExtensions = ManifestMenuItem | ManifestMenuItemTreeKind | ManifestMenuItemLinkKind; - -declare global { - interface UmbExtensionManifestMap { - UmbMenuItemExtensions: UmbMenuItemExtensions; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/index.ts index c324209993..c5995b0111 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/index.ts @@ -1 +1,2 @@ export * from './menu-item-default.element.js'; +export * from './link/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/index.ts new file mode 100644 index 0000000000..d4702960d5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/index.ts @@ -0,0 +1 @@ +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/link-menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/link-menu-item.element.ts index e1e512b0fd..b902cd18e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/link-menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/link-menu-item.element.ts @@ -1,6 +1,7 @@ +import type { UmbMenuItemElement } from '../../../menu-item-element.interface.js'; +import type { ManifestMenuItemLinkKind } from './types.js'; import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { ManifestMenuItemLinkKind, UmbMenuItemElement } from '@umbraco-cms/backoffice/extension-registry'; const elementName = 'umb-link-menu-item'; @customElement(elementName) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/types.ts new file mode 100644 index 0000000000..2bc68ac163 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/link/types.ts @@ -0,0 +1,17 @@ +import type { ManifestMenuItem, MetaMenuItem } from '../../../menu-item.extension.js'; + +export interface ManifestMenuItemLinkKind extends ManifestMenuItem { + type: 'menuItem'; + kind: 'link'; + meta: MetaMenuItemLinkKind; +} + +export interface MetaMenuItemLinkKind extends MetaMenuItem { + href: string; +} + +declare global { + interface UmbExtensionManifestMap { + umbLinkMenuItemKind: ManifestMenuItemLinkKind; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/menu-item-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/menu-item-default.element.ts index 916598bc99..269133145c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/menu-item-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item/menu-item-default.element.ts @@ -1,7 +1,8 @@ +import type { UmbMenuItemElement } from '../../menu-item-element.interface.js'; +import type { ManifestMenuItem } from '../../menu-item.extension.js'; import { customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; -import type { ManifestMenuItem, UmbMenuItemElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-menu-item-default') export class UmbMenuItemDefaultElement extends UmbLitElement implements UmbMenuItemElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu/menu.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu/menu.context.ts index cdf877331f..c96cdbb94e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu/menu.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu/menu.context.ts @@ -1,4 +1,4 @@ -import type { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu } from '../../menu.extension.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu/menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu/menu.element.ts index 7a294b8461..026a6277f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu/menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu/menu.element.ts @@ -1,5 +1,6 @@ +import type { ManifestMenu } from '../../menu.extension.js'; +import type { ManifestMenuItem } from '../../menu-item.extension.js'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import type { ManifestMenu, ManifestMenuItem } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import '../menu-item/menu-item-default.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/index.ts index 3022ede2c2..255e8a9ae8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/index.ts @@ -2,5 +2,8 @@ export * from './components/index.js'; export * from './menu-tree-structure-workspace-context-base.js'; export * from './menu-variant-tree-structure-workspace-context-base.js'; export * from './types.js'; +export type * from './menu-item-element.interface.js'; +export type * from './menu-item.extension.js'; +export type * from './menu.extension.js'; export type { UmbMenuStructureWorkspaceContext } from './menu-structure-workspace-context.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/menu-item-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-element.interface.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/menu-item-element.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-element.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item.extension.ts new file mode 100644 index 0000000000..c19aca0774 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item.extension.ts @@ -0,0 +1,22 @@ +import type { UmbMenuItemElement } from './menu-item-element.interface.js'; +import type { ManifestWithDynamicConditions, ManifestElement } from '@umbraco-cms/backoffice/extension-api'; + +export interface ManifestMenuItem + extends ManifestElement, + ManifestWithDynamicConditions { + type: 'menuItem'; + meta: MetaMenuItem; +} + +export interface MetaMenuItem { + label: string; + menus: Array; + entityType?: string; + icon?: string; +} + +declare global { + interface UmbExtensionManifestMap { + umbMenuItem: ManifestMenuItem; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/menu.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.extension.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extensions/menu.extension.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.extension.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu/section-sidebar-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu/section-sidebar-menu.element.ts index bdad6c3b03..8ac5aaaf70 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu/section-sidebar-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu/section-sidebar-menu.element.ts @@ -1,9 +1,10 @@ import type { ManifestSectionSidebarAppBaseMenu, ManifestSectionSidebarAppMenuKind } from './types.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import type { ManifestMenu, UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import type { ManifestMenu } from '../menu.extension.js'; // TODO: Move to separate file: const manifest: UmbExtensionManifestKind = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/index.ts index af047cc2d4..e6b717242c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/index.ts @@ -1 +1,2 @@ export * from './tree-menu-item-default.element.js'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts index c7fd51cc5d..93ce54fa6d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts @@ -1,11 +1,9 @@ +import type { ManifestMenuItemTreeKind } from './types.js'; import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { - ManifestMenuItemTreeKind, - UmbExtensionManifestKind, - UmbMenuItemElement, -} from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbMenuItemElement } from '@umbraco-cms/backoffice/menu'; // TODO: Move to separate file: const manifest: UmbExtensionManifestKind = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/types.ts new file mode 100644 index 0000000000..2bd5501d55 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/types.ts @@ -0,0 +1,18 @@ +import type { ManifestMenuItem, MetaMenuItem } from '@umbraco-cms/backoffice/menu'; + +export interface ManifestMenuItemTreeKind extends ManifestMenuItem { + type: 'menuItem'; + kind: 'tree'; + meta: MetaMenuItemTreeKind; +} + +export interface MetaMenuItemTreeKind extends MetaMenuItem { + treeAlias: string; + hideTreeRoot?: boolean; +} + +declare global { + interface UmbExtensionManifestMap { + umbTreeMenuItemKind: ManifestMenuItemTreeKind; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/help/header-app/help-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/packages/help/header-app/help-header-app.element.ts index 0c8ff69b84..f841a35ef6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/help/header-app/help-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/help/header-app/help-header-app.element.ts @@ -2,7 +2,8 @@ import { UMB_HELP_MENU_ALIAS } from '../menu/index.js'; import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit'; import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbHeaderAppButtonElement } from '@umbraco-cms/backoffice/components'; -import { umbExtensionsRegistry, type ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu } from '@umbraco-cms/backoffice/menu'; import { UmbExtensionsManifestInitializer } from '@umbraco-cms/backoffice/extension-api'; const elementName = 'umb-help-header-app';