tiptapify
Version:
Tiptap3 editor with Vuetify3 menu implementation
63 lines (53 loc) • 1.63 kB
text/typescript
import { Plugin } from 'vue'
import Tiptapify from '@tiptapify/components/Tiptapify.vue'
import TiptapifyDialog from '@tiptapify/components/UI/TiptapifyDialog.vue'
import { TiptapifyFooterAlignment } from '@tiptapify/types/editor'
import { Editor as TipTapEditor, nodeViewProps, NodeViewWrapper, VueNodeViewRenderer } from '@tiptap/vue-3'
import { Node, Mark, markInputRule, markPasteRule, mergeAttributes } from '@tiptap/core'
import type { CommandProps, InputRuleMatch, PasteRuleMatch } from '@tiptap/core'
import * as mdi from '@mdi/js'
import { messages } from './i18n'
interface PackageOptions {
i18n?: any;
}
const TiptapifyPlugin: Plugin = {
install(app, options: PackageOptions = {}) {
app.component('Tiptapify', Tiptapify)
app.component('TiptapifyDialog', TiptapifyDialog)
const i18n = options.i18n
for (const locale of Object.keys(messages)) {
i18n.global.mergeLocaleMessage(locale, messages[locale])
}
}
}
export default TiptapifyPlugin
export {
mdi,
TipTapEditor,
nodeViewProps,
NodeViewWrapper,
VueNodeViewRenderer,
Tiptapify,
TiptapifyDialog,
Node,
Mark,
markInputRule,
markPasteRule,
mergeAttributes,
}
export type { TiptapifyFooterAlignment }
export type { CommandProps, InputRuleMatch, PasteRuleMatch }
export type {
TiptapifyAiMode,
TiptapifyAiOptions,
TiptapifyAiChatMessage,
TiptapifyAiChatRole,
TiptapifyAiEditorContext,
TiptapifyAiOpenAiResponse,
TiptapifyAiPromptExample,
TiptapifyAiProvider,
TiptapifyAiRequest,
TiptapifyAiResponse,
TiptapifyAiStorage,
TiptapifyAiTokenProvider,
} from '@tiptapify/types/editor'