insights4you-jekyll-theme 0.2.0 → 0.4.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 (276) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +110 -0
  3. data/README.md +114 -32
  4. data/_data/i4y-colors.json +218 -0
  5. data/_data/i4y-errors.json +32 -0
  6. data/_data/i4y-icons.json +1 -0
  7. data/_data/i4y-illustrations.json +20 -0
  8. data/_data/i4y-social-media.yml +24 -0
  9. data/_includes/card/profile.html +42 -0
  10. data/_includes/layout/footer.html +48 -0
  11. data/_includes/layout/head.html +79 -0
  12. data/_includes/layout/navbar-logo.html +137 -0
  13. data/_includes/layout/navbar.html +82 -0
  14. data/_includes/ui/button.html +13 -14
  15. data/_includes/ui/icon.html +24 -26
  16. data/_includes/ui/spinner.html +2 -0
  17. data/_includes/utils/banner.html +7 -0
  18. data/_includes/utils/settings.html +144 -0
  19. data/_layouts/base.html +63 -0
  20. data/_layouts/default.html +36 -11
  21. data/_sass/_bootstrap-components.scss +31 -0
  22. data/_sass/_bootstrap-config.scss +7 -0
  23. data/_sass/_bootstrap-override.scss +78 -0
  24. data/_sass/_config.scss +9 -0
  25. data/_sass/_core.scss +78 -0
  26. data/_sass/_debug.scss +49 -0
  27. data/_sass/_mixins.scss +2 -0
  28. data/_sass/_props.scss +91 -0
  29. data/_sass/_utilities-marketing.scss +209 -0
  30. data/_sass/_utilities.scss +135 -0
  31. data/_sass/_variables-dark.scss +19 -0
  32. data/_sass/_variables-marketing.scss +0 -0
  33. data/_sass/_variables.scss +1001 -0
  34. data/_sass/bootstrap/LICENSE +21 -0
  35. data/_sass/bootstrap/README.md +246 -0
  36. data/_sass/bootstrap/js/index.esm.js +19 -0
  37. data/_sass/bootstrap/js/index.umd.js +34 -0
  38. data/_sass/bootstrap/js/src/alert.js +87 -0
  39. data/_sass/bootstrap/js/src/base-component.js +85 -0
  40. data/_sass/bootstrap/js/src/button.js +72 -0
  41. data/_sass/bootstrap/js/src/carousel.js +474 -0
  42. data/_sass/bootstrap/js/src/collapse.js +297 -0
  43. data/_sass/bootstrap/js/src/dom/data.js +55 -0
  44. data/_sass/bootstrap/js/src/dom/event-handler.js +317 -0
  45. data/_sass/bootstrap/js/src/dom/manipulator.js +71 -0
  46. data/_sass/bootstrap/js/src/dom/selector-engine.js +126 -0
  47. data/_sass/bootstrap/js/src/dropdown.js +455 -0
  48. data/_sass/bootstrap/js/src/modal.js +378 -0
  49. data/_sass/bootstrap/js/src/offcanvas.js +282 -0
  50. data/_sass/bootstrap/js/src/popover.js +97 -0
  51. data/_sass/bootstrap/js/src/scrollspy.js +296 -0
  52. data/_sass/bootstrap/js/src/tab.js +315 -0
  53. data/_sass/bootstrap/js/src/toast.js +225 -0
  54. data/_sass/bootstrap/js/src/tooltip.js +633 -0
  55. data/_sass/bootstrap/js/src/util/backdrop.js +151 -0
  56. data/_sass/bootstrap/js/src/util/component-functions.js +35 -0
  57. data/_sass/bootstrap/js/src/util/config.js +65 -0
  58. data/_sass/bootstrap/js/src/util/focustrap.js +115 -0
  59. data/_sass/bootstrap/js/src/util/index.js +306 -0
  60. data/_sass/bootstrap/js/src/util/sanitizer.js +117 -0
  61. data/_sass/bootstrap/js/src/util/scrollbar.js +114 -0
  62. data/_sass/bootstrap/js/src/util/swipe.js +146 -0
  63. data/_sass/bootstrap/js/src/util/template-factory.js +160 -0
  64. data/_sass/bootstrap/package.json +184 -0
  65. data/_sass/bootstrap/scss/_accordion.scss +158 -0
  66. data/_sass/bootstrap/scss/_alert.scss +68 -0
  67. data/_sass/bootstrap/scss/_badge.scss +38 -0
  68. data/_sass/bootstrap/scss/_breadcrumb.scss +40 -0
  69. data/_sass/bootstrap/scss/_button-group.scss +142 -0
  70. data/_sass/bootstrap/scss/_buttons.scss +216 -0
  71. data/_sass/bootstrap/scss/_card.scss +239 -0
  72. data/_sass/bootstrap/scss/_carousel.scss +236 -0
  73. data/_sass/bootstrap/scss/_close.scss +63 -0
  74. data/_sass/bootstrap/scss/_containers.scss +41 -0
  75. data/_sass/bootstrap/scss/_dropdown.scss +250 -0
  76. data/_sass/bootstrap/scss/_forms.scss +9 -0
  77. data/_sass/bootstrap/scss/_functions.scss +302 -0
  78. data/_sass/bootstrap/scss/_grid.scss +39 -0
  79. data/_sass/bootstrap/scss/_helpers.scss +12 -0
  80. data/_sass/bootstrap/scss/_images.scss +42 -0
  81. data/_sass/bootstrap/scss/_list-group.scss +197 -0
  82. data/_sass/bootstrap/scss/_maps.scss +174 -0
  83. data/_sass/bootstrap/scss/_mixins.scss +42 -0
  84. data/_sass/bootstrap/scss/_modal.scss +236 -0
  85. data/_sass/bootstrap/scss/_nav.scss +197 -0
  86. data/_sass/bootstrap/scss/_navbar.scss +289 -0
  87. data/_sass/bootstrap/scss/_offcanvas.scss +143 -0
  88. data/_sass/bootstrap/scss/_pagination.scss +109 -0
  89. data/_sass/bootstrap/scss/_placeholders.scss +51 -0
  90. data/_sass/bootstrap/scss/_popover.scss +196 -0
  91. data/_sass/bootstrap/scss/_progress.scss +68 -0
  92. data/_sass/bootstrap/scss/_reboot.scss +611 -0
  93. data/_sass/bootstrap/scss/_root.scss +187 -0
  94. data/_sass/bootstrap/scss/_spinners.scss +85 -0
  95. data/_sass/bootstrap/scss/_tables.scss +171 -0
  96. data/_sass/bootstrap/scss/_toasts.scss +73 -0
  97. data/_sass/bootstrap/scss/_tooltip.scss +119 -0
  98. data/_sass/bootstrap/scss/_transitions.scss +27 -0
  99. data/_sass/bootstrap/scss/_type.scss +106 -0
  100. data/_sass/bootstrap/scss/_utilities.scss +806 -0
  101. data/_sass/bootstrap/scss/_variables-dark.scss +87 -0
  102. data/_sass/bootstrap/scss/_variables.scss +1751 -0
  103. data/_sass/bootstrap/scss/bootstrap-grid.scss +62 -0
  104. data/_sass/bootstrap/scss/bootstrap-reboot.scss +10 -0
  105. data/_sass/bootstrap/scss/bootstrap-utilities.scss +19 -0
  106. data/_sass/bootstrap/scss/bootstrap.scss +52 -0
  107. data/_sass/bootstrap/scss/forms/_floating-labels.scss +95 -0
  108. data/_sass/bootstrap/scss/forms/_form-check.scss +189 -0
  109. data/_sass/bootstrap/scss/forms/_form-control.scss +214 -0
  110. data/_sass/bootstrap/scss/forms/_form-range.scss +91 -0
  111. data/_sass/bootstrap/scss/forms/_form-select.scss +80 -0
  112. data/_sass/bootstrap/scss/forms/_form-text.scss +11 -0
  113. data/_sass/bootstrap/scss/forms/_input-group.scss +132 -0
  114. data/_sass/bootstrap/scss/forms/_labels.scss +36 -0
  115. data/_sass/bootstrap/scss/forms/_validation.scss +12 -0
  116. data/_sass/bootstrap/scss/helpers/_clearfix.scss +3 -0
  117. data/_sass/bootstrap/scss/helpers/_color-bg.scss +7 -0
  118. data/_sass/bootstrap/scss/helpers/_colored-links.scss +30 -0
  119. data/_sass/bootstrap/scss/helpers/_focus-ring.scss +5 -0
  120. data/_sass/bootstrap/scss/helpers/_icon-link.scss +25 -0
  121. data/_sass/bootstrap/scss/helpers/_position.scss +36 -0
  122. data/_sass/bootstrap/scss/helpers/_ratio.scss +26 -0
  123. data/_sass/bootstrap/scss/helpers/_stacks.scss +15 -0
  124. data/_sass/bootstrap/scss/helpers/_stretched-link.scss +15 -0
  125. data/_sass/bootstrap/scss/helpers/_text-truncation.scss +7 -0
  126. data/_sass/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
  127. data/_sass/bootstrap/scss/helpers/_vr.scss +8 -0
  128. data/_sass/bootstrap/scss/mixins/_alert.scss +18 -0
  129. data/_sass/bootstrap/scss/mixins/_backdrop.scss +14 -0
  130. data/_sass/bootstrap/scss/mixins/_banner.scss +7 -0
  131. data/_sass/bootstrap/scss/mixins/_border-radius.scss +78 -0
  132. data/_sass/bootstrap/scss/mixins/_box-shadow.scss +18 -0
  133. data/_sass/bootstrap/scss/mixins/_breakpoints.scss +127 -0
  134. data/_sass/bootstrap/scss/mixins/_buttons.scss +70 -0
  135. data/_sass/bootstrap/scss/mixins/_caret.scss +69 -0
  136. data/_sass/bootstrap/scss/mixins/_clearfix.scss +9 -0
  137. data/_sass/bootstrap/scss/mixins/_color-mode.scss +21 -0
  138. data/_sass/bootstrap/scss/mixins/_color-scheme.scss +7 -0
  139. data/_sass/bootstrap/scss/mixins/_container.scss +11 -0
  140. data/_sass/bootstrap/scss/mixins/_deprecate.scss +10 -0
  141. data/_sass/bootstrap/scss/mixins/_forms.scss +163 -0
  142. data/_sass/bootstrap/scss/mixins/_gradients.scss +47 -0
  143. data/_sass/bootstrap/scss/mixins/_grid.scss +151 -0
  144. data/_sass/bootstrap/scss/mixins/_image.scss +16 -0
  145. data/_sass/bootstrap/scss/mixins/_list-group.scss +26 -0
  146. data/_sass/bootstrap/scss/mixins/_lists.scss +7 -0
  147. data/_sass/bootstrap/scss/mixins/_pagination.scss +10 -0
  148. data/_sass/bootstrap/scss/mixins/_reset-text.scss +17 -0
  149. data/_sass/bootstrap/scss/mixins/_resize.scss +6 -0
  150. data/_sass/bootstrap/scss/mixins/_table-variants.scss +24 -0
  151. data/_sass/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  152. data/_sass/bootstrap/scss/mixins/_transition.scss +26 -0
  153. data/_sass/bootstrap/scss/mixins/_utilities.scss +97 -0
  154. data/_sass/bootstrap/scss/mixins/_visually-hidden.scss +33 -0
  155. data/_sass/bootstrap/scss/utilities/_api.scss +47 -0
  156. data/_sass/fonts/_webfonts.scss +15 -0
  157. data/_sass/helpers/_index.scss +143 -0
  158. data/_sass/layout/_animations.scss +63 -0
  159. data/_sass/layout/_core.scss +62 -0
  160. data/_sass/layout/_dark.scss +77 -0
  161. data/_sass/layout/_footer.scss +12 -0
  162. data/_sass/layout/_navbar.scss +392 -0
  163. data/_sass/layout/_page.scss +169 -0
  164. data/_sass/layout/_root.scss +64 -0
  165. data/_sass/marketing/_browser.scss +67 -0
  166. data/_sass/marketing/_core.scss +8 -0
  167. data/_sass/marketing/_filters.scss +0 -0
  168. data/_sass/marketing/_hero.scss +69 -0
  169. data/_sass/marketing/_pricing.scss +111 -0
  170. data/_sass/marketing/_sections.scss +124 -0
  171. data/_sass/marketing/_shape.scss +31 -0
  172. data/_sass/mixins/_functions.scss +96 -0
  173. data/_sass/mixins/_mixins.scss +68 -0
  174. data/_sass/tabler-flags.scss +2 -0
  175. data/_sass/tabler-marketing.scss +13 -0
  176. data/_sass/tabler-payments.scss +2 -0
  177. data/_sass/tabler-props.scss +1 -0
  178. data/_sass/tabler-socials.scss +2 -0
  179. data/_sass/tabler-themes.scss +121 -0
  180. data/_sass/tabler-vendors.scss +16 -0
  181. data/_sass/tabler.scss +2 -0
  182. data/_sass/ui/_accordion.scss +177 -0
  183. data/_sass/ui/_alerts.scss +99 -0
  184. data/_sass/ui/_avatars.scss +145 -0
  185. data/_sass/ui/_badges.scss +113 -0
  186. data/_sass/ui/_breadcrumbs.scss +50 -0
  187. data/_sass/ui/_button-group.scss +16 -0
  188. data/_sass/ui/_buttons.scss +261 -0
  189. data/_sass/ui/_calendars.scss +104 -0
  190. data/_sass/ui/_cards.scss +594 -0
  191. data/_sass/ui/_carousel.scss +68 -0
  192. data/_sass/ui/_charts.scss +61 -0
  193. data/_sass/ui/_chat.scss +38 -0
  194. data/_sass/ui/_chips.scss +0 -0
  195. data/_sass/ui/_close.scss +60 -0
  196. data/_sass/ui/_datagrid.scss +17 -0
  197. data/_sass/ui/_dropdowns.scss +120 -0
  198. data/_sass/ui/_empty.scss +60 -0
  199. data/_sass/ui/_flags.scss +31 -0
  200. data/_sass/ui/_forms.scss +241 -0
  201. data/_sass/ui/_grid.scss +115 -0
  202. data/_sass/ui/_icons.scss +72 -0
  203. data/_sass/ui/_images.scss +19 -0
  204. data/_sass/ui/_legend.scss +12 -0
  205. data/_sass/ui/_lists.scss +124 -0
  206. data/_sass/ui/_loaders.scss +72 -0
  207. data/_sass/ui/_login.scss +3 -0
  208. data/_sass/ui/_markdown.scss +43 -0
  209. data/_sass/ui/_modals.scss +67 -0
  210. data/_sass/ui/_nav.scss +96 -0
  211. data/_sass/ui/_offcanvas.scss +17 -0
  212. data/_sass/ui/_pagination.scss +58 -0
  213. data/_sass/ui/_payments.scss +28 -0
  214. data/_sass/ui/_placeholder.scss +9 -0
  215. data/_sass/ui/_popovers.scss +2 -0
  216. data/_sass/ui/_progress.scss +107 -0
  217. data/_sass/ui/_ribbons.scss +157 -0
  218. data/_sass/ui/_segmented.scss +101 -0
  219. data/_sass/ui/_signature.scss +15 -0
  220. data/_sass/ui/_social.scss +52 -0
  221. data/_sass/ui/_stars.scss +13 -0
  222. data/_sass/ui/_status.scss +163 -0
  223. data/_sass/ui/_steps.scss +156 -0
  224. data/_sass/ui/_switch-icon.scss +211 -0
  225. data/_sass/ui/_tables.scss +177 -0
  226. data/_sass/ui/_tags.scss +57 -0
  227. data/_sass/ui/_timeline.scss +61 -0
  228. data/_sass/ui/_toasts.scss +18 -0
  229. data/_sass/ui/_toolbar.scss +10 -0
  230. data/_sass/ui/_tracking.scss +29 -0
  231. data/_sass/ui/_type.scss +268 -0
  232. data/_sass/ui/forms/_form-check.scss +91 -0
  233. data/_sass/ui/forms/_form-colorinput.scss +54 -0
  234. data/_sass/ui/forms/_form-custom.scss +28 -0
  235. data/_sass/ui/forms/_form-icon.scss +35 -0
  236. data/_sass/ui/forms/_form-imagecheck.scss +105 -0
  237. data/_sass/ui/forms/_form-selectgroup.scss +153 -0
  238. data/_sass/ui/forms/_validation.scss +13 -0
  239. data/_sass/ui/typo/_hr.scss +77 -0
  240. data/_sass/utils/_background.scss +15 -0
  241. data/_sass/utils/_colors.scss +100 -0
  242. data/_sass/utils/_opacity.scss +7 -0
  243. data/_sass/utils/_scroll.scss +47 -0
  244. data/_sass/utils/_shadow.scss +9 -0
  245. data/_sass/utils/_sizing.scss +6 -0
  246. data/_sass/utils/_text.scss +15 -0
  247. data/_sass/vendors/_apexcharts.scss +48 -0
  248. data/_sass/vendors/_coloris.scss +72 -0
  249. data/_sass/vendors/_dropzone.scss +27 -0
  250. data/_sass/vendors/_fslightbox.scss +13 -0
  251. data/_sass/vendors/_jsvectormap.scss +47 -0
  252. data/_sass/vendors/_litepicker.scss +69 -0
  253. data/_sass/vendors/_nouislider.scss +49 -0
  254. data/_sass/vendors/_plyr.scss +3 -0
  255. data/_sass/vendors/_stars-rating.scss +22 -0
  256. data/_sass/vendors/_tinymce.scss +34 -0
  257. data/_sass/vendors/_tom-select.scss +81 -0
  258. data/_sass/vendors/_turbo.scss +3 -0
  259. data/_sass/vendors/_typed.scss +4 -0
  260. data/_sass/vendors/_wysiwyg.scss +34 -0
  261. data/assets/css/main.scss +10 -0
  262. data/assets/images/i4y-logo.jpg +0 -0
  263. data/assets/images/preview-dark.png +0 -0
  264. data/assets/js/custom.js +175 -0
  265. data/assets/js/custom.min.js +1 -0
  266. data/assets/js/theme.js +11 -30
  267. data/assets/js/theme.min.js +12 -0
  268. data/insights4you-jekyll-theme.gemspec +93 -0
  269. metadata +393 -25
  270. data/_includes/footer.html +0 -45
  271. data/_includes/head.html +0 -63
  272. data/_includes/header-logo.html +0 -179
  273. data/_includes/header-navbar.html +0 -69
  274. data/_includes/header-svg.html +0 -39
  275. data/_layouts/home.html +0 -19
  276. data/assets/css/theme.min.css +0 -90
@@ -0,0 +1,184 @@
1
+ {
2
+ "name": "bootstrap",
3
+ "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4
+ "version": "5.3.3",
5
+ "config": {
6
+ "version_short": "5.3"
7
+ },
8
+ "keywords": [
9
+ "css",
10
+ "sass",
11
+ "mobile-first",
12
+ "responsive",
13
+ "front-end",
14
+ "framework",
15
+ "web"
16
+ ],
17
+ "homepage": "https://getbootstrap.com/",
18
+ "author": "The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)",
19
+ "license": "MIT",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/twbs/bootstrap.git"
23
+ },
24
+ "bugs": {
25
+ "url": "https://github.com/twbs/bootstrap/issues"
26
+ },
27
+ "funding": [
28
+ {
29
+ "type": "github",
30
+ "url": "https://github.com/sponsors/twbs"
31
+ },
32
+ {
33
+ "type": "opencollective",
34
+ "url": "https://opencollective.com/bootstrap"
35
+ }
36
+ ],
37
+ "main": "dist/js/bootstrap.js",
38
+ "module": "dist/js/bootstrap.esm.js",
39
+ "sass": "scss/bootstrap.scss",
40
+ "style": "dist/css/bootstrap.css",
41
+ "scripts": {
42
+ "start": "npm-run-all --parallel watch docs-serve",
43
+ "bundlewatch": "bundlewatch --config .bundlewatch.config.json",
44
+ "css": "npm-run-all css-compile css-prefix css-rtl css-minify",
45
+ "css-compile": "sass --style expanded --source-map --embed-sources --no-error-css scss/:dist/css/",
46
+ "css-rtl": "cross-env NODE_ENV=RTL postcss --config build/postcss.config.mjs --dir \"dist/css\" --ext \".rtl.css\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*.rtl.css\"",
47
+ "css-lint": "npm-run-all --aggregate-output --continue-on-error --parallel css-lint-*",
48
+ "css-lint-stylelint": "stylelint \"**/*.{css,scss}\" --cache --cache-location .cache/.stylelintcache",
49
+ "css-lint-vars": "fusv scss/ site/assets/scss/",
50
+ "css-minify": "npm-run-all --aggregate-output --parallel css-minify-*",
51
+ "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\"",
52
+ "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\"",
53
+ "css-prefix": "npm-run-all --aggregate-output --parallel css-prefix-*",
54
+ "css-prefix-main": "postcss --config build/postcss.config.mjs --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"",
55
+ "css-prefix-examples": "postcss --config build/postcss.config.mjs --replace \"site/content/**/*.css\"",
56
+ "css-prefix-examples-rtl": "cross-env-shell NODE_ENV=RTL postcss --config build/postcss.config.mjs --dir \"site/content/docs/$npm_package_config_version_short/examples/\" --ext \".rtl.css\" --base \"site/content/docs/$npm_package_config_version_short/examples/\" \"site/content/docs/$npm_package_config_version_short/examples/{blog,carousel,dashboard,cheatsheet}/*.css\" \"!site/content/docs/$npm_package_config_version_short/examples/{blog,carousel,dashboard,cheatsheet}/*.rtl.css\"",
57
+ "css-test": "jasmine --config=scss/tests/jasmine.js",
58
+ "js": "npm-run-all js-compile js-minify",
59
+ "js-compile": "npm-run-all --aggregate-output --parallel js-compile-*",
60
+ "js-compile-standalone": "rollup --environment BUNDLE:false --config build/rollup.config.mjs --sourcemap",
61
+ "js-compile-standalone-esm": "rollup --environment ESM:true,BUNDLE:false --config build/rollup.config.mjs --sourcemap",
62
+ "js-compile-bundle": "rollup --environment BUNDLE:true --config build/rollup.config.mjs --sourcemap",
63
+ "js-compile-plugins": "node build/build-plugins.mjs",
64
+ "js-lint": "eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives --ext .html,.js,.mjs,.md .",
65
+ "js-minify": "npm-run-all --aggregate-output --parallel js-minify-*",
66
+ "js-minify-standalone": "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",
67
+ "js-minify-standalone-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",
68
+ "js-minify-bundle": "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",
69
+ "js-test": "npm-run-all --aggregate-output --parallel js-test-karma js-test-jquery js-test-integration-*",
70
+ "js-debug": "cross-env DEBUG=true npm run js-test-karma",
71
+ "js-test-karma": "karma start js/tests/karma.conf.js",
72
+ "js-test-integration-bundle": "rollup --config js/tests/integration/rollup.bundle.js",
73
+ "js-test-integration-modularity": "rollup --config js/tests/integration/rollup.bundle-modularity.js",
74
+ "js-test-cloud": "cross-env BROWSERSTACK=true npm run js-test-karma",
75
+ "js-test-jquery": "cross-env JQUERY=true npm run js-test-karma",
76
+ "lint": "npm-run-all --aggregate-output --continue-on-error --parallel js-lint css-lint lockfile-lint",
77
+ "docs": "npm-run-all docs-build docs-lint",
78
+ "docs-build": "hugo --cleanDestinationDir --printUnusedTemplates",
79
+ "docs-compile": "npm run docs-build",
80
+ "docs-vnu": "node build/vnu-jar.mjs",
81
+ "docs-lint": "npm run docs-vnu",
82
+ "docs-serve": "hugo server --port 9001 --disableFastRender --printUnusedTemplates",
83
+ "docs-serve-only": "npx sirv-cli _site --port 9001",
84
+ "lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json",
85
+ "update-deps": "ncu -u -x globby,jasmine,karma-browserstack-launcher,karma-rollup-preprocessor && echo Manually update site/assets/js/vendor",
86
+ "release": "npm-run-all dist release-sri docs-build release-zip*",
87
+ "release-sri": "node build/generate-sri.mjs",
88
+ "release-version": "node build/change-version.mjs",
89
+ "release-zip": "cross-env-shell \"rm -rf bootstrap-$npm_package_version-dist bootstrap-$npm_package_version-dist.zip && cp -r dist/ bootstrap-$npm_package_version-dist && zip -qr9 bootstrap-$npm_package_version-dist.zip bootstrap-$npm_package_version-dist && rm -rf bootstrap-$npm_package_version-dist\"",
90
+ "release-zip-examples": "node build/zip-examples.mjs",
91
+ "dist": "npm-run-all --aggregate-output --parallel css js",
92
+ "test": "npm-run-all lint dist js-test docs-build docs-lint",
93
+ "netlify": "cross-env-shell HUGO_BASEURL=$DEPLOY_PRIME_URL npm-run-all dist release-sri docs-build",
94
+ "watch": "npm-run-all --parallel watch-*",
95
+ "watch-css-main": "nodemon --watch scss/ --ext scss --exec \"npm-run-all css-lint css-compile css-prefix\"",
96
+ "watch-css-dist": "nodemon --watch dist/css/ --ext css --ignore \"dist/css/*.rtl.*\" --exec \"npm run css-rtl\"",
97
+ "watch-css-docs": "nodemon --watch site/assets/scss/ --ext scss --exec \"npm run css-lint\"",
98
+ "watch-css-test": "nodemon --watch scss/ --ext scss,js --exec \"npm run css-test\"",
99
+ "watch-js-main": "nodemon --watch js/src/ --ext js --exec \"npm-run-all js-lint js-compile\"",
100
+ "watch-js-docs": "nodemon --watch site/assets/js/ --ext js --exec \"npm run js-lint\""
101
+ },
102
+ "peerDependencies": {
103
+ "@popperjs/core": "^2.11.8"
104
+ },
105
+ "devDependencies": {
106
+ "@babel/cli": "^7.23.9",
107
+ "@babel/core": "^7.23.9",
108
+ "@babel/preset-env": "^7.23.9",
109
+ "@popperjs/core": "^2.11.8",
110
+ "@rollup/plugin-babel": "^6.0.4",
111
+ "@rollup/plugin-commonjs": "^25.0.7",
112
+ "@rollup/plugin-node-resolve": "^15.2.3",
113
+ "@rollup/plugin-replace": "^5.0.5",
114
+ "autoprefixer": "^10.4.17",
115
+ "bundlewatch": "^0.3.3",
116
+ "clean-css-cli": "^5.6.3",
117
+ "cross-env": "^7.0.3",
118
+ "eslint": "^8.56.0",
119
+ "eslint-config-xo": "^0.44.0",
120
+ "eslint-plugin-html": "^8.0.0",
121
+ "eslint-plugin-import": "^2.29.1",
122
+ "eslint-plugin-markdown": "^3.0.1",
123
+ "eslint-plugin-unicorn": "^51.0.1",
124
+ "find-unused-sass-variables": "^5.0.0",
125
+ "globby": "^11.1.0",
126
+ "hammer-simulator": "0.0.1",
127
+ "hugo-bin": "^0.119.0",
128
+ "ip": "^2.0.1",
129
+ "jasmine": "^5.1.0",
130
+ "jquery": "^3.7.1",
131
+ "karma": "^6.4.2",
132
+ "karma-browserstack-launcher": "1.4.0",
133
+ "karma-chrome-launcher": "^3.2.0",
134
+ "karma-coverage-istanbul-reporter": "^3.0.3",
135
+ "karma-detect-browsers": "^2.3.3",
136
+ "karma-firefox-launcher": "^2.1.2",
137
+ "karma-jasmine": "^5.1.0",
138
+ "karma-jasmine-html-reporter": "^2.1.0",
139
+ "karma-rollup-preprocessor": "7.0.7",
140
+ "lockfile-lint": "^4.13.1",
141
+ "nodemon": "^3.0.3",
142
+ "npm-run-all2": "^6.1.2",
143
+ "postcss": "^8.4.35",
144
+ "postcss-cli": "^11.0.0",
145
+ "rollup": "^4.12.0",
146
+ "rollup-plugin-istanbul": "^5.0.0",
147
+ "rtlcss": "^4.1.1",
148
+ "sass": "^1.71.0",
149
+ "sass-true": "^7.0.1",
150
+ "shelljs": "^0.8.5",
151
+ "stylelint": "^16.2.1",
152
+ "stylelint-config-twbs-bootstrap": "^14.0.0",
153
+ "terser": "^5.27.2",
154
+ "vnu-jar": "23.4.11"
155
+ },
156
+ "files": [
157
+ "dist/{css,js}/*.{css,js,map}",
158
+ "js/{src,dist}/**/*.{js,map}",
159
+ "js/index.{esm,umd}.js",
160
+ "scss/**/*.scss",
161
+ "!scss/tests/**"
162
+ ],
163
+ "hugo-bin": {
164
+ "buildTags": "extended"
165
+ },
166
+ "jspm": {
167
+ "registry": "npm",
168
+ "main": "js/bootstrap",
169
+ "directories": {
170
+ "lib": "dist"
171
+ },
172
+ "shim": {
173
+ "js/bootstrap": {
174
+ "deps": [
175
+ "@popperjs/core"
176
+ ]
177
+ }
178
+ },
179
+ "dependencies": {},
180
+ "peerDependencies": {
181
+ "@popperjs/core": "^2.11.8"
182
+ }
183
+ }
184
+ }
@@ -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
+ }
@@ -0,0 +1,142 @@
1
+ // Make the div behave like a button
2
+ .btn-group,
3
+ .btn-group-vertical {
4
+ position: relative;
5
+ display: inline-flex;
6
+ vertical-align: middle; // match .btn alignment given font-size hack above
7
+
8
+ > .btn {
9
+ position: relative;
10
+ flex: 1 1 auto;
11
+ }
12
+
13
+ // Bring the hover, focused, and "active" buttons to the front to overlay
14
+ // the borders properly
15
+ > .btn-check:checked + .btn,
16
+ > .btn-check:focus + .btn,
17
+ > .btn:hover,
18
+ > .btn:focus,
19
+ > .btn:active,
20
+ > .btn.active {
21
+ z-index: 1;
22
+ }
23
+ }
24
+
25
+ // Optional: Group multiple button groups together for a toolbar
26
+ .btn-toolbar {
27
+ display: flex;
28
+ flex-wrap: wrap;
29
+ justify-content: flex-start;
30
+
31
+ .input-group {
32
+ width: auto;
33
+ }
34
+ }
35
+
36
+ .btn-group {
37
+ @include border-radius($btn-border-radius);
38
+
39
+ // Prevent double borders when buttons are next to each other
40
+ > :not(.btn-check:first-child) + .btn,
41
+ > .btn-group:not(:first-child) {
42
+ margin-left: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list
43
+ }
44
+
45
+ // Reset rounded corners
46
+ > .btn:not(:last-child):not(.dropdown-toggle),
47
+ > .btn.dropdown-toggle-split:first-child,
48
+ > .btn-group:not(:last-child) > .btn {
49
+ @include border-end-radius(0);
50
+ }
51
+
52
+ // The left radius should be 0 if the button is:
53
+ // - the "third or more" child
54
+ // - the second child and the previous element isn't `.btn-check` (making it the first child visually)
55
+ // - part of a btn-group which isn't the first child
56
+ > .btn:nth-child(n + 3),
57
+ > :not(.btn-check) + .btn,
58
+ > .btn-group:not(:first-child) > .btn {
59
+ @include border-start-radius(0);
60
+ }
61
+ }
62
+
63
+ // Sizing
64
+ //
65
+ // Remix the default button sizing classes into new ones for easier manipulation.
66
+
67
+ .btn-group-sm > .btn { @extend .btn-sm; }
68
+ .btn-group-lg > .btn { @extend .btn-lg; }
69
+
70
+
71
+ //
72
+ // Split button dropdowns
73
+ //
74
+
75
+ .dropdown-toggle-split {
76
+ padding-right: $btn-padding-x * .75;
77
+ padding-left: $btn-padding-x * .75;
78
+
79
+ &::after,
80
+ .dropup &::after,
81
+ .dropend &::after {
82
+ margin-left: 0;
83
+ }
84
+
85
+ .dropstart &::before {
86
+ margin-right: 0;
87
+ }
88
+ }
89
+
90
+ .btn-sm + .dropdown-toggle-split {
91
+ padding-right: $btn-padding-x-sm * .75;
92
+ padding-left: $btn-padding-x-sm * .75;
93
+ }
94
+
95
+ .btn-lg + .dropdown-toggle-split {
96
+ padding-right: $btn-padding-x-lg * .75;
97
+ padding-left: $btn-padding-x-lg * .75;
98
+ }
99
+
100
+
101
+ // The clickable button for toggling the menu
102
+ // Set the same inset shadow as the :active state
103
+ .btn-group.show .dropdown-toggle {
104
+ @include box-shadow($btn-active-box-shadow);
105
+
106
+ // Show no shadow for `.btn-link` since it has no other button styles.
107
+ &.btn-link {
108
+ @include box-shadow(none);
109
+ }
110
+ }
111
+
112
+
113
+ //
114
+ // Vertical button groups
115
+ //
116
+
117
+ .btn-group-vertical {
118
+ flex-direction: column;
119
+ align-items: flex-start;
120
+ justify-content: center;
121
+
122
+ > .btn,
123
+ > .btn-group {
124
+ width: 100%;
125
+ }
126
+
127
+ > .btn:not(:first-child),
128
+ > .btn-group:not(:first-child) {
129
+ margin-top: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list
130
+ }
131
+
132
+ // Reset rounded corners
133
+ > .btn:not(:last-child):not(.dropdown-toggle),
134
+ > .btn-group:not(:last-child) > .btn {
135
+ @include border-bottom-radius(0);
136
+ }
137
+
138
+ > .btn ~ .btn,
139
+ > .btn-group:not(:first-child) > .btn {
140
+ @include border-top-radius(0);
141
+ }
142
+ }