import type { UmbTiptapToolbarElementApi } from './types.js'; import type { UmbControllerHostElement } from '../../../libs/controller-api/index.js'; import type { ElementLoaderProperty, ManifestElementAndApi } from '../../../libs/extension-api/index.js'; export interface ManifestTiptapToolbarExtension extends ManifestElementAndApi { type: 'tiptapToolbarExtension'; forExtensions?: Array; meta: MetaType; } export interface MetaTiptapToolbarExtension { alias: string; icon: string; label: string; } export interface ManifestTiptapToolbarExtensionButtonKind extends ManifestTiptapToolbarExtension { type: 'tiptapToolbarExtension'; kind: 'button'; } export interface ManifestTiptapToolbarExtensionActionButtonKind extends ManifestTiptapToolbarExtension { type: 'tiptapToolbarExtension'; kind: 'actionButton'; } export interface ManifestTiptapToolbarExtensionColorPickerButtonKind extends ManifestTiptapToolbarExtension { type: 'tiptapToolbarExtension'; kind: 'colorPickerButton'; } export interface MetaTiptapToolbarMenuItem { appearance?: { icon?: string; style?: string; }; data?: ItemDataType; element?: ElementLoaderProperty; elementName?: string; items?: Array>; label: string; menu?: string; separatorAfter?: boolean; } export interface MetaTiptapToolbarMenuExtension extends MetaTiptapToolbarExtension { look?: 'icon' | 'text'; } export interface ManifestTiptapToolbarExtensionMenuKind extends ManifestTiptapToolbarExtension { type: 'tiptapToolbarExtension'; kind: 'menu'; items?: Array; menu?: string; } export type MetaTiptapToolbarStyleMenuItem = MetaTiptapToolbarMenuItem<{ tag?: string; class?: string; id?: string; }>; export interface ManifestTiptapToolbarExtensionStyleMenuKind extends ManifestTiptapToolbarExtension { type: 'tiptapToolbarExtension'; kind: 'styleMenu'; items: Array; } declare global { interface UmbExtensionManifestMap { umbTiptapToolbarExtension: ManifestTiptapToolbarExtension | ManifestTiptapToolbarExtensionButtonKind | ManifestTiptapToolbarExtensionActionButtonKind | ManifestTiptapToolbarExtensionColorPickerButtonKind | ManifestTiptapToolbarExtensionMenuKind | ManifestTiptapToolbarExtensionStyleMenuKind; } }