diff --git a/.github/ISSUE_TEMPLATE/3_question.yml b/.github/ISSUE_TEMPLATE/3_question.yml
index 509ae635..f21caa90 100644
--- a/.github/ISSUE_TEMPLATE/3_question.yml
+++ b/.github/ISSUE_TEMPLATE/3_question.yml
@@ -6,7 +6,7 @@ body:
- type: markdown
attributes:
value: |
- Thank you for using Flutter Quill!
+ If you have any suggestions or questions, feel free to share them in the [Discussions](https://github.com/singerdmx/flutter-quill/discussions) section.
- type: checkboxes
attributes:
@@ -21,4 +21,4 @@ body:
placeholder: |
How do I save the images of Quill Editor?
validations:
- required: true
\ No newline at end of file
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 00000000..3ba13e0c
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1 @@
+blank_issues_enabled: false
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index dc9ad461..034fc634 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -74,25 +74,11 @@ jobs:
id: release_tag
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
- - name: 📑 Fetch release notes from Github API
- id: fetch-release-notes-request
- uses: fjogeleit/http-request-action@v1
- with:
- url: https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ steps.release_tag.outputs.tag }}
- method: 'GET'
- customHeaders: '{"Authorization": "${{ secrets.GITHUB_TOKEN }}"}'
- preventFailureOnNoResponse: 'false'
-
- - name: ⚠️ Validate release notes response
- run: |
- releaseNotesResponse="${{ fromJson(steps.fetch-release-notes-request.outputs.response) }}"
- if [[ -z "$releaseNotesResponse" || "$releaseNotesResponse" == "null" ]]; then
- echo "Error: Release notes response is empty."
- exit 1
- fi
+ - name: 📑 Fetch release notes from Github API and create a required file by the next step
+ run: dart ./scripts/create_version_content_from_github_release.dart "${{ github.repository }}" "${{ steps.release_tag.outputs.tag }}"
- name: 📝 Update version and CHANGELOG for all the packages
- run: dart ./scripts/update_package_version.dart ${{ steps.extract_version.outputs.VERSION }} '${{ fromJson(steps.fetch-release-notes-request.outputs.response).body }}'
+ run: dart ./scripts/update_package_version.dart ${{ steps.extract_version.outputs.VERSION }}
- name: 💾 Commit updated version and CHANGELOG
id: auto-commit-action
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0bdf2ede..0064e681 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,244 @@
All notable changes to this project will be documented in this file.
+## 9.5.2
+
+* Fix style settings by @AtlasAutocode in https://github.com/singerdmx/flutter-quill/pull/1962
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.5.1...v9.5.2
+
+## 9.5.1
+
+* feat(extensions): Youtube Video Player Support Mode by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1916
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.5.0...v9.5.1
+
+## 9.5.0
+
+* Partial support for table embed by @CatHood0 in https://github.com/singerdmx/flutter-quill/pull/1960
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.9...v9.5.0
+
+## 9.4.9
+
+* Upgrade photo_view to 0.15.0 for flutter_quill_extensions by @singerdmx in https://github.com/singerdmx/flutter-quill/pull/1958
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.8...v9.4.9
+
+## 9.4.8
+
+* Add support for html underline and videos by @CatHood0 in https://github.com/singerdmx/flutter-quill/pull/1955
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.7...v9.4.8
+
+## 9.4.7
+
+* fixed #1953 italic detection error by @CatHood0 in https://github.com/singerdmx/flutter-quill/pull/1954
+
+## New Contributors
+* @CatHood0 made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1954
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.6...v9.4.7
+
+## 9.4.6
+
+* fix: search dialog throw an exception due to missing FlutterQuillLocalizations.delegate in the editor by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1938
+* fix(editor): implement editor shortcut action for home and end keys to fix exception about unimplemented ScrollToDocumentBoundaryIntent by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1937
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.5...v9.4.6
+
+## 9.4.5
+
+* fix: color picker hex unfocus on web by @geronimol in https://github.com/singerdmx/flutter-quill/pull/1934
+
+## New Contributors
+* @geronimol made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1934
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.4...v9.4.5
+
+## 9.4.4
+
+* fix: Enabled link regex to be overridden by @JoepHeijnen in https://github.com/singerdmx/flutter-quill/pull/1931
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.3...v9.4.4
+
+## 9.4.3
+
+* Fix: setState() called after dispose(): QuillToolbarClipboardButtonState #1895 by @windows7lake in https://github.com/singerdmx/flutter-quill/pull/1926
+
+## New Contributors
+* @windows7lake made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1926
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.2...v9.4.3
+
+## 9.4.2
+
+* Respect autofocus, closes #1923 by @Guillergood in https://github.com/singerdmx/flutter-quill/pull/1924
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.1...v9.4.2
+
+## 9.4.1
+
+* replace base64 regex string by @salba360496 in https://github.com/singerdmx/flutter-quill/pull/1919
+
+## New Contributors
+* @salba360496 made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1919
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.0...v9.4.1
+
+## 9.4.0
+
+This release can be used without changing anything, although it can break the behavior a little, we provided a way to use the old behavior in `9.3.x`
+
+- Thanks to @Alspb, the search bar/dialog has been reworked for improved UI that fits **Material 3** look and feel, the search happens on the fly, and other minor changes, if you want the old search bar, you can restore it with one line if you're using `QuillSimpleToolbar`:
+ ```dart
+ QuillToolbar.simple(
+ configurations: QuillSimpleToolbarConfigurations(
+ searchButtonType: SearchButtonType.legacy,
+ ),
+ )
+ ```
+ While the changes are mostly to the `QuillToolbarSearchDialog` and it seems this should be `searchDialogType`, we provided the old button with the old dialog in case we update the button in the future.
+
+ If you're using `QuillToolbarSearchButton` in a custom Toolbar, you don't need anything to get the new button. if you want the old button, use the `QuillToolbarLegacySearchButton` widget
+
+ Consider using the improved button with the improved dialog as the legacy button might removed in future releases (for now, it's not deprecated)
+
+
+ Before
+
+ 
+
+
+
+
+
+ Improved
+
+ 
+
+
+
+ For the detailed changes, see #1904
+
+- Korean translations by @leegh519 in https://github.com/singerdmx/flutter-quill/pull/1911
+
+- The usage of `super_clipboard` plugin in `flutter_quill` has been moved to the `flutter_quill_extensions` package, this will restore the old behavior in `8.x.x` though it will break the `onImagePaste`, `onGifPaste` and rich text pasting from HTML or Markdown, most of those features are available in `super_clipboard` plugin except `onImagePaste` which was available as we were using [pasteboard](https://pub.dev/packages/pasteboard), Unfortunately, it's no longer supported on recent versions of Flutter, and some functionalities such as an image from Clipboard and Html paste are not supported on some platforms such as Android, your project will continue to work, calls of `onImagePaste` and `onGifPaste` will be ignored unless you include [flutter_quill_extensions](https://pub.dev/packages/flutter_quill_extensions) package in your project and call:
+
+ ```dart
+ FlutterQuillExtensions.useSuperClipboardPlugin();
+ ```
+ Before using any `flutter_quill` widgets, this will restore the old behavior in `9.x.x`
+
+ We initially wanted to publish `flutter_quill_super_clipboard` to allow:
+ - Using `super_clipboard` without `flutter_quill_extensions` packages and plugins
+ - Using `flutter_quill_extensions` with optional `super_clipboard`
+
+ To simplify the usage, we moved it to `flutter_quill_extensions`, let us know if you want any of the use cases above.
+
+ Overall `super_clipboard` is a Comprehensive clipboard plugin with a lot of features, the only thing that developers didn't want is Rust installation even though it's automated.
+
+ The main goal of `ClipboardService` is to make `super_clipboard` optional, you can use your own implementation, and create a class that implements `ClipboardService`, which you can get by:
+ ```dart
+ // ignore: implementation_imports
+ import 'package:flutter_quill/src/services/clipboard/clipboard_service.dart';
+ ```
+
+ Then you can call:
+ ```dart
+ // ignore: implementation_imports
+import 'package:flutter_quill/src/services/clipboard/clipboard_service_provider.dart';
+ ClipboardServiceProvider.setInstance(YourClipboardService());
+```
+
+ The interface could change at any time and will be updated internally for `flutter_quill` and `flutter_quill_extensions`, we didn't export those two classes by default to avoid breaking changes in case you use them as we might change them in the future.
+
+ If you use the above imports, you might get **breaking changes** in **non-breaking change releases**.
+
+- Subscript and Superscript should now work for all languages and characters
+
+ The previous implementation required the Apple 'SF-Pro-Display-Regular.otf' font which is only licensed/permitted for use on Apple devices.
+We have removed the Apple font from the example
+
+- Allow pasting Markdown and HTML file content from the system to the editor
+
+ Before `9.4.x` if you try to copy an HTML or Markdown file, and paste it into the editor, you will get the file name in the editor
+ Copying an HTML file, or HTML content from apps and websites is different than copying plain text.
+
+ This is why this change requires `super_clipboard` implementation as this is platform-dependent:
+ ```dart
+ FlutterQuillExtensions.useSuperClipboardPlugin();
+ ```
+ as mentioned above.
+
+ The following example for copying a Markdown file:
+
+
+ Markdown File Content
+
+ ```md
+
+ **Note**: This package supports converting from HTML back to Quill delta but it's experimental and used internally when pasting HTML content from the clipboard to the Quill Editor
+
+ You have two options:
+
+ 1. Using [quill_html_converter](./quill_html_converter/) to convert to HTML, the package can convert the Quill delta to HTML well
+ (it uses [vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html)), it is just a handy extension to do it more quickly
+ 1. Another option is to use
+ [vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html) to convert your document
+ to HTML.
+ This package has full support for all Quill operations—including images, videos, formulas,
+ tables, and mentions.
+ Conversion can be performed in vanilla Dart (i.e., server-side or CLI) or in Flutter.
+ It is a complete Dart part of the popular and mature [quill-delta-to-html](https://www.npmjs.com/package/quill-delta-to-html)
+ Typescript/Javascript package.
+ this package doesn't convert the HTML back to Quill Delta as far as we know
+
+ ```
+
+
+
+
+ Before
+
+ 
+
+
+
+
+ After
+
+ 
+
+
+
+ Markdown, and HTML converting from and to Delta are **currently far from perfect**, the current implementation could improved a lot
+ however **it will likely not work like expected**, due to differences between HTML and Delta, see this [comment](https://github.com/slab/quill/issues/1551#issuecomment-311458570) for more info.
+
+ 
+
+ For more details see #1915
+
+ Using or converting to HTML or Markdown is highly experimental and shouldn't be used for production applications.
+
+ We use it internally as it is more suitable for our specific use case., copying content from external websites and pasting it into the editor
+ previously breaks the styles, while the current implementation is not ready, it provides a better user experience and doesn't have many downsides.
+
+ Feel free to report any bugs or feature requests at [Issues](https://github.com/singerdmx/flutter-quill/issues) or drop any suggestions and questions at [Discussions](https://github.com/singerdmx/flutter-quill/discussions)
+
+## New Contributors
+* @leegh519 made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1911
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.21...v9.4.0
+
## 9.3.21
* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898
diff --git a/CHANGELOG_DATA.json b/CHANGELOG_DATA.json
index 38551658..4c7e1bde 100644
--- a/CHANGELOG_DATA.json
+++ b/CHANGELOG_DATA.json
@@ -1 +1 @@
-{"9.3.21":"* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.20...v9.3.21","9.3.20":"* Fix: Issue 1887 by @AtlasAutocode in https://github.com/singerdmx/flutter-quill/pull/1892\r\n* fix: toolbar style change will be invalid when inputting more than 2 characters at a time by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1890\r\n\r\n## New Contributors\r\n* @crasowas made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1890\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.19...v9.3.20","9.3.19":"* Fix reported issues by @AtlasAutocode in https://github.com/singerdmx/flutter-quill/pull/1886\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.18...v9.3.19","9.3.18":"* Fix: Undo/redo cursor position fixed by @Alspb in https://github.com/singerdmx/flutter-quill/pull/1885\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.17...v9.3.18","9.3.17":"* Update super_clipboard plugin to 0.8.15 to address [#1882](https://github.com/singerdmx/flutter-quill/issues/1882)\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.16...v9.3.17","9.3.16":"* Update `lint` dev package to 4.0.0\r\n* Require at least version 0.8.13 of the plugin\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.15...v9.3.16","9.3.15":"\r\n* Ci/automate updating the files by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1879\r\n* Updating outdated README.md and adding a few guidelines for CONTRIBUTING.md\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.14...v9.3.15","9.3.14":"* Chore/use original color picker package in [#1877](https://github.com/singerdmx/flutter-quill/pull/1877)","9.3.13":"* fix: `readOnlyMouseCursor` losing in construction function\n* Fix block multi-line selection style","9.3.12":"* Add `readOnlyMouseCursor` to config mouse cursor type","9.3.11":"* Fix typo in QuillHtmlConverter\n* Fix re-create checkbox","9.3.10":"* Support clipboard actions from the toolbar","9.3.9":"* fix: MD Parsing for multi space\n* fix: FontFamily and FontSize toolbars track the text selected in the editor\n* feat: Add checkBoxReadOnly property which can override readOnly for checkbox","9.3.8":"* fix: removed misleading parameters\n* fix: added missed translations for ru, es, de\n* added translations for Nepali Locale('ne', 'NP')","9.3.7":"* Fix for keyboard jumping when switching focus from a TextField\n* Toolbar button styling to reflect cursor position when running on desktops with keyboard to move care","9.3.6":"* Add SK and update CS locales [#1796](https://github.com/singerdmx/flutter-quill/pull/1796)\n* Fixes:\n * QuillIconTheme changes for FontFamily and FontSize buttons are not applied [#1797](https://github.com/singerdmx/flutter-quill/pull/1796)\n * Make the arrow_drop_down icons in the QuillToolbar the same size for all MenuAnchor buttons [#1799](https://github.com/singerdmx/flutter-quill/pull/1796)","9.3.5":"* Update the minimum version for the packages to support `device_info_plus` version 10.0.0 [#1783](https://github.com/singerdmx/flutter-quill/issues/1783)\n* Update the minimum version for `youtube_player_flutter` to new major version 9.0.0 in the `flutter_quill_extensions`","9.3.4":"* fix: multiline styling stuck/not working properly [#1782](https://github.com/singerdmx/flutter-quill/pull/1782)","9.3.3":"* Update `quill_html_converter` versions","9.3.2":"* Fix dispose of text painter [#1774](https://github.com/singerdmx/flutter-quill/pull/1774)","9.3.1":"* Require Flutter 3.19.0 as minimum version","9.3.0":"* **Breaking change**: `Document.fromHtml(html)` is now returns `Document` instead of `Delta`, use `DeltaX.fromHtml` to return `Delta`\n* Update old deprecated api from Flutter 3.19\n* Scribble scroll fix by @mtallenca in https://github.com/singerdmx/flutter-quill/pull/1745","9.2.14":"* feat: move cursor after inserting video/image\n* Apple pencil","9.2.13":"* Fix crash with inserting text from contextMenuButtonItems\n* Fix incorrect behaviour of context menu \n* fix: selection handles behaviour and unnessesary style assert\n* Update quill_fr.arb","9.2.12":"* Fix safari clipboard bug\n* Add the option to disable clipboard functionality","9.2.11":"* Fix a bug where it has problems with pasting text into the editor when the clipboard has styled text","9.2.10":"* Update example screenshots\n* Refactor `Container` to `QuillContainer` with backward compatibility\n* A workaround fix in history feature","9.2.9":"* Refactor the type of `Delta().toJson()` to be more clear type","9.2.8":"* feat: Export Container node as QuillContainer\n* fix web cursor position / height (don't use iOS logic)\n* Added Swedish translation","9.2.6":"* [fix selection.affinity always downstream after updateEditingValue](https://github.com/singerdmx/flutter-quill/pull/1682)\n* Bumb version of `super_clipboard`","9.2.5":"* Bumb version of `super_clipboard`","9.2.4":"* Use fixed version of intl","9.2.3":"* remove unncessary column in Flutter quill video embed block","9.2.2":"* Fix bug [#1627](https://github.com/singerdmx/flutter-quill/issues/1627)","9.2.1":"* Fix [bug](https://github.com/singerdmx/flutter-quill/issues/1119#issuecomment-1872605246) with font size button\n* Added ro RO translations\n* 📖 Update zh, zh_CN translations","9.2.0":"* Require minimum version `6.0.0` of `flutter_keyboard_visibility` to fix some build issues with Android Gradle Plugin 8.2.0\n* Add on image clicked in `flutter_quill_extensions` callback\n* Deprecate `globalIconSize` and `globalIconButtonFactor`, use `iconSize` and `iconButtonFactor` instead\n* Fix the `QuillToolbarSelectAlignmentButtons`","9.1.1":"* Require `super_clipboard` minimum version `0.8.1` to fix some bug with Linux build failure","9.1.1-dev":"* Fix bug [#1636](https://github.com/singerdmx/flutter-quill/issues/1636)\n* Fix a where you paste styled content (HTML) it always insert a new line at first even if the document is empty\n* Fix the font size button and migrate to `MenuAnchor`\n* The `defaultDisplayText` is no longer required in the font size and header dropdown buttons\n* Add pdf converter in a new package (`quill_pdf_converter`)","9.1.0":"* Fix the simple toolbar by add properties of `IconButton` and fix some buttons","9.1.0-dev.2":"* Fix the history buttons","9.1.0-dev.1":"* Bug fixes in the simple toolbar buttons","9.1.0-dev":"* **Breaking Change**: in the `QuillSimpleToolbar` Fix the `QuillIconTheme` by replacing all the properties with two properties of type `ButtonStyle`, use `IconButton.styleFrom()`","9.0.6":"* Fix bug in QuillToolbarSelectAlignmentButtons","9.0.5":"* You can now use most of the buttons without internal provider","9.0.4":"* Feature: [#1611](https://github.com/singerdmx/flutter-quill/issues/1611)\n* Export missing widgets","9.0.3":"* Flutter Quill Extensions:\n * Fix file image support for web image emebed builder","9.0.2":"* Remove unused properties in the `QuillToolbarSelectHeaderStyleDropdownButton`\n* Fix the `QuillSimpleToolbar` when `useMaterial3` is false, please upgrade to the latest version of flutter for better support","9.0.2-dev.3":"* Export `QuillSingleChildScrollView`","9.0.2-dev.2":"* Add the new translations for ru, uk arb files by [#1575](https://github.com/singerdmx/flutter-quill/pull/1575)\n* Add a new dropdown button by [#1575](https://github.com/singerdmx/flutter-quill/pull/1575)\n* Update the default style values by [#1575](https://github.com/singerdmx/flutter-quill/pull/1575)\n* Fix bug [#1562](https://github.com/singerdmx/flutter-quill/issues/1562)\n* Fix the second bug of [#1480](https://github.com/singerdmx/flutter-quill/issues/1480)","9.0.2-dev.1":"* Add configurations for the new dropdown `QuillToolbarSelectHeaderStyleButton`, you can use the orignal one or this\n* Fix the [issue](https://github.com/singerdmx/flutter-quill/issues/1119) when enter is pressed, all font settings is lost","9.0.2-dev":"* **Breaking change** Remove the spacer widget, removed the controller option for each button\n* Add `toolbarRunSpacing` property to the simple toolbar","9.0.1":"* Fix default icon size","9.0.0":"* This version is quite stable but it's not how we wanted to be, because the lack of time and there are not too many maintainers active, we decided to publish it, we might make a new breaking changes verion","9.0.1-dev.1":"* Flutter Quill Extensions:\n * Update `QuillImageUtilities` and fixining some bugs","9.0.1-dev":"* Test new GitHub workflows","9.0.0-dev-10":"* Fix a bug of the improved pasting HTML contents contents into the editor","9.0.0-dev-9":"* Improves the new logic of pasting HTML contents into the Editor\n* Update `README.md` and the doc\n* Dispose the `QuillToolbarSelectHeaderStyleButton` state listener in `dispose`\n* Upgrade the font family button to material 3\n* Rework the font family and font size functionalities to change the font once and type all over the editor","9.0.0-dev-8":"* Better support for pasting HTML contents from external websites to the editor\n* The experimental support of converting the HTML from `quill_html_converter` is now built-in in the `flutter_quill` and removed from there (Breaking change for `quill_html_converter`)","9.0.0-dev-7":"* Fix a bug in chaning the background/font color of ol/ul list\n* Flutter Quill Extensions:\n * Fix link bug in the video url\n * Fix patterns","9.0.0-dev-6":"* Move the `child` from `QuillToolbarConfigurations` into `QuillToolbar` directly\n* Bug fixes\n* Add the ability to change the background and font color of the ol/ul elements dots and numbers\n* Flutter Quill Extensions:\n * **Breaking Change**: The `imageProviderBuilder`is now providing the context and image url","9.0.0-dev-5":"* The `QuillToolbar` is now accepting only `child` with no configurations so you can customize everything you wants, the `QuillToolbar.simple()` or `QuillSimpleToolbar` implements a simple toolbar that is based on `QuillToolbar`, you are free to use it but it just an example and not standard\n* Flutter Quill Extensions:\n * Improve the camera button","9.0.0-dev-4":"* The options parameter in all of the buttons is no longer required which can be useful to create custom toolbar with minimal efforts\n* Toolbar buttons fixes in both `flutter_quill` and `flutter_quill_extensions`\n* The `QuillProvider` has been dropped and no longer used, the providers will be used only internally from now on and we will not using them as much as possible","9.0.0-dev-3":"* Breaking Changes:\n * Rename `QuillToolbar` to `QuillSimpleToolbar`\n * Rename `QuillBaseToolbar` to `QuillToolbar`\n * Replace `pasteboard` with `rich_cliboard`\n* Fix a bug in the example when inserting an image from url\n* Flutter Quill Extensions:\n * Add support for copying the image to the system cliboard","9.0.0-dev-2":"* An attemp to fix CI automated publishing","9.0.0-dev-1":"* An attemp to fix CI automated publishing","9.0.0-dev":"* **Major Breaking change**: The `QuillProvider` is now optional, the `controller` parameter has been moved to the `QuillEditor` and `QuillToolbar` once again.\n* Flutter Quill Extensions;\n * **Breaking Change**: Completly change the way how the source code structured to more basic and simple way, organize folders and file names, if you use the library\nfrom `flutter_quill_extensions.dart` then there is nothing you need to do, but if you are using any other import then you need to re-imports\nembed, this won't affect how quill js work\n * Improvemenets to the image embed\n * Add support for `margin` for web\n * Add untranslated strings to the `quill_en.arb`","8.6.4":"* The default value of `keyboardAppearance` for the iOS will be the one from the App/System theme mode instead of always using the `Brightness.light`\n* Fix typos in `README.md`","8.6.3":"* Update the minimum flutter version to `3.16.0`","8.6.2":"* Restore use of alternative QuillToolbarLinkStyleButton2 widget","8.6.1":"* Temporary revert style bug fix","8.6.0":"* **Breaking Change** Support [Flutter 3.16](https://medium.com/flutter/whats-new-in-flutter-3-16-dba6cb1015d1), please upgrade to the latest stable version of flutter to use this update\n* **Breaking Change**: Remove Deprecated Fields\n* **Breaking Change**: Extract the shared things between `QuillToolbarConfigurations` and `QuillBaseToolbarConfigurations`\n* **Breaking Change**: You no longer need to use `QuillToolbarProvider` when using custom toolbar buttons, the example has been updated\n* Bug fixes","8.5.5":"* Now when opening dialogs by `QuillToolbar` you will not get an exception when you don't use `FlutterQuillLocalizations.delegate` in your `WidgetsApp`, `MaterialApp`, or `CupertinoApp`. The fix is for the `QuillToolbarSearchButton`, `QuillToolbarLinkStyleButton`, and `QuillToolbarColorButton` buttons","8.5.4":"* The `mobileWidth`, `mobileHeight`, `mobileMargin`, and `mobileAlignment` is now deprecated in `flutter_quill`, they are now defined in `flutter_quill_extensions`\n* Deprecate `replaceStyleStringWithSize` function which is in `string.dart`\n* Deprecate `alignment`, and `margin` as they don't conform to official Quill JS","8.5.3":"* Update doc\n* Update `README.md` and `CHANGELOG.md`\n* Fix typos\n* Use `immutable` when possible\n* Update `.pubignore`","8.5.2":"* Updated `README.md`.\n* Feature: Added the ability to include a custom callback when the `QuillToolbarColorButton` is pressed.\n* The `QuillToolbar` now implements `PreferredSizeWidget`, enabling usage in the AppBar, similar to `QuillBaseToolbar`.","8.5.1":"* Updated `README.md`.","8.5.0":"* Migrated to `flutter_localizations` for translations.\n* Fixed: Translated all previously untranslated localizations.\n* Fixed: Added translations for missing items.\n* Fixed: Introduced default Chinese fallback translation.\n* Removed: Unused parameters `items` in `QuillToolbarFontFamilyButtonOptions` and `QuillToolbarFontSizeButtonOptions`.\n* Updated: Documentation.","8.4.4":"* Updated `.pubignore` to ignore unnecessary files and folders.","8.4.3":"* Updated `CHANGELOG.md`.","8.4.2":"* **Breaking change**: Configuration for `QuillRawEditor` has been moved to a separate class. Additionally, `readOnly` has been renamed to `isReadOnly`. If using `QuillEditor`, no action is required.\n* Introduced the ability for developers to override `TextInputAction` in both `QuillRawEditor` and `QuillEditor`.\n* Enabled using `QuillRawEditor` without `QuillEditorProvider`.\n* Bug fixes.\n* Added image cropping implementation in the example.","8.4.1":"* Added `copyWith` in `OptionalSize` class.","8.4.0":"* **Breaking change**: Updated `QuillCustomButton` to use `QuillCustomButtonOptions`. Moved all properties from `QuillCustomButton` to `QuillCustomButtonOptions`, replacing `iconData` with `icon` widget for increased customization.\n* **Breaking change**: `customButtons` in `QuillToolbarConfigurations` is now of type `List`.\n* Bug fixes following the `8.0.0` update.\n* Updated `README.md`.\n* Improved platform checking.","8.3.0":"* Added `iconButtonFactor` property to `QuillToolbarBaseButtonOptions` for customizing button size relative to its icon size (defaults to `kIconButtonFactor`, consistent with previous releases).","8.2.6":"* Organized `QuillRawEditor` code.","8.2.5":"* Added `builder` property in `QuillEditorConfigurations`.","8.2.4":"* Adhered to Flutter best practices.\n* Fixed auto-focus bug.","8.2.3":"* Updated `README.md`.","8.2.2":"* Moved `flutter_quill_test` to a separate package: [flutter_quill_test](https://pub.dev/packages/flutter_quill_test).","8.2.1":"* Updated `README.md`.","8.2.0":"* Added the option to add configurations for `flutter_quill_extensions` using `extraConfigurations`.","8.1.11":"* Followed Dart best practices by using `lints` and removed `pedantic` and `platform` since they are not used.\n* Fixed text direction bug.\n* Updated `README.md`.","8.1.10":"* Secret for automated publishing to pub.dev.","8.1.9":"* Fixed automated publishing to pub.dev.","8.1.8":"* Fixed automated publishing to pub.dev.","8.1.7":"* Automated publishing to pub.dev.","8.1.6":"* Fixed compatibility with `integration_test` by downgrading the minimum version of the platform package to 3.1.0.","8.1.5":"* Reversed background/font color toolbar button icons.","8.1.4":"* Reversed background/font color toolbar button tooltips.","8.1.3":"* Moved images to screenshots instead of `README.md`.","8.1.2":"* Fixed a bug related to the regexp of the insert link dialog.\n* Required Dart 3 as the minimum version.\n* Code cleanup.\n* Added a spacer widget between each button in the `QuillToolbar`.","8.1.1":"* Fixed null error in line.dart #1487(https://github.com/singerdmx/flutter*quill/issues/1487).","8.1.0":"* Fixed a word typo of `mirgration` to `migration` in the readme & migration document.\n* Updated migration guide.\n* Removed property `enableUnfocusOnTapOutside` in `QuillEditor` configurations and added `isOnTapOutsideEnabled` instead.\n* Added a new callback called `onTapOutside` in the `QuillEditorConfigurations` to perform actions when tapping outside the editor.\n* Fixed a bug that caused the web platform to not unfocus the editor when tapping outside of it. To override this, please pass a value to the `onTapOutside` callback.\n* Removed the old property of `iconTheme`. Instead, pass `iconTheme` in the button options; you will find the `base` property inside it with `iconTheme`.","8.0.0":"* If you have migrated recently, don't be alarmed by this update; it adds documentation, a migration guide, and marks the version as a more stable release. Although there are breaking changes (as reported by some developers), the major version was not changed due to time constraints during development. A single property was also renamed from `code` to `codeBlock` in the `elements` of the new `QuillEditorConfigurations` class.\n* Updated the README for better readability.","7.10.2":"* Removed line numbers from code blocks by default. You can still enable this feature thanks to the new configurations in the `QuillEditor`. Find the `elementOptions` property and enable `enableLineNumbers`.","7.10.1":"* Fixed issues and utilized the new parameters.\n* No longer need to use `MaterialApp` for most toolbar button child builders.\n* Compatibility with [fresh_quill_extensions](https://pub.dev/packages/fresh_quill_extensions), a temporary alternative to [flutter_quill_extensions](https://pub.dev/packages/flutter_quill_extensions).\n* Updated most of the documentation in `README.md`.","7.10.0":"* **Breaking change**: `QuillToolbar.basic()` can be accessed directly from `QuillToolbar()`, and the old `QuillToolbar` can be accessed from `QuillBaseToolbar`.\n* Refactored Quill editor and toolbar configurations into a single class each.\n* After changing checkbox list values, the controller will not request keyboard focus by default.\n* Moved toolbar and editor configurations directly into the widget but still use inherited widgets internally.\n* Fixes to some code after the refactoring.","7.9.0":"* Buttons Improvemenets\n* Refactor all the button configurations that used in `QuillToolbar.basic()` but there are still few lefts\n* **Breaking change**: Remove some configurations from the QuillToolbar and move them to the new `QuillProvider`, please notice this is a development version and this might be changed in the next few days, the stable release will be ready in less than 3 weeks\n* Update `flutter_quill_extensions` and it will be published into pub.dev soon.\n* Allow you to customize the search dialog by custom callback with child builder","7.8.0":"* **Important note**: this is not test release yet, it works but need more test and changes and breaking changes, we don't have development version and it will help us if you try the latest version and report the issues in Github but if you want a stable version please use `7.4.16`. this refactoring process will not take long and should be done less than three weeks with the testing.\n* We managed to refactor most of the buttons configurations and customizations in the `QuillProvider`, only three lefts then will start on refactoring the toolbar configurations\n* Code improvemenets","7.7.0":"* **Breaking change**: We have mirgrated more buttons in the toolbar configurations, you can do change them in the `QuillProvider`\n* Important bug fixes","7.6.1":"* Bug fixes","7.6.0":"* **Breaking change**: To customize the buttons in the toolbar, you can do that in the `QuillProvider`","7.5.0":"* **Breaking change**: The widgets `QuillEditor` and `QuillToolbar` are no longer have controller parameter, instead you need to make sure in the widget tree you have wrapped them with `QuillProvider` widget and provide the controller and the require configurations","7.4.16":"* Update documentation and README.md","7.4.15":"* Custom style attrbuites for platforms other than mobile (alignment, margin, width, height)\n* Bug fixes and other improvemenets","7.4.14":"* Improve performance by reducing the number of widgets rebuilt by listening to media query for only the needed things, for example instead of using `MediaQuery.of(context).size`, now we are using `MediaQuery.sizeOf(context)`\n* Add MediaButton for picking the images only since the video one is not ready\n* A new feature which allows customizing the text selection in quill editor which is useful for custom theme design system for custom app widget","7.4.13":"* Fixed tab editing when in readOnly mode.","7.4.12":"* Update the minimum version of device_info_plus to 9.1.0.","7.4.11":"* Add sw locale.","7.4.10":"* Update translations.","7.4.9":"* Style recognition fixes.","7.4.8":"* Upgrade dependencies.","7.4.7":"* Add Vietnamese and German translations.","7.4.6":"* Fix more null errors in Leaf.retain [##1394](https://github.com/singerdmx/flutter-quill/issues/1394) and Line.delete [##1395](https://github.com/singerdmx/flutter-quill/issues/1395).","7.4.5":"* Fix null error in Container.insert [##1392](https://github.com/singerdmx/flutter-quill/issues/1392).","7.4.4":"* Fix extra padding on checklists [##1131](https://github.com/singerdmx/flutter-quill/issues/1131).","7.4.3":"* Fixed a space input error on iPad.","7.4.2":"* Fix bug with keepStyleOnNewLine for link.","7.4.1":"* Fix toolbar dividers condition.","7.4.0":"* Support Flutter version 3.13.0.","7.3.3":"* Updated Dependencies conflicting.","7.3.2":"* Added builder for custom button in _LinkDialog.","7.3.1":"* Added case sensitive and whole word search parameters.\n* Added wrap around.\n* Moved search dialog to the bottom in order not to override the editor and the text found.\n* Other minor search dialog enhancements.","7.3.0":"* Add default attributes to basic factory.","7.2.19":"* Feat/link regexp.","7.2.18":"* Fix paste block text in words apply same style.","7.2.17":"* Fix paste text mess up style.\n* Add support copy/cut block text.","7.2.16":"* Allow for custom context menu.","7.2.15":"* Add flutter_quill.delta library which only exposes Delta datatype.","7.2.14":"* Fix errors when the editor is used in the `screenshot` package.","7.2.13":"* Fix around image can't delete line break.","7.2.12":"* Add support for copy/cut select image and text together.","7.2.11":"* Add affinity for localPosition.","7.2.10":"* LINE._getPlainText queryChild inclusive=false.","7.2.9":"* Add toPlainText method to `EmbedBuilder`.","7.2.8":"* Add custom button widget in toolbar.","7.2.7":"* Fix language code of Japan.","7.2.6":"* Style custom toolbar buttons like builtins.","7.2.5":"* Always use text cursor for editor on desktop.","7.2.4":"* Fixed keepStyleOnNewLine.","7.2.3":"* Get pixel ratio from view.","7.2.2":"* Prevent operations on stale editor state.","7.2.1":"* Add support for android keyboard content insertion.\n* Enhance color picker, enter hex color and color palette option.","7.2.0":"* Checkboxes, bullet points, and number points are now scaled based on the default paragraph font size.","7.1.20":"* Pass linestyle to embedded block.","7.1.19":"* Fix Rtl leading alignment problem.","7.1.18":"* Support flutter latest version.","7.1.17+1":"* Updates `device_info_plus` to version 9.0.0 to benefit from AGP 8 (see [changelog##900](https://pub.dev/packages/device_info_plus/changelog##900)).","7.1.16":"* Fixed subscript key from 'sup' to 'sub'.","7.1.15":"* Fixed a bug introduced in 7.1.7 where each section in `QuillToolbar` was displayed on its own line.","7.1.14":"* Add indents change for multiline selection.","7.1.13":"* Add custom recognizer.","7.1.12":"* Add superscript and subscript styles.","7.1.11":"* Add inserting indents for lines of list if text is selected.","7.1.10":"* Image embedding tweaks\n * Add MediaButton which is intened to superseed the ImageButton and VideoButton. Only image selection is working.\n * Implement image insert for web (image as base64)","7.1.9":"* Editor tweaks PR from bambinoua(https://github.com/bambinoua).\n * Shortcuts now working in Mac OS\n * QuillDialogTheme is extended with new properties buttonStyle, linkDialogConstraints, imageDialogConstraints, isWrappable, runSpacing,\n * Added LinkStyleButton2 with new LinkStyleDialog (similar to Quill implementation\n * Conditinally use Row or Wrap for dialog's children.\n * Update minimum Dart SDK version to 2.17.0 to use enum extensions.\n * Use merging shortcuts and actions correclty (if the key combination is the same)","7.1.8":"* Dropdown tweaks\n * Add itemHeight, itemPadding, defaultItemColor for customization of dropdown items.\n * Remove alignment property as useless.\n * Fix bugs with max width when width property is null.","7.1.7":"* Toolbar tweaks.\n * Implement tooltips for embed CameraButton, VideoButton, FormulaButton, ImageButton.\n * Extends customization for SelectAlignmentButton, QuillFontFamilyButton, QuillFontSizeButton adding padding, text style, alignment, width.\n * Add renderFontFamilies to QuillFontFamilyButton to show font faces in dropdown.\n * Add AxisDivider and its named constructors for for use in parent project.\n * Export ToolbarButtons enum to allow specify tooltips for SelectAlignmentButton.\n * Export QuillFontFamilyButton, SearchButton as they were not exported before.\n * Deprecate items property in QuillFontFamilyButton, QuillFontSizeButton as the it can be built usinr rawItemsMap.\n * Make onSelection QuillFontFamilyButton, QuillFontSizeButton omittable as no need to execute callback outside if controller is passed to widget.\n\nNow the package is more friendly for web projects.","7.1.6":"* Add enableUnfocusOnTapOutside field to RawEditor and Editor widgets.","7.1.5":"* Add tooltips for toolbar buttons.","7.1.4":"* Fix inserting tab character in lists.","7.1.3":"* Fix ios cursor bug when word.length==1.","7.1.2":"* Fix non scrollable editor exception, when tapped under content.","7.1.1":"* customLinkPrefixes parameter * makes possible to open links with custom protoco.","7.1.0":"* Fix ordered list numeration with several lists in document.","7.0.9":"* Use const constructor for EmbedBuilder.","7.0.8":"* Fix IME position bug with scroller.","7.0.7":"* Add TextFieldTapRegion for contextMenu.","7.0.6":"* Fix line style loss on new line from non string.","7.0.5":"* Fix IME position bug for Mac and Windows.\n* Unfocus when tap outside editor. fix the bug that cant refocus in afterButtonPressed after click ToggleStyleButton on Mac.","7.0.4":"* Have text selection span full line height for uneven sized text.","7.0.3":"* Fix ordered list numeration for lists with more than one level of list.","7.0.2":"* Allow widgets to override widget span properties.","7.0.1":"* Update i18n_extension dependency to version 8.0.0.","7.0.0":"* Breaking change: Tuples are no longer used. They have been replaced with a number of data classes.","6.4.4":"* Increased compatibility with Flutter widget tests.","6.4.3":"* Update dependencies (collection: 1.17.0, flutter_keyboard_visibility: 5.4.0, quiver: 3.2.1, tuple: 2.0.1, url_launcher: 6.1.9, characters: 1.2.1, i18n_extension: 7.0.0, device_info_plus: 8.1.0)","6.4.2":"* Replace `buildToolbar` with `contextMenuBuilder`.","6.4.1":"* Control the detect word boundary behaviour.","6.4.0":"* Use `axis` to make the toolbar vertical.\n* Use `toolbarIconCrossAlignment` to align the toolbar icons on the cross axis.\n* Breaking change: `QuillToolbar`'s parameter `toolbarHeight` was renamed to `toolbarSize`.","6.3.5":"* Ability to add custom shortcuts.","6.3.4":"* Update clipboard status prior to showing selected text overlay.","6.3.3":"* Fixed handling of mac intents.","6.3.2":"* Added `unknownEmbedBuilder` to QuillEditor.\n* Fix error style when input chinese japanese or korean.","6.3.1":"* Add color property to the basic factory function.","6.3.0":"* Support Flutter 3.7.","6.2.2":"* Fix: nextLine getter null where no assertion.","6.2.1":"* Revert \"Align numerical and bullet lists along with text content\".","6.2.0":"* Align numerical and bullet lists along with text content.","6.1.12":"* Apply i18n for default font dropdown option labels corresponding to 'Clear'.","6.1.11":"* Remove iOS hack for delaying focus calculation.","6.1.10":"* Delay focus calculation for iOS.","6.1.9":"* Bump keyboard show up wait to 1 sec.","6.1.8":"* Recalculate focus when showing keyboard.","6.1.7":"* Add czech localizations.","6.1.6":"* Upgrade i18n_extension to 6.0.0.","6.1.5":"* Fix formatting exception.","6.1.4":"* Add double quotes validation.","6.1.3":"* Revert \"fix order list numbering (##988)\".","6.1.2":"* Add typing shortcuts.","6.1.1":"* Fix order list numbering.","6.1.0":"* Add keyboard shortcuts for editor actions.","6.0.10":"* Upgrade device info plus to ^7.0.0.","6.0.9":"* Don't throw showAutocorrectionPromptRect not implemented. The function is called with every keystroke as a user is typing.","6.0.8+1":"* Fixes null pointer when setting documents.","6.0.8":"* Make QuillController.document mutable.","6.0.7":"* Allow disabling of selection toolbar.","6.0.6+1":"* Revert 6.0.6.","6.0.6":"* Fix wrong custom embed key.","6.0.5":"* Fixes toolbar buttons stealing focus from editor.","6.0.4":"* Bug fix for Type 'Uint8List' not found.","6.0.3":"* Add ability to paste images.","6.0.2":"* Address Dart Analysis issues.","6.0.1":"* Changed translation country code (zh_HK -> zh_hk) to lower case, which is required for i18n_extension used in flutter_quill.\n* Add localization in example's main to demonstrate translation.\n* Issue Windows selection's copy / paste tool bar not shown ##861: add selection's copy / paste toolbar, escape to hide toolbar, mouse right click to show toolbar, ctrl-Y / ctrl-Z to undo / redo.\n* Image and video displayed in Windows platform caused screen flickering while selecting text, a sample_data_nomedia.json asset is added for Desktop to demonstrate the added features.\n* Known issue: keyboard action sometimes causes exception mentioned in Flutter's issue ##106475 (Windows Keyboard shortcuts stop working after modifier key repeat flutter/flutter##106475).\n* Know issue: user needs to click the editor to get focus before toolbar is able to display.","6.0.0 BREAKING CHANGE":"* Removed embed (image, video & formula) blocks from the package to reduce app size.\n\nThese blocks have been moved to the package `flutter_quill_extensions`, migrate by filling the `embedBuilders` and `embedButtons` parameters as follows:\n\n```\nimport 'package:flutter_quill_extensions/flutter_quill_extensions.dart';\n\nQuillEditor.basic(\n controller: controller,\n embedBuilders: FlutterQuillEmbeds.builders(),\n);\n\nQuillToolbar.basic(\n controller: controller,\n embedButtons: FlutterQuillEmbeds.buttons(),\n);\n```","5.4.2":"* Upgrade i18n_extension.","5.4.1":"* Update German Translation.","5.4.0":"* Added Formula Button (for maths support).","5.3.2":"* Add more font family.","5.3.1":"* Enable search when text is not empty.","5.3.0":"* Added search function.","5.2.11":"* Remove default small color.","5.2.10":"* Don't wrap the QuillEditor's child in the EditorTextSelectionGestureDetector if selection is disabled.","5.2.9":"* Added option to modify SelectHeaderStyleButton options.\n* Added option to click again on h1, h2, h3 button to go back to normal.","5.2.8":"* Remove tooltip for LinkStyleButton.\n* Make link match regex case insensitive.","5.2.7":"* Add locale to QuillEditor.basic.","5.2.6":"* Fix keyboard pops up when resizing the image.","5.2.5":"* Upgrade youtube_player_flutter_quill to 8.2.2.","5.2.4":"* Upgrade youtube_player_flutter_quill to 8.2.1.","5.2.3":"* Flutter Quill Doesn't Work On iOS 16 or Xcode 14 Betas (Stored properties cannot be marked potentially unavailable with '@available').","5.2.2":"* Fix Web Unsupported operation: Platform.\\_operatingSystem error.","5.2.1":"* Rename QuillCustomIcon to QuillCustomButton.","5.2.0":"* Support font family selection.","5.1.1":"* Update README.","5.1.0":"* Added CustomBlockEmbed and customElementsEmbedBuilder.","5.0.5":"* Upgrade device_info_plus to 4.0.0.","5.0.4":"* Added onVideoInit callback for video documents.","5.0.3":"* Update dependencies.","5.0.2":"* Keep cursor position on checkbox tap.","5.0.1":"* Fix static analysis errors.","5.0.0":"* Flutter 3.0.0 support.","4.2.3":"* Ignore color:inherit and convert double to int for level.","4.2.2":"* Add clear option to font size dropdown.","4.2.1":"* Refactor font size dropdown.","4.2.0":"* Ensure selectionOverlay is available for showToolbar.","4.1.9":"* Using properly iconTheme colors.","4.1.8":"* Update font size dropdown.","4.1.7":"* Convert FontSize to a Map to allow for named Font Size.","4.1.6":"* Update quill_dropdown_button.dart.","4.1.5":"* Add Font Size dropdown to the toolbar.","4.1.4":"* New borderRadius for iconTheme.","4.1.3":"* Fix selection handles show/hide after paste, backspace, copy.","4.1.2":"* Add full support for hardware keyboards (Chromebook, Android tablets, etc) that don't alter screen UI.","4.1.1":"* Added textSelectionControls field in QuillEditor.","4.1.0":"* Added Node to linkActionPickerDelegate.","4.0.12":"* Add Persian(fa) language.","4.0.11":"* Fix cut selection error in multi-node line.","4.0.10":"* Fix vertical caret position bug.","4.0.9":"* Request keyboard focus when no child is found.","4.0.8":"* Fix blank lines do not display when **web*renderer=html.","4.0.7":"* Refactor getPlainText (better handling of blank lines and lines with multiple markups.","4.0.6":"* Bug fix for copying text with new lines.","4.0.5":"* Fixed casting null to Tuple2 when link dialog is dismissed without any input (e.g. barrier dismissed).","4.0.4":"* Bug fix for text direction rtl.","4.0.3":"* Support text direction rtl.","4.0.2":"* Clear toggled style on selection change.","4.0.1":"* Fix copy/cut/paste/selectAll not working.","4.0.0":"* Upgrade for Flutter 2.10.","3.9.11":"* Added Indonesian translation.","3.9.10":"* Fix for undoing a modification ending with an indented line.","3.9.9":"* iOS: Save image whose filename does not end with image file extension.","3.9.8":"* Added Urdu translation.","3.9.7":"* Fix for clicking on the Link button without any text on a new line crashes.","3.9.6":"* Apply locale to QuillEditor(contents).","3.9.5":"* Fix image pasting.","3.9.4":"* Hiding dialog after selecting action for image.","3.9.3":"* Update ImageResizer for Android.","3.9.2":"* Copy image with its style.","3.9.1":"* Support resizing image.","3.9.0":"* Image menu options for copy/remove.","3.8.8":"* Update set textEditingValue.","3.8.7":"* Fix checkbox not toggled correctly in toolbar button.","3.8.6":"* Fix cursor position changes when checking/unchecking the checkbox.","3.8.5":"* Fix \\_handleDragUpdate in \\_TextSelectionHandleOverlayState.","3.8.4":"* Fix link dialog layout.","3.8.3":"* Fix for errors on a non scrollable editor.","3.8.2":"* Fix certain keys not working on web when editor is a child of a scroll view.","3.8.1":"* Refactor \\_QuillEditorState to QuillEditorState.","3.8.0":"* Support pasting with format.","3.7.3":"* Fix selection overlay for collapsed selection.","3.7.2":"* Reverted Embed toPlainText change.","3.7.1":"* Change Embed toPlainText to be empty string.","3.7.0":"* Replace Toolbar showHistory group with individual showRedo and showUndo.","3.6.5":"* Update Link dialogue for image/video.","3.6.4":"* Link dialogue TextInputType.multiline.","3.6.3":"* Bug fix for link button text selection.","3.6.2":"* Improve link button.","3.6.1":"* Remove SnackBar 'What is entered is not a link'.","3.6.0":"* Allow link button to enter text.","3.5.3":"* Change link button behavior.","3.5.2":"* Bug fix for embed.","3.5.1":"* Bug fix for platform util.","3.5.0":"* Removed redundant classes.","3.4.4":"* Add more translations.","3.4.3":"* Preset link from attributes.","3.4.2":"* Fix launch link edit mode.","3.4.1":"* Placeholder effective in scrollable.","3.4.0":"* Option to save image in read-only mode.","3.3.1":"* Pass any specified key in QuillEditor constructor to super.","3.3.0":"* Fixed Style toggle issue.","3.2.1":"* Added new translations.","3.2.0":"* Support multiple links insertion on the go.","3.1.1":"* Add selection completed callback.","3.1.0":"* Fixed image ontap functionality.","3.0.4":"* Add maxContentWidth constraint to editor.","3.0.3":"* Do not show caret on screen when the editor is not focused.","3.0.2":"* Fix launch link for read-only mode.","3.0.1":"* Handle null value of Attribute.link.","3.0.0":"* Launch link improvements.\n* Removed QuillSimpleViewer.","2.5.2":"* Skip image when pasting.","2.5.1":"* Bug fix for Desktop `Shift` + `Click` support.","2.5.0":"* Update checkbox list.","2.4.1":"* Desktop selection improvements.","2.4.0":"* Improve inline code style.","2.3.3":"* Improves selection rects to have consistent height regardless of individual segment text styles.","2.3.2":"* Allow disabling floating cursor.","2.3.1":"* Preserve last newline character on delete.","2.3.0":"* Massive changes to support flutter 2.8.","2.2.2":"* iOS - floating cursor.","2.2.1":"* Bug fix for imports supporting flutter 2.8.","2.2.0":"* Support flutter 2.8.","2.1.1":"* Add methods of clearing editor and moving cursor.","2.1.0":"* Add delete handler.","2.0.23":"* Support custom replaceText handler.","2.0.22":"* Fix attribute compare and fix font size parsing.","2.0.21":"* Handle click on embed object.","2.0.20":"* Improved UX/UI of Image widget.","2.0.19":"* When uploading a video, applying indicator.","2.0.18":"* Make toolbar dividers optional.","2.0.17":"* Allow alignment of the toolbar icons to match WrapAlignment.","2.0.16":"* Add hide / show alignment buttons.","2.0.15":"* Implement change cursor to SystemMouseCursors.click when hovering a link styled text.","2.0.14":"* Enable customize the checkbox widget using DefaultListBlockStyle style.","2.0.13":"* Improve the scrolling performance by reducing the repaint areas.","2.0.12":"* Fix the selection effect can't be seen as the textLine with background color.","2.0.11":"* Fix visibility of text selection handlers on scroll.","2.0.10":"* cursorConnt.color notify the text_line to repaint if it was disposed.","2.0.9":"* Improve UX when trying to add a link.","2.0.8":"* Adding translations to the toolbar.","2.0.7":"* Added theming options for toolbar icons and LinkDialog.","2.0.6":"* Avoid runtime error when placed inside TabBarView.","2.0.5":"* Support inline code formatting.","2.0.4":"* Enable history shortcuts for desktop.","2.0.3":"* Fix cursor when line contains image.","2.0.2":"* Address KeyboardListener class name conflict.","2.0.1":"* Upgrade flutter_colorpicker to 0.5.0.","2.0.0":"* Text Alignment functions + Block Format standards.","1.9.6":"* Support putting QuillEditor inside a Scrollable view.","1.9.5":"* Skip image when pasting.","1.9.4":"* Bug fix for cursor position when tapping at the end of line with image(s).","1.9.3":"* Bug fix when line only contains one image.","1.9.2":"* Support for building custom inline styles.","1.9.1":"* Cursor jumps to the most appropriate offset to display selection.","1.9.0":"* Support inline image.","1.8.3":"* Updated quill_delta.","1.8.2":"* Support mobile image alignment.","1.8.1":"* Support mobile custom size image.","1.8.0":"* Support entering link for image/video.","1.7.3":"* Bumps photo_view version.","1.7.2":"* Fix static analysis error.","1.7.1":"* Support Youtube video.","1.7.0":"* Support video.","1.6.4":"* Bug fix for clear format button.","1.6.3":"* Fixed dragging right handle scrolling issue.","1.6.2":"* Fixed the position of the selection status drag handle.","1.6.1":"* Upgrade image_picker and flutter_colorpicker.","1.6.0":"* Support Multi Row Toolbar.","1.5.0":"* Remove file_picker dependency.","1.4.1":"* Remove filesystem_picker dependency.","1.4.0":"* Remove path_provider dependency.","1.3.4":"* Add option to paintCursorAboveText.","1.3.3":"* Upgrade file_picker version.","1.3.2":"* Fix copy/paste bug.","1.3.1":"* New logo.","1.3.0":"* Support flutter 2.2.0.","1.2.2":"* Checkbox supports tapping.","1.2.1":"* Indented position not holding while editing.","1.2.0":"* Fix image button cancel causes crash.","1.1.8":"* Fix height of empty line bug.","1.1.7":"* Fix text selection in read-only mode.","1.1.6":"* Remove universal_html dependency.","1.1.5":"* Enable \"Select\", \"Select All\" and \"Copy\" in read-only mode.","1.1.4":"* Fix text selection issue.","1.1.3":"* Update example folder.","1.1.2":"* Add pedantic.","1.1.1":"* Base64 image support.","1.1.0":"* Support null safety.","1.0.9":"* Web support for raw editor and keyboard listener.","1.0.8":"* Support token attribute.","1.0.7":"* Fix crash on web (dart:io).","1.0.6":"* Add desktop support WINDOWS, MACOS and LINUX.","1.0.5":"* Bug fix: Can not insert newline when Bold is toggled ON.","1.0.4":"* Upgrade photo_view to ^0.11.0.","1.0.3":"* Fix issue that text is not displayed while typing WEB.","1.0.2":"* Update toolbar in sample home page.","1.0.1":"* Fix static analysis errors.","1.0.0":"* Support flutter 2.0.","1.0.0-dev.2":"* Improve link handling for tel, mailto and etc.","1.0.0-dev.1":"* Upgrade prerelease SDK & Bump for master.","0.3.5":"* Fix for cursor focus issues when keyboard is on.","0.3.4":"* Improve link handling for tel, mailto and etc.","0.3.3":"* More fix on cursor focus issue when keyboard is on.","0.3.2":"* Fix cursor focus issue when keyboard is on.","0.3.1":"* cursor focus when keyboard is on.","0.3.0":"* Line Height calculated based on font size.","0.2.12":"* Support placeholder.","0.2.11":"* Fix static analysis error.","0.2.10":"* Update TextInputConfiguration autocorrect to true in stable branch.","0.2.9":"* Update TextInputConfiguration autocorrect to true.","0.2.8":"* Support display local image besides network image in stable branch.","0.2.7":"* Support display local image besides network image.","0.2.6":"* Fix cursor after pasting.","0.2.5":"* Toggle text/background color button in toolbar.","0.2.4":"* Support the use of custom icon size in toolbar.","0.2.3":"* Support custom styles and image on local device storage without uploading.","0.2.2":"* Update git repo.","0.2.1":"* Fix static analysis error.","0.2.0":"* Add checked/unchecked list button in toolbar.","0.1.8":"* Support font and size attributes.","0.1.7":"* Support checked/unchecked list.","0.1.6":"* Fix getExtentEndpointForSelection.","0.1.5":"* Support text alignment.","0.1.4":"* Handle url with trailing spaces.","0.1.3":"* Handle cursor position change when undo/redo.","0.1.2":"* Handle more text colors.","0.1.1":"* Fix cursor issue when undo.","0.1.0":"* Fix insert image.","0.0.9":"* Handle rgba color.","0.0.8":"* Fix launching url.","0.0.7":"* Handle multiple image inserts.","0.0.6":"* More toolbar functionality.","0.0.5":"* Update example.","0.0.4":"* Update example.","0.0.3":"* Update home page meta data.","0.0.2":"* Support image upload and launch url in read-only mode.","0.0.1":"* Rich text editor based on Quill Delta."}
\ No newline at end of file
+{"9.5.2":"* Fix style settings by @AtlasAutocode in https://github.com/singerdmx/flutter-quill/pull/1962\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.5.1...v9.5.2","9.5.1":"* feat(extensions): Youtube Video Player Support Mode by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1916\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.5.0...v9.5.1","9.5.0":"* Partial support for table embed by @CatHood0 in https://github.com/singerdmx/flutter-quill/pull/1960\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.9...v9.5.0","9.4.9":"* Upgrade photo_view to 0.15.0 for flutter_quill_extensions by @singerdmx in https://github.com/singerdmx/flutter-quill/pull/1958\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.8...v9.4.9","9.4.8":"* Add support for html underline and videos by @CatHood0 in https://github.com/singerdmx/flutter-quill/pull/1955\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.7...v9.4.8","9.4.7":"* fixed #1953 italic detection error by @CatHood0 in https://github.com/singerdmx/flutter-quill/pull/1954\r\n\r\n## New Contributors\r\n* @CatHood0 made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1954\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.6...v9.4.7","9.4.6":"* fix: search dialog throw an exception due to missing FlutterQuillLocalizations.delegate in the editor by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1938\r\n* fix(editor): implement editor shortcut action for home and end keys to fix exception about unimplemented ScrollToDocumentBoundaryIntent by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1937\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.5...v9.4.6","9.4.5":"* fix: color picker hex unfocus on web by @geronimol in https://github.com/singerdmx/flutter-quill/pull/1934\r\n\r\n## New Contributors\r\n* @geronimol made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1934\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.4...v9.4.5","9.4.4":"* fix: Enabled link regex to be overridden by @JoepHeijnen in https://github.com/singerdmx/flutter-quill/pull/1931\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.3...v9.4.4","9.4.3":"* Fix: setState() called after dispose(): QuillToolbarClipboardButtonState #1895 by @windows7lake in https://github.com/singerdmx/flutter-quill/pull/1926\r\n\r\n## New Contributors\r\n* @windows7lake made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1926\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.2...v9.4.3","9.4.2":"* Respect autofocus, closes #1923 by @Guillergood in https://github.com/singerdmx/flutter-quill/pull/1924\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.1...v9.4.2","9.4.1":"* replace base64 regex string by @salba360496 in https://github.com/singerdmx/flutter-quill/pull/1919\r\n\r\n## New Contributors\r\n* @salba360496 made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1919\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.0...v9.4.1","9.4.0":"This release can be used without changing anything, although it can break the behavior a little, we provided a way to use the old behavior in `9.3.x`\r\n\r\n- Thanks to @Alspb, the search bar/dialog has been reworked for improved UI that fits **Material 3** look and feel, the search happens on the fly, and other minor changes, if you want the old search bar, you can restore it with one line if you're using `QuillSimpleToolbar`:\r\n ```dart\r\n QuillToolbar.simple(\r\n configurations: QuillSimpleToolbarConfigurations(\r\n searchButtonType: SearchButtonType.legacy,\r\n ),\r\n )\r\n ```\r\n While the changes are mostly to the `QuillToolbarSearchDialog` and it seems this should be `searchDialogType`, we provided the old button with the old dialog in case we update the button in the future.\r\n\r\n If you're using `QuillToolbarSearchButton` in a custom Toolbar, you don't need anything to get the new button. if you want the old button, use the `QuillToolbarLegacySearchButton` widget\r\n \r\n Consider using the improved button with the improved dialog as the legacy button might removed in future releases (for now, it's not deprecated)\r\n\r\n \r\n Before\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Improved\r\n \r\n \r\n \r\n \r\n \r\n For the detailed changes, see #1904\r\n\r\n- Korean translations by @leegh519 in https://github.com/singerdmx/flutter-quill/pull/1911\r\n\r\n- The usage of `super_clipboard` plugin in `flutter_quill` has been moved to the `flutter_quill_extensions` package, this will restore the old behavior in `8.x.x` though it will break the `onImagePaste`, `onGifPaste` and rich text pasting from HTML or Markdown, most of those features are available in `super_clipboard` plugin except `onImagePaste` which was available as we were using [pasteboard](https://pub.dev/packages/pasteboard), Unfortunately, it's no longer supported on recent versions of Flutter, and some functionalities such as an image from Clipboard and Html paste are not supported on some platforms such as Android, your project will continue to work, calls of `onImagePaste` and `onGifPaste` will be ignored unless you include [flutter_quill_extensions](https://pub.dev/packages/flutter_quill_extensions) package in your project and call:\r\n\r\n ```dart\r\n FlutterQuillExtensions.useSuperClipboardPlugin();\r\n ```\r\n Before using any `flutter_quill` widgets, this will restore the old behavior in `9.x.x`\r\n \r\n We initially wanted to publish `flutter_quill_super_clipboard` to allow:\r\n - Using `super_clipboard` without `flutter_quill_extensions` packages and plugins\r\n - Using `flutter_quill_extensions` with optional `super_clipboard`\r\n \r\n To simplify the usage, we moved it to `flutter_quill_extensions`, let us know if you want any of the use cases above.\r\n \r\n Overall `super_clipboard` is a Comprehensive clipboard plugin with a lot of features, the only thing that developers didn't want is Rust installation even though it's automated.\r\n\r\n The main goal of `ClipboardService` is to make `super_clipboard` optional, you can use your own implementation, and create a class that implements `ClipboardService`, which you can get by:\r\n ```dart\r\n // ignore: implementation_imports\r\n import 'package:flutter_quill/src/services/clipboard/clipboard_service.dart';\r\n ```\r\n\r\n Then you can call:\r\n ```dart\r\n // ignore: implementation_imports\r\nimport 'package:flutter_quill/src/services/clipboard/clipboard_service_provider.dart';\r\n ClipboardServiceProvider.setInstance(YourClipboardService());\r\n```\r\n \r\n The interface could change at any time and will be updated internally for `flutter_quill` and `flutter_quill_extensions`, we didn't export those two classes by default to avoid breaking changes in case you use them as we might change them in the future.\r\n\r\n If you use the above imports, you might get **breaking changes** in **non-breaking change releases**.\r\n\r\n- Subscript and Superscript should now work for all languages and characters\r\n\r\n The previous implementation required the Apple 'SF-Pro-Display-Regular.otf' font which is only licensed/permitted for use on Apple devices.\r\nWe have removed the Apple font from the example\r\n\r\n- Allow pasting Markdown and HTML file content from the system to the editor\r\n\r\n Before `9.4.x` if you try to copy an HTML or Markdown file, and paste it into the editor, you will get the file name in the editor\r\n Copying an HTML file, or HTML content from apps and websites is different than copying plain text.\r\n\r\n This is why this change requires `super_clipboard` implementation as this is platform-dependent:\r\n ```dart\r\n FlutterQuillExtensions.useSuperClipboardPlugin();\r\n ```\r\n as mentioned above.\r\n \r\n The following example for copying a Markdown file:\r\n\r\n \r\n Markdown File Content\r\n \r\n ```md\r\n \r\n **Note**: This package supports converting from HTML back to Quill delta but it's experimental and used internally when pasting HTML content from the clipboard to the Quill Editor\r\n \r\n You have two options:\r\n \r\n 1. Using [quill_html_converter](./quill_html_converter/) to convert to HTML, the package can convert the Quill delta to HTML well\r\n (it uses [vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html)), it is just a handy extension to do it more quickly\r\n 1. Another option is to use\r\n [vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html) to convert your document\r\n to HTML.\r\n This package has full support for all Quill operations—including images, videos, formulas,\r\n tables, and mentions.\r\n Conversion can be performed in vanilla Dart (i.e., server-side or CLI) or in Flutter.\r\n It is a complete Dart part of the popular and mature [quill-delta-to-html](https://www.npmjs.com/package/quill-delta-to-html)\r\n Typescript/Javascript package.\r\n this package doesn't convert the HTML back to Quill Delta as far as we know \r\n \r\n ```\r\n\r\n \r\n \r\n \r\n Before\r\n \r\n \r\n \r\n \r\n \r\n \r\n After\r\n \r\n \r\n \r\n \r\n \r\n Markdown, and HTML converting from and to Delta are **currently far from perfect**, the current implementation could improved a lot \r\n however **it will likely not work like expected**, due to differences between HTML and Delta, see this [comment](https://github.com/slab/quill/issues/1551#issuecomment-311458570) for more info.\r\n \r\n \r\n \r\n For more details see #1915\r\n \r\n Using or converting to HTML or Markdown is highly experimental and shouldn't be used for production applications. \r\n \r\n We use it internally as it is more suitable for our specific use case., copying content from external websites and pasting it into the editor \r\n previously breaks the styles, while the current implementation is not ready, it provides a better user experience and doesn't have many downsides.\r\n\r\n Feel free to report any bugs or feature requests at [Issues](https://github.com/singerdmx/flutter-quill/issues) or drop any suggestions and questions at [Discussions](https://github.com/singerdmx/flutter-quill/discussions)\r\n\r\n## New Contributors\r\n* @leegh519 made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1911\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.21...v9.4.0","9.3.21":"* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.20...v9.3.21","9.3.20":"* Fix: Issue 1887 by @AtlasAutocode in https://github.com/singerdmx/flutter-quill/pull/1892\r\n* fix: toolbar style change will be invalid when inputting more than 2 characters at a time by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1890\r\n\r\n## New Contributors\r\n* @crasowas made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1890\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.19...v9.3.20","9.3.19":"* Fix reported issues by @AtlasAutocode in https://github.com/singerdmx/flutter-quill/pull/1886\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.18...v9.3.19","9.3.18":"* Fix: Undo/redo cursor position fixed by @Alspb in https://github.com/singerdmx/flutter-quill/pull/1885\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.17...v9.3.18","9.3.17":"* Update super_clipboard plugin to 0.8.15 to address [#1882](https://github.com/singerdmx/flutter-quill/issues/1882)\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.16...v9.3.17","9.3.16":"* Update `lint` dev package to 4.0.0\r\n* Require at least version 0.8.13 of the plugin\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.15...v9.3.16","9.3.15":"\r\n* Ci/automate updating the files by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1879\r\n* Updating outdated README.md and adding a few guidelines for CONTRIBUTING.md\r\n\r\n\r\n**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.14...v9.3.15","9.3.14":"* Chore/use original color picker package in [#1877](https://github.com/singerdmx/flutter-quill/pull/1877)","9.3.13":"* fix: `readOnlyMouseCursor` losing in construction function\n* Fix block multi-line selection style","9.3.12":"* Add `readOnlyMouseCursor` to config mouse cursor type","9.3.11":"* Fix typo in QuillHtmlConverter\n* Fix re-create checkbox","9.3.10":"* Support clipboard actions from the toolbar","9.3.9":"* fix: MD Parsing for multi space\n* fix: FontFamily and FontSize toolbars track the text selected in the editor\n* feat: Add checkBoxReadOnly property which can override readOnly for checkbox","9.3.8":"* fix: removed misleading parameters\n* fix: added missed translations for ru, es, de\n* added translations for Nepali Locale('ne', 'NP')","9.3.7":"* Fix for keyboard jumping when switching focus from a TextField\n* Toolbar button styling to reflect cursor position when running on desktops with keyboard to move care","9.3.6":"* Add SK and update CS locales [#1796](https://github.com/singerdmx/flutter-quill/pull/1796)\n* Fixes:\n * QuillIconTheme changes for FontFamily and FontSize buttons are not applied [#1797](https://github.com/singerdmx/flutter-quill/pull/1796)\n * Make the arrow_drop_down icons in the QuillToolbar the same size for all MenuAnchor buttons [#1799](https://github.com/singerdmx/flutter-quill/pull/1796)","9.3.5":"* Update the minimum version for the packages to support `device_info_plus` version 10.0.0 [#1783](https://github.com/singerdmx/flutter-quill/issues/1783)\n* Update the minimum version for `youtube_player_flutter` to new major version 9.0.0 in the `flutter_quill_extensions`","9.3.4":"* fix: multiline styling stuck/not working properly [#1782](https://github.com/singerdmx/flutter-quill/pull/1782)","9.3.3":"* Update `quill_html_converter` versions","9.3.2":"* Fix dispose of text painter [#1774](https://github.com/singerdmx/flutter-quill/pull/1774)","9.3.1":"* Require Flutter 3.19.0 as minimum version","9.3.0":"* **Breaking change**: `Document.fromHtml(html)` is now returns `Document` instead of `Delta`, use `DeltaX.fromHtml` to return `Delta`\n* Update old deprecated api from Flutter 3.19\n* Scribble scroll fix by @mtallenca in https://github.com/singerdmx/flutter-quill/pull/1745","9.2.14":"* feat: move cursor after inserting video/image\n* Apple pencil","9.2.13":"* Fix crash with inserting text from contextMenuButtonItems\n* Fix incorrect behaviour of context menu \n* fix: selection handles behaviour and unnessesary style assert\n* Update quill_fr.arb","9.2.12":"* Fix safari clipboard bug\n* Add the option to disable clipboard functionality","9.2.11":"* Fix a bug where it has problems with pasting text into the editor when the clipboard has styled text","9.2.10":"* Update example screenshots\n* Refactor `Container` to `QuillContainer` with backward compatibility\n* A workaround fix in history feature","9.2.9":"* Refactor the type of `Delta().toJson()` to be more clear type","9.2.8":"* feat: Export Container node as QuillContainer\n* fix web cursor position / height (don't use iOS logic)\n* Added Swedish translation","9.2.6":"* [fix selection.affinity always downstream after updateEditingValue](https://github.com/singerdmx/flutter-quill/pull/1682)\n* Bumb version of `super_clipboard`","9.2.5":"* Bumb version of `super_clipboard`","9.2.4":"* Use fixed version of intl","9.2.3":"* remove unncessary column in Flutter quill video embed block","9.2.2":"* Fix bug [#1627](https://github.com/singerdmx/flutter-quill/issues/1627)","9.2.1":"* Fix [bug](https://github.com/singerdmx/flutter-quill/issues/1119#issuecomment-1872605246) with font size button\n* Added ro RO translations\n* 📖 Update zh, zh_CN translations","9.2.0":"* Require minimum version `6.0.0` of `flutter_keyboard_visibility` to fix some build issues with Android Gradle Plugin 8.2.0\n* Add on image clicked in `flutter_quill_extensions` callback\n* Deprecate `globalIconSize` and `globalIconButtonFactor`, use `iconSize` and `iconButtonFactor` instead\n* Fix the `QuillToolbarSelectAlignmentButtons`","9.1.1":"* Require `super_clipboard` minimum version `0.8.1` to fix some bug with Linux build failure","9.1.1-dev":"* Fix bug [#1636](https://github.com/singerdmx/flutter-quill/issues/1636)\n* Fix a where you paste styled content (HTML) it always insert a new line at first even if the document is empty\n* Fix the font size button and migrate to `MenuAnchor`\n* The `defaultDisplayText` is no longer required in the font size and header dropdown buttons\n* Add pdf converter in a new package (`quill_pdf_converter`)","9.1.0":"* Fix the simple toolbar by add properties of `IconButton` and fix some buttons","9.1.0-dev.2":"* Fix the history buttons","9.1.0-dev.1":"* Bug fixes in the simple toolbar buttons","9.1.0-dev":"* **Breaking Change**: in the `QuillSimpleToolbar` Fix the `QuillIconTheme` by replacing all the properties with two properties of type `ButtonStyle`, use `IconButton.styleFrom()`","9.0.6":"* Fix bug in QuillToolbarSelectAlignmentButtons","9.0.5":"* You can now use most of the buttons without internal provider","9.0.4":"* Feature: [#1611](https://github.com/singerdmx/flutter-quill/issues/1611)\n* Export missing widgets","9.0.3":"* Flutter Quill Extensions:\n * Fix file image support for web image emebed builder","9.0.2":"* Remove unused properties in the `QuillToolbarSelectHeaderStyleDropdownButton`\n* Fix the `QuillSimpleToolbar` when `useMaterial3` is false, please upgrade to the latest version of flutter for better support","9.0.2-dev.3":"* Export `QuillSingleChildScrollView`","9.0.2-dev.2":"* Add the new translations for ru, uk arb files by [#1575](https://github.com/singerdmx/flutter-quill/pull/1575)\n* Add a new dropdown button by [#1575](https://github.com/singerdmx/flutter-quill/pull/1575)\n* Update the default style values by [#1575](https://github.com/singerdmx/flutter-quill/pull/1575)\n* Fix bug [#1562](https://github.com/singerdmx/flutter-quill/issues/1562)\n* Fix the second bug of [#1480](https://github.com/singerdmx/flutter-quill/issues/1480)","9.0.2-dev.1":"* Add configurations for the new dropdown `QuillToolbarSelectHeaderStyleButton`, you can use the orignal one or this\n* Fix the [issue](https://github.com/singerdmx/flutter-quill/issues/1119) when enter is pressed, all font settings is lost","9.0.2-dev":"* **Breaking change** Remove the spacer widget, removed the controller option for each button\n* Add `toolbarRunSpacing` property to the simple toolbar","9.0.1":"* Fix default icon size","9.0.0":"* This version is quite stable but it's not how we wanted to be, because the lack of time and there are not too many maintainers active, we decided to publish it, we might make a new breaking changes verion","9.0.1-dev.1":"* Flutter Quill Extensions:\n * Update `QuillImageUtilities` and fixining some bugs","9.0.1-dev":"* Test new GitHub workflows","9.0.0-dev-10":"* Fix a bug of the improved pasting HTML contents contents into the editor","9.0.0-dev-9":"* Improves the new logic of pasting HTML contents into the Editor\n* Update `README.md` and the doc\n* Dispose the `QuillToolbarSelectHeaderStyleButton` state listener in `dispose`\n* Upgrade the font family button to material 3\n* Rework the font family and font size functionalities to change the font once and type all over the editor","9.0.0-dev-8":"* Better support for pasting HTML contents from external websites to the editor\n* The experimental support of converting the HTML from `quill_html_converter` is now built-in in the `flutter_quill` and removed from there (Breaking change for `quill_html_converter`)","9.0.0-dev-7":"* Fix a bug in chaning the background/font color of ol/ul list\n* Flutter Quill Extensions:\n * Fix link bug in the video url\n * Fix patterns","9.0.0-dev-6":"* Move the `child` from `QuillToolbarConfigurations` into `QuillToolbar` directly\n* Bug fixes\n* Add the ability to change the background and font color of the ol/ul elements dots and numbers\n* Flutter Quill Extensions:\n * **Breaking Change**: The `imageProviderBuilder`is now providing the context and image url","9.0.0-dev-5":"* The `QuillToolbar` is now accepting only `child` with no configurations so you can customize everything you wants, the `QuillToolbar.simple()` or `QuillSimpleToolbar` implements a simple toolbar that is based on `QuillToolbar`, you are free to use it but it just an example and not standard\n* Flutter Quill Extensions:\n * Improve the camera button","9.0.0-dev-4":"* The options parameter in all of the buttons is no longer required which can be useful to create custom toolbar with minimal efforts\n* Toolbar buttons fixes in both `flutter_quill` and `flutter_quill_extensions`\n* The `QuillProvider` has been dropped and no longer used, the providers will be used only internally from now on and we will not using them as much as possible","9.0.0-dev-3":"* Breaking Changes:\n * Rename `QuillToolbar` to `QuillSimpleToolbar`\n * Rename `QuillBaseToolbar` to `QuillToolbar`\n * Replace `pasteboard` with `rich_cliboard`\n* Fix a bug in the example when inserting an image from url\n* Flutter Quill Extensions:\n * Add support for copying the image to the system cliboard","9.0.0-dev-2":"* An attemp to fix CI automated publishing","9.0.0-dev-1":"* An attemp to fix CI automated publishing","9.0.0-dev":"* **Major Breaking change**: The `QuillProvider` is now optional, the `controller` parameter has been moved to the `QuillEditor` and `QuillToolbar` once again.\n* Flutter Quill Extensions;\n * **Breaking Change**: Completly change the way how the source code structured to more basic and simple way, organize folders and file names, if you use the library\nfrom `flutter_quill_extensions.dart` then there is nothing you need to do, but if you are using any other import then you need to re-imports\nembed, this won't affect how quill js work\n * Improvemenets to the image embed\n * Add support for `margin` for web\n * Add untranslated strings to the `quill_en.arb`","8.6.4":"* The default value of `keyboardAppearance` for the iOS will be the one from the App/System theme mode instead of always using the `Brightness.light`\n* Fix typos in `README.md`","8.6.3":"* Update the minimum flutter version to `3.16.0`","8.6.2":"* Restore use of alternative QuillToolbarLinkStyleButton2 widget","8.6.1":"* Temporary revert style bug fix","8.6.0":"* **Breaking Change** Support [Flutter 3.16](https://medium.com/flutter/whats-new-in-flutter-3-16-dba6cb1015d1), please upgrade to the latest stable version of flutter to use this update\n* **Breaking Change**: Remove Deprecated Fields\n* **Breaking Change**: Extract the shared things between `QuillToolbarConfigurations` and `QuillBaseToolbarConfigurations`\n* **Breaking Change**: You no longer need to use `QuillToolbarProvider` when using custom toolbar buttons, the example has been updated\n* Bug fixes","8.5.5":"* Now when opening dialogs by `QuillToolbar` you will not get an exception when you don't use `FlutterQuillLocalizations.delegate` in your `WidgetsApp`, `MaterialApp`, or `CupertinoApp`. The fix is for the `QuillToolbarSearchButton`, `QuillToolbarLinkStyleButton`, and `QuillToolbarColorButton` buttons","8.5.4":"* The `mobileWidth`, `mobileHeight`, `mobileMargin`, and `mobileAlignment` is now deprecated in `flutter_quill`, they are now defined in `flutter_quill_extensions`\n* Deprecate `replaceStyleStringWithSize` function which is in `string.dart`\n* Deprecate `alignment`, and `margin` as they don't conform to official Quill JS","8.5.3":"* Update doc\n* Update `README.md` and `CHANGELOG.md`\n* Fix typos\n* Use `immutable` when possible\n* Update `.pubignore`","8.5.2":"* Updated `README.md`.\n* Feature: Added the ability to include a custom callback when the `QuillToolbarColorButton` is pressed.\n* The `QuillToolbar` now implements `PreferredSizeWidget`, enabling usage in the AppBar, similar to `QuillBaseToolbar`.","8.5.1":"* Updated `README.md`.","8.5.0":"* Migrated to `flutter_localizations` for translations.\n* Fixed: Translated all previously untranslated localizations.\n* Fixed: Added translations for missing items.\n* Fixed: Introduced default Chinese fallback translation.\n* Removed: Unused parameters `items` in `QuillToolbarFontFamilyButtonOptions` and `QuillToolbarFontSizeButtonOptions`.\n* Updated: Documentation.","8.4.4":"* Updated `.pubignore` to ignore unnecessary files and folders.","8.4.3":"* Updated `CHANGELOG.md`.","8.4.2":"* **Breaking change**: Configuration for `QuillRawEditor` has been moved to a separate class. Additionally, `readOnly` has been renamed to `isReadOnly`. If using `QuillEditor`, no action is required.\n* Introduced the ability for developers to override `TextInputAction` in both `QuillRawEditor` and `QuillEditor`.\n* Enabled using `QuillRawEditor` without `QuillEditorProvider`.\n* Bug fixes.\n* Added image cropping implementation in the example.","8.4.1":"* Added `copyWith` in `OptionalSize` class.","8.4.0":"* **Breaking change**: Updated `QuillCustomButton` to use `QuillCustomButtonOptions`. Moved all properties from `QuillCustomButton` to `QuillCustomButtonOptions`, replacing `iconData` with `icon` widget for increased customization.\n* **Breaking change**: `customButtons` in `QuillToolbarConfigurations` is now of type `List`.\n* Bug fixes following the `8.0.0` update.\n* Updated `README.md`.\n* Improved platform checking.","8.3.0":"* Added `iconButtonFactor` property to `QuillToolbarBaseButtonOptions` for customizing button size relative to its icon size (defaults to `kIconButtonFactor`, consistent with previous releases).","8.2.6":"* Organized `QuillRawEditor` code.","8.2.5":"* Added `builder` property in `QuillEditorConfigurations`.","8.2.4":"* Adhered to Flutter best practices.\n* Fixed auto-focus bug.","8.2.3":"* Updated `README.md`.","8.2.2":"* Moved `flutter_quill_test` to a separate package: [flutter_quill_test](https://pub.dev/packages/flutter_quill_test).","8.2.1":"* Updated `README.md`.","8.2.0":"* Added the option to add configurations for `flutter_quill_extensions` using `extraConfigurations`.","8.1.11":"* Followed Dart best practices by using `lints` and removed `pedantic` and `platform` since they are not used.\n* Fixed text direction bug.\n* Updated `README.md`.","8.1.10":"* Secret for automated publishing to pub.dev.","8.1.9":"* Fixed automated publishing to pub.dev.","8.1.8":"* Fixed automated publishing to pub.dev.","8.1.7":"* Automated publishing to pub.dev.","8.1.6":"* Fixed compatibility with `integration_test` by downgrading the minimum version of the platform package to 3.1.0.","8.1.5":"* Reversed background/font color toolbar button icons.","8.1.4":"* Reversed background/font color toolbar button tooltips.","8.1.3":"* Moved images to screenshots instead of `README.md`.","8.1.2":"* Fixed a bug related to the regexp of the insert link dialog.\n* Required Dart 3 as the minimum version.\n* Code cleanup.\n* Added a spacer widget between each button in the `QuillToolbar`.","8.1.1":"* Fixed null error in line.dart #1487(https://github.com/singerdmx/flutter*quill/issues/1487).","8.1.0":"* Fixed a word typo of `mirgration` to `migration` in the readme & migration document.\n* Updated migration guide.\n* Removed property `enableUnfocusOnTapOutside` in `QuillEditor` configurations and added `isOnTapOutsideEnabled` instead.\n* Added a new callback called `onTapOutside` in the `QuillEditorConfigurations` to perform actions when tapping outside the editor.\n* Fixed a bug that caused the web platform to not unfocus the editor when tapping outside of it. To override this, please pass a value to the `onTapOutside` callback.\n* Removed the old property of `iconTheme`. Instead, pass `iconTheme` in the button options; you will find the `base` property inside it with `iconTheme`.","8.0.0":"* If you have migrated recently, don't be alarmed by this update; it adds documentation, a migration guide, and marks the version as a more stable release. Although there are breaking changes (as reported by some developers), the major version was not changed due to time constraints during development. A single property was also renamed from `code` to `codeBlock` in the `elements` of the new `QuillEditorConfigurations` class.\n* Updated the README for better readability.","7.10.2":"* Removed line numbers from code blocks by default. You can still enable this feature thanks to the new configurations in the `QuillEditor`. Find the `elementOptions` property and enable `enableLineNumbers`.","7.10.1":"* Fixed issues and utilized the new parameters.\n* No longer need to use `MaterialApp` for most toolbar button child builders.\n* Compatibility with [fresh_quill_extensions](https://pub.dev/packages/fresh_quill_extensions), a temporary alternative to [flutter_quill_extensions](https://pub.dev/packages/flutter_quill_extensions).\n* Updated most of the documentation in `README.md`.","7.10.0":"* **Breaking change**: `QuillToolbar.basic()` can be accessed directly from `QuillToolbar()`, and the old `QuillToolbar` can be accessed from `QuillBaseToolbar`.\n* Refactored Quill editor and toolbar configurations into a single class each.\n* After changing checkbox list values, the controller will not request keyboard focus by default.\n* Moved toolbar and editor configurations directly into the widget but still use inherited widgets internally.\n* Fixes to some code after the refactoring.","7.9.0":"* Buttons Improvemenets\n* Refactor all the button configurations that used in `QuillToolbar.basic()` but there are still few lefts\n* **Breaking change**: Remove some configurations from the QuillToolbar and move them to the new `QuillProvider`, please notice this is a development version and this might be changed in the next few days, the stable release will be ready in less than 3 weeks\n* Update `flutter_quill_extensions` and it will be published into pub.dev soon.\n* Allow you to customize the search dialog by custom callback with child builder","7.8.0":"* **Important note**: this is not test release yet, it works but need more test and changes and breaking changes, we don't have development version and it will help us if you try the latest version and report the issues in Github but if you want a stable version please use `7.4.16`. this refactoring process will not take long and should be done less than three weeks with the testing.\n* We managed to refactor most of the buttons configurations and customizations in the `QuillProvider`, only three lefts then will start on refactoring the toolbar configurations\n* Code improvemenets","7.7.0":"* **Breaking change**: We have mirgrated more buttons in the toolbar configurations, you can do change them in the `QuillProvider`\n* Important bug fixes","7.6.1":"* Bug fixes","7.6.0":"* **Breaking change**: To customize the buttons in the toolbar, you can do that in the `QuillProvider`","7.5.0":"* **Breaking change**: The widgets `QuillEditor` and `QuillToolbar` are no longer have controller parameter, instead you need to make sure in the widget tree you have wrapped them with `QuillProvider` widget and provide the controller and the require configurations","7.4.16":"* Update documentation and README.md","7.4.15":"* Custom style attrbuites for platforms other than mobile (alignment, margin, width, height)\n* Bug fixes and other improvemenets","7.4.14":"* Improve performance by reducing the number of widgets rebuilt by listening to media query for only the needed things, for example instead of using `MediaQuery.of(context).size`, now we are using `MediaQuery.sizeOf(context)`\n* Add MediaButton for picking the images only since the video one is not ready\n* A new feature which allows customizing the text selection in quill editor which is useful for custom theme design system for custom app widget","7.4.13":"* Fixed tab editing when in readOnly mode.","7.4.12":"* Update the minimum version of device_info_plus to 9.1.0.","7.4.11":"* Add sw locale.","7.4.10":"* Update translations.","7.4.9":"* Style recognition fixes.","7.4.8":"* Upgrade dependencies.","7.4.7":"* Add Vietnamese and German translations.","7.4.6":"* Fix more null errors in Leaf.retain [##1394](https://github.com/singerdmx/flutter-quill/issues/1394) and Line.delete [##1395](https://github.com/singerdmx/flutter-quill/issues/1395).","7.4.5":"* Fix null error in Container.insert [##1392](https://github.com/singerdmx/flutter-quill/issues/1392).","7.4.4":"* Fix extra padding on checklists [##1131](https://github.com/singerdmx/flutter-quill/issues/1131).","7.4.3":"* Fixed a space input error on iPad.","7.4.2":"* Fix bug with keepStyleOnNewLine for link.","7.4.1":"* Fix toolbar dividers condition.","7.4.0":"* Support Flutter version 3.13.0.","7.3.3":"* Updated Dependencies conflicting.","7.3.2":"* Added builder for custom button in _LinkDialog.","7.3.1":"* Added case sensitive and whole word search parameters.\n* Added wrap around.\n* Moved search dialog to the bottom in order not to override the editor and the text found.\n* Other minor search dialog enhancements.","7.3.0":"* Add default attributes to basic factory.","7.2.19":"* Feat/link regexp.","7.2.18":"* Fix paste block text in words apply same style.","7.2.17":"* Fix paste text mess up style.\n* Add support copy/cut block text.","7.2.16":"* Allow for custom context menu.","7.2.15":"* Add flutter_quill.delta library which only exposes Delta datatype.","7.2.14":"* Fix errors when the editor is used in the `screenshot` package.","7.2.13":"* Fix around image can't delete line break.","7.2.12":"* Add support for copy/cut select image and text together.","7.2.11":"* Add affinity for localPosition.","7.2.10":"* LINE._getPlainText queryChild inclusive=false.","7.2.9":"* Add toPlainText method to `EmbedBuilder`.","7.2.8":"* Add custom button widget in toolbar.","7.2.7":"* Fix language code of Japan.","7.2.6":"* Style custom toolbar buttons like builtins.","7.2.5":"* Always use text cursor for editor on desktop.","7.2.4":"* Fixed keepStyleOnNewLine.","7.2.3":"* Get pixel ratio from view.","7.2.2":"* Prevent operations on stale editor state.","7.2.1":"* Add support for android keyboard content insertion.\n* Enhance color picker, enter hex color and color palette option.","7.2.0":"* Checkboxes, bullet points, and number points are now scaled based on the default paragraph font size.","7.1.20":"* Pass linestyle to embedded block.","7.1.19":"* Fix Rtl leading alignment problem.","7.1.18":"* Support flutter latest version.","7.1.17+1":"* Updates `device_info_plus` to version 9.0.0 to benefit from AGP 8 (see [changelog##900](https://pub.dev/packages/device_info_plus/changelog##900)).","7.1.16":"* Fixed subscript key from 'sup' to 'sub'.","7.1.15":"* Fixed a bug introduced in 7.1.7 where each section in `QuillToolbar` was displayed on its own line.","7.1.14":"* Add indents change for multiline selection.","7.1.13":"* Add custom recognizer.","7.1.12":"* Add superscript and subscript styles.","7.1.11":"* Add inserting indents for lines of list if text is selected.","7.1.10":"* Image embedding tweaks\n * Add MediaButton which is intened to superseed the ImageButton and VideoButton. Only image selection is working.\n * Implement image insert for web (image as base64)","7.1.9":"* Editor tweaks PR from bambinoua(https://github.com/bambinoua).\n * Shortcuts now working in Mac OS\n * QuillDialogTheme is extended with new properties buttonStyle, linkDialogConstraints, imageDialogConstraints, isWrappable, runSpacing,\n * Added LinkStyleButton2 with new LinkStyleDialog (similar to Quill implementation\n * Conditinally use Row or Wrap for dialog's children.\n * Update minimum Dart SDK version to 2.17.0 to use enum extensions.\n * Use merging shortcuts and actions correclty (if the key combination is the same)","7.1.8":"* Dropdown tweaks\n * Add itemHeight, itemPadding, defaultItemColor for customization of dropdown items.\n * Remove alignment property as useless.\n * Fix bugs with max width when width property is null.","7.1.7":"* Toolbar tweaks.\n * Implement tooltips for embed CameraButton, VideoButton, FormulaButton, ImageButton.\n * Extends customization for SelectAlignmentButton, QuillFontFamilyButton, QuillFontSizeButton adding padding, text style, alignment, width.\n * Add renderFontFamilies to QuillFontFamilyButton to show font faces in dropdown.\n * Add AxisDivider and its named constructors for for use in parent project.\n * Export ToolbarButtons enum to allow specify tooltips for SelectAlignmentButton.\n * Export QuillFontFamilyButton, SearchButton as they were not exported before.\n * Deprecate items property in QuillFontFamilyButton, QuillFontSizeButton as the it can be built usinr rawItemsMap.\n * Make onSelection QuillFontFamilyButton, QuillFontSizeButton omittable as no need to execute callback outside if controller is passed to widget.\n\nNow the package is more friendly for web projects.","7.1.6":"* Add enableUnfocusOnTapOutside field to RawEditor and Editor widgets.","7.1.5":"* Add tooltips for toolbar buttons.","7.1.4":"* Fix inserting tab character in lists.","7.1.3":"* Fix ios cursor bug when word.length==1.","7.1.2":"* Fix non scrollable editor exception, when tapped under content.","7.1.1":"* customLinkPrefixes parameter * makes possible to open links with custom protoco.","7.1.0":"* Fix ordered list numeration with several lists in document.","7.0.9":"* Use const constructor for EmbedBuilder.","7.0.8":"* Fix IME position bug with scroller.","7.0.7":"* Add TextFieldTapRegion for contextMenu.","7.0.6":"* Fix line style loss on new line from non string.","7.0.5":"* Fix IME position bug for Mac and Windows.\n* Unfocus when tap outside editor. fix the bug that cant refocus in afterButtonPressed after click ToggleStyleButton on Mac.","7.0.4":"* Have text selection span full line height for uneven sized text.","7.0.3":"* Fix ordered list numeration for lists with more than one level of list.","7.0.2":"* Allow widgets to override widget span properties.","7.0.1":"* Update i18n_extension dependency to version 8.0.0.","7.0.0":"* Breaking change: Tuples are no longer used. They have been replaced with a number of data classes.","6.4.4":"* Increased compatibility with Flutter widget tests.","6.4.3":"* Update dependencies (collection: 1.17.0, flutter_keyboard_visibility: 5.4.0, quiver: 3.2.1, tuple: 2.0.1, url_launcher: 6.1.9, characters: 1.2.1, i18n_extension: 7.0.0, device_info_plus: 8.1.0)","6.4.2":"* Replace `buildToolbar` with `contextMenuBuilder`.","6.4.1":"* Control the detect word boundary behaviour.","6.4.0":"* Use `axis` to make the toolbar vertical.\n* Use `toolbarIconCrossAlignment` to align the toolbar icons on the cross axis.\n* Breaking change: `QuillToolbar`'s parameter `toolbarHeight` was renamed to `toolbarSize`.","6.3.5":"* Ability to add custom shortcuts.","6.3.4":"* Update clipboard status prior to showing selected text overlay.","6.3.3":"* Fixed handling of mac intents.","6.3.2":"* Added `unknownEmbedBuilder` to QuillEditor.\n* Fix error style when input chinese japanese or korean.","6.3.1":"* Add color property to the basic factory function.","6.3.0":"* Support Flutter 3.7.","6.2.2":"* Fix: nextLine getter null where no assertion.","6.2.1":"* Revert \"Align numerical and bullet lists along with text content\".","6.2.0":"* Align numerical and bullet lists along with text content.","6.1.12":"* Apply i18n for default font dropdown option labels corresponding to 'Clear'.","6.1.11":"* Remove iOS hack for delaying focus calculation.","6.1.10":"* Delay focus calculation for iOS.","6.1.9":"* Bump keyboard show up wait to 1 sec.","6.1.8":"* Recalculate focus when showing keyboard.","6.1.7":"* Add czech localizations.","6.1.6":"* Upgrade i18n_extension to 6.0.0.","6.1.5":"* Fix formatting exception.","6.1.4":"* Add double quotes validation.","6.1.3":"* Revert \"fix order list numbering (##988)\".","6.1.2":"* Add typing shortcuts.","6.1.1":"* Fix order list numbering.","6.1.0":"* Add keyboard shortcuts for editor actions.","6.0.10":"* Upgrade device info plus to ^7.0.0.","6.0.9":"* Don't throw showAutocorrectionPromptRect not implemented. The function is called with every keystroke as a user is typing.","6.0.8+1":"* Fixes null pointer when setting documents.","6.0.8":"* Make QuillController.document mutable.","6.0.7":"* Allow disabling of selection toolbar.","6.0.6+1":"* Revert 6.0.6.","6.0.6":"* Fix wrong custom embed key.","6.0.5":"* Fixes toolbar buttons stealing focus from editor.","6.0.4":"* Bug fix for Type 'Uint8List' not found.","6.0.3":"* Add ability to paste images.","6.0.2":"* Address Dart Analysis issues.","6.0.1":"* Changed translation country code (zh_HK -> zh_hk) to lower case, which is required for i18n_extension used in flutter_quill.\n* Add localization in example's main to demonstrate translation.\n* Issue Windows selection's copy / paste tool bar not shown ##861: add selection's copy / paste toolbar, escape to hide toolbar, mouse right click to show toolbar, ctrl-Y / ctrl-Z to undo / redo.\n* Image and video displayed in Windows platform caused screen flickering while selecting text, a sample_data_nomedia.json asset is added for Desktop to demonstrate the added features.\n* Known issue: keyboard action sometimes causes exception mentioned in Flutter's issue ##106475 (Windows Keyboard shortcuts stop working after modifier key repeat flutter/flutter##106475).\n* Know issue: user needs to click the editor to get focus before toolbar is able to display.","6.0.0 BREAKING CHANGE":"* Removed embed (image, video & formula) blocks from the package to reduce app size.\n\nThese blocks have been moved to the package `flutter_quill_extensions`, migrate by filling the `embedBuilders` and `embedButtons` parameters as follows:\n\n```\nimport 'package:flutter_quill_extensions/flutter_quill_extensions.dart';\n\nQuillEditor.basic(\n controller: controller,\n embedBuilders: FlutterQuillEmbeds.builders(),\n);\n\nQuillToolbar.basic(\n controller: controller,\n embedButtons: FlutterQuillEmbeds.buttons(),\n);\n```","5.4.2":"* Upgrade i18n_extension.","5.4.1":"* Update German Translation.","5.4.0":"* Added Formula Button (for maths support).","5.3.2":"* Add more font family.","5.3.1":"* Enable search when text is not empty.","5.3.0":"* Added search function.","5.2.11":"* Remove default small color.","5.2.10":"* Don't wrap the QuillEditor's child in the EditorTextSelectionGestureDetector if selection is disabled.","5.2.9":"* Added option to modify SelectHeaderStyleButton options.\n* Added option to click again on h1, h2, h3 button to go back to normal.","5.2.8":"* Remove tooltip for LinkStyleButton.\n* Make link match regex case insensitive.","5.2.7":"* Add locale to QuillEditor.basic.","5.2.6":"* Fix keyboard pops up when resizing the image.","5.2.5":"* Upgrade youtube_player_flutter_quill to 8.2.2.","5.2.4":"* Upgrade youtube_player_flutter_quill to 8.2.1.","5.2.3":"* Flutter Quill Doesn't Work On iOS 16 or Xcode 14 Betas (Stored properties cannot be marked potentially unavailable with '@available').","5.2.2":"* Fix Web Unsupported operation: Platform.\\_operatingSystem error.","5.2.1":"* Rename QuillCustomIcon to QuillCustomButton.","5.2.0":"* Support font family selection.","5.1.1":"* Update README.","5.1.0":"* Added CustomBlockEmbed and customElementsEmbedBuilder.","5.0.5":"* Upgrade device_info_plus to 4.0.0.","5.0.4":"* Added onVideoInit callback for video documents.","5.0.3":"* Update dependencies.","5.0.2":"* Keep cursor position on checkbox tap.","5.0.1":"* Fix static analysis errors.","5.0.0":"* Flutter 3.0.0 support.","4.2.3":"* Ignore color:inherit and convert double to int for level.","4.2.2":"* Add clear option to font size dropdown.","4.2.1":"* Refactor font size dropdown.","4.2.0":"* Ensure selectionOverlay is available for showToolbar.","4.1.9":"* Using properly iconTheme colors.","4.1.8":"* Update font size dropdown.","4.1.7":"* Convert FontSize to a Map to allow for named Font Size.","4.1.6":"* Update quill_dropdown_button.dart.","4.1.5":"* Add Font Size dropdown to the toolbar.","4.1.4":"* New borderRadius for iconTheme.","4.1.3":"* Fix selection handles show/hide after paste, backspace, copy.","4.1.2":"* Add full support for hardware keyboards (Chromebook, Android tablets, etc) that don't alter screen UI.","4.1.1":"* Added textSelectionControls field in QuillEditor.","4.1.0":"* Added Node to linkActionPickerDelegate.","4.0.12":"* Add Persian(fa) language.","4.0.11":"* Fix cut selection error in multi-node line.","4.0.10":"* Fix vertical caret position bug.","4.0.9":"* Request keyboard focus when no child is found.","4.0.8":"* Fix blank lines do not display when **web*renderer=html.","4.0.7":"* Refactor getPlainText (better handling of blank lines and lines with multiple markups.","4.0.6":"* Bug fix for copying text with new lines.","4.0.5":"* Fixed casting null to Tuple2 when link dialog is dismissed without any input (e.g. barrier dismissed).","4.0.4":"* Bug fix for text direction rtl.","4.0.3":"* Support text direction rtl.","4.0.2":"* Clear toggled style on selection change.","4.0.1":"* Fix copy/cut/paste/selectAll not working.","4.0.0":"* Upgrade for Flutter 2.10.","3.9.11":"* Added Indonesian translation.","3.9.10":"* Fix for undoing a modification ending with an indented line.","3.9.9":"* iOS: Save image whose filename does not end with image file extension.","3.9.8":"* Added Urdu translation.","3.9.7":"* Fix for clicking on the Link button without any text on a new line crashes.","3.9.6":"* Apply locale to QuillEditor(contents).","3.9.5":"* Fix image pasting.","3.9.4":"* Hiding dialog after selecting action for image.","3.9.3":"* Update ImageResizer for Android.","3.9.2":"* Copy image with its style.","3.9.1":"* Support resizing image.","3.9.0":"* Image menu options for copy/remove.","3.8.8":"* Update set textEditingValue.","3.8.7":"* Fix checkbox not toggled correctly in toolbar button.","3.8.6":"* Fix cursor position changes when checking/unchecking the checkbox.","3.8.5":"* Fix \\_handleDragUpdate in \\_TextSelectionHandleOverlayState.","3.8.4":"* Fix link dialog layout.","3.8.3":"* Fix for errors on a non scrollable editor.","3.8.2":"* Fix certain keys not working on web when editor is a child of a scroll view.","3.8.1":"* Refactor \\_QuillEditorState to QuillEditorState.","3.8.0":"* Support pasting with format.","3.7.3":"* Fix selection overlay for collapsed selection.","3.7.2":"* Reverted Embed toPlainText change.","3.7.1":"* Change Embed toPlainText to be empty string.","3.7.0":"* Replace Toolbar showHistory group with individual showRedo and showUndo.","3.6.5":"* Update Link dialogue for image/video.","3.6.4":"* Link dialogue TextInputType.multiline.","3.6.3":"* Bug fix for link button text selection.","3.6.2":"* Improve link button.","3.6.1":"* Remove SnackBar 'What is entered is not a link'.","3.6.0":"* Allow link button to enter text.","3.5.3":"* Change link button behavior.","3.5.2":"* Bug fix for embed.","3.5.1":"* Bug fix for platform util.","3.5.0":"* Removed redundant classes.","3.4.4":"* Add more translations.","3.4.3":"* Preset link from attributes.","3.4.2":"* Fix launch link edit mode.","3.4.1":"* Placeholder effective in scrollable.","3.4.0":"* Option to save image in read-only mode.","3.3.1":"* Pass any specified key in QuillEditor constructor to super.","3.3.0":"* Fixed Style toggle issue.","3.2.1":"* Added new translations.","3.2.0":"* Support multiple links insertion on the go.","3.1.1":"* Add selection completed callback.","3.1.0":"* Fixed image ontap functionality.","3.0.4":"* Add maxContentWidth constraint to editor.","3.0.3":"* Do not show caret on screen when the editor is not focused.","3.0.2":"* Fix launch link for read-only mode.","3.0.1":"* Handle null value of Attribute.link.","3.0.0":"* Launch link improvements.\n* Removed QuillSimpleViewer.","2.5.2":"* Skip image when pasting.","2.5.1":"* Bug fix for Desktop `Shift` + `Click` support.","2.5.0":"* Update checkbox list.","2.4.1":"* Desktop selection improvements.","2.4.0":"* Improve inline code style.","2.3.3":"* Improves selection rects to have consistent height regardless of individual segment text styles.","2.3.2":"* Allow disabling floating cursor.","2.3.1":"* Preserve last newline character on delete.","2.3.0":"* Massive changes to support flutter 2.8.","2.2.2":"* iOS - floating cursor.","2.2.1":"* Bug fix for imports supporting flutter 2.8.","2.2.0":"* Support flutter 2.8.","2.1.1":"* Add methods of clearing editor and moving cursor.","2.1.0":"* Add delete handler.","2.0.23":"* Support custom replaceText handler.","2.0.22":"* Fix attribute compare and fix font size parsing.","2.0.21":"* Handle click on embed object.","2.0.20":"* Improved UX/UI of Image widget.","2.0.19":"* When uploading a video, applying indicator.","2.0.18":"* Make toolbar dividers optional.","2.0.17":"* Allow alignment of the toolbar icons to match WrapAlignment.","2.0.16":"* Add hide / show alignment buttons.","2.0.15":"* Implement change cursor to SystemMouseCursors.click when hovering a link styled text.","2.0.14":"* Enable customize the checkbox widget using DefaultListBlockStyle style.","2.0.13":"* Improve the scrolling performance by reducing the repaint areas.","2.0.12":"* Fix the selection effect can't be seen as the textLine with background color.","2.0.11":"* Fix visibility of text selection handlers on scroll.","2.0.10":"* cursorConnt.color notify the text_line to repaint if it was disposed.","2.0.9":"* Improve UX when trying to add a link.","2.0.8":"* Adding translations to the toolbar.","2.0.7":"* Added theming options for toolbar icons and LinkDialog.","2.0.6":"* Avoid runtime error when placed inside TabBarView.","2.0.5":"* Support inline code formatting.","2.0.4":"* Enable history shortcuts for desktop.","2.0.3":"* Fix cursor when line contains image.","2.0.2":"* Address KeyboardListener class name conflict.","2.0.1":"* Upgrade flutter_colorpicker to 0.5.0.","2.0.0":"* Text Alignment functions + Block Format standards.","1.9.6":"* Support putting QuillEditor inside a Scrollable view.","1.9.5":"* Skip image when pasting.","1.9.4":"* Bug fix for cursor position when tapping at the end of line with image(s).","1.9.3":"* Bug fix when line only contains one image.","1.9.2":"* Support for building custom inline styles.","1.9.1":"* Cursor jumps to the most appropriate offset to display selection.","1.9.0":"* Support inline image.","1.8.3":"* Updated quill_delta.","1.8.2":"* Support mobile image alignment.","1.8.1":"* Support mobile custom size image.","1.8.0":"* Support entering link for image/video.","1.7.3":"* Bumps photo_view version.","1.7.2":"* Fix static analysis error.","1.7.1":"* Support Youtube video.","1.7.0":"* Support video.","1.6.4":"* Bug fix for clear format button.","1.6.3":"* Fixed dragging right handle scrolling issue.","1.6.2":"* Fixed the position of the selection status drag handle.","1.6.1":"* Upgrade image_picker and flutter_colorpicker.","1.6.0":"* Support Multi Row Toolbar.","1.5.0":"* Remove file_picker dependency.","1.4.1":"* Remove filesystem_picker dependency.","1.4.0":"* Remove path_provider dependency.","1.3.4":"* Add option to paintCursorAboveText.","1.3.3":"* Upgrade file_picker version.","1.3.2":"* Fix copy/paste bug.","1.3.1":"* New logo.","1.3.0":"* Support flutter 2.2.0.","1.2.2":"* Checkbox supports tapping.","1.2.1":"* Indented position not holding while editing.","1.2.0":"* Fix image button cancel causes crash.","1.1.8":"* Fix height of empty line bug.","1.1.7":"* Fix text selection in read-only mode.","1.1.6":"* Remove universal_html dependency.","1.1.5":"* Enable \"Select\", \"Select All\" and \"Copy\" in read-only mode.","1.1.4":"* Fix text selection issue.","1.1.3":"* Update example folder.","1.1.2":"* Add pedantic.","1.1.1":"* Base64 image support.","1.1.0":"* Support null safety.","1.0.9":"* Web support for raw editor and keyboard listener.","1.0.8":"* Support token attribute.","1.0.7":"* Fix crash on web (dart:io).","1.0.6":"* Add desktop support WINDOWS, MACOS and LINUX.","1.0.5":"* Bug fix: Can not insert newline when Bold is toggled ON.","1.0.4":"* Upgrade photo_view to ^0.11.0.","1.0.3":"* Fix issue that text is not displayed while typing WEB.","1.0.2":"* Update toolbar in sample home page.","1.0.1":"* Fix static analysis errors.","1.0.0":"* Support flutter 2.0.","1.0.0-dev.2":"* Improve link handling for tel, mailto and etc.","1.0.0-dev.1":"* Upgrade prerelease SDK & Bump for master.","0.3.5":"* Fix for cursor focus issues when keyboard is on.","0.3.4":"* Improve link handling for tel, mailto and etc.","0.3.3":"* More fix on cursor focus issue when keyboard is on.","0.3.2":"* Fix cursor focus issue when keyboard is on.","0.3.1":"* cursor focus when keyboard is on.","0.3.0":"* Line Height calculated based on font size.","0.2.12":"* Support placeholder.","0.2.11":"* Fix static analysis error.","0.2.10":"* Update TextInputConfiguration autocorrect to true in stable branch.","0.2.9":"* Update TextInputConfiguration autocorrect to true.","0.2.8":"* Support display local image besides network image in stable branch.","0.2.7":"* Support display local image besides network image.","0.2.6":"* Fix cursor after pasting.","0.2.5":"* Toggle text/background color button in toolbar.","0.2.4":"* Support the use of custom icon size in toolbar.","0.2.3":"* Support custom styles and image on local device storage without uploading.","0.2.2":"* Update git repo.","0.2.1":"* Fix static analysis error.","0.2.0":"* Add checked/unchecked list button in toolbar.","0.1.8":"* Support font and size attributes.","0.1.7":"* Support checked/unchecked list.","0.1.6":"* Fix getExtentEndpointForSelection.","0.1.5":"* Support text alignment.","0.1.4":"* Handle url with trailing spaces.","0.1.3":"* Handle cursor position change when undo/redo.","0.1.2":"* Handle more text colors.","0.1.1":"* Fix cursor issue when undo.","0.1.0":"* Fix insert image.","0.0.9":"* Handle rgba color.","0.0.8":"* Fix launching url.","0.0.7":"* Handle multiple image inserts.","0.0.6":"* More toolbar functionality.","0.0.5":"* Update example.","0.0.4":"* Update example.","0.0.3":"* Update home page meta data.","0.0.2":"* Support image upload and launch url in read-only mode.","0.0.1":"* Rich text editor based on Quill Delta."}
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3f884bd6..bdf2dbbd 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,19 +2,26 @@
First of all, we would like to thank you for your time and efforts on this project, we appreciate it
-You can see tutorials online on how to contribute to any open source project, it's a simple process, and you can do it even if you are not Git expert, simply start by forking the repository, clone it, creating a new branch, make your changes and commit them, then push the branch to your fork, and you will get link to send a PR to the upstream repository
+You can see tutorials online on how to contribute to any open source project, it's a simple process, and you can do it
+even if you are not Git expert, simply start by forking the repository, clone it, create a new branch, make your
+changes and commit them, then push the branch to your fork, and you will get link to send a PR to the upstream
+repository
-If you don't have anything specific in mind to improve or fix, you can take a look at the issues tab or take a look at the todos of the project, they all start with `TODO:` so you can search in your IDE or use the todos tab in the IDE
+If you don't have anything specific in mind to improve or fix, you can take a look at the issues tab or take a look at
+the todos of the project, they all start with `TODO:` so you can search in your IDE or use the todos tab in the IDE
-You can also check the [Todo](./doc/todo.md) list or the issues if you want to
+You can also check the [Todo](./doc/todo.md) list or the issues if you want to
-> Make sure to not edit the `CHANGELOG.md` or the version in `pubspec.yaml` for any of the packages, this process will be automated by CI.
+> Make sure to not edit the `CHANGELOG.md` or the version in `pubspec.yaml` for any of the packages, CI will automate
+> this process.
## Requirements
-- [Flutter SDK](https://docs.flutter.dev/get-started/install) which can be installed by following the instructions the provided link, also make sure to add it to your path so `flutter --version` and `dart --version` work
-- [Intellij IDEA Community Edition](https://www.jetbrains.com/idea/download/) or [Android Studio](https://developer.android.com/studio) (with Dart and Flutter plugins) or use [VS Code](https://code.visualstudio.com/) (with Dart and flutter extensions)
-
+- [Flutter SDK](https://docs.flutter.dev/get-started/install), which can be installed by following the instructions the
+ provided link, also make sure to add it to your path so `flutter --version` and `dart --version` work
+- [IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/download/)
+ or [Android Studio](https://developer.android.com/studio) (with Dart and Flutter plugins) or
+ use [VS Code](https://code.visualstudio.com/) (with Dart and flutter extensions)
## Test your changes 🧪
@@ -22,8 +29,10 @@ Make sure you have the [Requirement](#requirements) installed and configured cor
To test your changes:
-1. Go to the [Example project](./example/) in [main.dart](./example/lib/main.dart) and run the project either by using your IDE or `flutter run`
-2. Make sure to read the [Development Notes](./doc/development_notes.md) if you made certain changes or [Translations Page](./doc/translation.md) if you made changes to the translations of the package
+1. Go to the [Example project](./example/) in [main.dart](./example/lib/main.dart) and run the project either by using
+ your IDE or `flutter run`
+2. Make sure to read the [Development Notes](./doc/development_notes.md) if you made certain changes
+ or [Translations Page](./doc/translation.md) if you made changes to the translations of the package
## Steps to contributing
@@ -35,24 +44,29 @@ You will need a GitHub account as well as Git installed and configured with your
```
git remote add upstream git@github.com:singerdmx/flutter-quill.git
```
-4. Open the project with your favorite IDE, usually, we prefer to use Jetbrains IDEs, but since [VS Code](https://code.visualstudio.com) is more used and has more support for Dart, then we suggest using it if you want to.
+4. Open the project with your favorite IDE, usually, we prefer to use Jetbrains IDEs, but
+ since [VS Code](https://code.visualstudio.com) is more used and has more support for Dart, then we suggest using it
+ if you want to.
5. Create a new git branch and switch to it using `git checkout -b`
6. Make your changes
-7. If you are working on changes that depend on different libraries in the same repo, then in that directory copy `pubspec_overrides.yaml.disabled` which exists in all the packages (`flutter_quill_test` and `flutter_quill_extensions` etc...)
-to `pubspec_overrides.yaml` which will be ignored by `.gitignore` and will be used by dart pub to override the libraries
+7. If you are working on changes that depend on different libraries in the same repo, then in that directory
+ copy `pubspec_overrides.yaml.disabled` which exists in all the packages (`flutter_quill_test`
+ and `flutter_quill_extensions` etc...)
+ to `pubspec_overrides.yaml` which will be ignored by `.gitignore` and will be used by dart pub to override the
+ libraries
```
cp pubspec_overrides.yaml.disabled pubspec_overrides.yaml
```
- or save some time with the following script:
+ or save some time with the following script:
```
./scripts/enable_local_dev.sh
```
8. Test them in the [example](./example) and add changes in there if necessary
-9. Run the following script if possible
- ```
- ./scripts/before_push.sh
- ```
+9. Run the following script if possible
+ ```
+ ./scripts/before_push.sh
+ ```
10. When you are done sending your pull request, run:
```
git add .
@@ -62,10 +76,11 @@ to `pubspec_overrides.yaml` which will be ignored by `.gitignore` and will be us
this will push the new branch to your forked repository
11. Now you can send your pull request either by following the link that you will get in the command line or open your
-forked repository. You will find an option to send the pull request, you can also
-open the [Pull Requests](https://github.com/singerdmx/flutter-quill) tab and send new pull request
+ forked repository. You will find an option to send the pull request, you can also
+ open the [Pull Requests](https://github.com/singerdmx/flutter-quill) tab and send new pull request
12. Now, wait for the review, and we might ask you to make more changes, then run:
+
```
git add .
git commit -m "Your new commit message"
diff --git a/README.md b/README.md
index e37e1dea..8a55bb0d 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# Flutter Quill
-
+
A rich text editor for Flutter
@@ -12,14 +12,23 @@
[![Watch on GitHub][github-forks-badge]][github-forks-link]
[license-badge]: https://img.shields.io/github/license/singerdmx/flutter-quill.svg?style=for-the-badge
+
[license-link]: ./LICENSE
+
[prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
+
[prs-link]: https://github.com/singerdmx/flutter-quill/issues
+
[github-watch-badge]: https://img.shields.io/github/watchers/singerdmx/flutter-quill.svg?style=for-the-badge&logo=github&logoColor=ffffff
+
[github-watch-link]: https://github.com/singerdmx/flutter-quill/watchers
+
[github-star-badge]: https://img.shields.io/github/stars/singerdmx/flutter-quill.svg?style=for-the-badge&logo=github&logoColor=ffffff
+
[github-star-link]: https://github.com/singerdmx/flutter-quill/stargazers
+
[github-forks-badge]: https://img.shields.io/github/forks/singerdmx/flutter-quill.svg?style=for-the-badge&logo=github&logoColor=ffffff
+
[github-forks-link]: https://github.com/singerdmx/flutter-quill/network/members
---
@@ -27,37 +36,38 @@
FlutterQuill is a rich text editor and a [Quill] component for [Flutter].
This library is a WYSIWYG (What You See Is What You Get) editor built
-for the modern Android, iOS,
+for the modern Android, iOS,
web and desktop platforms.
Check out our [Youtube Playlist] or [Code Introduction](./doc/code_introduction.md)
to take a detailed walkthrough of the code base.
You can join our [Slack Group] for discussion.
> If you are viewing this page from [pub.dev](https://pub.dev/) page, then you
-might have some issues with opening some links, open it in the GitHub repo instead.
+> might have some issues with opening some links, open it in the GitHub repo instead.
+
+## 📚 Table of contents
-## Table of contents
- [Flutter Quill](#flutter-quill)
- - [Table of contents](#table-of-contents)
- - [Screenshots](#screenshots)
- - [Installation](#installation)
- - [Platform Specific Configurations](#platform-specific-configurations)
- - [Usage](#usage)
- - [Migration](#migration)
- - [Input / Output](#input--output)
- - [Links](#links)
- - [Configurations](#configurations)
- - [Links](#links-1)
- - [Font Family](#font-family)
- - [Embed Blocks](#embed-blocks)
- - [Using the embed blocks from `flutter_quill_extensions`](#using-the-embed-blocks-from-flutter_quill_extensions)
- - [Links](#links-2)
- - [Conversion to HTML](#conversion-to-html)
- - [Translation](#translation)
- - [Testing](#testing)
- - [Contributors](#contributors)
-
-## Screenshots
+ - [📚 Table of contents](#-table-of-contents)
+ - [📸 Screenshots](#-screenshots)
+ - [📦 Installation](#-installation)
+ - [🛠 Platform Specific Configurations](#-platform-specific-configurations)
+ - [🚀 Usage](#-usage)
+ - [🔄 Migration](#-migration)
+ - [🔤 Input / Output](#-input--output)
+ - [🔗 Links](#-links)
+ - [⚙️ Configurations](#️-configurations)
+ - [🔗 Links](#-links-1)
+ - [🖋 Font Family](#-font-family)
+ - [📦 Embed Blocks](#-embed-blocks)
+ - [🛠️ Using the embed blocks from `flutter_quill_extensions`](#️-using-the-embed-blocks-from-flutter_quill_extensions)
+ - [🔗 Links](#-links-2)
+ - [🔄 Conversion to HTML](#-conversion-to-html)
+ - [🌐 Translation](#-translation)
+ - [🧪 Testing](#-testing)
+ - [👥 Contributors](#-contributors)
+
+## 📸 Screenshots
Tap to show/hide screenshots
@@ -71,7 +81,7 @@ might have some issues with opening some links, open it in the GitHub repo inste
-## Installation
+## 📦 Installation
```yaml
dependencies:
@@ -84,27 +94,31 @@ dependencies:
dependencies:
flutter_quill:
git: https://github.com/singerdmx/flutter-quill.git
+ ref: v
```
-> Using the latest version and reporting any issues you encounter on GitHub will greatly contribute to the improvement of the library.
-> Your input and insights are valuable in shaping a stable and reliable version for all the developers. Thank you for being part of the open-source community!
+> Using the latest version and reporting any issues you encounter on GitHub will greatly contribute to the improvement
+> of the library.
+> Your input and insights are valuable in shaping a stable and reliable version for all the developers. Thank you for
+> being part of the open-source community!
>
-## Platform Specific Configurations
+## 🛠 Platform Specific Configurations
+
+Before using the package, we must inform you the package uses the following plugins:
-Before using the package, we must inform you the package use the following plugins:
- ```
- url_launcher
- flutter_keyboard_visibility
- device_info_plus
- super_clipboard
- ```
+1. [`url_launcher`](https://pub.dev/packages/url_launcher) to open links.
+2. [`device_info_plus`](https://pub.dev/packages/device_info_plus) to view info about the current device.
+3. [`flutter_keyboard_visibility`](https://pub.dev/packages/flutter_keyboard_visibility) to listen for keyboard visibility
+ changes.
-All of them doesn't require any platform specific setup, except [super_clipboard](https://pub.dev/packages/super_clipboard) which needs some setup on Android only, it's used to support copying images and pasting them into editor then you must setup it, open the page in pub.dev and read the `README.md` to get the instructions.
+All of them don't require any platform-specific setup.
-The minSdkVersion is `23` as `super_clipboard` requires it
+> Starting from Flutter Quill `9.4.x`, [super_clipboard](https://pub.dev/packages/super_clipboard) has been moved
+> to [FlutterQuill Extensions], to use rich text pasting, support pasting images, and gif files, take a look
+> at `flutter_quill_extensions` Readme.
-## Usage
+## 🚀 Usage
First, you need to instantiate a controller
@@ -143,11 +157,12 @@ in most cases, it's better to.
Check out [Sample Page] for more advanced usage.
-## Migration
+## 🔄 Migration
+
Starting from version `8.0.0`
We have added [Migration Guide](/doc/migration.md) for migration from different versions
-## Input / Output
+## 🔤 Input / Output
This library uses [Quill Delta](https://quilljs.com/docs/delta/)
to represent the document content.
@@ -171,7 +186,7 @@ final json = jsonEncode(_controller.document.toDelta().toJson());
You can then write this to storage.
-To open a FlutterQuill editor with an existing JSON representation that you've previously stored,
+To open a FlutterQuill editor with an existing JSON representation that you've previously stored,
you can do something like this:
```dart
@@ -180,7 +195,7 @@ final json = jsonDecode(r'{"insert":"hello\n"}');
_controller.document = Document.fromJson(json);
```
-### Links
+### 🔗 Links
- [Quill Delta](https://quilljs.com/docs/delta/)
- [Quill Delta Formats](https://quilljs.com/docs/formats)
@@ -189,76 +204,95 @@ _controller.document = Document.fromJson(json);
- [Quill JS Interactive Playground](https://quilljs.com/playground/)
- [Quill JS GitHub repo](https://github.com/quilljs/quill)
-## Configurations
+## ⚙️ Configurations
The `QuillToolbar` and `QuillEditor` widgets let you customize a lot of things
[Sample Page] provides sample code for advanced usage and configuration.
-### Links
+### 🔗 Links
+
- [Using Custom App Widget](./doc/configurations/using_custom_app_widget.md)
- [Localizations Setup](./doc/configurations/localizations_setup.md)
- [Font Size](./doc/configurations/font_size.md)
- [Font Family](#font-family)
- [Custom Toolbar buttons](./doc/configurations/custom_buttons.md)
-### Font Family
+### 🖋 Font Family
+
+To use your own fonts, update your [Assets](./example/assets/fonts) folder and pass in `fontFamilyValues`.
+More details
+on [this commit](https://github.com/singerdmx/flutter-quill/commit/71d06f6b7be1b7b6dba2ea48e09fed0d7ff8bbaa),
+[this article](https://stackoverflow.com/questions/55075834/fontfamily-property-not-working-properly-in-flutter)
+and [this](https://www.flutterbeads.com/change-font-family-flutter/).
-To use your own fonts, update your [assets folder](./example/assets/fonts) and pass in `fontFamilyValues`.
-More details on [this commit](https://github.com/singerdmx/flutter-quill/commit/71d06f6b7be1b7b6dba2ea48e09fed0d7ff8bbaa),
-[this article](https://stackoverflow.com/questions/55075834/fontfamily-property-not-working-properly-in-flutter) and [this](https://www.flutterbeads.com/change-font-family-flutter/).
+## 📦 Embed Blocks
-## Embed Blocks
+As of version 6.0, embed blocks are not provided by default as part of this package.
-As of version 6.0, embed blocks are not provided by default as part of this package. Instead, this package provides an interface for all the users to provide their own implementations for embed blocks. Implementations for image, video, and formula embed blocks are proved in a separate package [`flutter_quill_extensions`](https://pub.dev/packages/flutter_quill_extensions).
+Instead, this package provides an interface for all the users to provide their own implementations for embed blocks.
+Implementations for image, video, and
+formula embed blocks are proved in a separate
+package [`flutter_quill_extensions`](https://pub.dev/packages/flutter_quill_extensions).
Provide a list of embed
-### Using the embed blocks from `flutter_quill_extensions`
+### 🛠️ Using the embed blocks from `flutter_quill_extensions`
-To see how to use the extension package, please take a look at the [README](./flutter_quill_extensions/README.md) of [FlutterQuill Extensions]
+To see how to use the extension package, please take a look at the [README](./flutter_quill_extensions/README.md)
+of [FlutterQuill Extensions]
-### Links
+### 🔗 Links
- [Custom Embed Blocks](./doc/custom_embed_blocks.md)
- [Custom Toolbar](./doc/custom_toolbar.md)
-## Conversion to HTML
+## 🔄 Conversion to HTML
Having your document stored in Quill Delta format is sometimes not enough. Often you'll need to convert
it to other formats such as HTML to publish it, or send an email.
-**Note**: This package supports converting from HTML back to Quill delta but it's experimental and used internally when pasting HTML content from the clipboard to the Quill Editor
+**Note**: This package supports converting from HTML back to Quill delta but it's experimental and used internally when
+pasting HTML content from the clipboard to the Quill Editor
You have two options:
-1. Using [quill_html_converter](./quill_html_converter/) to convert to HTML, the package can convert the Quill delta to HTML well
-(it uses [vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html)), it is just a handy extension to do it more quickly
-1. Another option is to use
-[vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html) to convert your document
-to HTML.
+1. Using [quill_html_converter](./quill_html_converter/) to convert to HTML, the package can convert the Quill delta to
+ HTML well
+ (it uses [vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html)), it is just a handy extension
+ to do it more quickly
+2. Another option is to use
+ [vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html) to convert your document
+ to HTML.
This package has full support for all Quill operations—including images, videos, formulas,
-tables, and mentions.
+ tables, and mentions.
Conversion can be performed in vanilla Dart (i.e., server-side or CLI) or in Flutter.
-It is a complete Dart part of the popular and mature [quill-delta-to-html](https://www.npmjs.com/package/quill-delta-to-html)
-Typescript/Javascript package.
+ It is a complete Dart part of the popular and
+ mature [quill-delta-to-html](https://www.npmjs.com/package/quill-delta-to-html)
+ Typescript/Javascript package.
this package doesn't convert the HTML back to Quill Delta as far as we know
-## Translation
-The package offers translations for the quill toolbar and editor, it will follow the system locale unless you set your own locale.
+> **Converting to Delta from Markdown and HTML is highly experimental and shouldn't be used for production applications**, while the current implementation is far from perfect, it could improved a lot however **it will likely not work as expected**, due to differences between HTML and Delta, see this [comment](https://github.com/slab/quill/issues/1551#issuecomment-311458570) for more info.
+> We use it **internally** as it is more suitable for our specific use case, copying content from external websites and pasting it into the editor
+previously breaks the styles, while the current implementation is not ready, it provides a better user experience and doesn't have many downsides.
+
+## 🌐 Translation
+
+The package offers translations for the quill toolbar and editor, it will follow the system locale unless you set your
+own locale.
Open this [page](./doc/translation.md) for more info
-## Testing
+## 🧪 Testing
Please use [flutter_quill_test](https://pub.dev/packages/flutter_quill_test) for testing
-## Contributors
+## 👥 Contributors
- Special thanks to everyone who has contributed to this project...
-
+
@@ -270,20 +304,31 @@ Made with [contrib.rocks](https://contrib.rocks).
and contributors who put time and effort into everything including making all the libraries, tools, and the
information we rely on
- We are incredibly grateful to many individuals and organizations who have played a
-role in the project. This includes the welcoming community, dedicated volunteers, talented developers and
-contributors, and the creators of the open-source tools we rely on.
+ role in the project.
+ This includes the welcoming community, dedicated volunteers, talented developers and
+ contributors, and the creators of the open-source tools we rely on.
We welcome all contributions!
-Please follow these guidelines when contributing to the project. See [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.
+Please follow these guidelines when contributing to the project.
+See [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.
+
-The [CONTRIBUTING.md](./CONTRIBUTING.md) has development notes, if you're planning on contributing to the package, please consider reading it.
+The [CONTRIBUTING.md](./CONTRIBUTING.md) has development notes, if you're planning on contributing to the package,
+please consider reading it.
[Quill]: https://quilljs.com/docs/formats
+
[Flutter]: https://github.com/flutter/flutter
+
[FlutterQuill]: https://pub.dev/packages/flutter_quill
+
[FlutterQuill Extensions]: https://pub.dev/packages/flutter_quill_extensions
+
[ReactQuill]: https://github.com/zenoamaro/react-quill
+
[Youtube Playlist]: https://youtube.com/playlist?list=PLbhaS_83B97vONkOAWGJrSXWX58et9zZ2
+
[Slack Group]: https://join.slack.com/t/bulletjournal1024/shared_invite/zt-fys7t9hi-ITVU5PGDen1rNRyCjdcQ2g
+
[Sample Page]: https://github.com/singerdmx/flutter-quill/blob/master/example/lib/screens/quill/quill_screen.dart
diff --git a/dart_quill_delta/CHANGELOG.md b/dart_quill_delta/CHANGELOG.md
index 0bdf2ede..0064e681 100644
--- a/dart_quill_delta/CHANGELOG.md
+++ b/dart_quill_delta/CHANGELOG.md
@@ -4,6 +4,244 @@
All notable changes to this project will be documented in this file.
+## 9.5.2
+
+* Fix style settings by @AtlasAutocode in https://github.com/singerdmx/flutter-quill/pull/1962
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.5.1...v9.5.2
+
+## 9.5.1
+
+* feat(extensions): Youtube Video Player Support Mode by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1916
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.5.0...v9.5.1
+
+## 9.5.0
+
+* Partial support for table embed by @CatHood0 in https://github.com/singerdmx/flutter-quill/pull/1960
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.9...v9.5.0
+
+## 9.4.9
+
+* Upgrade photo_view to 0.15.0 for flutter_quill_extensions by @singerdmx in https://github.com/singerdmx/flutter-quill/pull/1958
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.8...v9.4.9
+
+## 9.4.8
+
+* Add support for html underline and videos by @CatHood0 in https://github.com/singerdmx/flutter-quill/pull/1955
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.7...v9.4.8
+
+## 9.4.7
+
+* fixed #1953 italic detection error by @CatHood0 in https://github.com/singerdmx/flutter-quill/pull/1954
+
+## New Contributors
+* @CatHood0 made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1954
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.6...v9.4.7
+
+## 9.4.6
+
+* fix: search dialog throw an exception due to missing FlutterQuillLocalizations.delegate in the editor by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1938
+* fix(editor): implement editor shortcut action for home and end keys to fix exception about unimplemented ScrollToDocumentBoundaryIntent by @ellet0 in https://github.com/singerdmx/flutter-quill/pull/1937
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.5...v9.4.6
+
+## 9.4.5
+
+* fix: color picker hex unfocus on web by @geronimol in https://github.com/singerdmx/flutter-quill/pull/1934
+
+## New Contributors
+* @geronimol made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1934
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.4...v9.4.5
+
+## 9.4.4
+
+* fix: Enabled link regex to be overridden by @JoepHeijnen in https://github.com/singerdmx/flutter-quill/pull/1931
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.3...v9.4.4
+
+## 9.4.3
+
+* Fix: setState() called after dispose(): QuillToolbarClipboardButtonState #1895 by @windows7lake in https://github.com/singerdmx/flutter-quill/pull/1926
+
+## New Contributors
+* @windows7lake made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1926
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.2...v9.4.3
+
+## 9.4.2
+
+* Respect autofocus, closes #1923 by @Guillergood in https://github.com/singerdmx/flutter-quill/pull/1924
+
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.1...v9.4.2
+
+## 9.4.1
+
+* replace base64 regex string by @salba360496 in https://github.com/singerdmx/flutter-quill/pull/1919
+
+## New Contributors
+* @salba360496 made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1919
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.4.0...v9.4.1
+
+## 9.4.0
+
+This release can be used without changing anything, although it can break the behavior a little, we provided a way to use the old behavior in `9.3.x`
+
+- Thanks to @Alspb, the search bar/dialog has been reworked for improved UI that fits **Material 3** look and feel, the search happens on the fly, and other minor changes, if you want the old search bar, you can restore it with one line if you're using `QuillSimpleToolbar`:
+ ```dart
+ QuillToolbar.simple(
+ configurations: QuillSimpleToolbarConfigurations(
+ searchButtonType: SearchButtonType.legacy,
+ ),
+ )
+ ```
+ While the changes are mostly to the `QuillToolbarSearchDialog` and it seems this should be `searchDialogType`, we provided the old button with the old dialog in case we update the button in the future.
+
+ If you're using `QuillToolbarSearchButton` in a custom Toolbar, you don't need anything to get the new button. if you want the old button, use the `QuillToolbarLegacySearchButton` widget
+
+ Consider using the improved button with the improved dialog as the legacy button might removed in future releases (for now, it's not deprecated)
+
+
+ Before
+
+ 
+
+
+
+
+
+ Improved
+
+ 
+
+
+
+ For the detailed changes, see #1904
+
+- Korean translations by @leegh519 in https://github.com/singerdmx/flutter-quill/pull/1911
+
+- The usage of `super_clipboard` plugin in `flutter_quill` has been moved to the `flutter_quill_extensions` package, this will restore the old behavior in `8.x.x` though it will break the `onImagePaste`, `onGifPaste` and rich text pasting from HTML or Markdown, most of those features are available in `super_clipboard` plugin except `onImagePaste` which was available as we were using [pasteboard](https://pub.dev/packages/pasteboard), Unfortunately, it's no longer supported on recent versions of Flutter, and some functionalities such as an image from Clipboard and Html paste are not supported on some platforms such as Android, your project will continue to work, calls of `onImagePaste` and `onGifPaste` will be ignored unless you include [flutter_quill_extensions](https://pub.dev/packages/flutter_quill_extensions) package in your project and call:
+
+ ```dart
+ FlutterQuillExtensions.useSuperClipboardPlugin();
+ ```
+ Before using any `flutter_quill` widgets, this will restore the old behavior in `9.x.x`
+
+ We initially wanted to publish `flutter_quill_super_clipboard` to allow:
+ - Using `super_clipboard` without `flutter_quill_extensions` packages and plugins
+ - Using `flutter_quill_extensions` with optional `super_clipboard`
+
+ To simplify the usage, we moved it to `flutter_quill_extensions`, let us know if you want any of the use cases above.
+
+ Overall `super_clipboard` is a Comprehensive clipboard plugin with a lot of features, the only thing that developers didn't want is Rust installation even though it's automated.
+
+ The main goal of `ClipboardService` is to make `super_clipboard` optional, you can use your own implementation, and create a class that implements `ClipboardService`, which you can get by:
+ ```dart
+ // ignore: implementation_imports
+ import 'package:flutter_quill/src/services/clipboard/clipboard_service.dart';
+ ```
+
+ Then you can call:
+ ```dart
+ // ignore: implementation_imports
+import 'package:flutter_quill/src/services/clipboard/clipboard_service_provider.dart';
+ ClipboardServiceProvider.setInstance(YourClipboardService());
+```
+
+ The interface could change at any time and will be updated internally for `flutter_quill` and `flutter_quill_extensions`, we didn't export those two classes by default to avoid breaking changes in case you use them as we might change them in the future.
+
+ If you use the above imports, you might get **breaking changes** in **non-breaking change releases**.
+
+- Subscript and Superscript should now work for all languages and characters
+
+ The previous implementation required the Apple 'SF-Pro-Display-Regular.otf' font which is only licensed/permitted for use on Apple devices.
+We have removed the Apple font from the example
+
+- Allow pasting Markdown and HTML file content from the system to the editor
+
+ Before `9.4.x` if you try to copy an HTML or Markdown file, and paste it into the editor, you will get the file name in the editor
+ Copying an HTML file, or HTML content from apps and websites is different than copying plain text.
+
+ This is why this change requires `super_clipboard` implementation as this is platform-dependent:
+ ```dart
+ FlutterQuillExtensions.useSuperClipboardPlugin();
+ ```
+ as mentioned above.
+
+ The following example for copying a Markdown file:
+
+
+ Markdown File Content
+
+ ```md
+
+ **Note**: This package supports converting from HTML back to Quill delta but it's experimental and used internally when pasting HTML content from the clipboard to the Quill Editor
+
+ You have two options:
+
+ 1. Using [quill_html_converter](./quill_html_converter/) to convert to HTML, the package can convert the Quill delta to HTML well
+ (it uses [vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html)), it is just a handy extension to do it more quickly
+ 1. Another option is to use
+ [vsc_quill_delta_to_html](https://pub.dev/packages/vsc_quill_delta_to_html) to convert your document
+ to HTML.
+ This package has full support for all Quill operations—including images, videos, formulas,
+ tables, and mentions.
+ Conversion can be performed in vanilla Dart (i.e., server-side or CLI) or in Flutter.
+ It is a complete Dart part of the popular and mature [quill-delta-to-html](https://www.npmjs.com/package/quill-delta-to-html)
+ Typescript/Javascript package.
+ this package doesn't convert the HTML back to Quill Delta as far as we know
+
+ ```
+
+
+
+
+ Before
+
+ 
+
+
+
+
+ After
+
+ 
+
+
+
+ Markdown, and HTML converting from and to Delta are **currently far from perfect**, the current implementation could improved a lot
+ however **it will likely not work like expected**, due to differences between HTML and Delta, see this [comment](https://github.com/slab/quill/issues/1551#issuecomment-311458570) for more info.
+
+ 
+
+ For more details see #1915
+
+ Using or converting to HTML or Markdown is highly experimental and shouldn't be used for production applications.
+
+ We use it internally as it is more suitable for our specific use case., copying content from external websites and pasting it into the editor
+ previously breaks the styles, while the current implementation is not ready, it provides a better user experience and doesn't have many downsides.
+
+ Feel free to report any bugs or feature requests at [Issues](https://github.com/singerdmx/flutter-quill/issues) or drop any suggestions and questions at [Discussions](https://github.com/singerdmx/flutter-quill/discussions)
+
+## New Contributors
+* @leegh519 made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1911
+
+**Full Changelog**: https://github.com/singerdmx/flutter-quill/compare/v9.3.21...v9.4.0
+
## 9.3.21
* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898
diff --git a/dart_quill_delta/pubspec.yaml b/dart_quill_delta/pubspec.yaml
index d3b4fa78..8ab52492 100644
--- a/dart_quill_delta/pubspec.yaml
+++ b/dart_quill_delta/pubspec.yaml
@@ -1,6 +1,6 @@
name: dart_quill_delta
description: A port of quill-js-delta from typescript to dart
-version: 9.3.21
+version: 9.5.2
homepage: https://github.com/singerdmx/flutter-quill/tree/master/dart_quill_delta/
repository: https://github.com/singerdmx/flutter-quill/tree/master/dart_quill_delta/
issue_tracker: https://github.com/singerdmx/flutter-quill/issues/
diff --git a/doc/configurations/custom_buttons.md b/doc/configurations/custom_buttons.md
index 24f9e1ca..699b7b02 100644
--- a/doc/configurations/custom_buttons.md
+++ b/doc/configurations/custom_buttons.md
@@ -1,6 +1,9 @@
-# Custom `QuillToolbar` Buttons
+# Custom `QuillToolbar` Buttons ✨
-You may add custom buttons to the _end_ of the toolbar, via the `customButtons` option, which is a `List` of `QuillToolbarCustomButtonOptions`.
+You may add custom buttons to the _end_ of the toolbar, via the `customButtons` option, which is a `List`
+of `QuillToolbarCustomButtonOptions`.
+
+## Adding an Icon 🖌️
To add an Icon, we should use a new `QuillToolbarCustomButtonOptions` class
@@ -13,11 +16,13 @@ To add an Icon, we should use a new `QuillToolbarCustomButtonOptions` class
),
```
+## Example Usage 📚
+
Each `QuillCustomButton` is used as part of the `customButtons` option as follows:
```dart
-QuillToolbar(
- configurations: QuillToolbarConfigurations(
+QuillToolbar.simple(
+ configurations: QuillSimpleToolbarConfigurations(
customButtons: [
QuillToolbarCustomButtonOptions(
icon: const Icon(Icons.ac_unit),
diff --git a/doc/configurations/font_size.md b/doc/configurations/font_size.md
index c73ddcb8..2eb3d8e9 100644
--- a/doc/configurations/font_size.md
+++ b/doc/configurations/font_size.md
@@ -1,8 +1,12 @@
-# Font Size
+# 🔠 Font Size
-Within the editor toolbar, a drop-down with font-sizing capabilities is available. This can be enabled or disabled with `showFontSize`.
+Within the editor toolbar, a drop-down with font-sizing capabilities is available.
+This can be enabled or disabled
+with `showFontSize`.
-When enabled, the default font-size values can be modified via _optional_ `fontSizeValues`. `fontSizeValues` accepts a `Map` consisting of a `String` title for the font size and a `String` value for the font size. Example:
+When enabled, the default font-size values can be modified via _optional_ `fontSizeValues`.
+Accepts a `Map` consisting of a `String` title for the font size and a `String` value for the font size.
+Example:
```dart
fontSizeValues: const {'Small': '8', 'Medium': '24.5', 'Large': '46'}
diff --git a/doc/configurations/localizations_setup.md b/doc/configurations/localizations_setup.md
index cf446868..fa7efa16 100644
--- a/doc/configurations/localizations_setup.md
+++ b/doc/configurations/localizations_setup.md
@@ -1,7 +1,7 @@
-# Localizations Setup
-in addition to the required delegates mentioned above in [Using custom app widget](./using_custom_app_widget.md)
+# 🌍 Localizations Setup
+
+In addition to the required delegates mentioned above in [Using custom app widget](./using_custom_app_widget.md), which are:
-which are:
```dart
localizationsDelegates: const [
DefaultCupertinoLocalizations.delegate,
@@ -9,17 +9,16 @@ localizationsDelegates: const [
DefaultWidgetsLocalizations.delegate,
],
```
-which are used by official Flutter widgets
-The library also needs the
+Which are used by Flutter widgets.
+
+📌 Note: The library also needs the `FlutterQuillLocalizations.delegate`:
+
```dart
// Required localizations delegates ...
FlutterQuillLocalizations.delegate
```
-To offer the default localizations.
-
-But **you don't have to** since we have wrapped the `QuillEditor` and `QuillToolbar` with `FlutterQuillLocalizationsWidget` which will check if it sets then it will go, if not, then it will be provided only for them, so it's not really required, but if you are overriding the `localizationsDelegates` you could also add the `FlutterQuillLocalizations.delegate`
-which won't change anything
+**You don't have to add this explicitly** because we have wrapped the `QuillEditor` and `QuillToolbar` with `FlutterQuillLocalizationsWidget`. This widget will check if the necessary localizations are set; if not, it will provide them only for these widgets. Therefore, it's not strictly required. However, if you are overriding the `localizationsDelegates`, you can also add the `FlutterQuillLocalizations.delegate`.
-There are additional notes in the [Translation](../translation.md) section
+📄 For additional notes, refer to the [Translation](../translation.md) section.
diff --git a/doc/configurations/using_custom_app_widget.md b/doc/configurations/using_custom_app_widget.md
index d9457211..f498db58 100644
--- a/doc/configurations/using_custom_app_widget.md
+++ b/doc/configurations/using_custom_app_widget.md
@@ -1,14 +1,12 @@
-# Using Custom App Widget
+# 🛠️ Using Custom App Widget
-This project uses some adaptive widgets like `AdaptiveTextSelectionToolbar` which require the following delegates:
+The project uses some adaptive widgets like `AdaptiveTextSelectionToolbar` which require the following delegates:
1. Default Material Localizations delegate
2. Default Cupertino Localizations delegate
3. Default Widgets Localizations delegate
-You don't need to include those since they are defined by default
- but if you are using a Custom app or you are overriding the `localizationsDelegates` in the App widget
-then please make sure it includes those:
+You don't need to include these since they are defined by default. However, if you are using a custom app or overriding the `localizationsDelegates` in the App widget, ensure it includes the following:
```dart
localizationsDelegates: const [
@@ -18,8 +16,8 @@ localizationsDelegates: const [
],
```
-You might need more depending on your use case, for example, if you are using custom localizations for your app, using a custom app widget like `FluentApp` from [FluentUI]
-which will also need
+
+You might need more depending on your use case. For example, if you are using custom localizations for your app with a custom app widget like `FluentApp` from [FluentUI], you will also need:
```dart
localizationsDelegates: const [
@@ -29,8 +27,8 @@ localizationsDelegates: const [
],
```
-Note: In the latest versions of `FluentApp` you no longer need to add the `localizationsDelegates` but this is just an example, for more [info](https://github.com/bdlukaa/fluent_ui/pull/946)
+📌 Note: In recent versions of `FluentApp`, you no longer need to add the `localizationsDelegates`. This is just an example. For more information, refer to the [#946](https://github.com/bdlukaa/fluent_ui/pull/946).
-There are additional notes on the [Localizations](./localizations_setup.md) page
+📄 For additional notes, see the [Localizations](./localizations_setup.md) page.
[FluentUI]: https://pub.dev/packages/fluent_ui
diff --git a/doc/custom_embed_blocks.md b/doc/custom_embed_blocks.md
index a4f3b700..19f23ab5 100644
--- a/doc/custom_embed_blocks.md
+++ b/doc/custom_embed_blocks.md
@@ -1,12 +1,16 @@
# Custom Embed Blocks
-Sometimes you want to add some custom content inside your text, custom widgets inside of them. An example is adding notes to the text, or anything custom that you want to add in your text editor.
+Sometimes you want to add some custom content inside your text, custom widgets inside them.
+An example is adding
+notes to the text, or anything custom that you want to add in your text editor.
-The only thing that you need is to add a `CustomBlockEmbed` and provide a builder for it to the `embedBuilders` parameter, to transform the data inside of the Custom Block into a widget!
+The only thing that you need is to add a `CustomBlockEmbed` and provide a builder for it to the `embedBuilders`
+parameter, to transform the data inside the Custom Block into a widget!
Here is an example:
-Starting with the `CustomBlockEmbed`, here we extend it and add the methods that are useful for the 'Note' widget, which will be the `Document`, used by the `flutter_quill` to render the rich text.
+Starting with the `CustomBlockEmbed`, here we extend it and add the methods that are useful for the 'Note' widget, which
+will be the `Document`, used by the `flutter_quill` to render the rich text.
```dart
class NotesBlockEmbed extends CustomBlockEmbed {
@@ -21,7 +25,8 @@ class NotesBlockEmbed extends CustomBlockEmbed {
}
```
-After that, we need to map this "notes" type into a widget. In that case, I used a `ListTile` with a text to show the plain text resume of the note, and the `onTap` function to edit the note.
+After that, we need to map this "notes" type into a widget. In that case, I used a `ListTile` with a text to show the
+plain text resume of the note, and the `onTap` function to edit the note.
Don't forget to add this method to the `QuillEditor` after that!
```dart
@@ -64,7 +69,11 @@ class NotesEmbedBuilder extends EmbedBuilder {
}
```
-And finally, we write the function to add/edit this note. The `showDialog` function shows the QuillEditor to edit the note after the user ends the edition, we check if the document has something, and if it has, we add or edit the `NotesBlockEmbed` inside of a `BlockEmbed.custom` (this is a little detail that will not work if you don't pass the `CustomBlockEmbed` inside of a `BlockEmbed.custom`).
+And finally, we write the function to add/edit this note.
+The `showDialog` function shows the QuillEditor to edit the
+note after the user ends the edition, we check if the document has something, and if it has, we add or edit
+the `NotesBlockEmbed` inside of a `BlockEmbed.custom` (this is a little detail that will not work if you don't pass
+the `CustomBlockEmbed` inside of a `BlockEmbed.custom`).
```dart
Future _addEditNote(BuildContext context, {Document? document}) async {
@@ -116,11 +125,12 @@ Future _addEditNote(BuildContext context, {Document? document}) async {
}
```
-And voila, we have a custom widget inside of the rich text editor!
+And voilà, we have a custom widget inside the rich text editor!
-> 1. For more info and a video example, see the [PR of this feature](https://github.com/singerdmx/flutter-quill/pull/877)
+> 1. For more info and a video example, see
+ the [PR of this feature](https://github.com/singerdmx/flutter-quill/pull/877)
> 2. For more details, check out [this YouTube video](https://youtu.be/pI5p5j7cfHc)
diff --git a/doc/custom_toolbar.md b/doc/custom_toolbar.md
index fc661b6d..f2ba0ff7 100644
--- a/doc/custom_toolbar.md
+++ b/doc/custom_toolbar.md
@@ -1,13 +1,13 @@
# Custom Toolbar
-If you want to use a custom toolbar but still want the support of this library
+If you want to use a custom toolbar but still want the support of this library,
You can use the `QuillBaseToolbar` which is the base for the `QuillToolbar`
Example:
```dart
-QuillToolbar(
- configurations: const QuillToolbarConfigurations(
+QuillToolbar.simple(
+ configurations: const QuillSimpleToolbarConfigurations(
buttonOptions: QuillToolbarButtonOptions(
base: QuillToolbarBaseButtonOptions(
globalIconSize: 20,
@@ -112,4 +112,5 @@ QuillToolbar(
)
```
-if you want a more customized toolbar feel free to create your own and use the `controller` to interact with the editor. checkout the `QuillToolbar` and the buttons inside it to see an example of how that will work
+if you want a more customized toolbar feel free to create your own and use the `controller` to interact with the editor.
+checkout the `QuillToolbar` and the buttons inside it to see an example of how that will work
diff --git a/doc/development_notes.md b/doc/development_notes.md
index aaaba2be..dfdc6960 100644
--- a/doc/development_notes.md
+++ b/doc/development_notes.md
@@ -1,10 +1,22 @@
# Development notes
-- When updating the translations or localizations in the app, please take a look at the [Translation](./translation.md) page as it has important notes in order to work, if you also add a feature that adds new localizations then you need to the instructions of it in order for the translations to take effect
-- We use the same package version and `CHANGELOG.md` for all the packages, for more [details](https://github.com/singerdmx/flutter-quill/pull/1878), the process is automated. We have a script that will do the followings:
- 1. Generate the `CHANGELOG.md` files by `CHANGELOG_JSON.json` (source of data) and then paste them into all the packages we have (overwrite), you don't need to
- manually change/update any of the mentioned files above, once a new GitHub release published, the CI will take the release notes from the release, pass the info to the
- script, the release notes can be auto-generated by Github using a button, a descirptive PRs title would help but you don't have to since we can change it at anytime.
- 2. The script require the new version as an argument, you don't need to run the script manually, when a maintainer create a new tag and publish a new GitHub release, the publish workflow will extract the new version from the tag name, run the script (pass the extracted version as an argument), commit the changes and push them into the repository, the script will update the `version` property for all the packages so the `flutter pub publish` will use the new version for each package correctly.
+- When updating the translations or localizations in the app, please take a look at the [Translation](./translation.md)
+ page as it has important notes to work.
+ If you also add a feature that adds new localizations, then you need it
+ to the instructions of it in order for the translations to take effect
+- We use the same package version and `CHANGELOG.md` for all the packages, for
+ more [details](https://github.com/singerdmx/flutter-quill/pull/1878), the process is automated. We have a script that
+ will do the following:
+ 1. Generate the `CHANGELOG.md` files by `CHANGELOG_JSON.json` (source of data) and then paste them into all the
+ packages we have (overwrite), you don't need to
+ manually change/update any of the mentioned files above, once a new GitHub release published, the CI will take
+ the release notes from the release, pass the info to the
+ script, the release notes can be auto-generated by GitHub using a button, a descriptive PRs title would help but
+ you don't have to since we can change it at anytime.
+ 2. The script require the new version as an argument, you don't need to run the script manually, when a maintainer
+ create a new tag and publish a new GitHub release, the publish workflow will extract the new version from the tag
+ name, run the script (pass the extracted version as an argument), commit the changes and push them into the
+ repository, the script will update the `version` property for all the packages so the `flutter pub publish` will
+ use the new version for each package correctly.
- the script will be used the CI and no need to run it manually
\ No newline at end of file
+ the script will be used the CI and no need to run it manually
\ No newline at end of file
diff --git a/doc/todo.md b/doc/todo.md
deleted file mode 100644
index 7617b022..00000000
--- a/doc/todo.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# Todo
-
-This is a todo list page that added recently and will be updated soon.
-
-## Table of contents
-- [Todo](#todo)
- - [Table of contents](#table-of-contents)
- - [Flutter Quill](#flutter-quill)
- - [Features](#features)
- - [Improvemenets](#improvemenets)
- - [Bugs](#bugs)
- - [Flutter Quill Extensions](#flutter-quill-extensions)
- - [Features](#features-1)
- - [Improvemenets](#improvemenets-1)
- - [Bugs](#bugs-1)
-
-## Flutter Quill
-
-### Features
-
- - Add support for Text magnification feature, for more [info](https://github.com/singerdmx/flutter-quill/issues/1504)
- - Provide a way to expose quills undo redo stacks, for more [info](https://github.com/singerdmx/flutter-quill/issues/1381)
- - Add callback to the `QuillToolbarColorButton` for custom color picking logic
-
-### Improvemenets
-
- - Improve the Raw Quill Editor, for more [info](https://github.com/singerdmx/flutter-quill/issues/1509)
- - Provide more support to all the platforms
- - Extract the shared properties between `QuillRawEditorConfigurations` and `QuillEditorConfigurations`
- - The todo in the this [commit](https://github.com/singerdmx/flutter-quill/commit/79597ea6425357795c0663588ac079665241f23a) needs to be checked
- - use `maybeOf` and of instead `ofNotNull` in the providers to follow flutter offical convenstion, completly rework the providers and update the build context extensions
- - Add line through to the text when the check point checked is true
- - Change the color of the numbers and dots in ol/ul to match the ones in the item list
- - Fix the bugs of the font family and font size
- - Try to update Quill Html Converter
- - When pasting a HTML text from cliboard by not using the context menu builder, the new logic won't work
- - When selecting all text and paste HTML text, it will not replace the current text, instead it will add a text
- - Add strike-through in checkbox text when the checkpoint is checked
- - No more using of dynamic
- - There is a bug here, the first character is not being formatted when choosing font family or font size and type in the editor
- - Fix the toolbar and the toolbar buttons, rework some of them, for example missing tooltips
-
-### Bugs
-
-Empty for now.
-Please go to the [issues](https://github.com/singerdmx/flutter-quill/issues)
-
-
-## Flutter Quill Extensions
-
-### Features
-
-### Improvemenets
-
-### Bugs
\ No newline at end of file
diff --git a/doc/translation.md b/doc/translation.md
index e255a461..130eb653 100644
--- a/doc/translation.md
+++ b/doc/translation.md
@@ -1,6 +1,8 @@
-# Translation
+# 🌍 Translation
-The package offers translations for the quill toolbar and editor, it will follow the locale that is defined in your `WidgetsApp` for example `MaterialApp` which usually follows the system locally unless you set your own locale with:
+The package offers translations for the quill toolbar and editor, it will follow the locale that is defined in
+your `WidgetsApp` for example `MaterialApp` which usually follows the system locally unless you set your own locale
+with:
```dart
QuillToolbar.simple(
@@ -23,46 +25,76 @@ Expanded(
)
```
-Currently, translations are available for these 37 locales:
+## 🌐 Supported Locales
-* `Locale('en')`, `Locale('ar')`, `Locale('bn')`, `Locale('bs')`
-* `Locale('cs')`, `Locale('de')`, `Locale('da')`, `Locale('fr')`
-* `Locale('he')`, `Locale('zh', 'CN')`, `Locale('zh', 'HK')`
-* `Locale('ko')`, `Locale('ku')`, `Locale('ku', 'CKB')`
-* `Locale('ro', 'RO')`, `Locale('ru')`, `Locale('es')`, `Locale('tk')`, `Locale('tr')`
-* `Locale('uk')`, `Locale('ur')`, `Locale('pt')`, `Locale('pl')`
-* `Locale('vi')`, `Locale('id')`, `Locale('it')`, `Locale('ms')`
-* `Locale('nl')`, `Locale('no')`, `Locale('ne', 'NP')`, `Locale('fa')`, `Locale('hi')`
-* `Locale('sk')`, `Locale('sr')`, `Locale('sv')`, `Locale('sw')`, `Locale('ja')`
+Currently, translations are available for these 41 locales:
-#### Contributing to translations
+* `Locale('en')`, `Locale('hi')`, `Locale('ku', 'CKB')`, `Locale('pt')`, `Locale('sr')`, `Locale('ur')`
+* `Locale('bg')`, `Locale('en', 'US')`, `Locale('id')`, `Locale('ms')`, `Locale('pt', 'br')`, `Locale('sv')`, `Locale('vi')`
+* `Locale('bn')`, `Locale('es')`, `Locale('it')`, `Locale('ne')`, `Locale('ro')`, `Locale('sw')`, `Locale('zh')`
+* `Locale('cs')`, `Locale('fa')`, `Locale('ja')`, `Locale('nl')`, `Locale('ro', 'RO')`, `Locale('tk')`, `Locale('zh', 'CN')`
+* `Locale('da')`, `Locale('fr')`, `Locale('ko')`, `Locale('no')`, `Locale('ru')`, `Locale('tr')`, `Locale('zh', 'HK')`
+* `Locale('de')`, `Locale('he')`, `Locale('ku')`, `Locale('pl')`, `Locale('ar')`, `Locale('sk')`, `Locale('uk')`
-The translation files are located in the [l10n folder](../lib/src/l10n/). Feel free to contribute your own translations, just copy the [English translations](../lib/src/l10n/quill_en.arb) map and replace the values with your translations.
+## 📌 Contributing to translations
-Add a new file in the l10n folder with the following name
-`quill_${localName}.arb` for example `quill_de.arb`
+The translation files are located in the [l10n](../lib/src/l10n/) folder. Feel free to contribute your own translations.
-paste the English version and replace the values
+You can take a look at the [untranslated.json](../lib/src/l10n/untranslated.json) file, which is a generated file that
+tells you which keys with which locales haven't translated so you can find the missing easily.
-Also, you can take a look at the [untranslated.json](../lib/src/l10n/untranslated.json) JSON file, which is a generated file that tells you which keys with which locales haven't translated so you can find the missings easily
+
+Add new local
-After you are done and want to test the changes, run the following in the root folder (preferred):
+1. Create a new file in [l10n](../lib/src/l10n/) folder, with the following name`quill_${localName}.arb` for
+ example `quill_de.arb`
-```
-./scripts/regenerate_translations.sh
-```
+2. Copy the [Arb Template](../lib/src/l10n/quill_en.arb) file and paste it into your new file, replace the values with
+ your translations
+
+3. Update [Supported Locales](#supported-locales) section in this page to update the supported translations for both the
+ number and the list
+
+
+
+
+Update existing local
+
+1. Navigate to [l10n](../lib/src/l10n/) folder
-or (if you can't run the script for some reasons):
+2. Find the existing local, let's say you want to update the Korean translations, it will be `quill_ko.arb`
+3. Use [untranslated.json](../lib/src/l10n/untranslated.json) as a reference to find missing, update or add what you
+ want
+ to translate.
+
+
+
+
+> We usually avoid **updating the existing value of a key in the template file without updating the key or creating a new
+one**.
+> This will not update the [untranslated.json](../lib/src/l10n/untranslated.json) correctly and will make it harder
+for contributors to find missing or incomplete.
+
+Once you finish, run the following script:
+
+```bash
+dart ./scripts/regenerate_translations.dart
```
+
+Or (if you can't run the script for some reason):
+
+```bash
flutter gen-l10n
dart fix --apply ./lib/src/l10n/generated
dart format ./lib/src/l10n/generated
```
-This will generate the new dart files from the arb files in order to take effect, otherwise, you won't notice a difference
+The script above will generate Dart files from the Arb files to test the changes and take effect, otherwise you
+won't notice a difference.
-> If you added or removed translations, make sure to update `_expectedTranslationKeysLength` variable in `./scripts/ensure_translations_correct.dart`
+> 🔧 If you added or removed translations in the template file, make sure to update `_expectedTranslationKeysLength`
+> variable in [scripts/ensure_translations_correct.dart](../scripts/ensure_translations_correct.dart)
> Otherwise you don't need to update it.
Then open a pull request so everyone can benefit from your translations!
diff --git a/example/.metadata b/example/.metadata
index e724e168..68b331fb 100644
--- a/example/.metadata
+++ b/example/.metadata
@@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited.
version:
- revision: "5dcb86f68f239346676ceb1ed1ea385bd215fba1"
+ revision: "761747bfc538b5af34aa0d3fac380f1bc331ec49"
channel: "stable"
project_type: app
@@ -13,11 +13,11 @@ project_type: app
migration:
platforms:
- platform: root
- create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1
- base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1
- - platform: linux
- create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1
- base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1
+ create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ - platform: web
+ create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
# User provided section
diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml
index 735e0400..f20ebe56 100644
--- a/example/analysis_options.yaml
+++ b/example/analysis_options.yaml
@@ -11,7 +11,7 @@ linter:
annotate_overrides: true
avoid_empty_else: true
avoid_escaping_inner_quotes: true
- avoid_print: false
+ avoid_print: true
avoid_redundant_argument_values: false
avoid_types_on_closure_parameters: true
avoid_void_async: true
diff --git a/example/assets/fonts/SF-Pro-Display-Regular.otf b/example/assets/fonts/SF-Pro-Display-Regular.otf
deleted file mode 100755
index 1279121f..00000000
Binary files a/example/assets/fonts/SF-Pro-Display-Regular.otf and /dev/null differ
diff --git a/example/lib/gen/fonts.gen.dart b/example/lib/gen/fonts.gen.dart
index f61cfa18..5a0580f1 100644
--- a/example/lib/gen/fonts.gen.dart
+++ b/example/lib/gen/fonts.gen.dart
@@ -10,9 +10,6 @@
class FontFamily {
FontFamily._();
- /// Font family: SF-UI-Display
- static const String sFUIDisplay = 'SF-UI-Display';
-
/// Font family: ibarra-real-nova
static const String ibarraRealNova = 'ibarra-real-nova';
diff --git a/example/lib/main.dart b/example/lib/main.dart
index fbca48eb..2a8ed52c 100644
--- a/example/lib/main.dart
+++ b/example/lib/main.dart
@@ -8,6 +8,7 @@ import 'package:flutter_localizations/flutter_localizations.dart'
GlobalWidgetsLocalizations;
import 'package:flutter_quill/flutter_quill.dart' show Document;
import 'package:flutter_quill/translations.dart' show FlutterQuillLocalizations;
+import 'package:flutter_quill_extensions/flutter_quill_extensions.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart'
show HydratedBloc, HydratedStorage;
import 'package:path_provider/path_provider.dart'
@@ -29,6 +30,7 @@ void main() async {
? HydratedStorage.webStorageDirectory
: await getApplicationDocumentsDirectory(),
);
+ FlutterQuillExtensions.useSuperClipboardPlugin();
runApp(const MyApp());
}
@@ -69,6 +71,9 @@ class MyApp extends StatelessWidget {
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
+ // Uncomment this line to use provide flutter quill localizations
+ // in your widgets app, otherwise the quill widgets will provide it
+ // internally:
// FlutterQuillLocalizations.delegate,
],
supportedLocales: FlutterQuillLocalizations.supportedLocales,
diff --git a/example/lib/screens/home/widgets/home_screen.dart b/example/lib/screens/home/widgets/home_screen.dart
index 5d7a4369..6bfd6472 100644
--- a/example/lib/screens/home/widgets/home_screen.dart
+++ b/example/lib/screens/home/widgets/home_screen.dart
@@ -155,7 +155,7 @@ class HomeScreen extends StatelessWidget {
),
);
} catch (e) {
- print(
+ debugPrint(
'Error while loading json delta file: ${e.toString()}',
);
scaffoldMessenger.showText(
diff --git a/example/lib/screens/quill/my_quill_editor.dart b/example/lib/screens/quill/my_quill_editor.dart
index 21791c7c..d50f75d8 100644
--- a/example/lib/screens/quill/my_quill_editor.dart
+++ b/example/lib/screens/quill/my_quill_editor.dart
@@ -4,11 +4,13 @@ import 'package:cached_network_image/cached_network_image.dart'
show CachedNetworkImageProvider;
import 'package:desktop_drop/desktop_drop.dart' show DropTarget;
import 'package:flutter/material.dart';
-import 'package:flutter_quill/extensions.dart' show isAndroid, isIOS, isWeb;
+import 'package:flutter_quill/extensions.dart'
+ show isAndroid, isDesktop, isIOS, isWeb;
import 'package:flutter_quill/flutter_quill.dart';
import 'package:flutter_quill_extensions/embeds/widgets/image.dart'
show getImageProviderByImageSource, imageFileExtensions;
import 'package:flutter_quill_extensions/flutter_quill_extensions.dart';
+import 'package:flutter_quill_extensions/models/config/video/editor/youtube_video_support_mode.dart';
import 'package:path/path.dart' as path;
import '../../extensions/scaffold_messenger.dart';
@@ -28,6 +30,7 @@ class MyQuillEditor extends StatelessWidget {
@override
Widget build(BuildContext context) {
+ final defaultTextStyle = DefaultTextStyle.of(context);
return QuillEditor(
scrollController: scrollController,
focusNode: focusNode,
@@ -41,36 +44,29 @@ class MyQuillEditor extends StatelessWidget {
useTextColorForDot: true,
),
),
- customStyles: const DefaultStyles(
+ customStyles: DefaultStyles(
h1: DefaultTextBlockStyle(
- TextStyle(
+ defaultTextStyle.style.copyWith(
fontSize: 32,
height: 1.15,
fontWeight: FontWeight.w300,
),
- VerticalSpacing(16, 0),
- VerticalSpacing(0, 0),
+ const VerticalSpacing(16, 0),
+ const VerticalSpacing(0, 0),
null,
),
- sizeSmall: TextStyle(fontSize: 9),
- subscript: TextStyle(
- fontFamily: 'SF-UI-Display',
- fontFeatures: [FontFeature.subscripts()],
- ),
- superscript: TextStyle(
- fontFamily: 'SF-UI-Display',
- fontFeatures: [FontFeature.superscripts()],
- ),
+ sizeSmall: defaultTextStyle.style.copyWith(fontSize: 9),
),
scrollable: true,
- placeholder: 'Start writting your notes...',
+ placeholder: 'Start writing your notes...',
padding: const EdgeInsets.all(16),
onImagePaste: (imageBytes) async {
if (isWeb()) {
return null;
}
// We will save it to system temporary files
- final newFileName = '${DateTime.now().toIso8601String()}.png';
+ final newFileName =
+ 'imageFile-${DateTime.now().toIso8601String()}.png';
final newPath = path.join(
io.Directory.systemTemp.path,
newFileName,
@@ -85,7 +81,7 @@ class MyQuillEditor extends StatelessWidget {
return null;
}
// We will save it to system temporary files
- final newFileName = '${DateTime.now().toIso8601String()}.gif';
+ final newFileName = 'gifFile-${DateTime.now().toIso8601String()}.gif';
final newPath = path.join(
io.Directory.systemTemp.path,
newFileName,
@@ -129,6 +125,13 @@ class MyQuillEditor extends StatelessWidget {
);
},
),
+ videoEmbedConfigurations: QuillEditorVideoEmbedConfigurations(
+ // Loading YouTube videos on Desktop is not supported yet
+ // when using iframe platform view
+ youtubeVideoSupportMode: isDesktop(supportWeb: false)
+ ? YoutubeVideoSupportMode.customPlayerWithDownloadUrl
+ : YoutubeVideoSupportMode.iframeView,
+ ),
)),
TimeStampEmbedBuilderWidget(),
],
diff --git a/example/lib/screens/quill/my_quill_toolbar.dart b/example/lib/screens/quill/my_quill_toolbar.dart
index 7e177956..3f0281fb 100644
--- a/example/lib/screens/quill/my_quill_toolbar.dart
+++ b/example/lib/screens/quill/my_quill_toolbar.dart
@@ -222,25 +222,7 @@ class MyQuillToolbar extends StatelessWidget {
'35': '35.0',
'40': '40.0'
},
- // headerStyleType: HeaderStyleType.buttons,
- // buttonOptions: QuillSimpleToolbarButtonOptions(
- // base: QuillToolbarBaseButtonOptions(
- // afterButtonPressed: focusNode.requestFocus,
- // // iconSize: 20,
- // iconTheme: QuillIconTheme(
- // iconButtonSelectedData: IconButtonData(
- // style: IconButton.styleFrom(
- // foregroundColor: Colors.blue,
- // ),
- // ),
- // iconButtonUnselectedData: IconButtonData(
- // style: IconButton.styleFrom(
- // foregroundColor: Colors.red,
- // ),
- // ),
- // ),
- // ),
- //),
+ searchButtonType: SearchButtonType.modern,
customButtons: [
QuillToolbarCustomButtonOptions(
icon: const Icon(Icons.add_alarm_rounded),
@@ -306,6 +288,7 @@ class MyQuillToolbar extends StatelessWidget {
: onImageInsert,
),
),
+ tableButtonOptions: const QuillToolbarTableButtonOptions(),
),
),
);
diff --git a/example/lib/screens/quill/quill_screen.dart b/example/lib/screens/quill/quill_screen.dart
index ec97b5d8..9cae766b 100644
--- a/example/lib/screens/quill/quill_screen.dart
+++ b/example/lib/screens/quill/quill_screen.dart
@@ -127,7 +127,7 @@ class _QuillScreenState extends State {
IconButton(
tooltip: 'Print to log',
onPressed: () {
- print(
+ debugPrint(
jsonEncode(_controller.document.toDelta().toJson()),
);
ScaffoldMessenger.of(context).showText(
diff --git a/example/lib/screens/quill/samples/quill_videos_sample.dart b/example/lib/screens/quill/samples/quill_videos_sample.dart
index 90f0243e..9e47456d 100644
--- a/example/lib/screens/quill/samples/quill_videos_sample.dart
+++ b/example/lib/screens/quill/samples/quill_videos_sample.dart
@@ -1,7 +1,7 @@
const quillVideosSample = [
{'insert': '\n'},
{
- 'insert': {'video': 'https://youtu.be/xz6_AlJkDPA'},
+ 'insert': {'video': 'https://youtu.be/fq4N0hgOWzU?si=SqoY_bAZYnjCkUvn'},
'attributes': {
'width': '300',
'height': '300',
@@ -10,10 +10,8 @@ const quillVideosSample = [
},
{'insert': '\n'},
{'insert': '\n'},
- {'insert': 'And this is just a youtube video'},
{'insert': '\n'},
- {
- 'insert': 'This sample is not complete.',
- },
+ {'insert': 'The video above is a Youtube video.'},
+ {'insert': '\n'},
{'insert': '\n'},
];
diff --git a/example/pubspec.yaml b/example/pubspec.yaml
index 2c979d07..c89c5374 100644
--- a/example/pubspec.yaml
+++ b/example/pubspec.yaml
@@ -19,7 +19,7 @@ dependencies:
flutter_quill_test: ^9.3.4
quill_html_converter: ^9.3.4
quill_pdf_converter: ^9.3.4
- # Normal packages
+ # Dart Packages
path: ^1.8.3
equatable: ^2.0.5
cross_file: ^0.3.4
@@ -108,8 +108,5 @@ flutter:
- family: roboto-mono
fonts:
- asset: assets/fonts/RobotoMono-Regular.ttf
- - family: SF-UI-Display
- fonts:
- - asset: assets/fonts/SF-Pro-Display-Regular.otf
flutter_gen:
\ No newline at end of file
diff --git a/example/web/index.html b/example/web/index.html
index dbf15e99..e627ce09 100644
--- a/example/web/index.html
+++ b/example/web/index.html
@@ -23,45 +23,24 @@
-
+
- example
+ Flutter Quill Example
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
-
+