@iamproperty/components 6.0.0 → 6.1.0--beta2

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 (277) hide show
  1. package/assets/bootstrap/README.md +8 -7
  2. package/assets/bootstrap/js/index.esm.js +19 -0
  3. package/assets/bootstrap/js/index.umd.js +34 -0
  4. package/assets/bootstrap/js/src/alert.js +1 -1
  5. package/assets/bootstrap/js/src/base-component.js +2 -2
  6. package/assets/bootstrap/js/src/button.js +1 -1
  7. package/assets/bootstrap/js/src/carousel.js +1 -1
  8. package/assets/bootstrap/js/src/collapse.js +1 -1
  9. package/assets/bootstrap/js/src/dom/data.js +1 -1
  10. package/assets/bootstrap/js/src/dom/event-handler.js +1 -1
  11. package/assets/bootstrap/js/src/dom/manipulator.js +1 -1
  12. package/assets/bootstrap/js/src/dom/selector-engine.js +1 -1
  13. package/assets/bootstrap/js/src/dropdown.js +3 -12
  14. package/assets/bootstrap/js/src/modal.js +13 -17
  15. package/assets/bootstrap/js/src/offcanvas.js +1 -1
  16. package/assets/bootstrap/js/src/popover.js +1 -1
  17. package/assets/bootstrap/js/src/scrollspy.js +10 -14
  18. package/assets/bootstrap/js/src/tab.js +4 -2
  19. package/assets/bootstrap/js/src/toast.js +4 -9
  20. package/assets/bootstrap/js/src/tooltip.js +50 -32
  21. package/assets/bootstrap/js/src/util/backdrop.js +1 -1
  22. package/assets/bootstrap/js/src/util/component-functions.js +1 -1
  23. package/assets/bootstrap/js/src/util/config.js +1 -1
  24. package/assets/bootstrap/js/src/util/focustrap.js +1 -1
  25. package/assets/bootstrap/js/src/util/index.js +1 -1
  26. package/assets/bootstrap/js/src/util/sanitizer.js +1 -1
  27. package/assets/bootstrap/js/src/util/scrollbar.js +1 -1
  28. package/assets/bootstrap/js/src/util/swipe.js +1 -1
  29. package/assets/bootstrap/js/src/util/template-factory.js +1 -1
  30. package/assets/bootstrap/package.json +27 -28
  31. package/assets/bootstrap/scss/_accordion.scss +4 -7
  32. package/assets/bootstrap/scss/_button-group.scss +1 -1
  33. package/assets/bootstrap/scss/_buttons.scss +7 -28
  34. package/assets/bootstrap/scss/_carousel.scss +3 -0
  35. package/assets/bootstrap/scss/_dropdown.scss +1 -2
  36. package/assets/bootstrap/scss/_functions.scss +2 -2
  37. package/assets/bootstrap/scss/_list-group.scss +5 -6
  38. package/assets/bootstrap/scss/_modal.scss +1 -1
  39. package/assets/bootstrap/scss/_nav.scss +2 -2
  40. package/assets/bootstrap/scss/_navbar.scss +0 -2
  41. package/assets/bootstrap/scss/_offcanvas.scss +4 -5
  42. package/assets/bootstrap/scss/_pagination.scss +1 -1
  43. package/assets/bootstrap/scss/_popover.scss +5 -5
  44. package/assets/bootstrap/scss/_toasts.scss +2 -5
  45. package/assets/bootstrap/scss/_variables-dark.scss +87 -0
  46. package/assets/bootstrap/scss/_variables.scss +17 -18
  47. package/assets/bootstrap/scss/bootstrap-utilities.scss +0 -3
  48. package/assets/bootstrap/scss/forms/_floating-labels.scss +0 -1
  49. package/assets/bootstrap/scss/forms/_input-group.scss +4 -7
  50. package/assets/bootstrap/scss/helpers/_focus-ring.scss +5 -0
  51. package/assets/bootstrap/scss/helpers/_icon-link.scss +25 -0
  52. package/assets/bootstrap/scss/mixins/_banner.scss +2 -2
  53. package/assets/bootstrap/scss/mixins/_color-mode.scss +21 -0
  54. package/assets/bootstrap/scss/mixins/_forms.scss +10 -10
  55. package/assets/bootstrap/scss/mixins/_table-variants.scss +2 -2
  56. package/assets/bootstrap/scss/mixins/_utilities.scss +1 -1
  57. package/assets/css/components/actionbar.css.map +1 -1
  58. package/assets/css/components/actionbar.global.css.map +1 -1
  59. package/assets/css/components/barchart.component.css +1 -1
  60. package/assets/css/components/barchart.component.css.map +1 -1
  61. package/assets/css/components/card.component.css +1 -0
  62. package/assets/css/components/card.component.css.map +1 -0
  63. package/assets/css/components/card.module.css +1 -0
  64. package/assets/css/components/card.module.css.map +1 -0
  65. package/assets/css/components/carousel.component.css +1 -0
  66. package/assets/css/components/carousel.component.css.map +1 -0
  67. package/assets/css/components/carousel.config.css +1 -0
  68. package/assets/css/components/carousel.config.css.map +1 -0
  69. package/assets/css/components/charts.config.css +1 -1
  70. package/assets/css/components/charts.config.css.map +1 -1
  71. package/assets/css/components/charts.css +1 -1
  72. package/assets/css/components/charts.css.map +1 -1
  73. package/assets/css/components/charts.module.css +1 -1
  74. package/assets/css/components/charts.module.css.map +1 -1
  75. package/assets/css/components/collapsible-side.css.map +1 -1
  76. package/assets/css/components/fileupload.css.map +1 -1
  77. package/assets/css/components/filter-card.component.css +1 -0
  78. package/assets/css/components/filter-card.component.css.map +1 -0
  79. package/assets/css/components/header.css +1 -1
  80. package/assets/css/components/header.css.map +1 -1
  81. package/assets/css/components/marketing.css.map +1 -1
  82. package/assets/css/components/multi-step.component.css +1 -0
  83. package/assets/css/components/multi-step.component.css.map +1 -0
  84. package/assets/css/components/multiselect.preload.css +1 -1
  85. package/assets/css/components/multiselect.preload.css.map +1 -1
  86. package/assets/css/components/nav.css.map +1 -1
  87. package/assets/css/components/nav.docs.css.map +1 -1
  88. package/assets/css/components/nav.global.css.map +1 -1
  89. package/assets/css/components/nav.old.css.map +1 -1
  90. package/assets/css/components/nav.preload.css +1 -1
  91. package/assets/css/components/nav.preload.css.map +1 -1
  92. package/assets/css/components/notification.css.map +1 -1
  93. package/assets/css/components/pagination.css.map +1 -1
  94. package/assets/css/components/property-searchbar.css.map +1 -1
  95. package/assets/css/components/record-card.component.css +1 -0
  96. package/assets/css/components/record-card.component.css.map +1 -0
  97. package/assets/css/components/slider.css.map +1 -1
  98. package/assets/css/components/snapshot.css.map +1 -1
  99. package/assets/css/components/stepper.css.map +1 -1
  100. package/assets/css/components/table.global.css.map +1 -1
  101. package/assets/css/components/tabs.css +1 -1
  102. package/assets/css/components/tabs.css.map +1 -1
  103. package/assets/css/components/testimonial.css.map +1 -1
  104. package/assets/css/components/timeline.css +1 -1
  105. package/assets/css/components/timeline.css.map +1 -1
  106. package/assets/css/components/video-card.component.css +1 -0
  107. package/assets/css/components/video-card.component.css.map +1 -0
  108. package/assets/css/core.min.css +1 -1
  109. package/assets/css/core.min.css.map +1 -1
  110. package/assets/css/style.min.css +1 -1
  111. package/assets/css/style.min.css.map +1 -1
  112. package/assets/img/illustrations/not-found.png +0 -0
  113. package/assets/js/components/accordion/accordion.component.min.js +2 -2
  114. package/assets/js/components/actionbar/actionbar.component.min.js +6 -6
  115. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  116. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  117. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  118. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  119. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  120. package/assets/js/components/barchart/barchart.component.js +2 -0
  121. package/assets/js/components/barchart/barchart.component.min.js +5 -3
  122. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  123. package/assets/js/components/card/card.component.js +92 -154
  124. package/assets/js/components/card/card.component.min.js +27 -32
  125. package/assets/js/components/card/card.component.min.js.map +1 -1
  126. package/assets/js/components/carousel/carousel.component.js +36 -41
  127. package/assets/js/components/carousel/carousel.component.min.js +18 -12
  128. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  129. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  130. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  131. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  132. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  133. package/assets/js/components/filter-card/filter-card.component.js +71 -0
  134. package/assets/js/components/filter-card/filter-card.component.min.js +27 -0
  135. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -0
  136. package/assets/js/components/filterlist/filterlist.component.min.js +2 -2
  137. package/assets/js/components/header/header.component.min.js +3 -3
  138. package/assets/js/components/header/header.component.min.js.map +1 -1
  139. package/assets/js/components/inline-edit/inline-edit.component.min.js +2 -2
  140. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  141. package/assets/js/components/marketing/marketing.component.min.js +2 -2
  142. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  143. package/assets/js/components/multi-step/multi-step.component.js +162 -0
  144. package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
  145. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  146. package/assets/js/components/nav/nav.component.min.js +2 -2
  147. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  148. package/assets/js/components/notification/notification.component.min.js +2 -2
  149. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  150. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  151. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  152. package/assets/js/components/record-card/record-card.component.js +69 -0
  153. package/assets/js/components/record-card/record-card.component.min.js +27 -0
  154. package/assets/js/components/record-card/record-card.component.min.js.map +1 -0
  155. package/assets/js/components/search/search.component.min.js +2 -2
  156. package/assets/js/components/slider/slider.component.min.js +2 -2
  157. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  158. package/assets/js/components/table/table.component.js +1 -1
  159. package/assets/js/components/table/table.component.min.js +4 -4
  160. package/assets/js/components/table/table.component.min.js.map +1 -1
  161. package/assets/js/components/tabs/tabs.component.min.js +3 -3
  162. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  163. package/assets/js/components/video-card/video-card.component.js +176 -0
  164. package/assets/js/components/video-card/video-card.component.min.js +30 -0
  165. package/assets/js/components/video-card/video-card.component.min.js.map +1 -0
  166. package/assets/js/components.bundle.js +5 -0
  167. package/assets/js/components.bundle.js.map +1 -0
  168. package/assets/js/components.js +30 -0
  169. package/assets/js/modules/card.module.js +33 -0
  170. package/assets/js/modules/carousel.js +110 -8
  171. package/assets/js/modules/chart.js +2 -2
  172. package/assets/js/modules/dialogs.js +5 -129
  173. package/assets/js/modules/table.js +1 -1
  174. package/assets/js/scripts.bundle.js +4 -195
  175. package/assets/js/scripts.bundle.js.map +1 -1
  176. package/assets/js/scripts.bundle.min.js +3 -3
  177. package/assets/js/scripts.bundle.min.js.map +1 -1
  178. package/assets/js/scripts.js +17 -0
  179. package/assets/js/tests/filterlist.spec.js +1 -1
  180. package/assets/sass/_components.scss +76 -12
  181. package/assets/sass/_corefiles.scss +19 -10
  182. package/assets/sass/_elements.scss +2 -0
  183. package/assets/sass/_func.scss +3 -0
  184. package/assets/sass/_functions/functions.scss +304 -1
  185. package/assets/sass/_functions/mixins.scss +458 -2
  186. package/assets/sass/_functions/utilities.scss +647 -2
  187. package/assets/sass/_functions/variables.scss +1724 -2
  188. package/assets/sass/_utilities.scss +126 -7
  189. package/assets/sass/components/card.component.scss +229 -0
  190. package/assets/sass/components/card.module.scss +154 -0
  191. package/assets/sass/components/carousel.component.scss +605 -0
  192. package/assets/sass/components/carousel.config.scss +84 -0
  193. package/assets/sass/components/charts.config.scss +3 -0
  194. package/assets/sass/components/charts.module.scss +5 -3
  195. package/assets/sass/components/filter-card.component.scss +106 -0
  196. package/assets/sass/components/header.scss +1 -0
  197. package/assets/sass/components/multi-step.component.scss +148 -0
  198. package/assets/sass/components/multiselect.preload.scss +7 -0
  199. package/assets/sass/components/nav.preload.scss +5 -0
  200. package/assets/sass/components/record-card.component.scss +204 -0
  201. package/assets/sass/components/tabs.scss +1 -1
  202. package/assets/sass/components/video-card.component.scss +80 -0
  203. package/assets/sass/components.reset.scss +5 -43
  204. package/assets/sass/elements/admin-panel.scss +2 -1
  205. package/assets/sass/elements/badge-tag.scss +5 -1
  206. package/assets/sass/elements/buttons.scss +36 -0
  207. package/assets/sass/elements/container.scss +16 -6
  208. package/assets/sass/elements/details.scss +2 -0
  209. package/assets/sass/elements/dialog.scss +2 -744
  210. package/assets/sass/elements/forms.scss +241 -24
  211. package/assets/sass/elements/links.scss +27 -4
  212. package/assets/sass/elements/lists.scss +46 -0
  213. package/assets/sass/elements/media.scss +10 -38
  214. package/assets/sass/elements/modal.scss +453 -0
  215. package/assets/sass/elements/popover.scss +207 -0
  216. package/assets/sass/elements/table.element.scss +35 -0
  217. package/assets/sass/elements/type.scss +38 -2
  218. package/assets/sass/error.scss +32 -1
  219. package/assets/sass/foundations/bs_grid.scss +33 -0
  220. package/assets/sass/foundations/grid.scss +270 -0
  221. package/assets/sass/foundations/reboot.scss +71 -49
  222. package/assets/sass/foundations/root.scss +16 -3
  223. package/assets/ts/components/barchart/barchart.component.ts +2 -0
  224. package/assets/ts/components/card/card.component.ts +94 -192
  225. package/assets/ts/components/carousel/carousel.component.ts +51 -44
  226. package/assets/ts/components/filter-card/filter-card.component.ts +81 -0
  227. package/assets/ts/components/multi-step/multi-step.component.ts +262 -0
  228. package/assets/ts/components/record-card/record-card.component.ts +82 -0
  229. package/assets/ts/components/table/table.component.ts +2 -1
  230. package/assets/ts/components/video-card/video-card.component.ts +227 -0
  231. package/assets/ts/components.ts +38 -0
  232. package/assets/ts/modules/card.module.ts +43 -0
  233. package/assets/ts/modules/carousel.ts +161 -7
  234. package/assets/ts/modules/dialogs.ts +6 -182
  235. package/assets/ts/modules/table.ts +1 -1
  236. package/assets/ts/scripts.ts +22 -0
  237. package/assets/ts/tests/filterlist.spec.ts +1 -1
  238. package/dist/components.es.js +227 -243
  239. package/dist/components.umd.js +105 -104
  240. package/dist/style.css +1 -1
  241. package/package.json +9 -7
  242. package/src/components/BarChart/BarChart.vue +2 -2
  243. package/src/components/Carousel/Carousel.vue +1 -15
  244. package/src/components/FilterCard/FilterCard.vue +25 -0
  245. package/src/components/MultiStep/MultiStep.vue +25 -0
  246. package/src/components/RecordCard/RecordCard.vue +25 -0
  247. package/src/components/VideoCard/VideoCard.vue +25 -0
  248. package/assets/css/components/card.css +0 -1
  249. package/assets/css/components/card.css.map +0 -1
  250. package/assets/css/components/card.global.css +0 -1
  251. package/assets/css/components/card.global.css.map +0 -1
  252. package/assets/css/components/card.preload.css +0 -1
  253. package/assets/css/components/card.preload.css.map +0 -1
  254. package/assets/css/components/carousel.css +0 -1
  255. package/assets/css/components/carousel.css.map +0 -1
  256. package/assets/css/components/carousel.preload.css +0 -1
  257. package/assets/css/components/carousel.preload.css.map +0 -1
  258. package/assets/js/bundle.js +0 -74
  259. package/assets/js/dynamic.js +0 -80
  260. package/assets/js/dynamic.min.js +0 -18
  261. package/assets/js/dynamic.min.js.map +0 -1
  262. package/assets/js/flat-components.js +0 -84
  263. package/assets/js/modules/youtubevideo.js +0 -106
  264. package/assets/sass/components/card.global.scss +0 -102
  265. package/assets/sass/components/card.preload.scss +0 -8
  266. package/assets/sass/components/card.scss +0 -606
  267. package/assets/sass/components/carousel.preload.scss +0 -82
  268. package/assets/sass/components/carousel.scss +0 -258
  269. package/assets/ts/bundle.ts +0 -94
  270. package/assets/ts/components/barchart/README.md +0 -37
  271. package/assets/ts/components/card/README.md +0 -39
  272. package/assets/ts/dynamic.ts +0 -107
  273. package/assets/ts/flat-components.ts +0 -106
  274. package/assets/ts/modules/youtubevideo.ts +0 -141
  275. package/assets/ts/tests/dialogs.spec.js +0 -50
  276. package/src/foundations/YoutubeVideo/README.md +0 -11
  277. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +0 -24
@@ -46,11 +46,11 @@ Our default branch is for development of our Bootstrap 5 release. Head to the [`
46
46
 
47
47
  Several quick start options are available:
48
48
 
49
- - [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.2.3.zip)
49
+ - [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.2.0.zip)
50
50
  - Clone the repo: `git clone https://github.com/twbs/bootstrap.git`
51
- - Install with [npm](https://www.npmjs.com/): `npm install bootstrap@v5.2.3`
52
- - Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@v5.2.3`
53
- - Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.2.3`
51
+ - Install with [npm](https://www.npmjs.com/): `npm install bootstrap@v5.2.0`
52
+ - Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@v5.2.0`
53
+ - Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.2.0`
54
54
  - Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass`
55
55
 
56
56
  Read the [Getting started page](https://getbootstrap.com/docs/5.2/getting-started/introduction/) for information on the framework contents, templates, examples, and more.
@@ -58,6 +58,7 @@ Read the [Getting started page](https://getbootstrap.com/docs/5.2/getting-starte
58
58
 
59
59
  ## Status
60
60
 
61
+ [![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com/)
61
62
  [![Build Status](https://img.shields.io/github/workflow/status/twbs/bootstrap/JS%20Tests/main?label=JS%20Tests&logo=github)](https://github.com/twbs/bootstrap/actions?query=workflow%3AJS+Tests+branch%3Amain)
62
63
  [![npm version](https://img.shields.io/npm/v/bootstrap)](https://www.npmjs.com/package/bootstrap)
63
64
  [![Gem version](https://img.shields.io/gem/v/bootstrap)](https://rubygems.org/gems/bootstrap)
@@ -137,14 +138,14 @@ We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified
137
138
 
138
139
  ## Bugs and feature requests
139
140
 
140
- Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/main/.github/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new/choose).
141
+ Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/main/.github/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new).
141
142
 
142
143
 
143
144
  ## Documentation
144
145
 
145
146
  Bootstrap's documentation, included in this repo in the root directory, is built with [Hugo](https://gohugo.io/) and publicly hosted on GitHub Pages at <https://getbootstrap.com/>. The docs may also be run locally.
146
147
 
147
- Documentation search is powered by [Algolia's DocSearch](https://docsearch.algolia.com/). Working on our search? Be sure to set `debug: true` in `site/assets/js/search.js`.
148
+ Documentation search is powered by [Algolia's DocSearch](https://community.algolia.com/docsearch/). Working on our search? Be sure to set `debug: true` in `site/assets/js/search.js`.
148
149
 
149
150
  ### Running documentation locally
150
151
 
@@ -177,7 +178,7 @@ Get updates on Bootstrap's development and chat with the project maintainers and
177
178
 
178
179
  - Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap).
179
180
  - Read and subscribe to [The Official Bootstrap Blog](https://blog.getbootstrap.com/).
180
- - Ask and explore [our GitHub Discussions](https://github.com/twbs/bootstrap/discussions).
181
+ - Join [the official Slack room](https://bootstrap-slack.herokuapp.com/).
181
182
  - Chat with fellow Bootstrappers in IRC. On the `irc.libera.chat` server, in the `#bootstrap` channel.
182
183
  - Implementation help may be found at Stack Overflow (tagged [`bootstrap-5`](https://stackoverflow.com/questions/tagged/bootstrap-5)).
183
184
  - Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability.
@@ -0,0 +1,19 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap index.esm.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ export { default as Alert } from './src/alert.js'
9
+ export { default as Button } from './src/button.js'
10
+ export { default as Carousel } from './src/carousel.js'
11
+ export { default as Collapse } from './src/collapse.js'
12
+ export { default as Dropdown } from './src/dropdown.js'
13
+ export { default as Modal } from './src/modal.js'
14
+ export { default as Offcanvas } from './src/offcanvas.js'
15
+ export { default as Popover } from './src/popover.js'
16
+ export { default as ScrollSpy } from './src/scrollspy.js'
17
+ export { default as Tab } from './src/tab.js'
18
+ export { default as Toast } from './src/toast.js'
19
+ export { default as Tooltip } from './src/tooltip.js'
@@ -0,0 +1,34 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap index.umd.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ import Alert from './src/alert.js'
9
+ import Button from './src/button.js'
10
+ import Carousel from './src/carousel.js'
11
+ import Collapse from './src/collapse.js'
12
+ import Dropdown from './src/dropdown.js'
13
+ import Modal from './src/modal.js'
14
+ import Offcanvas from './src/offcanvas.js'
15
+ import Popover from './src/popover.js'
16
+ import ScrollSpy from './src/scrollspy.js'
17
+ import Tab from './src/tab.js'
18
+ import Toast from './src/toast.js'
19
+ import Tooltip from './src/tooltip.js'
20
+
21
+ export default {
22
+ Alert,
23
+ Button,
24
+ Carousel,
25
+ Collapse,
26
+ Dropdown,
27
+ Modal,
28
+ Offcanvas,
29
+ Popover,
30
+ ScrollSpy,
31
+ Tab,
32
+ Toast,
33
+ Tooltip
34
+ }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): alert.js
3
+ * Bootstrap (v5.2.0): alert.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): base-component.js
3
+ * Bootstrap (v5.2.0): base-component.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -14,7 +14,7 @@ import Config from './util/config'
14
14
  * Constants
15
15
  */
16
16
 
17
- const VERSION = '5.2.3'
17
+ const VERSION = '5.2.0'
18
18
 
19
19
  /**
20
20
  * Class definition
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): button.js
3
+ * Bootstrap (v5.2.0): button.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): carousel.js
3
+ * Bootstrap (v5.2.0): carousel.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): collapse.js
3
+ * Bootstrap (v5.2.0): collapse.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): dom/data.js
3
+ * Bootstrap (v5.2.0): dom/data.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): dom/event-handler.js
3
+ * Bootstrap (v5.2.0): dom/event-handler.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): dom/manipulator.js
3
+ * Bootstrap (v5.2.0): dom/manipulator.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): dom/selector-engine.js
3
+ * Bootstrap (v5.2.0): dom/selector-engine.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): dropdown.js
3
+ * Bootstrap (v5.2.0): dropdown.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -95,10 +95,7 @@ class Dropdown extends BaseComponent {
95
95
 
96
96
  this._popper = null
97
97
  this._parent = this._element.parentNode // dropdown wrapper
98
- // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
99
- this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||
100
- SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||
101
- SelectorEngine.findOne(SELECTOR_MENU, this._parent)
98
+ this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent)
102
99
  this._inNavbar = this._detectNavbar()
103
100
  }
104
101
 
@@ -408,13 +405,7 @@ class Dropdown extends BaseComponent {
408
405
 
409
406
  event.preventDefault()
410
407
 
411
- // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
412
- const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?
413
- this :
414
- (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||
415
- SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||
416
- SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))
417
-
408
+ const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode)
418
409
  const instance = Dropdown.getOrCreateInstance(getToggleButton)
419
410
 
420
411
  if (isUpOrDownEvent) {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): modal.js
3
+ * Bootstrap (v5.2.0): modal.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -30,7 +30,6 @@ const EVENT_HIDDEN = `hidden${EVENT_KEY}`
30
30
  const EVENT_SHOW = `show${EVENT_KEY}`
31
31
  const EVENT_SHOWN = `shown${EVENT_KEY}`
32
32
  const EVENT_RESIZE = `resize${EVENT_KEY}`
33
- const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`
34
33
  const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`
35
34
  const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`
36
35
  const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
@@ -223,21 +222,18 @@ class Modal extends BaseComponent {
223
222
  })
224
223
 
225
224
  EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
226
- // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
227
- EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
228
- if (this._element !== event.target || this._element !== event2.target) {
229
- return
230
- }
231
-
232
- if (this._config.backdrop === 'static') {
233
- this._triggerBackdropTransition()
234
- return
235
- }
236
-
237
- if (this._config.backdrop) {
238
- this.hide()
239
- }
240
- })
225
+ if (event.target !== event.currentTarget) { // click is inside modal-dialog
226
+ return
227
+ }
228
+
229
+ if (this._config.backdrop === 'static') {
230
+ this._triggerBackdropTransition()
231
+ return
232
+ }
233
+
234
+ if (this._config.backdrop) {
235
+ this.hide()
236
+ }
241
237
  })
242
238
  }
243
239
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): offcanvas.js
3
+ * Bootstrap (v5.2.0): offcanvas.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): popover.js
3
+ * Bootstrap (v5.2.0): popover.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): scrollspy.js
3
+ * Bootstrap (v5.2.0): scrollspy.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -40,16 +40,14 @@ const Default = {
40
40
  offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons
41
41
  rootMargin: '0px 0px -25%',
42
42
  smoothScroll: false,
43
- target: null,
44
- threshold: [0.1, 0.5, 1]
43
+ target: null
45
44
  }
46
45
 
47
46
  const DefaultType = {
48
47
  offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons
49
48
  rootMargin: 'string',
50
49
  smoothScroll: 'boolean',
51
- target: 'element',
52
- threshold: 'array'
50
+ target: 'element'
53
51
  }
54
52
 
55
53
  /**
@@ -112,13 +110,6 @@ class ScrollSpy extends BaseComponent {
112
110
  // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case
113
111
  config.target = getElement(config.target) || document.body
114
112
 
115
- // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
116
- config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin
117
-
118
- if (typeof config.threshold === 'string') {
119
- config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))
120
- }
121
-
122
113
  return config
123
114
  }
124
115
 
@@ -150,8 +141,8 @@ class ScrollSpy extends BaseComponent {
150
141
  _getNewObserver() {
151
142
  const options = {
152
143
  root: this._rootElement,
153
- threshold: this._config.threshold,
154
- rootMargin: this._config.rootMargin
144
+ threshold: [0.1, 0.5, 1],
145
+ rootMargin: this._getRootMargin()
155
146
  }
156
147
 
157
148
  return new IntersectionObserver(entries => this._observerCallback(entries), options)
@@ -196,6 +187,11 @@ class ScrollSpy extends BaseComponent {
196
187
  }
197
188
  }
198
189
 
190
+ // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
191
+ _getRootMargin() {
192
+ return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin
193
+ }
194
+
199
195
  _initializeTargetsAndObservables() {
200
196
  this._targetLinks = new Map()
201
197
  this._observableSections = new Map()
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): tab.js
3
+ * Bootstrap (v5.2.0): tab.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -38,6 +38,7 @@ const CLASS_DROPDOWN = 'dropdown'
38
38
 
39
39
  const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'
40
40
  const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'
41
+ const SELECTOR_DROPDOWN_ITEM = '.dropdown-item'
41
42
  const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'
42
43
 
43
44
  const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'
@@ -114,6 +115,7 @@ class Tab extends BaseComponent {
114
115
  return
115
116
  }
116
117
 
118
+ element.focus()
117
119
  element.removeAttribute('tabindex')
118
120
  element.setAttribute('aria-selected', true)
119
121
  this._toggleDropDown(element, true)
@@ -161,7 +163,6 @@ class Tab extends BaseComponent {
161
163
  const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true)
162
164
 
163
165
  if (nextActiveElement) {
164
- nextActiveElement.focus({ preventScroll: true })
165
166
  Tab.getOrCreateInstance(nextActiveElement).show()
166
167
  }
167
168
  }
@@ -231,6 +232,7 @@ class Tab extends BaseComponent {
231
232
 
232
233
  toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)
233
234
  toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)
235
+ toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE)
234
236
  outerElem.setAttribute('aria-expanded', open)
235
237
  }
236
238
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): toast.js
3
+ * Bootstrap (v5.2.0): toast.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -153,20 +153,15 @@ class Toast extends BaseComponent {
153
153
  _onInteraction(event, isInteracting) {
154
154
  switch (event.type) {
155
155
  case 'mouseover':
156
- case 'mouseout': {
156
+ case 'mouseout':
157
157
  this._hasMouseInteraction = isInteracting
158
158
  break
159
- }
160
-
161
159
  case 'focusin':
162
- case 'focusout': {
160
+ case 'focusout':
163
161
  this._hasKeyboardInteraction = isInteracting
164
162
  break
165
- }
166
-
167
- default: {
163
+ default:
168
164
  break
169
- }
170
165
  }
171
166
 
172
167
  if (isInteracting) {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): tooltip.js
3
+ * Bootstrap (v5.2.0): tooltip.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -111,7 +111,7 @@ class Tooltip extends BaseComponent {
111
111
  // Private
112
112
  this._isEnabled = true
113
113
  this._timeout = 0
114
- this._isHovered = null
114
+ this._isHovered = false
115
115
  this._activeTrigger = {}
116
116
  this._popper = null
117
117
  this._templateFactory = null
@@ -121,10 +121,6 @@ class Tooltip extends BaseComponent {
121
121
  this.tip = null
122
122
 
123
123
  this._setListeners()
124
-
125
- if (!this._config.selector) {
126
- this._fixTitle()
127
- }
128
124
  }
129
125
 
130
126
  // Getters
@@ -153,12 +149,25 @@ class Tooltip extends BaseComponent {
153
149
  this._isEnabled = !this._isEnabled
154
150
  }
155
151
 
156
- toggle() {
152
+ toggle(event) {
157
153
  if (!this._isEnabled) {
158
154
  return
159
155
  }
160
156
 
161
- this._activeTrigger.click = !this._activeTrigger.click
157
+ if (event) {
158
+ const context = this._initializeOnDelegatedTarget(event)
159
+
160
+ context._activeTrigger.click = !context._activeTrigger.click
161
+
162
+ if (context._isWithActiveTrigger()) {
163
+ context._enter()
164
+ } else {
165
+ context._leave()
166
+ }
167
+
168
+ return
169
+ }
170
+
162
171
  if (this._isShown()) {
163
172
  this._leave()
164
173
  return
@@ -172,8 +181,8 @@ class Tooltip extends BaseComponent {
172
181
 
173
182
  EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)
174
183
 
175
- if (this._element.getAttribute('data-bs-original-title')) {
176
- this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))
184
+ if (this.tip) {
185
+ this.tip.remove()
177
186
  }
178
187
 
179
188
  this._disposePopper()
@@ -198,7 +207,10 @@ class Tooltip extends BaseComponent {
198
207
  }
199
208
 
200
209
  // todo v6 remove this OR make it optional
201
- this._disposePopper()
210
+ if (this.tip) {
211
+ this.tip.remove()
212
+ this.tip = null
213
+ }
202
214
 
203
215
  const tip = this._getTipElement()
204
216
 
@@ -211,7 +223,11 @@ class Tooltip extends BaseComponent {
211
223
  EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))
212
224
  }
213
225
 
214
- this._popper = this._createPopper(tip)
226
+ if (this._popper) {
227
+ this._popper.update()
228
+ } else {
229
+ this._popper = this._createPopper(tip)
230
+ }
215
231
 
216
232
  tip.classList.add(CLASS_NAME_SHOW)
217
233
 
@@ -226,13 +242,14 @@ class Tooltip extends BaseComponent {
226
242
  }
227
243
 
228
244
  const complete = () => {
245
+ const previousHoverState = this._isHovered
246
+
247
+ this._isHovered = false
229
248
  EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))
230
249
 
231
- if (this._isHovered === false) {
250
+ if (previousHoverState) {
232
251
  this._leave()
233
252
  }
234
-
235
- this._isHovered = false
236
253
  }
237
254
 
238
255
  this._queueCallback(complete, this.tip, this._isAnimated())
@@ -262,7 +279,7 @@ class Tooltip extends BaseComponent {
262
279
  this._activeTrigger[TRIGGER_CLICK] = false
263
280
  this._activeTrigger[TRIGGER_FOCUS] = false
264
281
  this._activeTrigger[TRIGGER_HOVER] = false
265
- this._isHovered = null // it is a trick to support manual triggering
282
+ this._isHovered = false
266
283
 
267
284
  const complete = () => {
268
285
  if (this._isWithActiveTrigger()) {
@@ -270,11 +287,13 @@ class Tooltip extends BaseComponent {
270
287
  }
271
288
 
272
289
  if (!this._isHovered) {
273
- this._disposePopper()
290
+ tip.remove()
274
291
  }
275
292
 
276
293
  this._element.removeAttribute('aria-describedby')
277
294
  EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))
295
+
296
+ this._disposePopper()
278
297
  }
279
298
 
280
299
  this._queueCallback(complete, this.tip, this._isAnimated())
@@ -353,7 +372,7 @@ class Tooltip extends BaseComponent {
353
372
  }
354
373
 
355
374
  _getTitle() {
356
- return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')
375
+ return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle
357
376
  }
358
377
 
359
378
  // Private
@@ -447,10 +466,7 @@ class Tooltip extends BaseComponent {
447
466
 
448
467
  for (const trigger of triggers) {
449
468
  if (trigger === 'click') {
450
- EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {
451
- const context = this._initializeOnDelegatedTarget(event)
452
- context.toggle()
453
- })
469
+ EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => this.toggle(event))
454
470
  } else if (trigger !== TRIGGER_MANUAL) {
455
471
  const eventIn = trigger === TRIGGER_HOVER ?
456
472
  this.constructor.eventName(EVENT_MOUSEENTER) :
@@ -481,10 +497,20 @@ class Tooltip extends BaseComponent {
481
497
  }
482
498
 
483
499
  EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)
500
+
501
+ if (this._config.selector) {
502
+ this._config = {
503
+ ...this._config,
504
+ trigger: 'manual',
505
+ selector: ''
506
+ }
507
+ } else {
508
+ this._fixTitle()
509
+ }
484
510
  }
485
511
 
486
512
  _fixTitle() {
487
- const title = this._element.getAttribute('title')
513
+ const title = this._config.originalTitle
488
514
 
489
515
  if (!title) {
490
516
  return
@@ -494,7 +520,6 @@ class Tooltip extends BaseComponent {
494
520
  this._element.setAttribute('aria-label', title)
495
521
  }
496
522
 
497
- this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility
498
523
  this._element.removeAttribute('title')
499
524
  }
500
525
 
@@ -565,6 +590,7 @@ class Tooltip extends BaseComponent {
565
590
  }
566
591
  }
567
592
 
593
+ config.originalTitle = this._element.getAttribute('title') || ''
568
594
  if (typeof config.title === 'number') {
569
595
  config.title = config.title.toString()
570
596
  }
@@ -585,9 +611,6 @@ class Tooltip extends BaseComponent {
585
611
  }
586
612
  }
587
613
 
588
- config.selector = false
589
- config.trigger = 'manual'
590
-
591
614
  // In the future can be replaced with:
592
615
  // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])
593
616
  // `Object.fromEntries(keysWithDifferentValues)`
@@ -599,11 +622,6 @@ class Tooltip extends BaseComponent {
599
622
  this._popper.destroy()
600
623
  this._popper = null
601
624
  }
602
-
603
- if (this.tip) {
604
- this.tip.remove()
605
- this.tip = null
606
- }
607
625
  }
608
626
 
609
627
  // Static
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): util/backdrop.js
3
+ * Bootstrap (v5.2.0): util/backdrop.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.2.3): util/component-functions.js
3
+ * Bootstrap (v5.2.0): util/component-functions.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */