From 6d9611feb6b0d08d13b6d3f0ad3a333484c1cc8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 2 Aug 2024 14:44:20 +0200 Subject: [PATCH 1/6] poc custom view guide --- src/assets/lang/en-us.ts | 1 + src/assets/lang/en.ts | 1 + ...id-type-workspace-view-advanced.element.ts | 10 ++ .../block-type-custom-view-guide.element.ts | 103 ++++++++++++++++++ .../block/block-type/components/index.ts | 1 + src/packages/block/block-type/index.ts | 1 + src/packages/block/block-type/manifests.ts | 3 +- .../manifests.ts | 13 --- ...-block-type-group-configuration.element.ts | 34 ------ ...-block-type-group-configuration.stories.ts | 19 ---- ...-ui-block-type-group-configuration.test.ts | 23 ---- .../block-type/property-editors/manifests.ts | 4 - .../block/block-type/workspace/index.ts | 1 + 13 files changed, 119 insertions(+), 95 deletions(-) create mode 100644 src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts delete mode 100644 src/packages/block/block-type/property-editors/block-type-group-configuration/manifests.ts delete mode 100644 src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.element.ts delete mode 100644 src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts delete mode 100644 src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.test.ts delete mode 100644 src/packages/block/block-type/property-editors/manifests.ts create mode 100644 src/packages/block/block-type/workspace/index.ts diff --git a/src/assets/lang/en-us.ts b/src/assets/lang/en-us.ts index c74158ac83..a6468f4f6c 100644 --- a/src/assets/lang/en-us.ts +++ b/src/assets/lang/en-us.ts @@ -2403,6 +2403,7 @@ export default { tabClipboard: 'Clipboard', tabBlockSettings: 'Settings', headlineAdvanced: 'Advanced', + headlineCustomView: 'Custom View', forceHideContentEditor: 'Hide content editor', forceHideContentEditorHelp: 'Hide the content edit button and the content editor from the Block Editor overlay', gridInlineEditing: 'Inline editing', diff --git a/src/assets/lang/en.ts b/src/assets/lang/en.ts index 7e0e77d5cd..f1b6833566 100644 --- a/src/assets/lang/en.ts +++ b/src/assets/lang/en.ts @@ -2470,6 +2470,7 @@ export default { tabClipboard: 'Clipboard', tabBlockSettings: 'Settings', headlineAdvanced: 'Advanced', + headlineCustomView: 'Custom View', forceHideContentEditor: 'Hide content editor', forceHideContentEditorHelp: 'Hide the content edit button and the content editor from the Block Editor overlay.', gridInlineEditing: 'Inline editing', diff --git a/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-advanced.element.ts b/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-advanced.element.ts index d34cf5d569..b107595f8e 100644 --- a/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-advanced.element.ts +++ b/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-advanced.element.ts @@ -1,7 +1,10 @@ +import { UMB_BLOCK_GRID } from '../../types.js'; import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +// Getting umb-block-type-custom-view-guide element +import '@umbraco-cms/backoffice/block-type'; @customElement('umb-block-grid-type-workspace-view-advanced') export class UmbBlockGridTypeWorkspaceViewAdvancedElement extends UmbLitElement implements UmbWorkspaceViewElement { @@ -21,6 +24,13 @@ export class UmbBlockGridTypeWorkspaceViewAdvancedElement extends UmbLitElement alias="hideContentEditor" property-editor-ui-alias="Umb.PropertyEditorUi.Toggle"> + + + + + ; + + #repository = new UmbDocumentTypeDetailRepository(this); + + constructor() { + super(); + + this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, async (context) => { + this.observe( + await context.propertyValueByAlias('contentElementTypeKey'), + async (value) => { + if (!value) return; + const { asObservable } = await this.#repository.requestByUnique(value); + this.observe( + asObservable(), + (model) => { + this.#contentTypeAlias = model?.alias; + this.#loadManifests(); + }, + 'observeContentType', + ); + }, + 'observeContentElementTypeKey', + ); + }); + } + + #loadManifests() { + console.log('this.#blockEditorType', this.#blockEditorType, 'this.#contentTypeAlias', this.#contentTypeAlias); + if (!this.#blockEditorType || !this.#contentTypeAlias) return; + new UmbExtensionsManifestInitializer( + this, + umbExtensionsRegistry, + 'blockEditorCustomView', + this.#extensionFilterMethod, + async (customViews) => { + this._manifests = customViews.map((x) => x.manifest); + }, + 'manifestInitializer', + ); + } + + #extensionFilterMethod = (manifest: ManifestBlockEditorCustomView) => { + if (!this.#blockEditorType || !this.#contentTypeAlias) return false; + if ( + manifest.forContentTypeAlias && + !stringOrStringArrayContains(manifest.forContentTypeAlias, this.#contentTypeAlias!) + ) { + return false; + } + if (manifest.forBlockEditor && !stringOrStringArrayContains(manifest.forBlockEditor, this.#blockEditorType)) { + return false; + } + return true; + }; + + override render() { + return this._manifests && this._manifests.length > 0 + ? html`
+ ${repeat( + this._manifests, + (x) => x.alias, + (x) => html` + + + `, + )} +
` + : html`No custom view matches the current block editor type and content type.`; + } +} + +export default UmbBlockTypeCustomViewGuideElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-block-type-custom-view-guide': UmbBlockTypeCustomViewGuideElement; + } +} diff --git a/src/packages/block/block-type/components/index.ts b/src/packages/block/block-type/components/index.ts index 2ce6e9bff7..f04aaabb29 100644 --- a/src/packages/block/block-type/components/index.ts +++ b/src/packages/block/block-type/components/index.ts @@ -1,2 +1,3 @@ export * from './block-type-card/index.js'; export * from './input-block-type/index.js'; +export * from './block-type-custom-view-guide/block-type-custom-view-guide.element.js'; diff --git a/src/packages/block/block-type/index.ts b/src/packages/block/block-type/index.ts index d07544f196..814adba5f3 100644 --- a/src/packages/block/block-type/index.ts +++ b/src/packages/block/block-type/index.ts @@ -1,2 +1,3 @@ export * from './components/index.js'; export * from './types.js'; +export * from './workspace/index.js'; diff --git a/src/packages/block/block-type/manifests.ts b/src/packages/block/block-type/manifests.ts index c3415bb2c0..71c165c901 100644 --- a/src/packages/block/block-type/manifests.ts +++ b/src/packages/block/block-type/manifests.ts @@ -1,5 +1,4 @@ import { manifests as workspaceManifests } from './workspace/manifests.js'; -import { manifests as propertyEditorManifests } from './property-editors/manifests.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [...workspaceManifests, ...propertyEditorManifests]; +export const manifests: Array = [...workspaceManifests]; diff --git a/src/packages/block/block-type/property-editors/block-type-group-configuration/manifests.ts b/src/packages/block/block-type/property-editors/block-type-group-configuration/manifests.ts deleted file mode 100644 index 8160246fa7..0000000000 --- a/src/packages/block/block-type/property-editors/block-type-group-configuration/manifests.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; - -export const manifest: ManifestPropertyEditorUi = { - type: 'propertyEditorUi', - alias: 'BlockTypeGroupConfiguration', - name: 'Block Group Configuration Property Editor UI', - js: () => import('./property-editor-ui-block-type-group-configuration.element.js'), - meta: { - label: 'Block Grid Group Configuration', - icon: 'icon-autofill', - group: 'blocks', - }, -}; diff --git a/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.element.ts b/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.element.ts deleted file mode 100644 index 29b6c04770..0000000000 --- a/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.element.ts +++ /dev/null @@ -1,34 +0,0 @@ -import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -/** - * @element umb-property-editor-ui-block-type-group-configuration - */ -@customElement('umb-property-editor-ui-block-type-group-configuration') -export class UmbPropertyEditorUIBlockGridGroupConfigurationElement - extends UmbLitElement - implements UmbPropertyEditorUiElement -{ - @property() - value = ''; - - @property({ type: Object, attribute: false }) - public config?: UmbPropertyEditorConfigCollection; - - override render() { - return html`
umb-property-editor-ui-block-type-group-configuration
`; - } - - static override styles = [UmbTextStyles]; -} - -export default UmbPropertyEditorUIBlockGridGroupConfigurationElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-property-editor-ui-block-type-group-configuration': UmbPropertyEditorUIBlockGridGroupConfigurationElement; - } -} diff --git a/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts b/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts deleted file mode 100644 index 97b1de48e0..0000000000 --- a/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-type-group-configuration.element.js'; -import type { Meta, StoryObj } from '@storybook/web-components'; -import { html } from '@umbraco-cms/backoffice/external/lit'; - -import './property-editor-ui-block-type-group-configuration.element.js'; - -const meta: Meta = { - title: 'Property Editor UIs/Block Grid Group Configuration', - component: 'umb-property-editor-ui-block-type-group-configuration', - id: 'umb-property-editor-ui-block-type-group-configuration', -}; - -export default meta; -type Story = StoryObj; - -export const Overview: Story = { - render: () => - html``, -}; diff --git a/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.test.ts b/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.test.ts deleted file mode 100644 index ba1f28624b..0000000000 --- a/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-type-group-configuration.element.js'; -import { expect, fixture, html } from '@open-wc/testing'; -import { type UmbTestRunnerWindow, defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; - -describe('UmbPropertyEditorUIBlockGridGroupConfigurationElement', () => { - let element: UmbPropertyEditorUIBlockGridGroupConfigurationElement; - - beforeEach(async () => { - element = await fixture(html` - - `); - }); - - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbPropertyEditorUIBlockGridGroupConfigurationElement); - }); - - if ((window as UmbTestRunnerWindow).__UMBRACO_TEST_RUN_A11Y_TEST) { - it('passes the a11y audit', async () => { - await expect(element).shadowDom.to.be.accessible(defaultA11yConfig); - }); - } -}); diff --git a/src/packages/block/block-type/property-editors/manifests.ts b/src/packages/block/block-type/property-editors/manifests.ts deleted file mode 100644 index 971433dd0d..0000000000 --- a/src/packages/block/block-type/property-editors/manifests.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { manifest as blockTypeGroupManifest } from './block-type-group-configuration/manifests.js'; -import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; - -export const manifests: Array = [blockTypeGroupManifest]; diff --git a/src/packages/block/block-type/workspace/index.ts b/src/packages/block/block-type/workspace/index.ts new file mode 100644 index 0000000000..04228760c1 --- /dev/null +++ b/src/packages/block/block-type/workspace/index.ts @@ -0,0 +1 @@ +export * from './block-type-workspace.context-token.js'; From 87f867c136cee97a5550d095ed7323f8b2ccd93a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 2 Aug 2024 22:05:42 +0200 Subject: [PATCH 2/6] umb-ref-manifest + icons --- package-lock.json | 8 +-- package.json | 2 +- .../block-type-custom-view-guide.element.ts | 6 +-- .../extension-registry/components/index.ts | 1 + .../ref-manifest/ref-manifest.element.ts | 52 +++++++++++++++++++ .../core/icon-registry/icon-dictionary.json | 16 +++--- src/packages/core/icon-registry/icons.ts | 4 ++ .../core/icon-registry/icons/icon-activity.ts | 2 +- .../core/icon-registry/icons/icon-add.ts | 2 +- .../icon-registry/icons/icon-addressbook.ts | 2 +- .../icon-registry/icons/icon-alarm-clock.ts | 2 +- .../icon-registry/icons/icon-alert-alt.ts | 2 +- .../core/icon-registry/icons/icon-alert.ts | 2 +- .../core/icon-registry/icons/icon-alt.ts | 2 +- .../core/icon-registry/icons/icon-anchor.ts | 2 +- .../core/icon-registry/icons/icon-app.ts | 2 +- .../icons/icon-application-error.ts | 2 +- .../icons/icon-application-window-alt.ts | 2 +- .../icons/icon-application-window.ts | 2 +- .../core/icon-registry/icons/icon-arrivals.ts | 2 +- .../icon-registry/icons/icon-arrow-down.ts | 2 +- .../icon-registry/icons/icon-arrow-left.ts | 2 +- .../icon-registry/icons/icon-arrow-right.ts | 2 +- .../core/icon-registry/icons/icon-arrow-up.ts | 2 +- .../icon-registry/icons/icon-attachment.ts | 2 +- .../core/icon-registry/icons/icon-autofill.ts | 2 +- .../core/icon-registry/icons/icon-award.ts | 2 +- .../icons/icon-axis-rotation-2.ts | 2 +- .../icons/icon-axis-rotation-3.ts | 2 +- .../icon-registry/icons/icon-axis-rotation.ts | 2 +- .../icon-registry/icons/icon-backspace.ts | 2 +- .../icon-registry/icons/icon-badge-add.ts | 2 +- .../icon-registry/icons/icon-badge-remove.ts | 2 +- .../icons/icon-badge-restricted.ts | 2 +- .../core/icon-registry/icons/icon-ball.ts | 2 +- .../icon-registry/icons/icon-bar-chart.ts | 4 +- .../core/icon-registry/icons/icon-barcode.ts | 2 +- .../core/icon-registry/icons/icon-bars.ts | 4 +- .../icon-registry/icons/icon-battery-full.ts | 2 +- .../icon-registry/icons/icon-battery-low.ts | 2 +- .../icon-registry/icons/icon-beer-glass.ts | 2 +- .../core/icon-registry/icons/icon-bell-off.ts | 2 +- .../core/icon-registry/icons/icon-bell.ts | 2 +- .../icon-registry/icons/icon-binarycode.ts | 2 +- .../core/icon-registry/icons/icon-bird.ts | 2 +- .../icon-registry/icons/icon-birthday-cake.ts | 2 +- .../core/icon-registry/icons/icon-block.ts | 2 +- .../icon-registry/icons/icon-bluetooth.ts | 2 +- .../icon-registry/icons/icon-boat-shipping.ts | 2 +- .../core/icon-registry/icons/icon-bones.ts | 2 +- .../icon-registry/icons/icon-book-alt-2.ts | 2 +- .../core/icon-registry/icons/icon-book-alt.ts | 2 +- .../core/icon-registry/icons/icon-book.ts | 2 +- .../core/icon-registry/icons/icon-bookmark.ts | 2 +- .../core/icon-registry/icons/icon-books.ts | 2 +- .../core/icon-registry/icons/icon-box-alt.ts | 2 +- .../core/icon-registry/icons/icon-box-open.ts | 2 +- .../core/icon-registry/icons/icon-box.ts | 2 +- .../core/icon-registry/icons/icon-brackets.ts | 2 +- .../core/icon-registry/icons/icon-brick.ts | 2 +- .../icon-registry/icons/icon-briefcase.ts | 2 +- .../icons/icon-browser-window.ts | 2 +- .../icon-registry/icons/icon-brush-alt-2.ts | 2 +- .../icon-registry/icons/icon-brush-alt.ts | 2 +- .../core/icon-registry/icons/icon-brush.ts | 2 +- .../core/icon-registry/icons/icon-bug.ts | 2 +- .../icon-registry/icons/icon-bulleted-list.ts | 2 +- .../core/icon-registry/icons/icon-burn.ts | 2 +- .../core/icon-registry/icons/icon-bus.ts | 2 +- .../icon-registry/icons/icon-calculator.ts | 2 +- .../icon-registry/icons/icon-calendar-alt.ts | 2 +- .../core/icon-registry/icons/icon-calendar.ts | 2 +- .../icon-registry/icons/icon-camcorder.ts | 2 +- .../icon-registry/icons/icon-camera-roll.ts | 2 +- .../core/icon-registry/icons/icon-candy.ts | 2 +- .../icon-registry/icons/icon-caps-lock.ts | 2 +- .../core/icon-registry/icons/icon-car.ts | 2 +- .../icon-registry/icons/icon-categories.ts | 2 +- .../icon-registry/icons/icon-certificate.ts | 2 +- .../icon-registry/icons/icon-chart-curve.ts | 12 +++-- .../core/icon-registry/icons/icon-chart.ts | 6 +-- .../icon-registry/icons/icon-chat-active.ts | 2 +- .../core/icon-registry/icons/icon-chat.ts | 2 +- .../core/icon-registry/icons/icon-check.ts | 2 +- .../icons/icon-checkbox-dotted.ts | 2 +- .../icons/icon-checkbox-empty.ts | 2 +- .../core/icon-registry/icons/icon-checkbox.ts | 2 +- .../core/icon-registry/icons/icon-chip-alt.ts | 2 +- .../core/icon-registry/icons/icon-chip.ts | 2 +- .../core/icon-registry/icons/icon-cinema.ts | 2 +- .../icons/icon-circle-dotted-active.ts | 2 +- .../icon-registry/icons/icon-circle-dotted.ts | 2 +- .../core/icon-registry/icons/icon-circuits.ts | 2 +- .../core/icon-registry/icons/icon-client.ts | 2 +- .../icon-registry/icons/icon-cloud-drive.ts | 2 +- .../icon-registry/icons/icon-cloud-upload.ts | 6 +-- .../core/icon-registry/icons/icon-cloud.ts | 2 +- .../core/icon-registry/icons/icon-cloudy.ts | 2 +- .../core/icon-registry/icons/icon-clubs.ts | 2 +- .../core/icon-registry/icons/icon-cocktail.ts | 2 +- .../core/icon-registry/icons/icon-code.ts | 2 +- .../core/icon-registry/icons/icon-coffee.ts | 2 +- .../icon-registry/icons/icon-coin-dollar.ts | 2 +- .../icon-registry/icons/icon-coin-euro.ts | 2 +- .../icon-registry/icons/icon-coin-pound.ts | 2 +- .../core/icon-registry/icons/icon-coin-yen.ts | 2 +- .../icon-registry/icons/icon-coins-alt.ts | 2 +- .../core/icon-registry/icons/icon-coins.ts | 2 +- .../icon-registry/icons/icon-color-bucket.ts | 2 +- .../icon-registry/icons/icon-colorpicker.ts | 2 +- .../core/icon-registry/icons/icon-columns.ts | 2 +- .../icons/icon-combination-lock-open.ts | 2 +- .../icons/icon-combination-lock.ts | 2 +- .../core/icon-registry/icons/icon-command.ts | 2 +- .../core/icon-registry/icons/icon-company.ts | 2 +- .../core/icon-registry/icons/icon-compress.ts | 2 +- .../icon-registry/icons/icon-connection.ts | 2 +- .../core/icon-registry/icons/icon-console.ts | 2 +- .../core/icon-registry/icons/icon-contrast.ts | 2 +- .../icons/icon-conversation-alt.ts | 2 +- .../icon-registry/icons/icon-conversation.ts | 2 +- .../icon-registry/icons/icon-coverflow.ts | 2 +- .../icons/icon-credit-card-alt.ts | 2 +- .../icon-registry/icons/icon-credit-card.ts | 2 +- .../core/icon-registry/icons/icon-crop.ts | 2 +- .../icon-registry/icons/icon-crosshair.ts | 2 +- .../icon-registry/icons/icon-crown-alt.ts | 2 +- .../core/icon-registry/icons/icon-crown.ts | 2 +- .../core/icon-registry/icons/icon-cupcake.ts | 2 +- .../core/icon-registry/icons/icon-curve.ts | 2 +- .../core/icon-registry/icons/icon-cut.ts | 2 +- .../icon-registry/icons/icon-dashboard.ts | 2 +- .../core/icon-registry/icons/icon-database.ts | 2 +- .../core/icon-registry/icons/icon-defrag.ts | 6 +-- .../icon-registry/icons/icon-delete-key.ts | 2 +- .../core/icon-registry/icons/icon-delete.ts | 2 +- .../icon-registry/icons/icon-departure.ts | 2 +- .../core/icon-registry/icons/icon-desktop.ts | 2 +- .../icon-registry/icons/icon-diagnostics.ts | 2 +- .../icons/icon-diagonal-arrow-alt.ts | 2 +- .../icons/icon-diagonal-arrow.ts | 2 +- .../core/icon-registry/icons/icon-diamond.ts | 2 +- .../core/icon-registry/icons/icon-diamonds.ts | 2 +- .../core/icon-registry/icons/icon-dice.ts | 2 +- .../icon-registry/icons/icon-diploma-alt.ts | 2 +- .../core/icon-registry/icons/icon-diploma.ts | 2 +- .../icons/icon-directions-alt.ts | 2 +- .../icon-registry/icons/icon-directions.ts | 2 +- .../core/icon-registry/icons/icon-disc.ts | 2 +- .../icon-registry/icons/icon-disk-image.ts | 2 +- .../core/icon-registry/icons/icon-display.ts | 2 +- .../core/icon-registry/icons/icon-dna.ts | 2 +- .../icons/icon-dock-connector.ts | 2 +- .../icons/icon-document-dashed-line.ts | 2 +- .../core/icon-registry/icons/icon-document.ts | 2 +- .../icon-registry/icons/icon-documents.ts | 2 +- .../core/icon-registry/icons/icon-donate.ts | 2 +- .../icon-registry/icons/icon-door-open-alt.ts | 2 +- .../icon-registry/icons/icon-door-open.ts | 2 +- .../icon-registry/icons/icon-download-alt.ts | 2 +- .../core/icon-registry/icons/icon-download.ts | 2 +- .../core/icon-registry/icons/icon-drop.ts | 2 +- .../core/icon-registry/icons/icon-eco.ts | 2 +- .../core/icon-registry/icons/icon-economy.ts | 2 +- .../core/icon-registry/icons/icon-edit.ts | 2 +- .../core/icon-registry/icons/icon-employee.ts | 2 +- .../icons/icon-energy-saving-bulb.ts | 2 +- .../core/icon-registry/icons/icon-enter.ts | 2 +- .../icon-registry/icons/icon-equalizer.ts | 2 +- .../core/icon-registry/icons/icon-escape.ts | 2 +- .../core/icon-registry/icons/icon-ethernet.ts | 2 +- .../icons/icon-exit-fullscreen.ts | 2 +- .../core/icon-registry/icons/icon-eye.ts | 4 +- .../icon-registry/icons/icon-facebook-like.ts | 2 +- .../core/icon-registry/icons/icon-factory.ts | 2 +- .../core/icon-registry/icons/icon-favorite.ts | 2 +- .../icon-registry/icons/icon-file-cabinet.ts | 2 +- .../core/icon-registry/icons/icon-files.ts | 2 +- .../icon-registry/icons/icon-filter-arrows.ts | 2 +- .../core/icon-registry/icons/icon-filter.ts | 2 +- .../icon-registry/icons/icon-fingerprint.ts | 2 +- .../core/icon-registry/icons/icon-fire.ts | 2 +- .../core/icon-registry/icons/icon-firewire.ts | 2 +- .../core/icon-registry/icons/icon-flag-alt.ts | 2 +- .../core/icon-registry/icons/icon-flag.ts | 2 +- .../core/icon-registry/icons/icon-flash.ts | 2 +- .../icon-registry/icons/icon-flashlight.ts | 2 +- .../icon-registry/icons/icon-flowerpot.ts | 2 +- .../core/icon-registry/icons/icon-folder.ts | 2 +- .../core/icon-registry/icons/icon-folders.ts | 2 +- .../core/icon-registry/icons/icon-font.ts | 2 +- .../core/icon-registry/icons/icon-food.ts | 2 +- .../icon-registry/icons/icon-footprints.ts | 2 +- .../core/icon-registry/icons/icon-forking.ts | 2 +- .../icon-registry/icons/icon-frame-alt.ts | 2 +- .../core/icon-registry/icons/icon-frame.ts | 2 +- .../icons/icon-fullscreen-alt.ts | 2 +- .../icon-registry/icons/icon-fullscreen.ts | 2 +- .../core/icon-registry/icons/icon-game.ts | 2 +- .../core/icon-registry/icons/icon-geometry.ts | 2 +- .../core/icon-registry/icons/icon-gift.ts | 2 +- .../core/icon-registry/icons/icon-glasses.ts | 2 +- .../icon-registry/icons/icon-globe-alt.ts | 2 +- .../icon-registry/icons/icon-globe-asia.ts | 2 +- .../icons/icon-globe-europe-africa.ts | 2 +- .../icons/icon-globe-inverted-america.ts | 2 +- .../icons/icon-globe-inverted-asia.ts | 2 +- .../icon-globe-inverted-europe-africa.ts | 2 +- .../core/icon-registry/icons/icon-globe.ts | 2 +- .../core/icon-registry/icons/icon-gps.ts | 2 +- .../core/icon-registry/icons/icon-graduate.ts | 2 +- .../core/icon-registry/icons/icon-grid.ts | 2 +- .../core/icon-registry/icons/icon-hammer.ts | 2 +- .../icons/icon-hand-active-alt.ts | 2 +- .../icon-registry/icons/icon-hand-active.ts | 2 +- .../icons/icon-hand-pointer-alt.ts | 2 +- .../icon-registry/icons/icon-hand-pointer.ts | 2 +- .../icon-registry/icons/icon-handshake.ts | 2 +- .../icon-registry/icons/icon-handtool-alt.ts | 2 +- .../core/icon-registry/icons/icon-handtool.ts | 2 +- .../icons/icon-hard-drive-alt.ts | 2 +- .../icon-registry/icons/icon-hard-drive.ts | 2 +- .../icon-registry/icons/icon-headphones.ts | 2 +- .../core/icon-registry/icons/icon-headset.ts | 2 +- .../core/icon-registry/icons/icon-hearts.ts | 2 +- .../core/icon-registry/icons/icon-height.ts | 2 +- .../core/icon-registry/icons/icon-help-alt.ts | 2 +- .../core/icon-registry/icons/icon-help.ts | 2 +- .../core/icon-registry/icons/icon-home.ts | 2 +- .../icon-registry/icons/icon-hourglass.ts | 2 +- .../core/icon-registry/icons/icon-imac.ts | 2 +- .../icon-registry/icons/icon-inbox-full.ts | 2 +- .../core/icon-registry/icons/icon-inbox.ts | 2 +- .../core/icon-registry/icons/icon-indent.ts | 2 +- .../core/icon-registry/icons/icon-infinity.ts | 2 +- .../core/icon-registry/icons/icon-info.ts | 2 +- .../core/icon-registry/icons/icon-invoice.ts | 2 +- .../core/icon-registry/icons/icon-ipad.ts | 2 +- .../core/icon-registry/icons/icon-iphone.ts | 2 +- .../icons/icon-item-arrangement.ts | 2 +- .../core/icon-registry/icons/icon-junk.ts | 2 +- .../core/icon-registry/icons/icon-key.ts | 2 +- .../core/icon-registry/icons/icon-keyboard.ts | 2 +- .../core/icon-registry/icons/icon-lab.ts | 2 +- .../core/icon-registry/icons/icon-laptop.ts | 2 +- .../icon-registry/icons/icon-layers-alt.ts | 2 +- .../core/icon-registry/icons/icon-layers.ts | 2 +- .../core/icon-registry/icons/icon-layout.ts | 2 +- .../icons/icon-left-double-arrow.ts | 2 +- .../core/icon-registry/icons/icon-legal.ts | 2 +- .../core/icon-registry/icons/icon-lense.ts | 2 +- .../core/icon-registry/icons/icon-library.ts | 2 +- .../icon-registry/icons/icon-light-down.ts | 2 +- .../core/icon-registry/icons/icon-light-up.ts | 2 +- .../icons/icon-lightbulb-active.ts | 2 +- .../icon-registry/icons/icon-lightbulb.ts | 2 +- .../icon-registry/icons/icon-lightning.ts | 2 +- .../core/icon-registry/icons/icon-link.ts | 2 +- .../core/icon-registry/icons/icon-list.ts | 2 +- .../core/icon-registry/icons/icon-load.ts | 2 +- .../core/icon-registry/icons/icon-loading.ts | 2 +- .../core/icon-registry/icons/icon-locate.ts | 2 +- .../icons/icon-location-near-me.ts | 6 +-- .../icons/icon-location-nearby.ts | 6 +-- .../core/icon-registry/icons/icon-lock.ts | 2 +- .../core/icon-registry/icons/icon-log-out.ts | 2 +- .../core/icon-registry/icons/icon-logout.ts | 2 +- .../core/icon-registry/icons/icon-loupe.ts | 2 +- .../core/icon-registry/icons/icon-magnet.ts | 2 +- .../core/icon-registry/icons/icon-mailbox.ts | 2 +- .../core/icon-registry/icons/icon-map-alt.ts | 2 +- .../icon-registry/icons/icon-map-location.ts | 6 +-- .../icon-registry/icons/icon-map-marker.ts | 4 +- .../core/icon-registry/icons/icon-map.ts | 2 +- .../core/icon-registry/icons/icon-medal.ts | 2 +- .../icons/icon-medical-emergency.ts | 2 +- .../core/icon-registry/icons/icon-medicine.ts | 2 +- .../core/icon-registry/icons/icon-meeting.ts | 2 +- .../icon-registry/icons/icon-megaphone.ts | 2 +- .../core/icon-registry/icons/icon-merge.ts | 2 +- .../icon-registry/icons/icon-message-open.ts | 2 +- .../icons/icon-message-unopened.ts | 2 +- .../core/icon-registry/icons/icon-message.ts | 2 +- .../icon-registry/icons/icon-microscope.ts | 2 +- .../core/icon-registry/icons/icon-mindmap.ts | 2 +- .../core/icon-registry/icons/icon-mobile.ts | 2 +- .../core/icon-registry/icons/icon-mountain.ts | 2 +- .../icon-registry/icons/icon-mouse-cursor.ts | 2 +- .../core/icon-registry/icons/icon-mouse.ts | 2 +- .../icon-registry/icons/icon-movie-alt.ts | 2 +- .../core/icon-registry/icons/icon-movie.ts | 2 +- .../icons/icon-multiple-credit-cards.ts | 2 +- .../icons/icon-multiple-windows.ts | 2 +- .../core/icon-registry/icons/icon-music.ts | 2 +- .../icon-registry/icons/icon-name-badge.ts | 2 +- .../icons/icon-navigation-bottom.ts | 2 +- .../icons/icon-navigation-down.ts | 2 +- .../icons/icon-navigation-first.ts | 2 +- .../icons/icon-navigation-horizontal.ts | 2 +- .../icons/icon-navigation-last.ts | 2 +- .../icons/icon-navigation-left.ts | 2 +- .../icons/icon-navigation-right.ts | 2 +- .../icons/icon-navigation-road.ts | 2 +- .../icons/icon-navigation-top.ts | 2 +- .../icon-registry/icons/icon-navigation-up.ts | 2 +- .../icons/icon-navigation-vertical.ts | 2 +- .../icon-registry/icons/icon-navigation.ts | 2 +- .../icons/icon-navigational-arrow.ts | 2 +- .../icon-registry/icons/icon-network-alt.ts | 2 +- .../icon-registry/icons/icon-newspaper-alt.ts | 2 +- .../icon-registry/icons/icon-newspaper.ts | 2 +- .../icon-registry/icons/icon-next-media.ts | 2 +- .../core/icon-registry/icons/icon-next.ts | 2 +- .../core/icon-registry/icons/icon-nodes.ts | 2 +- .../icon-registry/icons/icon-notepad-alt.ts | 2 +- .../core/icon-registry/icons/icon-notepad.ts | 2 +- .../core/icon-registry/icons/icon-old-key.ts | 2 +- .../icon-registry/icons/icon-old-phone.ts | 2 +- .../core/icon-registry/icons/icon-operator.ts | 2 +- .../icon-registry/icons/icon-ordered-list.ts | 2 +- .../core/icon-registry/icons/icon-out.ts | 2 +- .../core/icon-registry/icons/icon-outbox.ts | 2 +- .../core/icon-registry/icons/icon-outdent.ts | 2 +- .../core/icon-registry/icons/icon-page-add.ts | 2 +- .../icon-registry/icons/icon-page-down.ts | 2 +- .../icon-registry/icons/icon-page-remove.ts | 2 +- .../icons/icon-page-restricted.ts | 2 +- .../core/icon-registry/icons/icon-page-up.ts | 2 +- .../icon-registry/icons/icon-paint-roller.ts | 2 +- .../core/icon-registry/icons/icon-palette.ts | 2 +- .../icon-registry/icons/icon-panel-show.ts | 2 +- .../icon-registry/icons/icon-pannel-close.ts | 2 +- .../icon-registry/icons/icon-paper-bag.ts | 2 +- .../icons/icon-paper-plane-alt.ts | 2 +- .../icon-registry/icons/icon-paper-plane.ts | 2 +- .../icon-registry/icons/icon-partly-cloudy.ts | 2 +- .../core/icon-registry/icons/icon-paste-in.ts | 2 +- .../core/icon-registry/icons/icon-pause.ts | 2 +- .../core/icon-registry/icons/icon-pc.ts | 2 +- .../icon-registry/icons/icon-people-alt-2.ts | 2 +- .../icon-registry/icons/icon-people-alt.ts | 2 +- .../icon-registry/icons/icon-people-female.ts | 2 +- .../core/icon-registry/icons/icon-people.ts | 2 +- .../icon-registry/icons/icon-phone-ring.ts | 2 +- .../core/icon-registry/icons/icon-phone.ts | 2 +- .../icon-registry/icons/icon-photo-album.ts | 2 +- .../core/icon-registry/icons/icon-picture.ts | 2 +- .../icons/icon-pictures-alt-2.ts | 2 +- .../icon-registry/icons/icon-pictures-alt.ts | 2 +- .../core/icon-registry/icons/icon-pictures.ts | 2 +- .../icon-registry/icons/icon-pie-chart.ts | 6 +-- .../icon-registry/icons/icon-piggy-bank.ts | 2 +- .../icon-registry/icons/icon-pin-location.ts | 4 +- .../core/icon-registry/icons/icon-plane.ts | 2 +- .../core/icon-registry/icons/icon-planet.ts | 2 +- .../core/icon-registry/icons/icon-play.ts | 2 +- .../icon-registry/icons/icon-playing-cards.ts | 2 +- .../core/icon-registry/icons/icon-playlist.ts | 2 +- .../core/icon-registry/icons/icon-plugin.ts | 2 +- .../core/icon-registry/icons/icon-podcast.ts | 2 +- .../core/icon-registry/icons/icon-poll.ts | 2 +- .../core/icon-registry/icons/icon-post-it.ts | 2 +- .../icon-registry/icons/icon-power-outlet.ts | 2 +- .../core/icon-registry/icons/icon-power.ts | 2 +- .../icon-registry/icons/icon-presentation.ts | 2 +- .../icons/icon-previous-media.ts | 2 +- .../core/icon-registry/icons/icon-previous.ts | 2 +- .../icon-registry/icons/icon-price-dollar.ts | 2 +- .../icon-registry/icons/icon-price-euro.ts | 2 +- .../icon-registry/icons/icon-price-pound.ts | 2 +- .../icon-registry/icons/icon-price-yen.ts | 2 +- .../core/icon-registry/icons/icon-print.ts | 2 +- .../icon-registry/icons/icon-printer-alt.ts | 2 +- .../icon-registry/icons/icon-projector.ts | 2 +- .../core/icon-registry/icons/icon-pulse.ts | 2 +- .../core/icon-registry/icons/icon-pushpin.ts | 2 +- .../core/icon-registry/icons/icon-qr-code.ts | 2 +- .../core/icon-registry/icons/icon-quote.ts | 2 +- .../icon-registry/icons/icon-radio-alt.ts | 2 +- .../icons/icon-radio-receiver.ts | 2 +- .../core/icon-registry/icons/icon-radio.ts | 2 +- .../core/icon-registry/icons/icon-rain.ts | 2 +- .../core/icon-registry/icons/icon-rate.ts | 2 +- .../core/icon-registry/icons/icon-re-post.ts | 2 +- .../core/icon-registry/icons/icon-readonly.ts | 2 +- .../icon-registry/icons/icon-receipt-alt.ts | 2 +- .../icon-registry/icons/icon-reception.ts | 2 +- .../core/icon-registry/icons/icon-record.ts | 2 +- .../icons/icon-rectangle-ellipsis.ts | 2 +- .../core/icon-registry/icons/icon-redo.ts | 2 +- .../core/icon-registry/icons/icon-refresh.ts | 2 +- .../core/icon-registry/icons/icon-remote.ts | 2 +- .../core/icon-registry/icons/icon-remove.ts | 2 +- .../icon-registry/icons/icon-repeat-one.ts | 2 +- .../core/icon-registry/icons/icon-repeat.ts | 2 +- .../icon-registry/icons/icon-reply-arrow.ts | 2 +- .../core/icon-registry/icons/icon-resize.ts | 2 +- .../icon-registry/icons/icon-return-to-top.ts | 2 +- .../icons/icon-right-double-arrow.ts | 2 +- .../core/icon-registry/icons/icon-roadsign.ts | 2 +- .../core/icon-registry/icons/icon-rocket.ts | 2 +- .../core/icon-registry/icons/icon-rss.ts | 2 +- .../icon-registry/icons/icon-ruler-alt.ts | 2 +- .../core/icon-registry/icons/icon-ruler.ts | 2 +- .../icons/icon-satellite-dish.ts | 2 +- .../core/icon-registry/icons/icon-save.ts | 2 +- .../core/icon-registry/icons/icon-scan.ts | 2 +- .../core/icon-registry/icons/icon-school.ts | 2 +- .../icon-registry/icons/icon-screensharing.ts | 2 +- .../icon-registry/icons/icon-script-alt.ts | 2 +- .../core/icon-registry/icons/icon-script.ts | 2 +- .../core/icon-registry/icons/icon-scull.ts | 9 ++-- .../core/icon-registry/icons/icon-search.ts | 2 +- .../core/icon-registry/icons/icon-sensor.ts | 4 +- .../icon-registry/icons/icon-server-alt.ts | 2 +- .../core/icon-registry/icons/icon-server.ts | 2 +- .../icon-registry/icons/icon-settings-alt.ts | 2 +- .../core/icon-registry/icons/icon-settings.ts | 2 +- .../icon-registry/icons/icon-share-alt.ts | 2 +- .../core/icon-registry/icons/icon-share.ts | 2 +- .../icons/icon-sharing-iphone.ts | 2 +- .../core/icon-registry/icons/icon-shield.ts | 2 +- .../core/icon-registry/icons/icon-shift.ts | 2 +- .../icon-registry/icons/icon-shipping-box.ts | 2 +- .../core/icon-registry/icons/icon-shipping.ts | 2 +- .../core/icon-registry/icons/icon-shoe.ts | 2 +- .../icons/icon-shopping-basket-alt-2.ts | 2 +- .../icons/icon-shopping-basket-alt.ts | 2 +- .../icons/icon-shopping-basket.ts | 2 +- .../core/icon-registry/icons/icon-shuffle.ts | 2 +- .../core/icon-registry/icons/icon-sience.ts | 2 +- .../icon-registry/icons/icon-single-note.ts | 2 +- .../core/icon-registry/icons/icon-sitemap.ts | 2 +- .../core/icon-registry/icons/icon-sleep.ts | 2 +- .../icon-registry/icons/icon-slideshow.ts | 2 +- .../icons/icon-smiley-inverted.ts | 2 +- .../core/icon-registry/icons/icon-smiley.ts | 2 +- .../core/icon-registry/icons/icon-snow.ts | 2 +- .../icon-registry/icons/icon-sound-low.ts | 2 +- .../icon-registry/icons/icon-sound-medium.ts | 2 +- .../icon-registry/icons/icon-sound-off.ts | 2 +- .../icon-registry/icons/icon-sound-waves.ts | 2 +- .../core/icon-registry/icons/icon-sound.ts | 2 +- .../core/icon-registry/icons/icon-spades.ts | 2 +- .../core/icon-registry/icons/icon-speaker.ts | 2 +- .../icon-registry/icons/icon-speed-gauge.ts | 2 +- .../icon-registry/icons/icon-split-alt.ts | 2 +- .../core/icon-registry/icons/icon-split.ts | 2 +- .../core/icon-registry/icons/icon-sprout.ts | 2 +- .../icon-registry/icons/icon-squiggly-line.ts | 2 +- .../core/icon-registry/icons/icon-ssd.ts | 2 +- .../icon-registry/icons/icon-stacked-disks.ts | 2 +- .../core/icon-registry/icons/icon-stamp.ts | 2 +- .../core/icon-registry/icons/icon-star.ts | 2 +- .../core/icon-registry/icons/icon-stop-alt.ts | 2 +- .../icon-registry/icons/icon-stop-hand.ts | 2 +- .../core/icon-registry/icons/icon-stop.ts | 2 +- .../core/icon-registry/icons/icon-store.ts | 2 +- .../core/icon-registry/icons/icon-stream.ts | 2 +- .../core/icon-registry/icons/icon-sunny.ts | 2 +- .../icon-registry/icons/icon-sweatshirt.ts | 2 +- .../core/icon-registry/icons/icon-sync.ts | 2 +- .../core/icon-registry/icons/icon-t-shirt.ts | 2 +- .../core/icon-registry/icons/icon-tab-key.ts | 2 +- .../core/icon-registry/icons/icon-tag.ts | 2 +- .../core/icon-registry/icons/icon-tags.ts | 2 +- .../icon-registry/icons/icon-takeaway-cup.ts | 2 +- .../core/icon-registry/icons/icon-target.ts | 2 +- .../icons/icon-temperatrure-alt.ts | 2 +- .../icon-registry/icons/icon-temperature.ts | 2 +- .../core/icon-registry/icons/icon-terminal.ts | 2 +- .../core/icon-registry/icons/icon-theater.ts | 2 +- .../icon-registry/icons/icon-thumb-down.ts | 2 +- .../core/icon-registry/icons/icon-thumb-up.ts | 2 +- .../icons/icon-thumbnail-list.ts | 2 +- .../icons/icon-thumbnails-small.ts | 2 +- .../icon-registry/icons/icon-thumbnails.ts | 2 +- .../core/icon-registry/icons/icon-ticket.ts | 2 +- .../core/icon-registry/icons/icon-time.ts | 2 +- .../core/icon-registry/icons/icon-timer.ts | 2 +- .../core/icon-registry/icons/icon-tools.ts | 2 +- .../core/icon-registry/icons/icon-top.ts | 2 +- .../icon-registry/icons/icon-traffic-alt.ts | 2 +- .../core/icon-registry/icons/icon-trafic.ts | 2 +- .../core/icon-registry/icons/icon-train.ts | 2 +- .../icon-registry/icons/icon-trash-alt-2.ts | 2 +- .../icon-registry/icons/icon-trash-alt.ts | 2 +- .../core/icon-registry/icons/icon-trash.ts | 2 +- .../core/icon-registry/icons/icon-tree.ts | 2 +- .../core/icon-registry/icons/icon-trophy.ts | 2 +- .../core/icon-registry/icons/icon-truck.ts | 2 +- .../core/icon-registry/icons/icon-tv-old.ts | 2 +- .../core/icon-registry/icons/icon-tv.ts | 2 +- .../icon-registry/icons/icon-umb-content.ts | 2 +- .../icon-registry/icons/icon-umb-developer.ts | 2 +- .../icon-registry/icons/icon-umb-manifest.ts | 14 +++++ .../icon-registry/icons/icon-umb-media.ts | 2 +- .../icon-registry/icons/icon-umb-settings.ts | 2 +- .../icon-registry/icons/icon-umb-users.ts | 2 +- .../core/icon-registry/icons/icon-umbrella.ts | 2 +- .../core/icon-registry/icons/icon-undo.ts | 2 +- .../core/icon-registry/icons/icon-unlocked.ts | 2 +- .../core/icon-registry/icons/icon-untitled.ts | 2 +- .../icon-registry/icons/icon-usb-connector.ts | 2 +- .../core/icon-registry/icons/icon-usb.ts | 2 +- .../icon-registry/icons/icon-user-female.ts | 2 +- .../icons/icon-user-females-alt.ts | 2 +- .../icon-registry/icons/icon-user-females.ts | 2 +- .../icon-registry/icons/icon-user-glasses.ts | 2 +- .../core/icon-registry/icons/icon-user.ts | 2 +- .../icon-registry/icons/icon-users-alt.ts | 2 +- .../core/icon-registry/icons/icon-users.ts | 2 +- .../icon-registry/icons/icon-utilities.ts | 2 +- .../core/icon-registry/icons/icon-vcard.ts | 2 +- .../core/icon-registry/icons/icon-video.ts | 2 +- .../core/icon-registry/icons/icon-voice.ts | 2 +- .../icon-registry/icons/icon-wall-plug.ts | 2 +- .../core/icon-registry/icons/icon-wallet.ts | 2 +- .../core/icon-registry/icons/icon-wand.ts | 2 +- .../core/icon-registry/icons/icon-webhook.ts | 2 +- .../core/icon-registry/icons/icon-weight.ts | 2 +- .../core/icon-registry/icons/icon-width.ts | 2 +- .../core/icon-registry/icons/icon-wifi.ts | 2 +- .../icon-registry/icons/icon-window-popin.ts | 2 +- .../icon-registry/icons/icon-window-popout.ts | 2 +- .../icon-registry/icons/icon-window-sizes.ts | 2 +- .../icon-registry/icons/icon-wine-glass.ts | 2 +- .../core/icon-registry/icons/icon-wrench.ts | 2 +- .../core/icon-registry/icons/icon-wrong.ts | 2 +- .../core/icon-registry/icons/icon-zip.ts | 2 +- .../core/icon-registry/icons/icon-zom-out.ts | 2 +- .../core/icon-registry/icons/icon-zoom-in.ts | 2 +- .../core/icon-registry/icons/icon-zoom-out.ts | 2 +- 533 files changed, 642 insertions(+), 568 deletions(-) create mode 100644 src/packages/core/extension-registry/components/ref-manifest/ref-manifest.element.ts create mode 100644 src/packages/core/icon-registry/icons/icon-umb-manifest.ts diff --git a/package-lock.json b/package-lock.json index dafc1e3c8f..0de4402765 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,7 +82,7 @@ "eslint-plugin-wc": "^2.1.0", "glob": "^11.0.0", "globals": "^15.8.0", - "lucide-static": "^0.408.0", + "lucide-static": "^0.424.0", "msw": "^1.3.2", "playwright-msw": "^3.0.1", "prettier": "3.3.3", @@ -15281,9 +15281,9 @@ } }, "node_modules/lucide-static": { - "version": "0.408.0", - "resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-0.408.0.tgz", - "integrity": "sha512-XJioz3vKagiyA6qMDWkYqU1RUS/bMjqio0/TCOItievnV/C4wwgJZGAbk6eVDe6Wv+d0e9NbhS7Y8yMEpGkElQ==", + "version": "0.424.0", + "resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-0.424.0.tgz", + "integrity": "sha512-KUsIoKeIZF/rc5dttI/bZmd3+zQ/V9YA/G/NsGALA3QWqVncuZsyJ+IrM+jI0BTHiARwVZfp7zOEhc7gqn5x7A==", "dev": true }, "node_modules/lunr": { diff --git a/package.json b/package.json index 3ed5ffa50b..112daa104b 100644 --- a/package.json +++ b/package.json @@ -252,7 +252,7 @@ "eslint-plugin-wc": "^2.1.0", "glob": "^11.0.0", "globals": "^15.8.0", - "lucide-static": "^0.408.0", + "lucide-static": "^0.424.0", "msw": "^1.3.2", "playwright-msw": "^3.0.1", "prettier": "3.3.3", diff --git a/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts b/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts index 4436f647b0..4fe1db856c 100644 --- a/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts +++ b/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts @@ -83,11 +83,7 @@ export class UmbBlockTypeCustomViewGuideElement extends UmbLitElement { ${repeat( this._manifests, (x) => x.alias, - (x) => html` - - - `, + (x) => html` `, )} ` : html`No custom view matches the current block editor type and content type.`; diff --git a/src/packages/core/extension-registry/components/index.ts b/src/packages/core/extension-registry/components/index.ts index 4f454594ee..1a9cdd1415 100644 --- a/src/packages/core/extension-registry/components/index.ts +++ b/src/packages/core/extension-registry/components/index.ts @@ -1,2 +1,3 @@ export * from './extension-slot/index.js'; export * from './extension-with-api-slot/index.js'; +export * from './ref-manifest/ref-manifest.element.js'; diff --git a/src/packages/core/extension-registry/components/ref-manifest/ref-manifest.element.ts b/src/packages/core/extension-registry/components/ref-manifest/ref-manifest.element.ts new file mode 100644 index 0000000000..b341c0f4b0 --- /dev/null +++ b/src/packages/core/extension-registry/components/ref-manifest/ref-manifest.element.ts @@ -0,0 +1,52 @@ +import { UUIIconRequestEvent, UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; +import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; +import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; + +@customElement('umb-ref-manifest') +export class UmbRefManifestElement extends UmbElementMixin(UUIRefNodeElement) { + @property({ type: Object, attribute: false }) + public get manifest(): ManifestBase | undefined { + return undefined; + } + public set manifest(value: ManifestBase | undefined) { + this._alias = value?.alias; + this.name = value?.name ?? ''; + } + + @state() + private _alias?: string; + + override connectedCallback() { + super.connectedCallback(); + + this.#requestIconSVG('icon-umb-manifest'); + } + + /* This is a bit stupid, but because this element extends from uui-ref-node, it only accepts the icon via the icon slot. + ** Instead we overwrite the fallbackIcon property which requires a SVG... */ + #requestIconSVG(iconName: string) { + if (iconName !== '' && iconName !== null) { + const event = new UUIIconRequestEvent(UUIIconRequestEvent.ICON_REQUEST, { + detail: { iconName: iconName }, + }); + this.dispatchEvent(event); + if (event.icon !== null) { + event.icon.then((iconSvg: string) => { + this.fallbackIcon = iconSvg; + this.requestUpdate('fallbackIcon'); + }); + } + } + } + + protected override renderDetail() { + return html`${this._alias}`; + } +} + +declare global { + interface HTMLElementTagNameMap { + 'umb-ref-manifest': UmbRefManifestElement; + } +} diff --git a/src/packages/core/icon-registry/icon-dictionary.json b/src/packages/core/icon-registry/icon-dictionary.json index 5058e26d8d..4288bb4b7d 100644 --- a/src/packages/core/icon-registry/icon-dictionary.json +++ b/src/packages/core/icon-registry/icon-dictionary.json @@ -139,7 +139,7 @@ }, { "name": "icon-bar-chart", - "file": "bar-chart-2.svg" + "file": "chart-no-axes-column.svg" }, { "name": "icon-barcode", @@ -147,7 +147,7 @@ }, { "name": "icon-bars", - "file": "bar-chart.svg" + "file": "chart-no-axes-column-increasing.svg" }, { "name": "icon-battery-full", @@ -376,11 +376,11 @@ }, { "name": "icon-chart-curve", - "file": "area-chart.svg" + "file": "chart-no-axes-combined.svg" }, { "name": "icon-chart", - "file": "line-chart.svg" + "file": "chart-line.svg" }, { "name": "icon-chat-active", @@ -653,7 +653,7 @@ }, { "name": "icon-defrag", - "file": "scatter-chart.svg" + "file": "chart-scatter.svg" }, { "name": "icon-delete-key", @@ -1664,7 +1664,7 @@ }, { "name": "icon-pie-chart", - "file": "pie-chart.svg" + "file": "chart-pie.svg" }, { "name": "icon-piggy-bank", @@ -2447,6 +2447,10 @@ { "name": "icon-database", "file": "database.svg" + }, + { + "name": "icon-umb-manifest", + "file": "puzzle.svg" } ], "simpleIcons": [ diff --git a/src/packages/core/icon-registry/icons.ts b/src/packages/core/icon-registry/icons.ts index e9edf842e7..5b8e14cb97 100644 --- a/src/packages/core/icon-registry/icons.ts +++ b/src/packages/core/icon-registry/icons.ts @@ -2099,6 +2099,10 @@ name: "icon-database", path: () => import("./icons/icon-database.js"), },{ +name: "icon-umb-manifest", + +path: () => import("./icons/icon-umb-manifest.js"), +},{ name: "icon-facebook", path: () => import("./icons/icon-facebook.js"), diff --git a/src/packages/core/icon-registry/icons/icon-activity.ts b/src/packages/core/icon-registry/icons/icon-activity.ts index bbd5e59293..bde54263f9 100644 --- a/src/packages/core/icon-registry/icons/icon-activity.ts +++ b/src/packages/core/icon-registry/icons/icon-activity.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > - - + + + + + + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-chart.ts b/src/packages/core/icon-registry/icons/icon-chart.ts index dbeaa8358d..ee6ba799f0 100644 --- a/src/packages/core/icon-registry/icons/icon-chart.ts +++ b/src/packages/core/icon-registry/icons/icon-chart.ts @@ -1,6 +1,6 @@ -export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-chat-active.ts b/src/packages/core/icon-registry/icons/icon-chat-active.ts index 375bc1007a..3c89732a26 100644 --- a/src/packages/core/icon-registry/icons/icon-chat-active.ts +++ b/src/packages/core/icon-registry/icons/icon-chat-active.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > + - - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-cloud.ts b/src/packages/core/icon-registry/icons/icon-cloud.ts index 2f2c1f0ab3..0eb80f0aea 100644 --- a/src/packages/core/icon-registry/icons/icon-cloud.ts +++ b/src/packages/core/icon-registry/icons/icon-cloud.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-delete-key.ts b/src/packages/core/icon-registry/icons/icon-delete-key.ts index 099bd68add..f5b4a2ee15 100644 --- a/src/packages/core/icon-registry/icons/icon-delete-key.ts +++ b/src/packages/core/icon-registry/icons/icon-delete-key.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-facebook-like.ts b/src/packages/core/icon-registry/icons/icon-facebook-like.ts index 7b3d95a435..e89cb6be28 100644 --- a/src/packages/core/icon-registry/icons/icon-facebook-like.ts +++ b/src/packages/core/icon-registry/icons/icon-facebook-like.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > - + - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-location-nearby.ts b/src/packages/core/icon-registry/icons/icon-location-nearby.ts index 2a5d5c30a5..e011664799 100644 --- a/src/packages/core/icon-registry/icons/icon-location-nearby.ts +++ b/src/packages/core/icon-registry/icons/icon-location-nearby.ts @@ -1,4 +1,4 @@ -export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > - + - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-lock.ts b/src/packages/core/icon-registry/icons/icon-lock.ts index c2b8df200a..3ef090933e 100644 --- a/src/packages/core/icon-registry/icons/icon-lock.ts +++ b/src/packages/core/icon-registry/icons/icon-lock.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > - + - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-map-marker.ts b/src/packages/core/icon-registry/icons/icon-map-marker.ts index 7f33231ec0..f47cf31b67 100644 --- a/src/packages/core/icon-registry/icons/icon-map-marker.ts +++ b/src/packages/core/icon-registry/icons/icon-map-marker.ts @@ -1,4 +1,4 @@ -export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-map.ts b/src/packages/core/icon-registry/icons/icon-map.ts index 7ee625bc8e..a88b9316e4 100644 --- a/src/packages/core/icon-registry/icons/icon-map.ts +++ b/src/packages/core/icon-registry/icons/icon-map.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > + - `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-piggy-bank.ts b/src/packages/core/icon-registry/icons/icon-piggy-bank.ts index a2ba6f2280..686b1a9c57 100644 --- a/src/packages/core/icon-registry/icons/icon-piggy-bank.ts +++ b/src/packages/core/icon-registry/icons/icon-piggy-bank.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-plane.ts b/src/packages/core/icon-registry/icons/icon-plane.ts index 37c381b14c..6ccbf557e9 100644 --- a/src/packages/core/icon-registry/icons/icon-plane.ts +++ b/src/packages/core/icon-registry/icons/icon-plane.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` stroke-linecap="round" stroke-linejoin="round" > - - - - + + + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-search.ts b/src/packages/core/icon-registry/icons/icon-search.ts index d02739cbe0..095cb065e7 100644 --- a/src/packages/core/icon-registry/icons/icon-search.ts +++ b/src/packages/core/icon-registry/icons/icon-search.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` - + `; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-server-alt.ts b/src/packages/core/icon-registry/icons/icon-server-alt.ts index f1a06991a6..5422530d7a 100644 --- a/src/packages/core/icon-registry/icons/icon-server-alt.ts +++ b/src/packages/core/icon-registry/icons/icon-server-alt.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` + + + +`; \ No newline at end of file diff --git a/src/packages/core/icon-registry/icons/icon-umb-media.ts b/src/packages/core/icon-registry/icons/icon-umb-media.ts index 5c267b2b5b..864938c517 100644 --- a/src/packages/core/icon-registry/icons/icon-umb-media.ts +++ b/src/packages/core/icon-registry/icons/icon-umb-media.ts @@ -1,4 +1,4 @@ -export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` +export default ` Date: Fri, 2 Aug 2024 22:31:29 +0200 Subject: [PATCH 3/6] manifest viewer modal --- src/assets/lang/en-us.ts | 1 + src/assets/lang/en.ts | 1 + .../block-type-custom-view-guide.element.ts | 16 +++++++-- .../modals/composition-picker/index.ts | 1 - .../modals/composition-picker/manifest.ts | 8 +++++ .../core/content-type/modals/manifests.ts | 13 ++----- src/packages/core/extension-registry/index.ts | 1 + .../core/extension-registry/manifests.ts | 2 ++ .../modals/manifest-viewer/index.ts | 2 ++ .../manifest-viewer-modal.element.ts | 35 +++++++++++++++++++ .../manifest-viewer-modal.token.ts | 16 +++++++++ .../modals/manifest-viewer/manifest.ts | 8 +++++ 12 files changed, 90 insertions(+), 14 deletions(-) create mode 100644 src/packages/core/content-type/modals/composition-picker/manifest.ts create mode 100644 src/packages/core/extension-registry/modals/manifest-viewer/index.ts create mode 100644 src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.element.ts create mode 100644 src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.token.ts create mode 100644 src/packages/core/extension-registry/modals/manifest-viewer/manifest.ts diff --git a/src/assets/lang/en-us.ts b/src/assets/lang/en-us.ts index a6468f4f6c..a212371ec1 100644 --- a/src/assets/lang/en-us.ts +++ b/src/assets/lang/en-us.ts @@ -820,6 +820,7 @@ export default { logout: 'Logout', macro: 'Macro', mandatory: 'Mandatory', + manifest: 'Manifest', media: 'Media', message: 'Message', move: 'Move', diff --git a/src/assets/lang/en.ts b/src/assets/lang/en.ts index f1b6833566..95c5df5eee 100644 --- a/src/assets/lang/en.ts +++ b/src/assets/lang/en.ts @@ -831,6 +831,7 @@ export default { logout: 'Logout', macro: 'Macro', mandatory: 'Mandatory', + manifest: 'Manifest', message: 'Message', move: 'Move', name: 'Name', diff --git a/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts b/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts index 4fe1db856c..b41533ef53 100644 --- a/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts +++ b/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts @@ -1,10 +1,15 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { html, customElement, state, property, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; -import { umbExtensionsRegistry, type ManifestBlockEditorCustomView } from '@umbraco-cms/backoffice/extension-registry'; +import { + UMB_MANIFEST_VIEWER_MODAL, + umbExtensionsRegistry, + type ManifestBlockEditorCustomView, +} from '@umbraco-cms/backoffice/extension-registry'; import { stringOrStringArrayContains } from '@umbraco-cms/backoffice/utils'; import { UmbExtensionsManifestInitializer } from '@umbraco-cms/backoffice/extension-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; @customElement('umb-block-type-custom-view-guide') export class UmbBlockTypeCustomViewGuideElement extends UmbLitElement { @@ -77,13 +82,20 @@ export class UmbBlockTypeCustomViewGuideElement extends UmbLitElement { return true; }; + async #viewManifest(manifest: ManifestBlockEditorCustomView) { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + modalManager.open(this, UMB_MANIFEST_VIEWER_MODAL, { data: manifest }); + } + override render() { return this._manifests && this._manifests.length > 0 ? html`
${repeat( this._manifests, (x) => x.alias, - (x) => html` `, + (x) => html` + this.#viewManifest(x)} .manifest=${x}> + `, )}
` : html`No custom view matches the current block editor type and content type.`; diff --git a/src/packages/core/content-type/modals/composition-picker/index.ts b/src/packages/core/content-type/modals/composition-picker/index.ts index 653c14e841..9a964efe55 100644 --- a/src/packages/core/content-type/modals/composition-picker/index.ts +++ b/src/packages/core/content-type/modals/composition-picker/index.ts @@ -1,2 +1 @@ -export * from './composition-picker-modal.element.js'; export * from './composition-picker-modal.token.js'; diff --git a/src/packages/core/content-type/modals/composition-picker/manifest.ts b/src/packages/core/content-type/modals/composition-picker/manifest.ts new file mode 100644 index 0000000000..e743da34a9 --- /dev/null +++ b/src/packages/core/content-type/modals/composition-picker/manifest.ts @@ -0,0 +1,8 @@ +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: ManifestModal = { + type: 'modal', + alias: 'Umb.Modal.CompositionPicker', + name: 'ContentType Composition Picker Modal', + element: () => import('./composition-picker-modal.element.js'), +}; diff --git a/src/packages/core/content-type/modals/manifests.ts b/src/packages/core/content-type/modals/manifests.ts index 516bbb553f..a0372901b3 100644 --- a/src/packages/core/content-type/modals/manifests.ts +++ b/src/packages/core/content-type/modals/manifests.ts @@ -1,12 +1,3 @@ -import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import { manifest } from './composition-picker/manifest.js'; -const modals: Array = [ - { - type: 'modal', - alias: 'Umb.Modal.CompositionPicker', - name: 'ContentType Composition Picker Modal', - element: () => import('./composition-picker/composition-picker-modal.element.js'), - }, -]; - -export const manifests = modals; +export const manifests = [manifest]; diff --git a/src/packages/core/extension-registry/index.ts b/src/packages/core/extension-registry/index.ts index 017d4122e2..4987fe24c9 100644 --- a/src/packages/core/extension-registry/index.ts +++ b/src/packages/core/extension-registry/index.ts @@ -1,5 +1,6 @@ export * from './conditions/index.js'; export * from './initializers/index.js'; +export * from './modals/manifest-viewer/index.js'; export * from './registry.js'; export * from './utils/index.js'; export type * from './interfaces/index.js'; diff --git a/src/packages/core/extension-registry/manifests.ts b/src/packages/core/extension-registry/manifests.ts index dd1a2d6e84..7025355d5b 100644 --- a/src/packages/core/extension-registry/manifests.ts +++ b/src/packages/core/extension-registry/manifests.ts @@ -3,6 +3,7 @@ import { manifests as menuItemManifests } from './menu-item/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; import { manifests as collectionManifests } from './collection/manifests.js'; import { manifests as entityActionManifests } from './entity-actions/manifests.js'; +import { manifest as modalManifest } from './modals/manifest-viewer/manifest.js'; import type { ManifestTypes } from './models/index.js'; export const manifests: Array = [ @@ -11,4 +12,5 @@ export const manifests: Array = [ ...workspaceManifests, ...collectionManifests, ...entityActionManifests, + modalManifest, ]; diff --git a/src/packages/core/extension-registry/modals/manifest-viewer/index.ts b/src/packages/core/extension-registry/modals/manifest-viewer/index.ts new file mode 100644 index 0000000000..89988a329e --- /dev/null +++ b/src/packages/core/extension-registry/modals/manifest-viewer/index.ts @@ -0,0 +1,2 @@ +export * from './manifest-viewer-modal.token.js'; +export * from './manifest.js'; diff --git a/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.element.ts b/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.element.ts new file mode 100644 index 0000000000..47100de84a --- /dev/null +++ b/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.element.ts @@ -0,0 +1,35 @@ +import type { UmbManifestViewerModalData, UmbManifestViewerModalValue } from './manifest-viewer-modal.token.js'; +import { css, html, customElement, nothing } from '@umbraco-cms/backoffice/external/lit'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; + +@customElement('umb-manifest-viewer-modal') +export class UmbManifestViewerModalElement extends UmbModalBaseElement< + UmbManifestViewerModalData, + UmbManifestViewerModalValue +> { + override render() { + console.log('data', this.data); + return html` + + ${this.data + ? html`${JSON.stringify(this.data, null, 2)}` + : nothing} +
+ +
+
+ `; + } + + static override styles = [css``]; +} + +export default UmbManifestViewerModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-manifest-viewer-modal': UmbManifestViewerModalElement; + } +} diff --git a/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.token.ts b/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.token.ts new file mode 100644 index 0000000000..96fb68b015 --- /dev/null +++ b/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.token.ts @@ -0,0 +1,16 @@ +import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbManifestViewerModalData extends ManifestBase {} + +export type UmbManifestViewerModalValue = undefined; + +export const UMB_MANIFEST_VIEWER_MODAL = new UmbModalToken( + 'Umb.Modal.ManifestViewer', + { + modal: { + type: 'sidebar', + size: 'medium', + }, + }, +); diff --git a/src/packages/core/extension-registry/modals/manifest-viewer/manifest.ts b/src/packages/core/extension-registry/modals/manifest-viewer/manifest.ts new file mode 100644 index 0000000000..db4ef7f807 --- /dev/null +++ b/src/packages/core/extension-registry/modals/manifest-viewer/manifest.ts @@ -0,0 +1,8 @@ +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: ManifestModal = { + type: 'modal', + alias: 'Umb.Modal.ManifestViewer', + name: 'Manifest Viewer Modal', + element: () => import('./manifest-viewer-modal.element.js'), +}; From efddd284a6a0926adf184a79161d4936df422882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 2 Aug 2024 22:59:44 +0200 Subject: [PATCH 4/6] generator --- .../block-grid-entries.element.ts | 1 - ...itor-ui-block-grid-areas-config.element.ts | 2 +- .../property-editor-ui-block-list.element.ts | 6 +--- .../block-type-custom-view-guide.element.ts | 36 +++++++++++++++++-- .../manifest-viewer-modal.element.ts | 13 +++++-- 5 files changed, 46 insertions(+), 12 deletions(-) diff --git a/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts b/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts index 9ce184c1be..e4e62d56d9 100644 --- a/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts +++ b/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts @@ -291,7 +291,6 @@ export class UmbBlockGridEntriesElement extends UmbFormControlMixin(UmbLitElemen if (this._areaKey === null || this._layoutEntries.length === 0) { return html` `, )} - ` + ` : ''; } } diff --git a/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 584de1645c..2a96c2e0c0 100644 --- a/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -175,11 +175,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement `, )} - + { + this.#contentTypeName = model?.name; this.#contentTypeAlias = model?.alias; this.#loadManifests(); }, @@ -54,7 +56,6 @@ export class UmbBlockTypeCustomViewGuideElement extends UmbLitElement { } #loadManifests() { - console.log('this.#blockEditorType', this.#blockEditorType, 'this.#contentTypeAlias', this.#contentTypeAlias); if (!this.#blockEditorType || !this.#contentTypeAlias) return; new UmbExtensionsManifestInitializer( this, @@ -87,6 +88,20 @@ export class UmbBlockTypeCustomViewGuideElement extends UmbLitElement { modalManager.open(this, UMB_MANIFEST_VIEWER_MODAL, { data: manifest }); } + async #generateManifest() { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + + const manifest = { + type: 'blockEditorCustomView', + alias: 'Local.blockEditorCustomView.' + this.#contentTypeAlias, + name: 'Block Editor Custom View for ' + this.#contentTypeName, + element: '[replace with path to your web component js file...]', + forContentTypeAlias: this.#contentTypeAlias, + forBlockEditor: this.#blockEditorType, + }; + modalManager.open(this, UMB_MANIFEST_VIEWER_MODAL, { data: manifest }); + } + override render() { return this._manifests && this._manifests.length > 0 ? html`
@@ -98,8 +113,23 @@ export class UmbBlockTypeCustomViewGuideElement extends UmbLitElement { `, )}
` - : html`No custom view matches the current block editor type and content type.`; + : html` this.#generateManifest()}>`; } + + static override styles = [ + css` + #add-button { + text-align: center; + width: 100%; + } + `, + ]; } export default UmbBlockTypeCustomViewGuideElement; diff --git a/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.element.ts b/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.element.ts index 47100de84a..2e5e8e476e 100644 --- a/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.element.ts +++ b/src/packages/core/extension-registry/modals/manifest-viewer/manifest-viewer-modal.element.ts @@ -2,18 +2,27 @@ import type { UmbManifestViewerModalData, UmbManifestViewerModalValue } from './ import { css, html, customElement, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +// JSON parser for the manifest viewer modal +// Enabling us to view JS code, but it is not optimal, but currently better than nothing [NL] +// Ideally we should have a JS code stringify that can print the manifest as JS. [NL] +function JsonParser(key: string, value: any) { + if (typeof value === 'function' && value !== null && value.toString) { + return Function.prototype.toString.call(value); + } + return value; +} + @customElement('umb-manifest-viewer-modal') export class UmbManifestViewerModalElement extends UmbModalBaseElement< UmbManifestViewerModalData, UmbManifestViewerModalValue > { override render() { - console.log('data', this.data); return html` ${this.data ? html`${JSON.stringify(this.data, null, 2)}${JSON.stringify(this.data, JsonParser, 2)}` : nothing}
From 4e5a42cb0378e18c207a0233de5aea17ce08e5a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 2 Aug 2024 23:02:28 +0200 Subject: [PATCH 5/6] no repeat, we only want one manifest for this --- .../block-type-custom-view-guide.element.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts b/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts index 6eb4361882..fb32f61d89 100644 --- a/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts +++ b/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts @@ -105,13 +105,10 @@ export class UmbBlockTypeCustomViewGuideElement extends UmbLitElement { override render() { return this._manifests && this._manifests.length > 0 ? html`
- ${repeat( - this._manifests, - (x) => x.alias, - (x) => html` - this.#viewManifest(x)} .manifest=${x}> - `, - )} + this.#viewManifest(this._manifests![0])} + .manifest=${this._manifests[0]}>
` : html` Date: Mon, 5 Aug 2024 09:00:53 +0200 Subject: [PATCH 6/6] remove repeat import --- .../block-type-custom-view-guide.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts b/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts index fb32f61d89..b9edb181ef 100644 --- a/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts +++ b/src/packages/block/block-type/components/block-type-custom-view-guide/block-type-custom-view-guide.element.ts @@ -1,5 +1,5 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { html, customElement, state, property, repeat, css } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state, property, css } from '@umbraco-cms/backoffice/external/lit'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; import { UMB_MANIFEST_VIEWER_MODAL,