@unlk/keymaster 1.0.0

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 (168) hide show
  1. package/fonts/fa-brands-400.ttf +0 -0
  2. package/fonts/fa-brands-400.woff2 +0 -0
  3. package/fonts/fa-duotone-900.ttf +0 -0
  4. package/fonts/fa-duotone-900.woff2 +0 -0
  5. package/fonts/fa-duotone-light-300.ttf +0 -0
  6. package/fonts/fa-duotone-light-300.woff2 +0 -0
  7. package/fonts/fa-duotone-regular-400.ttf +0 -0
  8. package/fonts/fa-duotone-regular-400.woff2 +0 -0
  9. package/fonts/fa-duotone-thin-100.ttf +0 -0
  10. package/fonts/fa-duotone-thin-100.woff2 +0 -0
  11. package/fonts/fa-light-300.ttf +0 -0
  12. package/fonts/fa-light-300.woff2 +0 -0
  13. package/fonts/fa-regular-400.ttf +0 -0
  14. package/fonts/fa-regular-400.woff2 +0 -0
  15. package/fonts/fa-sharp-duotone-light-300.ttf +0 -0
  16. package/fonts/fa-sharp-duotone-light-300.woff2 +0 -0
  17. package/fonts/fa-sharp-duotone-regular-400.ttf +0 -0
  18. package/fonts/fa-sharp-duotone-regular-400.woff2 +0 -0
  19. package/fonts/fa-sharp-duotone-solid-900.ttf +0 -0
  20. package/fonts/fa-sharp-duotone-solid-900.woff2 +0 -0
  21. package/fonts/fa-sharp-duotone-thin-100.ttf +0 -0
  22. package/fonts/fa-sharp-duotone-thin-100.woff2 +0 -0
  23. package/fonts/fa-sharp-light-300.ttf +0 -0
  24. package/fonts/fa-sharp-light-300.woff2 +0 -0
  25. package/fonts/fa-sharp-regular-400.ttf +0 -0
  26. package/fonts/fa-sharp-regular-400.woff2 +0 -0
  27. package/fonts/fa-sharp-solid-900.ttf +0 -0
  28. package/fonts/fa-sharp-solid-900.woff2 +0 -0
  29. package/fonts/fa-sharp-thin-100.ttf +0 -0
  30. package/fonts/fa-sharp-thin-100.woff2 +0 -0
  31. package/fonts/fa-solid-900.ttf +0 -0
  32. package/fonts/fa-solid-900.woff2 +0 -0
  33. package/fonts/fa-thin-100.ttf +0 -0
  34. package/fonts/fa-thin-100.woff2 +0 -0
  35. package/fonts/fa-v4compatibility.ttf +0 -0
  36. package/fonts/fa-v4compatibility.woff2 +0 -0
  37. package/js/bootstrap.js +13 -0
  38. package/js/datepicker.js +78 -0
  39. package/package.json +81 -0
  40. package/scss/assets/bootstrap5/_accordion.scss +158 -0
  41. package/scss/assets/bootstrap5/_alert.scss +68 -0
  42. package/scss/assets/bootstrap5/_badge.scss +38 -0
  43. package/scss/assets/bootstrap5/_breadcrumb.scss +40 -0
  44. package/scss/assets/bootstrap5/_button-group.scss +142 -0
  45. package/scss/assets/bootstrap5/_buttons.scss +216 -0
  46. package/scss/assets/bootstrap5/_card.scss +239 -0
  47. package/scss/assets/bootstrap5/_carousel.scss +236 -0
  48. package/scss/assets/bootstrap5/_close.scss +63 -0
  49. package/scss/assets/bootstrap5/_containers.scss +41 -0
  50. package/scss/assets/bootstrap5/_dropdown.scss +250 -0
  51. package/scss/assets/bootstrap5/_forms.scss +9 -0
  52. package/scss/assets/bootstrap5/_functions.scss +302 -0
  53. package/scss/assets/bootstrap5/_grid.scss +39 -0
  54. package/scss/assets/bootstrap5/_helpers.scss +12 -0
  55. package/scss/assets/bootstrap5/_images.scss +42 -0
  56. package/scss/assets/bootstrap5/_list-group.scss +197 -0
  57. package/scss/assets/bootstrap5/_maps.scss +174 -0
  58. package/scss/assets/bootstrap5/_mixins.scss +42 -0
  59. package/scss/assets/bootstrap5/_modal.scss +236 -0
  60. package/scss/assets/bootstrap5/_nav.scss +197 -0
  61. package/scss/assets/bootstrap5/_navbar.scss +289 -0
  62. package/scss/assets/bootstrap5/_offcanvas.scss +143 -0
  63. package/scss/assets/bootstrap5/_pagination.scss +109 -0
  64. package/scss/assets/bootstrap5/_placeholders.scss +51 -0
  65. package/scss/assets/bootstrap5/_popover.scss +196 -0
  66. package/scss/assets/bootstrap5/_progress.scss +68 -0
  67. package/scss/assets/bootstrap5/_reboot.scss +611 -0
  68. package/scss/assets/bootstrap5/_root.scss +187 -0
  69. package/scss/assets/bootstrap5/_spinners.scss +85 -0
  70. package/scss/assets/bootstrap5/_tables.scss +171 -0
  71. package/scss/assets/bootstrap5/_toasts.scss +73 -0
  72. package/scss/assets/bootstrap5/_tooltip.scss +119 -0
  73. package/scss/assets/bootstrap5/_transitions.scss +27 -0
  74. package/scss/assets/bootstrap5/_type.scss +106 -0
  75. package/scss/assets/bootstrap5/_utilities.scss +806 -0
  76. package/scss/assets/bootstrap5/_variables-dark.scss +87 -0
  77. package/scss/assets/bootstrap5/_variables.scss +1751 -0
  78. package/scss/assets/bootstrap5/bootstrap-grid.scss +62 -0
  79. package/scss/assets/bootstrap5/bootstrap-reboot.scss +10 -0
  80. package/scss/assets/bootstrap5/bootstrap-utilities.scss +19 -0
  81. package/scss/assets/bootstrap5/bootstrap.scss +52 -0
  82. package/scss/assets/bootstrap5/forms/_floating-labels.scss +95 -0
  83. package/scss/assets/bootstrap5/forms/_form-check.scss +189 -0
  84. package/scss/assets/bootstrap5/forms/_form-control.scss +214 -0
  85. package/scss/assets/bootstrap5/forms/_form-range.scss +91 -0
  86. package/scss/assets/bootstrap5/forms/_form-select.scss +80 -0
  87. package/scss/assets/bootstrap5/forms/_form-text.scss +11 -0
  88. package/scss/assets/bootstrap5/forms/_input-group.scss +132 -0
  89. package/scss/assets/bootstrap5/forms/_labels.scss +36 -0
  90. package/scss/assets/bootstrap5/forms/_validation.scss +12 -0
  91. package/scss/assets/bootstrap5/helpers/_clearfix.scss +3 -0
  92. package/scss/assets/bootstrap5/helpers/_color-bg.scss +7 -0
  93. package/scss/assets/bootstrap5/helpers/_colored-links.scss +30 -0
  94. package/scss/assets/bootstrap5/helpers/_focus-ring.scss +5 -0
  95. package/scss/assets/bootstrap5/helpers/_icon-link.scss +25 -0
  96. package/scss/assets/bootstrap5/helpers/_position.scss +36 -0
  97. package/scss/assets/bootstrap5/helpers/_ratio.scss +26 -0
  98. package/scss/assets/bootstrap5/helpers/_stacks.scss +15 -0
  99. package/scss/assets/bootstrap5/helpers/_stretched-link.scss +15 -0
  100. package/scss/assets/bootstrap5/helpers/_text-truncation.scss +7 -0
  101. package/scss/assets/bootstrap5/helpers/_visually-hidden.scss +8 -0
  102. package/scss/assets/bootstrap5/helpers/_vr.scss +8 -0
  103. package/scss/assets/bootstrap5/mixins/_alert.scss +18 -0
  104. package/scss/assets/bootstrap5/mixins/_backdrop.scss +14 -0
  105. package/scss/assets/bootstrap5/mixins/_banner.scss +7 -0
  106. package/scss/assets/bootstrap5/mixins/_border-radius.scss +78 -0
  107. package/scss/assets/bootstrap5/mixins/_box-shadow.scss +18 -0
  108. package/scss/assets/bootstrap5/mixins/_breakpoints.scss +127 -0
  109. package/scss/assets/bootstrap5/mixins/_buttons.scss +70 -0
  110. package/scss/assets/bootstrap5/mixins/_caret.scss +69 -0
  111. package/scss/assets/bootstrap5/mixins/_clearfix.scss +9 -0
  112. package/scss/assets/bootstrap5/mixins/_color-mode.scss +21 -0
  113. package/scss/assets/bootstrap5/mixins/_color-scheme.scss +7 -0
  114. package/scss/assets/bootstrap5/mixins/_container.scss +11 -0
  115. package/scss/assets/bootstrap5/mixins/_deprecate.scss +10 -0
  116. package/scss/assets/bootstrap5/mixins/_forms.scss +163 -0
  117. package/scss/assets/bootstrap5/mixins/_gradients.scss +47 -0
  118. package/scss/assets/bootstrap5/mixins/_grid.scss +151 -0
  119. package/scss/assets/bootstrap5/mixins/_image.scss +16 -0
  120. package/scss/assets/bootstrap5/mixins/_list-group.scss +26 -0
  121. package/scss/assets/bootstrap5/mixins/_lists.scss +7 -0
  122. package/scss/assets/bootstrap5/mixins/_pagination.scss +10 -0
  123. package/scss/assets/bootstrap5/mixins/_reset-text.scss +17 -0
  124. package/scss/assets/bootstrap5/mixins/_resize.scss +6 -0
  125. package/scss/assets/bootstrap5/mixins/_table-variants.scss +24 -0
  126. package/scss/assets/bootstrap5/mixins/_text-truncate.scss +8 -0
  127. package/scss/assets/bootstrap5/mixins/_transition.scss +26 -0
  128. package/scss/assets/bootstrap5/mixins/_utilities.scss +97 -0
  129. package/scss/assets/bootstrap5/mixins/_visually-hidden.scss +33 -0
  130. package/scss/assets/bootstrap5/utilities/_api.scss +47 -0
  131. package/scss/assets/bootstrap5/vendor/_rfs.scss +348 -0
  132. package/scss/assets/fontawesome/_animated.scss +152 -0
  133. package/scss/assets/fontawesome/_bordered-pulled.scss +20 -0
  134. package/scss/assets/fontawesome/_core.scss +150 -0
  135. package/scss/assets/fontawesome/_duotone-icons.scss +12 -0
  136. package/scss/assets/fontawesome/_fixed-width.scss +7 -0
  137. package/scss/assets/fontawesome/_functions.scss +57 -0
  138. package/scss/assets/fontawesome/_icons.scss +13 -0
  139. package/scss/assets/fontawesome/_list.scss +18 -0
  140. package/scss/assets/fontawesome/_mixins.scss +89 -0
  141. package/scss/assets/fontawesome/_rotated-flipped.scss +31 -0
  142. package/scss/assets/fontawesome/_screen-reader.scss +14 -0
  143. package/scss/assets/fontawesome/_shims.scss +1578 -0
  144. package/scss/assets/fontawesome/_sizing.scss +16 -0
  145. package/scss/assets/fontawesome/_stacked.scss +32 -0
  146. package/scss/assets/fontawesome/_variables.scss +9734 -0
  147. package/scss/assets/fontawesome/brands.scss +30 -0
  148. package/scss/assets/fontawesome/duotone-light.scss +69 -0
  149. package/scss/assets/fontawesome/duotone-regular.scss +69 -0
  150. package/scss/assets/fontawesome/duotone-thin.scss +69 -0
  151. package/scss/assets/fontawesome/duotone.scss +65 -0
  152. package/scss/assets/fontawesome/fontawesome.scss +21 -0
  153. package/scss/assets/fontawesome/light.scss +27 -0
  154. package/scss/assets/fontawesome/regular.scss +27 -0
  155. package/scss/assets/fontawesome/sharp-duotone-light.scss +69 -0
  156. package/scss/assets/fontawesome/sharp-duotone-regular.scss +69 -0
  157. package/scss/assets/fontawesome/sharp-duotone-solid.scss +77 -0
  158. package/scss/assets/fontawesome/sharp-duotone-thin.scss +69 -0
  159. package/scss/assets/fontawesome/sharp-light.scss +27 -0
  160. package/scss/assets/fontawesome/sharp-regular.scss +27 -0
  161. package/scss/assets/fontawesome/sharp-solid.scss +27 -0
  162. package/scss/assets/fontawesome/sharp-thin.scss +27 -0
  163. package/scss/assets/fontawesome/solid.scss +27 -0
  164. package/scss/assets/fontawesome/thin.scss +27 -0
  165. package/scss/assets/fontawesome/v4-shims.scss +11 -0
  166. package/scss/keymaster.scss +14 -0
  167. package/scss/theme/_overrides.scss +266 -0
  168. package/scss/theme/_utility-overrides.scss +7 -0
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,13 @@
1
+ export { default as Alert } from 'bootstrap/js/dist/alert';
2
+ export { default as Carousel } from 'bootstrap/js/dist/carousel';
3
+ export { default as Button } from 'bootstrap/js/dist/button';
4
+ export { default as Dropdown } from 'bootstrap/js/dist/dropdown';
5
+ export { default as Collapse } from 'bootstrap/js/dist/collapse';
6
+ export { default as Offcanvas } from 'bootstrap/js/dist/offcanvas';
7
+ export { default as Modal } from 'bootstrap/js/dist/modal';
8
+ export { default as Scrollspy } from 'bootstrap/js/dist/scrollspy';
9
+ export { default as Popover } from 'bootstrap/js/dist/popover';
10
+ export { default as Toast } from 'bootstrap/js/dist/toast';
11
+ export { default as Tab } from 'bootstrap/js/dist/tab';
12
+ export { default as Tooltip } from 'bootstrap/js/dist/tooltip';
13
+ export { default as Datepicker } from './datepicker';
@@ -0,0 +1,78 @@
1
+ import BaseComponent from 'bootstrap/js/src/base-component.js';
2
+ import EventHandler from 'bootstrap/js/src/dom/event-handler.js';
3
+ import { defineJQueryPlugin } from 'bootstrap/js/src/util/index.js';
4
+
5
+ const NAME = 'datepicker';
6
+ const DATA_KEY = 'bs.datepicker';
7
+ const EVENT_KEY = `.${DATA_KEY}`;
8
+ const DATA_API_KEY = '.data-api';
9
+
10
+ const SELECTOR_INPUT = '[data-bs-toggle="datepicker"]';
11
+ const EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`;
12
+
13
+ class Datepicker extends BaseComponent {
14
+ // Getters
15
+ static get NAME() {
16
+ return NAME;
17
+ }
18
+
19
+ // Static
20
+ static jQueryInterface(config) {
21
+ return this.each(function () {
22
+ const data = Datepicker.getOrCreateInstance(this);
23
+
24
+ if (config === 'toggle') {
25
+ data[config]();
26
+ }
27
+ });
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Data API implementation
33
+ */
34
+ EventHandler.on(document, EVENT_FOCUS_DATA_API, SELECTOR_INPUT, (event) => {
35
+ const input = event.target.closest(SELECTOR_INPUT);
36
+
37
+ if (isTouchDevice()) {
38
+ const datePicker = input.cloneNode(true);
39
+
40
+ datePicker.type = 'date';
41
+ datePicker.removeAttribute('data-bs-toggle');
42
+
43
+ input.parentNode.prepend(datePicker);
44
+
45
+ datePicker.focus();
46
+ datePicker.showPicker();
47
+ input.remove();
48
+
49
+ datePicker.addEventListener('blur', function blurHandler() {
50
+ if (!datePicker.value) {
51
+ datePicker.parentNode.prepend(input);
52
+ datePicker.remove();
53
+ datePicker.removeEventListener('blur', blurHandler);
54
+ }
55
+ });
56
+ } else {
57
+ input.type = 'date';
58
+
59
+ input.addEventListener('blur', function blurHandler() {
60
+ if (!input.value) {
61
+ input.type = 'text';
62
+ }
63
+
64
+ input.removeEventListener('blur', blurHandler);
65
+ });
66
+ }
67
+ });
68
+
69
+ function isTouchDevice() {
70
+ return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
71
+ }
72
+
73
+ /**
74
+ * jQuery
75
+ */
76
+ defineJQueryPlugin(Datepicker);
77
+
78
+ export default Datepicker;
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "@unlk/keymaster",
3
+ "version": "1.0.0",
4
+ "description": "Unlock Design System Packaged with Bootstrap",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "bs": "browser-sync start --config build/browser-sync.config.js",
8
+ "css": "npm-run-all css-compile css-postcss css-minify",
9
+ "css-compile": "sass --style expanded --source-map --embed-sources --no-error-css --quiet scss/keymaster.scss:dist/css/keymaster.css",
10
+ "css-lint": "stylelint \"**/*.{css,scss}\" --cache --cache-location .cache/.stylelintcache --rd",
11
+ "css-minify": "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\"",
12
+ "css-postcss": "postcss --config build/postcss.config.js --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"",
13
+ "js": "npm-run-all js-compile js-minify",
14
+ "js-compile": "rollup --config build/rollup.config.js --sourcemap",
15
+ "js-lint": "eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives --ext .html,.js .",
16
+ "js-minify": "terser --config-file build/terser.config.json --output dist/js/keymaster.min.js dist/js/keymaster.js",
17
+ "watch": "npm-run-all --parallel watch-run-*",
18
+ "watch-bs": "npm-run-all --parallel bs watch-run-*",
19
+ "watch-run-css": "nodemon --watch src/sass/ --ext scss --exec \"npm-run-all css\"",
20
+ "watch-run-js": "nodemon --watch src/js/ --ext js --exec \"npm-run-all js\"",
21
+ "copy-assets": "node build/copy-assets.js",
22
+ "dist": "npm-run-all --parallel css js",
23
+ "dist-build": "node build/dist-build.js",
24
+ "dist-clean": "node build/dist-clean.js",
25
+ "lint": "npm-run-all --aggregate-output --continue-on-error --parallel js-lint css-lint"
26
+ },
27
+ "files": [
28
+ "dist",
29
+ "scss",
30
+ "js",
31
+ "fonts",
32
+ "CHANGELOG.md"
33
+ ],
34
+ "engines": {
35
+ "node": ">=14"
36
+ },
37
+ "keywords": [
38
+ "design-system",
39
+ "theme",
40
+ "framework",
41
+ "bootstrap",
42
+ "keymaster"
43
+ ],
44
+ "author": "Unlk Developers",
45
+ "license": "UNLICENSED",
46
+ "homepage": "https://unlock-com.github.io/keymaster",
47
+ "peerDependencies": {
48
+ "@popperjs/core": "^2.11.0",
49
+ "bootstrap": "^5.3.0"
50
+ },
51
+ "devDependencies": {
52
+ "@babel/core": "^7.16.0",
53
+ "@babel/preset-env": "^7.16.4",
54
+ "@fortawesome/fontawesome-pro": "^6.1.1",
55
+ "@popperjs/core": "^2.11.0",
56
+ "@rollup/plugin-babel": "^5.3.0",
57
+ "@rollup/plugin-commonjs": "^21.0.0",
58
+ "@rollup/plugin-multi-entry": "^4.1.0",
59
+ "@rollup/plugin-node-resolve": "^13.0.6",
60
+ "@rollup/plugin-replace": "^3.0.0",
61
+ "autoprefixer": "^10.4.0",
62
+ "bootstrap": "^5.3.0",
63
+ "browser-sync": "^3.0.3",
64
+ "browserslist": "^4.18.1",
65
+ "caniuse-lite": "^1.0.30001283",
66
+ "clean-css-cli": "^5.4.2",
67
+ "del": "^6.0.0",
68
+ "nodemon": "^2.0.15",
69
+ "npm-run-all": "^4.1.5",
70
+ "postcss": "^8.4.4",
71
+ "postcss-cli": "^9.0.2",
72
+ "rollup": "^2.60.2",
73
+ "sass": "^1.44.0",
74
+ "terser": "^5.10.0"
75
+ },
76
+ "config": {
77
+ "commitizen": {
78
+ "path": "./node_modules/cz-conventional-changelog"
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,158 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .accordion {
6
+ // scss-docs-start accordion-css-vars
7
+ --#{$prefix}accordion-color: #{$accordion-color};
8
+ --#{$prefix}accordion-bg: #{$accordion-bg};
9
+ --#{$prefix}accordion-transition: #{$accordion-transition};
10
+ --#{$prefix}accordion-border-color: #{$accordion-border-color};
11
+ --#{$prefix}accordion-border-width: #{$accordion-border-width};
12
+ --#{$prefix}accordion-border-radius: #{$accordion-border-radius};
13
+ --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
14
+ --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};
15
+ --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
16
+ --#{$prefix}accordion-btn-color: #{$accordion-button-color};
17
+ --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
18
+ --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
19
+ --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};
20
+ --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
21
+ --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
22
+ --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
23
+ --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
24
+ --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
25
+ --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
26
+ --#{$prefix}accordion-active-color: #{$accordion-button-active-color};
27
+ --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};
28
+ // scss-docs-end accordion-css-vars
29
+ }
30
+
31
+ .accordion-button {
32
+ position: relative;
33
+ display: flex;
34
+ align-items: center;
35
+ width: 100%;
36
+ padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);
37
+ @include font-size($font-size-base);
38
+ color: var(--#{$prefix}accordion-btn-color);
39
+ text-align: left; // Reset button style
40
+ background-color: var(--#{$prefix}accordion-btn-bg);
41
+ border: 0;
42
+ @include border-radius(0);
43
+ overflow-anchor: none;
44
+ @include transition(var(--#{$prefix}accordion-transition));
45
+
46
+ &:not(.collapsed) {
47
+ color: var(--#{$prefix}accordion-active-color);
48
+ background-color: var(--#{$prefix}accordion-active-bg);
49
+ box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list
50
+
51
+ &::after {
52
+ background-image: var(--#{$prefix}accordion-btn-active-icon);
53
+ transform: var(--#{$prefix}accordion-btn-icon-transform);
54
+ }
55
+ }
56
+
57
+ // Accordion icon
58
+ &::after {
59
+ flex-shrink: 0;
60
+ width: var(--#{$prefix}accordion-btn-icon-width);
61
+ height: var(--#{$prefix}accordion-btn-icon-width);
62
+ margin-left: auto;
63
+ content: "";
64
+ background-image: var(--#{$prefix}accordion-btn-icon);
65
+ background-repeat: no-repeat;
66
+ background-size: var(--#{$prefix}accordion-btn-icon-width);
67
+ @include transition(var(--#{$prefix}accordion-btn-icon-transition));
68
+ }
69
+
70
+ &:hover {
71
+ z-index: 2;
72
+ }
73
+
74
+ &:focus {
75
+ z-index: 3;
76
+ outline: 0;
77
+ box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
78
+ }
79
+ }
80
+
81
+ .accordion-header {
82
+ margin-bottom: 0;
83
+ }
84
+
85
+ .accordion-item {
86
+ color: var(--#{$prefix}accordion-color);
87
+ background-color: var(--#{$prefix}accordion-bg);
88
+ border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);
89
+
90
+ &:first-of-type {
91
+ @include border-top-radius(var(--#{$prefix}accordion-border-radius));
92
+
93
+ > .accordion-header .accordion-button {
94
+ @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
95
+ }
96
+ }
97
+
98
+ &:not(:first-of-type) {
99
+ border-top: 0;
100
+ }
101
+
102
+ // Only set a border-radius on the last item if the accordion is collapsed
103
+ &:last-of-type {
104
+ @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
105
+
106
+ > .accordion-header .accordion-button {
107
+ &.collapsed {
108
+ @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
109
+ }
110
+ }
111
+
112
+ > .accordion-collapse {
113
+ @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
114
+ }
115
+ }
116
+ }
117
+
118
+ .accordion-body {
119
+ padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);
120
+ }
121
+
122
+
123
+ // Flush accordion items
124
+ //
125
+ // Remove borders and border-radius to keep accordion items edge-to-edge.
126
+
127
+ .accordion-flush {
128
+ > .accordion-item {
129
+ border-right: 0;
130
+ border-left: 0;
131
+ @include border-radius(0);
132
+
133
+ &:first-child { border-top: 0; }
134
+ &:last-child { border-bottom: 0; }
135
+
136
+ // stylelint-disable selector-max-class
137
+ > .accordion-header .accordion-button {
138
+ &,
139
+ &.collapsed {
140
+ @include border-radius(0);
141
+ }
142
+ }
143
+ // stylelint-enable selector-max-class
144
+
145
+ > .accordion-collapse {
146
+ @include border-radius(0);
147
+ }
148
+ }
149
+ }
150
+
151
+ @if $enable-dark-mode {
152
+ @include color-mode(dark) {
153
+ .accordion-button::after {
154
+ --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon-dark)};
155
+ --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon-dark)};
156
+ }
157
+ }
158
+ }
@@ -0,0 +1,68 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .alert {
6
+ // scss-docs-start alert-css-vars
7
+ --#{$prefix}alert-bg: transparent;
8
+ --#{$prefix}alert-padding-x: #{$alert-padding-x};
9
+ --#{$prefix}alert-padding-y: #{$alert-padding-y};
10
+ --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
11
+ --#{$prefix}alert-color: inherit;
12
+ --#{$prefix}alert-border-color: transparent;
13
+ --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
14
+ --#{$prefix}alert-border-radius: #{$alert-border-radius};
15
+ --#{$prefix}alert-link-color: inherit;
16
+ // scss-docs-end alert-css-vars
17
+
18
+ position: relative;
19
+ padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
20
+ margin-bottom: var(--#{$prefix}alert-margin-bottom);
21
+ color: var(--#{$prefix}alert-color);
22
+ background-color: var(--#{$prefix}alert-bg);
23
+ border: var(--#{$prefix}alert-border);
24
+ @include border-radius(var(--#{$prefix}alert-border-radius));
25
+ }
26
+
27
+ // Headings for larger alerts
28
+ .alert-heading {
29
+ // Specified to prevent conflicts of changing $headings-color
30
+ color: inherit;
31
+ }
32
+
33
+ // Provide class for links that match alerts
34
+ .alert-link {
35
+ font-weight: $alert-link-font-weight;
36
+ color: var(--#{$prefix}alert-link-color);
37
+ }
38
+
39
+
40
+ // Dismissible alerts
41
+ //
42
+ // Expand the right padding and account for the close button's positioning.
43
+
44
+ .alert-dismissible {
45
+ padding-right: $alert-dismissible-padding-r;
46
+
47
+ // Adjust close link position
48
+ .btn-close {
49
+ position: absolute;
50
+ top: 0;
51
+ right: 0;
52
+ z-index: $stretched-link-z-index + 1;
53
+ padding: $alert-padding-y * 1.25 $alert-padding-x;
54
+ }
55
+ }
56
+
57
+
58
+ // scss-docs-start alert-modifiers
59
+ // Generate contextual modifier classes for colorizing the alert
60
+ @each $state in map-keys($theme-colors) {
61
+ .alert-#{$state} {
62
+ --#{$prefix}alert-color: var(--#{$prefix}#{$state}-text-emphasis);
63
+ --#{$prefix}alert-bg: var(--#{$prefix}#{$state}-bg-subtle);
64
+ --#{$prefix}alert-border-color: var(--#{$prefix}#{$state}-border-subtle);
65
+ --#{$prefix}alert-link-color: var(--#{$prefix}#{$state}-text-emphasis);
66
+ }
67
+ }
68
+ // scss-docs-end alert-modifiers
@@ -0,0 +1,38 @@
1
+ // Base class
2
+ //
3
+ // Requires one of the contextual, color modifier classes for `color` and
4
+ // `background-color`.
5
+
6
+ .badge {
7
+ // scss-docs-start badge-css-vars
8
+ --#{$prefix}badge-padding-x: #{$badge-padding-x};
9
+ --#{$prefix}badge-padding-y: #{$badge-padding-y};
10
+ @include rfs($badge-font-size, --#{$prefix}badge-font-size);
11
+ --#{$prefix}badge-font-weight: #{$badge-font-weight};
12
+ --#{$prefix}badge-color: #{$badge-color};
13
+ --#{$prefix}badge-border-radius: #{$badge-border-radius};
14
+ // scss-docs-end badge-css-vars
15
+
16
+ display: inline-block;
17
+ padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
18
+ @include font-size(var(--#{$prefix}badge-font-size));
19
+ font-weight: var(--#{$prefix}badge-font-weight);
20
+ line-height: 1;
21
+ color: var(--#{$prefix}badge-color);
22
+ text-align: center;
23
+ white-space: nowrap;
24
+ vertical-align: baseline;
25
+ @include border-radius(var(--#{$prefix}badge-border-radius));
26
+ @include gradient-bg();
27
+
28
+ // Empty badges collapse automatically
29
+ &:empty {
30
+ display: none;
31
+ }
32
+ }
33
+
34
+ // Quick fix for badges in buttons
35
+ .btn .badge {
36
+ position: relative;
37
+ top: -1px;
38
+ }
@@ -0,0 +1,40 @@
1
+ .breadcrumb {
2
+ // scss-docs-start breadcrumb-css-vars
3
+ --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
4
+ --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
5
+ --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
6
+ @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);
7
+ --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
8
+ --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
9
+ --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
10
+ --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
11
+ --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
12
+ // scss-docs-end breadcrumb-css-vars
13
+
14
+ display: flex;
15
+ flex-wrap: wrap;
16
+ padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);
17
+ margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
18
+ @include font-size(var(--#{$prefix}breadcrumb-font-size));
19
+ list-style: none;
20
+ background-color: var(--#{$prefix}breadcrumb-bg);
21
+ @include border-radius(var(--#{$prefix}breadcrumb-border-radius));
22
+ }
23
+
24
+ .breadcrumb-item {
25
+ // The separator between breadcrumbs (by default, a forward-slash: "/")
26
+ + .breadcrumb-item {
27
+ padding-left: var(--#{$prefix}breadcrumb-item-padding-x);
28
+
29
+ &::before {
30
+ float: left; // Suppress inline spacings and underlining of the separator
31
+ padding-right: var(--#{$prefix}breadcrumb-item-padding-x);
32
+ color: var(--#{$prefix}breadcrumb-divider-color);
33
+ content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
34
+ }
35
+ }
36
+
37
+ &.active {
38
+ color: var(--#{$prefix}breadcrumb-item-active-color);
39
+ }
40
+ }