You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2023/01/18 09:53:17 UTC

[myfaces-tobago] 02/02: build(theme): rebuild after implementing message/help position attribute

This is an automated email from the ASF dual-hosted git repository.

hnoeth pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit 1276941437d5bedaf4b035da05fdadcfb074035c
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Thu Jan 12 13:51:44 2023 +0100

    build(theme): rebuild after implementing message/help position attribute
---
 .../src/main/css/tobago.css                        | 195 +++++++++++++++++++--
 .../src/main/css/tobago.css.map                    |   2 +-
 .../src/main/css/tobago.min.css                    |   2 +-
 .../src/main/css/tobago.min.css.map                |   2 +-
 .../src/main/css/tobago.css                        | 195 +++++++++++++++++++--
 .../src/main/css/tobago.css.map                    |   2 +-
 .../src/main/css/tobago.min.css                    |   2 +-
 .../src/main/css/tobago.min.css.map                |   2 +-
 .../src/main/css/tobago.css                        | 195 +++++++++++++++++++--
 .../src/main/css/tobago.css.map                    |   2 +-
 .../src/main/css/tobago.min.css                    |   2 +-
 .../src/main/css/tobago.min.css.map                |   2 +-
 .../tobago-theme-speyside/src/main/css/tobago.css  | 194 ++++++++++++++++++--
 .../src/main/css/tobago.css.map                    |   2 +-
 .../src/main/css/tobago.min.css                    |   2 +-
 .../src/main/css/tobago.min.css.map                |   2 +-
 .../tobago-theme-standard/src/main/css/tobago.css  | 195 +++++++++++++++++++--
 .../src/main/css/tobago.css.map                    |   2 +-
 .../src/main/css/tobago.min.css                    |   2 +-
 .../src/main/css/tobago.min.css.map                |   2 +-
 20 files changed, 919 insertions(+), 85 deletions(-)

diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
index 0ccc0ddfb7..c1ff7e86b9 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css
@@ -11113,7 +11113,6 @@ tobago-flex-layout > tobago-flex-layout {
   margin-bottom: 0;
 }
 
-/* flowLayout ---------------------------------------------------------- */
 tobago-flow-layout {
   display: block;
 }
@@ -11127,7 +11126,6 @@ tobago-focus {
   display: none;
 }
 
-/* footer -------------------------------------------------------------- */
 tobago-footer {
   display: block;
   background-color: #ffffff;
@@ -11163,6 +11161,106 @@ tobago-header.sticky-top {
   margin-right: -0.75rem;
 }
 
+.tobago-help-container {
+  width: 100%;
+}
+.tobago-help-container .help-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 0.875em;
+  color: #389c30;
+}
+.tobago-help-container .help-tooltip {
+  position: absolute;
+  top: 100%;
+  z-index: 5;
+  display: none;
+  max-width: 100%;
+  padding: 0.25rem 0.5rem;
+  margin-top: 0.1rem;
+  font-size: 0.875rem;
+  color: #000000;
+  background-color: rgba(56, 156, 48, 0.9);
+  border-radius: 0.375rem;
+}
+.tobago-help-container.is-help ~ .help-feedback,
+.tobago-help-container.is-help ~ .help-tooltip {
+  display: block;
+}
+.tobago-help-container .form-control.is-help {
+  border-color: #389c30;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: none;
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-control.is-help:focus {
+  border-color: #389c30;
+  box-shadow: 0 0 0 0.25rem rgba(56, 156, 48, 0.25);
+}
+.tobago-help-container textarea.form-control.is-help {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
+.tobago-help-container .form-select.is-help {
+  border-color: #389c30;
+}
+.tobago-help-container .form-select.is-help:not([multiple]):not([size]), .tobago-help-container .form-select.is-help:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), none;
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-select.is-help:focus {
+  border-color: #389c30;
+  box-shadow: 0 0 0 0.25rem rgba(56, 156, 48, 0.25);
+}
+.tobago-help-container .form-control-color.is-help {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
+.tobago-help-container .form-check-input.is-help {
+  border-color: #389c30;
+}
+.tobago-help-container .form-check-input.is-help:checked {
+  background-color: #389c30;
+}
+.tobago-help-container .form-check-input.is-help:focus {
+  box-shadow: 0 0 0 0.25rem rgba(56, 156, 48, 0.25);
+}
+.tobago-help-container .form-check-input.is-help ~ .form-check-label {
+  color: #389c30;
+}
+.tobago-help-container .form-check-inline .form-check-input ~ .help-feedback {
+  margin-left: 0.5em;
+}
+.tobago-help-container.tobago-button-left, .tobago-help-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-help-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
+}
+.tobago-help-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-right > tobago-popover {
+  margin-left: 0.75rem;
+}
+.tobago-help-container.tobago-button-left tobago-popover > a, .tobago-help-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-help-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-help-container.tobago-tooltip .help-tooltip {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback, .tobago-help-container.tobago-text-bottom .help-feedback {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback {
+  margin-bottom: 0.25rem;
+}
+
 /* image ----------------------------------------------------------- */
 tobago-image.disabled {
   filter: grayscale(1) blur(2px) contrast(0.5) brightness(1.2);
@@ -11331,10 +11429,8 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
   padding-right: 0;
 }
 
-/* messages / help text ----------------------------------------------- */
 .tobago-messages-container {
-  display: flex;
-  align-items: flex-start;
+  width: 100%;
 }
 .tobago-messages-container .error-feedback {
   display: none;
@@ -11362,18 +11458,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-error {
   border-color: #ff00be;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff00be'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff00be' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-error:focus {
   border-color: #ff00be;
   box-shadow: 0 0 0 0.25rem rgba(255, 0, 190, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-error {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-error {
   border-color: #ff00be;
 }
+.tobago-messages-container .form-select.is-error:not([multiple]):not([size]), .tobago-messages-container .form-select.is-error:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff00be'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-error:focus {
   border-color: #ff00be;
   box-shadow: 0 0 0 0.25rem rgba(255, 0, 190, 0.25);
 }
+.tobago-messages-container .form-control-color.is-error {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-error {
   border-color: #ff00be;
 }
@@ -11415,18 +11529,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-warning {
   border-color: #ff00be;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff00be'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff00be' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-warning:focus {
   border-color: #ff00be;
   box-shadow: 0 0 0 0.25rem rgba(255, 0, 190, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-warning {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-warning {
   border-color: #ff00be;
 }
+.tobago-messages-container .form-select.is-warning:not([multiple]):not([size]), .tobago-messages-container .form-select.is-warning:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff00be'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-warning:focus {
   border-color: #ff00be;
   box-shadow: 0 0 0 0.25rem rgba(255, 0, 190, 0.25);
 }
+.tobago-messages-container .form-control-color.is-warning {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-warning {
   border-color: #ff00be;
 }
@@ -11468,18 +11600,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-info {
   border-color: #389c30;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23389c30'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23389c30' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-info:focus {
   border-color: #389c30;
   box-shadow: 0 0 0 0.25rem rgba(56, 156, 48, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-info {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-info {
   border-color: #389c30;
 }
+.tobago-messages-container .form-select.is-info:not([multiple]):not([size]), .tobago-messages-container .form-select.is-info:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23389c30'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-info:focus {
   border-color: #389c30;
   box-shadow: 0 0 0 0.25rem rgba(56, 156, 48, 0.25);
 }
+.tobago-messages-container .form-control-color.is-info {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-info {
   border-color: #389c30;
 }
@@ -11495,16 +11645,34 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 .tobago-messages-container .form-check-inline .form-check-input ~ .info-feedback {
   margin-left: 0.5em;
 }
-.tobago-messages-container .tobago-messages:first-child small label, .tobago-messages-container .tobago-messages:first-child .small label {
-  margin-right: 0; /* for tc:in margin 5px is already set */
-  margin-bottom: 5px;
+.tobago-messages-container.tobago-button-left, .tobago-messages-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-messages-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
 }
-.tobago-messages-container tobago-popover {
+.tobago-messages-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-right > tobago-popover {
   margin-left: 0.75rem;
 }
-.tobago-messages-container tobago-popover .btn {
-  padding-left: 0.4rem;
-  padding-right: 0.4rem;
+.tobago-messages-container.tobago-button-left tobago-popover > a, .tobago-messages-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-messages-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-messages-container.tobago-button-left .form-control, .tobago-messages-container.tobago-button-right .form-control {
+  padding-right: 0.75rem;
+  background-image: none;
+}
+.tobago-messages-container.tobago-tooltip .error-tooltip, .tobago-messages-container.tobago-tooltip .warning-tooltip, .tobago-messages-container.tobago-tooltip .info-tooltip {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback, .tobago-messages-container.tobago-text-bottom .error-feedback, .tobago-messages-container.tobago-text-bottom .warning-feedback, .tobago-messages-container.tobago-text-bottom .info-feedback {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback {
+  margin-bottom: 0.25rem;
 }
 
 .tobago-popover-box {
@@ -11549,7 +11717,6 @@ tobago-messages .alert.alert-dismissible.alert-warning:before {
 tobago-messages .alert.alert-dismissible.alert-info:before {
   content: "\f646";
 }
-
 .popover .popover-body {
   white-space: pre-line;
 }
@@ -12031,7 +12198,7 @@ tobago-select-many-shuttle .tobago-body .tobago-unselected:disabled option, toba
 tobago-select-many-shuttle .tobago-body .tobago-selected:disabled option, tobago-select-many-shuttle .tobago-body .tobago-selected option:disabled {
   color: rgba(160, 160, 160, 0.5);
 }
-tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
+tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-help-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
   flex: 1 0 0px;
 }
 
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map
index 98c7fb3f5e..873cc8d4fa 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css
index dc46104063..08c03a4ffe 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#ff00be;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000000;--bs-white:#ffffff;--bs-gray:#777777;--bs-gray-dark:#323232;--bs-gray-100:#f8f9fa;--bs-gray-200:#d0d0d0;--bs-gray-300:#dee2e6;--bs-gray-400:#a0a0a0;--bs-gray-500:#adb5bd;--bs-gray-600:#777777;--bs-gray-700:#495057;--bs-gray-800:#323232;--bs-gray-900:#212529;--bs [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#ff00be;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000000;--bs-white:#ffffff;--bs-gray:#777777;--bs-gray-dark:#323232;--bs-gray-100:#f8f9fa;--bs-gray-200:#d0d0d0;--bs-gray-300:#dee2e6;--bs-gray-400:#a0a0a0;--bs-gray-500:#adb5bd;--bs-gray-600:#777777;--bs-gray-700:#495057;--bs-gray-800:#323232;--bs-gray-900:#212529;--bs [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map
index 01844811ca..7ff8db6f13 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-charlotteville/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,QACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9 [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-charlotteville/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,QACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9 [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
index 9c3cb898f4..157a98a917 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css
@@ -11140,7 +11140,6 @@ tobago-flex-layout > tobago-flex-layout {
   margin-bottom: 0;
 }
 
-/* flowLayout ---------------------------------------------------------- */
 tobago-flow-layout {
   display: block;
 }
@@ -11154,7 +11153,6 @@ tobago-focus {
   display: none;
 }
 
-/* footer -------------------------------------------------------------- */
 tobago-footer {
   display: block;
   background-color: #fff;
@@ -11190,6 +11188,106 @@ tobago-header.sticky-top {
   margin-right: -0.75rem;
 }
 
+.tobago-help-container {
+  width: 100%;
+}
+.tobago-help-container .help-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 0.875em;
+  color: #130E8F;
+}
+.tobago-help-container .help-tooltip {
+  position: absolute;
+  top: 100%;
+  z-index: 5;
+  display: none;
+  max-width: 100%;
+  padding: 0.25rem 0.5rem;
+  margin-top: 0.1rem;
+  font-size: 0.875rem;
+  color: #fff;
+  background-color: rgba(19, 14, 143, 0.9);
+  border-radius: 0.375rem;
+}
+.tobago-help-container.is-help ~ .help-feedback,
+.tobago-help-container.is-help ~ .help-tooltip {
+  display: block;
+}
+.tobago-help-container .form-control.is-help {
+  border-color: #130E8F;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: none;
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-control.is-help:focus {
+  border-color: #130E8F;
+  box-shadow: 0 0 0 0.25rem rgba(19, 14, 143, 0.25);
+}
+.tobago-help-container textarea.form-control.is-help {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
+.tobago-help-container .form-select.is-help {
+  border-color: #130E8F;
+}
+.tobago-help-container .form-select.is-help:not([multiple]):not([size]), .tobago-help-container .form-select.is-help:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), none;
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-select.is-help:focus {
+  border-color: #130E8F;
+  box-shadow: 0 0 0 0.25rem rgba(19, 14, 143, 0.25);
+}
+.tobago-help-container .form-control-color.is-help {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
+.tobago-help-container .form-check-input.is-help {
+  border-color: #130E8F;
+}
+.tobago-help-container .form-check-input.is-help:checked {
+  background-color: #130E8F;
+}
+.tobago-help-container .form-check-input.is-help:focus {
+  box-shadow: 0 0 0 0.25rem rgba(19, 14, 143, 0.25);
+}
+.tobago-help-container .form-check-input.is-help ~ .form-check-label {
+  color: #130E8F;
+}
+.tobago-help-container .form-check-inline .form-check-input ~ .help-feedback {
+  margin-left: 0.5em;
+}
+.tobago-help-container.tobago-button-left, .tobago-help-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-help-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
+}
+.tobago-help-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-right > tobago-popover {
+  margin-left: 0.75rem;
+}
+.tobago-help-container.tobago-button-left tobago-popover > a, .tobago-help-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-help-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-help-container.tobago-tooltip .help-tooltip {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback, .tobago-help-container.tobago-text-bottom .help-feedback {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback {
+  margin-bottom: 0.25rem;
+}
+
 /* image ----------------------------------------------------------- */
 tobago-image.disabled {
   filter: grayscale(1) blur(2px) contrast(0.5) brightness(1.2);
@@ -11358,10 +11456,8 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
   padding-right: 0;
 }
 
-/* messages / help text ----------------------------------------------- */
 .tobago-messages-container {
-  display: flex;
-  align-items: flex-start;
+  width: 100%;
 }
 .tobago-messages-container .error-feedback {
   display: none;
@@ -11389,18 +11485,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-error {
   border-color: #ffb243;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ffb243'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ffb243' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-error:focus {
   border-color: #ffb243;
   box-shadow: 0 0 0 0.25rem rgba(255, 178, 67, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-error {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-error {
   border-color: #ffb243;
 }
+.tobago-messages-container .form-select.is-error:not([multiple]):not([size]), .tobago-messages-container .form-select.is-error:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ffb243'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-error:focus {
   border-color: #ffb243;
   box-shadow: 0 0 0 0.25rem rgba(255, 178, 67, 0.25);
 }
+.tobago-messages-container .form-control-color.is-error {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-error {
   border-color: #ffb243;
 }
@@ -11442,18 +11556,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-warning {
   border-color: #B26812;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23B26812'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23B26812' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-warning:focus {
   border-color: #B26812;
   box-shadow: 0 0 0 0.25rem rgba(178, 104, 18, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-warning {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-warning {
   border-color: #B26812;
 }
+.tobago-messages-container .form-select.is-warning:not([multiple]):not([size]), .tobago-messages-container .form-select.is-warning:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23B26812'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-warning:focus {
   border-color: #B26812;
   box-shadow: 0 0 0 0.25rem rgba(178, 104, 18, 0.25);
 }
+.tobago-messages-container .form-control-color.is-warning {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-warning {
   border-color: #B26812;
 }
@@ -11495,18 +11627,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-info {
   border-color: #130E8F;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23130E8F'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23130E8F' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-info:focus {
   border-color: #130E8F;
   box-shadow: 0 0 0 0.25rem rgba(19, 14, 143, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-info {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-info {
   border-color: #130E8F;
 }
+.tobago-messages-container .form-select.is-info:not([multiple]):not([size]), .tobago-messages-container .form-select.is-info:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23130E8F'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-info:focus {
   border-color: #130E8F;
   box-shadow: 0 0 0 0.25rem rgba(19, 14, 143, 0.25);
 }
+.tobago-messages-container .form-control-color.is-info {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-info {
   border-color: #130E8F;
 }
@@ -11522,16 +11672,34 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 .tobago-messages-container .form-check-inline .form-check-input ~ .info-feedback {
   margin-left: 0.5em;
 }
-.tobago-messages-container .tobago-messages:first-child small label, .tobago-messages-container .tobago-messages:first-child .small label {
-  margin-right: 0; /* for tc:in margin 5px is already set */
-  margin-bottom: 5px;
+.tobago-messages-container.tobago-button-left, .tobago-messages-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-messages-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
 }
-.tobago-messages-container tobago-popover {
+.tobago-messages-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-right > tobago-popover {
   margin-left: 0.75rem;
 }
-.tobago-messages-container tobago-popover .btn {
-  padding-left: 0.4rem;
-  padding-right: 0.4rem;
+.tobago-messages-container.tobago-button-left tobago-popover > a, .tobago-messages-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-messages-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-messages-container.tobago-button-left .form-control, .tobago-messages-container.tobago-button-right .form-control {
+  padding-right: 0.75rem;
+  background-image: none;
+}
+.tobago-messages-container.tobago-tooltip .error-tooltip, .tobago-messages-container.tobago-tooltip .warning-tooltip, .tobago-messages-container.tobago-tooltip .info-tooltip {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback, .tobago-messages-container.tobago-text-bottom .error-feedback, .tobago-messages-container.tobago-text-bottom .warning-feedback, .tobago-messages-container.tobago-text-bottom .info-feedback {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback {
+  margin-bottom: 0.25rem;
 }
 
 .tobago-popover-box {
@@ -11576,7 +11744,6 @@ tobago-messages .alert.alert-dismissible.alert-warning:before {
 tobago-messages .alert.alert-dismissible.alert-info:before {
   content: "\f646";
 }
-
 .popover .popover-body {
   white-space: pre-line;
 }
@@ -12058,7 +12225,7 @@ tobago-select-many-shuttle .tobago-body .tobago-unselected:disabled option, toba
 tobago-select-many-shuttle .tobago-body .tobago-selected:disabled option, tobago-select-many-shuttle .tobago-body .tobago-selected option:disabled {
   color: rgba(160, 160, 160, 0.5);
 }
-tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
+tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-help-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
   flex: 1 0 0px;
 }
 
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map
index 50c43956c7..53c4cb9616 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.s [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css
index 241ab9dc49..da98d421c0 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";@font-face{font-family:Amaranth;font-style:normal;font-weight:400;src:url("../fonts/Amaranth-Regular.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:normal;font-weight:700;src:url("../fonts/Amaranth-Bold.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:italic;src:url("../fonts/Amaranth-Italic.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:italic;font-weight:700;src:url("../fonts/Amaranth-BoldItalic.otf") format( [...]
+@charset "UTF-8";@font-face{font-family:Amaranth;font-style:normal;font-weight:400;src:url("../fonts/Amaranth-Regular.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:normal;font-weight:700;src:url("../fonts/Amaranth-Bold.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:italic;src:url("../fonts/Amaranth-Italic.otf") format("opentype")}@font-face{font-family:Amaranth;font-style:italic;font-weight:700;src:url("../fonts/Amaranth-BoldItalic.otf") format( [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map
index fa41575591..18fbb5acc1 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-roxborough/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-roxborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAiCA,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,qCAAqC,mBAE5C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,kCAAkC,mBAEzC,WACE,YAAa,SACb,WAAY,OACZ,IAAK,oCAAoC,mBAE3C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,wCAAwC,mBAE/C,mBACE,YAAa,QAAQ,CAAE,KAAK,CAAE,MAShC,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAC [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-roxborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAiCA,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,qCAAqC,mBAE5C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,kCAAkC,mBAEzC,WACE,YAAa,SACb,WAAY,OACZ,IAAK,oCAAoC,mBAE3C,WACE,YAAa,SACb,WAAY,OACZ,YAAa,IACb,IAAK,wCAAwC,mBAE/C,mBACE,YAAa,QAAQ,CAAE,KAAK,CAAE,MAShC,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,QACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAC [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
index 58fa0a9b64..21a89b5c0d 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css
@@ -11114,7 +11114,6 @@ tobago-flex-layout > tobago-flex-layout {
   margin-bottom: 0;
 }
 
-/* flowLayout ---------------------------------------------------------- */
 tobago-flow-layout {
   display: block;
 }
@@ -11128,7 +11127,6 @@ tobago-focus {
   display: none;
 }
 
-/* footer -------------------------------------------------------------- */
 tobago-footer {
   display: block;
   background-color: #fff;
@@ -11164,6 +11162,106 @@ tobago-header.sticky-top {
   margin-right: -0.75rem;
 }
 
+.tobago-help-container {
+  width: 100%;
+}
+.tobago-help-container .help-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 0.875em;
+  color: #0dcaf0;
+}
+.tobago-help-container .help-tooltip {
+  position: absolute;
+  top: 100%;
+  z-index: 5;
+  display: none;
+  max-width: 100%;
+  padding: 0.25rem 0.5rem;
+  margin-top: 0.1rem;
+  font-size: 0.875rem;
+  color: #000;
+  background-color: rgba(13, 202, 240, 0.9);
+  border-radius: 0.375rem;
+}
+.tobago-help-container.is-help ~ .help-feedback,
+.tobago-help-container.is-help ~ .help-tooltip {
+  display: block;
+}
+.tobago-help-container .form-control.is-help {
+  border-color: #0dcaf0;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: none;
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-control.is-help:focus {
+  border-color: #0dcaf0;
+  box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
+}
+.tobago-help-container textarea.form-control.is-help {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
+.tobago-help-container .form-select.is-help {
+  border-color: #0dcaf0;
+}
+.tobago-help-container .form-select.is-help:not([multiple]):not([size]), .tobago-help-container .form-select.is-help:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), none;
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-select.is-help:focus {
+  border-color: #0dcaf0;
+  box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
+}
+.tobago-help-container .form-control-color.is-help {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
+.tobago-help-container .form-check-input.is-help {
+  border-color: #0dcaf0;
+}
+.tobago-help-container .form-check-input.is-help:checked {
+  background-color: #0dcaf0;
+}
+.tobago-help-container .form-check-input.is-help:focus {
+  box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
+}
+.tobago-help-container .form-check-input.is-help ~ .form-check-label {
+  color: #0dcaf0;
+}
+.tobago-help-container .form-check-inline .form-check-input ~ .help-feedback {
+  margin-left: 0.5em;
+}
+.tobago-help-container.tobago-button-left, .tobago-help-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-help-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
+}
+.tobago-help-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-right > tobago-popover {
+  margin-left: 0.75rem;
+}
+.tobago-help-container.tobago-button-left tobago-popover > a, .tobago-help-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-help-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-help-container.tobago-tooltip .help-tooltip {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback, .tobago-help-container.tobago-text-bottom .help-feedback {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback {
+  margin-bottom: 0.25rem;
+}
+
 /* image ----------------------------------------------------------- */
 tobago-image.disabled {
   filter: grayscale(1) blur(2px) contrast(0.5) brightness(1.2);
@@ -11332,10 +11430,8 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
   padding-right: 0;
 }
 
-/* messages / help text ----------------------------------------------- */
 .tobago-messages-container {
-  display: flex;
-  align-items: flex-start;
+  width: 100%;
 }
 .tobago-messages-container .error-feedback {
   display: none;
@@ -11363,18 +11459,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-error {
   border-color: #dc3545;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-error:focus {
   border-color: #dc3545;
   box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-error {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-error {
   border-color: #dc3545;
 }
+.tobago-messages-container .form-select.is-error:not([multiple]):not([size]), .tobago-messages-container .form-select.is-error:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-error:focus {
   border-color: #dc3545;
   box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
 }
+.tobago-messages-container .form-control-color.is-error {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-error {
   border-color: #dc3545;
 }
@@ -11416,18 +11530,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-warning {
   border-color: #ffc107;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ffc107'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ffc107' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-warning:focus {
   border-color: #ffc107;
   box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-warning {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-warning {
   border-color: #ffc107;
 }
+.tobago-messages-container .form-select.is-warning:not([multiple]):not([size]), .tobago-messages-container .form-select.is-warning:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ffc107'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-warning:focus {
   border-color: #ffc107;
   box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.25);
 }
+.tobago-messages-container .form-control-color.is-warning {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-warning {
   border-color: #ffc107;
 }
@@ -11469,18 +11601,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-info {
   border-color: #0dcaf0;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%230dcaf0'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%230dcaf0' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-info:focus {
   border-color: #0dcaf0;
   box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-info {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-info {
   border-color: #0dcaf0;
 }
+.tobago-messages-container .form-select.is-info:not([multiple]):not([size]), .tobago-messages-container .form-select.is-info:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%230dcaf0'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-info:focus {
   border-color: #0dcaf0;
   box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
 }
+.tobago-messages-container .form-control-color.is-info {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-info {
   border-color: #0dcaf0;
 }
@@ -11496,16 +11646,34 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 .tobago-messages-container .form-check-inline .form-check-input ~ .info-feedback {
   margin-left: 0.5em;
 }
-.tobago-messages-container .tobago-messages:first-child small label, .tobago-messages-container .tobago-messages:first-child .small label {
-  margin-right: 0; /* for tc:in margin 5px is already set */
-  margin-bottom: 5px;
+.tobago-messages-container.tobago-button-left, .tobago-messages-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-messages-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
 }
-.tobago-messages-container tobago-popover {
+.tobago-messages-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-right > tobago-popover {
   margin-left: 0.75rem;
 }
-.tobago-messages-container tobago-popover .btn {
-  padding-left: 0.4rem;
-  padding-right: 0.4rem;
+.tobago-messages-container.tobago-button-left tobago-popover > a, .tobago-messages-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-messages-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-messages-container.tobago-button-left .form-control, .tobago-messages-container.tobago-button-right .form-control {
+  padding-right: 0.75rem;
+  background-image: none;
+}
+.tobago-messages-container.tobago-tooltip .error-tooltip, .tobago-messages-container.tobago-tooltip .warning-tooltip, .tobago-messages-container.tobago-tooltip .info-tooltip {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback, .tobago-messages-container.tobago-text-bottom .error-feedback, .tobago-messages-container.tobago-text-bottom .warning-feedback, .tobago-messages-container.tobago-text-bottom .info-feedback {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback {
+  margin-bottom: 0.25rem;
 }
 
 .tobago-popover-box {
@@ -11550,7 +11718,6 @@ tobago-messages .alert.alert-dismissible.alert-warning:before {
 tobago-messages .alert.alert-dismissible.alert-info:before {
   content: "\f646";
 }
-
 .popover .popover-body {
   white-space: pre-line;
 }
@@ -12032,7 +12199,7 @@ tobago-select-many-shuttle .tobago-body .tobago-unselected:disabled option, toba
 tobago-select-many-shuttle .tobago-body .tobago-selected:disabled option, tobago-select-many-shuttle .tobago-body .tobago-selected option:disabled {
   color: rgba(33, 37, 41, 0.5);
 }
-tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
+tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-help-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
   flex: 1 0 0px;
 }
 
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map
index 817baba4f6..9a3089d4e5 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css
index 7528aa87c6..ca4fb5c8c2 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-prima [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-prima [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map
index 7902b5d902..21cdaf3c95 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-scarborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,i [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-scarborough/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,i [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
index 7b98a8bd51..3c107e118f 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css
@@ -10840,7 +10840,6 @@ tobago-flex-layout > tobago-flex-layout {
   margin-bottom: 0;
 }
 
-/* flowLayout ---------------------------------------------------------- */
 tobago-flow-layout {
   display: block;
 }
@@ -10854,7 +10853,6 @@ tobago-focus {
   display: none;
 }
 
-/* footer -------------------------------------------------------------- */
 tobago-footer {
   display: block;
   background-color: #fff;
@@ -10890,6 +10888,105 @@ tobago-header.sticky-top {
   margin-right: -0.75rem;
 }
 
+.tobago-help-container {
+  width: 100%;
+}
+.tobago-help-container .help-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 0.875em;
+  color: #5bc0de;
+}
+.tobago-help-container .help-tooltip {
+  position: absolute;
+  top: 100%;
+  z-index: 5;
+  display: none;
+  max-width: 100%;
+  padding: 0.25rem 0.5rem;
+  margin-top: 0.1rem;
+  font-size: 0.875rem;
+  color: #000;
+  background-color: rgba(91, 192, 222, 0.9);
+}
+.tobago-help-container.is-help ~ .help-feedback,
+.tobago-help-container.is-help ~ .help-tooltip {
+  display: block;
+}
+.tobago-help-container .form-control.is-help {
+  border-color: #5bc0de;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: none;
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-control.is-help:focus {
+  border-color: #5bc0de;
+  box-shadow: 0 0 0 0.25rem rgba(91, 192, 222, 0.25);
+}
+.tobago-help-container textarea.form-control.is-help {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
+.tobago-help-container .form-select.is-help {
+  border-color: #5bc0de;
+}
+.tobago-help-container .form-select.is-help:not([multiple]):not([size]), .tobago-help-container .form-select.is-help:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), none;
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-select.is-help:focus {
+  border-color: #5bc0de;
+  box-shadow: 0 0 0 0.25rem rgba(91, 192, 222, 0.25);
+}
+.tobago-help-container .form-control-color.is-help {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
+.tobago-help-container .form-check-input.is-help {
+  border-color: #5bc0de;
+}
+.tobago-help-container .form-check-input.is-help:checked {
+  background-color: #5bc0de;
+}
+.tobago-help-container .form-check-input.is-help:focus {
+  box-shadow: 0 0 0 0.25rem rgba(91, 192, 222, 0.25);
+}
+.tobago-help-container .form-check-input.is-help ~ .form-check-label {
+  color: #5bc0de;
+}
+.tobago-help-container .form-check-inline .form-check-input ~ .help-feedback {
+  margin-left: 0.5em;
+}
+.tobago-help-container.tobago-button-left, .tobago-help-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-help-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
+}
+.tobago-help-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-right > tobago-popover {
+  margin-left: 0.75rem;
+}
+.tobago-help-container.tobago-button-left tobago-popover > a, .tobago-help-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-help-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-help-container.tobago-tooltip .help-tooltip {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback, .tobago-help-container.tobago-text-bottom .help-feedback {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback {
+  margin-bottom: 0.25rem;
+}
+
 /* image ----------------------------------------------------------- */
 tobago-image.disabled {
   filter: grayscale(1) blur(2px) contrast(0.5) brightness(1.2);
@@ -11057,10 +11154,8 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
   padding-right: 0;
 }
 
-/* messages / help text ----------------------------------------------- */
 .tobago-messages-container {
-  display: flex;
-  align-items: flex-start;
+  width: 100%;
 }
 .tobago-messages-container .error-feedback {
   display: none;
@@ -11087,18 +11182,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-error {
   border-color: rgb(211, 0, 64);
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='rgb%28211, 0, 64%29'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='rgb%28211, 0, 64%29' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-error:focus {
   border-color: rgb(211, 0, 64);
   box-shadow: 0 0 0 0.25rem rgba(211, 0, 64, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-error {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-error {
   border-color: rgb(211, 0, 64);
 }
+.tobago-messages-container .form-select.is-error:not([multiple]):not([size]), .tobago-messages-container .form-select.is-error:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='rgb%28211, 0, 64%29'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3 [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-error:focus {
   border-color: rgb(211, 0, 64);
   box-shadow: 0 0 0 0.25rem rgba(211, 0, 64, 0.25);
 }
+.tobago-messages-container .form-control-color.is-error {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-error {
   border-color: rgb(211, 0, 64);
 }
@@ -11139,18 +11252,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-warning {
   border-color: #f0ad4e;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23f0ad4e'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23f0ad4e' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-warning:focus {
   border-color: #f0ad4e;
   box-shadow: 0 0 0 0.25rem rgba(240, 173, 78, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-warning {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-warning {
   border-color: #f0ad4e;
 }
+.tobago-messages-container .form-select.is-warning:not([multiple]):not([size]), .tobago-messages-container .form-select.is-warning:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23f0ad4e'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-warning:focus {
   border-color: #f0ad4e;
   box-shadow: 0 0 0 0.25rem rgba(240, 173, 78, 0.25);
 }
+.tobago-messages-container .form-control-color.is-warning {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-warning {
   border-color: #f0ad4e;
 }
@@ -11191,18 +11322,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-info {
   border-color: #5bc0de;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%235bc0de'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%235bc0de' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-info:focus {
   border-color: #5bc0de;
   box-shadow: 0 0 0 0.25rem rgba(91, 192, 222, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-info {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-info {
   border-color: #5bc0de;
 }
+.tobago-messages-container .form-select.is-info:not([multiple]):not([size]), .tobago-messages-container .form-select.is-info:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323232' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%235bc0de'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-info:focus {
   border-color: #5bc0de;
   box-shadow: 0 0 0 0.25rem rgba(91, 192, 222, 0.25);
 }
+.tobago-messages-container .form-control-color.is-info {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-info {
   border-color: #5bc0de;
 }
@@ -11218,16 +11367,34 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 .tobago-messages-container .form-check-inline .form-check-input ~ .info-feedback {
   margin-left: 0.5em;
 }
-.tobago-messages-container .tobago-messages:first-child small label, .tobago-messages-container .tobago-messages:first-child .small label {
-  margin-right: 0; /* for tc:in margin 5px is already set */
-  margin-bottom: 5px;
+.tobago-messages-container.tobago-button-left, .tobago-messages-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-messages-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
 }
-.tobago-messages-container tobago-popover {
+.tobago-messages-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-right > tobago-popover {
   margin-left: 0.75rem;
 }
-.tobago-messages-container tobago-popover .btn {
-  padding-left: 0.4rem;
-  padding-right: 0.4rem;
+.tobago-messages-container.tobago-button-left tobago-popover > a, .tobago-messages-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-messages-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-messages-container.tobago-button-left .form-control, .tobago-messages-container.tobago-button-right .form-control {
+  padding-right: 0.75rem;
+  background-image: none;
+}
+.tobago-messages-container.tobago-tooltip .error-tooltip, .tobago-messages-container.tobago-tooltip .warning-tooltip, .tobago-messages-container.tobago-tooltip .info-tooltip {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback, .tobago-messages-container.tobago-text-bottom .error-feedback, .tobago-messages-container.tobago-text-bottom .warning-feedback, .tobago-messages-container.tobago-text-bottom .info-feedback {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback {
+  margin-bottom: 0.25rem;
 }
 
 .tobago-popover-box {
@@ -11272,7 +11439,6 @@ tobago-messages .alert.alert-dismissible.alert-warning:before {
 tobago-messages .alert.alert-dismissible.alert-info:before {
   content: "\f646";
 }
-
 .popover .popover-body {
   white-space: pre-line;
 }
@@ -11754,7 +11920,7 @@ tobago-select-many-shuttle .tobago-body .tobago-unselected:disabled option, toba
 tobago-select-many-shuttle .tobago-body .tobago-selected:disabled option, tobago-select-many-shuttle .tobago-body .tobago-selected option:disabled {
   color: rgba(33, 37, 41, 0.5);
 }
-tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
+tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-help-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
   flex: 1 0 0px;
 }
 
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map
index cce65ddcd9..052f5658ce 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_modules/bootstrap/scss/mixins/_lists.scss",".. [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../scss/_custom.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_modules/bootstrap/scss/mixins/_lists.scss",".. [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css
index 488edbfe5d..5fcae8ce5f 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:rgb(58, 37, 100);--bs-pink:#d63384;--bs-red:rgb(211, 0, 64);--bs-orange:#d90;--bs-yellow:#ffc107;--bs-green:rgb(29, 163, 50);--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:rgb(120, 140, 148);--bs-gray-dark:#323232;--bs-gray-100:#f7f7f7;--bs-gray-200:#e3e4e5;--bs-gray-300:#d7d7d7;--bs-gray-400:#ced4da;--bs-gray-500:#acacac;--bs-gray-600:rgb(120, 140, 148);--bs-gray-700:#55595c;--bs-gray [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:rgb(58, 37, 100);--bs-pink:#d63384;--bs-red:rgb(211, 0, 64);--bs-orange:#d90;--bs-yellow:#ffc107;--bs-green:rgb(29, 163, 50);--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:rgb(120, 140, 148);--bs-gray-dark:#323232;--bs-gray-100:#f7f7f7;--bs-gray-200:#e3e4e5;--bs-gray-300:#d7d7d7;--bs-gray-400:#ced4da;--bs-gray-500:#acacac;--bs-gray-600:rgb(120, 140, 148);--bs-gray-700:#55595c;--bs-gray [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map
index 69df13d034..ab1c438b66 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-speyside/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,iBACb,UAAW,QACX,SAAU,gBACV,YAAa,KACb,YAAa,QACb,WAAY,iBACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,mBACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,mBACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,gBACd,eAAgB,QAChB,aAAc,iBACd,UAAW,QACX,aAAc,QACd,YAAa,gBACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,EAAE,CAAE,GAC1B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IA [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-speyside/src/main/css/tobago.css"],"names":[],"mappings":"iBAuCA,MACE,UAAW,QACX,YAAa,QACb,YAAa,iBACb,UAAW,QACX,SAAU,gBACV,YAAa,KACb,YAAa,QACb,WAAY,iBACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,mBACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,mBACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,gBACd,eAAgB,QAChB,aAAc,iBACd,UAAW,QACX,aAAc,QACd,YAAa,gBACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,EAAE,CAAE,GAC1B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IA [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
index 456ba373aa..b3a84390be 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css
@@ -11097,7 +11097,6 @@ tobago-flex-layout > tobago-flex-layout {
   margin-bottom: 0;
 }
 
-/* flowLayout ---------------------------------------------------------- */
 tobago-flow-layout {
   display: block;
 }
@@ -11111,7 +11110,6 @@ tobago-focus {
   display: none;
 }
 
-/* footer -------------------------------------------------------------- */
 tobago-footer {
   display: block;
   background-color: #fff;
@@ -11147,6 +11145,106 @@ tobago-header.sticky-top {
   margin-right: -0.75rem;
 }
 
+.tobago-help-container {
+  width: 100%;
+}
+.tobago-help-container .help-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 0.875em;
+  color: #0dcaf0;
+}
+.tobago-help-container .help-tooltip {
+  position: absolute;
+  top: 100%;
+  z-index: 5;
+  display: none;
+  max-width: 100%;
+  padding: 0.25rem 0.5rem;
+  margin-top: 0.1rem;
+  font-size: 0.875rem;
+  color: #000;
+  background-color: rgba(13, 202, 240, 0.9);
+  border-radius: 0.375rem;
+}
+.tobago-help-container.is-help ~ .help-feedback,
+.tobago-help-container.is-help ~ .help-tooltip {
+  display: block;
+}
+.tobago-help-container .form-control.is-help {
+  border-color: #0dcaf0;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: none;
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-control.is-help:focus {
+  border-color: #0dcaf0;
+  box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
+}
+.tobago-help-container textarea.form-control.is-help {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
+.tobago-help-container .form-select.is-help {
+  border-color: #0dcaf0;
+}
+.tobago-help-container .form-select.is-help:not([multiple]):not([size]), .tobago-help-container .form-select.is-help:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), none;
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.tobago-help-container .form-select.is-help:focus {
+  border-color: #0dcaf0;
+  box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
+}
+.tobago-help-container .form-control-color.is-help {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
+.tobago-help-container .form-check-input.is-help {
+  border-color: #0dcaf0;
+}
+.tobago-help-container .form-check-input.is-help:checked {
+  background-color: #0dcaf0;
+}
+.tobago-help-container .form-check-input.is-help:focus {
+  box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
+}
+.tobago-help-container .form-check-input.is-help ~ .form-check-label {
+  color: #0dcaf0;
+}
+.tobago-help-container .form-check-inline .form-check-input ~ .help-feedback {
+  margin-left: 0.5em;
+}
+.tobago-help-container.tobago-button-left, .tobago-help-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-help-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
+}
+.tobago-help-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-help-container.tobago-button-right.tobago-button-right > tobago-popover {
+  margin-left: 0.75rem;
+}
+.tobago-help-container.tobago-button-left tobago-popover > a, .tobago-help-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-help-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-help-container.tobago-tooltip .help-tooltip {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback, .tobago-help-container.tobago-text-bottom .help-feedback {
+  display: block;
+}
+.tobago-help-container.tobago-text-top .help-feedback {
+  margin-bottom: 0.25rem;
+}
+
 /* image ----------------------------------------------------------- */
 tobago-image.disabled {
   filter: grayscale(1) blur(2px) contrast(0.5) brightness(1.2);
@@ -11315,10 +11413,8 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
   padding-right: 0;
 }
 
-/* messages / help text ----------------------------------------------- */
 .tobago-messages-container {
-  display: flex;
-  align-items: flex-start;
+  width: 100%;
 }
 .tobago-messages-container .error-feedback {
   display: none;
@@ -11346,18 +11442,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-error {
   border-color: #dc3545;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-error:focus {
   border-color: #dc3545;
   box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-error {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-error {
   border-color: #dc3545;
 }
+.tobago-messages-container .form-select.is-error:not([multiple]):not([size]), .tobago-messages-container .form-select.is-error:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-error:focus {
   border-color: #dc3545;
   box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
 }
+.tobago-messages-container .form-control-color.is-error {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-error {
   border-color: #dc3545;
 }
@@ -11399,18 +11513,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-warning {
   border-color: #ffc107;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ffc107'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ffc107' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-warning:focus {
   border-color: #ffc107;
   box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-warning {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-warning {
   border-color: #ffc107;
 }
+.tobago-messages-container .form-select.is-warning:not([multiple]):not([size]), .tobago-messages-container .form-select.is-warning:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ffc107'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-warning:focus {
   border-color: #ffc107;
   box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.25);
 }
+.tobago-messages-container .form-control-color.is-warning {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-warning {
   border-color: #ffc107;
 }
@@ -11452,18 +11584,36 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 }
 .tobago-messages-container .form-control.is-info {
   border-color: #0dcaf0;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%230dcaf0'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%230dcaf0' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
 }
 .tobago-messages-container .form-control.is-info:focus {
   border-color: #0dcaf0;
   box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
 }
+.tobago-messages-container textarea.form-control.is-info {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
 .tobago-messages-container .form-select.is-info {
   border-color: #0dcaf0;
 }
+.tobago-messages-container .form-select.is-info:not([multiple]):not([size]), .tobago-messages-container .form-select.is-info:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%230dcaf0'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx [...]
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
 .tobago-messages-container .form-select.is-info:focus {
   border-color: #0dcaf0;
   box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.25);
 }
+.tobago-messages-container .form-control-color.is-info {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
 .tobago-messages-container .form-check-input.is-info {
   border-color: #0dcaf0;
 }
@@ -11479,16 +11629,34 @@ button.nav-link { /* bootstrap don't know button.nav-link*/
 .tobago-messages-container .form-check-inline .form-check-input ~ .info-feedback {
   margin-left: 0.5em;
 }
-.tobago-messages-container .tobago-messages:first-child small label, .tobago-messages-container .tobago-messages:first-child .small label {
-  margin-right: 0; /* for tc:in margin 5px is already set */
-  margin-bottom: 5px;
+.tobago-messages-container.tobago-button-left, .tobago-messages-container.tobago-button-right {
+  display: flex;
+  align-items: flex-start;
+}
+.tobago-messages-container.tobago-button-left.tobago-button-left > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-left > tobago-popover {
+  margin-right: 0.75rem;
 }
-.tobago-messages-container tobago-popover {
+.tobago-messages-container.tobago-button-left.tobago-button-right > tobago-popover, .tobago-messages-container.tobago-button-right.tobago-button-right > tobago-popover {
   margin-left: 0.75rem;
 }
-.tobago-messages-container tobago-popover .btn {
-  padding-left: 0.4rem;
-  padding-right: 0.4rem;
+.tobago-messages-container.tobago-button-left tobago-popover > a, .tobago-messages-container.tobago-button-right tobago-popover > a {
+  --bs-btn-padding-x: .4rem;
+}
+.tobago-messages-container.tobago-tooltip {
+  position: relative;
+}
+.tobago-messages-container.tobago-button-left .form-control, .tobago-messages-container.tobago-button-right .form-control {
+  padding-right: 0.75rem;
+  background-image: none;
+}
+.tobago-messages-container.tobago-tooltip .error-tooltip, .tobago-messages-container.tobago-tooltip .warning-tooltip, .tobago-messages-container.tobago-tooltip .info-tooltip {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback, .tobago-messages-container.tobago-text-bottom .error-feedback, .tobago-messages-container.tobago-text-bottom .warning-feedback, .tobago-messages-container.tobago-text-bottom .info-feedback {
+  display: block;
+}
+.tobago-messages-container.tobago-text-top .error-feedback, .tobago-messages-container.tobago-text-top .warning-feedback, .tobago-messages-container.tobago-text-top .info-feedback {
+  margin-bottom: 0.25rem;
 }
 
 .tobago-popover-box {
@@ -11533,7 +11701,6 @@ tobago-messages .alert.alert-dismissible.alert-warning:before {
 tobago-messages .alert.alert-dismissible.alert-info:before {
   content: "\f646";
 }
-
 .popover .popover-body {
   white-space: pre-line;
 }
@@ -12015,7 +12182,7 @@ tobago-select-many-shuttle .tobago-body .tobago-unselected:disabled option, toba
 tobago-select-many-shuttle .tobago-body .tobago-selected:disabled option, tobago-select-many-shuttle .tobago-body .tobago-selected option:disabled {
   color: rgba(33, 37, 41, 0.5);
 }
-tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
+tobago-select-many-shuttle.tobago-label-container > .tobago-body, tobago-select-many-shuttle .tobago-help-container > .tobago-body, tobago-select-many-shuttle .tobago-messages-container > .tobago-body {
   flex: 1 0 0px;
 }
 
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map
index d94edbbf9d..1fac7309f4 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../scss/tobago-theme.scss","../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../node_modules/bootstrap/scss/_root.scss","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../node_modules/bootstrap/scss/_variables.scss","../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../node_modules/bootstrap/scss/_type.scss","../../../../node_ [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css
index c360d7434d..7b526bd768 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-prima [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-prima [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map
index 52b2ff982b..68b332c53c 100644
--- a/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago-theme-standard/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,iBAA [...]
\ No newline at end of file
+{"version":3,"sources":["tobago-theme-standard/src/main/css/tobago.css"],"names":[],"mappings":"iBAuBA,MACE,UAAW,QACX,YAAa,QACb,YAAa,QACb,UAAW,QACX,SAAU,QACV,YAAa,QACb,YAAa,QACb,WAAY,QACZ,UAAW,QACX,UAAW,QACX,WAAY,KACZ,WAAY,KACZ,UAAW,QACX,eAAgB,QAChB,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,aAAc,QACd,UAAW,QACX,aAAc,QACd,YAAa,QACb,WAAY,QACZ,UAAW,QACX,iBAAkB,EAAE,CAAE,GAAG,CAAE,IAC3B,mBAAoB,GAAG,CAAE,GAAG,CAAE,IAC9B,iBAA [...]
\ No newline at end of file