bootstrap-italia 2.12.1 → 2.13.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 (380) hide show
  1. package/README.EN.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/bootstrap-italia.esm.js +1 -1
  4. package/dist/css/bootstrap-italia.min.css +9 -1
  5. package/dist/css/bootstrap-italia.min.css.map +1 -1
  6. package/dist/js/bootstrap-italia.bundle.min.js +19 -23
  7. package/dist/js/bootstrap-italia.min.js +18 -2
  8. package/dist/plugins/accept-overlay.js +19 -9
  9. package/dist/plugins/accept-overlay.js.map +1 -1
  10. package/dist/plugins/accordion.js +19 -24
  11. package/dist/plugins/accordion.js.map +1 -1
  12. package/dist/plugins/alert.js +67 -2
  13. package/dist/plugins/alert.js.map +1 -1
  14. package/dist/plugins/{backToTop.js → back-to-top.js} +14 -5
  15. package/dist/plugins/back-to-top.js.map +1 -0
  16. package/dist/plugins/base-component.js +91 -0
  17. package/dist/plugins/base-component.js.map +1 -0
  18. package/dist/plugins/button.js +58 -2
  19. package/dist/plugins/button.js.map +1 -1
  20. package/dist/plugins/carousel-bi.js +19 -9
  21. package/dist/plugins/carousel-bi.js.map +1 -1
  22. package/dist/plugins/carousel.js +445 -2
  23. package/dist/plugins/carousel.js.map +1 -1
  24. package/dist/plugins/collapse.js +273 -2
  25. package/dist/plugins/collapse.js.map +1 -1
  26. package/dist/plugins/cookiebar.js +39 -52
  27. package/dist/plugins/cookiebar.js.map +1 -1
  28. package/dist/plugins/dimmer.js +19 -8
  29. package/dist/plugins/dimmer.js.map +1 -1
  30. package/dist/plugins/dom/data.js +61 -0
  31. package/dist/plugins/dom/data.js.map +1 -0
  32. package/dist/plugins/dom/event-handler.js +296 -0
  33. package/dist/plugins/dom/event-handler.js.map +1 -0
  34. package/dist/plugins/dom/manipulator.js +76 -0
  35. package/dist/plugins/dom/manipulator.js.map +1 -0
  36. package/dist/plugins/dom/selector-engine.js +82 -0
  37. package/dist/plugins/dom/selector-engine.js.map +1 -0
  38. package/dist/plugins/dropdown.js +433 -2
  39. package/dist/plugins/dropdown.js.map +1 -1
  40. package/dist/plugins/fonts-loader.js +9 -1
  41. package/dist/plugins/fonts-loader.js.map +1 -1
  42. package/dist/plugins/form-validate.js +22 -8
  43. package/dist/plugins/form-validate.js.map +1 -1
  44. package/dist/plugins/forward.js +21 -18
  45. package/dist/plugins/forward.js.map +1 -1
  46. package/dist/plugins/header-sticky.js +11 -2
  47. package/dist/plugins/header-sticky.js.map +1 -1
  48. package/dist/plugins/history-back.js +17 -17
  49. package/dist/plugins/history-back.js.map +1 -1
  50. package/dist/plugins/init.js +9 -0
  51. package/dist/plugins/init.js.map +1 -1
  52. package/dist/plugins/input-label.js +14 -3
  53. package/dist/plugins/input-label.js.map +1 -1
  54. package/dist/plugins/input-number.js +13 -4
  55. package/dist/plugins/input-number.js.map +1 -1
  56. package/dist/plugins/input-password.js +48 -37
  57. package/dist/plugins/input-password.js.map +1 -1
  58. package/dist/plugins/input-search-autocomplete.js +9 -11
  59. package/dist/plugins/input-search-autocomplete.js.map +1 -1
  60. package/dist/plugins/input.js +12 -3
  61. package/dist/plugins/input.js.map +1 -1
  62. package/dist/plugins/list.js +23 -12
  63. package/dist/plugins/list.js.map +1 -1
  64. package/dist/plugins/masonry.js +29 -29
  65. package/dist/plugins/masonry.js.map +1 -1
  66. package/dist/plugins/modal.js +358 -2
  67. package/dist/plugins/modal.js.map +1 -1
  68. package/dist/plugins/navbar-collapsible.js +55 -45
  69. package/dist/plugins/navbar-collapsible.js.map +1 -1
  70. package/dist/plugins/navscroll.js +16 -23
  71. package/dist/plugins/navscroll.js.map +1 -1
  72. package/dist/plugins/notification.js +34 -23
  73. package/dist/plugins/notification.js.map +1 -1
  74. package/dist/plugins/offcanvas.js +259 -2
  75. package/dist/plugins/offcanvas.js.map +1 -1
  76. package/dist/plugins/popover.js +76 -2
  77. package/dist/plugins/popover.js.map +1 -1
  78. package/dist/plugins/progress-donut.js +19 -12
  79. package/dist/plugins/progress-donut.js.map +1 -1
  80. package/dist/plugins/scrollspy.js +273 -2
  81. package/dist/plugins/scrollspy.js.map +1 -1
  82. package/dist/plugins/select-autocomplete.js +10 -1
  83. package/dist/plugins/select-autocomplete.js.map +1 -1
  84. package/dist/plugins/sticky.js +21 -18
  85. package/dist/plugins/sticky.js.map +1 -1
  86. package/dist/plugins/tab.js +244 -27
  87. package/dist/plugins/tab.js.map +1 -1
  88. package/dist/plugins/toast.js +203 -2
  89. package/dist/plugins/toast.js.map +1 -1
  90. package/dist/plugins/tooltip.js +602 -2
  91. package/dist/plugins/tooltip.js.map +1 -1
  92. package/dist/plugins/track-focus.js +8 -0
  93. package/dist/plugins/track-focus.js.map +1 -1
  94. package/dist/plugins/transfer.js +11 -16
  95. package/dist/plugins/transfer.js.map +1 -1
  96. package/dist/plugins/upload-dragdrop.js +13 -4
  97. package/dist/plugins/upload-dragdrop.js.map +1 -1
  98. package/dist/plugins/util/backdrop.js +155 -0
  99. package/dist/plugins/util/backdrop.js.map +1 -0
  100. package/dist/plugins/util/component-functions.js +38 -0
  101. package/dist/plugins/util/component-functions.js.map +1 -0
  102. package/dist/plugins/util/config.js +70 -0
  103. package/dist/plugins/util/config.js.map +1 -0
  104. package/dist/plugins/util/cookies.js +8 -0
  105. package/dist/plugins/util/cookies.js.map +1 -1
  106. package/dist/plugins/util/device.js +0 -3
  107. package/dist/plugins/util/device.js.map +1 -1
  108. package/dist/plugins/util/dom.js +8 -0
  109. package/dist/plugins/util/dom.js.map +1 -1
  110. package/dist/plugins/util/focustrap.js +121 -0
  111. package/dist/plugins/util/focustrap.js.map +1 -0
  112. package/dist/plugins/util/index.js +280 -0
  113. package/dist/plugins/util/index.js.map +1 -0
  114. package/dist/plugins/util/observer.js +8 -0
  115. package/dist/plugins/util/observer.js.map +1 -1
  116. package/dist/plugins/util/on-document-scroll.js +20 -9
  117. package/dist/plugins/util/on-document-scroll.js.map +1 -1
  118. package/dist/plugins/util/pageScroll.js +8 -0
  119. package/dist/plugins/util/pageScroll.js.map +1 -1
  120. package/dist/plugins/util/sanitizer.js +115 -0
  121. package/dist/plugins/util/sanitizer.js.map +1 -0
  122. package/dist/plugins/util/scrollbar.js +120 -0
  123. package/dist/plugins/util/scrollbar.js.map +1 -0
  124. package/dist/plugins/util/swipe.js +150 -0
  125. package/dist/plugins/util/swipe.js.map +1 -0
  126. package/dist/plugins/util/template-factory.js +166 -0
  127. package/dist/plugins/util/template-factory.js.map +1 -0
  128. package/dist/plugins/util/tween.js +10 -1
  129. package/dist/plugins/util/tween.js.map +1 -1
  130. package/dist/plugins/util/youtube-video.js +12 -21
  131. package/dist/plugins/util/youtube-video.js.map +1 -1
  132. package/dist/plugins/videoplayer.js +19 -8
  133. package/dist/plugins/videoplayer.js.map +1 -1
  134. package/dist/version.js +10 -3
  135. package/dist/version.js.map +1 -1
  136. package/package.json +6 -7
  137. package/src/js/bootstrap-italia.entry.js +8 -0
  138. package/src/js/bootstrap-italia.esm.js +9 -1
  139. package/src/js/icons.js +8 -0
  140. package/src/js/load-plugin.js +8 -0
  141. package/src/js/plugins/accept-overlay.js +18 -10
  142. package/src/js/plugins/accordion.js +16 -22
  143. package/src/js/plugins/alert.js +66 -2
  144. package/src/js/plugins/{backToTop.js → back-to-top.js} +12 -4
  145. package/src/js/plugins/base-component.js +89 -0
  146. package/src/js/plugins/button.js +57 -2
  147. package/src/js/plugins/carousel-bi.js +18 -9
  148. package/src/js/plugins/carousel.js +444 -2
  149. package/src/js/plugins/collapse.js +272 -2
  150. package/src/js/plugins/cookiebar.js +37 -60
  151. package/src/js/plugins/dimmer.js +18 -8
  152. package/src/js/plugins/dom/data.js +58 -0
  153. package/src/js/plugins/dom/event-handler.js +301 -0
  154. package/src/js/plugins/dom/manipulator.js +75 -0
  155. package/src/js/plugins/dom/selector-engine.js +80 -0
  156. package/src/js/plugins/dropdown.js +432 -2
  157. package/src/js/plugins/fonts-loader.js +9 -1
  158. package/src/js/plugins/form-validate.js +21 -8
  159. package/src/js/plugins/form.js +11 -3
  160. package/src/js/plugins/forward.js +18 -16
  161. package/src/js/plugins/header-sticky.js +10 -2
  162. package/src/js/plugins/history-back.js +14 -14
  163. package/src/js/plugins/init.js +8 -0
  164. package/src/js/plugins/input-label.js +13 -3
  165. package/src/js/plugins/input-number.js +12 -4
  166. package/src/js/plugins/input-password.js +46 -36
  167. package/src/js/plugins/input-search-autocomplete.js +9 -13
  168. package/src/js/plugins/input.js +11 -3
  169. package/src/js/plugins/list.js +22 -12
  170. package/src/js/plugins/masonry.js +26 -27
  171. package/src/js/plugins/modal.js +357 -2
  172. package/src/js/plugins/navbar-collapsible.js +55 -53
  173. package/src/js/plugins/navscroll.js +16 -23
  174. package/src/js/plugins/notification.js +33 -23
  175. package/src/js/plugins/offcanvas.js +258 -2
  176. package/src/js/plugins/popover.js +75 -2
  177. package/src/js/plugins/progress-donut.js +17 -13
  178. package/src/js/plugins/scrollspy.js +272 -2
  179. package/src/js/plugins/select-autocomplete.js +9 -1
  180. package/src/js/plugins/sticky.js +21 -23
  181. package/src/js/plugins/tab.js +243 -27
  182. package/src/js/plugins/toast.js +206 -2
  183. package/src/js/plugins/tooltip.js +601 -2
  184. package/src/js/plugins/track-focus.js +8 -0
  185. package/src/js/plugins/transfer.js +12 -24
  186. package/src/js/plugins/upload-dragdrop.js +12 -4
  187. package/src/js/plugins/util/backdrop.js +153 -0
  188. package/src/js/plugins/util/component-functions.js +36 -0
  189. package/src/js/plugins/util/config.js +68 -0
  190. package/src/js/plugins/util/cookies.js +8 -0
  191. package/src/js/plugins/util/device.js +0 -3
  192. package/src/js/plugins/util/dom.js +8 -0
  193. package/src/js/plugins/util/focustrap.js +119 -0
  194. package/src/js/plugins/util/index.js +317 -0
  195. package/src/js/plugins/util/observer.js +8 -0
  196. package/src/js/plugins/util/on-document-scroll.js +19 -9
  197. package/src/js/plugins/util/pageScroll.js +8 -0
  198. package/src/js/plugins/util/sanitizer.js +112 -0
  199. package/src/js/plugins/util/scrollbar.js +118 -0
  200. package/src/js/plugins/util/swipe.js +148 -0
  201. package/src/js/plugins/util/template-factory.js +164 -0
  202. package/src/js/plugins/util/tween.js +9 -1
  203. package/src/js/plugins/util/youtube-video.js +12 -21
  204. package/src/js/plugins/videoplayer.js +18 -8
  205. package/src/js/version.js +10 -3
  206. package/src/scss/base/_containers.scss +41 -0
  207. package/src/scss/base/_functions.scss +373 -0
  208. package/src/scss/base/_helpers.scss +10 -0
  209. package/src/scss/base/_maps.scss +54 -0
  210. package/src/scss/base/_mixins.scss +44 -0
  211. package/src/scss/base/_reboot.scss +590 -0
  212. package/src/scss/base/_root.scss +73 -0
  213. package/src/scss/base/_transitions.scss +27 -0
  214. package/src/scss/base/_utilities.scss +742 -0
  215. package/src/scss/base/_variables.scss +2123 -0
  216. package/src/scss/base/_version.scss +3 -0
  217. package/src/scss/base/helpers/_clearfix.scss +3 -0
  218. package/src/scss/base/helpers/_color-bg.scss +10 -0
  219. package/src/scss/base/helpers/_colored-links.scss +16 -0
  220. package/src/scss/base/helpers/_position.scss +36 -0
  221. package/src/scss/base/helpers/_ratio.scss +26 -0
  222. package/src/scss/base/helpers/_stacks.scss +15 -0
  223. package/src/scss/base/helpers/_stretched-link.scss +15 -0
  224. package/src/scss/base/helpers/_text-truncation.scss +7 -0
  225. package/src/scss/base/helpers/_visually-hidden.scss +8 -0
  226. package/src/scss/base/helpers/_vr.scss +8 -0
  227. package/src/scss/base/mixins/_alert.scss +15 -0
  228. package/src/scss/base/mixins/_backdrop.scss +18 -0
  229. package/src/scss/base/mixins/_banner.scss +11 -0
  230. package/src/scss/base/mixins/_border-radius.scss +77 -0
  231. package/src/scss/base/mixins/_box-shadow.scss +18 -0
  232. package/src/scss/base/mixins/_breakpoints.scss +127 -0
  233. package/src/scss/base/mixins/_buttons.scss +141 -0
  234. package/src/scss/base/mixins/_caret.scss +64 -0
  235. package/src/scss/base/mixins/_clearfix.scss +9 -0
  236. package/src/scss/base/mixins/_color-scheme.scss +7 -0
  237. package/src/scss/base/mixins/_container.scss +11 -0
  238. package/src/scss/base/mixins/_deprecate.scss +10 -0
  239. package/src/scss/base/mixins/_forms.scss +152 -0
  240. package/src/scss/base/mixins/_gradients.scss +47 -0
  241. package/src/scss/base/mixins/_grid.scss +151 -0
  242. package/src/scss/base/mixins/_image.scss +15 -0
  243. package/src/scss/base/mixins/_list-group.scss +24 -0
  244. package/src/scss/base/mixins/_lists.scss +7 -0
  245. package/src/scss/base/mixins/_pagination.scss +10 -0
  246. package/src/scss/base/mixins/_reset-text.scss +17 -0
  247. package/src/scss/base/mixins/_resize.scss +6 -0
  248. package/src/scss/base/mixins/_table-variants.scss +24 -0
  249. package/src/scss/base/mixins/_text-truncate.scss +8 -0
  250. package/src/scss/base/mixins/_transition.scss +26 -0
  251. package/src/scss/base/mixins/_utilities.scss +96 -0
  252. package/src/scss/base/mixins/_visually-hidden.scss +29 -0
  253. package/src/scss/base/utilities/_api.scss +45 -0
  254. package/src/scss/base/vendor/_rfs.scss +337 -0
  255. package/src/scss/bootstrap-italia.scss +137 -156
  256. package/src/scss/components/_accordion.scss +297 -0
  257. package/src/scss/components/_badge.scss +60 -0
  258. package/src/scss/components/_breadcrumb.scss +95 -0
  259. package/src/scss/components/_button-group.scss +143 -0
  260. package/src/scss/components/_buttons.scss +467 -0
  261. package/src/scss/{custom → components}/_card.scss +228 -0
  262. package/src/scss/{custom → components}/_carousel.scss +225 -3
  263. package/src/scss/components/_dropdown.scss +480 -0
  264. package/src/scss/{custom → components}/_grid.scss +33 -0
  265. package/src/scss/{custom → components}/_gridlist.scss +7 -0
  266. package/src/scss/{custom → components}/_hero.scss +23 -57
  267. package/src/scss/components/_images.scss +48 -0
  268. package/src/scss/{custom → components}/_linklist.scss +0 -1
  269. package/src/scss/components/_list-group.scss +190 -0
  270. package/src/scss/components/_modal.scss +475 -0
  271. package/src/scss/components/_nav.scss +169 -0
  272. package/src/scss/components/_navbar.scss +273 -0
  273. package/src/scss/components/_offcanvas.scss +144 -0
  274. package/src/scss/components/_pagination.scss +108 -0
  275. package/src/scss/components/_placeholders.scss +51 -0
  276. package/src/scss/components/_popover.scss +298 -0
  277. package/src/scss/components/_progress-bars.scss +126 -0
  278. package/src/scss/{custom → components}/_steppers.scss +2 -2
  279. package/src/scss/{custom → components}/_tab.scss +3 -7
  280. package/src/scss/components/_tables.scss +171 -0
  281. package/src/scss/components/_toasts.scss +73 -0
  282. package/src/scss/{custom → components}/_toolbar.scss +19 -12
  283. package/src/scss/components/_tooltip.scss +139 -0
  284. package/src/scss/{custom → components}/_type.scss +92 -0
  285. package/src/scss/forms/_accessible-autocomplete.scss +188 -0
  286. package/src/scss/forms/_floating-labels.scss +75 -0
  287. package/src/scss/forms/_form-check.scss +175 -0
  288. package/src/scss/forms/_form-control.scss +201 -0
  289. package/src/scss/forms/_form-range.scss +95 -0
  290. package/src/scss/{custom → forms}/_form-select.scss +72 -0
  291. package/src/scss/forms/_form-text.scss +11 -0
  292. package/src/scss/{custom → forms}/_forms.scss +8 -12
  293. package/src/scss/forms/_input-group.scss +129 -0
  294. package/src/scss/forms/_labels.scss +36 -0
  295. package/src/scss/forms/_validation.scss +12 -0
  296. package/src/scss/utilities/icons.scss +5 -5
  297. package/types/index.d.ts +4 -1
  298. package/types/plugins/video.ts +33 -0
  299. package/dist/plugins/backToTop.js.map +0 -1
  300. package/src/scss/_functions.scss +0 -38
  301. package/src/scss/_variables.scss +0 -639
  302. package/src/scss/custom/_accessible-autocomplete.scss +0 -30
  303. package/src/scss/custom/_accordion.scss +0 -176
  304. package/src/scss/custom/_badge.scss +0 -29
  305. package/src/scss/custom/_breadcrumb.scss +0 -51
  306. package/src/scss/custom/_buttons.scss +0 -235
  307. package/src/scss/custom/_componente-base.scss +0 -6
  308. package/src/scss/custom/_dropdown.scss +0 -248
  309. package/src/scss/custom/_form-datepicker.scss +0 -604
  310. package/src/scss/custom/_images.scss +0 -10
  311. package/src/scss/custom/_modal.scss +0 -248
  312. package/src/scss/custom/_popover.scss +0 -106
  313. package/src/scss/custom/_progress-bars.scss +0 -70
  314. package/src/scss/custom/_tables.scss +0 -11
  315. package/src/scss/custom/_timepicker.scss +0 -252
  316. package/src/scss/custom/_tooltip.scss +0 -33
  317. package/src/scss/custom/_version.scss +0 -3
  318. package/src/scss/custom/mixins/_buttons.scss +0 -67
  319. package/src/scss/utilities/colors_vars.scss +0 -426
  320. /package/src/scss/{custom → base}/mixins/_text-emphasis.scss +0 -0
  321. /package/src/scss/{custom → components}/_accept-overlay.scss +0 -0
  322. /package/src/scss/{custom → components}/_affix.scss +0 -0
  323. /package/src/scss/{custom → components}/_alert.scss +0 -0
  324. /package/src/scss/{custom → components}/_anchor.scss +0 -0
  325. /package/src/scss/{custom → components}/_avatar.scss +0 -0
  326. /package/src/scss/{custom → components}/_back-to-top.scss +0 -0
  327. /package/src/scss/{custom → components}/_bottomnav.scss +0 -0
  328. /package/src/scss/{custom → components}/_calendar.scss +0 -0
  329. /package/src/scss/{custom → components}/_callout.scss +0 -0
  330. /package/src/scss/{custom → components}/_chips.scss +0 -0
  331. /package/src/scss/{custom → components}/_code.scss +0 -0
  332. /package/src/scss/{custom → components}/_cookiebar.scss +0 -0
  333. /package/src/scss/{custom → components}/_dimmer.scss +0 -0
  334. /package/src/scss/{custom → components}/_figcaption.scss +0 -0
  335. /package/src/scss/{custom → components}/_font.scss +0 -0
  336. /package/src/scss/{custom → components}/_footer.scss +0 -0
  337. /package/src/scss/{custom → components}/_forward.scss +0 -0
  338. /package/src/scss/{custom → components}/_header.scss +0 -0
  339. /package/src/scss/{custom → components}/_headercenter.scss +0 -0
  340. /package/src/scss/{custom → components}/_headercentertheme.scss +0 -0
  341. /package/src/scss/{custom → components}/_headernavbar.scss +0 -0
  342. /package/src/scss/{custom → components}/_headernavbartheme.scss +0 -0
  343. /package/src/scss/{custom → components}/_headerslim.scss +0 -0
  344. /package/src/scss/{custom → components}/_headerslimtheme.scss +0 -0
  345. /package/src/scss/{custom → components}/_imgresponsive.scss +0 -0
  346. /package/src/scss/{custom → components}/_list.scss +0 -0
  347. /package/src/scss/{custom → components}/_map.scss +0 -0
  348. /package/src/scss/{custom → components}/_masonry-loader.scss +0 -0
  349. /package/src/scss/{custom → components}/_megamenu.scss +0 -0
  350. /package/src/scss/{custom → components}/_navigation.scss +0 -0
  351. /package/src/scss/{custom → components}/_navigationtheme.scss +0 -0
  352. /package/src/scss/{custom → components}/_navscroll.scss +0 -0
  353. /package/src/scss/{custom → components}/_navscrolltheme.scss +0 -0
  354. /package/src/scss/{custom → components}/_notifications.scss +0 -0
  355. /package/src/scss/{custom → components}/_overlay-panel.scss +0 -0
  356. /package/src/scss/{custom → components}/_page-scroll.scss +0 -0
  357. /package/src/scss/{custom → components}/_pager.scss +0 -0
  358. /package/src/scss/{custom → components}/_point-list.scss +0 -0
  359. /package/src/scss/{custom → components}/_print.scss +0 -0
  360. /package/src/scss/{custom → components}/_progress-donuts.scss +0 -0
  361. /package/src/scss/{custom → components}/_progress-spinners.scss +0 -0
  362. /package/src/scss/{custom → components}/_rating-list.scss +0 -0
  363. /package/src/scss/{custom → components}/_rating.scss +0 -0
  364. /package/src/scss/{custom → components}/_sections.scss +0 -0
  365. /package/src/scss/{custom → components}/_sidebar.scss +0 -0
  366. /package/src/scss/{custom → components}/_sidebarthemes.scss +0 -0
  367. /package/src/scss/{custom → components}/_skiplinks.scss +0 -0
  368. /package/src/scss/{custom → components}/_sticky.scss +0 -0
  369. /package/src/scss/{custom → components}/_thumbnav.scss +0 -0
  370. /package/src/scss/{custom → components}/_timeline.scss +0 -0
  371. /package/src/scss/{custom → components}/_videoplayer.scss +0 -0
  372. /package/src/scss/{custom → forms}/_autocomplete.scss +0 -0
  373. /package/src/scss/{custom → forms}/_form-input-file.scss +0 -0
  374. /package/src/scss/{custom → forms}/_form-input-number.scss +0 -0
  375. /package/src/scss/{custom → forms}/_form-input-upload.scss +0 -0
  376. /package/src/scss/{custom → forms}/_form-password.scss +0 -0
  377. /package/src/scss/{custom → forms}/_form-toggles.scss +0 -0
  378. /package/src/scss/{custom → forms}/_form-transfer.scss +0 -0
  379. /package/src/scss/{custom → forms}/_just-validate.scss +0 -0
  380. /package/types/plugins/{backToTop.d.ts → back-to-top.d.ts} +0 -0
@@ -0,0 +1,467 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .btn {
6
+ // scss-docs-start btn-css-vars
7
+ --#{$prefix}btn-padding-x: #{$btn-padding-x};
8
+ --#{$prefix}btn-padding-y: #{$btn-padding-y};
9
+ --#{$prefix}btn-font-family: #{$btn-font-family};
10
+ @include rfs($btn-font-size, --#{$prefix}btn-font-size);
11
+ --#{$prefix}btn-font-weight: #{$btn-font-weight};
12
+ --#{$prefix}btn-line-height: #{$btn-line-height};
13
+ --#{$prefix}btn-color: #{$body-color};
14
+ --#{$prefix}btn-bg: transparent;
15
+ --#{$prefix}btn-border-width: #{$btn-border-width};
16
+ --#{$prefix}btn-border-color: transparent;
17
+ --#{$prefix}btn-border-radius: #{$btn-border-radius};
18
+ --#{$prefix}btn-hover-border-color: transparent;
19
+ --#{$prefix}btn-box-shadow: #{$btn-box-shadow};
20
+ --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
21
+ --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), 0.5);
22
+ // scss-docs-end btn-css-vars
23
+
24
+ display: inline-block;
25
+ font-family: var(--#{$prefix}btn-font-family);
26
+ @include font-size(var(--#{$prefix}btn-font-size));
27
+ font-weight: var(--#{$prefix}btn-font-weight);
28
+ line-height: var(--#{$prefix}btn-line-height);
29
+ color: var(--#{$prefix}btn-color);
30
+ text-align: center;
31
+ vertical-align: middle;
32
+ cursor: if($enable-button-pointers, pointer, null);
33
+ user-select: none;
34
+ border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);
35
+ @include border-radius(var(--#{$prefix}btn-border-radius));
36
+ @include gradient-bg(var(--#{$prefix}btn-bg));
37
+ @include box-shadow(var(--#{$prefix}btn-box-shadow));
38
+ @include transition($btn-transition);
39
+
40
+ //btn-css-vars
41
+ --bs-btn-color: $primary;
42
+ --bs-btn-hover-color: $color-background-primary-hover;
43
+ --bs-btn-active-color: #003366; // TODO change with tokens when available
44
+ //btn-css-vars-end
45
+ padding: 12px 24px;
46
+ font-size: $btn-font-size;
47
+ white-space: initial;
48
+ text-decoration: none;
49
+ box-shadow: none;
50
+
51
+ &:hover {
52
+ color: var(--#{$prefix}btn-hover-color);
53
+ text-decoration: if($link-hover-decoration == underline, none, null);
54
+ background-color: var(--#{$prefix}btn-hover-bg);
55
+ border-color: var(--#{$prefix}btn-hover-border-color);
56
+ }
57
+
58
+ .btn-check + &:hover {
59
+ // override for the checkbox/radio buttons
60
+ color: var(--#{$prefix}btn-color);
61
+ background-color: var(--#{$prefix}btn-bg);
62
+ border-color: var(--#{$prefix}btn-border-color);
63
+ }
64
+
65
+ &:focus-visible {
66
+ color: var(--#{$prefix}btn-hover-color);
67
+ @include gradient-bg(var(--#{$prefix}btn-hover-bg));
68
+ border-color: var(--#{$prefix}btn-hover-border-color);
69
+ outline: 0;
70
+ // Avoid using mixin so we can pass custom focus shadow properly
71
+ @if $enable-shadows {
72
+ box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
73
+ } @else {
74
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
75
+ }
76
+ }
77
+
78
+ .btn-check:focus-visible + & {
79
+ border-color: var(--#{$prefix}btn-hover-border-color);
80
+ outline: 0;
81
+ // Avoid using mixin so we can pass custom focus shadow properly
82
+ @if $enable-shadows {
83
+ box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
84
+ } @else {
85
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
86
+ }
87
+ }
88
+
89
+ .btn-check:checked + &,
90
+ :not(.btn-check) + &:active,
91
+ &:first-child:active,
92
+ &.active,
93
+ &.show {
94
+ color: var(--#{$prefix}btn-active-color);
95
+ background-color: var(--#{$prefix}btn-active-bg);
96
+ // Remove CSS gradients if they're enabled
97
+ background-image: if($enable-gradients, none, null);
98
+ border-color: var(--#{$prefix}btn-active-border-color);
99
+ @include box-shadow(var(--#{$prefix}btn-active-shadow));
100
+
101
+ &:focus-visible {
102
+ // Avoid using mixin so we can pass custom focus shadow properly
103
+ @if $enable-shadows {
104
+ box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
105
+ } @else {
106
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
107
+ }
108
+ }
109
+ }
110
+
111
+ &:disabled,
112
+ &.disabled,
113
+ fieldset:disabled & {
114
+ color: var(--#{$prefix}btn-disabled-color);
115
+ pointer-events: none;
116
+ background-color: var(--#{$prefix}btn-disabled-bg);
117
+ background-image: if($enable-gradients, none, null);
118
+ border-color: var(--#{$prefix}btn-disabled-border-color);
119
+ opacity: var(--#{$prefix}btn-disabled-opacity);
120
+ @include box-shadow(none);
121
+ }
122
+ }
123
+
124
+ //
125
+ // Alternate buttons
126
+ //
127
+
128
+ // scss-docs-start btn-variant-loops
129
+ @each $color, $value in $theme-colors {
130
+ .btn-#{$color} {
131
+ @if $color == 'light' {
132
+ @include button-variant(
133
+ $value,
134
+ $value,
135
+ $hover-background: shade-color($value, $btn-hover-bg-shade-amount),
136
+ $hover-border: shade-color($value, $btn-hover-border-shade-amount),
137
+ $active-background: shade-color($value, $btn-active-bg-shade-amount),
138
+ $active-border: shade-color($value, $btn-active-border-shade-amount)
139
+ );
140
+ } @else if $color == 'dark' {
141
+ @include button-variant(
142
+ $value,
143
+ $value,
144
+ $hover-background: tint-color($value, $btn-hover-bg-tint-amount),
145
+ $hover-border: tint-color($value, $btn-hover-border-tint-amount),
146
+ $active-background: tint-color($value, $btn-active-bg-tint-amount),
147
+ $active-border: tint-color($value, $btn-active-border-tint-amount)
148
+ );
149
+ } @else {
150
+ @include button-variant($value, $value);
151
+ }
152
+ }
153
+ }
154
+
155
+ @each $color, $value in $theme-colors {
156
+ .btn-outline-#{$color} {
157
+ @include button-outline-variant($value);
158
+ }
159
+ }
160
+ // scss-docs-end btn-variant-loops
161
+
162
+ //
163
+ // Link buttons
164
+ //
165
+
166
+ // Make a button look and behave like a link
167
+ .btn-link {
168
+ --#{$prefix}btn-font-weight: #{$font-weight-normal};
169
+ --#{$prefix}btn-color: #{$btn-link-color};
170
+ --#{$prefix}btn-bg: transparent;
171
+ --#{$prefix}btn-border-color: transparent;
172
+ --#{$prefix}btn-hover-color: #{$btn-link-hover-color};
173
+ --#{$prefix}btn-hover-border-color: transparent;
174
+ --#{$prefix}btn-active-color: #{$btn-link-hover-color};
175
+ --#{$prefix}btn-active-border-color: transparent;
176
+ --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color};
177
+ --#{$prefix}btn-disabled-border-color: transparent;
178
+ --#{$prefix}btn-box-shadow: none;
179
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))};
180
+
181
+ text-decoration: $link-decoration;
182
+ @if $enable-gradients {
183
+ background-image: none;
184
+ }
185
+
186
+ &:hover,
187
+ &:focus-visible {
188
+ text-decoration: $link-hover-decoration;
189
+ }
190
+
191
+ &:focus-visible {
192
+ color: var(--#{$prefix}btn-color);
193
+ }
194
+
195
+ &:hover {
196
+ color: var(--#{$prefix}btn-hover-color);
197
+ }
198
+
199
+ // No need for an active state here
200
+ }
201
+
202
+ //
203
+ // Button Sizes
204
+ //
205
+
206
+ .btn-me {
207
+ margin-right: $v-gap * 1.5 !important;
208
+ }
209
+
210
+ .btn-xs,
211
+ .btn-sm,
212
+ .btn-lg {
213
+ border-radius: $btn-border-radius;
214
+ }
215
+
216
+ .btn-xs {
217
+ padding: 12px 16px;
218
+ font-size: $btn-font-size-xs;
219
+ line-height: $input-btn-line-height-xs;
220
+ }
221
+
222
+ .btn-sm {
223
+ @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
224
+ padding: 12px 24px;
225
+ font-size: $btn-font-size-sm;
226
+ line-height: $input-btn-line-height-sm;
227
+ }
228
+
229
+ .btn-lg {
230
+ @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);
231
+ padding: 16px 24px;
232
+ font-size: $btn-font-size-lg;
233
+ line-height: $input-btn-line-height-lg;
234
+ }
235
+
236
+ .btn-progress {
237
+ position: relative;
238
+ }
239
+
240
+ .btn-icon {
241
+ display: inline-flex;
242
+ flex-direction: row;
243
+ justify-content: space-between;
244
+ align-items: center;
245
+
246
+ .rounded-icon {
247
+ width: 1.5em;
248
+ height: 1.5em;
249
+
250
+ .icon {
251
+ margin-right: 0;
252
+ }
253
+
254
+ @include border-radius(12px);
255
+ display: flex;
256
+ justify-content: center;
257
+ align-items: center;
258
+ background-color: $white;
259
+
260
+ @each $color, $value in $theme-colors {
261
+ &.rounded-#{$color} {
262
+ background-color: $value;
263
+ }
264
+ }
265
+
266
+ & + * {
267
+ margin-left: 0.5em;
268
+ }
269
+ }
270
+
271
+ .icon {
272
+ border: none;
273
+
274
+ width: 1.2em;
275
+ height: 1.2em;
276
+
277
+ & + * {
278
+ margin-left: 0.25em;
279
+ }
280
+ }
281
+ }
282
+
283
+ .btn-full {
284
+ border: none;
285
+ box-shadow: none;
286
+ line-height: 1.555;
287
+ @include border-radius(0);
288
+ // allow height 100%
289
+ align-self: stretch;
290
+ // height: 100%;
291
+ width: inherit;
292
+ margin-top: -$header-slim-button-v-padding;
293
+ margin-bottom: -$header-slim-button-v-padding;
294
+ margin-right: -$header-slim-button-v-padding;
295
+ padding-left: 8px;
296
+ padding-right: 8px;
297
+ &:hover {
298
+ text-decoration: none !important;
299
+ }
300
+
301
+ // Tablet vertical
302
+ @include media-breakpoint-up(sm) {
303
+ padding: 16px;
304
+ }
305
+
306
+ // Desktop
307
+ @include media-breakpoint-up(lg) {
308
+ padding: 12px 24px !important;
309
+ margin: 0;
310
+ flex: 1;
311
+ display: flex;
312
+ flex-direction: row;
313
+ justify-content: space-between;
314
+ align-items: center;
315
+ }
316
+ }
317
+
318
+ .btn:disabled:hover,
319
+ .btn.disabled:hover {
320
+ cursor: not-allowed;
321
+ }
322
+
323
+ .btn-primary {
324
+ &:disabled,
325
+ &.disabled {
326
+ // color: $gray-label-disabled;
327
+ // background-color: $gray-disabled;
328
+ // border-color: $gray-border-disabled;
329
+ //progress bar button
330
+ &.btn-progress {
331
+ background-color: hsl(210, 76%, 67%); // UI kit - missing token
332
+ border-color: hsl(210, 76%, 67%); // UI kit - missing token
333
+ color: $white;
334
+ opacity: 1;
335
+ }
336
+ }
337
+ }
338
+
339
+ .btn-secondary {
340
+ &:disabled,
341
+ &.disabled {
342
+ //progress bar button
343
+ &.btn-progress {
344
+ background-color: hsl(210, 12%, 52%); // UI kit - missing tokens
345
+ border-color: hsl(210, 12%, 52%); // UI kit - missing tokens
346
+ opacity: 1;
347
+ }
348
+ }
349
+ }
350
+
351
+ .btn-outline {
352
+ &-primary {
353
+ box-shadow: inset 0 0 0 2px $primary;
354
+ &.disabled {
355
+ box-shadow: inset 0 0 0 2px color-hover($primary);
356
+ }
357
+ }
358
+ &-secondary {
359
+ box-shadow: inset 0 0 0 2px $secondary;
360
+ &.disabled,
361
+ &:hover,
362
+ &:active {
363
+ box-shadow: inset 0 0 0 2px color-hover($secondary);
364
+ }
365
+ }
366
+ &-success {
367
+ box-shadow: inset 0 0 0 2px $success;
368
+ &.disabled,
369
+ &:hover,
370
+ &:active {
371
+ box-shadow: inset 0 0 0 2px color-hover($success);
372
+ }
373
+ }
374
+ &-warning {
375
+ box-shadow: inset 0 0 0 2px $color-border-warning;
376
+ &.disabled,
377
+ &:hover,
378
+ &:active {
379
+ box-shadow: inset 0 0 0 2px color-hover($color-border-warning);
380
+ }
381
+ }
382
+ &-danger {
383
+ box-shadow: inset 0 0 0 2px $danger;
384
+ &.disabled,
385
+ &:hover,
386
+ &:active {
387
+ box-shadow: inset 0 0 0 2px color-hover($danger);
388
+ }
389
+ }
390
+ }
391
+
392
+ .bg-dark {
393
+ .btn-link {
394
+ color: $white;
395
+ }
396
+ .btn-primary {
397
+ @include button-variant($white, $primary, tint-color($white, 7.5%), shade-color($primary, 10%), tint-color($white, 10%), shade-color($primary, 12.5%));
398
+ color: $primary;
399
+ &.disabled,
400
+ &:disabled {
401
+ color: shade-color($primary, 10%);
402
+ }
403
+ }
404
+ .btn-outline-primary {
405
+ @include button-outline-variant($white, color-hover($white), transparent, color-hover($white));
406
+ box-shadow: inset 0 0 0 2px $white;
407
+ &:hover {
408
+ box-shadow: inset 0 0 0 2px color-hover($white);
409
+ }
410
+ }
411
+ .btn-secondary {
412
+ @include button-variant($primary, $white, tint-color($primary, 7.5%), shade-color($white, 10%), tint-color($primary, 10%), shade-color($white, 12.5%));
413
+ color: $white;
414
+ }
415
+ .btn-outline-secondary {
416
+ @include button-outline-variant($white, color-hover($white), transparent, color-hover($white));
417
+ }
418
+ }
419
+
420
+ // Transparent background and border properties included for button version.
421
+ // iOS requires the button element instead of an anchor tag.
422
+ // If you want the anchor version, it requires `href="#"`.
423
+ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
424
+
425
+ .btn-close {
426
+ box-sizing: content-box;
427
+ width: $btn-close-width;
428
+ height: $btn-close-height;
429
+ padding: $btn-close-padding-y $btn-close-padding-x;
430
+ color: $btn-close-color;
431
+ background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
432
+ border: 0; // for button elements
433
+ @include border-radius();
434
+ opacity: $btn-close-opacity;
435
+ background-color: transparent;
436
+ position: relative;
437
+ .icon {
438
+ position: absolute;
439
+ top: 50%;
440
+ left: 50%;
441
+ transform: translate(-50%, -50%);
442
+ }
443
+
444
+ // Override <a>'s hover style
445
+ &:hover {
446
+ color: $btn-close-color;
447
+ text-decoration: none;
448
+ opacity: $btn-close-hover-opacity;
449
+ }
450
+
451
+ &:focus {
452
+ outline: 0;
453
+ box-shadow: $btn-close-focus-shadow;
454
+ opacity: $btn-close-focus-opacity;
455
+ }
456
+
457
+ &:disabled,
458
+ &.disabled {
459
+ pointer-events: none;
460
+ user-select: none;
461
+ opacity: $btn-close-disabled-opacity;
462
+ }
463
+ }
464
+
465
+ .btn-close-white {
466
+ filter: $btn-close-white-filter;
467
+ }
@@ -1,5 +1,177 @@
1
1
  @use 'sass:math';
2
2
 
3
+ //
4
+ // Base styles
5
+ //
6
+
7
+ .card-body {
8
+ // Enable `flex-grow: 1` for decks and groups so that card blocks take up
9
+ // as much space as possible, ensuring footers are aligned to the bottom.
10
+ flex: 1 1 auto;
11
+ padding: var(--#{$prefix}card-spacer-y) var(--#{$prefix}card-spacer-x);
12
+ color: var(--#{$prefix}card-color);
13
+ }
14
+
15
+ .card-title {
16
+ margin-bottom: var(--#{$prefix}card-title-spacer-y);
17
+ }
18
+
19
+ .card-subtitle {
20
+ margin-top: calc(-0.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list
21
+ margin-bottom: 0;
22
+ }
23
+
24
+ .card-text:last-child {
25
+ margin-bottom: 0;
26
+ }
27
+
28
+ .card-link {
29
+ &:hover {
30
+ text-decoration: if($link-hover-decoration == underline, none, null);
31
+ }
32
+
33
+ + .card-link {
34
+ margin-left: var(--#{$prefix}card-spacer-x);
35
+ }
36
+ }
37
+
38
+ //
39
+ // Optional textual caps
40
+ //
41
+
42
+ .card-header {
43
+ padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
44
+ margin-bottom: 0; // Removes the default margin-bottom of <hN>
45
+ color: var(--#{$prefix}card-cap-color);
46
+ background-color: var(--#{$prefix}card-cap-bg);
47
+ border-bottom: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
48
+
49
+ &:first-child {
50
+ @include border-radius(var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius) 0 0);
51
+ }
52
+ }
53
+
54
+ .card-footer {
55
+ padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
56
+ color: var(--#{$prefix}card-cap-color);
57
+ background-color: var(--#{$prefix}card-cap-bg);
58
+ border-top: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
59
+
60
+ &:last-child {
61
+ @include border-radius(0 0 var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius));
62
+ }
63
+ }
64
+
65
+ //
66
+ // Header navs
67
+ //
68
+
69
+ .card-header-tabs {
70
+ margin-right: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
71
+ margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list
72
+ margin-left: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
73
+ border-bottom: 0;
74
+
75
+ .nav-link.active {
76
+ background-color: var(--#{$prefix}card-bg);
77
+ border-bottom-color: var(--#{$prefix}card-bg);
78
+ }
79
+ }
80
+
81
+ .card-header-pills {
82
+ margin-right: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
83
+ margin-left: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
84
+ }
85
+
86
+ // Card image
87
+ .card-img-overlay {
88
+ position: absolute;
89
+ top: 0;
90
+ right: 0;
91
+ bottom: 0;
92
+ left: 0;
93
+ padding: var(--#{$prefix}card-img-overlay-padding);
94
+ @include border-radius(var(--#{$prefix}card-inner-border-radius));
95
+ }
96
+
97
+ .card-img,
98
+ .card-img-top,
99
+ .card-img-bottom {
100
+ width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
101
+ }
102
+
103
+ .card-img,
104
+ .card-img-top {
105
+ @include border-top-radius(var(--#{$prefix}card-inner-border-radius));
106
+ }
107
+
108
+ .card-img,
109
+ .card-img-bottom {
110
+ @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
111
+ }
112
+
113
+ //
114
+ // Card groups
115
+ //
116
+
117
+ .card-group {
118
+ // The child selector allows nested `.card` within `.card-group`
119
+ // to display properly.
120
+ > .card {
121
+ margin-bottom: var(--#{$prefix}card-group-margin);
122
+ }
123
+
124
+ @include media-breakpoint-up(sm) {
125
+ display: flex;
126
+ flex-flow: row wrap;
127
+ // The child selector allows nested `.card` within `.card-group`
128
+ // to display properly.
129
+ > .card {
130
+ // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
131
+ flex: 1 0 0%;
132
+ margin-bottom: 0;
133
+
134
+ + .card {
135
+ margin-left: 0;
136
+ border-left: 0;
137
+ }
138
+
139
+ // Handle rounded corners
140
+ @if $enable-rounded {
141
+ &:not(:last-child) {
142
+ @include border-end-radius(0);
143
+
144
+ .card-img-top,
145
+ .card-header {
146
+ // stylelint-disable-next-line property-disallowed-list
147
+ border-top-right-radius: 0;
148
+ }
149
+ .card-img-bottom,
150
+ .card-footer {
151
+ // stylelint-disable-next-line property-disallowed-list
152
+ border-bottom-right-radius: 0;
153
+ }
154
+ }
155
+
156
+ &:not(:first-child) {
157
+ @include border-start-radius(0);
158
+
159
+ .card-img-top,
160
+ .card-header {
161
+ // stylelint-disable-next-line property-disallowed-list
162
+ border-top-left-radius: 0;
163
+ }
164
+ .card-img-bottom,
165
+ .card-footer {
166
+ // stylelint-disable-next-line property-disallowed-list
167
+ border-bottom-left-radius: 0;
168
+ }
169
+ }
170
+ }
171
+ }
172
+ }
173
+ }
174
+
3
175
  .card-wrapper {
4
176
  padding-bottom: $v-gap * 3;
5
177
  display: flex;
@@ -160,6 +332,62 @@
160
332
  }
161
333
 
162
334
  .card {
335
+ // scss-docs-start card-css-vars
336
+ --#{$prefix}card-spacer-y: #{$card-spacer-y};
337
+ --#{$prefix}card-spacer-x: #{$card-spacer-x};
338
+ --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y};
339
+ --#{$prefix}card-border-width: #{$card-border-width};
340
+ --#{$prefix}card-border-color: #{$card-border-color};
341
+ --#{$prefix}card-border-radius: #{$card-border-radius};
342
+ --#{$prefix}card-box-shadow: #{$card-box-shadow};
343
+ --#{$prefix}card-inner-border-radius: #{$card-inner-border-radius};
344
+ --#{$prefix}card-cap-padding-y: #{$card-cap-padding-y};
345
+ --#{$prefix}card-cap-padding-x: #{$card-cap-padding-x};
346
+ --#{$prefix}card-cap-bg: #{$card-cap-bg};
347
+ --#{$prefix}card-cap-color: #{$card-cap-color};
348
+ --#{$prefix}card-height: #{$card-height};
349
+ --#{$prefix}card-color: #{$card-color};
350
+ --#{$prefix}card-bg: #{$card-bg};
351
+ --#{$prefix}card-img-overlay-padding: #{$card-img-overlay-padding};
352
+ --#{$prefix}card-group-margin: #{$card-group-margin};
353
+ // scss-docs-end card-css-vars
354
+ display: flex;
355
+ flex-direction: column;
356
+ min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
357
+ height: var(--#{$prefix}card-height);
358
+ word-wrap: break-word;
359
+ background-color: var(--#{$prefix}card-bg);
360
+ background-clip: border-box;
361
+ border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
362
+ @include border-radius(var(--#{$prefix}card-border-radius));
363
+ @include box-shadow(var(--#{$prefix}card-box-shadow));
364
+
365
+ > hr {
366
+ margin-right: 0;
367
+ margin-left: 0;
368
+ }
369
+
370
+ > .list-group {
371
+ border-top: inherit;
372
+ border-bottom: inherit;
373
+
374
+ &:first-child {
375
+ border-top-width: 0;
376
+ @include border-top-radius(var(--#{$prefix}card-inner-border-radius));
377
+ }
378
+
379
+ &:last-child {
380
+ border-bottom-width: 0;
381
+ @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
382
+ }
383
+ }
384
+
385
+ // Due to specificity of the above selector (`.card > .list-group`), we must
386
+ // use a child selector here to prevent double borders.
387
+ > .card-header + .list-group,
388
+ > .list-group + .card-footer {
389
+ border-top: 0;
390
+ }
163
391
  border: none;
164
392
  padding: 0;
165
393
  position: relative;