diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/tree/manifests.ts
index c1e6a79314..ee92e43e8d 100644
--- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/tree/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/tree/manifests.ts
@@ -1,5 +1,5 @@
import { UmbDocumentRepository } from '../repository/document.repository';
-import type { ManifestTree } from '@umbraco-cms/backoffice/extensions-registry';
+import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extensions-registry';
const treeAlias = 'Umb.Tree.Documents';
@@ -12,4 +12,14 @@ const tree: ManifestTree = {
},
};
-export const manifests = [tree];
+const treeItem: ManifestTreeItem = {
+ type: 'treeItem',
+ alias: 'Umb.TreeItem.Document',
+ name: 'Document Tree Item',
+ loader: () => import('./tree-item/document-tree-item.element'),
+ conditions: {
+ entityType: 'document',
+ },
+};
+
+export const manifests = [tree, treeItem];
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/tree/tree-item/document-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/tree/tree-item/document-tree-item.element.ts
new file mode 100644
index 0000000000..d488839fde
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/tree/tree-item/document-tree-item.element.ts
@@ -0,0 +1,51 @@
+import { css, html, nothing } from 'lit';
+import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
+import { customElement, property } from 'lit/decorators.js';
+import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
+import { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api';
+
+@customElement('umb-document-tree-item')
+export class UmbDocumentTreeItemElement extends UmbLitElement {
+ static styles = [
+ UUITextStyles,
+ css`
+ #label {
+ display: flex;
+ align-items: center;
+ }
+
+ #status-symbol {
+ width: 6px;
+ height: 6px;
+ background-color: blue;
+ display: block;
+ border-radius: 3px;
+ margin-right: 10px;
+ }
+ `,
+ ];
+
+ @property({ type: Object, attribute: false })
+ public item?: DocumentTreeItemResponseModel;
+
+ render() {
+ if (!this.item) return nothing;
+ return html`
+
+
+
+
+ ${this.item?.name}
+
+
+ `;
+ }
+}
+
+export default UmbDocumentTreeItemElement;
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-document-tree-item': UmbDocumentTreeItemElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item/tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.context.ts
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item/tree-item.context.ts
rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.context.ts
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item/tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.element.ts
similarity index 93%
rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item/tree-item.element.ts
rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.element.ts
index 0e86141d50..601bb816a4 100644
--- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item/tree-item.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.element.ts
@@ -3,12 +3,12 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
import { customElement, property, state } from 'lit/decorators.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { repeat } from 'lit/directives/repeat.js';
-import { UmbTreeItemContextBase, UMB_TREE_ITEM_CONTEXT_TOKEN } from './tree-item.context';
+import { UmbTreeItemContextBase, UMB_TREE_ITEM_CONTEXT_TOKEN } from './tree-item-base.context';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api';
-@customElement('umb-tree-item')
-export class UmbTreeItem extends UmbLitElement {
+@customElement('umb-tree-item-base')
+export class UmbTreeItemBaseElement extends UmbLitElement {
static styles = [UUITextStyles, css``];
private _item?: EntityTreeItemResponseModel;
@@ -137,7 +137,7 @@ export class UmbTreeItem extends UmbLitElement {
? repeat(
this._childItems,
(item) => item.key,
- (item) => html``
+ (item) => html``
)
: ''}
`;
@@ -146,6 +146,6 @@ export class UmbTreeItem extends UmbLitElement {
declare global {
interface HTMLElementTagNameMap {
- 'umb-tree-item': UmbTreeItem;
+ 'umb-tree-item-base': UmbTreeItemBaseElement;
}
}
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item/tree-item.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.stories.ts
similarity index 66%
rename from src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item/tree-item.stories.ts
rename to src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.stories.ts
index 90962da327..1f76f40872 100644
--- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item/tree-item.stories.ts
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.stories.ts
@@ -1,14 +1,14 @@
import { Meta, StoryObj } from '@storybook/web-components';
-import './tree-item.element';
-import type { UmbTreeItem } from './tree-item.element';
+import './tree-item-base.element';
+import type { UmbTreeItemBaseElement } from './tree-item-base.element';
-const meta: Meta = {
+const meta: Meta = {
title: 'Components/Tree/Tree Item',
component: 'umb-tree-item',
};
export default meta;
-type Story = StoryObj;
+type Story = StoryObj;
export const Overview: Story = {
args: {
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.element.ts
index 5514f84ce6..25e34c849d 100644
--- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.element.ts
@@ -8,7 +8,7 @@ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-api';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api';
-import './tree-item/tree-item.element';
+import './tree-item-base/tree-item-base.element';
import './context-menu/tree-context-menu-page.service';
import './context-menu/tree-context-menu.service';
@@ -118,7 +118,7 @@ export class UmbTreeElement extends UmbLitElement {
this._items,
// TODO: add getUnique to a repository interface
(item, index) => index,
- (item) => html``
+ (item) => html``
)}
`;
}