diff --git a/src/Umbraco.Web.UI.Client/src/packages/tiptap/components/input-tiptap/input-tiptap.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiptap/components/input-tiptap/input-tiptap.element.ts index 89996511511c..0ff052abe38e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tiptap/components/input-tiptap/input-tiptap.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiptap/components/input-tiptap/input-tiptap.element.ts @@ -1,6 +1,6 @@ import { Editor } from '../../externals.js'; import { UmbTiptapRteContext } from '../../contexts/tiptap-rte.context.js'; -import type { Extensions } from '../../externals.js'; +import type { AnyExtension } from '../../externals.js'; import type { UmbTiptapExtensionApi } from '../../extensions/types.js'; import type { UmbTiptapStatusbarValue, UmbTiptapToolbarValue } from '../types.js'; import { @@ -156,12 +156,16 @@ export class UmbInputTiptapElement extends UmbFormControlMixin('toolbar') ?? [[[]]]; this._statusbar = this.configuration?.getValueByAlias('statusbar') ?? []; - const tiptapExtensions: Extensions = []; + const tiptapExtensions = new Map(); this._extensions.forEach((ext) => { const tiptapExt = ext.getTiptapExtensions({ configuration: this.configuration }); if (tiptapExt?.length) { - tiptapExtensions.push(...tiptapExt); + tiptapExt.forEach((extension) => { + if (!tiptapExtensions.has(extension.name)) { + tiptapExtensions.set(extension.name, extension); + } + }); } const styles = ext.getStyles(); @@ -179,7 +183,7 @@ export class UmbInputTiptapElement extends UmbFormControlMixin