You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2021/01/06 15:15:50 UTC

[myfaces-tobago] branch master updated: TOBAGO-2044: Evaluate use of Bootstrap 5

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 968253d  TOBAGO-2044: Evaluate use of Bootstrap 5
968253d is described below

commit 968253d7a0cde140eda2a31895f63ca49d877ea0
Author: Udo Schnurpfeil <ud...@irian.eu>
AuthorDate: Wed Jan 6 15:40:09 2021 +0100

    TOBAGO-2044: Evaluate use of Bootstrap 5
    
    update to 5.0.0-beta1
---
 tobago-core/npm/scss/_variables.scss               |  14 +-
 .../internal/renderkit/renderer/BarRenderer.java   |   2 +-
 .../renderkit/renderer/CommandRendererBase.java    |   2 +-
 .../tobago/renderkit/css/BootstrapClass.java       |  70 ++-
 .../tobago-theme-standard/npm/dist/css/tobago.css  | 685 +++++++++++----------
 .../npm/dist/css/tobago.css.map                    |   2 +-
 .../npm/dist/css/tobago.min.css                    |   2 +-
 .../npm/dist/css/tobago.min.css.map                |   2 +-
 .../tobago-theme-standard/npm/package-lock.json    |   6 +-
 .../tobago-theme-standard/npm/package.json         |   2 +-
 10 files changed, 419 insertions(+), 368 deletions(-)

diff --git a/tobago-core/npm/scss/_variables.scss b/tobago-core/npm/scss/_variables.scss
index 8db8b8a..e4a4c1f 100644
--- a/tobago-core/npm/scss/_variables.scss
+++ b/tobago-core/npm/scss/_variables.scss
@@ -296,7 +296,7 @@ $body-text-align: null !default;
 $link-color: $primary !default;
 $link-decoration: underline !default;
 $link-shade-percentage: 20% !default;
-$link-hover-color: scale-color($link-color, $link-shade-percentage) !default;
+$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;
 $link-hover-decoration: null !default;
 
 $stretched-link-pseudo-element: after !default;
@@ -556,12 +556,12 @@ $table-caption-color: $text-muted !default;
 $table-bg-scale: -80% !default;
 
 $table-variants: (
-        "primary": scale-color($primary, $table-bg-scale),
-        "secondary": scale-color($secondary, $table-bg-scale),
-        "success": scale-color($success, $table-bg-scale),
-        "info": scale-color($info, $table-bg-scale),
-        "warning": scale-color($warning, $table-bg-scale),
-        "danger": scale-color($danger, $table-bg-scale),
+        "primary": shift-color($primary, $table-bg-scale),
+        "secondary": shift-color($secondary, $table-bg-scale),
+        "success": shift-color($success, $table-bg-scale),
+        "info": shift-color($info, $table-bg-scale),
+        "warning": shift-color($warning, $table-bg-scale),
+        "danger": shift-color($danger, $table-bg-scale),
         "light": $light,
         "dark": $dark,
 ) !default;
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/BarRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/BarRenderer.java
index f119364..43e868a 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/BarRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/BarRenderer.java
@@ -109,7 +109,7 @@ public class BarRenderer<T extends AbstractUIBar> extends RendererBase<T> {
 
     if (after != null) {
       writer.startElement(HtmlElements.DIV);
-      writer.writeClassAttribute(BootstrapClass.MY_LG_0, BootstrapClass.ML_AUTO);
+      writer.writeClassAttribute(BootstrapClass.MY_LG_0, BootstrapClass.MS_AUTO);
       after.encodeAll(facesContext);
       writer.endElement(HtmlElements.DIV);
     }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
index 5dd94b6..3f69057 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
@@ -167,7 +167,7 @@ public abstract class CommandRendererBase<T extends AbstractUICommand> extends D
 
       writer.startElement(HtmlElements.DIV);
       writer.writeClassAttribute(BootstrapClass.DROPDOWN_MENU);
-// fixme         isInside(facesContext, x) ? BootstrapClass.DROPDOWN_MENU_RIGHT : null);
+// fixme         isInside(facesContext, x) ? BootstrapClass.DROPDOWN_MENU_END : null);
       writer.writeAttribute(Arias.LABELLEDBY, component.getFieldId(facesContext), false);
       writer.writeAttribute(HtmlAttributes.NAME, component.getClientId(facesContext), false);
 
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 4b806e1..45797d3 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
@@ -289,7 +289,7 @@ public enum BootstrapClass implements CssItem {
   DROPDOWN_DIVIDER("dropdown-divider"),
   DROPDOWN_ITEM("dropdown-item"),
   DROPDOWN_MENU("dropdown-menu"),
-  DROPDOWN_MENU_RIGHT("dropdown-menu-right"),
+  DROPDOWN_MENU_END("dropdown-menu-end"),
   DROPDOWN_TOGGLE("dropdown-toggle"),
   FADE("fade"),
   FIGURE("figure"),
@@ -394,33 +394,33 @@ public enum BootstrapClass implements CssItem {
   MB_4("mb-4"),
   MB_5("mb-5"),
   MB_AUTO("mb-auto"),
-  ML_0("ml-0"),
-  ML_1("ml-1"),
-  ML_2("ml-2"),
-  ML_3("ml-3"),
-  ML_4("ml-4"),
-  ML_5("ml-5"),
-  ML_AUTO("ml-auto"),
-  ML_LG_AUTO("ml-lg-auto"),
-  ML_MD_AUTO("ml-md-auto"),
-  ML_SM_AUTO("ml-sm-auto"),
-  ML_XL_AUTO("ml-xl-auto"),
+  MS_0("ms-0"),
+  MS_1("ms-1"),
+  MS_2("ms-2"),
+  MS_3("ms-3"),
+  MS_4("ms-4"),
+  MS_5("ms-5"),
+  MS_AUTO("ms-auto"),
+  MS_LG_AUTO("ms-lg-auto"),
+  MS_MD_AUTO("ms-md-auto"),
+  MS_SM_AUTO("ms-sm-auto"),
+  MS_XL_AUTO("ms-xl-auto"),
   MODAL("modal"),
   MODAL_CONTENT("modal-content"),
   MODAL_DIALOG("modal-dialog"),
   MODAL_LG("modal-lg"),
   MODAL_SM("modal-sm"),
-  MR_0("mr-0"),
-  MR_1("mr-1"),
-  MR_2("mr-2"),
-  MR_3("mr-3"),
-  MR_4("mr-4"),
-  MR_5("mr-5"),
-  MR_AUTO("mr-auto"),
-  MR_LG_AUTO("mr-lg-auto"),
-  MR_MD_AUTO("mr-md-auto"),
-  MR_SM_AUTO("mr-sm-auto"),
-  MR_XL_AUTO("mr-xl-auto"),
+  ME_0("me-0"),
+  ME_1("me-1"),
+  ME_2("me-2"),
+  ME_3("me-3"),
+  ME_4("me-4"),
+  ME_5("me-5"),
+  ME_AUTO("me-auto"),
+  ME_LG_AUTO("me-lg-auto"),
+  ME_MD_AUTO("me-md-auto"),
+  ME_SM_AUTO("me-sm-auto"),
+  ME_XL_AUTO("me-xl-auto"),
   MT_0("mt-0"),
   MT_1("mt-1"),
   MT_2("mt-2"),
@@ -547,8 +547,18 @@ public enum BootstrapClass implements CssItem {
    */
   @Deprecated
   TEXT_JUSTIFY("tobago-text-justify"),
-  TEXT_LEFT("text-left"),
-  TEXT_RIGHT("text-right"),
+  /**
+   * @deprecated since 5.0.0, use {@link #TEXT_START}
+   */
+  @Deprecated
+  TEXT_LEFT("text-start"),
+  TEXT_START("text-start"),
+  /**
+   * @deprecated since 5.0.0, use {@link #TEXT_END}
+   */
+  @Deprecated
+  TEXT_RIGHT("text-end"),
+  TEXT_END("text-end"),
   TAB_CONTENT("tab-content"),
   TAB_PANE("tab-pane"),
   TABLE("table"),
@@ -648,16 +658,16 @@ public enum BootstrapClass implements CssItem {
   public static CssItem textAlign(final TextAlign textAlign) {
     switch (textAlign) {
       case left:
-        return BootstrapClass.TEXT_LEFT;
+        return BootstrapClass.TEXT_START;
       case right:
-        return BootstrapClass.TEXT_RIGHT;
+        return BootstrapClass.TEXT_END;
       case justify:
         return TobagoClass.TEXT__JUSTIFY;
       case center:
         return BootstrapClass.TEXT_CENTER;
       default:
         LOG.warn("Not a bootstrap class defined for {}", textAlign);
-        return BootstrapClass.TEXT_LEFT;
+        return BootstrapClass.TEXT_START;
     }
   }
 
@@ -865,9 +875,9 @@ public enum BootstrapClass implements CssItem {
 
     switch (margin) {
       case left:
-        return valueOf("ML" + size + "_AUTO");
+        return valueOf("MS" + size + "_AUTO");
       case right:
-        return valueOf("MR" + size + "_AUTO");
+        return valueOf("ME" + size + "_AUTO");
       case both:
         return valueOf("MX" + size + "_AUTO");
       default:
diff --git a/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.css b/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.css
index 7d08ace..861c9ff 100644
--- a/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.css
+++ b/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.css
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 /*!
- * Bootstrap v5.0.0-alpha3 (https://getbootstrap.com/)
+ * Bootstrap v5.0.0-beta1 (https://getbootstrap.com/)
  * Copyright 2011-2020 The Bootstrap Authors
  * Copyright 2011-2020 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -149,7 +149,7 @@ p {
 }
 
 abbr[title],
-abbr[data-original-title] {
+abbr[data-bs-original-title] {
   text-decoration: underline;
   -webkit-text-decoration: underline dotted;
   text-decoration: underline dotted;
@@ -246,6 +246,8 @@ kbd,
 samp {
   font-family: var(--bs-font-monospace);
   font-size: 1em;
+  direction: ltr /* rtl:ignore */;
+  unicode-bidi: bidi-override;
 }
 
 pre {
@@ -432,6 +434,14 @@ legend + * {
   -webkit-appearance: textfield;
 }
 
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+  direction: ltr;
+}
+*/
 ::-webkit-search-decoration {
   -webkit-appearance: none;
 }
@@ -625,10 +635,9 @@ progress {
 .container-lg,
 .container-xl,
 .container-xxl {
-  --bs-gutter-x: 1.5rem;
   width: 100%;
-  padding-right: calc(var(--bs-gutter-x) / 2);
-  padding-left: calc(var(--bs-gutter-x) / 2);
+  padding-right: var(--bs-gutter-x, 0.75rem);
+  padding-left: var(--bs-gutter-x, 0.75rem);
   margin-right: auto;
   margin-left: auto;
 }
@@ -1742,7 +1751,6 @@ progress {
 
 .table {
   --bs-table-bg: transparent;
-  --bs-table-accent-bg: transparent;
   --bs-table-striped-color: #212529;
   --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
   --bs-table-active-color: #212529;
@@ -3478,9 +3486,9 @@ fieldset:disabled .btn {
 }
 
 .dropup,
-.dropright,
+.dropend,
 .dropdown,
-.dropleft {
+.dropstart {
   position: relative;
 }
 
@@ -3522,68 +3530,84 @@ fieldset:disabled .btn {
   border-radius: 0.25rem;
 }
 
-.dropdown-menu-left {
-  right: auto;
-  left: 0;
+.dropdown-menu[style] {
+  right: auto !important;
 }
 
-.dropdown-menu-right {
-  right: 0;
-  left: auto;
+.dropdown-menu-start {
+  --bs-position: start;
+  right: auto /* rtl:ignore */;
+  left: 0 /* rtl:ignore */;
+}
+
+.dropdown-menu-end {
+  --bs-position: end;
+  right: 0 /* rtl:ignore */;
+  left: auto /* rtl:ignore */;
 }
 
 @media (min-width: 576px) {
-  .dropdown-menu-sm-left {
-    right: auto;
-    left: 0;
+  .dropdown-menu-sm-start {
+    --bs-position: start;
+    right: auto /* rtl:ignore */;
+    left: 0 /* rtl:ignore */;
   }
-  .dropdown-menu-sm-right {
-    right: 0;
-    left: auto;
+  .dropdown-menu-sm-end {
+    --bs-position: end;
+    right: 0 /* rtl:ignore */;
+    left: auto /* rtl:ignore */;
   }
 }
 
 @media (min-width: 768px) {
-  .dropdown-menu-md-left {
-    right: auto;
-    left: 0;
+  .dropdown-menu-md-start {
+    --bs-position: start;
+    right: auto /* rtl:ignore */;
+    left: 0 /* rtl:ignore */;
   }
-  .dropdown-menu-md-right {
-    right: 0;
-    left: auto;
+  .dropdown-menu-md-end {
+    --bs-position: end;
+    right: 0 /* rtl:ignore */;
+    left: auto /* rtl:ignore */;
   }
 }
 
 @media (min-width: 992px) {
-  .dropdown-menu-lg-left {
-    right: auto;
-    left: 0;
+  .dropdown-menu-lg-start {
+    --bs-position: start;
+    right: auto /* rtl:ignore */;
+    left: 0 /* rtl:ignore */;
   }
-  .dropdown-menu-lg-right {
-    right: 0;
-    left: auto;
+  .dropdown-menu-lg-end {
+    --bs-position: end;
+    right: 0 /* rtl:ignore */;
+    left: auto /* rtl:ignore */;
   }
 }
 
 @media (min-width: 1200px) {
-  .dropdown-menu-xl-left {
-    right: auto;
-    left: 0;
+  .dropdown-menu-xl-start {
+    --bs-position: start;
+    right: auto /* rtl:ignore */;
+    left: 0 /* rtl:ignore */;
   }
-  .dropdown-menu-xl-right {
-    right: 0;
-    left: auto;
+  .dropdown-menu-xl-end {
+    --bs-position: end;
+    right: 0 /* rtl:ignore */;
+    left: auto /* rtl:ignore */;
   }
 }
 
 @media (min-width: 1400px) {
-  .dropdown-menu-xxl-left {
-    right: auto;
-    left: 0;
+  .dropdown-menu-xxl-start {
+    --bs-position: start;
+    right: auto /* rtl:ignore */;
+    left: 0 /* rtl:ignore */;
   }
-  .dropdown-menu-xxl-right {
-    right: 0;
-    left: auto;
+  .dropdown-menu-xxl-end {
+    --bs-position: end;
+    right: 0 /* rtl:ignore */;
+    left: auto /* rtl:ignore */;
   }
 }
 
@@ -3609,7 +3633,7 @@ fieldset:disabled .btn {
   margin-left: 0;
 }
 
-.dropright .dropdown-menu {
+.dropend .dropdown-menu {
   top: 0;
   right: auto;
   left: 100%;
@@ -3617,7 +3641,7 @@ fieldset:disabled .btn {
   margin-left: 0.125rem;
 }
 
-.dropright .dropdown-toggle::after {
+.dropend .dropdown-toggle::after {
   display: inline-block;
   margin-left: 0.255em;
   vertical-align: 0.255em;
@@ -3628,15 +3652,15 @@ fieldset:disabled .btn {
   border-left: 0.3em solid;
 }
 
-.dropright .dropdown-toggle:empty::after {
+.dropend .dropdown-toggle:empty::after {
   margin-left: 0;
 }
 
-.dropright .dropdown-toggle::after {
+.dropend .dropdown-toggle::after {
   vertical-align: 0;
 }
 
-.dropleft .dropdown-menu {
+.dropstart .dropdown-menu {
   top: 0;
   right: 100%;
   left: auto;
@@ -3644,18 +3668,18 @@ fieldset:disabled .btn {
   margin-right: 0.125rem;
 }
 
-.dropleft .dropdown-toggle::after {
+.dropstart .dropdown-toggle::after {
   display: inline-block;
   margin-left: 0.255em;
   vertical-align: 0.255em;
   content: "";
 }
 
-.dropleft .dropdown-toggle::after {
+.dropstart .dropdown-toggle::after {
   display: none;
 }
 
-.dropleft .dropdown-toggle::before {
+.dropstart .dropdown-toggle::before {
   display: inline-block;
   margin-right: 0.255em;
   vertical-align: 0.255em;
@@ -3665,19 +3689,14 @@ fieldset:disabled .btn {
   border-bottom: 0.3em solid transparent;
 }
 
-.dropleft .dropdown-toggle:empty::after {
+.dropstart .dropdown-toggle:empty::after {
   margin-left: 0;
 }
 
-.dropleft .dropdown-toggle::before {
+.dropstart .dropdown-toggle::before {
   vertical-align: 0;
 }
 
-.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {
-  right: auto;
-  bottom: auto;
-}
-
 .dropdown-divider {
   height: 0;
   margin: 0.5rem 0;
@@ -3834,11 +3853,11 @@ fieldset:disabled .btn {
 
 .dropdown-toggle-split::after,
 .dropup .dropdown-toggle-split::after,
-.dropright .dropdown-toggle-split::after {
+.dropend .dropdown-toggle-split::after {
   margin-left: 0;
 }
 
-.dropleft .dropdown-toggle-split::before {
+.dropstart .dropdown-toggle-split::before {
   margin-right: 0;
 }
 
@@ -3874,7 +3893,7 @@ fieldset:disabled .btn {
   border-bottom-left-radius: 0;
 }
 
-.btn-group-vertical > .btn:not(:first-child),
+.btn-group-vertical > .btn ~ .btn,
 .btn-group-vertical > .btn-group:not(:first-child) > .btn {
   border-top-left-radius: 0;
   border-top-right-radius: 0;
@@ -4353,7 +4372,7 @@ fieldset:disabled .btn {
 }
 
 .card-link + .card-link {
-  margin-left: 1rem;
+  margin-left: 1rem /* rtl:ignore */;
 }
 
 .card-header {
@@ -4579,11 +4598,9 @@ fieldset:disabled .btn {
 .breadcrumb {
   display: flex;
   flex-wrap: wrap;
-  padding: 0.5rem 1rem;
+  padding: 0 0;
   margin-bottom: 1rem;
   list-style: none;
-  background-color: #e9ecef;
-  border-radius: 0.25rem;
 }
 
 .breadcrumb-item + .breadcrumb-item {
@@ -4594,7 +4611,7 @@ fieldset:disabled .btn {
   float: left;
   padding-right: 0.5rem;
   color: #6c757d;
-  content: "/";
+  content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */;
 }
 
 .breadcrumb-item.active {
@@ -5284,31 +5301,35 @@ fieldset:disabled .btn {
 }
 
 .toast {
-  max-width: 350px;
+  width: 350px;
+  max-width: 100%;
   font-size: 0.875rem;
+  pointer-events: auto;
   background-color: rgba(255, 255, 255, 0.85);
   background-clip: padding-box;
   border: 1px solid rgba(0, 0, 0, 0.1);
   box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
-  opacity: 0;
   border-radius: 0.25rem;
 }
 
-.toast:not(:last-child) {
-  margin-bottom: 0.75rem;
+.toast:not(.showing):not(.show) {
+  opacity: 0;
 }
 
-.toast.showing {
-  opacity: 1;
+.toast.hide {
+  display: none;
 }
 
-.toast.show {
-  display: block;
-  opacity: 1;
+.toast-container {
+  width: -webkit-max-content;
+  width: -moz-max-content;
+  width: max-content;
+  max-width: 100%;
+  pointer-events: none;
 }
 
-.toast.hide {
-  display: none;
+.toast-container > :not(:last-child) {
+  margin-bottom: 0.75rem;
 }
 
 .toast-header {
@@ -5691,62 +5712,62 @@ fieldset:disabled .btn {
   border-style: solid;
 }
 
-.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
+.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^="top"] {
   padding: 0.4rem 0;
 }
 
-.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[x-placement^="top"] .tooltip-arrow {
+.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow {
   bottom: 0;
 }
 
-.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[x-placement^="top"] .tooltip-arrow::before {
-  top: 0;
+.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
+  top: -1px;
   border-width: 0.4rem 0.4rem 0;
   border-top-color: #000;
 }
 
-.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
+.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^="right"] {
   padding: 0 0.4rem;
 }
 
-.bs-tooltip-right .tooltip-arrow, .bs-tooltip-auto[x-placement^="right"] .tooltip-arrow {
+.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow {
   left: 0;
   width: 0.4rem;
   height: 0.8rem;
 }
 
-.bs-tooltip-right .tooltip-arrow::before, .bs-tooltip-auto[x-placement^="right"] .tooltip-arrow::before {
-  right: 0;
+.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
+  right: -1px;
   border-width: 0.4rem 0.4rem 0.4rem 0;
   border-right-color: #000;
 }
 
-.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
+.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^="bottom"] {
   padding: 0.4rem 0;
 }
 
-.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[x-placement^="bottom"] .tooltip-arrow {
+.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow {
   top: 0;
 }
 
-.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .tooltip-arrow::before {
-  bottom: 0;
+.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
+  bottom: -1px;
   border-width: 0 0.4rem 0.4rem;
   border-bottom-color: #000;
 }
 
-.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
+.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^="left"] {
   padding: 0 0.4rem;
 }
 
-.bs-tooltip-left .tooltip-arrow, .bs-tooltip-auto[x-placement^="left"] .tooltip-arrow {
+.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow {
   right: 0;
   width: 0.4rem;
   height: 0.8rem;
 }
 
-.bs-tooltip-left .tooltip-arrow::before, .bs-tooltip-auto[x-placement^="left"] .tooltip-arrow::before {
-  left: 0;
+.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
+  left: -1px;
   border-width: 0.4rem 0 0.4rem 0.4rem;
   border-left-color: #000;
 }
@@ -5763,7 +5784,7 @@ fieldset:disabled .btn {
 .popover {
   position: absolute;
   top: 0;
-  left: 0;
+  left: 0 /* rtl:ignore */;
   z-index: 1060;
   display: block;
   max-width: 276px;
@@ -5805,70 +5826,70 @@ fieldset:disabled .btn {
   border-style: solid;
 }
 
-.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
-  margin-bottom: 0.5rem;
+.bs-popover-top, .bs-popover-auto[data-popper-placement^="top"] {
+  margin-bottom: 0.5rem !important;
 }
 
-.bs-popover-top > .popover-arrow, .bs-popover-auto[x-placement^="top"] > .popover-arrow {
+.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow {
   bottom: calc(-0.5rem - 1px);
 }
 
-.bs-popover-top > .popover-arrow::before, .bs-popover-auto[x-placement^="top"] > .popover-arrow::before {
+.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before {
   bottom: 0;
   border-width: 0.5rem 0.5rem 0;
   border-top-color: rgba(0, 0, 0, 0.25);
 }
 
-.bs-popover-top > .popover-arrow::after, .bs-popover-auto[x-placement^="top"] > .popover-arrow::after {
+.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
   bottom: 1px;
   border-width: 0.5rem 0.5rem 0;
   border-top-color: #fff;
 }
 
-.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
-  margin-left: 0.5rem;
+.bs-popover-end, .bs-popover-auto[data-popper-placement^="right"] {
+  margin-left: 0.5rem !important;
 }
 
-.bs-popover-right > .popover-arrow, .bs-popover-auto[x-placement^="right"] > .popover-arrow {
+.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow {
   left: calc(-0.5rem - 1px);
   width: 0.5rem;
   height: 1rem;
   margin: 0.3rem 0;
 }
 
-.bs-popover-right > .popover-arrow::before, .bs-popover-auto[x-placement^="right"] > .popover-arrow::before {
+.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before {
   left: 0;
   border-width: 0.5rem 0.5rem 0.5rem 0;
   border-right-color: rgba(0, 0, 0, 0.25);
 }
 
-.bs-popover-right > .popover-arrow::after, .bs-popover-auto[x-placement^="right"] > .popover-arrow::after {
+.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after {
   left: 1px;
   border-width: 0.5rem 0.5rem 0.5rem 0;
   border-right-color: #fff;
 }
 
-.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
-  margin-top: 0.5rem;
+.bs-popover-bottom, .bs-popover-auto[data-popper-placement^="bottom"] {
+  margin-top: 0.5rem !important;
 }
 
-.bs-popover-bottom > .popover-arrow, .bs-popover-auto[x-placement^="bottom"] > .popover-arrow {
+.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow {
   top: calc(-0.5rem - 1px);
 }
 
-.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[x-placement^="bottom"] > .popover-arrow::before {
+.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before {
   top: 0;
   border-width: 0 0.5rem 0.5rem 0.5rem;
   border-bottom-color: rgba(0, 0, 0, 0.25);
 }
 
-.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[x-placement^="bottom"] > .popover-arrow::after {
+.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
   top: 1px;
   border-width: 0 0.5rem 0.5rem 0.5rem;
   border-bottom-color: #fff;
 }
 
-.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
+.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before {
   position: absolute;
   top: 0;
   left: 50%;
@@ -5879,24 +5900,24 @@ fieldset:disabled .btn {
   border-bottom: 1px solid #f0f0f0;
 }
 
-.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
-  margin-right: 0.5rem;
+.bs-popover-start, .bs-popover-auto[data-popper-placement^="left"] {
+  margin-right: 0.5rem !important;
 }
 
-.bs-popover-left > .popover-arrow, .bs-popover-auto[x-placement^="left"] > .popover-arrow {
+.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow {
   right: calc(-0.5rem - 1px);
   width: 0.5rem;
   height: 1rem;
   margin: 0.3rem 0;
 }
 
-.bs-popover-left > .popover-arrow::before, .bs-popover-auto[x-placement^="left"] > .popover-arrow::before {
+.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before {
   right: 0;
   border-width: 0.5rem 0 0.5rem 0.5rem;
   border-left-color: rgba(0, 0, 0, 0.25);
 }
 
-.bs-popover-left > .popover-arrow::after, .bs-popover-auto[x-placement^="left"] > .popover-arrow::after {
+.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after {
   right: 1px;
   border-width: 0.5rem 0 0.5rem 0.5rem;
   border-left-color: #fff;
@@ -5964,16 +5985,18 @@ fieldset:disabled .btn {
   display: block;
 }
 
-.carousel-item-next:not(.carousel-item-left),
-.active.carousel-item-right {
+/* rtl:begin:ignore */
+.carousel-item-next:not(.carousel-item-start),
+.active.carousel-item-end {
   transform: translateX(100%);
 }
 
-.carousel-item-prev:not(.carousel-item-right),
-.active.carousel-item-left {
+.carousel-item-prev:not(.carousel-item-end),
+.active.carousel-item-start {
   transform: translateX(-100%);
 }
 
+/* rtl:end:ignore */
 .carousel-fade .carousel-item {
   opacity: 0;
   transition-property: opacity;
@@ -5981,22 +6004,22 @@ fieldset:disabled .btn {
 }
 
 .carousel-fade .carousel-item.active,
-.carousel-fade .carousel-item-next.carousel-item-left,
-.carousel-fade .carousel-item-prev.carousel-item-right {
+.carousel-fade .carousel-item-next.carousel-item-start,
+.carousel-fade .carousel-item-prev.carousel-item-end {
   z-index: 1;
   opacity: 1;
 }
 
-.carousel-fade .active.carousel-item-left,
-.carousel-fade .active.carousel-item-right {
+.carousel-fade .active.carousel-item-start,
+.carousel-fade .active.carousel-item-end {
   z-index: 0;
   opacity: 0;
   transition: opacity 0s 0.6s;
 }
 
 @media (prefers-reduced-motion: reduce) {
-  .carousel-fade .active.carousel-item-left,
-  .carousel-fade .active.carousel-item-right {
+  .carousel-fade .active.carousel-item-start,
+  .carousel-fade .active.carousel-item-end {
     transition: none;
   }
 }
@@ -6051,6 +6074,14 @@ fieldset:disabled .btn {
   background-size: 100% 100%;
 }
 
+/* rtl:options: {
+  "autoRename": true,
+  "stringMap":[ {
+    "name"    : "prev-next",
+    "search"  : "prev",
+    "replace" : "next"
+  } ]
+} */
 .carousel-control-prev-icon {
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
 }
@@ -6126,13 +6157,13 @@ fieldset:disabled .btn {
 
 @-webkit-keyframes spinner-border {
   to {
-    transform: rotate(360deg);
+    transform: rotate(360deg) /* rtl:ignore */;
   }
 }
 
 @keyframes spinner-border {
   to {
-    transform: rotate(360deg);
+    transform: rotate(360deg) /* rtl:ignore */;
   }
 }
 
@@ -6425,11 +6456,11 @@ fieldset:disabled .btn {
   vertical-align: text-top !important;
 }
 
-.float-left {
+.float-start {
   float: left !important;
 }
 
-.float-right {
+.float-end {
   float: right !important;
 }
 
@@ -6554,32 +6585,40 @@ fieldset:disabled .btn {
   bottom: 100% !important;
 }
 
-.left-0 {
+.start-0 {
   left: 0 !important;
 }
 
-.left-50 {
+.start-50 {
   left: 50% !important;
 }
 
-.left-100 {
+.start-100 {
   left: 100% !important;
 }
 
-.right-0 {
+.end-0 {
   right: 0 !important;
 }
 
-.right-50 {
+.end-50 {
   right: 50% !important;
 }
 
-.right-100 {
+.end-100 {
   right: 100% !important;
 }
 
 .translate-middle {
-  transform: translateX(-50%) translateY(-50%) !important;
+  transform: translate(-50%, -50%) !important;
+}
+
+.translate-middle-x {
+  transform: translateX(-50%) !important;
+}
+
+.translate-middle-y {
+  transform: translateY(-50%) !important;
 }
 
 .border {
@@ -6598,11 +6637,11 @@ fieldset:disabled .btn {
   border-top: 0 !important;
 }
 
-.border-right {
+.border-end {
   border-right: 1px solid #dee2e6 !important;
 }
 
-.border-right-0 {
+.border-end-0 {
   border-right: 0 !important;
 }
 
@@ -6614,11 +6653,11 @@ fieldset:disabled .btn {
   border-bottom: 0 !important;
 }
 
-.border-left {
+.border-start {
   border-left: 1px solid #dee2e6 !important;
 }
 
-.border-left-0 {
+.border-start-0 {
   border-left: 0 !important;
 }
 
@@ -7068,31 +7107,31 @@ fieldset:disabled .btn {
   margin-top: auto !important;
 }
 
-.mr-0 {
+.me-0 {
   margin-right: 0 !important;
 }
 
-.mr-1 {
+.me-1 {
   margin-right: 0.25rem !important;
 }
 
-.mr-2 {
+.me-2 {
   margin-right: 0.5rem !important;
 }
 
-.mr-3 {
+.me-3 {
   margin-right: 1rem !important;
 }
 
-.mr-4 {
+.me-4 {
   margin-right: 1.5rem !important;
 }
 
-.mr-5 {
+.me-5 {
   margin-right: 3rem !important;
 }
 
-.mr-auto {
+.me-auto {
   margin-right: auto !important;
 }
 
@@ -7124,31 +7163,31 @@ fieldset:disabled .btn {
   margin-bottom: auto !important;
 }
 
-.ml-0 {
+.ms-0 {
   margin-left: 0 !important;
 }
 
-.ml-1 {
+.ms-1 {
   margin-left: 0.25rem !important;
 }
 
-.ml-2 {
+.ms-2 {
   margin-left: 0.5rem !important;
 }
 
-.ml-3 {
+.ms-3 {
   margin-left: 1rem !important;
 }
 
-.ml-4 {
+.ms-4 {
   margin-left: 1.5rem !important;
 }
 
-.ml-5 {
+.ms-5 {
   margin-left: 3rem !important;
 }
 
-.ml-auto {
+.ms-auto {
   margin-left: auto !important;
 }
 
@@ -7260,27 +7299,27 @@ fieldset:disabled .btn {
   padding-top: 3rem !important;
 }
 
-.pr-0 {
+.pe-0 {
   padding-right: 0 !important;
 }
 
-.pr-1 {
+.pe-1 {
   padding-right: 0.25rem !important;
 }
 
-.pr-2 {
+.pe-2 {
   padding-right: 0.5rem !important;
 }
 
-.pr-3 {
+.pe-3 {
   padding-right: 1rem !important;
 }
 
-.pr-4 {
+.pe-4 {
   padding-right: 1.5rem !important;
 }
 
-.pr-5 {
+.pe-5 {
   padding-right: 3rem !important;
 }
 
@@ -7308,27 +7347,27 @@ fieldset:disabled .btn {
   padding-bottom: 3rem !important;
 }
 
-.pl-0 {
+.ps-0 {
   padding-left: 0 !important;
 }
 
-.pl-1 {
+.ps-1 {
   padding-left: 0.25rem !important;
 }
 
-.pl-2 {
+.ps-2 {
   padding-left: 0.5rem !important;
 }
 
-.pl-3 {
+.ps-3 {
   padding-left: 1rem !important;
 }
 
-.pl-4 {
+.ps-4 {
   padding-left: 1.5rem !important;
 }
 
-.pl-5 {
+.ps-5 {
   padding-left: 3rem !important;
 }
 
@@ -7396,11 +7435,11 @@ fieldset:disabled .btn {
   text-transform: capitalize !important;
 }
 
-.text-left {
+.text-start {
   text-align: left !important;
 }
 
-.text-right {
+.text-end {
   text-align: right !important;
 }
 
@@ -7548,11 +7587,13 @@ fieldset:disabled .btn {
   text-decoration: line-through !important;
 }
 
+/* rtl:begin:remove */
 .text-break {
   word-wrap: break-word !important;
   word-break: break-word !important;
 }
 
+/* rtl:end:remove */
 .font-monospace {
   font-family: var(--bs-font-monospace) !important;
 }
@@ -7619,7 +7660,7 @@ fieldset:disabled .btn {
   border-top-right-radius: 0.25rem !important;
 }
 
-.rounded-right {
+.rounded-end {
   border-top-right-radius: 0.25rem !important;
   border-bottom-right-radius: 0.25rem !important;
 }
@@ -7629,7 +7670,7 @@ fieldset:disabled .btn {
   border-bottom-left-radius: 0.25rem !important;
 }
 
-.rounded-left {
+.rounded-start {
   border-bottom-left-radius: 0.25rem !important;
   border-top-left-radius: 0.25rem !important;
 }
@@ -7643,10 +7684,10 @@ fieldset:disabled .btn {
 }
 
 @media (min-width: 576px) {
-  .float-sm-left {
+  .float-sm-start {
     float: left !important;
   }
-  .float-sm-right {
+  .float-sm-end {
     float: right !important;
   }
   .float-sm-none {
@@ -7927,25 +7968,25 @@ fieldset:disabled .btn {
   .mt-sm-auto {
     margin-top: auto !important;
   }
-  .mr-sm-0 {
+  .me-sm-0 {
     margin-right: 0 !important;
   }
-  .mr-sm-1 {
+  .me-sm-1 {
     margin-right: 0.25rem !important;
   }
-  .mr-sm-2 {
+  .me-sm-2 {
     margin-right: 0.5rem !important;
   }
-  .mr-sm-3 {
+  .me-sm-3 {
     margin-right: 1rem !important;
   }
-  .mr-sm-4 {
+  .me-sm-4 {
     margin-right: 1.5rem !important;
   }
-  .mr-sm-5 {
+  .me-sm-5 {
     margin-right: 3rem !important;
   }
-  .mr-sm-auto {
+  .me-sm-auto {
     margin-right: auto !important;
   }
   .mb-sm-0 {
@@ -7969,25 +8010,25 @@ fieldset:disabled .btn {
   .mb-sm-auto {
     margin-bottom: auto !important;
   }
-  .ml-sm-0 {
+  .ms-sm-0 {
     margin-left: 0 !important;
   }
-  .ml-sm-1 {
+  .ms-sm-1 {
     margin-left: 0.25rem !important;
   }
-  .ml-sm-2 {
+  .ms-sm-2 {
     margin-left: 0.5rem !important;
   }
-  .ml-sm-3 {
+  .ms-sm-3 {
     margin-left: 1rem !important;
   }
-  .ml-sm-4 {
+  .ms-sm-4 {
     margin-left: 1.5rem !important;
   }
-  .ml-sm-5 {
+  .ms-sm-5 {
     margin-left: 3rem !important;
   }
-  .ml-sm-auto {
+  .ms-sm-auto {
     margin-left: auto !important;
   }
   .p-sm-0 {
@@ -8074,22 +8115,22 @@ fieldset:disabled .btn {
   .pt-sm-5 {
     padding-top: 3rem !important;
   }
-  .pr-sm-0 {
+  .pe-sm-0 {
     padding-right: 0 !important;
   }
-  .pr-sm-1 {
+  .pe-sm-1 {
     padding-right: 0.25rem !important;
   }
-  .pr-sm-2 {
+  .pe-sm-2 {
     padding-right: 0.5rem !important;
   }
-  .pr-sm-3 {
+  .pe-sm-3 {
     padding-right: 1rem !important;
   }
-  .pr-sm-4 {
+  .pe-sm-4 {
     padding-right: 1.5rem !important;
   }
-  .pr-sm-5 {
+  .pe-sm-5 {
     padding-right: 3rem !important;
   }
   .pb-sm-0 {
@@ -8110,28 +8151,28 @@ fieldset:disabled .btn {
   .pb-sm-5 {
     padding-bottom: 3rem !important;
   }
-  .pl-sm-0 {
+  .ps-sm-0 {
     padding-left: 0 !important;
   }
-  .pl-sm-1 {
+  .ps-sm-1 {
     padding-left: 0.25rem !important;
   }
-  .pl-sm-2 {
+  .ps-sm-2 {
     padding-left: 0.5rem !important;
   }
-  .pl-sm-3 {
+  .ps-sm-3 {
     padding-left: 1rem !important;
   }
-  .pl-sm-4 {
+  .ps-sm-4 {
     padding-left: 1.5rem !important;
   }
-  .pl-sm-5 {
+  .ps-sm-5 {
     padding-left: 3rem !important;
   }
-  .text-sm-left {
+  .text-sm-start {
     text-align: left !important;
   }
-  .text-sm-right {
+  .text-sm-end {
     text-align: right !important;
   }
   .text-sm-center {
@@ -8140,10 +8181,10 @@ fieldset:disabled .btn {
 }
 
 @media (min-width: 768px) {
-  .float-md-left {
+  .float-md-start {
     float: left !important;
   }
-  .float-md-right {
+  .float-md-end {
     float: right !important;
   }
   .float-md-none {
@@ -8424,25 +8465,25 @@ fieldset:disabled .btn {
   .mt-md-auto {
     margin-top: auto !important;
   }
-  .mr-md-0 {
+  .me-md-0 {
     margin-right: 0 !important;
   }
-  .mr-md-1 {
+  .me-md-1 {
     margin-right: 0.25rem !important;
   }
-  .mr-md-2 {
+  .me-md-2 {
     margin-right: 0.5rem !important;
   }
-  .mr-md-3 {
+  .me-md-3 {
     margin-right: 1rem !important;
   }
-  .mr-md-4 {
+  .me-md-4 {
     margin-right: 1.5rem !important;
   }
-  .mr-md-5 {
+  .me-md-5 {
     margin-right: 3rem !important;
   }
-  .mr-md-auto {
+  .me-md-auto {
     margin-right: auto !important;
   }
   .mb-md-0 {
@@ -8466,25 +8507,25 @@ fieldset:disabled .btn {
   .mb-md-auto {
     margin-bottom: auto !important;
   }
-  .ml-md-0 {
+  .ms-md-0 {
     margin-left: 0 !important;
   }
-  .ml-md-1 {
+  .ms-md-1 {
     margin-left: 0.25rem !important;
   }
-  .ml-md-2 {
+  .ms-md-2 {
     margin-left: 0.5rem !important;
   }
-  .ml-md-3 {
+  .ms-md-3 {
     margin-left: 1rem !important;
   }
-  .ml-md-4 {
+  .ms-md-4 {
     margin-left: 1.5rem !important;
   }
-  .ml-md-5 {
+  .ms-md-5 {
     margin-left: 3rem !important;
   }
-  .ml-md-auto {
+  .ms-md-auto {
     margin-left: auto !important;
   }
   .p-md-0 {
@@ -8571,22 +8612,22 @@ fieldset:disabled .btn {
   .pt-md-5 {
     padding-top: 3rem !important;
   }
-  .pr-md-0 {
+  .pe-md-0 {
     padding-right: 0 !important;
   }
-  .pr-md-1 {
+  .pe-md-1 {
     padding-right: 0.25rem !important;
   }
-  .pr-md-2 {
+  .pe-md-2 {
     padding-right: 0.5rem !important;
   }
-  .pr-md-3 {
+  .pe-md-3 {
     padding-right: 1rem !important;
   }
-  .pr-md-4 {
+  .pe-md-4 {
     padding-right: 1.5rem !important;
   }
-  .pr-md-5 {
+  .pe-md-5 {
     padding-right: 3rem !important;
   }
   .pb-md-0 {
@@ -8607,28 +8648,28 @@ fieldset:disabled .btn {
   .pb-md-5 {
     padding-bottom: 3rem !important;
   }
-  .pl-md-0 {
+  .ps-md-0 {
     padding-left: 0 !important;
   }
-  .pl-md-1 {
+  .ps-md-1 {
     padding-left: 0.25rem !important;
   }
-  .pl-md-2 {
+  .ps-md-2 {
     padding-left: 0.5rem !important;
   }
-  .pl-md-3 {
+  .ps-md-3 {
     padding-left: 1rem !important;
   }
-  .pl-md-4 {
+  .ps-md-4 {
     padding-left: 1.5rem !important;
   }
-  .pl-md-5 {
+  .ps-md-5 {
     padding-left: 3rem !important;
   }
-  .text-md-left {
+  .text-md-start {
     text-align: left !important;
   }
-  .text-md-right {
+  .text-md-end {
     text-align: right !important;
   }
   .text-md-center {
@@ -8637,10 +8678,10 @@ fieldset:disabled .btn {
 }
 
 @media (min-width: 992px) {
-  .float-lg-left {
+  .float-lg-start {
     float: left !important;
   }
-  .float-lg-right {
+  .float-lg-end {
     float: right !important;
   }
   .float-lg-none {
@@ -8921,25 +8962,25 @@ fieldset:disabled .btn {
   .mt-lg-auto {
     margin-top: auto !important;
   }
-  .mr-lg-0 {
+  .me-lg-0 {
     margin-right: 0 !important;
   }
-  .mr-lg-1 {
+  .me-lg-1 {
     margin-right: 0.25rem !important;
   }
-  .mr-lg-2 {
+  .me-lg-2 {
     margin-right: 0.5rem !important;
   }
-  .mr-lg-3 {
+  .me-lg-3 {
     margin-right: 1rem !important;
   }
-  .mr-lg-4 {
+  .me-lg-4 {
     margin-right: 1.5rem !important;
   }
-  .mr-lg-5 {
+  .me-lg-5 {
     margin-right: 3rem !important;
   }
-  .mr-lg-auto {
+  .me-lg-auto {
     margin-right: auto !important;
   }
   .mb-lg-0 {
@@ -8963,25 +9004,25 @@ fieldset:disabled .btn {
   .mb-lg-auto {
     margin-bottom: auto !important;
   }
-  .ml-lg-0 {
+  .ms-lg-0 {
     margin-left: 0 !important;
   }
-  .ml-lg-1 {
+  .ms-lg-1 {
     margin-left: 0.25rem !important;
   }
-  .ml-lg-2 {
+  .ms-lg-2 {
     margin-left: 0.5rem !important;
   }
-  .ml-lg-3 {
+  .ms-lg-3 {
     margin-left: 1rem !important;
   }
-  .ml-lg-4 {
+  .ms-lg-4 {
     margin-left: 1.5rem !important;
   }
-  .ml-lg-5 {
+  .ms-lg-5 {
     margin-left: 3rem !important;
   }
-  .ml-lg-auto {
+  .ms-lg-auto {
     margin-left: auto !important;
   }
   .p-lg-0 {
@@ -9068,22 +9109,22 @@ fieldset:disabled .btn {
   .pt-lg-5 {
     padding-top: 3rem !important;
   }
-  .pr-lg-0 {
+  .pe-lg-0 {
     padding-right: 0 !important;
   }
-  .pr-lg-1 {
+  .pe-lg-1 {
     padding-right: 0.25rem !important;
   }
-  .pr-lg-2 {
+  .pe-lg-2 {
     padding-right: 0.5rem !important;
   }
-  .pr-lg-3 {
+  .pe-lg-3 {
     padding-right: 1rem !important;
   }
-  .pr-lg-4 {
+  .pe-lg-4 {
     padding-right: 1.5rem !important;
   }
-  .pr-lg-5 {
+  .pe-lg-5 {
     padding-right: 3rem !important;
   }
   .pb-lg-0 {
@@ -9104,28 +9145,28 @@ fieldset:disabled .btn {
   .pb-lg-5 {
     padding-bottom: 3rem !important;
   }
-  .pl-lg-0 {
+  .ps-lg-0 {
     padding-left: 0 !important;
   }
-  .pl-lg-1 {
+  .ps-lg-1 {
     padding-left: 0.25rem !important;
   }
-  .pl-lg-2 {
+  .ps-lg-2 {
     padding-left: 0.5rem !important;
   }
-  .pl-lg-3 {
+  .ps-lg-3 {
     padding-left: 1rem !important;
   }
-  .pl-lg-4 {
+  .ps-lg-4 {
     padding-left: 1.5rem !important;
   }
-  .pl-lg-5 {
+  .ps-lg-5 {
     padding-left: 3rem !important;
   }
-  .text-lg-left {
+  .text-lg-start {
     text-align: left !important;
   }
-  .text-lg-right {
+  .text-lg-end {
     text-align: right !important;
   }
   .text-lg-center {
@@ -9134,10 +9175,10 @@ fieldset:disabled .btn {
 }
 
 @media (min-width: 1200px) {
-  .float-xl-left {
+  .float-xl-start {
     float: left !important;
   }
-  .float-xl-right {
+  .float-xl-end {
     float: right !important;
   }
   .float-xl-none {
@@ -9418,25 +9459,25 @@ fieldset:disabled .btn {
   .mt-xl-auto {
     margin-top: auto !important;
   }
-  .mr-xl-0 {
+  .me-xl-0 {
     margin-right: 0 !important;
   }
-  .mr-xl-1 {
+  .me-xl-1 {
     margin-right: 0.25rem !important;
   }
-  .mr-xl-2 {
+  .me-xl-2 {
     margin-right: 0.5rem !important;
   }
-  .mr-xl-3 {
+  .me-xl-3 {
     margin-right: 1rem !important;
   }
-  .mr-xl-4 {
+  .me-xl-4 {
     margin-right: 1.5rem !important;
   }
-  .mr-xl-5 {
+  .me-xl-5 {
     margin-right: 3rem !important;
   }
-  .mr-xl-auto {
+  .me-xl-auto {
     margin-right: auto !important;
   }
   .mb-xl-0 {
@@ -9460,25 +9501,25 @@ fieldset:disabled .btn {
   .mb-xl-auto {
     margin-bottom: auto !important;
   }
-  .ml-xl-0 {
+  .ms-xl-0 {
     margin-left: 0 !important;
   }
-  .ml-xl-1 {
+  .ms-xl-1 {
     margin-left: 0.25rem !important;
   }
-  .ml-xl-2 {
+  .ms-xl-2 {
     margin-left: 0.5rem !important;
   }
-  .ml-xl-3 {
+  .ms-xl-3 {
     margin-left: 1rem !important;
   }
-  .ml-xl-4 {
+  .ms-xl-4 {
     margin-left: 1.5rem !important;
   }
-  .ml-xl-5 {
+  .ms-xl-5 {
     margin-left: 3rem !important;
   }
-  .ml-xl-auto {
+  .ms-xl-auto {
     margin-left: auto !important;
   }
   .p-xl-0 {
@@ -9565,22 +9606,22 @@ fieldset:disabled .btn {
   .pt-xl-5 {
     padding-top: 3rem !important;
   }
-  .pr-xl-0 {
+  .pe-xl-0 {
     padding-right: 0 !important;
   }
-  .pr-xl-1 {
+  .pe-xl-1 {
     padding-right: 0.25rem !important;
   }
-  .pr-xl-2 {
+  .pe-xl-2 {
     padding-right: 0.5rem !important;
   }
-  .pr-xl-3 {
+  .pe-xl-3 {
     padding-right: 1rem !important;
   }
-  .pr-xl-4 {
+  .pe-xl-4 {
     padding-right: 1.5rem !important;
   }
-  .pr-xl-5 {
+  .pe-xl-5 {
     padding-right: 3rem !important;
   }
   .pb-xl-0 {
@@ -9601,28 +9642,28 @@ fieldset:disabled .btn {
   .pb-xl-5 {
     padding-bottom: 3rem !important;
   }
-  .pl-xl-0 {
+  .ps-xl-0 {
     padding-left: 0 !important;
   }
-  .pl-xl-1 {
+  .ps-xl-1 {
     padding-left: 0.25rem !important;
   }
-  .pl-xl-2 {
+  .ps-xl-2 {
     padding-left: 0.5rem !important;
   }
-  .pl-xl-3 {
+  .ps-xl-3 {
     padding-left: 1rem !important;
   }
-  .pl-xl-4 {
+  .ps-xl-4 {
     padding-left: 1.5rem !important;
   }
-  .pl-xl-5 {
+  .ps-xl-5 {
     padding-left: 3rem !important;
   }
-  .text-xl-left {
+  .text-xl-start {
     text-align: left !important;
   }
-  .text-xl-right {
+  .text-xl-end {
     text-align: right !important;
   }
   .text-xl-center {
@@ -9631,10 +9672,10 @@ fieldset:disabled .btn {
 }
 
 @media (min-width: 1400px) {
-  .float-xxl-left {
+  .float-xxl-start {
     float: left !important;
   }
-  .float-xxl-right {
+  .float-xxl-end {
     float: right !important;
   }
   .float-xxl-none {
@@ -9915,25 +9956,25 @@ fieldset:disabled .btn {
   .mt-xxl-auto {
     margin-top: auto !important;
   }
-  .mr-xxl-0 {
+  .me-xxl-0 {
     margin-right: 0 !important;
   }
-  .mr-xxl-1 {
+  .me-xxl-1 {
     margin-right: 0.25rem !important;
   }
-  .mr-xxl-2 {
+  .me-xxl-2 {
     margin-right: 0.5rem !important;
   }
-  .mr-xxl-3 {
+  .me-xxl-3 {
     margin-right: 1rem !important;
   }
-  .mr-xxl-4 {
+  .me-xxl-4 {
     margin-right: 1.5rem !important;
   }
-  .mr-xxl-5 {
+  .me-xxl-5 {
     margin-right: 3rem !important;
   }
-  .mr-xxl-auto {
+  .me-xxl-auto {
     margin-right: auto !important;
   }
   .mb-xxl-0 {
@@ -9957,25 +9998,25 @@ fieldset:disabled .btn {
   .mb-xxl-auto {
     margin-bottom: auto !important;
   }
-  .ml-xxl-0 {
+  .ms-xxl-0 {
     margin-left: 0 !important;
   }
-  .ml-xxl-1 {
+  .ms-xxl-1 {
     margin-left: 0.25rem !important;
   }
-  .ml-xxl-2 {
+  .ms-xxl-2 {
     margin-left: 0.5rem !important;
   }
-  .ml-xxl-3 {
+  .ms-xxl-3 {
     margin-left: 1rem !important;
   }
-  .ml-xxl-4 {
+  .ms-xxl-4 {
     margin-left: 1.5rem !important;
   }
-  .ml-xxl-5 {
+  .ms-xxl-5 {
     margin-left: 3rem !important;
   }
-  .ml-xxl-auto {
+  .ms-xxl-auto {
     margin-left: auto !important;
   }
   .p-xxl-0 {
@@ -10062,22 +10103,22 @@ fieldset:disabled .btn {
   .pt-xxl-5 {
     padding-top: 3rem !important;
   }
-  .pr-xxl-0 {
+  .pe-xxl-0 {
     padding-right: 0 !important;
   }
-  .pr-xxl-1 {
+  .pe-xxl-1 {
     padding-right: 0.25rem !important;
   }
-  .pr-xxl-2 {
+  .pe-xxl-2 {
     padding-right: 0.5rem !important;
   }
-  .pr-xxl-3 {
+  .pe-xxl-3 {
     padding-right: 1rem !important;
   }
-  .pr-xxl-4 {
+  .pe-xxl-4 {
     padding-right: 1.5rem !important;
   }
-  .pr-xxl-5 {
+  .pe-xxl-5 {
     padding-right: 3rem !important;
   }
   .pb-xxl-0 {
@@ -10098,28 +10139,28 @@ fieldset:disabled .btn {
   .pb-xxl-5 {
     padding-bottom: 3rem !important;
   }
-  .pl-xxl-0 {
+  .ps-xxl-0 {
     padding-left: 0 !important;
   }
-  .pl-xxl-1 {
+  .ps-xxl-1 {
     padding-left: 0.25rem !important;
   }
-  .pl-xxl-2 {
+  .ps-xxl-2 {
     padding-left: 0.5rem !important;
   }
-  .pl-xxl-3 {
+  .ps-xxl-3 {
     padding-left: 1rem !important;
   }
-  .pl-xxl-4 {
+  .ps-xxl-4 {
     padding-left: 1.5rem !important;
   }
-  .pl-xxl-5 {
+  .ps-xxl-5 {
     padding-left: 3rem !important;
   }
-  .text-xxl-left {
+  .text-xxl-start {
     text-align: left !important;
   }
-  .text-xxl-right {
+  .text-xxl-end {
     text-align: right !important;
   }
   .text-xxl-center {
@@ -10791,7 +10832,7 @@ tobago-focus {
 tobago-footer {
   display: block;
   background-color: #fff;
-  padding: 0.5rem 0.75rem;
+  padding: 0.5rem 0.375rem;
   box-shadow: 0 0 5px 5px rgba(0, 0, 0, 0.1);
 }
 
diff --git a/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.css.map b/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.css.map
index 46c9bd3..cf4acc9 100644
--- a/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.css.map
+++ b/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.css.map
@@ -1 +1 @@
-{"version":3,"sources":["tobago.css","../../scss/tobago-theme.scss","../../node_modules/bootstrap/scss/bootstrap.scss","../../node_modules/bootstrap/scss/_root.scss","../../node_modules/bootstrap/scss/_reboot.scss","../../node_modules/bootstrap/scss/_variables.scss","../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../node_modules/bootstrap/scss/_functions.scss","../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../node_modules/bootstrap/scss/_type.scss","../../nod [...]
\ No newline at end of file
+{"version":3,"sources":["tobago.css","../../scss/tobago-theme.scss","../../node_modules/bootstrap/scss/bootstrap.scss","../../node_modules/bootstrap/scss/_root.scss","../../node_modules/bootstrap/scss/_reboot.scss","../../node_modules/bootstrap/scss/_variables.scss","../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../node_modules/bootstrap/scss/_functions.scss","../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../node_modules/bootstrap/scss/_type.scss","../../nod [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.min.css b/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.min.css
index 7278763..60f63f6 100644
--- a/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.min.css
+++ b/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto, [...]
+@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto, [...]
 /*# sourceMappingURL=tobago.min.css.map */
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.min.css.map b/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.min.css.map
index 6279b77..c7da635 100644
--- a/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.min.css.map
+++ b/tobago-theme/tobago-theme-standard/npm/dist/css/tobago.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../node_modules/bootstrap/scss/_root.scss","../../node_modules/bootstrap/scss/_reboot.scss","dist/css/tobago.css","../../node_modules/bootstrap/scss/vendor/_rfs.scss","tobago.css","../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../node_modules/bootstrap/scss/_type.scss","../../node_modules/bootstrap/scss/mixins/_lists.scss","../../node_modules/bootstrap/scss/_images.scss","../../node_modules/bootstrap/scss/mixins/_image.scss","../../node_mod [...]
\ No newline at end of file
+{"version":3,"sources":["../../node_modules/bootstrap/scss/_root.scss","../../node_modules/bootstrap/scss/_reboot.scss","dist/css/tobago.css","../../node_modules/bootstrap/scss/vendor/_rfs.scss","tobago.css","../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../node_modules/bootstrap/scss/_type.scss","../../node_modules/bootstrap/scss/mixins/_lists.scss","../../node_modules/bootstrap/scss/_images.scss","../../node_modules/bootstrap/scss/mixins/_image.scss","../../node_mod [...]
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/npm/package-lock.json b/tobago-theme/tobago-theme-standard/npm/package-lock.json
index 1c9ce8b..d2af2ce 100644
--- a/tobago-theme/tobago-theme-standard/npm/package-lock.json
+++ b/tobago-theme/tobago-theme-standard/npm/package-lock.json
@@ -1274,9 +1274,9 @@
       "dev": true
     },
     "bootstrap": {
-      "version": "5.0.0-alpha3",
-      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.0.0-alpha3.tgz",
-      "integrity": "sha512-ghwrMFNzqOwfB0nJ1iYbkERd+EK1PblUl7rEEynY35jD0TUlSY6yrjG2M42qI++NhAUBEqGcjmmHkMGs3QyNHA==",
+      "version": "5.0.0-beta1",
+      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.0.0-beta1.tgz",
+      "integrity": "sha512-UrHApw/WRmT7l2rlDdn5iXr7Jps/LlMZtJlLn9G41aGDfss48hyDeYyHtX1C6NHKVcmdUarGG+ve0LZB5iHyTQ==",
       "dev": true
     },
     "brace-expansion": {
diff --git a/tobago-theme/tobago-theme-standard/npm/package.json b/tobago-theme/tobago-theme-standard/npm/package.json
index 8d9d10c..475fcb9 100644
--- a/tobago-theme/tobago-theme-standard/npm/package.json
+++ b/tobago-theme/tobago-theme-standard/npm/package.json
@@ -58,7 +58,7 @@
     "ajv": "^6.12.6",
     "ajv-keywords": "^3.5.2",
     "autoprefixer": "^9.8.6",
-    "bootstrap": "5.0.0-alpha3",
+    "bootstrap": "5.0.0-beta1",
     "clean-css-cli": "^4.3.0",
     "eslint": "^7.13.0",
     "eslint-plugin-compat": "^3.8.0",