flutter_quill_kit_clipboard 0.1.1 copy "flutter_quill_kit_clipboard: ^0.1.1" to clipboard
flutter_quill_kit_clipboard: ^0.1.1 copied to clipboard

Rich clipboard support for flutter_quill_kit: paste HTML from other apps as formatted content, copy selections as HTML, and paste images.

flutter_quill_kit_clipboard #

Rich clipboard support for flutter_quill_kit: paste HTML from other apps as formatted content, copy selections as HTML, and paste images — powered by quill_native_bridge.

Installation #

flutter pub add flutter_quill_kit_clipboard

Requires flutter_quill_kit. See the platform support table below.

Quick start #

import 'package:flutter_quill_kit/flutter_quill_kit.dart';
import 'package:flutter_quill_kit_clipboard/flutter_quill_kit_clipboard.dart';

final controller = QuillKitController(
  extensions: [
    ...QuillKitExtensions.standard(),
    ClipboardExtension(),
  ],
);

That's it: ClipboardExtension registers a RichClipboardService on the controller's EditorScope, replacing the core's plain-text-only service for that editor instance only.

The HTML ↔ Delta converters are also usable standalone:

final delta = const HtmlToDelta().convert('<p>Hello <b>world</b></p>');
final html = const DeltaToHtml().convert(delta);

Platform support #

From the quill_native_bridge feature matrix:

Feature iOS Android macOS Windows Linux Web
Paste HTML
Copy as HTML
Paste image

Where a feature is unavailable the service degrades silently to plain text — no configuration or platform checks needed on your side.

Note on web #

Web support relies on the browser's asynchronous Clipboard API. Browsers without it (or with it restricted, notably Firefox and Safari for some operations) fall back to plain text; a full fallback would require handling the DOM paste/copy events, which is outside this package's scope. Reading the clipboard may also prompt the user for permission.

What gets converted #

HTML → Delta: bold/italic/underline/strike, inline code, sub/superscript, links, text and background colors (including rgb() styles), headers 1–6, paragraphs and <br>, nested ordered/bullet lists (depth → indent), checkbox task lists, blockquotes, <pre> code blocks, images (keeping width/height), text alignment, and RTL direction. Unknown tags — Word's o:p, Google Docs' wrapper tags — are descended into transparently, and whitespace is normalized per HTML rules.

Delta → HTML: the same feature set, emitted as semantic tags (strong, em, u, s, code, a, h1h6, ul/ol/li with checked items as disabled checkboxes, blockquote, pre, img, p), as a fragment — no <html> wrapper — which is what clipboards expect.

Testing your integration #

RichClipboardService takes an injectable ClipboardGateway, so tests can fake the platform clipboard, and ClipboardExtension(service: ...) accepts a custom service outright:

final controller = QuillKitController(
  extensions: [ClipboardExtension(service: myFakeService)],
);

License #

MIT — see LICENSE.

0
likes
160
points
145
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Rich clipboard support for flutter_quill_kit: paste HTML from other apps as formatted content, copy selections as HTML, and paste images.

Repository (GitHub)
View/report issues
Contributing

Topics

#editor #rich-text #quill #clipboard

License

MIT (license)

Dependencies

flutter, flutter_quill_kit, html, quill_native_bridge

More

Packages that depend on flutter_quill_kit_clipboard