diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts index a79524f077..a47b5370bc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts @@ -30,4 +30,5 @@ export * from './input-upload-field/index.js'; export * from './multiple-color-picker-input/index.js'; export * from './multiple-text-string-input/index.js'; export * from './popover-layout/index.js'; +export * from './ref-item/index.js'; export * from './table/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-item/index.ts new file mode 100644 index 0000000000..2ba7f18300 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-item/index.ts @@ -0,0 +1 @@ +export * from './ref-item.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-item/ref-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-item/ref-item.element.ts new file mode 100644 index 0000000000..04cdbaf84a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-item/ref-item.element.ts @@ -0,0 +1,75 @@ +import { html, customElement, css, property, when, nothing, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; +import { UUIRefElement, UUIRefEvent, UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; + +@customElement('umb-ref-item') +export class UmbRefItemElement extends UmbElementMixin(UUIRefElement) { + @property({ type: String }) + name = ''; + + @property({ type: String }) + detail = ''; + + @property({ type: String }) + icon = ''; + + constructor() { + super(); + + this.selectable = true; + + this.addEventListener(UUIRefEvent.OPEN, () => this.dispatchEvent(new Event('click'))); + } + + public render() { + return html` + +
+${item.description}
-There are no items to select.
`, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/item-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/item-picker-modal.token.ts index c55a63cb8f..365c2f8088 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/item-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/item-picker-modal.token.ts @@ -6,8 +6,9 @@ export type UmbItemPickerModalData = { }; export type UmbItemPickerModel = { - label: string; description?: string; + icon?: string; + label: string; value: string; };