diff --git a/.gitignore b/.gitignore
index fa82ec1d93b..e2c5b7bbd01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -373,14 +373,6 @@ src/**/wwwroot/**/uploader
# npm
**/package-lock.json
-# sass
-**/BootstrapBlazor/wwwroot/css/animate.min.css
-**/BootstrapBlazor/wwwroot/css/bootstrapblazor.min.css
-**/BootstrapBlazor/wwwroot/css/bootstrap.min.css
-**/BootstrapBlazor/wwwroot/css/bootstrap.rtl.min.css
-**/BootstrapBlazor/wwwroot/css/sweetalert2.css
-**/BootstrapBlazor/wwwroot/css/motronic.min.css
-**/BootstrapBlazor/wwwroot/css/nano.min.css
-
# Bootstrap
**/BootstrapBlazor/wwwroot/js/bootstrap.blazor.bundle.min.js
+**/BootstrapBlazor/wwwroot/css/bootstrapblazor.min.css
diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj
index 39c6bf406a0..02b9cf1ada6 100644
--- a/src/BootstrapBlazor/BootstrapBlazor.csproj
+++ b/src/BootstrapBlazor/BootstrapBlazor.csproj
@@ -10,16 +10,18 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/BootstrapBlazor/Components/ColorPicker/ColorPicker.razor.js b/src/BootstrapBlazor/Components/ColorPicker/ColorPicker.razor.js
index 9289c64d96b..90437241425 100644
--- a/src/BootstrapBlazor/Components/ColorPicker/ColorPicker.razor.js
+++ b/src/BootstrapBlazor/Components/ColorPicker/ColorPicker.razor.js
@@ -25,7 +25,7 @@ const getOrCreatePickr = async (id, picker, options) => {
const { isSupportOpacity } = options;
if (isSupportOpacity === true) {
- await addLink("./_content/BootstrapBlazor/css/nano.min.css");
+ await addLink("./_content/BootstrapBlazor/lib/pickr/nano.min.css");
const { invoke, pickr } = picker;
if (pickr) {
diff --git a/src/BootstrapBlazor/Directory.Build.targets b/src/BootstrapBlazor/Directory.Build.targets
index 8133b919089..d6f187ae6d9 100644
--- a/src/BootstrapBlazor/Directory.Build.targets
+++ b/src/BootstrapBlazor/Directory.Build.targets
@@ -3,22 +3,17 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
+ $(MSBuildThisFileDirectory)wwwroot/core/bootstrap/js/bootstrap.bundle.min.js
+ $(MSBuildThisFileDirectory)wwwroot/js/bootstrap.blazor.bundle.min.js
+
-
-
+
+
+
diff --git a/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css b/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css
index 5dee3a49295..b810310a384 100644
--- a/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css
+++ b/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.min.css
@@ -1,4 +1,4 @@
-@import url('bootstrap.min.css');
+@import url('../core/bootstrap/css/bootstrap.min.css');
@import url('bootstrapblazor.min.css');
-@import url('animate.min.css');
-@import url('sweetalert2.css');
+@import url('../lib/animate/animate.min.css');
+@import url('../lib/swal/sweetalert2.min.css');
diff --git a/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.rtl.min.css b/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.rtl.min.css
index 7385ba9f724..b29bc12df10 100644
--- a/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.rtl.min.css
+++ b/src/BootstrapBlazor/wwwroot/css/bootstrap.blazor.bundle.rtl.min.css
@@ -1,5 +1,4 @@
-@import url('bootstrap.rtl.min.css');
+@import url('../core/bootstrap/css/bootstrap.rtl.min.css');
@import url('bootstrapblazor.min.css');
-@import url('rtl.css');
-@import url('animate.min.css');
-@import url('sweetalert2.css');
+@import url('../lib/animate/animate.min.css');
+@import url('../lib/swal/sweetalert2.min.css');
diff --git a/src/BootstrapBlazor/wwwroot/src/css/motronic.css b/src/BootstrapBlazor/wwwroot/css/motronic.min.css
similarity index 100%
rename from src/BootstrapBlazor/wwwroot/src/css/motronic.css
rename to src/BootstrapBlazor/wwwroot/css/motronic.min.css
diff --git a/src/BootstrapBlazor/wwwroot/css/rtl.css b/src/BootstrapBlazor/wwwroot/css/rtl.css
deleted file mode 100644
index edae899072b..00000000000
--- a/src/BootstrapBlazor/wwwroot/css/rtl.css
+++ /dev/null
@@ -1,21 +0,0 @@
-[dir="rtl"] .card-collapse-bar:not([aria-expanded=true]) > .card-collapse-arrow {
- transform: rotate(180deg);
-}
-
-[dir="rtl"] .form-select-append {
- right: unset;
- left: 0;
-}
-
-[dir="rtl"] .select .clear-icon {
- right: unset;
- left: 0;
-}
-
-[dir="rtl"] .pagination .page-item:first-child .page-link > i {
- transform: rotate(180deg);
-}
-
-[dir="rtl"] .pagination .page-item:last-child .page-link > i {
- transform: rotate(180deg);
-}
diff --git a/src/BootstrapBlazor/wwwroot/scss/components.scss b/src/BootstrapBlazor/wwwroot/scss/components.scss
index 6bdf936067c..f95ddb9fe29 100644
--- a/src/BootstrapBlazor/wwwroot/scss/components.scss
+++ b/src/BootstrapBlazor/wwwroot/scss/components.scss
@@ -117,3 +117,25 @@
@use "../../Components/Waterfall/Waterfall.razor.scss";
@use "../../Components/Watermark/Watermark.razor.scss";
@use "./meilisearch.scss";
+
+[dir="rtl"] .card-collapse-bar:not([aria-expanded=true]) > .card-collapse-arrow {
+ transform: rotate(180deg);
+}
+
+[dir="rtl"] .form-select-append {
+ right: unset;
+ left: 0;
+}
+
+[dir="rtl"] .select .clear-icon {
+ right: unset;
+ left: 0;
+}
+
+[dir="rtl"] .pagination .page-item:first-child .page-link > i {
+ transform: rotate(180deg);
+}
+
+[dir="rtl"] .pagination .page-item:last-child .page-link > i {
+ transform: rotate(180deg);
+}