# ClassicWordProofing

Adds product UI to Proofing. Its direct default provider is null; ClassicWordKit may supply a preset-level provider.

Adds product UI to Proofing. Its direct default provider is null; ClassicWordKit may supply a preset-level provider.

`@quirekit/classic-docx` · **Commercial**

## Editor compatibility
Layer：**Classic product integration**
| Editor | Status | Assembly and boundaries |
| --- | --- | --- |
| Classic | Supported | [createClassicWordPreset](/en/plugins/reference/create-classic-word-preset) — Use createClassicWordPreset for Word models, layout and product integration. Controls, flags, host services and file support follow this page. Full comment, revision and content-control authoring UI additionally requires Pro. |
| Block | Unsupported | Block does not consume Classic product contributions, plugins or paginated assembly. Use shared capabilities and Block adapters instead of copying this entry's Classic configuration. |

“Supported” means the product assembly above exists; interaction, host services and file formats retain their own conditions. See [status and integration rules](/en/plugins/compatibility). Licensing is shown separately.

## Installation

The current `@quirekit/classic-docx` manifest is private. This site uses workspace source; external projects need the relevant distribution package rather than assuming public npm availability.

This entry is a commercial component. Obtain distribution access and authorization first; installation commands require that distribution source.

Use the [Word preset](/en/plugins/reference/create-classic-word-preset). Individual adapters support custom assembly or replacement without duplicate names.

```ts
import { ClassicWordProofing } from '@quirekit/classic-docx'
```

Use compatible versions available from your distribution source. This site uses the Alpha workspace. License labels come from package metadata; see [support and licensing](/en/support).

## Integration by editor

These snippets use an existing host element named element. The host owns container sizing and persistence; call instance.destroy() on teardown. Avoid duplicating preset capabilities and supply required host ports before installation.

### Classic

Use createClassicWordPreset for Word models, layout and product integration. Controls, flags, host services and file support follow this page. Full comment, revision and content-control authoring UI additionally requires Pro.

[createClassicWordPreset](/en/plugins/reference/create-classic-word-preset)

```ts
import { createClassicEditor } from '@quirekit/classic-editor'
import '@quirekit/classic-editor/styles.css'
import { createClassicWordDefaultDocument, createClassicWordPreset } from '@quirekit/classic-docx'
import '@quirekit/classic-docx/styles.css'

const instance = createClassicEditor({
  element,
  preset: createClassicWordPreset(),
  document: createClassicWordDefaultDocument(),
})
```

### Block

Block does not consume Classic product contributions, plugins or paginated assembly. Use shared capabilities and Block adapters instead of copying this entry's Classic configuration.

## Configuration

These are extension-level defaults. Presets can override them; they are distinct from current document attributes. See [configuration](/en/plugins/configuration).

### ribbon

Whether the Review tab shows the Proofing group; requires the Classic Word ribbon.

Type：`boolean`

Default：`false`

### enabled

Whether checking starts enabled.

Type：`boolean`

Default：`true`

### provider

Engine; checking stays disabled while null.

Type：`ProofingProvider | null`

Default：`null`

### policy

Document-model knowledge; defaults treat every textblock as body text.

Type：`ProofingDocumentPolicy | null`

Default：`createClassicWordProofingPolicy()`

### defaultLanguage

Language used when a text has none.

Type：`string | null`

Default：`"en-US"`

### debounceMs

Quiet period after an edit before checking.

Type：`number`

Default：`400`

### maxWaitMs

Longest delay while edits keep arriving.

Type：`number`

Default：`2000`

### timeoutMs

Longest time one provider request may run.

Type：`number`

Default：`10000`

### maxConcurrentRequests

Requests running at once.

Type：`number`

Default：`2`

### maxSegmentsPerBatch

Segments per request.

Type：`number`

Default：`40`

### maxCharactersPerBatch

UTF-16 characters per request.

Type：`number`

Default：`8000`

### maxSuggestions

Suggestions per finding.

Type：`number`

Default：`5`

### maxIssues

Findings kept for the whole document before reporting `limited`.

Type：`number`

Default：`2000`

### dictionaryStore

Persistent user dictionary, or null for session-only ignores.

Type：`ProofingDictionaryStore | null`

Default：`null`

### appearance

Underline colors.

Type：`ProofingAppearance`

Default：`{ spelling: "#e5484d", grammar: "#3e63dd", style: "#8e4ec6" }`

### onError

Receives provider failures, timeouts, and invalid results.

Type：`((error: ProofingError) => void) | null`

Default：`null`

### resolveVisibleRange

Resolves the visible document interval checked right after the caret's block.

Type：`((editor: QuireEditor) => ProofingRange | null) | null`

Default：`resolveDefaultProofingVisibleRange`

## Commands and runtime

These commands are supplied directly by this extension. Availability depends on the installed schema, selection and protection policy; query editor.can() first.

| Command | Parameter signature |
| --- | --- |
| `setProofingEnabled` | `setProofingEnabled(enabled: boolean)` |
| `recheckProofing` | `recheckProofing()` |
| `replaceProofingIssue` | `replaceProofingIssue(issueId: string, replacement: string)` |
| `ignoreProofingIssue` | `ignoreProofingIssue(issueId: string)` |
| `ignoreProofingWord` | `ignoreProofingWord(word: string)` |
| `addProofingWord` | `addProofingWord(word: string)` |

These are parameter signatures. See [commands and controls](/en/build/commands) to connect UI while retaining one transaction/history authority.

## Next steps

Return to [all plugins](/en/plugins), or read [configuration](/en/plugins/configuration) to distinguish options, attributes and commands.

Continue with [Classic quick start](/en/classic/quick-start) and [configuration/lifetime](/en/classic/configuration). See [product plugin development](/en/build/product-plugin) for your own UI and services.
