## [2.5.0] - 2022-06-04
* Support Flutter 3.0 (remove warnings) (@Cteq3132)
* [BREAKING] Support modifying `foreColorSelected` and `backColorSelected` when using a custom dialog for font coloring
   * If you are using a custom `updateStatus` function for the font coloring, that function is now defined as `updateStatus(Color)`
* Added `disabled` parameter to automatically disable editor on initial load
* Fixed white background color appearing sometimes when pressing backspace on text
* Added `useHybridComposition` parameter in case devs want to disable this behavior (improves animations of app)
* [WEB] Fixed editor height being 0 when `initialText` is `null` (@dab246)
* Migrated example to Android embedding V2
* Removed woff fonts to allow iOS App Store submissions

## [2.4.0] - 2021-10-30
* Improved color picker
   * Added scrollable support to picker
   * Fixed issue where keyboard would disappear and prevent users from selecting a new color
* Added support for getting selected text in Flutter Web (`controller.getSelectedTextWeb()`)
* Added support for spellcheck
* Added support for custom options in summernote initialization
* Added support for a hard stop on character limit (will not allow user to type further)
* Fixed bug where focusing editor would scroll it back to the top and not show the caret position
* Fixed height not updating in Flutter Web when `callbacks` was `null`
* Updated dependencies and fixed flutter_colorpicker dependency error (@eliudio)

## [2.3.0] - 2021-09-09
* Potentially fixed bad state error for `stream.first`
* Fixed Summernote-@-Mention not inserting text after selecting the dropdown item
* Fixed whitespace after @ sign when inserting a mention
* Add support for overriding URL loading on mobile with `onNavigationRequestMobile` callback
* Hide keyboard when opening color picker dialog
* Use try/catch on `SystemChannel` call on web to prevent exception
* Added a character counter for text in the editor - access via `controller.characterCount`
* Fixed auto adjust height not working in some cases
* Fixed editor height not updating when focused after a TextField was previously focused
* Updated dependencies (@JEuler)

NOTE: If you are on Flutter Beta+, you must use `dependency_overrides` in `pubspec.yaml`!!

```yaml
dependency_overrides:
    flutter_colorpicker: ^0.5.0
```

## [2.2.0+1] - 2021-06-15 (BETA)
* Updated `flutter_colorpicker` to the latest version to fix deprecations on Flutter beta+
* [NOTE] Do not use this version on Flutter stable!

## [2.2.0] - 2021-06-14
* Fixed null safety warnings due to latest `file_picker` version
* Potentially fixed editor controller creating a new instance on widget rebuild
* Fixed issue where custom HTML files would have custom JS replaced with built-in JS
* Fixed darkMode not applying when `filePath` is used on Android
* Fixed "null" text showing as the hint when no hint is given
* Added new `onChangeSelection` callback that passes the editor settings whenever the user changes
their current selection (e.g. tap on a different word, create a new node, select text, etc)
* Added support for custom JS injection on Flutter Web
* Fixed minor bug with automatic height adjustment on mobile
* Added new `ToolbarType.nativeExpandable` which allows the user to switch between the 
scrollview or gridview toolbar on the fly
* Support setting the `inputmode` for the editor, which changes the virtual keyboard display on mobile devices (e.g. number pad, email keyboard, etc)
* [BREAKING] renamed `onChange` callback to `onChangeContent`
* [BREAKING] disabled a lot of the buttons by default, now only around half of the editor buttons
are enabled to improve the UX. You can still re-enable the rest if you want.
* [BREAKING] min Flutter version requirement bumped to 2.2.0

## [2.1.1] - 2021-05-22
* Fixed bottom overflow error on `AlertDialog`s if the screen size is small
* Fixed `StyleButtons(style: false)` would not remove the style dropdown
* Fixed JS/Dart communication hiccup on Web (make sure `postMessage` data is not null)
* Code cleanup

## [2.1.0+1] - 2021-05-11
* Hotfix for `copyWith` not defined for `ScrollBehavior` in v2.1.0

## [2.1.0] - 2021-05-10
* Fixed `setState` and `Stream.first` error on page dispose
* Fixed height adjustment not working
* Fixed `getText` on Web
* Improved dropdown UX when `ToolbarPosition.belowEditor` by opening upwards and making it scrollable after a certain height

## [2.0.1] - 2021-04-28
* Added support for setting custom `UserScript`s on the webview (mobile only)
* Added support for customizing the context menu (menu when user selects text) for the webview (mobile only)
* Added `LongPressGestureRecognizer` to the webview to allow users to select text via a long press (mobile only)
    * You can set the duration before the long press is recognized via `HtmlEditorOptions > mobileLongPressDuration`
* Added support for placing the toolbar wherever using `HtmlToolbarOptions > toolbarPosition: ToolbarPosition.custom`
* See the README if you'd like to use any of these new features. `UserScript` and the context menu customization have external documentation via flutter_inappwebview - the docs are linked in the README.

## [2.0.0+1] - 2021-04-22
* Transitioned to fully native controls! These are extremely customizable and have much better UX than the previous controls.
* [BREAKING] refactored a lot of options into separate constructors
* [BREAKING] refactored toolbar classes, so toolbar customizations will need updating
* Added a bunch of interceptors and callbacks for button presses
* Added the ability to make custom buttons and set their positions
* Added native support for numerous Summernote plugins
   * [BREAKING] removed all Summernote plugins except Summernote @ Mention. The package now supports the majority of plugins out of the box.
   * Reduced package size by removing the Summernote plugin files
   * Reduced size further by using a stripped-down version of Summernote @ Mention libs
* Added `execCommand` to controller to help you create custom toolbar buttons
* Improved automatic height adjustment
* Bumped dependencies
* [BREAKING] Require Flutter 2.0.0+
* As always, see the README for full documentation on these changes
* See the [Migration Guide](https://github.com/tneotia/html-editor-enhanced/wiki/v2.0.0-Migration-Guide) for help migrating your v1.x.x widget code

## [1.8.0] - 2021-04-07
* Add support for `getSuggestionsMobile` (Summernote @ Mentions Plugin) - allows you to programatically return the list of mentions.
   * Only supported on mobile.
   * [BREAKING] renamed `mentions` to `mentionsWeb` as a result of this change 
* Added support for the remainder of Summernote callbacks:
   * `onBeforeCommand`
   * `onChangeCodeview`
   * `onDialogShown`
   * `onImageUploadError`
   * `onMouseDown`
   * `onMouseUp`
   * `onScroll`
   * See the README for how these work.
* Added a few new functions:
   * recalculateHeight(): recalculates the editor height and applies it
   * addNotification(): adds a notification bar to the bottom of the editor in a specified style with specified text
   * removeNotification(): removes the current notification from the bottom of the editor
* Fixed blank space at the bottom of the editor when `showBottomToolbar: false`
* Fixed 'Android resource linking failed' (bumped flutter_inappwebview to 5.3.1+1)

## [1.7.1] - 2021-03-26
* Fixed bug where initial text would not be inserted and default toolbar would be shown regardless of editor options
* Significantly improved keyboard height detection (detect when keyboard comes up and goes down)
* Adjusted HTML processing algorithm to fix issues where `"` and `'` would not be properly escaped on HTML insertion
   * Added `processNewLineAsBr` - this will replace any `\n` in the input string to `<br/>` rather than the default `""`
   * Applied processing to `setHint()` and `insertHtml()` functions
* Added support for returning the file's base64 data in `onImageUpload` and `onFileUpload`
   * Now you can use `MultipartFile.fromBytes()` to upload to server - [example](https://github.com/tneotia/html-editor-enhanced#example-for-onimageupload-and-onimagelinkinsert)
* Added support for `onFileUploadError` and `onFileLinkInsert` (Summernote File plugin)
* Added support for `maximumFileSize` (Summernote File plugin)
* See the README for more details on these changes

## [1.7.0+1] - 2021-03-22
* Fixed `type 'double' is not a subtype of type 'int?' in type cast` on iOS
   * By extension this fixes the `adjustHeightForKeyboard` not working on iOS
* Fixed `Bad state: Cannot add new events after calling close` exception when disposing the page containing the editor
* Fixed web page not found when inserting a video URL (see [here](https://github.com/summernote/summernote/issues/3252))

## [1.7.0] - 2021-03-17
* [BREAKING]:
   * Refactored `height`, `autoAdjustHeight`, `decoration`, `showBottomToolbar`, and `darkMode` into new `HtmlEditorOptions` class - see README for how to migrate
   * Removed 'Summernote Classes' plugin
   * Sorry for all the breaking changes lately - I think I've finally figured out how I want to do the API design so there should be far less in future releases
* Added `onImageUpload` callback that fires when an image is inserted via `<input type="file">`
* Added `onImageLinkInsert` callback that fires when an image is inserted via URL
* Added `shouldEnsureVisible` that scrolls the editor into view when it is focused or text is typed, kind of like `TextField`s
* Added `adjustHeightForKeyboard` (default true) that adjusts the editor's height when the keyboard is active to ensure no content is cut off by the keyboard
* Added `filePath` which allows you to provide a completely custom HTML file to load
* If you plan on using any of the above, it is highly recommend looking at the README for more details and examples.
* Removed disabled scroll feature since it prevented the editor from scrolling even when the editor content was larger than the height
* Code cleanup

## [1.6.0] - 2021-03-13
* [BREAKING] removed `dispose()` method on controller
   * The editor no longer uses a `Stream` to get text and therefore nothing needs to be disposed
* Added `onInit` callback that fires once the editor is ready to function and accept JS
* Added a few new parameters:
   * `autoAdjustHeight` - for `HtmlEditor`: default true, automatically adjusts the height of the editor to make sure scrolling is not necessary
   * `processInputHtml` - for `HtmlEditorController`: processes input HTML (e.g. new lines become `<br/>`)
   * `processOutputHtml` - for `HtmlEditorController`: processes output HTML (e.g. `<p><br/><p>` becomes `""`)
* Added more plugins:
    * Summernote Case Converter
    * Summernote List Styles
    * Summernote RTL
    * Summernote @ Mention
    * Summernote Codewrapper
    * Summernote File
    * See the README for more details.
* Added shim for dart:ui to remove the `ui.PlatformViewRegistry not found` error
* Added the summernote-no-plugins.html file to load a de-bloated HTML file when no plugins are active
* Fixed bug where two editors would be initialized in the same webview in some cases
* Reduced the size of assets to ~650kb - ~300kb summernote libs, ~350kb plugin libs
* Code cleanup

## [1.5.0+1] - 2021-03-10
* Fixed getText() returning null on mobile for any device

## [1.5.0] - 2021-03-01
* Nullsafety preview
* Added Flutter's Hybrid Composition to the HTML Editor. This significantly improves the keyboard experience on Android.

## [1.4.0] - 2021-03-01
* [BREAKING] removed `HtmlParser` for calling methods, instead you now must pass an `HtmlEditorController` to the plugin (like a `TextField`). All methods are accessible from that controller. See the usage section in the README for an example.
   * This allows you to have multiple independent editors on a page, whereas earlier the package would not know which editor the method should be called on.
* Add support for certain Summernote plugins from [Summernote Awesome](https://github.com/summernote/awesome-summernote). See the README for details on the API and the currently supported plugins.
* Nullsafety pre-release coming soon.

## [1.3.0] - 2021-02-23
* Add official support for Flutter Web
* Add support for modifying the toolbar options. See the README for details on the API.
* Add support for a native dark mode
* Removed image_picker plugin and image button in toolbar because users can insert images via the image button in Summernote
    * [BREAKING] Removed the `imageWidth` and `useBottomSheet` params due to the above change

## [1.2.0+1] - 2021-02-20
* Add support for accessing `InAppWebViewController` via a getter
* Add support for inserting files via the editor dialog itself
* Add methods:
   * toggle code view
   * enable/disable editor
   * undo/redo
   * inserting plaintext/HTML/images/links
* Add callbacks:
   * onChange
   * onEnter
   * onFocus/onBlur/onBlurCodeview
   * onKeyUp/onKeyDown
   * onPaste
* Downgraded dependencies to non-nullsafety to prevent errors
* Updated docs and example app to showcase new features, refer to those for info on the above changes

## [1.1.1] - 2021-02-19
* Minor update to add documentation to code and completely refactor/reorganize code

## [1.1.0] - 2021-02-19
* Switch webview dependency to `flutter_inappwebview`
* Remove localserver, instead get Summernote HTML directly from assets (improves performance and loading speeds)
* [BREAKING] Switch to `StatelessWidget`
   * You no longer need a `GlobalKey` for the `HtmlEditorState`. All of the methods are static and can be called like so:
   ```dart
   HtmlEditor.setEmpty(); 
   ```
* Fix deprecations and update dependencies

## Flutter HTML Editor changes by xrb21
## [1.0.1] - 2020-05-07
* Update Readme usage for iOS

## [1.0.0] - 2020-05-07
* fixing iOS blank screen
* fixing text hint

## [0.0.2+1] - 2020-05-02
* fixing path packages

## [0.0.2] - 2020-05-02
* Change link repo

## [0.0.1] - 2020-05-02
* Initial Release