@coreui/coreui 5.0.0-beta.2 → 5.0.0-rc-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/dist/css/coreui-grid.css +2 -2
  4. package/dist/css/coreui-grid.css.map +1 -1
  5. package/dist/css/coreui-grid.min.css +2 -2
  6. package/dist/css/coreui-grid.min.css.map +1 -1
  7. package/dist/css/coreui-grid.rtl.css +2 -2
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +2 -2
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +2 -2
  12. package/dist/css/coreui-reboot.css.map +1 -1
  13. package/dist/css/coreui-reboot.min.css +2 -2
  14. package/dist/css/coreui-reboot.min.css.map +1 -1
  15. package/dist/css/coreui-reboot.rtl.css +3 -3
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +3 -3
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +2 -2
  20. package/dist/css/coreui-utilities.css.map +1 -1
  21. package/dist/css/coreui-utilities.min.css +2 -2
  22. package/dist/css/coreui-utilities.min.css.map +1 -1
  23. package/dist/css/coreui-utilities.rtl.css +10 -10
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +3 -3
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +32 -33
  28. package/dist/css/coreui.css.map +1 -1
  29. package/dist/css/coreui.min.css +3 -3
  30. package/dist/css/coreui.min.css.map +1 -1
  31. package/dist/css/coreui.rtl.css +49 -47
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +3 -3
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/js/bootstrap.bundle.js +6932 -0
  36. package/dist/js/bootstrap.bundle.js.map +1 -0
  37. package/dist/js/bootstrap.bundle.min.js +7 -0
  38. package/dist/js/bootstrap.bundle.min.js.map +1 -0
  39. package/dist/js/bootstrap.esm.js +5063 -0
  40. package/dist/js/bootstrap.esm.js.map +1 -0
  41. package/dist/js/bootstrap.esm.min.js +7 -0
  42. package/dist/js/bootstrap.esm.min.js.map +1 -0
  43. package/dist/js/bootstrap.js +5112 -0
  44. package/dist/js/bootstrap.js.map +1 -0
  45. package/dist/js/bootstrap.min.js +7 -0
  46. package/dist/js/bootstrap.min.js.map +1 -0
  47. package/dist/js/coreui.bundle.js +8 -10
  48. package/dist/js/coreui.bundle.js.map +1 -1
  49. package/dist/js/coreui.bundle.min.js +3 -3
  50. package/dist/js/coreui.bundle.min.js.map +1 -1
  51. package/dist/js/coreui.esm.js +8 -10
  52. package/dist/js/coreui.esm.js.map +1 -1
  53. package/dist/js/coreui.esm.min.js +3 -3
  54. package/dist/js/coreui.esm.min.js.map +1 -1
  55. package/dist/js/coreui.js +8 -10
  56. package/dist/js/coreui.js.map +1 -1
  57. package/dist/js/coreui.min.js +3 -3
  58. package/dist/js/coreui.min.js.map +1 -1
  59. package/js/dist/alert.js +2 -2
  60. package/js/dist/base-component.js +3 -3
  61. package/js/dist/base-component.js.map +1 -1
  62. package/js/dist/button.js +2 -2
  63. package/js/dist/carousel.js +2 -2
  64. package/js/dist/collapse.js +2 -2
  65. package/js/dist/dom/data.js +2 -2
  66. package/js/dist/dom/event-handler.js +2 -2
  67. package/js/dist/dom/manipulator.js +2 -2
  68. package/js/dist/dom/selector-engine.js +4 -4
  69. package/js/dist/dom/selector-engine.js.map +1 -1
  70. package/js/dist/dropdown.js +2 -2
  71. package/js/dist/modal.js +2 -2
  72. package/js/dist/modal.js.map +1 -1
  73. package/js/dist/navigation.js +2 -4
  74. package/js/dist/navigation.js.map +1 -1
  75. package/js/dist/offcanvas.js +2 -2
  76. package/js/dist/popover.js +2 -2
  77. package/js/dist/scrollspy.js +2 -2
  78. package/js/dist/scrollspy.js.map +1 -1
  79. package/js/dist/sidebar.js +2 -2
  80. package/js/dist/tab.js +2 -2
  81. package/js/dist/toast.js +2 -2
  82. package/js/dist/tooltip.js +2 -2
  83. package/js/dist/tooltip.js.map +1 -1
  84. package/js/dist/util/backdrop.js +2 -3
  85. package/js/dist/util/backdrop.js.map +1 -1
  86. package/js/dist/util/component-functions.js +2 -2
  87. package/js/dist/util/config.js +2 -2
  88. package/js/dist/util/focustrap.js +2 -3
  89. package/js/dist/util/focustrap.js.map +1 -1
  90. package/js/dist/util/index.js +2 -3
  91. package/js/dist/util/index.js.map +1 -1
  92. package/js/dist/util/sanitizer.js +5 -2
  93. package/js/dist/util/sanitizer.js.map +1 -1
  94. package/js/dist/util/scrollbar.js +2 -2
  95. package/js/dist/util/swipe.js +2 -2
  96. package/js/dist/util/template-factory.js +2 -2
  97. package/js/src/base-component.js +1 -1
  98. package/js/src/dom/selector-engine.js +2 -2
  99. package/js/src/modal.js +3 -1
  100. package/js/src/scrollspy.js +3 -1
  101. package/js/src/tooltip.js +3 -1
  102. package/js/src/util/backdrop.js +3 -1
  103. package/js/src/util/sanitizer.js +3 -0
  104. package/package.json +37 -29
  105. package/scss/_accordion.scss +13 -13
  106. package/scss/_buttons.scss +9 -0
  107. package/scss/_dropdown.scss +1 -1
  108. package/scss/_modal.scss +0 -1
  109. package/scss/_offcanvas.scss +0 -1
  110. package/scss/_reboot.scss +1 -1
  111. package/scss/_tables.scss +1 -1
  112. package/scss/_utilities.scss +8 -5
  113. package/scss/_variables.scss +22 -18
  114. package/scss/forms/_form-check.scss +1 -1
  115. package/scss/mixins/_banner.scss +2 -2
  116. package/scss/mixins/_forms.scss +12 -2
  117. package/scss/mixins/_grid.scss +1 -1
  118. package/scss/mixins/_reset-text.scss +1 -1
  119. package/scss/mixins/_utilities.scss +5 -2
  120. package/scss/sidebar/_sidebar-narrow.scss +8 -8
  121. package/scss/sidebar/_sidebar.scss +8 -6
  122. package/scss/themes/bootstrap/_variables.scss +2 -0
  123. package/scss/themes/bootstrap/bootstrap.rtl.scss +23 -0
  124. package/scss/themes/bootstrap/bootstrap.scss +20 -0
  125. package/scss/themes/bootstrap/mixins/_banner.scss +8 -0
package/js/src/tooltip.js CHANGED
@@ -12,7 +12,9 @@ import * as Popper from '@popperjs/core'
12
12
  import BaseComponent from './base-component.js'
13
13
  import EventHandler from './dom/event-handler.js'
14
14
  import Manipulator from './dom/manipulator.js'
15
- import { defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop } from './util/index.js'
15
+ import {
16
+ defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop
17
+ } from './util/index.js'
16
18
  import { DefaultAllowlist } from './util/sanitizer.js'
17
19
  import TemplateFactory from './util/template-factory.js'
18
20
 
@@ -10,7 +10,9 @@
10
10
 
11
11
  import EventHandler from '../dom/event-handler.js'
12
12
  import Config from './config.js'
13
- import { execute, executeAfterTransition, getElement, reflow } from './index.js'
13
+ import {
14
+ execute, executeAfterTransition, getElement, reflow
15
+ } from './index.js'
14
16
 
15
17
  /**
16
18
  * Constants
@@ -20,7 +20,10 @@ export const DefaultAllowlist = {
20
20
  br: [],
21
21
  col: [],
22
22
  code: [],
23
+ dd: [],
23
24
  div: [],
25
+ dl: [],
26
+ dt: [],
24
27
  em: [],
25
28
  hr: [],
26
29
  h1: [],
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@coreui/coreui",
3
3
  "description": "The most popular front-end framework for developing responsive, mobile-first projects on the web rewritten and maintained by the CoreUI Team",
4
- "version": "5.0.0-beta.2",
4
+ "version": "5.0.0-rc-2",
5
5
  "config": {
6
6
  "version_short": "5.0"
7
7
  },
@@ -19,28 +19,35 @@
19
19
  "scripts": {
20
20
  "start": "npm-run-all --parallel watch docs-serve",
21
21
  "bundlewatch": "bundlewatch --config .bundlewatch.config.json",
22
- "css": "npm-run-all css-compile css-prefix css-minify",
22
+ "css": "npm-run-all css-compile css-prefix css-rtl css-minify",
23
23
  "css-compile": "sass --style expanded --source-map --embed-sources --no-error-css scss/:dist/css/",
24
+ "css-rtl": "cross-env NODE_ENV=RTL postcss --config build/postcss.config.mjs --dir \"dist/css/themes/bootstrap/\" --ext \".rtl.css\" \"dist/css/themes/bootstrap/*.css\" \"!dist/css/themes/bootstrap/*.min.css\" \"!dist/css/themes/bootstrap/*.rtl.css\"",
24
25
  "css-lint": "npm-run-all --aggregate-output --continue-on-error --parallel css-lint-*",
25
26
  "css-lint-stylelint": "stylelint \"**/*.{css,scss}\" --cache --cache-location .cache/.stylelintcache",
26
27
  "css-lint-vars": "fusv scss/ docs/assets/scss/",
27
28
  "css-minify": "npm-run-all --aggregate-output --parallel css-minify-*",
28
- "css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*rtl*.css\"",
29
- "css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*rtl.css\" \"!dist/css/*.min.css\"",
29
+ "css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/**/*.css\" \"!dist/css/**/*.min.css\" \"!dist/css/**/*rtl*.css\"",
30
+ "css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/**/*rtl.css\" \"!dist/css/**/*.min.css\"",
30
31
  "css-prefix": "npm-run-all --aggregate-output --parallel css-prefix-*",
31
- "css-prefix-main": "postcss --config build/postcss.config.mjs --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"",
32
+ "css-prefix-main": "postcss --config build/postcss.config.mjs --replace \"dist/css/**/*.css\" \"!dist/css/**/*.rtl*.css\" \"!dist/css/**/*.min.css\"",
32
33
  "css-test": "jasmine --config=scss/tests/jasmine.js",
33
34
  "js": "npm-run-all js-compile js-minify",
34
35
  "js-compile": "npm-run-all --aggregate-output --parallel js-compile-*",
35
36
  "js-compile-standalone": "rollup --environment BUNDLE:false --config build/rollup.config.mjs --sourcemap",
36
37
  "js-compile-standalone-esm": "rollup --environment ESM:true,BUNDLE:false --config build/rollup.config.mjs --sourcemap",
38
+ "js-compile-standalone-bootstrap": "rollup --environment BOOTSTRAP:true,BUNDLE:false --config build/rollup.config.mjs --sourcemap",
39
+ "js-compile-standalone-bootstrap-esm": "rollup --environment ESM:true,BOOTSTRAP:true,BUNDLE:false --config build/rollup.config.mjs --sourcemap",
37
40
  "js-compile-bundle": "rollup --environment BUNDLE:true --config build/rollup.config.mjs --sourcemap",
41
+ "js-compile-bundle-bootstrap": "rollup --environment BOOTSTRAP:true,BUNDLE:true --config build/rollup.config.mjs --sourcemap",
38
42
  "js-compile-plugins": "node build/build-plugins.mjs",
39
43
  "js-lint": "eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives --ext .html,.js,.mjs,.md .",
40
44
  "js-minify": "npm-run-all --aggregate-output --parallel js-minify-*",
41
45
  "js-minify-standalone": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/coreui.js.map,includeSources,url=coreui.min.js.map\" --output dist/js/coreui.min.js dist/js/coreui.js",
42
46
  "js-minify-standalone-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/coreui.esm.js.map,includeSources,url=coreui.esm.min.js.map\" --output dist/js/coreui.esm.min.js dist/js/coreui.esm.js",
43
47
  "js-minify-bundle": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/coreui.bundle.js.map,includeSources,url=coreui.bundle.min.js.map\" --output dist/js/coreui.bundle.min.js dist/js/coreui.bundle.js",
48
+ "js-minify-standalone-bootstrap": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map\" --output dist/js/bootstrap.min.js dist/js/bootstrap.js",
49
+ "js-minify-standalone-bootstrap-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.esm.js.map,includeSources,url=bootstrap.esm.min.js.map\" --output dist/js/bootstrap.esm.min.js dist/js/bootstrap.esm.js",
50
+ "js-minify-bundle-bootstrap": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map\" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js",
44
51
  "js-test": "npm-run-all --aggregate-output --parallel js-test-karma js-test-jquery js-test-integration-*",
45
52
  "js-debug": "cross-env DEBUG=true npm run js-test-karma",
46
53
  "js-test-karma": "karma start js/tests/karma.conf.js",
@@ -93,32 +100,33 @@
93
100
  "@popperjs/core": "^2.11.8"
94
101
  },
95
102
  "devDependencies": {
96
- "@babel/cli": "^7.23.0",
97
- "@babel/core": "^7.23.2",
98
- "@babel/preset-env": "^7.23.2",
103
+ "@babel/cli": "^7.23.9",
104
+ "@babel/core": "^7.24.0",
105
+ "@babel/preset-env": "^7.24.0",
99
106
  "@popperjs/core": "^2.11.8",
100
107
  "@rollup/plugin-babel": "^6.0.4",
101
108
  "@rollup/plugin-commonjs": "^25.0.7",
102
109
  "@rollup/plugin-node-resolve": "^15.2.3",
103
110
  "@rollup/plugin-replace": "^5.0.5",
104
- "autoprefixer": "^10.4.16",
111
+ "autoprefixer": "^10.4.17",
112
+ "bootstrap": "^5.3.3",
105
113
  "bundlewatch": "^0.3.3",
106
- "clean-css-cli": "^5.6.2",
114
+ "clean-css-cli": "^5.6.3",
107
115
  "cross-env": "^7.0.3",
108
- "eslint": "^8.53.0",
109
- "eslint-config-xo": "^0.43.1",
110
- "eslint-plugin-html": "^7.1.0",
111
- "eslint-plugin-import": "^2.29.0",
116
+ "eslint": "^8.57.0",
117
+ "eslint-config-xo": "^0.44.0",
118
+ "eslint-plugin-html": "^8.0.0",
119
+ "eslint-plugin-import": "^2.29.1",
112
120
  "eslint-plugin-markdown": "^3.0.1",
113
- "eslint-plugin-unicorn": "^49.0.0",
121
+ "eslint-plugin-unicorn": "^51.0.1",
114
122
  "find-unused-sass-variables": "^5.0.0",
115
123
  "globby": "^11.1.0",
116
124
  "hammer-simulator": "0.0.1",
117
- "hugo-bin": "^0.116.3",
118
- "ip": "^2.0.0",
119
- "jasmine": "^4.6.0",
125
+ "hugo-bin": "^0.120.6",
126
+ "ip": "^2.0.1",
127
+ "jasmine": "^5.1.0",
120
128
  "jquery": "^3.7.1",
121
- "karma": "^6.4.2",
129
+ "karma": "^6.4.3",
122
130
  "karma-browserstack-launcher": "1.6.0",
123
131
  "karma-chrome-launcher": "^3.2.0",
124
132
  "karma-coverage-istanbul-reporter": "^3.0.3",
@@ -127,21 +135,21 @@
127
135
  "karma-jasmine": "^5.1.0",
128
136
  "karma-jasmine-html-reporter": "^2.1.0",
129
137
  "karma-rollup-preprocessor": "7.0.8",
130
- "lockfile-lint": "^4.12.1",
131
- "nodemon": "^3.0.1",
138
+ "lockfile-lint": "^4.13.2",
139
+ "nodemon": "^3.1.0",
132
140
  "npm-run-all": "^4.1.5",
133
- "postcss": "^8.4.31",
134
- "postcss-cli": "^10.1.0",
141
+ "postcss": "^8.4.35",
142
+ "postcss-cli": "^11.0.0",
135
143
  "postcss-combine-duplicated-selectors": "^10.0.3",
136
- "rollup": "^4.3.0",
144
+ "rollup": "^4.12.0",
137
145
  "rollup-plugin-istanbul": "^5.0.0",
138
146
  "rtlcss": "^4.1.1",
139
- "sass": "^1.69.5",
140
- "sass-true": "^7.0.0",
147
+ "sass": "^1.71.1",
148
+ "sass-true": "^7.0.1",
141
149
  "shelljs": "^0.8.5",
142
- "stylelint": "^15.11.0",
143
- "stylelint-config-twbs-bootstrap": "^11.0.1",
144
- "terser": "5.24.0",
150
+ "stylelint": "^16.2.1",
151
+ "stylelint-config-twbs-bootstrap": "^14.0.0",
152
+ "terser": "5.28.1",
145
153
  "vnu-jar": "23.4.11"
146
154
  },
147
155
  "files": [
@@ -20,7 +20,6 @@
20
20
  --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
21
21
  --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
22
22
  --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
23
- --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};
24
23
  --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
25
24
  --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
26
25
  --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
@@ -37,7 +36,7 @@
37
36
  padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);
38
37
  @include font-size($font-size-base);
39
38
  color: var(--#{$prefix}accordion-btn-color);
40
- text-align: left; // Reset button style
39
+ @include ltr-rtl("text-align", left); // Reset button style
41
40
  background-color: var(--#{$prefix}accordion-btn-bg);
42
41
  border: 0;
43
42
  @include border-radius(0);
@@ -60,7 +59,7 @@
60
59
  flex-shrink: 0;
61
60
  width: var(--#{$prefix}accordion-btn-icon-width);
62
61
  height: var(--#{$prefix}accordion-btn-icon-width);
63
- margin-left: auto;
62
+ @include ltr-rtl("margin-left", auto);
64
63
  content: "";
65
64
  background-image: var(--#{$prefix}accordion-btn-icon);
66
65
  background-repeat: no-repeat;
@@ -74,7 +73,6 @@
74
73
 
75
74
  &:focus {
76
75
  z-index: 3;
77
- border-color: var(--#{$prefix}accordion-btn-focus-border-color);
78
76
  outline: 0;
79
77
  box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
80
78
  }
@@ -92,7 +90,7 @@
92
90
  &:first-of-type {
93
91
  @include border-top-radius(var(--#{$prefix}accordion-border-radius));
94
92
 
95
- .accordion-button {
93
+ > .accordion-header .accordion-button {
96
94
  @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
97
95
  }
98
96
  }
@@ -105,13 +103,13 @@
105
103
  &:last-of-type {
106
104
  @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
107
105
 
108
- .accordion-button {
106
+ > .accordion-header .accordion-button {
109
107
  &.collapsed {
110
108
  @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
111
109
  }
112
110
  }
113
111
 
114
- .accordion-collapse {
112
+ > .accordion-collapse {
115
113
  @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
116
114
  }
117
115
  }
@@ -127,11 +125,7 @@
127
125
  // Remove borders and border-radius to keep accordion items edge-to-edge.
128
126
 
129
127
  .accordion-flush {
130
- .accordion-collapse {
131
- border-width: 0;
132
- }
133
-
134
- .accordion-item {
128
+ > .accordion-item {
135
129
  border-right: 0;
136
130
  border-left: 0;
137
131
  @include border-radius(0);
@@ -139,12 +133,18 @@
139
133
  &:first-child { border-top: 0; }
140
134
  &:last-child { border-bottom: 0; }
141
135
 
142
- .accordion-button {
136
+ // stylelint-disable selector-max-class
137
+ > .accordion-header .accordion-button {
143
138
  &,
144
139
  &.collapsed {
145
140
  @include border-radius(0);
146
141
  }
147
142
  }
143
+ // stylelint-enable selector-max-class
144
+
145
+ > .accordion-collapse {
146
+ @include border-radius(0);
147
+ }
148
148
  }
149
149
  }
150
150
 
@@ -100,6 +100,15 @@
100
100
  }
101
101
  }
102
102
 
103
+ .btn-check:checked:focus-visible + & {
104
+ // Avoid using mixin so we can pass custom focus shadow properly
105
+ @if $enable-shadows {
106
+ box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
107
+ } @else {
108
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
109
+ }
110
+ }
111
+
103
112
  &:disabled,
104
113
  &.disabled,
105
114
  fieldset:disabled & {
@@ -54,7 +54,7 @@
54
54
  margin: 0; // Override default margin of ul
55
55
  @include font-size(var(--#{$prefix}dropdown-font-size));
56
56
  color: var(--#{$prefix}dropdown-color);
57
- text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
57
+ @include ltr-rtl("text-align", left); // Ensures proper alignment if parent has it changed (e.g., modal footer)
58
58
  list-style: none;
59
59
  background-color: var(--#{$prefix}dropdown-bg);
60
60
  background-clip: padding-box;
package/scss/_modal.scss CHANGED
@@ -126,7 +126,6 @@
126
126
  display: flex;
127
127
  flex-shrink: 0;
128
128
  align-items: center;
129
- justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
130
129
  padding: var(--#{$prefix}modal-header-padding);
131
130
  border-bottom: var(--#{$prefix}modal-header-border-width) solid var(--#{$prefix}modal-header-border-color);
132
131
  @include border-top-radius(var(--#{$prefix}modal-inner-border-radius));
@@ -123,7 +123,6 @@
123
123
  .offcanvas-header {
124
124
  display: flex;
125
125
  align-items: center;
126
- justify-content: space-between;
127
126
  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
128
127
 
129
128
  .btn-close {
package/scss/_reboot.scss CHANGED
@@ -350,7 +350,7 @@ caption {
350
350
  padding-top: $table-cell-padding-y;
351
351
  padding-bottom: $table-cell-padding-y;
352
352
  color: var(--#{$prefix}table-caption-color, $table-caption-color);
353
- text-align: left;
353
+ @include ltr-rtl("text-align", left);
354
354
  }
355
355
 
356
356
  // 1. Removes font-weight bold by inheriting
package/scss/_tables.scss CHANGED
@@ -79,7 +79,7 @@
79
79
  //
80
80
  // When borders are added on all sides of the cells, the corners can render odd when
81
81
  // these borders do not have the same color or if they are semi-transparent.
82
- // Therefor we add top and border bottoms to the `tr`s and left and right borders
82
+ // Therefore we add top and border bottoms to the `tr`s and left and right borders
83
83
  // to the `td`s or `th`s
84
84
 
85
85
  .table-bordered {
@@ -109,21 +109,24 @@ $utilities: map-merge(
109
109
  "start": (
110
110
  property: left,
111
111
  class: start,
112
- values: $position-values
112
+ values: $position-values,
113
+ rtl: true
113
114
  ),
114
115
  "end": (
115
116
  property: right,
116
117
  class: end,
117
- values: $position-values
118
+ values: $position-values,
119
+ rtl: true
118
120
  ),
119
121
  "translate-middle": (
120
122
  property: transform,
121
123
  class: translate-middle,
122
124
  values: (
123
- null: translate(-50%, -50%),
124
- x: translateX(-50%),
125
+ null: ("ltr": translate(-50%, -50%), "rtl": translate(50%, -50%)),
126
+ x: ("ltr": translateX(-50%), "rtl": translateX(50%)),
125
127
  y: translateY(-50%),
126
- )
128
+ ),
129
+ rtl: true
127
130
  ),
128
131
  // scss-docs-end utils-position
129
132
  // scss-docs-start utils-borders
@@ -1456,7 +1456,9 @@ $accordion-transition: $btn-transition, border-radius .15s ea
1456
1456
  $accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default;
1457
1457
  $accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default;
1458
1458
 
1459
- $accordion-button-focus-border-color: $input-focus-border-color !default;
1459
+ // fusv-disable
1460
+ $accordion-button-focus-border-color: $input-focus-border-color !default; // Deprecated in v5.0.0
1461
+ // fusv-enable
1460
1462
  $accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;
1461
1463
 
1462
1464
  $accordion-icon-width: 1.25rem !default;
@@ -1465,8 +1467,8 @@ $accordion-icon-active-color: $primary-text-emphasis !default;
1465
1467
  $accordion-icon-transition: transform .2s ease-in-out !default;
1466
1468
  $accordion-icon-transform: rotate(-180deg) !default;
1467
1469
 
1468
- $accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
1469
- $accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
1470
+ $accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-color}' stroke-linecap='round' stroke-linejoin='round'><path d='M2 5L8 11L14 5'/></svg>") !default;
1471
+ $accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-active-color}' stroke-linecap='round' stroke-linejoin='round'><path d='M2 5L8 11L14 5'/></svg>") !default;
1470
1472
  // scss-docs-end accordion-variables
1471
1473
 
1472
1474
  // Tooltips
@@ -1896,21 +1898,21 @@ $sidebar-nav-link-icon-bullet-border-width: 1px !default;
1896
1898
  $sidebar-nav-link-icon-bullet-border-color: var(--#{$prefix}tertiary-color) !default;
1897
1899
  $sidebar-nav-link-icon-bullet-border-radius: 50rem !default;
1898
1900
 
1899
- $sidebar-nav-link-hover-color: var(--#{$prefix}emphasis-color) !default;
1900
- $sidebar-nav-link-hover-bg: var(--#{$prefix}tertiary-bg) !default;
1901
- $sidebar-nav-link-hover-icon-color: var(--#{$prefix}body-color) !default;
1902
- $sidebar-nav-link-hover-icon-bullet-bg: transparent !default;
1903
- $sidebar-nav-link-hover-icon-bullet-border-color: var(--#{$prefix}body-color) !default;
1904
-
1905
- $sidebar-nav-link-active-color: var(--#{$prefix}emphasis-color) !default;
1906
- $sidebar-nav-link-active-bg: var(--#{$prefix}tertiary-bg) !default;
1907
- $sidebar-nav-link-active-icon-color: var(--#{$prefix}primary) !default;
1908
- $sidebar-nav-link-active-icon-bullet-bg: transparent !default;
1909
- $sidebar-nav-link-active-icon-bullet-border-color: var(--#{$prefix}primary) !default;
1910
-
1911
- $sidebar-nav-link-disabled-color: var(--#{$prefix}tertiary-color) !default;
1912
- $sidebar-nav-link-disabled-icon-color: var(--#{$prefix}tertiary-color) !default;
1913
- $sidebar-nav-link-disabled-icon-bullet-bg: transparent !default;
1901
+ $sidebar-nav-link-hover-color: var(--#{$prefix}emphasis-color) !default;
1902
+ $sidebar-nav-link-hover-bg: var(--#{$prefix}tertiary-bg) !default;
1903
+ $sidebar-nav-link-hover-icon-color: var(--#{$prefix}body-color) !default;
1904
+ $sidebar-nav-link-hover-icon-bullet-bg: transparent !default;
1905
+ $sidebar-nav-link-hover-icon-bullet-border-color: var(--#{$prefix}body-color) !default;
1906
+
1907
+ $sidebar-nav-link-active-color: var(--#{$prefix}emphasis-color) !default;
1908
+ $sidebar-nav-link-active-bg: var(--#{$prefix}tertiary-bg) !default;
1909
+ $sidebar-nav-link-active-icon-color: var(--#{$prefix}emphasis-color) !default;
1910
+ $sidebar-nav-link-active-icon-bullet-bg: transparent !default;
1911
+ $sidebar-nav-link-active-icon-bullet-border-color: var(--#{$prefix}emphasis-color) !default;
1912
+
1913
+ $sidebar-nav-link-disabled-color: var(--#{$prefix}tertiary-color) !default;
1914
+ $sidebar-nav-link-disabled-icon-color: var(--#{$prefix}tertiary-color) !default;
1915
+ $sidebar-nav-link-disabled-icon-bullet-bg: transparent !default;
1914
1916
  $sidebar-nav-link-disabled-icon-bullet-border-color: var(--#{$prefix}tertiary-color) !default;
1915
1917
 
1916
1918
  $sidebar-nav-group-bg: transparent !default;
@@ -2019,3 +2021,5 @@ $kbd-bg: var(--#{$prefix}body-color) !default;
2019
2021
  $nested-kbd-font-weight: null !default; // Deprecated in v4.2.6, removing in v6
2020
2022
 
2021
2023
  $pre-color: null !default;
2024
+
2025
+ @import "variables-dark"; // TODO: can be removed safely in v6, only here to avoid breaking changes in v5
@@ -131,7 +131,7 @@
131
131
  @include ltr-rtl("margin-left", $form-switch-padding-start * -1);
132
132
  background-image: var(--#{$prefix}form-switch-bg);
133
133
  background-position: left center;
134
- @include border-radius($form-switch-border-radius);
134
+ @include border-radius($form-switch-border-radius, 0);
135
135
  @include transition($form-switch-transition);
136
136
 
137
137
  &:focus {
@@ -1,7 +1,7 @@
1
1
  @mixin bsBanner($file) {
2
2
  /*!
3
- * CoreUI #{$file} v5.0.0-beta.2 (https://coreui.io)
4
- * Copyright (c) 2023 creativeLabs Łukasz Holeczek
3
+ * CoreUI #{$file} v5.0.0-rc-2 (https://coreui.io)
4
+ * Copyright (c) 2024 creativeLabs Łukasz Holeczek
5
5
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
6
6
  */
7
7
  }
@@ -69,7 +69,12 @@
69
69
 
70
70
  &:focus {
71
71
  border-color: $border-color;
72
- box-shadow: $focus-box-shadow;
72
+ @if $enable-shadows {
73
+ @include box-shadow($input-box-shadow, $focus-box-shadow);
74
+ } @else {
75
+ // Avoid using mixin so we can pass custom focus shadow properly
76
+ box-shadow: $focus-box-shadow;
77
+ }
73
78
  }
74
79
  }
75
80
  }
@@ -100,7 +105,12 @@
100
105
 
101
106
  &:focus {
102
107
  border-color: $border-color;
103
- box-shadow: $focus-box-shadow;
108
+ @if $enable-shadows {
109
+ @include box-shadow($form-select-box-shadow, $focus-box-shadow);
110
+ } @else {
111
+ // Avoid using mixin so we can pass custom focus shadow properly
112
+ box-shadow: $focus-box-shadow;
113
+ }
104
114
  }
105
115
  }
106
116
  }
@@ -138,7 +138,7 @@
138
138
  }
139
139
  }
140
140
 
141
- // Start with `1` because `0` is and invalid value.
141
+ // Start with `1` because `0` is an invalid value.
142
142
  // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.
143
143
  @for $i from 1 through ($columns - 1) {
144
144
  .g-start#{$infix}-#{$i} {
@@ -4,7 +4,7 @@
4
4
  font-style: normal;
5
5
  font-weight: $font-weight-normal;
6
6
  line-height: $line-height-base;
7
- text-align: left; // Fallback for where `start` is not supported
7
+ @include ltr-rtl("text-align", left); // Fallback for where `start` is not supported
8
8
  text-align: start;
9
9
  text-decoration: none;
10
10
  text-shadow: none;
@@ -93,11 +93,14 @@
93
93
  }
94
94
  }
95
95
  @if $is-rtl == true {
96
- @include ltr-rtl($property, $value, null, null, if($enable-important-utilities, !important, null));
96
+ @if (type-of($value) == "map") {
97
+ @include ltr-rtl($property, map-get($value, "ltr"), null, map-get($value, "rtl"), if($enable-important-utilities, !important, null));
98
+ } @else {
99
+ @include ltr-rtl($property, $value, null, null, if($enable-important-utilities, !important, null));
100
+ }
97
101
  } @else {
98
102
  #{$property}: $value if($enable-important-utilities, !important, null);
99
103
  }
100
-
101
104
  }
102
105
  }
103
106
  }
@@ -3,11 +3,6 @@
3
3
  --#{$prefix}sidebar-narrow-width: #{$sidebar-narrow-width};
4
4
  // scss-docs-end sidebar-narrow-css-vars
5
5
 
6
- .sidebar-nav {
7
- --#{$prefix}sidebar-nav-link-padding-x: #{$sidebar-narrow-nav-link-padding-x};
8
- --#{$prefix}sidebar-nav-link-padding-y: #{$sidebar-narrow-nav-link-padding-y};
9
- }
10
-
11
6
  @include media-breakpoint-up($mobile-breakpoint) {
12
7
  flex: 0 0 var(--#{$prefix}sidebar-narrow-width);
13
8
  width: var(--#{$prefix}sidebar-narrow-width);
@@ -32,6 +27,11 @@
32
27
  padding-left: 0;
33
28
  }
34
29
 
30
+ .sidebar-nav {
31
+ --#{$prefix}sidebar-nav-link-padding-x: #{$sidebar-narrow-nav-link-padding-x};
32
+ --#{$prefix}sidebar-nav-link-padding-y: #{$sidebar-narrow-nav-link-padding-y};
33
+ }
34
+
35
35
  .nav-icon {
36
36
  flex: 0 0 calc(var(--#{$prefix}sidebar-narrow-width) - (var(--#{$prefix}sidebar-nav-padding-x) * 2) - (var(--#{$prefix}sidebar-nav-link-padding-x) * 2)); // stylelint-disable-line function-disallowed-list
37
37
  }
@@ -49,7 +49,7 @@
49
49
  opacity: 0;
50
50
  }
51
51
 
52
- .sidebar-toggler {
52
+ .sidebar-toggler::before {
53
53
  @include ltr-rtl("transform", rotate(-180deg), null, rotate(0deg));
54
54
  }
55
55
 
@@ -90,11 +90,11 @@
90
90
  &:hover {
91
91
  box-shadow: $box-shadow;
92
92
 
93
- .sidebar-toggler {
93
+ .sidebar-toggler::before {
94
94
  @include ltr-rtl("transform", rotate(-180deg), null, rotate(0deg));
95
95
  }
96
96
 
97
- &.sidebar-end .sidebar-toggler {
97
+ &.sidebar-end .sidebar-toggler::before {
98
98
  transform: rotate(0deg);
99
99
  }
100
100
  }
@@ -14,7 +14,6 @@
14
14
 
15
15
  position: relative;
16
16
  display: flex;
17
- // $sidebar-width is the width of the columns
18
17
  flex: 0 0 var(--#{$prefix}sidebar-width);
19
18
  flex-direction: column;
20
19
  // put the nav on the left
@@ -107,9 +106,9 @@
107
106
  }
108
107
 
109
108
  &.sidebar-overlaid {
110
- // scss-docs-start sidebar-css-vars
109
+ // scss-docs-start sidebar-overlaid-css-vars
111
110
  --#{$prefix}sidebar-overlaid-box-shadow: #{$sidebar-overlaid-box-shadow};
112
- // scss-docs-end sidebar-css-vars
111
+ // scss-docs-end sidebar-overlaid-css-vars
113
112
 
114
113
  position: fixed;
115
114
  top: 0;
@@ -137,7 +136,7 @@
137
136
  &:not(.sidebar-end) {
138
137
  @include ltr-rtl("margin-left", 0);
139
138
  }
140
-
139
+
141
140
  &.sidebar-end {
142
141
  @include ltr-rtl("margin-right", 0);
143
142
  }
@@ -215,7 +214,7 @@
215
214
  --#{$prefix}sidebar-toggler-width: #{$sidebar-toggler-width};
216
215
  --#{$prefix}sidebar-toggler-height: #{$sidebar-toggler-height};
217
216
  --#{$prefix}sidebar-toggler-color: #{$sidebar-toggler-color};
218
- --#{$prefix}sidebar-toggler-bg: #{ escape-svg($sidebar-toggler-bg) };
217
+ --#{$prefix}sidebar-toggler-bg: #{escape-svg($sidebar-toggler-bg)};
219
218
  --#{$prefix}sidebar-toggler-hover-color: #{$sidebar-toggler-hover-color};
220
219
  --#{$prefix}sidebar-toggler-focus-shadow: #{$sidebar-toggler-focus-shadow};
221
220
  --#{$prefix}sidebar-toggler-focus-color: #{$sidebar-toggler-focus-color};
@@ -230,7 +229,6 @@
230
229
  background-color: transparent;
231
230
  border: 0;
232
231
  @include border-radius();
233
- @include transition(var(--#{$prefix}sidebar-toggler-transition));
234
232
 
235
233
  &::before {
236
234
  position: absolute;
@@ -241,6 +239,10 @@
241
239
  content: "";
242
240
  background-color: var(--#{$prefix}sidebar-toggler-color);
243
241
  mask: var(--#{$prefix}sidebar-toggler-bg) no-repeat center;
242
+ @include transition(var(--#{$prefix}sidebar-toggler-transition));
243
+ @include rtl() {
244
+ transform: rotate(-180deg);
245
+ }
244
246
  }
245
247
 
246
248
  // Override <a>'s hover style
@@ -0,0 +1,2 @@
1
+ $variable-prefix: cui- !default; // Deprecated in v4.2.6 for the shorter `$prefix`
2
+ $prefix: $variable-prefix !default;
@@ -0,0 +1,23 @@
1
+ @import "variables";
2
+
3
+ $enable-ltr: false !default;
4
+ $enable-rtl: true !default;
5
+
6
+ @import "mixins/banner";
7
+ @include bsBanner("");
8
+
9
+ @import "../../../node_modules/bootstrap/scss/bootstrap";
10
+ @import "../../variables";
11
+
12
+ /* rtl:begin:ignore */
13
+ @import "../../mixins/avatar";
14
+ @import "../../mixins/icon";
15
+ @import "../../mixins/ltr-rtl";
16
+
17
+ @import "../../avatar";
18
+ @import "../../callout";
19
+ @import "../../footer";
20
+ @import "../../header";
21
+ @import "../../icon";
22
+ @import "../../sidebar";
23
+ /* rtl:end:ignore */