= () =>
+ html``;
+AAAOverview.storyName = 'Overview';
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/mode/property-editor-ui-tiny-mce-mode-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/mode/property-editor-ui-tiny-mce-mode-configuration.test.ts
new file mode 100644
index 0000000000..00299e155e
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/mode/property-editor-ui-tiny-mce-mode-configuration.test.ts
@@ -0,0 +1,21 @@
+import { expect, fixture, html } from '@open-wc/testing';
+import { UmbPropertyEditorUITinyMceModeConfigurationElement } from './property-editor-ui-tiny-mce-mode-configuration.element';
+import { defaultA11yConfig } from '@umbraco-cms/test-utils';
+
+describe('UmbPropertyEditorUITinyMceModeConfigurationElement', () => {
+ let element: UmbPropertyEditorUITinyMceModeConfigurationElement;
+
+ beforeEach(async () => {
+ element = await fixture(
+ html` `
+ );
+ });
+
+ it('is defined with its own instance', () => {
+ expect(element).to.be.instanceOf(UmbPropertyEditorUITinyMceModeConfigurationElement);
+ });
+
+ it('passes the a11y audit', async () => {
+ await expect(element).shadowDom.to.be.accessible(defaultA11yConfig);
+ });
+});
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.element.ts
deleted file mode 100644
index 82fa2edbd1..0000000000
--- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.element.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { html } from 'lit';
-import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
-import { customElement, property } from 'lit/decorators.js';
-import { UmbLitElement } from '@umbraco-cms/element';
-
-/**
- * @element umb-property-editor-ui-tiny-mce-configuration
- */
-@customElement('umb-property-editor-ui-tiny-mce-configuration')
-export class UmbPropertyEditorUITinyMceConfigurationElement extends UmbLitElement {
- static styles = [UUITextStyles];
-
- @property()
- value = '';
-
- @property({ type: Array, attribute: false })
- public config = [];
-
- render() {
- return html`umb-property-editor-ui-tiny-mce-configuration
`;
- }
-}
-
-export default UmbPropertyEditorUITinyMceConfigurationElement;
-
-declare global {
- interface HTMLElementTagNameMap {
- 'umb-property-editor-ui-tiny-mce-configuration': UmbPropertyEditorUITinyMceConfigurationElement;
- }
-}
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.stories.ts
deleted file mode 100644
index 447be2a933..0000000000
--- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.stories.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Meta, Story } from '@storybook/web-components';
-import { html } from 'lit-html';
-
-import type { UmbPropertyEditorUITinyMceConfigurationElement } from './property-editor-ui-tiny-mce-configuration.element';
-import './property-editor-ui-tiny-mce-configuration.element';
-
-export default {
- title: 'Property Editor UIs/Tiny Mce Configuration',
- component: 'umb-property-editor-ui-tiny-mce-configuration',
- id: 'umb-property-editor-ui-tiny-mce-configuration',
-} as Meta;
-
-export const AAAOverview: Story = () =>
- html``;
-AAAOverview.storyName = 'Overview';
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.test.ts
deleted file mode 100644
index 142ce9b535..0000000000
--- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { expect, fixture, html } from '@open-wc/testing';
-import { UmbPropertyEditorUITinyMceConfigurationElement } from './property-editor-ui-tiny-mce-configuration.element';
-import { defaultA11yConfig } from '@umbraco-cms/test-utils';
-
-describe('UmbPropertyEditorUITinyMceConfigurationElement', () => {
- let element: UmbPropertyEditorUITinyMceConfigurationElement;
-
- beforeEach(async () => {
- element = await fixture(
- html` `
- );
- });
-
- it('is defined with its own instance', () => {
- expect(element).to.be.instanceOf(UmbPropertyEditorUITinyMceConfigurationElement);
- });
-
- it('passes the a11y audit', async () => {
- await expect(element).shadowDom.to.be.accessible(defaultA11yConfig);
- });
-});
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts
new file mode 100644
index 0000000000..f0e30aa12f
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts
@@ -0,0 +1,40 @@
+import { css, html } from 'lit';
+import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
+import { customElement, property } from 'lit/decorators.js';
+import { UmbLitElement } from '@umbraco-cms/element';
+
+/**
+ * @element umb-property-editor-ui-tiny-mce-stylesheets-configuration
+ */
+@customElement('umb-property-editor-ui-tiny-mce-stylesheets-configuration')
+export class UmbPropertyEditorUITinyMceStylesheetsConfigurationElement extends UmbLitElement {
+ static styles = [
+ UUITextStyles,
+ css`
+ ul {
+ list-style: none;
+ padding: 0;
+ margin:0;
+ }
+ `,
+ ];
+ @property()
+ value: string[] = [];
+
+ @property({ type: Array, attribute: false })
+ public config = [];
+
+ render() {
+ return html`
+ ${this.value.map((v) => html`- ${v}
`)}
+
`;
+ }
+}
+
+export default UmbPropertyEditorUITinyMceStylesheetsConfigurationElement;
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-property-editor-ui-tiny-mce-stylesheets-configuration': UmbPropertyEditorUITinyMceStylesheetsConfigurationElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts
new file mode 100644
index 0000000000..d9831f6db9
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts
@@ -0,0 +1,15 @@
+import { Meta, Story } from '@storybook/web-components';
+import { html } from 'lit-html';
+
+import type { UmbPropertyEditorUITinyMceStylesheetsConfigurationElement } from './property-editor-ui-tiny-mce-stylesheets-configuration.element';
+import './property-editor-ui-tiny-mce-stylesheets-configuration.element';
+
+export default {
+ title: 'Property Editor UIs/Tiny Mce Stylesheets Configuration',
+ component: 'umb-property-editor-ui-tiny-mce-stylesheets-configuration',
+ id: 'umb-property-editor-ui-tiny-mce-stylesheets-configuration',
+} as Meta;
+
+export const AAAOverview: Story = () =>
+ html``;
+AAAOverview.storyName = 'Overview';
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.test.ts
new file mode 100644
index 0000000000..2fa525b653
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.test.ts
@@ -0,0 +1,21 @@
+import { expect, fixture, html } from '@open-wc/testing';
+import { UmbPropertyEditorUITinyMceStylesheetsConfigurationElement } from './property-editor-ui-tiny-mce-stylesheets-configuration.element';
+import { defaultA11yConfig } from '@umbraco-cms/test-utils';
+
+describe('UmbPropertyEditorUITinyMceStylesheetsConfigurationElement', () => {
+ let element: UmbPropertyEditorUITinyMceStylesheetsConfigurationElement;
+
+ beforeEach(async () => {
+ element = await fixture(
+ html` `
+ );
+ });
+
+ it('is defined with its own instance', () => {
+ expect(element).to.be.instanceOf(UmbPropertyEditorUITinyMceStylesheetsConfigurationElement);
+ });
+
+ it('passes the a11y audit', async () => {
+ await expect(element).shadowDom.to.be.accessible(defaultA11yConfig);
+ });
+});
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts
new file mode 100644
index 0000000000..803135aebf
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts
@@ -0,0 +1,41 @@
+import { css, html } from 'lit';
+import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
+import { customElement, property } from 'lit/decorators.js';
+import { UmbLitElement } from '@umbraco-cms/element';
+
+/**
+ * @element umb-property-editor-ui-tiny-mce-toolbar-configuration
+ */
+@customElement('umb-property-editor-ui-tiny-mce-toolbar-configuration')
+export class UmbPropertyEditorUITinyMceToolbarConfigurationElement extends UmbLitElement {
+ static styles = [
+ UUITextStyles,
+ css`
+ ul {
+ list-style: none;
+ padding: 0;
+ margin:0;
+ }
+ `,
+ ];
+
+ @property()
+ value: string[] = [];
+
+ @property({ type: Array, attribute: false })
+ public config = [];
+
+ render() {
+ return html`TODO => get config options from backend per Umbraco.Cms.Web.BackOffice.PropertyEditors.RichTextPreValueController
+ ${this.value.map((v) => html`- ${v}
`)}
+
`;
+ }
+}
+
+export default UmbPropertyEditorUITinyMceToolbarConfigurationElement;
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-property-editor-ui-tiny-mce-toolbar-configuration': UmbPropertyEditorUITinyMceToolbarConfigurationElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts
new file mode 100644
index 0000000000..3948d585ab
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts
@@ -0,0 +1,15 @@
+import { Meta, Story } from '@storybook/web-components';
+import { html } from 'lit-html';
+
+import type { UmbPropertyEditorUITinyMceToolbarConfigurationElement } from './property-editor-ui-tiny-mce-toolbar-configuration.element';
+import './property-editor-ui-tiny-mce-toolbar-configuration.element';
+
+export default {
+ title: 'Property Editor UIs/Tiny Mce Toolbar Configuration',
+ component: 'umb-property-editor-ui-tiny-mce-toolbar-configuration',
+ id: 'umb-property-editor-ui-tiny-mce-toolbar-configuration',
+} as Meta;
+
+export const AAAOverview: Story = () =>
+ html``;
+AAAOverview.storyName = 'Overview';
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.test.ts
new file mode 100644
index 0000000000..d33bda5569
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/config/configuration/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.test.ts
@@ -0,0 +1,21 @@
+import { expect, fixture, html } from '@open-wc/testing';
+import { UmbPropertyEditorUITinyMceToolbarConfigurationElement } from './property-editor-ui-tiny-mce-toolbar-configuration.element';
+import { defaultA11yConfig } from '@umbraco-cms/test-utils';
+
+describe('UmbPropertyEditorUITinyMceToolbarConfigurationElement', () => {
+ let element: UmbPropertyEditorUITinyMceToolbarConfigurationElement;
+
+ beforeEach(async () => {
+ element = await fixture(
+ html` `
+ );
+ });
+
+ it('is defined with its own instance', () => {
+ expect(element).to.be.instanceOf(UmbPropertyEditorUITinyMceToolbarConfigurationElement);
+ });
+
+ it('passes the a11y audit', async () => {
+ await expect(element).shadowDom.to.be.accessible(defaultA11yConfig);
+ });
+});
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/manifests.ts
index d5ab888170..3133976a03 100644
--- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-editors/uis/tiny-mce/manifests.ts
@@ -1,4 +1,4 @@
-import { manifest as toolbar } from './config/configuration/manifests';
+import { manifests as configuration } from './config/configuration/manifests';
import type { ManifestPropertyEditorUI } from '@umbraco-cms/models';
const manifest: ManifestPropertyEditorUI = {
@@ -13,11 +13,6 @@ const manifest: ManifestPropertyEditorUI = {
group: 'richText',
config: {
properties: [
- {
- alias: 'editor',
- label: 'Editor',
- propertyEditorUI: 'Umb.PropertyEditorUI.TinyMCE.Configuration',
- },
{
alias: 'overlaySize',
label: 'Overlay Size',
@@ -34,6 +29,4 @@ const manifest: ManifestPropertyEditorUI = {
},
};
-const config = [toolbar];
-
-export const manifests = [manifest, ...config];
+export const manifests = [manifest, ...configuration];