diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7518b3f7ada1dd583ee40c4fc6d4663587550470..a8cfd3494c06b0e2de9a122c8663178049bb9aba 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,11 @@
 # Changelog
 
+## [2.2.2](https://github.com/Okipa/laravel-bootstrap-components/compare/2.2.1...2.2.2)
 ## [2.2.1](https://github.com/Okipa/laravel-bootstrap-components/compare/2.2.0...2.2.1)
 
 2020-07-16
 
-* Fixed media components output types for static analysis.
+* Fixed components output types for static analysis.
 
 ## [2.2.0](https://github.com/Okipa/laravel-bootstrap-components/compare/2.1.12...2.2.0)
 
diff --git a/src/Helpers/buttons.php b/src/Helpers/buttons.php
index 75ac4ab91dd1efcebcf06af3a144156a22a34c8d..d4243ddfa5975db8f7e2acf26e4b13c9236770c6 100644
--- a/src/Helpers/buttons.php
+++ b/src/Helpers/buttons.php
@@ -5,9 +5,6 @@ use Okipa\LaravelBootstrapComponents\Components\Buttons\Abstracts\SubmitAbstract
 use Okipa\LaravelBootstrapComponents\Components\Component;
 
 if (! function_exists('submit')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Buttons\Abstracts\SubmitAbstract
-     */
     function submit(): SubmitAbstract
     {
         return (new Component)->submit();
@@ -15,9 +12,6 @@ if (! function_exists('submit')) {
 }
 
 if (! function_exists('submitCreate')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Buttons\Abstracts\SubmitAbstract
-     */
     function submitCreate(): SubmitAbstract
     {
         return (new Component)->submitCreate();
@@ -25,9 +19,6 @@ if (! function_exists('submitCreate')) {
 }
 
 if (! function_exists('submitUpdate')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Buttons\Abstracts\SubmitAbstract
-     */
     function submitUpdate(): SubmitAbstract
     {
         return (new Component)->submitUpdate();
@@ -35,9 +26,6 @@ if (! function_exists('submitUpdate')) {
 }
 
 if (! function_exists('submitValidate')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Buttons\Abstracts\SubmitAbstract
-     */
     function submitValidate(): SubmitAbstract
     {
         return (new Component)->submitValidate();
@@ -45,9 +33,6 @@ if (! function_exists('submitValidate')) {
 }
 
 if (! function_exists('button')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Buttons\Abstracts\ButtonAbstract
-     */
     function button(): ButtonAbstract
     {
         return (new Component)->button();
@@ -55,9 +40,6 @@ if (! function_exists('button')) {
 }
 
 if (! function_exists('buttonLink')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Buttons\Abstracts\ButtonAbstract
-     */
     function buttonLink(): ButtonAbstract
     {
         return (new Component)->buttonLink();
@@ -65,9 +47,6 @@ if (! function_exists('buttonLink')) {
 }
 
 if (! function_exists('buttonBack')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Buttons\Abstracts\ButtonAbstract
-     */
     function buttonBack(): ButtonAbstract
     {
         return (new Component)->buttonBack();
@@ -75,9 +54,6 @@ if (! function_exists('buttonBack')) {
 }
 
 if (! function_exists('buttonCancel')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Buttons\Abstracts\ButtonAbstract
-     */
     function buttonCancel(): ButtonAbstract
     {
         return (new Component)->buttonCancel();
diff --git a/src/Helpers/form.php b/src/Helpers/form.php
index ed66748e5b454f24680c222defc75d518051d7d3..7430bf8c67381393dc12f5ff1af150479dcd1bf6 100644
--- a/src/Helpers/form.php
+++ b/src/Helpers/form.php
@@ -1,14 +1,15 @@
 <?php
 
 use Okipa\LaravelBootstrapComponents\Components\Component;
+use Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\CheckableAbstract;
 use Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract;
 use Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\MultilingualAbstract;
+use Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\RadioAbstract;
 use Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\SelectableAbstract;
+use Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\TemporalAbstract;
+use Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\UploadableAbstract;
 
 if (! function_exists('inputText')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\MultilingualAbstract
-     */
     function inputText(): MultilingualAbstract
     {
         return (new Component)->inputText();
@@ -16,9 +17,6 @@ if (! function_exists('inputText')) {
 }
 
 if (! function_exists('inputEmail')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
     function inputEmail(): FormAbstract
     {
         return (new Component)->inputEmail();
@@ -26,9 +24,6 @@ if (! function_exists('inputEmail')) {
 }
 
 if (! function_exists('inputPassword')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
     function inputPassword(): FormAbstract
     {
         return (new Component)->inputPassword();
@@ -36,9 +31,6 @@ if (! function_exists('inputPassword')) {
 }
 
 if (! function_exists('inputUrl')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
     function inputUrl(): FormAbstract
     {
         return (new Component)->inputUrl();
@@ -46,9 +38,6 @@ if (! function_exists('inputUrl')) {
 }
 
 if (! function_exists('inputTel')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
     function inputTel(): FormAbstract
     {
         return (new Component)->inputTel();
@@ -56,9 +45,6 @@ if (! function_exists('inputTel')) {
 }
 
 if (! function_exists('inputNumber')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
     function inputNumber(): FormAbstract
     {
         return (new Component)->inputNumber();
@@ -66,9 +52,6 @@ if (! function_exists('inputNumber')) {
 }
 
 if (! function_exists('inputColor')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
     function inputColor(): FormAbstract
     {
         return (new Component)->inputColor();
@@ -76,79 +59,55 @@ if (! function_exists('inputColor')) {
 }
 
 if (! function_exists('inputDate')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
-    function inputDate(): FormAbstract
+    function inputDate(): TemporalAbstract
     {
         return (new Component)->inputDate();
     }
 }
 
 if (! function_exists('inputTime')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
-    function inputTime(): FormAbstract
+    function inputTime(): TemporalAbstract
     {
         return (new Component)->inputTime();
     }
 }
 
 if (! function_exists('inputDatetime')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
-    function inputDatetime(): FormAbstract
+    function inputDatetime(): TemporalAbstract
     {
         return (new Component)->inputDatetime();
     }
 }
 
 if (! function_exists('inputFile')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
-    function inputFile(): FormAbstract
+    function inputFile(): UploadableAbstract
     {
         return (new Component)->inputFile();
     }
 }
 
 if (! function_exists('inputCheckbox')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
-    function inputCheckbox(): FormAbstract
+    function inputCheckbox(): CheckableAbstract
     {
         return (new Component)->inputCheckbox();
     }
 }
 
 if (! function_exists('inputToggle')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
-    function inputToggle(): FormAbstract
+    function inputToggle(): CheckableAbstract
     {
         return (new Component)->inputToggle();
     }
 }
 
 if (! function_exists('inputRadio')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\FormAbstract
-     */
-    function inputRadio(): FormAbstract
+    function inputRadio(): RadioAbstract
     {
         return (new Component)->inputRadio();
     }
 }
 
 if (! function_exists('textarea')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\MultilingualAbstract
-     */
     function textarea(): MultilingualAbstract
     {
         return (new Component)->textarea();
@@ -156,9 +115,6 @@ if (! function_exists('textarea')) {
 }
 
 if (! function_exists('select')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Form\Abstracts\SelectableAbstract
-     */
     function select(): SelectableAbstract
     {
         return (new Component)->select();
diff --git a/src/Helpers/media.php b/src/Helpers/media.php
index b4938c213f01404655d3fa39b74f172908131060..dbee3fc063341e655dea633a2999bb8b91cc78a6 100644
--- a/src/Helpers/media.php
+++ b/src/Helpers/media.php
@@ -1,22 +1,18 @@
 <?php
 
 use Okipa\LaravelBootstrapComponents\Components\Component;
+use Okipa\LaravelBootstrapComponents\Components\Media\Abstracts\ImageAbstract;
 use Okipa\LaravelBootstrapComponents\Components\Media\Abstracts\MediaAbstract;
+use Okipa\LaravelBootstrapComponents\Components\Media\Abstracts\VideoAbstract;
 
 if (! function_exists('image')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Media\Abstracts\MediaAbstract
-     */
-    function image(): MediaAbstract
+    function image(): ImageAbstract
     {
         return (new Component)->image();
     }
 }
 
 if (! function_exists('audio')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Media\Abstracts\MediaAbstract
-     */
     function audio(): MediaAbstract
     {
         return (new Component)->audio();
@@ -24,10 +20,7 @@ if (! function_exists('audio')) {
 }
 
 if (! function_exists('video')) {
-    /**
-     * @return \Okipa\LaravelBootstrapComponents\Components\Media\Abstracts\MediaAbstract
-     */
-    function video(): MediaAbstract
+    function video(): VideoAbstract
     {
         return (new Component)->video();
     }