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 2020/04/20 21:05:32 UTC

[myfaces-tobago] branch tobago-4.x updated (e780c9e -> 67d7e6d)

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

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


    from e780c9e  Merge remote-tracking branch 'origin/tobago-4.x' into tobago-4.x
     new 58a66b2  update toggle, checkbox and radio buttons to Bootstrap 4.2
     new f9dfb35  update toggle, checkbox and radio buttons to Bootstrap 4.2
     new 67d7e6d  rebuild themes

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 ...SelectBooleanCheckboxInsideCommandRenderer.java |   5 +-
 .../renderer/SelectBooleanCheckboxRenderer.java    |  40 +++--
 .../renderer/SelectBooleanToggleRenderer.java      |  13 ++
 .../SelectManyCheckboxInsideCommandRenderer.java   |   5 -
 .../renderer/SelectManyCheckboxRenderer.java       |  33 ++--
 .../SelectOneRadioInsideCommandRenderer.java       |   5 -
 .../renderkit/renderer/SelectOneRadioRenderer.java |  34 ++--
 .../tobago/renderkit/css/BootstrapClass.java       |  10 ++
 .../myfaces/tobago/renderkit/css/TobagoClass.java  |   4 +
 tobago-core/src/main/resources/scss/_tobago.scss   | 179 +++++++--------------
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 30 files changed, 383 insertions(+), 760 deletions(-)


[myfaces-tobago] 01/03: update toggle, checkbox and radio buttons to Bootstrap 4.2

Posted by hn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 58a66b21dc9ac2c8436c15fadc1e9a89c16f8535
Author: Jasmin Kroeger <ja...@irian.eu>
AuthorDate: Thu Apr 16 09:47:14 2020 +0200

    update toggle, checkbox and radio buttons to Bootstrap 4.2
    
    * add Bootstrap classes
    * remove * from toggles and checkboxes on required fields. The * is only on the label.
    * add for attribute for labels
    * order of input and label changed
    * remove fontawesome icon
    * change form-check to custom-control
    
    Issue: TOBAGO-1969
    
    (cherry picked from commit d124c25e4928d02e713b0d3dced9d1b66ca17df0)
---
 .../renderer/SelectBooleanCheckboxRenderer.java    | 35 ++++++++++++----------
 .../renderer/SelectBooleanToggleRenderer.java      |  9 ++++++
 .../renderer/SelectManyCheckboxRenderer.java       | 20 ++++++-------
 .../renderkit/renderer/SelectOneRadioRenderer.java | 21 +++++++------
 .../tobago/renderkit/css/BootstrapClass.java       | 10 +++++++
 tobago-core/src/main/resources/scss/_tobago.scss   |  4 +++
 6 files changed, 63 insertions(+), 36 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxRenderer.java
index 6d60940..7e60834 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxRenderer.java
@@ -101,16 +101,10 @@ public class SelectBooleanCheckboxRenderer extends MessageLayoutRendererBase {
       writer.writeAttribute(HtmlAttributes.TITLE, title, true);
     }
 
-    writer.startElement(HtmlElements.LABEL);
+    writer.startElement(HtmlElements.INPUT);
     writer.writeClassAttribute(
-        BootstrapClass.FORM_CHECK_LABEL,
+        BootstrapClass.CUSTOM_CONTROL_INPUT,
         getCssItems(facesContext, select));
-    if (!disabled && label.getAccessKey() != null) {
-      writer.writeAttribute(HtmlAttributes.ACCESSKEY, Character.toString(label.getAccessKey()), false);
-      AccessKeyLogger.addAccessKey(facesContext, label.getAccessKey(), clientId);
-    }
-
-    writer.startElement(HtmlElements.INPUT);
     writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.CHECKBOX);
     writer.writeAttribute(HtmlAttributes.VALUE, "true", false);
     writer.writeNameAttribute(clientId);
@@ -124,13 +118,23 @@ public class SelectBooleanCheckboxRenderer extends MessageLayoutRendererBase {
     writer.writeCommandMapAttribute(JsonUtils.encode(RenderUtils.getBehaviorCommands(facesContext, select)));
     writer.endElement(HtmlElements.INPUT);
 
-    writer.startElement(HtmlElements.I);
-    writer.writeClassAttribute(TobagoClass.INPUT_PSEUDO);
-    writer.endElement(HtmlElements.I);
-
-    if (itemLabel != null) {
+    writer.startElement(HtmlElements.LABEL);
+    writer.writeClassAttribute(
+        BootstrapClass.CUSTOM_CONTROL_LABEL,
+        getCssItems(facesContext, select));
+    if (!disabled && label.getAccessKey() != null) {
+      writer.writeAttribute(HtmlAttributes.ACCESSKEY, Character.toString(label.getAccessKey()), false);
+      AccessKeyLogger.addAccessKey(facesContext, label.getAccessKey(), clientId);
+    }
+    writer.writeAttribute(HtmlAttributes.FOR, fieldId, false);
+    if (itemLabel != null && select.getLabel() == null && select.getAccessKey() != null) {
+      if (itemLabel.contains(Character.toString(select.getAccessKey()))) {
+        HtmlRendererUtils.writeLabelWithAccessKey(writer, label);
+      }
+    } else if (itemLabel != null) {
       writer.writeText(itemLabel);
     }
+    writer.endElement(HtmlElements.LABEL);
   }
 
   protected TobagoClass getTobagoClass() {
@@ -140,12 +144,13 @@ public class SelectBooleanCheckboxRenderer extends MessageLayoutRendererBase {
   @Override
   protected void encodeEndField(final FacesContext facesContext, final UIComponent component) throws IOException {
     final TobagoResponseWriter writer = getResponseWriter(facesContext);
-    writer.endElement(HtmlElements.LABEL);
+    final AbstractUISelectBoolean select = (AbstractUISelectBoolean) component;
+
     writer.endElement(HtmlElements.DIV);
   }
 
   protected CssItem[] getOuterCssItems(final FacesContext facesContext, final AbstractUISelectBoolean select) {
-    return new CssItem[]{BootstrapClass.FORM_CHECK};
+    return new CssItem[]{BootstrapClass.CUSTOM_CONTROL, BootstrapClass.CUSTOM_CHECKBOX};
   }
 
   protected CssItem[] getCssItems(final FacesContext facesContext, final AbstractUISelectBoolean select) {
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java
index 4ee5497..0d20e57 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java
@@ -19,11 +19,20 @@
 
 package org.apache.myfaces.tobago.internal.renderkit.renderer;
 
+import org.apache.myfaces.tobago.internal.component.AbstractUISelectBoolean;
+import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
+import org.apache.myfaces.tobago.renderkit.css.CssItem;
 import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
 
+import javax.faces.context.FacesContext;
+
 public class SelectBooleanToggleRenderer extends SelectBooleanCheckboxRenderer {
 
   protected TobagoClass getTobagoClass() {
     return TobagoClass.SELECT_BOOLEAN_TOGGLE;
   }
+
+  protected CssItem[] getOuterCssItems(final FacesContext facesContext, final AbstractUISelectBoolean select) {
+    return new CssItem[]{BootstrapClass.CUSTOM_CONTROL, BootstrapClass.CUSTOM_SWITCH};
+  }
 }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxRenderer.java
index c7c4dde..346e47c 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxRenderer.java
@@ -87,16 +87,14 @@ public class SelectManyCheckboxRenderer extends SelectManyRendererBase {
         if (renderOuterItem()) {
           writer.startElement(HtmlElements.DIV);
           writer.writeClassAttribute(
-              BootstrapClass.FORM_CHECK,
-              inline ? BootstrapClass.FORM_CHECK_INLINE : null,
+              BootstrapClass.CUSTOM_CONTROL,
+              BootstrapClass.CUSTOM_CHECKBOX,
+              inline ? BootstrapClass.CUSTOM_CONTROL_INLINE : null,
               itemDisabled ? BootstrapClass.DISABLED : null);
         }
-        writer.startElement(HtmlElements.LABEL);
-        writer.writeClassAttribute(
-            BootstrapClass.FORM_CHECK_LABEL,
-            getCssItems(facesContext, select));
+
         writer.startElement(HtmlElements.INPUT);
-        writer.writeClassAttribute(BootstrapClass.FORM_CHECK_INPUT);
+        writer.writeClassAttribute(BootstrapClass.CUSTOM_CONTROL_INPUT);
         writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.CHECKBOX);
         final String formattedValue = ComponentUtils.getFormattedValue(facesContext, select, item.getValue());
         final boolean checked;
@@ -120,9 +118,11 @@ public class SelectManyCheckboxRenderer extends SelectManyRendererBase {
         writer.writeCommandMapAttribute(JsonUtils.encode(RenderUtils.getBehaviorCommands(facesContext, select)));
         writer.endElement(HtmlElements.INPUT);
 
-        writer.startElement(HtmlElements.I);
-        writer.writeClassAttribute(TobagoClass.INPUT_PSEUDO);
-        writer.endElement(HtmlElements.I);
+        writer.startElement(HtmlElements.LABEL);
+        writer.writeClassAttribute(
+            BootstrapClass.CUSTOM_CONTROL_LABEL,
+            getCssItems(facesContext, select));
+        writer.writeAttribute(HtmlAttributes.FOR, itemId, false);
 
         if (item instanceof org.apache.myfaces.tobago.model.SelectItem) {
           final org.apache.myfaces.tobago.model.SelectItem tobagoItem =
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRenderer.java
index ed7ebd3..1515d40 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRenderer.java
@@ -89,16 +89,14 @@ public class SelectOneRadioRenderer extends SelectOneRendererBase {
         if (renderOuterItem()) {
           writer.startElement(HtmlElements.DIV);
           writer.writeClassAttribute(
-              BootstrapClass.FORM_CHECK,
-              inline ? BootstrapClass.FORM_CHECK_INLINE : null,
+              BootstrapClass.CUSTOM_CONTROL,
+              BootstrapClass.CUSTOM_RADIO,
+              inline ? BootstrapClass.CUSTOM_CONTROL_INLINE : null,
               itemDisabled ? BootstrapClass.DISABLED : null);
         }
-        writer.startElement(HtmlElements.LABEL);
-        writer.writeClassAttribute(
-            BootstrapClass.FORM_CHECK_LABEL,
-            getCssItems(facesContext, select));
+
         writer.startElement(HtmlElements.INPUT);
-        writer.writeClassAttribute(BootstrapClass.FORM_CHECK_INPUT);
+        writer.writeClassAttribute(BootstrapClass.CUSTOM_CONTROL_INPUT);
         writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.RADIO);
         final String formattedValue = ComponentUtils.getFormattedValue(facesContext, select, item.getValue());
         final boolean checked;
@@ -122,10 +120,11 @@ public class SelectOneRadioRenderer extends SelectOneRendererBase {
         writer.writeCommandMapAttribute(JsonUtils.encode(RenderUtils.getBehaviorCommands(facesContext, select)));
         writer.endElement(HtmlElements.INPUT);
 
-        writer.startElement(HtmlElements.I);
-        writer.writeClassAttribute(TobagoClass.INPUT_PSEUDO);
-        writer.endElement(HtmlElements.I);
-
+        writer.startElement(HtmlElements.LABEL);
+        writer.writeClassAttribute(
+            BootstrapClass.CUSTOM_CONTROL_LABEL,
+            getCssItems(facesContext, select));
+        writer.writeAttribute(HtmlAttributes.FOR, itemId, false);
         if (item instanceof org.apache.myfaces.tobago.model.SelectItem) {
           final org.apache.myfaces.tobago.model.SelectItem tobagoItem =
               (org.apache.myfaces.tobago.model.SelectItem) item;
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
index 632eb84..c887ac2 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
@@ -245,7 +245,17 @@ public enum BootstrapClass implements CssItem {
   COL_XS_12("col-12"),
   CONTAINER("container"),
   CONTAINER_FLUID("container-fluid"),
+  CUSTOM_CHECKBOX("custom-checkbox"),
+  CUSTOM_CONTROL("custom-control"),
+  CUSTOM_CONTROL_LABEL("custom-control-label"),
+  CUSTOM_CONTROL_INLINE("custom-control-inline"),
+  CUSTOM_CONTROL_INPUT("custom-control-input"),
+  CUSTOM_FILE("custom-file"),
+  CUSTOM_FILE_INPUT("custom-file-input"),
+  CUSTOM_FILE_LABEL("custom-file-label"),
+  CUSTOM_RADIO("custom-radio"),
   CUSTOM_SELECT("custom-select"),
+  CUSTOM_SWITCH("custom-switch"),
   D_FLEX("d-flex"),
   D_INLINE("d-inline"),
   D_NONE("d-none"),
diff --git a/tobago-core/src/main/resources/scss/_tobago.scss b/tobago-core/src/main/resources/scss/_tobago.scss
index 549cebb..1816d85 100644
--- a/tobago-core/src/main/resources/scss/_tobago.scss
+++ b/tobago-core/src/main/resources/scss/_tobago.scss
@@ -895,6 +895,10 @@ h1, h2, h3, h4, h5, h6 {
       content: $zero-width-space;
     }
   }
+
+  label.custom-control-label:after {
+    content: "";
+  }
 }
 
 .tobago-selectBooleanToggle, .tobago-selectManyToggle {


[myfaces-tobago] 02/03: update toggle, checkbox and radio buttons to Bootstrap 4.2

Posted by hn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f9dfb35cb4546b5f74a6600cefa5459f698c2c47
Author: Henning Nöth <hn...@apache.org>
AuthorDate: Mon Apr 20 22:14:22 2020 +0200

    update toggle, checkbox and radio buttons to Bootstrap 4.2
    
    * remove getCssItems() from input (booleanCheckbox) because style should only be done on the label
    * set COL_FORM_LABEL on outer CSS for checkbox/toggle for better align with label layout
    * fix toggle, checkbox and radio buttons for dropdown menus
    * remove BootstrapClass.DISABLED because it has no longer any effect
    * adjust style for
      * dropdown menu
      * inline radio
      * inline checkbox
      * itemImage
    * cleanup style
    
    Issue: TOBAGO-1969
    
    (cherry picked from commit 60bd3337eeb005f80ccf4ccc93ae27e45de30cc0)
---
 ...SelectBooleanCheckboxInsideCommandRenderer.java |   5 +-
 .../renderer/SelectBooleanCheckboxRenderer.java    |  11 +-
 .../renderer/SelectBooleanToggleRenderer.java      |   6 +-
 .../SelectManyCheckboxInsideCommandRenderer.java   |   5 -
 .../renderer/SelectManyCheckboxRenderer.java       |  21 +--
 .../SelectOneRadioInsideCommandRenderer.java       |   5 -
 .../renderkit/renderer/SelectOneRadioRenderer.java |  21 +--
 .../myfaces/tobago/renderkit/css/TobagoClass.java  |   4 +
 tobago-core/src/main/resources/scss/_tobago.scss   | 183 +++++++--------------
 9 files changed, 91 insertions(+), 170 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxInsideCommandRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxInsideCommandRenderer.java
index 4a5b8a7..a139c8f 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxInsideCommandRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxInsideCommandRenderer.java
@@ -46,6 +46,9 @@ public class SelectBooleanCheckboxInsideCommandRenderer extends SelectBooleanChe
 
   @Override
   protected CssItem[] getOuterCssItems(final FacesContext facesContext, final AbstractUISelectBoolean select) {
-    return new CssItem[]{};
+    return new CssItem[]{
+        BootstrapClass.CUSTOM_CONTROL,
+        BootstrapClass.CUSTOM_CHECKBOX
+    };
   }
 }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxRenderer.java
index 7e60834..1c5426c 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanCheckboxRenderer.java
@@ -93,7 +93,6 @@ public class SelectBooleanCheckboxRenderer extends MessageLayoutRendererBase {
         getTobagoClass(),
         getTobagoClass().createMarkup(markup),
         getOuterCssItems(facesContext, select),
-        disabled ? BootstrapClass.DISABLED : null,
         select.getCustomClass());
 
     HtmlRendererUtils.writeDataAttributes(facesContext, writer, select);
@@ -102,9 +101,7 @@ public class SelectBooleanCheckboxRenderer extends MessageLayoutRendererBase {
     }
 
     writer.startElement(HtmlElements.INPUT);
-    writer.writeClassAttribute(
-        BootstrapClass.CUSTOM_CONTROL_INPUT,
-        getCssItems(facesContext, select));
+    writer.writeClassAttribute(BootstrapClass.CUSTOM_CONTROL_INPUT);
     writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.CHECKBOX);
     writer.writeAttribute(HtmlAttributes.VALUE, "true", false);
     writer.writeNameAttribute(clientId);
@@ -150,7 +147,11 @@ public class SelectBooleanCheckboxRenderer extends MessageLayoutRendererBase {
   }
 
   protected CssItem[] getOuterCssItems(final FacesContext facesContext, final AbstractUISelectBoolean select) {
-    return new CssItem[]{BootstrapClass.CUSTOM_CONTROL, BootstrapClass.CUSTOM_CHECKBOX};
+    return new CssItem[]{
+        !select.isLabelLayoutSkip() ? BootstrapClass.COL_FORM_LABEL : null,
+        BootstrapClass.CUSTOM_CONTROL,
+        BootstrapClass.CUSTOM_CHECKBOX
+    };
   }
 
   protected CssItem[] getCssItems(final FacesContext facesContext, final AbstractUISelectBoolean select) {
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java
index 0d20e57..17e0785 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectBooleanToggleRenderer.java
@@ -33,6 +33,10 @@ public class SelectBooleanToggleRenderer extends SelectBooleanCheckboxRenderer {
   }
 
   protected CssItem[] getOuterCssItems(final FacesContext facesContext, final AbstractUISelectBoolean select) {
-    return new CssItem[]{BootstrapClass.CUSTOM_CONTROL, BootstrapClass.CUSTOM_SWITCH};
+    return new CssItem[]{
+        !select.isLabelLayoutSkip() ? BootstrapClass.COL_FORM_LABEL : null,
+        BootstrapClass.CUSTOM_CONTROL,
+        BootstrapClass.CUSTOM_SWITCH
+    };
   }
 }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxInsideCommandRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxInsideCommandRenderer.java
index 0254944..678ef9b 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxInsideCommandRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxInsideCommandRenderer.java
@@ -40,11 +40,6 @@ public class SelectManyCheckboxInsideCommandRenderer extends SelectManyCheckboxR
   }
 
   @Override
-  protected boolean renderOuterItem() {
-    return false;
-  }
-
-  @Override
   protected CssItem[] getCssItems(final FacesContext facesContext, final AbstractUISelectManyCheckbox select) {
     return new CssItem[]{BootstrapClass.DROPDOWN_ITEM};
   }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxRenderer.java
index 346e47c..9d01013 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectManyCheckboxRenderer.java
@@ -84,14 +84,11 @@ public class SelectManyCheckboxRenderer extends SelectManyRendererBase {
       if (renderRange == null || ArrayUtils.contains(renderRange, i)) {
         final boolean itemDisabled = item.isDisabled() || disabled;
         final String itemId = id + ComponentUtils.SUB_SEPARATOR + i;
-        if (renderOuterItem()) {
-          writer.startElement(HtmlElements.DIV);
-          writer.writeClassAttribute(
-              BootstrapClass.CUSTOM_CONTROL,
-              BootstrapClass.CUSTOM_CHECKBOX,
-              inline ? BootstrapClass.CUSTOM_CONTROL_INLINE : null,
-              itemDisabled ? BootstrapClass.DISABLED : null);
-        }
+        writer.startElement(HtmlElements.DIV);
+        writer.writeClassAttribute(
+            BootstrapClass.CUSTOM_CONTROL,
+            BootstrapClass.CUSTOM_CHECKBOX,
+            inline ? BootstrapClass.CUSTOM_CONTROL_INLINE : null);
 
         writer.startElement(HtmlElements.INPUT);
         writer.writeClassAttribute(BootstrapClass.CUSTOM_CONTROL_INPUT);
@@ -142,9 +139,7 @@ public class SelectManyCheckboxRenderer extends SelectManyRendererBase {
         }
 
         writer.endElement(HtmlElements.LABEL);
-        if (renderOuterItem()) {
-          writer.endElement(HtmlElements.DIV);
-        }
+        writer.endElement(HtmlElements.DIV);
       }
       i++;
     }
@@ -162,10 +157,6 @@ public class SelectManyCheckboxRenderer extends SelectManyRendererBase {
     writer.endElement(HtmlElements.DIV);
   }
 
-  protected boolean renderOuterItem() {
-    return true;
-  }
-
   protected CssItem[] getCssItems(final FacesContext facesContext, final AbstractUISelectManyCheckbox select) {
     return null;
   }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioInsideCommandRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioInsideCommandRenderer.java
index 430ca19..ed2f058 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioInsideCommandRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioInsideCommandRenderer.java
@@ -40,11 +40,6 @@ public class SelectOneRadioInsideCommandRenderer extends SelectOneRadioRenderer
   }
 
   @Override
-  protected boolean renderOuterItem() {
-    return false;
-  }
-
-  @Override
   protected CssItem[] getCssItems(final FacesContext facesContext, final AbstractUISelectOneRadio select) {
     return new CssItem[]{BootstrapClass.DROPDOWN_ITEM};
   }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRenderer.java
index 1515d40..4e21fa0 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/SelectOneRadioRenderer.java
@@ -86,14 +86,11 @@ public class SelectOneRadioRenderer extends SelectOneRendererBase {
       if (renderRange == null || ArrayUtils.contains(renderRange, i)) {
         final boolean itemDisabled = item.isDisabled() || disabled;
         final String itemId = id + ComponentUtils.SUB_SEPARATOR + i;
-        if (renderOuterItem()) {
-          writer.startElement(HtmlElements.DIV);
-          writer.writeClassAttribute(
-              BootstrapClass.CUSTOM_CONTROL,
-              BootstrapClass.CUSTOM_RADIO,
-              inline ? BootstrapClass.CUSTOM_CONTROL_INLINE : null,
-              itemDisabled ? BootstrapClass.DISABLED : null);
-        }
+        writer.startElement(HtmlElements.DIV);
+        writer.writeClassAttribute(
+            BootstrapClass.CUSTOM_CONTROL,
+            BootstrapClass.CUSTOM_RADIO,
+            inline ? BootstrapClass.CUSTOM_CONTROL_INLINE : null);
 
         writer.startElement(HtmlElements.INPUT);
         writer.writeClassAttribute(BootstrapClass.CUSTOM_CONTROL_INPUT);
@@ -143,9 +140,7 @@ public class SelectOneRadioRenderer extends SelectOneRendererBase {
         }
 
         writer.endElement(HtmlElements.LABEL);
-        if (renderOuterItem()) {
-          writer.endElement(HtmlElements.DIV);
-        }
+        writer.endElement(HtmlElements.DIV);
       }
       i++;
     }
@@ -163,10 +158,6 @@ public class SelectOneRadioRenderer extends SelectOneRendererBase {
     writer.endElement(HtmlElements.DIV);
   }
 
-  protected boolean renderOuterItem() {
-    return true;
-  }
-
   protected CssItem[] getCssItems(final FacesContext facesContext, final AbstractUISelectOneRadio select) {
     return null;
   }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
index a01be4d..fafc34d 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
@@ -36,6 +36,10 @@ public enum TobagoClass implements CssItem {
 
   // general classes
 
+  /**
+   * @deprecated since 4.5.0
+   */
+  @Deprecated
   INPUT_PSEUDO("tobago-inputPseudo"),
 
   /**
diff --git a/tobago-core/src/main/resources/scss/_tobago.scss b/tobago-core/src/main/resources/scss/_tobago.scss
index 1816d85..8494970 100644
--- a/tobago-core/src/main/resources/scss/_tobago.scss
+++ b/tobago-core/src/main/resources/scss/_tobago.scss
@@ -21,6 +21,15 @@ XXX code will be inserted after the _variables.scss
 */
 $alert-padding-x: 1.25rem !default;
 $border-radius: .25rem !default;
+$border-width: 1px !default;
+$font-size-base: 1rem !default;
+$line-height-base: 1.5 !default;
+$custom-control-gutter: .5rem !default;
+$custom-control-indicator-size: 1rem !default;
+$input-border-width: $input-btn-border-width !default;
+$input-btn-border-width: $border-width !default;
+$input-btn-padding-y: .375rem !default;
+$input-padding-y: $input-btn-padding-y !default;
 $zindex-dropdown: 1000 !default;
 $zindex-popover: 1060 !default;
 $spacer: 1rem !default;
@@ -569,6 +578,26 @@ a.tobago-messages-button, a.tobago-help-button {
   display: block;
 }
 
+.dropdown-menu {
+  .custom-control {
+    padding-left: 0;
+
+    .custom-control-label.dropdown-item {
+      padding-left: ($custom-control-gutter + $custom-control-indicator-size) + $dropdown-item-padding-x;
+
+      &:before {
+        top: (($font-size-base * $line-height-base - $custom-control-indicator-size) / 2) + $dropdown-item-padding-y;
+        left: $dropdown-item-padding-x;
+      }
+
+      &:after {
+        top: (($font-size-base * $line-height-base - $custom-control-indicator-size) / 2) + $dropdown-item-padding-y;
+        left: $dropdown-item-padding-x;
+      }
+    }
+  }
+}
+
 /* dropdown-submenu ------------------------------------------------------- */
 .tobago-dropdown-submenu {
   cursor: pointer;
@@ -868,146 +897,61 @@ h1, h2, h3, h4, h5, h6 {
   align-content: center;
 }
 
-/* selectBooleanCheckbox, selectManyCheckbox, selectOneRadio ------------------------------ */
+/* select ----------------------------------------------------------- */
+.tobago-inputPseudo {
+  //deprecated should be removed
+}
 
-.tobago-selectBooleanCheckbox, .tobago-selectBooleanToggle,
-.tobago-selectManyCheckbox, .tobago-selectManyToggle,
-.tobago-selectOneRadio {
-  .form-check-label {
-    input {
-      position: absolute;
-      opacity: 0;
-      z-index: -1;
-    }
-    .tobago-inputPseudo:before {
-      font-family: FontAwesome;
-      font-size: large;
-      font-style: normal;
-      display: inline-block;
-      transition: all 0.2s;
-      position: relative;
-      margin-left: -$form-check-input-gutter;
-    }
-    img {
-      margin-right: 0.3em;
-    }
+@mixin adjustCustomControlLabel() {
+  .custom-control-label {
     &:after {
-      content: $zero-width-space;
+      content: "";
     }
-  }
 
-  label.custom-control-label:after {
-    content: "";
-  }
-}
-
-.tobago-selectBooleanToggle, .tobago-selectManyToggle {
-  .form-check-label {
-    .tobago-inputPseudo:before {
-      font-size: larger;
+    img {
+      padding-right: 0.3em;
     }
   }
 }
 
-.tobago-selectBooleanCheckbox, .tobago-selectManyCheckbox {
-  .form-check-label {
-    .tobago-inputPseudo:before {
-      content: $fa-square-o;
-      position: absolute;
-    }
-    input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-      content: $fa-check-square-o;
-    }
-    input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-    input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-      text-shadow: 0 0 1px black;
-    }
-    input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-      opacity: 0.5;
-    }
-  }
+@mixin inlinePadding() {
+  padding-top: calc(#{$input-padding-y} + #{$input-border-width});
+  padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});
 }
 
-.tobago-selectBooleanToggle, .tobago-selectManyToggle {
-  .form-check-label {
-    .tobago-inputPseudo:before {
-      content: $fa-toggle-off;
-      position: relative;
-      margin-right: 0.5rem;
-    }
-    input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-      content: $fa-toggle-on;
-    }
-    input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-    input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-      text-shadow: 0 0 1px black;
-    }
-    input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-      opacity: 0.5;
-    }
-  }
+/* selectBooleanCheckbox ---------------------------------------------------- */
+.tobago-selectBooleanCheckbox {
+  @include adjustCustomControlLabel();
 }
 
-.tobago-selectOneRadio {
-  .form-check-label {
-    .tobago-inputPseudo:before {
-      content: $fa-circle-thin;
-      position: absolute;
-    }
-    input[type="radio"]:checked + .tobago-inputPseudo:before {
-      content: $fa-dot-circle-o;
-    }
-    input[type="radio"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-    input[type="radio"]:active:not(:disabled) + .tobago-inputPseudo:before {
-      text-shadow: 0 0 1px black;
-    }
-    input[type="radio"]:disabled + .tobago-inputPseudo:before {
-      opacity: 0.5;
-    }
-  }
+/* selectBooleanToggle ---------------------------------------------------- */
+.tobago-selectBooleanToggle {
+  @include adjustCustomControlLabel();
 }
 
-/* dropdown */
-.dropdown-menu {
-  .tobago-selectBooleanCheckbox, .tobago-selectManyCheckbox, .tobago-selectOneRadio {
-    .form-check-label {
-      padding-left: (2 * $form-check-input-gutter) + $dropdown-item-padding-y;
-    }
-  }
+/* selectOneListbox -------------------------------------------------------- */
+.tobago-selectOneListbox,
+.tobago-selectOneListbox-option {
 }
 
-/* inline */
-.tobago-selectBooleanToggle.form-check,
-.tobago-selectBooleanCheckbox.form-check {
-  padding-top: calc(#{$input-btn-padding-y} - #{$input-btn-border-width} * 2);
-  padding-bottom: calc(#{$input-btn-padding-y} - #{$input-btn-border-width} * 2);
-  margin-bottom: 0;
-
-  .form-check-label {
+/* selectOneRadio ---------------------------------------------------------- */
+.tobago-selectOneRadio {
+  @include adjustCustomControlLabel();
 
+  &.tobago-selectOneRadio-inline {
+    @include inlinePadding();
   }
 }
 
-.tobago-selectManyToggle-inline,
-.tobago-selectManyCheckbox-inline,
-.tobago-selectOneRadio-inline {
-  padding-top: calc(#{$input-btn-padding-y} - #{$input-btn-border-width} * 2);
-  padding-bottom: calc(#{$input-btn-padding-y} - #{$input-btn-border-width} * 2);
+/* selectManyCheckbox ----------------------------------------------------- */
+.tobago-selectManyCheckbox {
+  @include adjustCustomControlLabel();
 
-  .form-check.form-check-inline {
-    margin-bottom: 0;
-    padding-left: 1rem;
-
-    .form-check-label {
-      vertical-align: baseline;
-    }
+  &.tobago-selectManyCheckbox-inline {
+    @include inlinePadding();
   }
 }
 
-/* selectBooleanCheckbox ----------------------------------------------- */
-
-/* selectManyCheckbox ----------------------------------------------------------- */
-
 /* selectManyListbox ----------------------------------------------------------- */
 .tobago-selectManyListbox,
 .tobago-selectManyListbox-option {
@@ -1055,8 +999,6 @@ h1, h2, h3, h4, h5, h6 {
   }
 }
 
-/* selectOneRadio ---------------------------------------------------------- */
-
 /* selectOneChoice ---------------------------------------------------------- */
 
 .tobago-selectOneChoice-option {
@@ -1072,11 +1014,6 @@ h1, h2, h3, h4, h5, h6 {
   border-bottom-left-radius: 0;
 }
 
-/* selectOneListbox -------------------------------------------------------- */
-.tobago-selectOneListbox,
-.tobago-selectOneListbox-option {
-}
-
 /* segmentLayout ----------------------------------------------------------- */
 
 .tobago-segmentLayout {


[myfaces-tobago] 03/03: rebuild themes

Posted by hn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 67d7e6d23438cb06444075f9e81cad0517d0b504
Author: Henning Nöth <hn...@apache.org>
AuthorDate: Mon Apr 20 23:00:49 2020 +0200

    rebuild themes
---
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++---------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++---------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++---------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++---------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 .../tobago-bootstrap/_version/css/bootstrap.css    | 157 ++++++---------------
 .../_version/css/bootstrap.css.map                 |   2 +-
 .../_version/css/bootstrap.min.css                 |   2 +-
 .../_version/css/bootstrap.min.css.map             |   2 +-
 20 files changed, 245 insertions(+), 570 deletions(-)

diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css
index 1357e80..b74ef0e 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css
@@ -10693,6 +10693,24 @@ a.tobago-messages-button, a.tobago-help-button {
   display: block;
 }
 
+.dropdown-menu .custom-control {
+  padding-left: 0;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item {
+  padding-left: 3rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:before {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:after {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
 /* dropdown-submenu ------------------------------------------------------- */
 .tobago-dropdown-submenu {
   cursor: pointer;
@@ -10984,135 +11002,54 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   align-content: center;
 }
 
-/* selectBooleanCheckbox, selectManyCheckbox, selectOneRadio ------------------------------ */
-.tobago-selectBooleanCheckbox .form-check-label input, .tobago-selectBooleanToggle .form-check-label input,
-.tobago-selectManyCheckbox .form-check-label input, .tobago-selectManyToggle .form-check-label input,
-.tobago-selectOneRadio .form-check-label input {
-  position: absolute;
-  opacity: 0;
-  z-index: -1;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  font-family: FontAwesome;
-  font-size: large;
-  font-style: normal;
-  display: inline-block;
-  transition: all 0.2s;
-  position: relative;
-  margin-left: -1.25rem;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label img, .tobago-selectBooleanToggle .form-check-label img,
-.tobago-selectManyCheckbox .form-check-label img, .tobago-selectManyToggle .form-check-label img,
-.tobago-selectOneRadio .form-check-label img {
-  margin-right: 0.3em;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label:after, .tobago-selectBooleanToggle .form-check-label:after,
-.tobago-selectManyCheckbox .form-check-label:after, .tobago-selectManyToggle .form-check-label:after,
-.tobago-selectOneRadio .form-check-label:after {
-  content: "​";
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  font-size: larger;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: relative;
-  margin-right: 0.5rem;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* select ----------------------------------------------------------- */
+/* selectBooleanCheckbox ---------------------------------------------------- */
+.tobago-selectBooleanCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
+.tobago-selectBooleanCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:checked + .tobago-inputPseudo:before {
-  content: "";
+/* selectBooleanToggle ---------------------------------------------------- */
+.tobago-selectBooleanToggle .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label input[type="radio"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
+.tobago-selectBooleanToggle .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* selectOneListbox -------------------------------------------------------- */
+/* selectOneRadio ---------------------------------------------------------- */
+.tobago-selectOneRadio .custom-control-label:after {
+  content: "";
 }
 
-/* dropdown */
-.dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, .dropdown-menu .tobago-selectManyCheckbox .form-check-label, .dropdown-menu .tobago-selectOneRadio .form-check-label {
-  padding-left: 2.75rem;
+.tobago-selectOneRadio .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-/* inline */
-.tobago-selectBooleanToggle.form-check,
-.tobago-selectBooleanCheckbox.form-check {
-  padding-top: calc(0.375rem - 1px * 2);
-  padding-bottom: calc(0.375rem - 1px * 2);
-  margin-bottom: 0;
+.tobago-selectOneRadio.tobago-selectOneRadio-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-.tobago-selectManyToggle-inline,
-.tobago-selectManyCheckbox-inline,
-.tobago-selectOneRadio-inline {
-  padding-top: calc(0.375rem - 1px * 2);
-  padding-bottom: calc(0.375rem - 1px * 2);
+/* selectManyCheckbox ----------------------------------------------------- */
+.tobago-selectManyCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline,
-.tobago-selectOneRadio-inline .form-check.form-check-inline {
-  margin-bottom: 0;
-  padding-left: 1rem;
+.tobago-selectManyCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectOneRadio-inline .form-check.form-check-inline .form-check-label {
-  vertical-align: baseline;
+.tobago-selectManyCheckbox.tobago-selectManyCheckbox-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-/* selectBooleanCheckbox ----------------------------------------------- */
-/* selectManyCheckbox ----------------------------------------------------------- */
 /* selectManyListbox ----------------------------------------------------------- */
 /* selectManyShuttle ----------------------------------------------------------- */
 .tobago-selectManyShuttle {
@@ -11152,7 +11089,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   margin-left: 0 !important;
 }
 
-/* selectOneRadio ---------------------------------------------------------- */
 /* selectOneChoice ---------------------------------------------------------- */
 .input-group-prepend > .tobago-selectOneChoice {
   /* before facet */
@@ -11166,7 +11102,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   border-bottom-left-radius: 0;
 }
 
-/* selectOneListbox -------------------------------------------------------- */
 /* segmentLayout ----------------------------------------------------------- */
 .tobago-segmentLayout {
   /*
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map
index a5df941..eae8029 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_brea [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_brea [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css
index f26eb3b..45a817d 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2019 The Bootstrap Authors
  * Copyright 2011-2019 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#529696;--secondary:#b2a76d;--success:#abf5ff;--info:#389c30;--warning:#ff00be;--danger:#ff00be;--light:#ffffff;--dark:#529696;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#529696;--secondary:#b2a76d;--success:#abf5ff;--info:#389c30;--warning:#ff00be;--danger:#ff00be;--light:#ffffff;--dark:#529696;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map
index 873a611..268dfa8 100644
--- a/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/tobago/charlotteville/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixi [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixi [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.css
index 9b02d1b..e13609e 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.css
@@ -10724,6 +10724,24 @@ a.tobago-messages-button, a.tobago-help-button {
   display: block;
 }
 
+.dropdown-menu .custom-control {
+  padding-left: 0;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item {
+  padding-left: 3rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:before {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:after {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
 /* dropdown-submenu ------------------------------------------------------- */
 .tobago-dropdown-submenu {
   cursor: pointer;
@@ -11015,135 +11033,54 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   align-content: center;
 }
 
-/* selectBooleanCheckbox, selectManyCheckbox, selectOneRadio ------------------------------ */
-.tobago-selectBooleanCheckbox .form-check-label input, .tobago-selectBooleanToggle .form-check-label input,
-.tobago-selectManyCheckbox .form-check-label input, .tobago-selectManyToggle .form-check-label input,
-.tobago-selectOneRadio .form-check-label input {
-  position: absolute;
-  opacity: 0;
-  z-index: -1;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  font-family: FontAwesome;
-  font-size: large;
-  font-style: normal;
-  display: inline-block;
-  transition: all 0.2s;
-  position: relative;
-  margin-left: -1.25rem;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label img, .tobago-selectBooleanToggle .form-check-label img,
-.tobago-selectManyCheckbox .form-check-label img, .tobago-selectManyToggle .form-check-label img,
-.tobago-selectOneRadio .form-check-label img {
-  margin-right: 0.3em;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label:after, .tobago-selectBooleanToggle .form-check-label:after,
-.tobago-selectManyCheckbox .form-check-label:after, .tobago-selectManyToggle .form-check-label:after,
-.tobago-selectOneRadio .form-check-label:after {
-  content: "​";
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  font-size: larger;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: relative;
-  margin-right: 0.5rem;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* select ----------------------------------------------------------- */
+/* selectBooleanCheckbox ---------------------------------------------------- */
+.tobago-selectBooleanCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
+.tobago-selectBooleanCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:checked + .tobago-inputPseudo:before {
-  content: "";
+/* selectBooleanToggle ---------------------------------------------------- */
+.tobago-selectBooleanToggle .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label input[type="radio"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
+.tobago-selectBooleanToggle .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* selectOneListbox -------------------------------------------------------- */
+/* selectOneRadio ---------------------------------------------------------- */
+.tobago-selectOneRadio .custom-control-label:after {
+  content: "";
 }
 
-/* dropdown */
-.dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, .dropdown-menu .tobago-selectManyCheckbox .form-check-label, .dropdown-menu .tobago-selectOneRadio .form-check-label {
-  padding-left: 2.75rem;
+.tobago-selectOneRadio .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-/* inline */
-.tobago-selectBooleanToggle.form-check,
-.tobago-selectBooleanCheckbox.form-check {
-  padding-top: calc(0.375rem - 2px * 2);
-  padding-bottom: calc(0.375rem - 2px * 2);
-  margin-bottom: 0;
+.tobago-selectOneRadio.tobago-selectOneRadio-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-.tobago-selectManyToggle-inline,
-.tobago-selectManyCheckbox-inline,
-.tobago-selectOneRadio-inline {
-  padding-top: calc(0.375rem - 2px * 2);
-  padding-bottom: calc(0.375rem - 2px * 2);
+/* selectManyCheckbox ----------------------------------------------------- */
+.tobago-selectManyCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline,
-.tobago-selectOneRadio-inline .form-check.form-check-inline {
-  margin-bottom: 0;
-  padding-left: 1rem;
+.tobago-selectManyCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectOneRadio-inline .form-check.form-check-inline .form-check-label {
-  vertical-align: baseline;
+.tobago-selectManyCheckbox.tobago-selectManyCheckbox-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-/* selectBooleanCheckbox ----------------------------------------------- */
-/* selectManyCheckbox ----------------------------------------------------------- */
 /* selectManyListbox ----------------------------------------------------------- */
 /* selectManyShuttle ----------------------------------------------------------- */
 .tobago-selectManyShuttle {
@@ -11183,7 +11120,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   margin-left: 0 !important;
 }
 
-/* selectOneRadio ---------------------------------------------------------- */
 /* selectOneChoice ---------------------------------------------------------- */
 .input-group-prepend > .tobago-selectOneChoice {
   /* before facet */
@@ -11197,7 +11133,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   border-bottom-left-radius: 0;
 }
 
-/* selectOneListbox -------------------------------------------------------- */
 /* segmentLayout ----------------------------------------------------------- */
 .tobago-segmentLayout {
   /*
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.css.map
index 87503f0..60a4ba2 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_brea [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_brea [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.min.css
index 66b9e54..a928f7a 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2019 The Bootstrap Authors
  * Copyright 2011-2019 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */@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("opentype")}.tobago-bo [...]
+ */@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("opentype")}.tobago-bo [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.min.css.map
index dcffcc1..7b17d43 100644
--- a/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-roxborough/src/main/resources/META-INF/resources/tobago/roxborough/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoi [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoi [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css
index 47def2f..f6d6993 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css
@@ -10730,6 +10730,24 @@ a.tobago-messages-button, a.tobago-help-button {
   display: block;
 }
 
+.dropdown-menu .custom-control {
+  padding-left: 0;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item {
+  padding-left: 3rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:before {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:after {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
 /* dropdown-submenu ------------------------------------------------------- */
 .tobago-dropdown-submenu {
   cursor: pointer;
@@ -11021,135 +11039,54 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   align-content: center;
 }
 
-/* selectBooleanCheckbox, selectManyCheckbox, selectOneRadio ------------------------------ */
-.tobago-selectBooleanCheckbox .form-check-label input, .tobago-selectBooleanToggle .form-check-label input,
-.tobago-selectManyCheckbox .form-check-label input, .tobago-selectManyToggle .form-check-label input,
-.tobago-selectOneRadio .form-check-label input {
-  position: absolute;
-  opacity: 0;
-  z-index: -1;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  font-family: FontAwesome;
-  font-size: large;
-  font-style: normal;
-  display: inline-block;
-  transition: all 0.2s;
-  position: relative;
-  margin-left: -1.25rem;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label img, .tobago-selectBooleanToggle .form-check-label img,
-.tobago-selectManyCheckbox .form-check-label img, .tobago-selectManyToggle .form-check-label img,
-.tobago-selectOneRadio .form-check-label img {
-  margin-right: 0.3em;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label:after, .tobago-selectBooleanToggle .form-check-label:after,
-.tobago-selectManyCheckbox .form-check-label:after, .tobago-selectManyToggle .form-check-label:after,
-.tobago-selectOneRadio .form-check-label:after {
-  content: "​";
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  font-size: larger;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: relative;
-  margin-right: 0.5rem;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* select ----------------------------------------------------------- */
+/* selectBooleanCheckbox ---------------------------------------------------- */
+.tobago-selectBooleanCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
+.tobago-selectBooleanCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:checked + .tobago-inputPseudo:before {
-  content: "";
+/* selectBooleanToggle ---------------------------------------------------- */
+.tobago-selectBooleanToggle .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label input[type="radio"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
+.tobago-selectBooleanToggle .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* selectOneListbox -------------------------------------------------------- */
+/* selectOneRadio ---------------------------------------------------------- */
+.tobago-selectOneRadio .custom-control-label:after {
+  content: "";
 }
 
-/* dropdown */
-.dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, .dropdown-menu .tobago-selectManyCheckbox .form-check-label, .dropdown-menu .tobago-selectOneRadio .form-check-label {
-  padding-left: 2.75rem;
+.tobago-selectOneRadio .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-/* inline */
-.tobago-selectBooleanToggle.form-check,
-.tobago-selectBooleanCheckbox.form-check {
-  padding-top: calc(0.375rem - 1px * 2);
-  padding-bottom: calc(0.375rem - 1px * 2);
-  margin-bottom: 0;
+.tobago-selectOneRadio.tobago-selectOneRadio-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-.tobago-selectManyToggle-inline,
-.tobago-selectManyCheckbox-inline,
-.tobago-selectOneRadio-inline {
-  padding-top: calc(0.375rem - 1px * 2);
-  padding-bottom: calc(0.375rem - 1px * 2);
+/* selectManyCheckbox ----------------------------------------------------- */
+.tobago-selectManyCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline,
-.tobago-selectOneRadio-inline .form-check.form-check-inline {
-  margin-bottom: 0;
-  padding-left: 1rem;
+.tobago-selectManyCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectOneRadio-inline .form-check.form-check-inline .form-check-label {
-  vertical-align: baseline;
+.tobago-selectManyCheckbox.tobago-selectManyCheckbox-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-/* selectBooleanCheckbox ----------------------------------------------- */
-/* selectManyCheckbox ----------------------------------------------------------- */
 /* selectManyListbox ----------------------------------------------------------- */
 /* selectManyShuttle ----------------------------------------------------------- */
 .tobago-selectManyShuttle {
@@ -11189,7 +11126,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   margin-left: 0 !important;
 }
 
-/* selectOneRadio ---------------------------------------------------------- */
 /* selectOneChoice ---------------------------------------------------------- */
 .input-group-prepend > .tobago-selectOneChoice {
   /* before facet */
@@ -11203,7 +11139,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   border-bottom-left-radius: 0;
 }
 
-/* selectOneListbox -------------------------------------------------------- */
 /* segmentLayout ----------------------------------------------------------- */
 .tobago-segmentLayout {
   /*
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css.map
index 664d37d..f4689ce 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_brea [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_brea [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css
index 94126e9..217d624 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2019 The Bootstrap Authors
  * Copyright 2011-2019 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css.map
index 53d6d83..91a365b 100644
--- a/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-scarborough/src/main/resources/META-INF/resources/tobago/scarborough/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixi [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixi [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css
index 9569a2f..ecb5baf 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css
@@ -10434,6 +10434,24 @@ a.tobago-messages-button, a.tobago-help-button {
   display: block;
 }
 
+.dropdown-menu .custom-control {
+  padding-left: 0;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item {
+  padding-left: 3rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:before {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:after {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
 /* dropdown-submenu ------------------------------------------------------- */
 .tobago-dropdown-submenu {
   cursor: pointer;
@@ -10725,135 +10743,54 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   align-content: center;
 }
 
-/* selectBooleanCheckbox, selectManyCheckbox, selectOneRadio ------------------------------ */
-.tobago-selectBooleanCheckbox .form-check-label input, .tobago-selectBooleanToggle .form-check-label input,
-.tobago-selectManyCheckbox .form-check-label input, .tobago-selectManyToggle .form-check-label input,
-.tobago-selectOneRadio .form-check-label input {
-  position: absolute;
-  opacity: 0;
-  z-index: -1;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  font-family: FontAwesome;
-  font-size: large;
-  font-style: normal;
-  display: inline-block;
-  transition: all 0.2s;
-  position: relative;
-  margin-left: -1.25rem;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label img, .tobago-selectBooleanToggle .form-check-label img,
-.tobago-selectManyCheckbox .form-check-label img, .tobago-selectManyToggle .form-check-label img,
-.tobago-selectOneRadio .form-check-label img {
-  margin-right: 0.3em;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label:after, .tobago-selectBooleanToggle .form-check-label:after,
-.tobago-selectManyCheckbox .form-check-label:after, .tobago-selectManyToggle .form-check-label:after,
-.tobago-selectOneRadio .form-check-label:after {
-  content: "​";
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  font-size: larger;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: relative;
-  margin-right: 0.5rem;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* select ----------------------------------------------------------- */
+/* selectBooleanCheckbox ---------------------------------------------------- */
+.tobago-selectBooleanCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
+.tobago-selectBooleanCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:checked + .tobago-inputPseudo:before {
-  content: "";
+/* selectBooleanToggle ---------------------------------------------------- */
+.tobago-selectBooleanToggle .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label input[type="radio"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
+.tobago-selectBooleanToggle .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* selectOneListbox -------------------------------------------------------- */
+/* selectOneRadio ---------------------------------------------------------- */
+.tobago-selectOneRadio .custom-control-label:after {
+  content: "";
 }
 
-/* dropdown */
-.dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, .dropdown-menu .tobago-selectManyCheckbox .form-check-label, .dropdown-menu .tobago-selectOneRadio .form-check-label {
-  padding-left: 2.75rem;
+.tobago-selectOneRadio .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-/* inline */
-.tobago-selectBooleanToggle.form-check,
-.tobago-selectBooleanCheckbox.form-check {
-  padding-top: calc(0.375rem - 1px * 2);
-  padding-bottom: calc(0.375rem - 1px * 2);
-  margin-bottom: 0;
+.tobago-selectOneRadio.tobago-selectOneRadio-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-.tobago-selectManyToggle-inline,
-.tobago-selectManyCheckbox-inline,
-.tobago-selectOneRadio-inline {
-  padding-top: calc(0.375rem - 1px * 2);
-  padding-bottom: calc(0.375rem - 1px * 2);
+/* selectManyCheckbox ----------------------------------------------------- */
+.tobago-selectManyCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline,
-.tobago-selectOneRadio-inline .form-check.form-check-inline {
-  margin-bottom: 0;
-  padding-left: 1rem;
+.tobago-selectManyCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectOneRadio-inline .form-check.form-check-inline .form-check-label {
-  vertical-align: baseline;
+.tobago-selectManyCheckbox.tobago-selectManyCheckbox-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-/* selectBooleanCheckbox ----------------------------------------------- */
-/* selectManyCheckbox ----------------------------------------------------------- */
 /* selectManyListbox ----------------------------------------------------------- */
 /* selectManyShuttle ----------------------------------------------------------- */
 .tobago-selectManyShuttle {
@@ -10893,7 +10830,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   margin-left: 0 !important;
 }
 
-/* selectOneRadio ---------------------------------------------------------- */
 /* selectOneChoice ---------------------------------------------------------- */
 .input-group-prepend > .tobago-selectOneChoice {
   /* before facet */
@@ -10907,7 +10843,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   border-bottom-left-radius: 0;
 }
 
-/* selectOneListbox -------------------------------------------------------- */
 /* segmentLayout ----------------------------------------------------------- */
 .tobago-segmentLayout {
   /*
diff --git a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css.map
index 719d859..5e2b717 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-f [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-f [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css
index 8b574c0..b1452b7 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2019 The Bootstrap Authors
  * Copyright 2011-2019 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#185722;--secondary:#d7d7d7;--success:#1da332;--info:#5bc0de;--warning:#f0ad4e;--danger:#d30040;--light:#f7f7f7;--dark:#323232;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:verdana, [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#185722;--secondary:#d7d7d7;--success:#1da332;--info:#5bc0de;--warning:#f0ad4e;--danger:#d30040;--light:#f7f7f7;--dark:#323232;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:verdana, [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css.map
index dc74ad1..388ee1a 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-speyside/src/main/resources/META-INF/resources/tobago/speyside/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_ta [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_ta [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css
index 7b4835f..f8243c9 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css
@@ -10693,6 +10693,24 @@ a.tobago-messages-button, a.tobago-help-button {
   display: block;
 }
 
+.dropdown-menu .custom-control {
+  padding-left: 0;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item {
+  padding-left: 3rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:before {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
+.dropdown-menu .custom-control .custom-control-label.dropdown-item:after {
+  top: 0.5rem;
+  left: 1.5rem;
+}
+
 /* dropdown-submenu ------------------------------------------------------- */
 .tobago-dropdown-submenu {
   cursor: pointer;
@@ -10984,135 +11002,54 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   align-content: center;
 }
 
-/* selectBooleanCheckbox, selectManyCheckbox, selectOneRadio ------------------------------ */
-.tobago-selectBooleanCheckbox .form-check-label input, .tobago-selectBooleanToggle .form-check-label input,
-.tobago-selectManyCheckbox .form-check-label input, .tobago-selectManyToggle .form-check-label input,
-.tobago-selectOneRadio .form-check-label input {
-  position: absolute;
-  opacity: 0;
-  z-index: -1;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  font-family: FontAwesome;
-  font-size: large;
-  font-style: normal;
-  display: inline-block;
-  transition: all 0.2s;
-  position: relative;
-  margin-left: -1.25rem;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label img, .tobago-selectBooleanToggle .form-check-label img,
-.tobago-selectManyCheckbox .form-check-label img, .tobago-selectManyToggle .form-check-label img,
-.tobago-selectOneRadio .form-check-label img {
-  margin-right: 0.3em;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label:after, .tobago-selectBooleanToggle .form-check-label:after,
-.tobago-selectManyCheckbox .form-check-label:after, .tobago-selectManyToggle .form-check-label:after,
-.tobago-selectOneRadio .form-check-label:after {
-  content: "​";
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  font-size: larger;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyCheckbox .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
-}
-
-.tobago-selectBooleanToggle .form-check-label .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: relative;
-  margin-right: 0.5rem;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:checked + .tobago-inputPseudo:before {
-  content: "";
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectManyToggle .form-check-label input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
-}
-
-.tobago-selectBooleanToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before, .tobago-selectManyToggle .form-check-label input[type="checkbox"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* select ----------------------------------------------------------- */
+/* selectBooleanCheckbox ---------------------------------------------------- */
+.tobago-selectBooleanCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label .tobago-inputPseudo:before {
-  content: "";
-  position: absolute;
+.tobago-selectBooleanCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:checked + .tobago-inputPseudo:before {
-  content: "";
+/* selectBooleanToggle ---------------------------------------------------- */
+.tobago-selectBooleanToggle .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:focus:not(:disabled) + .tobago-inputPseudo:before,
-.tobago-selectOneRadio .form-check-label input[type="radio"]:active:not(:disabled) + .tobago-inputPseudo:before {
-  text-shadow: 0 0 1px black;
+.tobago-selectBooleanToggle .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectOneRadio .form-check-label input[type="radio"]:disabled + .tobago-inputPseudo:before {
-  opacity: 0.5;
+/* selectOneListbox -------------------------------------------------------- */
+/* selectOneRadio ---------------------------------------------------------- */
+.tobago-selectOneRadio .custom-control-label:after {
+  content: "";
 }
 
-/* dropdown */
-.dropdown-menu .tobago-selectBooleanCheckbox .form-check-label, .dropdown-menu .tobago-selectManyCheckbox .form-check-label, .dropdown-menu .tobago-selectOneRadio .form-check-label {
-  padding-left: 2.75rem;
+.tobago-selectOneRadio .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-/* inline */
-.tobago-selectBooleanToggle.form-check,
-.tobago-selectBooleanCheckbox.form-check {
-  padding-top: calc(0.375rem - 1px * 2);
-  padding-bottom: calc(0.375rem - 1px * 2);
-  margin-bottom: 0;
+.tobago-selectOneRadio.tobago-selectOneRadio-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-.tobago-selectManyToggle-inline,
-.tobago-selectManyCheckbox-inline,
-.tobago-selectOneRadio-inline {
-  padding-top: calc(0.375rem - 1px * 2);
-  padding-bottom: calc(0.375rem - 1px * 2);
+/* selectManyCheckbox ----------------------------------------------------- */
+.tobago-selectManyCheckbox .custom-control-label:after {
+  content: "";
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline,
-.tobago-selectOneRadio-inline .form-check.form-check-inline {
-  margin-bottom: 0;
-  padding-left: 1rem;
+.tobago-selectManyCheckbox .custom-control-label img {
+  padding-right: 0.3em;
 }
 
-.tobago-selectManyToggle-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectManyCheckbox-inline .form-check.form-check-inline .form-check-label,
-.tobago-selectOneRadio-inline .form-check.form-check-inline .form-check-label {
-  vertical-align: baseline;
+.tobago-selectManyCheckbox.tobago-selectManyCheckbox-inline {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
 }
 
-/* selectBooleanCheckbox ----------------------------------------------- */
-/* selectManyCheckbox ----------------------------------------------------------- */
 /* selectManyListbox ----------------------------------------------------------- */
 /* selectManyShuttle ----------------------------------------------------------- */
 .tobago-selectManyShuttle {
@@ -11152,7 +11089,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   margin-left: 0 !important;
 }
 
-/* selectOneRadio ---------------------------------------------------------- */
 /* selectOneChoice ---------------------------------------------------------- */
 .input-group-prepend > .tobago-selectOneChoice {
   /* before facet */
@@ -11166,7 +11102,6 @@ h1 > .fa:first-child, h1 > img, h2 > .fa:first-child, h2 > img, h3 > .fa:first-c
   border-bottom-left-radius: 0;
 }
 
-/* selectOneListbox -------------------------------------------------------- */
 /* segmentLayout ----------------------------------------------------------- */
 .tobago-segmentLayout {
   /*
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css.map b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css.map
index 83475eb..6ec2596 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_brea [...]
\ No newline at end of file
+{"version":3,"sources":["bootstrap.css","../../scss/bootstrap.scss","../../scss/_custom.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_brea [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css
index e20a13b..939c441 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css
@@ -3,5 +3,5 @@
  * Copyright 2011-2019 The Bootstrap Authors
  * Copyright 2011-2019 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
 /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css.map b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css.map
index 73429ff..567a266 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css.map
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/tobago/standard/tobago-bootstrap/_version/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixi [...]
\ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixi [...]
\ No newline at end of file