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.
- package/CAPABILITIES.md +39 -0
- package/CHANGELOG.md +56 -0
- package/GUIDE.md +190 -0
- package/MIGRATION.md +46 -0
- package/README.md +198 -253
- package/README.zh-CN.md +41 -192
- package/dist/assets/docx.worker-9ZRUe-2j.js +243 -0
- package/dist/kindy-core.cjs +786 -0
- package/dist/kindy-core.js +738 -0
- package/dist/kindy-editor.cjs +421 -76
- package/dist/kindy-editor.css +1 -1
- package/dist/kindy-editor.d.ts +165 -169
- package/dist/kindy-editor.js +55210 -30323
- package/dist/types/core/adapters/legacy.d.ts +9 -0
- package/dist/types/core/adapters/memory.d.ts +87 -0
- package/dist/types/core/adapters/rest.d.ts +27 -0
- package/dist/types/core/client.d.ts +47 -0
- package/dist/types/core/collaboration.d.ts +30 -0
- package/dist/types/core/editor-state.d.ts +47 -0
- package/dist/types/core/emitter.d.ts +19 -0
- package/dist/types/core/errors.d.ts +13 -0
- package/dist/types/core/index.d.ts +10 -0
- package/dist/types/core/state.d.ts +9 -0
- package/dist/types/core/types.d.ts +235 -0
- package/docs/README.md +15 -0
- package/docs/api-reference.md +510 -0
- package/docs/completion-roadmap.md +62 -0
- package/docs/getting-started.md +180 -0
- package/docs/performance.md +149 -0
- package/docs/plugin-development.md +100 -0
- package/docs/ui-engine.md +242 -0
- package/openapi/document-api.yaml +267 -0
- package/package.json +59 -9
- package/dist/kindy-editor.iife.js +0 -148
package/dist/kindy-editor.d.ts
CHANGED
|
@@ -1,185 +1,181 @@
|
|
|
1
|
+
import type { JSONContent } from '@tiptap/core'
|
|
1
2
|
import type { App, Component, DefineComponent } from 'vue'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export interface
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
67
|
-
|
|
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?:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
}
|