diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 8b9792bc73..e8ea2524c6 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -68,6 +68,7 @@ "./repository": "./dist-cms/packages/core/repository/index.js", "./resources": "./dist-cms/packages/core/resources/index.js", "./router": "./dist-cms/packages/core/router/index.js", + "./search": "./dist-cms/packages/search/index.js", "./section": "./dist-cms/packages/core/section/index.js", "./server-file-system": "./dist-cms/packages/core/server-file-system/index.js", "./sorter": "./dist-cms/packages/core/sorter/index.js", diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts index e016ddf597..8e1556711a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts @@ -1,16 +1,30 @@ -import type { UmbDocumentItemModel } from '../repository/index.js'; +import type { UmbSearchResultItemModel } from '@umbraco-cms/backoffice/search'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; +import { css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; const elementName = 'umb-document-search-result-item'; @customElement(elementName) export class UmbDocumentSearchResultItemElement extends UmbLitElement { - @property({ attribute: false }) - item?: UmbDocumentItemModel; + @property({ type: Object }) + item?: UmbSearchResultItemModel; render() { - return html`HELLO WORLD ${this.item?.unique}`; + return html` +
ICON
+
${this.item?.name}
+ `; } + + static styles = [ + UmbTextStyles, + css` + :host { + display: flex; + gap: 12px; + } + `, + ]; } export { UmbDocumentSearchResultItemElement as element }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/index.ts b/src/Umbraco.Web.UI.Client/src/packages/search/index.ts new file mode 100644 index 0000000000..9b7dfb03df --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/search/index.ts @@ -0,0 +1 @@ +export { type UmbSearchResultItemModel } from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts index dc3df95850..52fc2f1b33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts @@ -5,7 +5,7 @@ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registr import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbExtensionsManifestInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; -import './search-result-item.element.js'; +import '../search-result/search-result-item.element.js'; export type SearchItem = { entityType: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-result-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-result-item.element.ts deleted file mode 100644 index fee8a881de..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-result-item.element.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; - -const elementName = 'umb-search-result-item'; -@customElement(elementName) -export class UmbSearchResultItemElement extends UmbLitElement { - @property({ type: Object }) - item: any; - - render() { - return html`Helloasasdas`; - } -} - -export { UmbSearchResultItemElement as element }; - -declare global { - interface HTMLElementTagNameMap { - [elementName]: UmbSearchResultItemElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/search-result/search-result-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/search-result/search-result-item.element.ts new file mode 100644 index 0000000000..103fa70187 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/search/search-result/search-result-item.element.ts @@ -0,0 +1,36 @@ +import type { UmbSearchResultItemModel } from '../types.js'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import { css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; + +const elementName = 'umb-search-result-item'; +@customElement(elementName) +export class UmbSearchResultItemElement extends UmbLitElement { + @property({ type: Object }) + item?: UmbSearchResultItemModel; + + render() { + return html` +
ICON
+
${this.item?.name}
+ `; + } + + static styles = [ + UmbTextStyles, + css` + :host { + display: flex; + gap: 12px; + } + `, + ]; +} + +export { UmbSearchResultItemElement as element }; + +declare global { + interface HTMLElementTagNameMap { + [elementName]: UmbSearchResultItemElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/types.ts b/src/Umbraco.Web.UI.Client/src/packages/search/types.ts new file mode 100644 index 0000000000..e4952bdd42 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/search/types.ts @@ -0,0 +1,5 @@ +export type UmbSearchResultItemModel = { + icon?: string; + name: string; + unique: string; +}; diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index eee2db6359..736aea9e17 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -86,6 +86,7 @@ "@umbraco-cms/backoffice/repository": ["./src/packages/core/repository/index.ts"], "@umbraco-cms/backoffice/resources": ["./src/packages/core/resources/index.ts"], "@umbraco-cms/backoffice/router": ["./src/packages/core/router/index.ts"], + "@umbraco-cms/backoffice/search": ["./src/packages/search/index.ts"], "@umbraco-cms/backoffice/section": ["./src/packages/core/section/index.ts"], "@umbraco-cms/backoffice/server-file-system": ["./src/packages/core/server-file-system/index.ts"], "@umbraco-cms/backoffice/sorter": ["./src/packages/core/sorter/index.ts"],