diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 10d516f594..0000000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: 2
-jobs:
- build:
- docker:
- - image: cirrusci/flutter
- steps:
- - checkout
- - run: flutter --version
- - run: flutter test
\ No newline at end of file
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 6418d1dee6..6627ba6868 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,6 +1,6 @@
# These are supported funding model platforms
-github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+github: Sub6Resources
patreon: # Replace with a single Patreon username
open_collective: flutter_html
ko_fi: # Replace with a single Ko-fi username
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000000..52aaf0660e
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,46 @@
+---
+name: Bug report
+about: Something isn't working as intended
+title: "[BUG]"
+labels: bug
+assignees: ''
+
+---
+
+
+
+**Describe the bug:**
+
+
+**HTML to reproduce the issue:**
+
+
+**`Html` widget configuration:**
+
+
+**Expected behavior:**
+
+
+**Screenshots:**
+
+
+**Device details and Flutter/Dart/`flutter_html` versions:**
+
+
+**Stacktrace/Logcat**
+
+
+**Additional info:**
+
+
+**A picture of a cute animal (not mandatory but encouraged)**
+
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000000..48d4188102
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,27 @@
+---
+name: Feature request
+about: Suggest an idea for flutter_html
+title: "[FEATURE]"
+labels: enhancement
+assignees: ''
+
+---
+
+
+
+**Describe your feature request**
+
+
+**Additional context**
+
+
+**A picture of a cute animal (not mandatory but encouraged)**
+
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md
new file mode 100644
index 0000000000..8ecf5cff57
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/question.md
@@ -0,0 +1,20 @@
+---
+name: Question
+about: Ask a question about flutter_html
+title: "[QUESTION]"
+labels: question
+assignees: ''
+
+---
+
+
+
+Type question here.
+
+**A picture of a cute animal (not mandatory but encouraged)**
+
diff --git a/.github/flutter_html_screenshot.png b/.github/flutter_html_screenshot.png
deleted file mode 100644
index dabafb0807..0000000000
Binary files a/.github/flutter_html_screenshot.png and /dev/null differ
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000000..3bd2e1fd11
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,33 @@
+name: flutter_html tests
+
+on:
+ pull_request:
+ branches: [ master ]
+ push:
+ branches: [ master ]
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: dart-lang/setup-dart@v1
+ - uses: flutter-actions/setup-flutter@54feb1e258158303e041b9eaf89314dcfbf6d38a
+ - name: Setup Melos
+ run: flutter pub global activate melos
+ - name: Bootstrap Project
+ run: melos bootstrap
+ - name: Run Test Suite
+ run: flutter pub global run melos run test
+ - name: Compile Test Coverage Report
+ run: flutter pub global run melos run gen_coverage
+ - name: Upload Coverage to Codecov
+ uses: codecov/codecov-action@v5
+ with:
+ files: coverage_report/lcov.info
+ disable_search: true
+ token: ${{ secrets.CODECOV_TOKEN }}
+ - name: Run Dart Analysis
+ run: flutter pub global run melos analyze --fatal-infos
+ - name: Check that `dart format` has been run on every file
+ run: dart format -o none --set-exit-if-changed .
diff --git a/.gitignore b/.gitignore
index 68c69d3ef2..188d2e1fa5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,152 +1,159 @@
.DS_Store
-.dart_tool/
-
-.packages
-.pub/
-build/
-ios/.generated/
-ios/Flutter/Generated.xcconfig
-ios/Runner/GeneratedPluginRegistrant.*
+# Created by https://www.gitignore.io/api/flutter
+# Edit at https://www.gitignore.io/?templates=flutter
### Flutter ###
+# Flutter/Dart/Pub related
+**/doc/api/
+.dart_tool/
.flutter-plugins
+.packages
+.pub-cache/
+.pub/
+build/
+pubspec.lock
+# Android related
+**/android/**/gradle-wrapper.jar
+**/android/.gradle
+**/android/captures/
+**/android/gradlew
+**/android/gradlew.bat
+**/android/local.properties
+**/android/**/GeneratedPluginRegistrant.java
+
+# iOS/XCode related
+**/ios/**/*.mode1v3
+**/ios/**/*.mode2v3
+**/ios/**/*.moved-aside
+**/ios/**/*.pbxuser
+**/ios/**/*.perspectivev3
+**/ios/**/*sync/
+**/ios/**/.sconsign.dblite
+**/ios/**/.tags*
+**/ios/**/.vagrant/
+**/ios/**/DerivedData/
+**/ios/**/Icon?
+**/ios/**/Pods/
+**/ios/**/.symlinks/
+**/ios/**/profile
+**/ios/**/xcuserdata
+**/ios/.generated/
+**/ios/Flutter/.last_build_id
+**/ios/Flutter/App.framework
+**/ios/Flutter/Flutter.framework
+**/ios/Flutter/Generated.xcconfig
+**/ios/Flutter/app.flx
+**/ios/Flutter/app.zip
+**/ios/Flutter/flutter_assets/
+**/ios/ServiceDefinitions.json
+**/ios/Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
+!**/ios/**/default.mode1v3
+!**/ios/**/default.mode2v3
+!**/ios/**/default.pbxuser
+!**/ios/**/default.perspectivev3
+!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
+
+# End of https://www.gitignore.io/api/flutter
+
+### JetBrains+all ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
-# End of https://www.gitignore.io/api/flutter,android-studio
-
-# Created by https://www.gitignore.io/api/androidstudio
-
-### AndroidStudio ###
-# Covers files to be ignored for android development using Android Studio.
-
-# Built application files
-*.apk
-*.ap_
-
-# Files for the ART/Dalvik VM
-*.dex
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
-# Java class files
-*.class
+# File-based project format
+*.iws
-# Generated files
-bin/
-gen/
+# IntelliJ
out/
-# Gradle files
-.gradle
-.gradle/
-build/
+# mpeltonen/sbt-idea plugin
+.idea_modules/
-# Signing files
-.signing/
+# JIRA plugin
+atlassian-ide-plugin.xml
-# Local configuration file (sdk path, etc)
-local.properties
+# Cursive Clojure plugin
+.idea/replstate.xml
-# Proguard folder generated by Eclipse
-proguard/
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
-# Log Files
-*.log
+# Editor-based Rest Client
+.idea/httpRequests
-# Android Studio
-/*/build/
-/*/local.properties
-/*/out
-/*/*/build
-/*/*/production
-captures/
-.navigation/
-*.ipr
-*~
-*.swp
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
-# Android Patch
-gen-external-apklibs
+### JetBrains+all Patch ###
+# Ignores the whole .idea folder and all .iml files
+# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
-# External native build folder generated in Android Studio 2.2 and later
-.externalNativeBuild
+.idea/
-# NDK
-obj/
+# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
-# IntelliJ IDEA
*.iml
-*.iws
-/out/
-
-# User-specific configurations
-.idea/caches/
-.idea/libraries/
-.idea/shelf/
-.idea/workspace.xml
-.idea/tasks.xml
-.idea/.name
-.idea/compiler.xml
-.idea/copyright/profiles_settings.xml
-.idea/encodings.xml
+modules.xml
.idea/misc.xml
-.idea/modules.xml
-.idea/scopes/scope_settings.xml
-.idea/dictionaries
-.idea/vcs.xml
-.idea/jsLibraryMappings.xml
-.idea/datasources.xml
-.idea/dataSources.ids
-.idea/sqlDataSources.xml
-.idea/dynamic.xml
-.idea/uiDesigner.xml
-.idea/markdown-navigator.xml
-.idea/markdown-navigator/
-
-# OS-specific files
-.DS_Store
-.DS_Store?
-._*
-.Spotlight-V100
-.Trashes
-ehthumbs.db
-Thumbs.db
-
-# Legacy Eclipse project files
-.classpath
-.project
-.cproject
-.settings/
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.war
-*.ear
-
-# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
-hs_err_pid*
-
-## Plugin-specific files:
-
-# mpeltonen/sbt-idea plugin
-.idea_modules/
+*.ipr
-# JIRA plugin
-atlassian-ide-plugin.xml
+# Sonarlint plugin
+.idea/sonarlint
-# Mongo Explorer plugin
-.idea/mongoSettings.xml
+# End of https://www.gitignore.io/api/flutter,jetbrains+all
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-fabric.properties
+**/.flutter-plugins-dependencies
-### AndroidStudio Patch ###
+**/flutter_export_environment.sh
-!/gradle/wrapper/gradle-wrapper.jar
+/example/ios/Flutter/Flutter.podspec
+packages/**/pubspec_overrides.yaml
+./pubspec_overrides.yaml
+/example/pubspec_overrides.yaml
-# End of https://www.gitignore.io/api/androidstudio
+coverage/
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 30aa626c23..0000000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-