kindy-editor 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,185 +1,181 @@
1
+ import type { JSONContent } from '@tiptap/core'
1
2
  import type { App, Component, DefineComponent } from 'vue'
2
3
 
3
- // ─────────────────────────────────────────────────
4
- // Option Types
5
- // ─────────────────────────────────────────────────
6
-
7
- export interface KindyToolbarOptions {
8
- /** 'classic' | 'ribbon' */
9
- mode?: 'classic' | 'ribbon'
10
- show?: boolean
11
- menus?: string[]
12
- defaultMode?: 'classic' | 'ribbon'
4
+ export type SaveReason = 'autosave' | 'manual'
5
+ export type ArtifactFormat = 'docx' | 'pdf' | 'original-docx'
6
+ export type DocumentErrorCode = 'DOCX_INVALID' | 'DOCX_UNSUPPORTED' | 'IMPORT_FAILED' | 'EXPORT_FAILED' | 'ADAPTER_ERROR' | 'NETWORK_ERROR' | 'VERSION_CONFLICT' | 'DOCUMENT_NOT_FOUND' | 'OPERATION_CANCELLED'
7
+
8
+ export interface KindyPageMargin { top: number; right: number; bottom: number; left: number }
9
+ export interface KindyHeaderFooterState { enabled: boolean; content?: JSONContent; text?: string; firstContent?: JSONContent; firstText?: string; evenContent?: JSONContent; evenText?: string; differentFirstPage?: boolean; differentOddEven?: boolean }
10
+ export interface KindySectionState { id: string; fromBlockId?: string; pageNumberStart?: number; size: { width: number; height: number }; orientation: 'portrait' | 'landscape'; margin: KindyPageMargin; header?: KindyHeaderFooterState; footer?: KindyHeaderFooterState }
11
+ export interface KindyPageState { size: { width: number; height: number }; orientation: 'portrait' | 'landscape'; margin: KindyPageMargin; background?: string; watermark?: Record<string, unknown>; header?: KindyHeaderFooterState; footer?: KindyHeaderFooterState; sections?: KindySectionState[] }
12
+ export interface AssetReference { id: string; kind: 'image' | 'video' | 'audio' | 'file' | 'other'; url?: string; mimeType?: string; fileName?: string; size?: number; metadata?: Record<string, unknown> }
13
+ export interface KindyDocumentState { schemaVersion: '2.0'; content: JSONContent; page: KindyPageState; assets: AssetReference[] }
14
+
15
+ export type KindyLibraryDensity = 'compact' | 'comfortable'
16
+ export interface KindyLibraryUiOptions { density: KindyLibraryDensity; explorerWidth: string; versionsWidth: string; showTopbar: boolean; showExplorer: boolean; showVersions: boolean }
17
+ export interface KindyLibraryMessages {
18
+ documents: string; newDocument: string; importDocx: string; search: string; clearSearch: string; loading: string; empty: string; emptyDescription: string; untitled: string; chooseTemplate: string; useTemplate: string; allFolders: string; compatibilityConfirm: string; versions: string; noVersions: string; preview: string; restore: string; restoring: string; refresh: string; close: string; openDocuments: string; openVersions: string; selectDocument: string; selectDocumentDescription: string; saving: string; saved: string; unsaved: string; readOnly: string; currentVersion: string; previewingVersion: string; backToCurrent: string; save: string; downloadDocx: string; print: string; retry: string; loadFailed: string
13
19
  }
14
-
15
- export interface KindyPageMargin {
16
- top?: number
17
- bottom?: number
18
- left?: number
19
- right?: number
20
+ export const DEFAULT_LIBRARY_UI: Readonly<KindyLibraryUiOptions>
21
+ export const DEFAULT_LIBRARY_THEME: Readonly<Record<string, string>>
22
+ export const VI_LIBRARY_MESSAGES: Readonly<KindyLibraryMessages>
23
+ export const EN_LIBRARY_MESSAGES: Readonly<KindyLibraryMessages>
24
+ export function resolveLibraryUi(options?: Partial<KindyLibraryUiOptions>): KindyLibraryUiOptions
25
+ export function resolveLibraryMessages(locale?: string, overrides?: Partial<KindyLibraryMessages>): KindyLibraryMessages
26
+ export function createLibraryTheme(overrides?: Record<string, string>): Record<string, string>
27
+
28
+ export interface KindyContractToolbarOptions { showSaveLabel: boolean; defaultMode: 'classic' | 'ribbon'; allowModeSwitch: boolean; menus: Array<'base' | 'insert' | 'table' | 'tools' | 'page' | 'view' | 'export'> }
29
+ export interface KindyContractStatusbarOptions { showOutline: boolean; showSpellcheck: boolean; showShortcuts: boolean; showReset: boolean; showLayout: boolean; showPageStatus: boolean; showWordCount: boolean; showBranding: boolean; showFullscreen: boolean; showPreview: boolean; showZoom: boolean; showLocale: boolean }
30
+ export interface KindyContractEditorOptions { editorKey: string; toolbar: KindyContractToolbarOptions; statusbar: KindyContractStatusbarOptions; page: { layouts: ['page']; showRuler: boolean }; disableExtensions: string[] }
31
+ export const CONTRACT_EDITOR_OPTIONS: Readonly<KindyContractEditorOptions>
32
+ export function createContractEditorOptions(overrides?: Record<string, unknown>): KindyContractEditorOptions & Record<string, unknown>
33
+
34
+ export interface DocumentCapabilities { view?: boolean; edit?: boolean; comment?: boolean; review?: boolean; download?: boolean; restore?: boolean; manage?: boolean }
35
+ export interface DocumentSummary { id: string; title: string; fileName: string; folderId?: string | null; tags?: string[]; currentVersionId?: string; currentRevisionId?: string; isTemplate?: boolean; updatedAt: string; createdAt?: string; capabilities?: DocumentCapabilities }
36
+ export interface OriginalDocxSource { artifactId: string; revisionId: string; format: 'original-docx'; fileName: string; compatibilityReport?: CompatibilityReport }
37
+ export interface DocumentRecord extends DocumentSummary { description?: string; metadata?: Record<string, unknown>; originalSource?: OriginalDocxSource }
38
+ export interface DocumentVersion { id: string; documentId: string; number: number; revisionId: string; reason: SaveReason | 'create' | 'import' | 'restore' | 'template'; createdAt: string; createdBy?: { id?: string; name?: string }; label?: string }
39
+ export interface DocumentSnapshot { document: DocumentRecord; state: KindyDocumentState; revisionId: string; version?: DocumentVersion }
40
+ export interface DocumentArtifact { id: string; documentId: string; versionId?: string; format: ArtifactFormat; fileName: string; mimeType: string; size?: number; url?: string; blob?: Blob; createdAt: string }
41
+ export interface Folder { id: string; name: string; parentId?: string | null }
42
+ export interface Page<T> { items: T[]; total: number; page: number; pageSize: number }
43
+ export interface DocumentQuery { search?: string; folderId?: string | null; tags?: string[]; page?: number; pageSize?: number; templatesOnly?: boolean }
44
+ export interface CreateDocumentInput { title: string; fileName?: string; folderId?: string | null; tags?: string[]; templateId?: string; state?: KindyDocumentState; metadata?: Record<string, unknown> }
45
+ export interface CompatibilityIssue { code: string; feature: string; message: string; severity: 'info' | 'warning' | 'error'; location?: string }
46
+ export interface CompatibilityReport { profile: 'kindy-docx-v2.0' | 'kindy-docx-v2.1' | 'kindy-docx-v2.2'; supported: boolean; issues: CompatibilityIssue[] }
47
+ export interface ImportDocumentInput extends CreateDocumentInput { file: File | Blob; state: KindyDocumentState; compatibilityReport?: CompatibilityReport }
48
+ export interface SaveStateInput { state: KindyDocumentState; baseRevisionId: string; reason: SaveReason; clientMutationId: string }
49
+ export interface SaveResult { revisionId: string; savedAt: string; version?: DocumentVersion }
50
+ export interface StoreArtifactInput { format: ArtifactFormat; blob: Blob; fileName: string; versionId?: string; compatibilityReport?: CompatibilityReport }
51
+
52
+ export interface DocumentApiAdapter {
53
+ listDocuments(query?: DocumentQuery, signal?: AbortSignal): Promise<Page<DocumentSummary>>
54
+ getDocument(documentId: string, signal?: AbortSignal): Promise<DocumentRecord>
55
+ createDocument(input: CreateDocumentInput, signal?: AbortSignal): Promise<DocumentRecord>
56
+ importDocument(input: ImportDocumentInput, signal?: AbortSignal): Promise<DocumentRecord>
57
+ updateDocument(documentId: string, patch: Partial<DocumentRecord>, signal?: AbortSignal): Promise<DocumentRecord>
58
+ loadState(documentId: string, versionId?: string, signal?: AbortSignal): Promise<DocumentSnapshot>
59
+ saveState(documentId: string, input: SaveStateInput, signal?: AbortSignal): Promise<SaveResult>
60
+ listVersions(documentId: string, query?: DocumentQuery, signal?: AbortSignal): Promise<Page<DocumentVersion>>
61
+ restoreVersion(documentId: string, versionId: string, signal?: AbortSignal): Promise<DocumentSnapshot>
62
+ listFolders(query?: DocumentQuery, signal?: AbortSignal): Promise<Folder[]>
63
+ listTemplates(query?: DocumentQuery, signal?: AbortSignal): Promise<Page<DocumentSummary>>
64
+ storeArtifact(documentId: string, input: StoreArtifactInput, signal?: AbortSignal): Promise<DocumentArtifact>
65
+ getArtifact(documentId: string, artifactId: string, signal?: AbortSignal): Promise<DocumentArtifact>
20
66
  }
21
67
 
22
- export interface KindyPageSize {
23
- label: string
24
- width: number
25
- height: number
26
- default?: boolean
27
- }
28
-
29
- export interface KindyWatermark {
30
- text?: string
31
- alpha?: number
32
- type?: 'compact' | 'spacious'
33
- fontColor?: string
34
- fontSize?: number
35
- fontFamily?: string | null
36
- fontWeight?: 'normal' | 'bold' | 'bolder'
37
- }
38
-
39
- export interface KindyAutoSave {
40
- enabled: boolean
41
- interval?: number
42
- }
43
-
44
- export interface KindyDocumentOptions {
45
- title?: string
46
- content?: string
47
- readOnly?: boolean
48
- enableMarkdown?: boolean
49
- autoSave?: KindyAutoSave
50
- }
51
-
52
- export interface KindyPageOptions {
53
- layouts?: string[]
54
- defaultBackground?: string
55
- defaultMargin?: KindyPageMargin
56
- defaultOrientation?: 'portrait' | 'landscape'
57
- watermark?: KindyWatermark
58
- showBreakMarks?: boolean
59
- showBookmark?: boolean
60
- showLineNumber?: boolean
61
- showToc?: boolean
62
- size?: KindyPageSize
63
- pageSizes?: KindyPageSize[]
68
+ export class DocumentLibraryError extends Error { readonly code: DocumentErrorCode; readonly status?: number; readonly details?: unknown }
69
+ export const DOCUMENT_ERROR_CODES: readonly DocumentErrorCode[]
70
+ export const KINDY_DOCUMENT_SCHEMA_VERSION: '2.0'
71
+ export const DEFAULT_PAGE_STATE: KindyPageState
72
+ export function createEmptyDocumentState(overrides?: Partial<KindyDocumentState>): KindyDocumentState
73
+ export function migrateDocumentState(input: unknown): KindyDocumentState
74
+ export function createEditorDocumentState(input: { content: JSONContent; page?: Record<string, unknown>; assets?: AssetReference[] }): KindyDocumentState
75
+
76
+ export interface DocumentLibraryClientOptions { adapter: DocumentApiAdapter; autosave?: { enabled?: boolean; delay?: number }; codecs?: Record<string, unknown>; engine?: EditorEngineAdapter; locale?: string; theme?: Record<string, string> }
77
+ export class DocumentLibraryClient {
78
+ constructor(options: DocumentLibraryClientOptions)
79
+ readonly adapter: DocumentApiAdapter
80
+ readonly codecs?: Record<string, unknown>
81
+ readonly engine?: EditorEngineAdapter
82
+ readonly locale: string
83
+ readonly theme: Record<string, string>
84
+ readonly current: DocumentSnapshot | null
85
+ readonly hasUnsavedChanges: boolean
86
+ readonly hasConflict: boolean
87
+ on(event: string, listener: (payload: any) => void): () => boolean
88
+ listDocuments(query?: DocumentQuery, signal?: AbortSignal): Promise<Page<DocumentSummary>>
89
+ open(documentId: string, versionId?: string, signal?: AbortSignal): Promise<DocumentSnapshot>
90
+ create(input: CreateDocumentInput, signal?: AbortSignal): Promise<DocumentSnapshot>
91
+ import(input: ImportDocumentInput, signal?: AbortSignal): Promise<DocumentSnapshot>
92
+ updateState(state: KindyDocumentState): DocumentSnapshot
93
+ save(reason?: SaveReason): Promise<SaveResult>
94
+ restore(versionId: string, signal?: AbortSignal): Promise<DocumentSnapshot>
95
+ storeArtifact(input: StoreArtifactInput, signal?: AbortSignal): Promise<DocumentArtifact>
96
+ resolveConflict(snapshot: DocumentSnapshot): void
97
+ destroy(): void
64
98
  }
65
-
66
- export interface KindyEditorOptions {
67
- editorKey?: string
99
+ export function createDocumentLibrary(options: DocumentLibraryClientOptions): DocumentLibraryClient
100
+
101
+ export type DocumentTransport = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>
102
+ export class RestDocumentAdapter implements DocumentApiAdapter { constructor(options: { baseUrl: string; transport?: DocumentTransport }) }
103
+ export function createRestDocumentAdapter(options: { baseUrl: string; transport?: DocumentTransport }): RestDocumentAdapter
104
+ export class MemoryDocumentAdapter implements DocumentApiAdapter { constructor(seed?: { documents?: DocumentSnapshot[]; folders?: Folder[] }) }
105
+ export function createMemoryDocumentAdapter(seed?: { documents?: DocumentSnapshot[]; folders?: Folder[] }): MemoryDocumentAdapter
106
+ export function createLegacyCallbackAdapter(options?: { onSave?: (payload: { json: JSONContent; state: KindyDocumentState }, page: KindyPageState) => Promise<unknown>; onFileUpload?: (file: File | Blob) => Promise<unknown> }): DocumentApiAdapter
107
+
108
+ export const DOCX_MIME: string
109
+ export const KINDY_DOCX_PROFILE: 'kindy-docx-v2.0'
110
+ export interface DocxImportLimits { maxCompressedBytes: number; maxUncompressedBytes: number; maxEntries: number; maxCompressionRatio: number; maxMediaBytes: number; maxSingleMediaBytes: number }
111
+ export const DEFAULT_DOCX_IMPORT_LIMITS: DocxImportLimits
112
+ export interface DocxImportResult { state: KindyDocumentState; report: CompatibilityReport; messages: Array<{ type: string; message: string }> }
113
+ export interface DocxExportResult { blob: Blob; report: CompatibilityReport }
114
+ export function inspectDocx(file: Blob, limits?: Partial<DocxImportLimits>, profile?: CompatibilityReport['profile']): Promise<{ report: CompatibilityReport; documentXml: string }>
115
+ export function extractDocxPackage(file: Blob, limits?: Partial<DocxImportLimits>): Promise<{ contentTypes: string; documentXml: string; relationshipsXml?: string; numberingXml?: string; media: Record<string, Uint8Array> }>
116
+ export function ooxmlToDocumentState(parts: Awaited<ReturnType<typeof extractDocxPackage>>): KindyDocumentState
117
+ export function importDocx(file: Blob, options?: { mode?: 'strict' | 'best-effort'; profile?: CompatibilityReport['profile']; limits?: Partial<DocxImportLimits> }): Promise<DocxImportResult>
118
+ export function importDocxInWorker(file: Blob, options?: { mode?: 'strict' | 'best-effort'; profile?: CompatibilityReport['profile']; signal?: AbortSignal; limits?: Partial<DocxImportLimits> }): Promise<DocxImportResult>
119
+ export function exportDocx(state: KindyDocumentState, options?: { mode?: 'strict' | 'best-effort'; profile?: CompatibilityReport['profile'] }): Promise<DocxExportResult>
120
+ export function createDocxCodec(): { import: typeof importDocx; export: typeof exportDocx; inspect: typeof inspectDocx }
121
+
122
+ export interface CollaborationSession { disconnect(): void; getUsers?(): unknown[] }
123
+ export interface CollaborationAdapter { connect(context: { documentId: string; revisionId: string; user?: { id?: string; name?: string; color?: string }; editor: unknown }): Promise<CollaborationSession> | CollaborationSession }
124
+ export class YjsCollaborationAdapter implements CollaborationAdapter { constructor(options: { providerFactory(context: { documentId: string; user?: { id?: string; name?: string; color?: string }; editor: unknown }): unknown | Promise<unknown> }) }
125
+ export function createYjsCollaborationAdapter(options: ConstructorParameters<typeof YjsCollaborationAdapter>[0]): YjsCollaborationAdapter
126
+
127
+ export interface KindyEditorOptions { editorKey?: string; locale?: 'vi-VN' | 'en-US' | 'zh-CN' | 'it-IT' | 'ru-RU'; theme?: 'light' | 'dark' | 'auto'; skin?: 'default' | 'modern'; height?: string; toolbar?: Partial<KindyContractToolbarOptions>; statusbar?: Partial<KindyContractStatusbarOptions>; page?: Record<string, unknown>; document?: { title?: string; content?: string | JSONContent; assets?: AssetReference[]; readOnly?: boolean; autoSave?: { enabled: boolean; interval?: number } }; translations?: Record<string, Record<string, string>>; disableExtensions?: string[]; [key: string]: unknown }
128
+ export interface KindyDocumentLibraryProps {
129
+ adapter?: DocumentApiAdapter
130
+ client?: DocumentLibraryClient
131
+ autosave?: { enabled?: boolean; delay?: number }
132
+ stateSyncDelay?: number
133
+ docxProfile?: CompatibilityReport['profile']
68
134
  locale?: string
69
- theme?: 'light' | 'dark' | 'auto'
70
- skin?: 'default' | 'modern'
71
- height?: string
72
- toolbar?: KindyToolbarOptions
73
- page?: KindyPageOptions
74
- document?: KindyDocumentOptions
75
- translations?: Record<string, Record<string, string>>
76
- fullscreenZIndex?: number
77
- dicts?: {
78
- pageSizes?: KindyPageSize[]
79
- [key: string]: unknown
80
- }
81
- }
82
-
83
- // ─────────────────────────────────────────────────
84
- // Comment Types
85
- // ─────────────────────────────────────────────────
86
-
87
- export interface KindyCommentReply {
88
- id: string
89
- user: string
90
- text: string
91
- createdAt: number
92
- }
93
-
94
- export interface KindyComment {
95
- id: string
96
- user: string
97
- color?: string
98
- text?: string
99
- resolved?: boolean
100
- createdAt: number
101
- replies?: KindyCommentReply[]
135
+ theme?: Record<string, string>
136
+ messages?: Partial<KindyLibraryMessages>
137
+ ui?: Partial<KindyLibraryUiOptions>
138
+ editorOptions?: Record<string, unknown>
139
+ collaboration?: CollaborationAdapter
140
+ user?: { id?: string; name?: string; color?: string }
141
+ showVersions?: boolean
142
+ confirmCompatibility?: (report: CompatibilityReport) => boolean | Promise<boolean>
102
143
  }
103
-
104
- // ─────────────────────────────────────────────────
105
- // Editor Instance Methods (exposed via ref)
106
- // ─────────────────────────────────────────────────
107
-
108
- export interface KindyEditorInstance {
109
- setContent(content: string | object, options?: object): void
110
- insertContent(content: string | object, options?: object): void
111
- getContent(type?: 'html' | 'json' | 'text'): string | object
112
- exportPdf(filename?: string): Promise<void>
113
- exportImage(type?: 'png' | 'jpeg', filename?: string): Promise<void>
144
+ export interface KindyEditorHandle {
145
+ setContent(content: string | JSONContent, options?: object): void
146
+ getContent(type?: 'html' | 'json' | 'text'): string | JSONContent
147
+ getJSON(): JSONContent
148
+ getState(): KindyDocumentState
149
+ getPage(): Record<string, unknown>
150
+ preparePrint(): Promise<{ html: string; page: Record<string, unknown> }>
114
151
  print(): void
115
- setOptions(options: Partial<KindyEditorOptions>): void
116
- setToolbar(params: { mode?: 'classic' | 'ribbon'; show?: boolean }): void
117
- setLayout(layout: string): void
118
- setPage(params: Partial<KindyPageOptions>): void
119
- setWatermark(params: KindyWatermark): void
120
- setDocument(params: Partial<KindyDocumentOptions>): void
121
- setTheme(theme: 'light' | 'dark' | 'auto'): void
122
- setSkin(skin: 'default' | 'modern'): void
123
152
  saveContent(): Promise<void>
153
+ markContentSaved(): void
154
+ setReadOnly(readOnly?: boolean): void
124
155
  focus(): void
125
156
  destroy(): void
126
- startTypewriter(content: object, options?: object): void
127
- stopTypewriter(): void
128
- }
129
-
130
- // ─────────────────────────────────────────────────
131
- // Main Component
132
- // ─────────────────────────────────────────────────
133
-
134
- export declare const KindyEditor: DefineComponent<
135
- KindyEditorOptions,
136
- KindyEditorInstance,
137
- object
138
- >
139
-
140
- // ─────────────────────────────────────────────────
141
- // Helper Components
142
- // ─────────────────────────────────────────────────
143
-
144
- export declare const KindyMenuButton: Component
145
- export declare const KindyDialog: Component
146
- export declare const KindyTooltip: Component
147
-
148
- // ─────────────────────────────────────────────────
149
- // Mount Helper (Pure JS / React / Next.js / Angular / Svelte)
150
- // ─────────────────────────────────────────────────
151
-
152
- export declare const mountKindyEditor: (
153
- container: HTMLElement | string,
154
- props?: Partial<KindyEditorOptions>
155
- ) => {
156
- unmount: () => void
157
- app: App
158
157
  }
159
-
160
- // ─────────────────────────────────────────────────
161
- // Plugin
162
- // ─────────────────────────────────────────────────
163
-
164
- export declare const useKindyEditor: {
165
- install(app: App, options?: Partial<KindyEditorOptions>): void
158
+ export interface KindyDocumentLibraryHandle {
159
+ importDocument(): void
160
+ downloadDocx(): Promise<void>
161
+ print(): void
166
162
  }
167
-
168
- // ─────────────────────────────────────────────────
169
- // Default export
170
- // ─────────────────────────────────────────────────
163
+ export const KindyEditor: DefineComponent<KindyEditorOptions, KindyEditorHandle, object>
164
+ export const KindyDocumentLibrary: DefineComponent<KindyDocumentLibraryProps, KindyDocumentLibraryHandle, object>
165
+ export const KindyDocumentLibraryShell: Component
166
+ export const KindyDocumentExplorer: Component
167
+ export const KindyVersionPanel: Component
168
+ export const KindyMenuButton: Component
169
+ export const KindyDialog: Component
170
+ export const KindyTooltip: Component
171
+ export function mountKindyEditor(container: HTMLElement | string, props?: Partial<KindyEditorOptions>): { unmount(): void; app: App; instance: KindyEditorHandle }
172
+ export const useKindyEditor: { install(app: App, options?: Partial<KindyEditorOptions>): void }
173
+
174
+ export interface EditorEngineHandle { load(state: KindyDocumentState): void | Promise<void>; getState(): KindyDocumentState; setReadOnly(readOnly: boolean): void; focus(): void; destroy(): void; onChange(listener: (state: KindyDocumentState) => void): () => void }
175
+ export interface EditorEngineAdapter { readonly id: string; mount(container: HTMLElement, options?: Record<string, unknown>): EditorEngineHandle | Promise<EditorEngineHandle> }
176
+ export class TiptapEngineAdapter implements EditorEngineAdapter { readonly id: 'tiptap'; mount(container: HTMLElement, options?: Record<string, unknown>): EditorEngineHandle }
177
+ export function createTiptapEngineAdapter(): TiptapEngineAdapter
178
+
179
+ export function createMockDocumentTransport(options?: { adapter?: MemoryDocumentAdapter; baseUrl?: string; latency?: number }): { adapter: MemoryDocumentAdapter; transport: DocumentTransport; baseUrl: string }
171
180
 
172
181
  export default KindyEditor
173
-
174
- // ─────────────────────────────────────────────────
175
- // Vue Global Component Types
176
- // ─────────────────────────────────────────────────
177
-
178
- declare module '@vue/runtime-core' {
179
- export interface GlobalComponents {
180
- KindyEditor: typeof KindyEditor
181
- KindyMenuButton: typeof KindyMenuButton
182
- KindyDialog: typeof KindyDialog
183
- KindyTooltip: typeof KindyTooltip
184
- }
185
- }