diff --git a/src/static/scripts/admin.js b/src/static/scripts/admin.js
index f3c41942..3f6bb1df 100644
--- a/src/static/scripts/admin.js
+++ b/src/static/scripts/admin.js
@@ -1,6 +1,6 @@
"use strict";
/* eslint-env es2017, browser */
-/* exported BASE_URL, _post */
+/* exported BASE_URL, _post _delete */
function getBaseUrl() {
// If the base URL is `https://vaultwarden.example.com/base/path/admin/`,
diff --git a/src/static/scripts/admin_users.js b/src/static/scripts/admin_users.js
index be30e105..99e39aab 100644
--- a/src/static/scripts/admin_users.js
+++ b/src/static/scripts/admin_users.js
@@ -1,6 +1,6 @@
"use strict";
/* eslint-env es2017, browser, jquery */
-/* global _post:readable, BASE_URL:readable, reload:readable, jdenticon:readable */
+/* global _post:readable, _delete:readable BASE_URL:readable, reload:readable, jdenticon:readable */
function deleteUser(event) {
event.preventDefault();
diff --git a/src/static/scripts/bootstrap.bundle.js b/src/static/scripts/bootstrap.bundle.js
index 91eea7e7..93cbd3fe 100644
--- a/src/static/scripts/bootstrap.bundle.js
+++ b/src/static/scripts/bootstrap.bundle.js
@@ -1,5 +1,5 @@
/*!
- * Bootstrap v5.3.7 (https://getbootstrap.com/)
+ * Bootstrap v5.3.8 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -647,7 +647,7 @@
* Constants
*/
- const VERSION = '5.3.7';
+ const VERSION = '5.3.8';
/**
* Class definition
@@ -3690,9 +3690,6 @@
this._element.setAttribute('aria-expanded', 'false');
Manipulator.removeDataAttribute(this._menu, 'popper');
EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
-
- // Explicitly return focus to the trigger element
- this._element.focus();
}
_getConfig(config) {
config = super._getConfig(config);
diff --git a/src/static/scripts/bootstrap.css b/src/static/scripts/bootstrap.css
index e9479ad9..b83f5079 100644
--- a/src/static/scripts/bootstrap.css
+++ b/src/static/scripts/bootstrap.css
@@ -1,6 +1,6 @@
@charset "UTF-8";
/*!
- * Bootstrap v5.3.7 (https://getbootstrap.com/)
+ * Bootstrap v5.3.8 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -547,6 +547,10 @@ legend + * {
-webkit-appearance: textfield;
outline-offset: -2px;
}
+[type=search]::-webkit-search-cancel-button {
+ cursor: pointer;
+ filter: grayscale(1);
+}
/* rtl:raw:
[type="tel"],
@@ -6208,6 +6212,7 @@ textarea.form-control-lg {
.spinner-grow,
.spinner-border {
display: inline-block;
+ flex-shrink: 0;
width: var(--bs-spinner-width);
height: var(--bs-spinner-height);
vertical-align: var(--bs-spinner-vertical-align);
diff --git a/src/static/scripts/datatables.css b/src/static/scripts/datatables.css
index 4d927abf..af6a9b1e 100644
--- a/src/static/scripts/datatables.css
+++ b/src/static/scripts/datatables.css
@@ -4,20 +4,21 @@
*
* To rebuild or modify this file with the latest versions of the included
* software please visit:
- * https://datatables.net/download/#bs5/dt-2.3.2
+ * https://datatables.net/download/#bs5/dt-2.3.5
*
* Included libraries:
- * DataTables 2.3.2
+ * DataTables 2.3.5
*/
:root {
--dt-row-selected: 13, 110, 253;
--dt-row-selected-text: 255, 255, 255;
- --dt-row-selected-link: 9, 10, 11;
+ --dt-row-selected-link: 228, 228, 228;
--dt-row-stripe: 0, 0, 0;
--dt-row-hover: 0, 0, 0;
--dt-column-ordering: 0, 0, 0;
--dt-header-align-items: center;
+ --dt-header-vertical-align: middle;
--dt-html-background: white;
}
:root.dark {
@@ -112,7 +113,7 @@ table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order,
table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order {
position: relative;
width: 12px;
- height: 20px;
+ height: 24px;
}
table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order:after, table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order:before, table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order:after, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:after, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:after,
table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order:before,
@@ -144,7 +145,8 @@ table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order:before,
table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:after {
opacity: 0.6;
}
-table.dataTable thead > tr > th.sorting_desc_disabled span.dt-column-order:after, table.dataTable thead > tr > th.sorting_asc_disabled span.dt-column-order:before,
+table.dataTable thead > tr > th.dt-orderable-none:not(.dt-ordering-asc, .dt-ordering-desc) span.dt-column-order:empty, table.dataTable thead > tr > th.sorting_desc_disabled span.dt-column-order:after, table.dataTable thead > tr > th.sorting_asc_disabled span.dt-column-order:before,
+table.dataTable thead > tr > td.dt-orderable-none:not(.dt-ordering-asc, .dt-ordering-desc) span.dt-column-order:empty,
table.dataTable thead > tr > td.sorting_desc_disabled span.dt-column-order:after,
table.dataTable thead > tr > td.sorting_asc_disabled span.dt-column-order:before {
display: none;
@@ -340,6 +342,7 @@ table.dataTable thead td,
table.dataTable tfoot th,
table.dataTable tfoot td {
text-align: left;
+ vertical-align: var(--dt-header-vertical-align);
}
table.dataTable thead th.dt-head-left,
table.dataTable thead td.dt-head-left,
@@ -422,10 +425,6 @@ table.dataTable tbody td.dt-body-nowrap {
white-space: nowrap;
}
-:root {
- --dt-header-align-items: flex-end;
-}
-
/*! Bootstrap 5 integration for DataTables
*
* ©2020 SpryMedia Ltd, all rights reserved.
@@ -453,7 +452,7 @@ table.table.dataTable > tbody > tr.selected > * {
color: rgb(var(--dt-row-selected-text));
}
table.table.dataTable > tbody > tr.selected a {
- color: rgb(9, 10, 11);
+ color: rgb(228, 228, 228);
color: rgb(var(--dt-row-selected-link));
}
table.table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) > * {
diff --git a/src/static/scripts/datatables.js b/src/static/scripts/datatables.js
index 0ba22347..961af0b4 100644
--- a/src/static/scripts/datatables.js
+++ b/src/static/scripts/datatables.js
@@ -4,13 +4,13 @@
*
* To rebuild or modify this file with the latest versions of the included
* software please visit:
- * https://datatables.net/download/#bs5/dt-2.3.2
+ * https://datatables.net/download/#bs5/dt-2.3.5
*
* Included libraries:
- * DataTables 2.3.2
+ * DataTables 2.3.5
*/
-/*! DataTables 2.3.2
+/*! DataTables 2.3.5
* © SpryMedia Ltd - datatables.net/license
*/
@@ -178,6 +178,9 @@
this.id = sId;
}
+ // Replacing an existing colgroup with our own. Not ideal, but a merge could take a lot of code
+ $this.children('colgroup').remove();
+
/* Create the settings object for this table and set some of the default parameters */
var oSettings = $.extend( true, {}, DataTable.models.oSettings, {
"sDestroyWidth": $this[0].style.width,
@@ -513,7 +516,7 @@
*
* @type string
*/
- builder: "bs5/dt-2.3.2",
+ builder: "bs5/dt-2.3.5",
/**
* Buttons. For use with the Buttons extension for DataTables. This is
@@ -743,7 +746,7 @@
*
* The extension options for ordering of data available here is complimentary
* to the default type based ordering that DataTables typically uses. It
- * allows much greater control over the the data that is being used to
+ * allows much greater control over the data that is being used to
* order a column, but is necessarily therefore more complex.
*
* This type of ordering is useful if you want to do ordering based on data
@@ -902,7 +905,7 @@
* `{type}-asc` and `{type}-desc` together. It is generally recommended
* that only `{type}-pre` is used, as this provides the optimal
* implementation in terms of speed, although the others are provided
- * for compatibility with existing Javascript sort functions.
+ * for compatibility with existing JavaScript sort functions.
*
* `{type}-pre`: Functions defined take a single parameter:
*
@@ -912,7 +915,7 @@
*
* * `{*}` Data to be sorted upon
*
- * `{type}-asc` and `{type}-desc`: Functions are typical Javascript sort
+ * `{type}-asc` and `{type}-desc`: Functions are typical JavaScript sort
* functions, taking two parameters:
*
* 1. `{*}` Data to compare to the second parameter
@@ -1136,7 +1139,7 @@
};
// Convert from a formatted number with characters other than `.` as the
- // decimal place, to a Javascript number
+ // decimal place, to a JavaScript number
var _numToDecimal = function ( num, decimalPoint ) {
// Cache created regular expressions for speed as this function is called often
if ( ! _re_dic[ decimalPoint ] ) {
@@ -1202,19 +1205,19 @@
var _pluck = function ( a, prop, prop2 ) {
var out = [];
- var i=0, ien=a.length;
+ var i=0, iLen=a.length;
// Could have the test in the loop for slightly smaller code, but speed
// is essential here
if ( prop2 !== undefined ) {
- for ( ; i