diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5b0c27e6..cc1752a8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -59,3 +59,6 @@ jobs: - name: 🧪 Run Flutter tests run: flutter test + + - name: 🔍 Check the translations + run: dart ./scripts/ensure_translations_correct.dart diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b7ba457..0bdf2ede 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,37 @@ All notable changes to this project will be documented in this file. +## 9.3.21 + +* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898 + + +**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 +* 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 + +## New Contributors +* @crasowas made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1890 + +**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 + + +**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 + + +**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) diff --git a/CHANGELOG_DATA.json b/CHANGELOG_DATA.json index 9baa4269..38551658 100644 --- a/CHANGELOG_DATA.json +++ b/CHANGELOG_DATA.json @@ -1 +1 @@ -{"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.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/README.md b/README.md index 904b77f3..e37e1dea 100644 --- a/README.md +++ b/README.md @@ -33,10 +33,8 @@ Check out our [Youtube Playlist] or [Code Introduction](./doc/code_introduction. to take a detailed walkthrough of the code base. You can join our [Slack Group] for discussion. -Pub page: [FlutterQuill]
-If you are viewing this page from pub.dev page, then you -might have some issues with opening some links, please open -it's in the GitHub repo instead. +> 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. ## Table of contents - [Flutter Quill](#flutter-quill) @@ -67,9 +65,9 @@ it's in the GitHub repo instead.
Screenshot 1 -Screenshot 2 -Screenshot 3 -Screenshot 4 +Screenshot 2 +Screenshot 3 +Screenshot 4 @@ -229,12 +227,12 @@ To see how to use the extension package, please take a look at the [README](./fl 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 support converting from HTML back to Quill delta but it's experimental and used internally when pasting Html content from the cliboard 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 just a handy extension to do it more quickly +(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. @@ -257,7 +255,7 @@ Please use [flutter_quill_test](https://pub.dev/packages/flutter_quill_test) for ## Contributors -Special thanks to everyone who has contributed to this project... +- Special thanks to everyone who has contributed to this project... @@ -267,14 +265,19 @@ Special thanks to everyone who has contributed to this project... Made with [contrib.rocks](https://contrib.rocks). -We welcome contributions! +- Thanks to the [Flutter Team](https://flutter.dev/) +- Thanks to the welcoming community, the volunteers who helped along the journey, developers, contributors + 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. -Please follow these guidelines when contributing to the project. See [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.
+We welcome all contributions! -We must mention that the [CONTRIBUTING.md](./CONTRIBUTING.md) has development notes, so if you're planning on contributing to the repo, -please consider reading it. +Please follow these guidelines when contributing to the project. See [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.
-You can check the [Todo](./doc/todo.md) list if you want to +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 diff --git a/dart_quill_delta/CHANGELOG.md b/dart_quill_delta/CHANGELOG.md index 3b7ba457..0bdf2ede 100644 --- a/dart_quill_delta/CHANGELOG.md +++ b/dart_quill_delta/CHANGELOG.md @@ -4,6 +4,37 @@ All notable changes to this project will be documented in this file. +## 9.3.21 + +* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898 + + +**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 +* 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 + +## New Contributors +* @crasowas made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1890 + +**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 + + +**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 + + +**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) diff --git a/dart_quill_delta/pubspec.yaml b/dart_quill_delta/pubspec.yaml index 18fa2ace..d3b4fa78 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.17 +version: 9.3.21 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/translation.md b/doc/translation.md index 94253ee7..e255a461 100644 --- a/doc/translation.md +++ b/doc/translation.md @@ -60,7 +60,9 @@ 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 +> If you added or removed translations, make sure to update `_expectedTranslationKeysLength` variable in `./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/flutter_quill_extensions/CHANGELOG.md b/flutter_quill_extensions/CHANGELOG.md index 3b7ba457..0bdf2ede 100644 --- a/flutter_quill_extensions/CHANGELOG.md +++ b/flutter_quill_extensions/CHANGELOG.md @@ -4,6 +4,37 @@ All notable changes to this project will be documented in this file. +## 9.3.21 + +* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898 + + +**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 +* 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 + +## New Contributors +* @crasowas made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1890 + +**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 + + +**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 + + +**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) diff --git a/flutter_quill_extensions/README.md b/flutter_quill_extensions/README.md index 04681917..6bcbb4cc 100644 --- a/flutter_quill_extensions/README.md +++ b/flutter_quill_extensions/README.md @@ -241,8 +241,6 @@ OnDragDoneCallback get _onDragDone { - Handle different errors ``` -Please notice that the saving image functionality is not supported on Linux yet. - ## Contributing We welcome contributions! @@ -252,4 +250,10 @@ Please follow these guidelines when contributing to our project. See [CONTRIBUTI ## Acknowledgments - Thanks to the [Flutter Team](https://flutter.dev/) -- Thanks to [flutter_quill](https://pub.dev/packages/flutter_quill) +- Thanks to the welcoming community, the volunteers who helped along the journey, developers, contributors + 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. diff --git a/flutter_quill_extensions/pubspec.yaml b/flutter_quill_extensions/pubspec.yaml index da6202c1..ae49584e 100644 --- a/flutter_quill_extensions/pubspec.yaml +++ b/flutter_quill_extensions/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_quill_extensions description: Embed extensions for flutter_quill including image, video, formula and etc. -version: 9.3.17 +version: 9.3.21 homepage: https://github.com/singerdmx/flutter-quill/tree/master/flutter_quill_extensions/ repository: https://github.com/singerdmx/flutter-quill/tree/master/flutter_quill_extensions/ issue_tracker: https://github.com/singerdmx/flutter-quill/issues/ diff --git a/flutter_quill_test/CHANGELOG.md b/flutter_quill_test/CHANGELOG.md index 3b7ba457..0bdf2ede 100644 --- a/flutter_quill_test/CHANGELOG.md +++ b/flutter_quill_test/CHANGELOG.md @@ -4,6 +4,37 @@ All notable changes to this project will be documented in this file. +## 9.3.21 + +* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898 + + +**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 +* 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 + +## New Contributors +* @crasowas made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1890 + +**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 + + +**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 + + +**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) diff --git a/flutter_quill_test/pubspec.yaml b/flutter_quill_test/pubspec.yaml index 573e20d2..e7e9cb4a 100644 --- a/flutter_quill_test/pubspec.yaml +++ b/flutter_quill_test/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_quill_test description: Test utilities for flutter_quill which includes methods to simplify interacting with the editor in test cases. -version: 9.3.17 +version: 9.3.21 homepage: https://github.com/singerdmx/flutter-quill/tree/master/flutter_quill_test/ repository: https://github.com/singerdmx/flutter-quill/tree/master/flutter_quill_test/ issue_tracker: https://github.com/singerdmx/flutter-quill/issues/ diff --git a/lib/src/l10n/generated/quill_localizations.dart b/lib/src/l10n/generated/quill_localizations.dart index ab25d266..b9df03c0 100644 --- a/lib/src/l10n/generated/quill_localizations.dart +++ b/lib/src/l10n/generated/quill_localizations.dart @@ -211,18 +211,6 @@ abstract class FlutterQuillLocalizations { /// **'Copy'** String get copy; - /// No description provided for @cut. - /// - /// In en, this message translates to: - /// **'Cut'** - String get cut => 'Cut'; - - /// No description provided for @paste. - /// - /// In en, this message translates to: - /// **'Paste'** - String get paste => 'Paste'; - /// No description provided for @remove. /// /// In en, this message translates to: @@ -667,6 +655,18 @@ abstract class FlutterQuillLocalizations { /// **'Case sensitivity and whole word search'** String get caseSensitivityAndWholeWordSearch; + /// No description provided for @caseSensitive. + /// + /// In en, this message translates to: + /// **'Case sensitive'** + String get caseSensitive; + + /// No description provided for @wholeWord. + /// + /// In en, this message translates to: + /// **'Whole word'** + String get wholeWord; + /// No description provided for @insertImage. /// /// In en, this message translates to: @@ -708,6 +708,30 @@ abstract class FlutterQuillLocalizations { /// In en, this message translates to: /// **'Paste a video using a link'** String get pasteAVideoUsingALink; + + /// No description provided for @close. + /// + /// In en, this message translates to: + /// **'Close'** + String get close; + + /// No description provided for @searchSettings. + /// + /// In en, this message translates to: + /// **'Search settings'** + String get searchSettings; + + /// No description provided for @cut. + /// + /// In en, this message translates to: + /// **'Cut'** + String get cut; + + /// No description provided for @paste. + /// + /// In en, this message translates to: + /// **'Paste'** + String get paste; } class _FlutterQuillLocalizationsDelegate diff --git a/lib/src/l10n/generated/quill_localizations_ar.dart b/lib/src/l10n/generated/quill_localizations_ar.dart index 4d314855..a3933936 100644 --- a/lib/src/l10n/generated/quill_localizations_ar.dart +++ b/lib/src/l10n/generated/quill_localizations_ar.dart @@ -250,6 +250,12 @@ class FlutterQuillLocalizationsAr extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'حالة الحساسية والبحث عن كلمة كاملة'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'إدراج صورة'; @@ -270,4 +276,16 @@ class FlutterQuillLocalizationsAr extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'لصق فيديو باستخدام رابط'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_bg.dart b/lib/src/l10n/generated/quill_localizations_bg.dart index 6a2ac381..0d09070b 100644 --- a/lib/src/l10n/generated/quill_localizations_bg.dart +++ b/lib/src/l10n/generated/quill_localizations_bg.dart @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsBg extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Чувствителност на кутията и търсене на цялата дума'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Вмъкване на изображение'; @@ -272,4 +278,16 @@ class FlutterQuillLocalizationsBg extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_bn.dart b/lib/src/l10n/generated/quill_localizations_bn.dart index 11722f29..d0fce65a 100644 --- a/lib/src/l10n/generated/quill_localizations_bn.dart +++ b/lib/src/l10n/generated/quill_localizations_bn.dart @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsBn extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'কেস সেন্সিটিভিটি এবং পূর্ণ শব্দ অনুসন্ধান'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'চিত্র সন্নিবেশ'; @@ -272,4 +278,16 @@ class FlutterQuillLocalizationsBn extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_cs.dart b/lib/src/l10n/generated/quill_localizations_cs.dart index 40291575..4bee5da7 100644 --- a/lib/src/l10n/generated/quill_localizations_cs.dart +++ b/lib/src/l10n/generated/quill_localizations_cs.dart @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsCs extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Citlivost na velká a malá písmena a vyhledávání celého slova'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Vložit obrázek'; @@ -272,4 +278,16 @@ class FlutterQuillLocalizationsCs extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Vložit video pomocí odkazu'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_da.dart b/lib/src/l10n/generated/quill_localizations_da.dart index ca0def95..aed1dbbf 100644 --- a/lib/src/l10n/generated/quill_localizations_da.dart +++ b/lib/src/l10n/generated/quill_localizations_da.dart @@ -128,7 +128,7 @@ class FlutterQuillLocalizationsDa extends FlutterQuillLocalizations { String get alignRight => 'Align right'; @override - String get justifyWinWidth => 'Justify'; + String get justifyWinWidth => 'Justify win width'; @override String get textDirection => 'Text direction'; @@ -250,6 +250,12 @@ class FlutterQuillLocalizationsDa extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Stor- og småbogstavsfølsomhed samt helordsøgning'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Indsæt billede'; @@ -270,4 +276,16 @@ class FlutterQuillLocalizationsDa extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_de.dart b/lib/src/l10n/generated/quill_localizations_de.dart index ea60468d..e987cd86 100644 --- a/lib/src/l10n/generated/quill_localizations_de.dart +++ b/lib/src/l10n/generated/quill_localizations_de.dart @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsDe extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Groß- und Kleinschreibung sowie Ganzwortsuche'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Bild einfügen'; @@ -276,4 +282,16 @@ class FlutterQuillLocalizationsDe extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_en.dart b/lib/src/l10n/generated/quill_localizations_en.dart index d2bbb75d..a73d71ca 100644 --- a/lib/src/l10n/generated/quill_localizations_en.dart +++ b/lib/src/l10n/generated/quill_localizations_en.dart @@ -25,12 +25,6 @@ class FlutterQuillLocalizationsEn extends FlutterQuillLocalizations { @override String get copy => 'Copy'; - @override - String get cut => 'Cut'; - - @override - String get paste => 'Paste'; - @override String get remove => 'Remove'; @@ -134,7 +128,7 @@ class FlutterQuillLocalizationsEn extends FlutterQuillLocalizations { String get alignRight => 'Align right'; @override - String get justifyWinWidth => 'Justify'; + String get justifyWinWidth => 'Justify win width'; @override String get textDirection => 'Text direction'; @@ -258,6 +252,12 @@ class FlutterQuillLocalizationsEn extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Case sensitivity and whole word search'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Insert image'; @@ -278,6 +278,18 @@ class FlutterQuillLocalizationsEn extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } /// The translations for English, as used in the United States (`en_US`). @@ -408,7 +420,7 @@ class FlutterQuillLocalizationsEnUs extends FlutterQuillLocalizationsEn { String get alignRight => 'Align right'; @override - String get justifyWinWidth => 'Justify'; + String get justifyWinWidth => 'Justify win width'; @override String get textDirection => 'Text direction'; diff --git a/lib/src/l10n/generated/quill_localizations_es.dart b/lib/src/l10n/generated/quill_localizations_es.dart index 2879c8ee..d418394c 100644 --- a/lib/src/l10n/generated/quill_localizations_es.dart +++ b/lib/src/l10n/generated/quill_localizations_es.dart @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsEs extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Sensibilidad a mayúsculas y búsqueda de palabras completas'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Insertar imagen'; @@ -272,4 +278,16 @@ class FlutterQuillLocalizationsEs extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_fa.dart b/lib/src/l10n/generated/quill_localizations_fa.dart index 4cab1bec..7566152d 100644 --- a/lib/src/l10n/generated/quill_localizations_fa.dart +++ b/lib/src/l10n/generated/quill_localizations_fa.dart @@ -253,6 +253,12 @@ class FlutterQuillLocalizationsFa extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'حساسیت به کوچکی و بزرگی حروف و جستجوی کلمه کامل'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'وارد کردن تصویر'; @@ -273,4 +279,16 @@ class FlutterQuillLocalizationsFa extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_fr.dart b/lib/src/l10n/generated/quill_localizations_fr.dart index 488a61e7..d039b6f1 100644 --- a/lib/src/l10n/generated/quill_localizations_fr.dart +++ b/lib/src/l10n/generated/quill_localizations_fr.dart @@ -254,6 +254,12 @@ class FlutterQuillLocalizationsFr extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Sensibilité à la casse et recherche de mots entiers'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Insérer une image'; @@ -278,4 +284,16 @@ class FlutterQuillLocalizationsFr extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => "Coller une vidéo à l'aide d'un lien"; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_he.dart b/lib/src/l10n/generated/quill_localizations_he.dart index 0263f609..7497db7b 100644 --- a/lib/src/l10n/generated/quill_localizations_he.dart +++ b/lib/src/l10n/generated/quill_localizations_he.dart @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsHe extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'רגישות לאותות רישיות וחיפוש לפי מילה שלמה'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'הכנס תמונה'; @@ -272,4 +278,16 @@ class FlutterQuillLocalizationsHe extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_hi.dart b/lib/src/l10n/generated/quill_localizations_hi.dart index 1184e2f0..dda88d59 100644 --- a/lib/src/l10n/generated/quill_localizations_hi.dart +++ b/lib/src/l10n/generated/quill_localizations_hi.dart @@ -253,6 +253,12 @@ class FlutterQuillLocalizationsHi extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'केस सेंसिटिविटी और पूरे शब्द की खोज'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'छवि डालें'; @@ -273,4 +279,16 @@ class FlutterQuillLocalizationsHi extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_id.dart b/lib/src/l10n/generated/quill_localizations_id.dart index 170eb086..27ee79dd 100644 --- a/lib/src/l10n/generated/quill_localizations_id.dart +++ b/lib/src/l10n/generated/quill_localizations_id.dart @@ -254,6 +254,12 @@ class FlutterQuillLocalizationsId extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Sensitivitas huruf besar dan kecil dan pencarian kata utuh'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Sisipkan Gambar'; @@ -274,4 +280,16 @@ class FlutterQuillLocalizationsId extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_it.dart b/lib/src/l10n/generated/quill_localizations_it.dart index efa8d7d6..33b68757 100644 --- a/lib/src/l10n/generated/quill_localizations_it.dart +++ b/lib/src/l10n/generated/quill_localizations_it.dart @@ -254,6 +254,12 @@ class FlutterQuillLocalizationsIt extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Sensibilità maiuscole/minuscole e ricerca di parole intere'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Inserisci immagine'; @@ -274,4 +280,16 @@ class FlutterQuillLocalizationsIt extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_ja.dart b/lib/src/l10n/generated/quill_localizations_ja.dart index c78fb284..18ce5f55 100644 --- a/lib/src/l10n/generated/quill_localizations_ja.dart +++ b/lib/src/l10n/generated/quill_localizations_ja.dart @@ -249,6 +249,12 @@ class FlutterQuillLocalizationsJa extends FlutterQuillLocalizations { @override String get caseSensitivityAndWholeWordSearch => '大文字と小文字の区別と完全一致検索'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => '画像を挿入'; @@ -269,4 +275,16 @@ class FlutterQuillLocalizationsJa extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_ko.dart b/lib/src/l10n/generated/quill_localizations_ko.dart index 5a0633fd..d26d3900 100644 --- a/lib/src/l10n/generated/quill_localizations_ko.dart +++ b/lib/src/l10n/generated/quill_localizations_ko.dart @@ -128,7 +128,7 @@ class FlutterQuillLocalizationsKo extends FlutterQuillLocalizations { String get alignRight => 'Align right'; @override - String get justifyWinWidth => 'Justify'; + String get justifyWinWidth => 'Justify win width'; @override String get textDirection => 'Text direction'; @@ -249,6 +249,12 @@ class FlutterQuillLocalizationsKo extends FlutterQuillLocalizations { @override String get caseSensitivityAndWholeWordSearch => '대소문자 구분 및 전체 단어 검색'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => '이미지 삽입'; @@ -269,4 +275,16 @@ class FlutterQuillLocalizationsKo extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_ku.dart b/lib/src/l10n/generated/quill_localizations_ku.dart index f0e5fa80..772d8110 100644 --- a/lib/src/l10n/generated/quill_localizations_ku.dart +++ b/lib/src/l10n/generated/quill_localizations_ku.dart @@ -251,6 +251,12 @@ class FlutterQuillLocalizationsKu extends FlutterQuillLocalizations { @override String get caseSensitivityAndWholeWordSearch => 'گەڕان بۆ تەواوی وشە'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'دانانی وێنە'; @@ -273,6 +279,18 @@ class FlutterQuillLocalizationsKu extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'لینکی ڤیدیۆیەک دابنێ'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } /// The translations for Kurdish (`ku_CKB`). diff --git a/lib/src/l10n/generated/quill_localizations_ms.dart b/lib/src/l10n/generated/quill_localizations_ms.dart index ee33ad1c..c0218f2c 100644 --- a/lib/src/l10n/generated/quill_localizations_ms.dart +++ b/lib/src/l10n/generated/quill_localizations_ms.dart @@ -128,7 +128,7 @@ class FlutterQuillLocalizationsMs extends FlutterQuillLocalizations { String get alignRight => 'Align right'; @override - String get justifyWinWidth => 'Justify'; + String get justifyWinWidth => 'Justify win width'; @override String get textDirection => 'Text direction'; @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsMs extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Sensitiviti huruf besar dan kecil dan carian penuh perkataan'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Masukkan imej'; @@ -272,4 +278,16 @@ class FlutterQuillLocalizationsMs extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_ne.dart b/lib/src/l10n/generated/quill_localizations_ne.dart index 9c460f33..ede805d7 100644 --- a/lib/src/l10n/generated/quill_localizations_ne.dart +++ b/lib/src/l10n/generated/quill_localizations_ne.dart @@ -254,6 +254,12 @@ class FlutterQuillLocalizationsNe extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'केस संवेदनशीलता र सम्पूर्ण शब्द खोज'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'छवि सम्मिलित गर्नुहोस्'; @@ -276,4 +282,16 @@ class FlutterQuillLocalizationsNe extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'लिङ्क प्रयोग गरेर भिडियो टाँस्नुहोस्'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_nl.dart b/lib/src/l10n/generated/quill_localizations_nl.dart index faedf0dc..bb68eea8 100644 --- a/lib/src/l10n/generated/quill_localizations_nl.dart +++ b/lib/src/l10n/generated/quill_localizations_nl.dart @@ -128,7 +128,7 @@ class FlutterQuillLocalizationsNl extends FlutterQuillLocalizations { String get alignRight => 'Align right'; @override - String get justifyWinWidth => 'Justify'; + String get justifyWinWidth => 'Justify win width'; @override String get textDirection => 'Text direction'; @@ -254,6 +254,12 @@ class FlutterQuillLocalizationsNl extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Hoofdlettergevoeligheid en volledig woord zoeken'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Afbeelding invoegen'; @@ -274,4 +280,16 @@ class FlutterQuillLocalizationsNl extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_no.dart b/lib/src/l10n/generated/quill_localizations_no.dart index 62c3c915..d7e97e4e 100644 --- a/lib/src/l10n/generated/quill_localizations_no.dart +++ b/lib/src/l10n/generated/quill_localizations_no.dart @@ -254,6 +254,12 @@ class FlutterQuillLocalizationsNo extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Stor/liten bokstavfølsomhet og helordsøk'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Sett inn bilde'; @@ -274,4 +280,16 @@ class FlutterQuillLocalizationsNo extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_pl.dart b/lib/src/l10n/generated/quill_localizations_pl.dart index b857ce99..4b5d400d 100644 --- a/lib/src/l10n/generated/quill_localizations_pl.dart +++ b/lib/src/l10n/generated/quill_localizations_pl.dart @@ -128,7 +128,7 @@ class FlutterQuillLocalizationsPl extends FlutterQuillLocalizations { String get alignRight => 'Align right'; @override - String get justifyWinWidth => 'Justify'; + String get justifyWinWidth => 'Justify win width'; @override String get textDirection => 'Text direction'; @@ -251,6 +251,12 @@ class FlutterQuillLocalizationsPl extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Czułość na wielkość liter i wyszukiwanie całego słowa'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Wstaw obraz'; @@ -271,4 +277,16 @@ class FlutterQuillLocalizationsPl extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_pt.dart b/lib/src/l10n/generated/quill_localizations_pt.dart index 425e2323..aa28b8ff 100644 --- a/lib/src/l10n/generated/quill_localizations_pt.dart +++ b/lib/src/l10n/generated/quill_localizations_pt.dart @@ -128,7 +128,7 @@ class FlutterQuillLocalizationsPt extends FlutterQuillLocalizations { String get alignRight => 'Align right'; @override - String get justifyWinWidth => 'Justify'; + String get justifyWinWidth => 'Justify win width'; @override String get textDirection => 'Text direction'; @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsPt extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Sensibilidade a maiúsculas e minúsculas e pesquisa de palavras inteiras'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Inserir imagem'; @@ -272,6 +278,18 @@ class FlutterQuillLocalizationsPt extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } /// The translations for Portuguese, as used in Brazil (`pt_BR`). diff --git a/lib/src/l10n/generated/quill_localizations_ro.dart b/lib/src/l10n/generated/quill_localizations_ro.dart index 0e97de02..92a9b40f 100644 --- a/lib/src/l10n/generated/quill_localizations_ro.dart +++ b/lib/src/l10n/generated/quill_localizations_ro.dart @@ -254,6 +254,12 @@ class FlutterQuillLocalizationsRo extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Sensibilitate la majuscule și căutare cuvânt întreg'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Introdu imaginea'; @@ -275,6 +281,18 @@ class FlutterQuillLocalizationsRo extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Lipește un video folosind un link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } /// The translations for Romanian Moldavian Moldovan, as used in Romania (`ro_RO`). diff --git a/lib/src/l10n/generated/quill_localizations_ru.dart b/lib/src/l10n/generated/quill_localizations_ru.dart index 277a0c9b..07a2b4ba 100644 --- a/lib/src/l10n/generated/quill_localizations_ru.dart +++ b/lib/src/l10n/generated/quill_localizations_ru.dart @@ -253,6 +253,12 @@ class FlutterQuillLocalizationsRu extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Учет регистра и поиск по всему слову'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Вставить изображение'; @@ -275,4 +281,16 @@ class FlutterQuillLocalizationsRu extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_sk.dart b/lib/src/l10n/generated/quill_localizations_sk.dart index 6be2a6c9..a4609530 100644 --- a/lib/src/l10n/generated/quill_localizations_sk.dart +++ b/lib/src/l10n/generated/quill_localizations_sk.dart @@ -254,6 +254,12 @@ class FlutterQuillLocalizationsSk extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Citlivosť na veľkosť písmen a vyhľadávanie celých slov'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Vložiť obrázok'; @@ -276,4 +282,16 @@ class FlutterQuillLocalizationsSk extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Vložiť video pomocou odkazu'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_sr.dart b/lib/src/l10n/generated/quill_localizations_sr.dart index 95feac27..10b73608 100644 --- a/lib/src/l10n/generated/quill_localizations_sr.dart +++ b/lib/src/l10n/generated/quill_localizations_sr.dart @@ -253,6 +253,12 @@ class FlutterQuillLocalizationsSr extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Osetljivost na velika i mala slova i potraga za celom rečju'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Umetni sliku'; @@ -273,4 +279,16 @@ class FlutterQuillLocalizationsSr extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_sv.dart b/lib/src/l10n/generated/quill_localizations_sv.dart index c63815b0..013fac0a 100644 --- a/lib/src/l10n/generated/quill_localizations_sv.dart +++ b/lib/src/l10n/generated/quill_localizations_sv.dart @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsSv extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Skiftlägeskänsligt och helordsökning'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Infoga bild'; @@ -272,4 +278,16 @@ class FlutterQuillLocalizationsSv extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Klistra in en video med en länk'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_sw.dart b/lib/src/l10n/generated/quill_localizations_sw.dart index 7d7cdd82..0757e4a4 100644 --- a/lib/src/l10n/generated/quill_localizations_sw.dart +++ b/lib/src/l10n/generated/quill_localizations_sw.dart @@ -251,6 +251,12 @@ class FlutterQuillLocalizationsSw extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Uwiano wa herufi kubwa na ndogo na utafutaji wa neno zima'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Weka Picha'; @@ -271,4 +277,16 @@ class FlutterQuillLocalizationsSw extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_tk.dart b/lib/src/l10n/generated/quill_localizations_tk.dart index 70c9a940..19b2f73e 100644 --- a/lib/src/l10n/generated/quill_localizations_tk.dart +++ b/lib/src/l10n/generated/quill_localizations_tk.dart @@ -128,7 +128,7 @@ class FlutterQuillLocalizationsTk extends FlutterQuillLocalizations { String get alignRight => 'Saga deňleşdir'; @override - String get justifyWinWidth => 'Justify'; + String get justifyWinWidth => 'Justify win width'; @override String get textDirection => 'Tekst ugry'; @@ -250,6 +250,12 @@ class FlutterQuillLocalizationsTk extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Iňkisar we iň oňg söz gözleýinç'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Surat goş'; @@ -270,4 +276,16 @@ class FlutterQuillLocalizationsTk extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_tr.dart b/lib/src/l10n/generated/quill_localizations_tr.dart index ba762092..499bbf50 100644 --- a/lib/src/l10n/generated/quill_localizations_tr.dart +++ b/lib/src/l10n/generated/quill_localizations_tr.dart @@ -251,6 +251,12 @@ class FlutterQuillLocalizationsTr extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Büyük/küçük harf hassasiyeti ve tam kelime arama'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Görüntü ekle'; @@ -271,4 +277,16 @@ class FlutterQuillLocalizationsTr extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_uk.dart b/lib/src/l10n/generated/quill_localizations_uk.dart index a7f5b9b2..0e5b1314 100644 --- a/lib/src/l10n/generated/quill_localizations_uk.dart +++ b/lib/src/l10n/generated/quill_localizations_uk.dart @@ -253,6 +253,12 @@ class FlutterQuillLocalizationsUk extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Чутливість до регістру та пошук цілих слів'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Вставити зображення'; @@ -276,4 +282,16 @@ class FlutterQuillLocalizationsUk extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Вставте відео, використовуючи посилання'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_ur.dart b/lib/src/l10n/generated/quill_localizations_ur.dart index 540581dd..82d0469e 100644 --- a/lib/src/l10n/generated/quill_localizations_ur.dart +++ b/lib/src/l10n/generated/quill_localizations_ur.dart @@ -255,6 +255,12 @@ class FlutterQuillLocalizationsUr extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'معاملے کی حساسیت اور پورے الفاظ کی تلاش'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'تصویر داخل کریں'; @@ -275,4 +281,16 @@ class FlutterQuillLocalizationsUr extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_vi.dart b/lib/src/l10n/generated/quill_localizations_vi.dart index 7024b8a8..6eb72dcb 100644 --- a/lib/src/l10n/generated/quill_localizations_vi.dart +++ b/lib/src/l10n/generated/quill_localizations_vi.dart @@ -252,6 +252,12 @@ class FlutterQuillLocalizationsVi extends FlutterQuillLocalizations { String get caseSensitivityAndWholeWordSearch => 'Độ nhạy cảm chữ hoa/chữ thường và tìm kiếm toàn bộ từ'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => 'Chèn hình ảnh'; @@ -272,4 +278,16 @@ class FlutterQuillLocalizationsVi extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => 'Paste a video using a link'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } diff --git a/lib/src/l10n/generated/quill_localizations_zh.dart b/lib/src/l10n/generated/quill_localizations_zh.dart index e28ec92e..e38b1d81 100644 --- a/lib/src/l10n/generated/quill_localizations_zh.dart +++ b/lib/src/l10n/generated/quill_localizations_zh.dart @@ -249,6 +249,12 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations { @override String get caseSensitivityAndWholeWordSearch => '区分大小写和整词搜索'; + @override + String get caseSensitive => 'Case sensitive'; + + @override + String get wholeWord => 'Whole word'; + @override String get insertImage => '插入图像'; @@ -269,6 +275,18 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations { @override String get pasteAVideoUsingALink => '从链接获取视频'; + + @override + String get close => 'Close'; + + @override + String get searchSettings => 'Search settings'; + + @override + String get cut => 'Cut'; + + @override + String get paste => 'Paste'; } /// The translations for Chinese, as used in China (`zh_CN`). diff --git a/lib/src/l10n/quill_en.arb b/lib/src/l10n/quill_en.arb index f9bb068a..1a6f4b7e 100644 --- a/lib/src/l10n/quill_en.arb +++ b/lib/src/l10n/quill_en.arb @@ -90,11 +90,17 @@ "photo": "Photo", "image": "Image", "caseSensitivityAndWholeWordSearch": "Case sensitivity and whole word search", + "caseSensitive": "Case sensitive", + "wholeWord": "Whole word", "insertImage": "Insert image", "pickAPhotoFromYourGallery": "Pick a photo from your gallery", "takeAPhotoUsingYourCamera": "Take a photo using your camera", "pasteAPhotoUsingALink": "Paste a photo using a link", "pickAVideoFromYourGallery": "Pick a video from your gallery", "recordAVideoUsingYourCamera": "Record a video using your camera", - "pasteAVideoUsingALink": "Paste a video using a link" + "pasteAVideoUsingALink": "Paste a video using a link", + "close": "Close", + "searchSettings": "Search settings", + "cut": "Cut", + "paste": "Paste" } \ No newline at end of file diff --git a/lib/src/l10n/untranslated.json b/lib/src/l10n/untranslated.json index f177cacd..ae0adf9c 100644 --- a/lib/src/l10n/untranslated.json +++ b/lib/src/l10n/untranslated.json @@ -1,6 +1,12 @@ { "ar": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "bg": [ @@ -12,12 +18,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "bn": [ @@ -29,12 +41,27 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" + ], + + "cs": [ + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "da": [ @@ -46,12 +73,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "de": [ @@ -63,7 +96,13 @@ "heading5", "heading6", "theImageHasBeenSavedAt", - "pasteAVideoUsingALink" + "caseSensitive", + "wholeWord", + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "en_US": [ @@ -75,12 +114,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "es": [ @@ -92,7 +137,13 @@ "heading5", "heading6", "theImageHasBeenSavedAt", - "pasteAVideoUsingALink" + "caseSensitive", + "wholeWord", + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "fa": [ @@ -104,16 +155,28 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "fr": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "he": [ @@ -125,12 +188,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "hi": [ @@ -142,12 +211,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "id": [ @@ -159,12 +234,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "it": [ @@ -176,12 +257,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "ja": [ @@ -193,12 +280,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "ko": [ @@ -210,20 +303,38 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "ku": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "ku_CKB": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "ms": [ @@ -235,12 +346,27 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" + ], + + "ne": [ + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "nl": [ @@ -252,12 +378,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "no": [ @@ -269,12 +401,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "pl": [ @@ -286,12 +424,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "pt": [ @@ -303,12 +447,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "pt_BR": [ @@ -320,20 +470,38 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "ro": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "ro_RO": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "ru": [ @@ -345,7 +513,22 @@ "heading5", "heading6", "theImageHasBeenSavedAt", - "pasteAVideoUsingALink" + "caseSensitive", + "wholeWord", + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" + ], + + "sk": [ + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "sr": [ @@ -357,16 +540,28 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "sv": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "sw": [ @@ -378,12 +573,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "tk": [ @@ -395,12 +596,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "tr": [ @@ -412,16 +619,28 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "uk": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "ur": [ @@ -433,12 +652,18 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "vi": [ @@ -450,20 +675,38 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ], "zh": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "zh_CN": [ - "theImageHasBeenSavedAt" + "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", + "close", + "searchSettings", + "cut", + "paste" ], "zh_HK": [ @@ -475,11 +718,17 @@ "heading5", "heading6", "theImageHasBeenSavedAt", + "caseSensitive", + "wholeWord", "pickAPhotoFromYourGallery", "takeAPhotoUsingYourCamera", "pasteAPhotoUsingALink", "pickAVideoFromYourGallery", "recordAVideoUsingYourCamera", - "pasteAVideoUsingALink" + "pasteAVideoUsingALink", + "close", + "searchSettings", + "cut", + "paste" ] } diff --git a/lib/src/models/documents/history.dart b/lib/src/models/documents/history.dart index 11082e4f..39173783 100644 --- a/lib/src/models/documents/history.dart +++ b/lib/src/models/documents/history.dart @@ -91,13 +91,12 @@ class History { } final delta = source.removeLast(); // look for insert or delete - int? len = 0; + var len = 0; final ops = delta.toList(); for (var i = 0; i < ops.length; i++) { - if (ops[i].key == Operation.insertKey) { - len = ops[i].length; - } else if (ops[i].key == Operation.deleteKey) { - len = ops[i].length! * -1; + if ((ops[i].key == Operation.insertKey) || + (ops[i].key == Operation.retainKey)) { + len += ops[i].length ?? 0; } } final base = Delta.from(doc.toDelta()); diff --git a/lib/src/models/documents/nodes/line.dart b/lib/src/models/documents/nodes/line.dart index df9374a2..65e893f7 100644 --- a/lib/src/models/documents/nodes/line.dart +++ b/lib/src/models/documents/nodes/line.dart @@ -519,6 +519,7 @@ base class Line extends QuillContainer { int _getNodeText(Leaf node, StringBuffer buffer, int offset, int remaining) { final text = node.toPlainText(); if (text == Embed.kObjectReplacementCharacter) { + buffer.write(Embed.kObjectReplacementCharacter); return remaining - node.length; } diff --git a/lib/src/models/rules/insert.dart b/lib/src/models/rules/insert.dart index 9b0a3ea7..b97058bc 100644 --- a/lib/src/models/rules/insert.dart +++ b/lib/src/models/rules/insert.dart @@ -566,7 +566,7 @@ class PreserveInlineStylesRule extends InsertRule { if ((prev.data as String).endsWith('\n')) { if (prev.attributes != null) { for (final key in prev.attributes!.keys) { - if (Attribute.blockKeys.contains(key)) { + if (!Attribute.inlineKeys.contains(key)) { return null; } } diff --git a/lib/src/models/structs/history_changed.dart b/lib/src/models/structs/history_changed.dart index 1a8b2d60..cafaba60 100644 --- a/lib/src/models/structs/history_changed.dart +++ b/lib/src/models/structs/history_changed.dart @@ -8,5 +8,5 @@ class HistoryChanged { ); final bool changed; - final int? len; + final int len; } diff --git a/lib/src/widgets/quill/quill_controller.dart b/lib/src/widgets/quill/quill_controller.dart index 7e71f201..b6369e2e 100644 --- a/lib/src/widgets/quill/quill_controller.dart +++ b/lib/src/widgets/quill/quill_controller.dart @@ -215,26 +215,13 @@ class QuillController extends ChangeNotifier { } } - void _handleHistoryChange(int? len) { - // move cursor according to the length inserted or deleted from redo or undo - // operation. len is the length inserted or deleted. - if (len! != 0) { - // if (this.selection.extentOffset >= document.length) { - // // cursor exceeds the length of document, position it in the end - // updateSelection( - // TextSelection.collapsed(offset: document.length), ChangeSource.LOCAL); - updateSelection( - (selection.baseOffset + len) > 0 - ? TextSelection.collapsed( - offset: selection.baseOffset + len, - ) - : TextSelection.collapsed(offset: document.length), - ChangeSource.local, - ); - } else { - // no need to move cursor - notifyListeners(); - } + void _handleHistoryChange(int len) { + updateSelection( + TextSelection.collapsed( + offset: len, + ), + ChangeSource.local, + ); } void redo() { @@ -274,9 +261,7 @@ class QuillController extends ChangeNotifier { var shouldRetainDelta = toggledStyle.isNotEmpty && delta.isNotEmpty && delta.length <= 2 && - delta.last.isInsert && - // pasted text should not use toggledStyle - (data is! String || data.length < 2); + delta.last.isInsert; if (shouldRetainDelta && toggledStyle.isNotEmpty && delta.length == 2 && @@ -531,13 +516,27 @@ class QuillController extends ChangeNotifier { // See https://github.com/flutter/flutter/issues/11427 final plainText = await Clipboard.getData(Clipboard.kTextPlain); if (plainText != null) { - replaceTextWithEmbeds( - selection.start, - selection.end - selection.start, - plainText.text!, - TextSelection.collapsed( - offset: selection.start + plainText.text!.length), - ); + final lines = plainText.text!.split('\n'); + for (var i = 0; i < lines.length; ++i) { + final line = lines[i]; + if (line.isNotEmpty) { + replaceTextWithEmbeds( + selection.start, + selection.end - selection.start, + line, + TextSelection.collapsed(offset: selection.start + line.length), + ); + } + if (i != lines.length - 1) { + document.insert(selection.extentOffset, '\n'); + _updateSelection( + TextSelection.collapsed( + offset: selection.extentOffset + 1, + ), + insertNewline: true, + ); + } + } updateEditor?.call(); return true; } diff --git a/lib/src/widgets/raw_editor/raw_editor_state_text_input_client_mixin.dart b/lib/src/widgets/raw_editor/raw_editor_state_text_input_client_mixin.dart index 79e85950..2c792741 100644 --- a/lib/src/widgets/raw_editor/raw_editor_state_text_input_client_mixin.dart +++ b/lib/src/widgets/raw_editor/raw_editor_state_text_input_client_mixin.dart @@ -141,8 +141,10 @@ mixin RawEditorStateTextInputClientMixin on EditorState // with the last known remote value. // It is important to prevent excessive remote updates as it can cause // race conditions. + final composingRange = _lastKnownRemoteTextEditingValue!.composing; final actualValue = value.copyWith( - composing: _lastKnownRemoteTextEditingValue!.composing, + // Ignore last known composing range if it exceeds current text length. + composing: composingRange.end > value.text.length ? null : composingRange, ); if (actualValue == _lastKnownRemoteTextEditingValue) { diff --git a/lib/src/widgets/toolbar/base_button/base_value_button.dart b/lib/src/widgets/toolbar/base_button/base_value_button.dart index 6fc0acb8..670e2548 100644 --- a/lib/src/widgets/toolbar/base_button/base_value_button.dart +++ b/lib/src/widgets/toolbar/base_button/base_value_button.dart @@ -32,6 +32,13 @@ abstract class QuillToolbarCommonButtonState< String get tooltip => options.tooltip ?? baseButtonExtraOptions?.tooltip ?? defaultTooltip; + IconData get defaultIconData; + + IconData get iconData => + options.iconData ?? + context.quillToolbarBaseButtonOptions?.iconData ?? + defaultIconData; + double get iconSize => options.iconSize ?? baseButtonExtraOptions?.iconSize ?? kDefaultIconSize; diff --git a/lib/src/widgets/toolbar/buttons/clipboard_button.dart b/lib/src/widgets/toolbar/buttons/clipboard_button.dart index 93d1ba35..ab873b7d 100644 --- a/lib/src/widgets/toolbar/buttons/clipboard_button.dart +++ b/lib/src/widgets/toolbar/buttons/clipboard_button.dart @@ -91,7 +91,8 @@ class QuillToolbarClipboardButtonState ClipboardAction.paste => context.loc.paste, }; - IconData get _icon => switch (widget.clipboardAction) { + @override + IconData get defaultIconData => switch (widget.clipboardAction) { ClipboardAction.cut => Icons.cut_outlined, ClipboardAction.copy => Icons.copy_outlined, ClipboardAction.paste => Icons.paste_outlined, @@ -132,7 +133,7 @@ class QuillToolbarClipboardButtonState message: tooltip, child: QuillToolbarIconButton( icon: Icon( - _icon, + iconData, size: iconSize * iconButtonFactor, ), isSelected: false, diff --git a/lib/src/widgets/toolbar/buttons/color/color_button.dart b/lib/src/widgets/toolbar/buttons/color/color_button.dart index 5f553160..308c74c4 100644 --- a/lib/src/widgets/toolbar/buttons/color/color_button.dart +++ b/lib/src/widgets/toolbar/buttons/color/color_button.dart @@ -103,11 +103,9 @@ class QuillToolbarColorButtonState extends QuillToolbarColorBaseButtonState { super.dispose(); } - IconData get iconData { - return options.iconData ?? - baseButtonExtraOptions?.iconData ?? - (widget.isBackground ? Icons.format_color_fill : Icons.color_lens); - } + @override + IconData get defaultIconData => + widget.isBackground ? Icons.format_color_fill : Icons.color_lens; @override Widget build(BuildContext context) { @@ -140,7 +138,7 @@ class QuillToolbarColorButtonState extends QuillToolbarColorBaseButtonState { _showColorPicker(); afterButtonPressed?.call(); }, - iconColor: null, + iconColor: iconColor, iconColorBackground: iconColorBackground, fillColor: fillColor, fillColorBackground: fillColorBackground, diff --git a/lib/src/widgets/toolbar/buttons/font_family_button.dart b/lib/src/widgets/toolbar/buttons/font_family_button.dart index 3ed3e0d5..d9001748 100644 --- a/lib/src/widgets/toolbar/buttons/font_family_button.dart +++ b/lib/src/widgets/toolbar/buttons/font_family_button.dart @@ -79,6 +79,9 @@ class QuillToolbarFontFamilyButtonState extends QuillToolbarBaseButtonState< @override String get defaultTooltip => context.loc.fontFamily; + @override + IconData get defaultIconData => Icons.font_download_outlined; + void _onPressed() { if (_menuController.isOpen) { _menuController.close(); diff --git a/lib/src/widgets/toolbar/buttons/font_size_button.dart b/lib/src/widgets/toolbar/buttons/font_size_button.dart index 6a70a531..effb85c4 100644 --- a/lib/src/widgets/toolbar/buttons/font_size_button.dart +++ b/lib/src/widgets/toolbar/buttons/font_size_button.dart @@ -85,6 +85,9 @@ class QuillToolbarFontSizeButtonState extends QuillToolbarBaseButtonState< @override String get defaultTooltip => context.loc.fontSize; + @override + IconData get defaultIconData => Icons.format_size_outlined; + void _onDropdownButtonPressed() { if (_menuController.isOpen) { _menuController.close(); diff --git a/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_buttons.dart b/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_buttons.dart index 53162b7b..c18577e1 100644 --- a/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_buttons.dart +++ b/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_buttons.dart @@ -39,6 +39,9 @@ class QuillToolbarSelectHeaderStyleButtonsState @override String get defaultTooltip => context.loc.headerStyle; + @override + IconData get defaultIconData => Icons.question_mark_outlined; + Style get _selectionStyle => controller.getSelectionStyle(); final _valueToText = { diff --git a/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_dropdown_button.dart b/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_dropdown_button.dart index 7a84ba5d..cff72714 100644 --- a/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_dropdown_button.dart +++ b/lib/src/widgets/toolbar/buttons/hearder_style/select_header_style_dropdown_button.dart @@ -35,6 +35,9 @@ class _QuillToolbarSelectHeaderStyleDropdownButtonState @override String get defaultTooltip => context.loc.headerStyle; + @override + IconData get defaultIconData => Icons.question_mark_outlined; + Attribute _selectedItem = Attribute.header; final _menuController = MenuController(); diff --git a/lib/src/widgets/toolbar/buttons/history_button.dart b/lib/src/widgets/toolbar/buttons/history_button.dart index 09284a84..384fc1ba 100644 --- a/lib/src/widgets/toolbar/buttons/history_button.dart +++ b/lib/src/widgets/toolbar/buttons/history_button.dart @@ -36,6 +36,10 @@ class QuillToolbarHistoryButtonState String get defaultTooltip => widget.isUndo ? context.loc.undo : context.loc.redo; + @override + IconData get defaultIconData => + (widget.isUndo ? Icons.undo_outlined : Icons.redo_outlined); + @override void initState() { super.initState(); @@ -53,9 +57,6 @@ class QuillToolbarHistoryButtonState @override Widget build(BuildContext context) { - final iconData = options.iconData ?? - baseButtonExtraOptions?.iconData ?? - (widget.isUndo ? Icons.undo_outlined : Icons.redo_outlined); final childBuilder = options.childBuilder ?? baseButtonExtraOptions?.childBuilder; diff --git a/lib/src/widgets/toolbar/buttons/indent_button.dart b/lib/src/widgets/toolbar/buttons/indent_button.dart index a750e7fc..1cc3aabe 100644 --- a/lib/src/widgets/toolbar/buttons/indent_button.dart +++ b/lib/src/widgets/toolbar/buttons/indent_button.dart @@ -33,13 +33,10 @@ class QuillToolbarIndentButtonState extends QuillToolbarIndentBaseButtonState { ? context.loc.increaseIndent : context.loc.decreaseIndent; - IconData get iconData { - return options.iconData ?? - baseButtonExtraOptions?.iconData ?? - (widget.isIncrease - ? Icons.format_indent_increase - : Icons.format_indent_decrease); - } + @override + IconData get defaultIconData => widget.isIncrease + ? Icons.format_indent_increase + : Icons.format_indent_decrease; void _sharedOnPressed() { widget.controller.indentSelection(widget.isIncrease); diff --git a/lib/src/widgets/toolbar/buttons/link_style_button.dart b/lib/src/widgets/toolbar/buttons/link_style_button.dart index cb8f24b8..92724012 100644 --- a/lib/src/widgets/toolbar/buttons/link_style_button.dart +++ b/lib/src/widgets/toolbar/buttons/link_style_button.dart @@ -62,9 +62,8 @@ class QuillToolbarLinkStyleButtonState controller.removeListener(_didChangeSelection); } - IconData get iconData { - return options.iconData ?? baseButtonExtraOptions?.iconData ?? Icons.link; - } + @override + IconData get defaultIconData => Icons.link; Color get dialogBarrierColor { return options.dialogBarrierColor ?? diff --git a/lib/src/widgets/toolbar/buttons/toggle_check_list_button.dart b/lib/src/widgets/toolbar/buttons/toggle_check_list_button.dart index 2bf6825b..7d79f815 100644 --- a/lib/src/widgets/toolbar/buttons/toggle_check_list_button.dart +++ b/lib/src/widgets/toolbar/buttons/toggle_check_list_button.dart @@ -52,11 +52,8 @@ class QuillToolbarToggleCheckListButtonState @override String get defaultTooltip => context.loc.checkedList; - IconData get iconData { - return options.iconData ?? - baseButtonExtraOptions?.iconData ?? - Icons.check_box; - } + @override + IconData get defaultIconData => Icons.check_box; @override Widget build(BuildContext context) { diff --git a/lib/src/widgets/toolbar/buttons/toggle_style_button.dart b/lib/src/widgets/toolbar/buttons/toggle_style_button.dart index 017ccb74..941a893e 100644 --- a/lib/src/widgets/toolbar/buttons/toggle_style_button.dart +++ b/lib/src/widgets/toolbar/buttons/toggle_style_button.dart @@ -96,11 +96,8 @@ class QuillToolbarToggleStyleButtonState @override String get defaultTooltip => _defaultTooltipAndIconData.$1; - IconData get iconData { - return options.iconData ?? - context.quillToolbarBaseButtonOptions?.iconData ?? - _defaultTooltipAndIconData.$2; - } + @override + IconData get defaultIconData => _defaultTooltipAndIconData.$2; void _onPressed() { _toggleAttribute(); @@ -140,6 +137,7 @@ class QuillToolbarToggleStyleButtonState bool _getIsToggled(Map attrs) { if (widget.attribute.key == Attribute.list.key || + widget.attribute.key == Attribute.header.key || widget.attribute.key == Attribute.script.key || widget.attribute.key == Attribute.align.key) { final attribute = attrs[widget.attribute.key]; diff --git a/pubspec.yaml b/pubspec.yaml index 58e031f6..f25d46b1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_quill description: A rich text editor built for the modern Android, iOS, web and desktop platforms. It is the WYSIWYG editor and a Quill component for Flutter. -version: 9.3.17 +version: 9.3.21 homepage: https://1o24bbs.com/c/bulletjournal/108/ repository: https://github.com/singerdmx/flutter-quill/ issue_tracker: https://github.com/singerdmx/flutter-quill/issues/ @@ -70,7 +70,10 @@ dev_dependencies: sdk: flutter flutter_quill_test: ^9.3.4 test: ^1.24.3 + + # Both yaml_edit and yaml are only used for the scripts yaml_edit: ^2.2.1 + yaml: ^3.1.2 flutter: uses-material-design: true diff --git a/quill_html_converter/CHANGELOG.md b/quill_html_converter/CHANGELOG.md index 3b7ba457..0bdf2ede 100644 --- a/quill_html_converter/CHANGELOG.md +++ b/quill_html_converter/CHANGELOG.md @@ -4,6 +4,37 @@ All notable changes to this project will be documented in this file. +## 9.3.21 + +* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898 + + +**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 +* 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 + +## New Contributors +* @crasowas made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1890 + +**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 + + +**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 + + +**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) diff --git a/quill_html_converter/pubspec.yaml b/quill_html_converter/pubspec.yaml index 30d38c16..42a80920 100644 --- a/quill_html_converter/pubspec.yaml +++ b/quill_html_converter/pubspec.yaml @@ -1,6 +1,6 @@ name: quill_html_converter description: A extension for flutter_quill package to add support for dealing with conversion to/from html -version: 9.3.17 +version: 9.3.21 homepage: https://github.com/singerdmx/flutter-quill/tree/master/quill_html_converter/ repository: https://github.com/singerdmx/flutter-quill/tree/master/quill_html_converter/ issue_tracker: https://github.com/singerdmx/flutter-quill/issues/ diff --git a/quill_pdf_converter/CHANGELOG.md b/quill_pdf_converter/CHANGELOG.md index 3b7ba457..0bdf2ede 100644 --- a/quill_pdf_converter/CHANGELOG.md +++ b/quill_pdf_converter/CHANGELOG.md @@ -4,6 +4,37 @@ All notable changes to this project will be documented in this file. +## 9.3.21 + +* fix: assertion failure for swipe typing and undo on Android by @crasowas in https://github.com/singerdmx/flutter-quill/pull/1898 + + +**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 +* 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 + +## New Contributors +* @crasowas made their first contribution in https://github.com/singerdmx/flutter-quill/pull/1890 + +**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 + + +**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 + + +**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) diff --git a/quill_pdf_converter/pubspec.yaml b/quill_pdf_converter/pubspec.yaml index 400d5561..31e8aa52 100644 --- a/quill_pdf_converter/pubspec.yaml +++ b/quill_pdf_converter/pubspec.yaml @@ -1,6 +1,6 @@ name: quill_pdf_converter description: A extension for flutter_quill package to add support for dealing with conversion to pdf -version: 9.3.17 +version: 9.3.21 homepage: https://github.com/singerdmx/flutter-quill/tree/master/quill_pdf_converter/ repository: https://github.com/singerdmx/flutter-quill/tree/master/quill_pdf_converter/ issue_tracker: https://github.com/singerdmx/flutter-quill/issues/ diff --git a/scripts/before_push.sh b/scripts/before_push.sh index f5aac35c..c3722f85 100755 --- a/scripts/before_push.sh +++ b/scripts/before_push.sh @@ -1,5 +1,9 @@ #!/bin/bash +# The script must be run from the root project folder and not inside the scripts + +# TODO: Refactor this to a dart script to allow developers who use Windows to use it + # Run Flutter analyze echo "Running 'flutter analyze'..." flutter analyze @@ -30,4 +34,10 @@ echo "Running flutter build web --release --dart-define=CI=true." echo "" +# Check the translations +echo "Running dart ./scripts/ensure_translations_correct.dart" +(dart ./scripts/ensure_translations_correct.dart) + +echo "" + echo "Script completed." diff --git a/scripts/disable_local_dev.sh b/scripts/disable_local_dev.sh index 20ef62ab..2bca0b16 100755 --- a/scripts/disable_local_dev.sh +++ b/scripts/disable_local_dev.sh @@ -2,6 +2,8 @@ # Please make sure to run this script in the root directory of the repository and not inside sub-folders +# TODO: Refactor this to a dart script to allow developers who use Windows to use it + echo "" echo "Disable local development for flutter_quill..." diff --git a/scripts/enable_local_dev.sh b/scripts/enable_local_dev.sh index 3e390d53..6be69682 100755 --- a/scripts/enable_local_dev.sh +++ b/scripts/enable_local_dev.sh @@ -2,6 +2,8 @@ # Please make sure to run this script in the root directory of the repository and not inside sub-folders +# TODO: Refactor this to a dart script to allow developers who use Windows to use it + echo "" echo "Enable local development for flutter_quill..." diff --git a/scripts/ensure_translations_correct.dart b/scripts/ensure_translations_correct.dart new file mode 100644 index 00000000..092178d7 --- /dev/null +++ b/scripts/ensure_translations_correct.dart @@ -0,0 +1,57 @@ +// This script has one task, which is to prevent the translations from +// being accidentally deleted, as we have more than 40 files for both the +// arb files (source) and the dart files (the generated) +// which make it harder to review the changes, some keys can be deleted +// without update the generated dart files which will cause a bug/build failure +// on the next time running the script after doing some changes to the translations +// which make it harder to revert the changes + +// The script must run in the root project folder instead of the scripts folder + +// ignore_for_file: depend_on_referenced_packages, avoid_print + +import 'dart:convert'; +import 'dart:io' show File, exit; + +import 'package:path/path.dart' as path; +import 'package:yaml/yaml.dart'; + +// This must be updated once add or remove some translation keys +// if you update existing keys, no need to update it +const _expectedTranslationKeysLength = 96; + +Future main(List args) async { + final l10nYamlText = await File('l10n.yaml').readAsString(); + final l10nYaml = loadYaml(l10nYamlText); + final arbDir = l10nYaml['arb-dir']; + final templateArbFileName = l10nYaml['template-arb-file']; + final templateArbFile = File(path.join(arbDir, templateArbFileName)); + print('The file path to template arb file: ${templateArbFile.path}'); + final templateArb = + jsonDecode(await templateArbFile.readAsString()) as Map; + print( + 'The length of the current translation keys: ${templateArb.keys.length}'); + final newTranslationKeysLength = templateArb.keys.length; + + if (newTranslationKeysLength > _expectedTranslationKeysLength) { + print( + "You have add a new keys, please update the '_expectedTranslationKeysLength' value", + ); + print('$newTranslationKeysLength > $_expectedTranslationKeysLength'); + exit(1); + } + if (newTranslationKeysLength < _expectedTranslationKeysLength) { + print( + "You have removed some keys, please update the '_expectedTranslationKeysLength' value", + ); + print('$newTranslationKeysLength < $_expectedTranslationKeysLength'); + exit(1); + } + if (newTranslationKeysLength != _expectedTranslationKeysLength) { + print( + "It's looks like you have modified the keys length without updating the `_expectedTranslationKeysLength` value", + ); + print('$newTranslationKeysLength != $_expectedTranslationKeysLength'); + exit(1); + } +} diff --git a/scripts/pub_get.sh b/scripts/pub_get.sh index bf13c197..947693df 100644 --- a/scripts/pub_get.sh +++ b/scripts/pub_get.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash + +# TODO: Refactor this to a dart script to allow developers who use Windows to use it + flutter pub get (cd dart_quill_delta && flutter pub get) (cd flutter_quill_extensions && flutter pub get) diff --git a/scripts/regenerate_translations.sh b/scripts/regenerate_translations.sh index 8e1583bf..921863c2 100755 --- a/scripts/regenerate_translations.sh +++ b/scripts/regenerate_translations.sh @@ -4,6 +4,8 @@ # ./scripts/regenerate_translations.sh # otherwise the script could delete the wrong folder in rare cases +# TODO: Refactor this to a dart script to allow developers who use Windows to use it + echo "" echo "Delete the current generated localizations..."