@coreui/coreui 5.2.0 → 5.3.1

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 (273) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -4
  3. package/dist/css/coreui-grid.css +456 -229
  4. package/dist/css/coreui-grid.css.map +1 -1
  5. package/dist/css/coreui-grid.min.css +3 -3
  6. package/dist/css/coreui-grid.min.css.map +1 -1
  7. package/dist/css/coreui-grid.rtl.css +229 -229
  8. package/dist/css/coreui-grid.rtl.css.map +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css +3 -3
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  11. package/dist/css/coreui-reboot.css +56 -49
  12. package/dist/css/coreui-reboot.css.map +1 -1
  13. package/dist/css/coreui-reboot.min.css +3 -3
  14. package/dist/css/coreui-reboot.min.css.map +1 -1
  15. package/dist/css/coreui-reboot.rtl.css +54 -49
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  17. package/dist/css/coreui-reboot.rtl.min.css +3 -3
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  19. package/dist/css/coreui-utilities.css +531 -371
  20. package/dist/css/coreui-utilities.css.map +1 -1
  21. package/dist/css/coreui-utilities.min.css +3 -3
  22. package/dist/css/coreui-utilities.min.css.map +1 -1
  23. package/dist/css/coreui-utilities.rtl.css +353 -353
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  25. package/dist/css/coreui-utilities.rtl.min.css +3 -3
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  27. package/dist/css/coreui.css +1457 -1020
  28. package/dist/css/coreui.css.map +1 -1
  29. package/dist/css/coreui.min.css +3 -3
  30. package/dist/css/coreui.min.css.map +1 -1
  31. package/dist/css/coreui.rtl.css +1115 -1002
  32. package/dist/css/coreui.rtl.css.map +1 -1
  33. package/dist/css/coreui.rtl.min.css +3 -3
  34. package/dist/css/coreui.rtl.min.css.map +1 -1
  35. package/dist/css/themes/bootstrap/bootstrap.css +5195 -4350
  36. package/dist/css/themes/bootstrap/bootstrap.css.map +1 -1
  37. package/dist/css/themes/bootstrap/bootstrap.min.css +3 -7
  38. package/dist/css/themes/bootstrap/bootstrap.min.css.map +1 -1
  39. package/dist/css/themes/bootstrap/bootstrap.rtl.css +4971 -4625
  40. package/dist/css/themes/bootstrap/bootstrap.rtl.css.map +1 -1
  41. package/dist/css/themes/bootstrap/bootstrap.rtl.min.css +3 -7
  42. package/dist/css/themes/bootstrap/bootstrap.rtl.min.css.map +1 -1
  43. package/dist/js/bootstrap.bundle.js +4 -7
  44. package/dist/js/bootstrap.bundle.js.map +1 -1
  45. package/dist/js/bootstrap.bundle.min.js +3 -3
  46. package/dist/js/bootstrap.bundle.min.js.map +1 -1
  47. package/dist/js/bootstrap.esm.js +4 -5
  48. package/dist/js/bootstrap.esm.js.map +1 -1
  49. package/dist/js/bootstrap.esm.min.js +3 -3
  50. package/dist/js/bootstrap.esm.min.js.map +1 -1
  51. package/dist/js/bootstrap.js +4 -5
  52. package/dist/js/bootstrap.js.map +1 -1
  53. package/dist/js/bootstrap.min.js +3 -3
  54. package/dist/js/bootstrap.min.js.map +1 -1
  55. package/dist/js/coreui.bundle.js +4 -7
  56. package/dist/js/coreui.bundle.js.map +1 -1
  57. package/dist/js/coreui.bundle.min.js +3 -3
  58. package/dist/js/coreui.bundle.min.js.map +1 -1
  59. package/dist/js/coreui.esm.js +4 -5
  60. package/dist/js/coreui.esm.js.map +1 -1
  61. package/dist/js/coreui.esm.min.js +3 -3
  62. package/dist/js/coreui.esm.min.js.map +1 -1
  63. package/dist/js/coreui.js +4 -5
  64. package/dist/js/coreui.js.map +1 -1
  65. package/dist/js/coreui.min.js +3 -3
  66. package/dist/js/coreui.min.js.map +1 -1
  67. package/js/dist/alert.js +2 -2
  68. package/js/dist/base-component.js +3 -3
  69. package/js/dist/base-component.js.map +1 -1
  70. package/js/dist/button.js +2 -2
  71. package/js/dist/carousel.js +2 -2
  72. package/js/dist/collapse.js +2 -2
  73. package/js/dist/dom/data.js +2 -2
  74. package/js/dist/dom/event-handler.js +2 -2
  75. package/js/dist/dom/manipulator.js +2 -2
  76. package/js/dist/dom/selector-engine.js +2 -2
  77. package/js/dist/dropdown.js +2 -2
  78. package/js/dist/modal.js +2 -2
  79. package/js/dist/navigation.js +3 -3
  80. package/js/dist/navigation.js.map +1 -1
  81. package/js/dist/offcanvas.js +2 -2
  82. package/js/dist/popover.js +2 -2
  83. package/js/dist/scrollspy.js +2 -2
  84. package/js/dist/sidebar.js +2 -2
  85. package/js/dist/tab.js +2 -2
  86. package/js/dist/toast.js +2 -2
  87. package/js/dist/tooltip.js +2 -2
  88. package/js/dist/util/backdrop.js +2 -2
  89. package/js/dist/util/component-functions.js +2 -2
  90. package/js/dist/util/config.js +2 -2
  91. package/js/dist/util/focustrap.js +2 -2
  92. package/js/dist/util/index.js +2 -2
  93. package/js/dist/util/index.js.map +1 -1
  94. package/js/dist/util/sanitizer.js +2 -3
  95. package/js/dist/util/sanitizer.js.map +1 -1
  96. package/js/dist/util/scrollbar.js +2 -2
  97. package/js/dist/util/swipe.js +2 -2
  98. package/js/dist/util/template-factory.js +2 -2
  99. package/js/src/base-component.js +1 -1
  100. package/js/src/navigation.js +1 -1
  101. package/js/src/util/sanitizer.js +0 -1
  102. package/package.json +26 -29
  103. package/scss/_accordion.import.scss +1 -0
  104. package/scss/_accordion.scss +10 -2
  105. package/scss/_alert.import.scss +1 -0
  106. package/scss/_alert.scss +7 -3
  107. package/scss/_avatar.import.scss +1 -0
  108. package/scss/_avatar.scss +13 -8
  109. package/scss/_badge.import.scss +1 -0
  110. package/scss/_badge.scss +4 -0
  111. package/scss/_banner.scss +7 -0
  112. package/scss/_breadcrumb.import.scss +1 -0
  113. package/scss/_breadcrumb.scss +9 -3
  114. package/scss/_button-group.import.scss +1 -0
  115. package/scss/_button-group.scss +7 -3
  116. package/scss/_buttons.import.scss +1 -0
  117. package/scss/_buttons.scss +49 -18
  118. package/scss/_callout.import.scss +1 -0
  119. package/scss/_callout.scss +5 -2
  120. package/scss/_card.import.scss +1 -0
  121. package/scss/_card.scss +8 -3
  122. package/scss/_carousel.import.scss +1 -0
  123. package/scss/_carousel.scss +9 -3
  124. package/scss/_close.import.scss +1 -0
  125. package/scss/_close.scss +6 -1
  126. package/scss/_containers.import.scss +1 -0
  127. package/scss/_containers.scss +4 -0
  128. package/scss/_dropdown.import.scss +1 -0
  129. package/scss/_dropdown.scss +30 -21
  130. package/scss/_footer.import.scss +1 -0
  131. package/scss/_footer.scss +2 -0
  132. package/scss/_forms.import.scss +9 -0
  133. package/scss/_forms.scss +9 -9
  134. package/scss/_functions.import.scss +1 -0
  135. package/scss/_functions.scss +12 -366
  136. package/scss/_grid.import.scss +1 -0
  137. package/scss/_grid.scss +23 -1
  138. package/scss/_header.import.scss +1 -0
  139. package/scss/_header.scss +9 -2
  140. package/scss/_helpers.import.scss +1 -0
  141. package/scss/_helpers.scss +12 -12
  142. package/scss/_icon.import.scss +1 -0
  143. package/scss/_icon.scss +3 -0
  144. package/scss/_images.import.scss +1 -0
  145. package/scss/_images.scss +6 -0
  146. package/scss/_list-group.import.scss +1 -0
  147. package/scss/_list-group.scss +11 -6
  148. package/scss/_maps.import.scss +1 -0
  149. package/scss/_maps.scss +14 -7
  150. package/scss/_mixins.import.scss +1 -0
  151. package/scss/_mixins.scss +29 -29
  152. package/scss/_modal.import.scss +1 -0
  153. package/scss/_modal.scss +12 -3
  154. package/scss/_nav.import.scss +1 -0
  155. package/scss/_nav.scss +7 -1
  156. package/scss/_navbar.import.scss +1 -0
  157. package/scss/_navbar.scss +16 -4
  158. package/scss/_offcanvas.import.scss +1 -0
  159. package/scss/_offcanvas.scss +14 -7
  160. package/scss/_pagination.import.scss +1 -0
  161. package/scss/_pagination.scss +9 -1
  162. package/scss/_placeholders.import.scss +1 -0
  163. package/scss/_placeholders.scss +2 -0
  164. package/scss/_popover.import.scss +1 -0
  165. package/scss/_popover.scss +6 -0
  166. package/scss/_progress.import.scss +1 -0
  167. package/scss/_progress.scss +7 -0
  168. package/scss/_reboot.import.scss +1 -0
  169. package/scss/_reboot.scss +11 -7
  170. package/scss/_root.import.scss +1 -0
  171. package/scss/_root.scss +14 -5
  172. package/scss/_sidebar.import.scss +3 -0
  173. package/scss/_sidebar.scss +3 -3
  174. package/scss/_spinners.import.scss +1 -0
  175. package/scss/_spinners.scss +2 -0
  176. package/scss/_tables.import.scss +1 -0
  177. package/scss/_tables.scss +6 -1
  178. package/scss/_toasts.import.scss +1 -0
  179. package/scss/_toasts.scss +5 -2
  180. package/scss/_tooltip.import.scss +1 -0
  181. package/scss/_tooltip.scss +6 -0
  182. package/scss/_transitions.import.scss +1 -0
  183. package/scss/_transitions.scss +3 -0
  184. package/scss/_type.import.scss +1 -0
  185. package/scss/_type.scss +6 -1
  186. package/scss/_utilities.import.scss +1 -0
  187. package/scss/_utilities.scss +50 -63
  188. package/scss/_variables-dark.import.scss +1 -0
  189. package/scss/_variables-dark.scss +17 -36
  190. package/scss/_variables.import.scss +1 -0
  191. package/scss/_variables.scss +36 -34
  192. package/scss/coreui-grid.rtl.scss +4 -4
  193. package/scss/coreui-grid.scss +12 -21
  194. package/scss/coreui-reboot.rtl.scss +4 -4
  195. package/scss/coreui-reboot.scss +8 -9
  196. package/scss/coreui-utilities.rtl.scss +4 -4
  197. package/scss/coreui-utilities.scss +8 -11
  198. package/scss/coreui.rtl.scss +4 -4
  199. package/scss/coreui.scss +44 -47
  200. package/scss/forms/_floating-labels.import.scss +1 -0
  201. package/scss/forms/_floating-labels.scss +5 -1
  202. package/scss/forms/_form-check.import.scss +1 -0
  203. package/scss/forms/_form-check.scss +24 -20
  204. package/scss/forms/_form-control.import.scss +1 -0
  205. package/scss/forms/_form-control.scss +9 -1
  206. package/scss/forms/_form-range.import.scss +1 -0
  207. package/scss/forms/_form-range.scss +7 -0
  208. package/scss/forms/_form-select.import.scss +1 -0
  209. package/scss/forms/_form-select.scss +18 -5
  210. package/scss/forms/_form-text.import.scss +1 -0
  211. package/scss/forms/_form-text.scss +3 -0
  212. package/scss/forms/_input-group.import.scss +1 -0
  213. package/scss/forms/_input-group.scss +10 -4
  214. package/scss/forms/_labels.import.scss +1 -0
  215. package/scss/forms/_labels.scss +4 -0
  216. package/scss/forms/_validation.import.scss +1 -0
  217. package/scss/forms/_validation.scss +3 -0
  218. package/scss/functions/_assert-ascending.scss +19 -0
  219. package/scss/functions/_assert-starts-at-zero.scss +14 -0
  220. package/scss/functions/_color-contrast-variables.scss +23 -0
  221. package/scss/functions/_color-contrast.scss +27 -0
  222. package/scss/functions/_color.scss +18 -0
  223. package/scss/functions/_contrast-ratio.scss +35 -0
  224. package/scss/functions/_escape-svg.scss +22 -0
  225. package/scss/functions/_maps.scss +57 -0
  226. package/scss/functions/_math.scss +87 -0
  227. package/scss/functions/_rgba-css-var.scss +9 -0
  228. package/scss/functions/_str-replace.scss +19 -0
  229. package/scss/functions/_to-rgb.scss +5 -0
  230. package/scss/helpers/_clearfix.scss +2 -0
  231. package/scss/helpers/_color-bg.scss +9 -3
  232. package/scss/helpers/_colored-links.scss +13 -9
  233. package/scss/helpers/_focus-ring.scss +2 -0
  234. package/scss/helpers/_icon-link.scss +3 -0
  235. package/scss/helpers/_position.scss +5 -1
  236. package/scss/helpers/_ratio.scss +3 -1
  237. package/scss/helpers/_stretched-link.scss +2 -0
  238. package/scss/helpers/_text-truncation.scss +2 -0
  239. package/scss/helpers/_visually-hidden.scss +2 -0
  240. package/scss/helpers/_vr.scss +2 -0
  241. package/scss/mixins/_alert.scss +3 -0
  242. package/scss/mixins/_avatar.scss +3 -0
  243. package/scss/mixins/_backdrop.scss +2 -0
  244. package/scss/mixins/_border-radius.scss +15 -11
  245. package/scss/mixins/_box-shadow.scss +5 -2
  246. package/scss/mixins/_breakpoints.scss +82 -5
  247. package/scss/mixins/_buttons.scss +54 -50
  248. package/scss/mixins/_caret.scss +5 -3
  249. package/scss/mixins/_color-mode.scss +3 -1
  250. package/scss/mixins/_container.scss +2 -0
  251. package/scss/mixins/_deprecate.scss +2 -0
  252. package/scss/mixins/_forms.scss +12 -5
  253. package/scss/mixins/_gradients.scss +2 -0
  254. package/scss/mixins/_grid.scss +76 -7
  255. package/scss/mixins/_list-group.scss +6 -3
  256. package/scss/mixins/_lists.scss +1 -1
  257. package/scss/mixins/_ltr-rtl.scss +48 -17
  258. package/scss/mixins/_pagination.scss +3 -0
  259. package/scss/mixins/_reset-text.scss +2 -1
  260. package/scss/mixins/_table-variants.scss +10 -4
  261. package/scss/mixins/_transition.scss +7 -4
  262. package/scss/mixins/_utilities.import.scss +1 -0
  263. package/scss/mixins/_utilities.scss +30 -17
  264. package/scss/sidebar/_sidebar-narrow.scss +5 -0
  265. package/scss/sidebar/_sidebar-nav.scss +8 -4
  266. package/scss/sidebar/_sidebar.scss +24 -15
  267. package/scss/themes/bootstrap/bootstrap.rtl.scss +4 -22
  268. package/scss/themes/bootstrap/bootstrap.scss +121 -15
  269. package/scss/utilities/_api.import.scss +1 -0
  270. package/scss/utilities/_api.scss +14 -6
  271. package/scss/vendor/_rfs.scss +33 -27
  272. package/scss/mixins/_banner.scss +0 -7
  273. package/scss/themes/bootstrap/mixins/_banner.scss +0 -7
package/js/dist/alert.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI alert.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI alert.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI base-component.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI base-component.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -24,7 +24,7 @@
24
24
  * Constants
25
25
  */
26
26
 
27
- const VERSION = '5.2.0';
27
+ const VERSION = '5.3.1';
28
28
 
29
29
  /**
30
30
  * Class definition
@@ -1 +1 @@
1
- {"version":3,"file":"base-component.js","sources":["../src/base-component.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI base-component.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This component is a modified version of the Bootstrap's base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.2.0'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `coreui.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n"],"names":["VERSION","BaseComponent","Config","constructor","element","config","getElement","_element","_config","_getConfig","Data","set","DATA_KEY","dispose","remove","EventHandler","off","EVENT_KEY","propertyName","Object","getOwnPropertyNames","_queueCallback","callback","isAnimated","executeAfterTransition","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","getInstance","get","getOrCreateInstance","NAME","eventName","name"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAOA;EACA;EACA;;EAEA,MAAMA,OAAO,GAAG,OAAO;;EAEvB;EACA;EACA;;EAEA,MAAMC,aAAa,SAASC,MAAM,CAAC;EACjCC,EAAAA,WAAWA,CAACC,OAAO,EAAEC,MAAM,EAAE;EAC3B,IAAA,KAAK,EAAE;EAEPD,IAAAA,OAAO,GAAGE,mBAAU,CAACF,OAAO,CAAC;MAC7B,IAAI,CAACA,OAAO,EAAE;EACZ,MAAA;EACF;MAEA,IAAI,CAACG,QAAQ,GAAGH,OAAO;MACvB,IAAI,CAACI,OAAO,GAAG,IAAI,CAACC,UAAU,CAACJ,MAAM,CAAC;EAEtCK,IAAAA,IAAI,CAACC,GAAG,CAAC,IAAI,CAACJ,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACS,QAAQ,EAAE,IAAI,CAAC;EAC1D;;EAEA;EACAC,EAAAA,OAAOA,GAAG;EACRH,IAAAA,IAAI,CAACI,MAAM,CAAC,IAAI,CAACP,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACS,QAAQ,CAAC;EACrDG,IAAAA,YAAY,CAACC,GAAG,CAAC,IAAI,CAACT,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACc,SAAS,CAAC;MAE3D,KAAK,MAAMC,YAAY,IAAIC,MAAM,CAACC,mBAAmB,CAAC,IAAI,CAAC,EAAE;EAC3D,MAAA,IAAI,CAACF,YAAY,CAAC,GAAG,IAAI;EAC3B;EACF;IAEAG,cAAcA,CAACC,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,GAAG,IAAI,EAAE;EACnDC,IAAAA,+BAAsB,CAACF,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,CAAC;EACvD;IAEAd,UAAUA,CAACJ,MAAM,EAAE;MACjBA,MAAM,GAAG,IAAI,CAACoB,eAAe,CAACpB,MAAM,EAAE,IAAI,CAACE,QAAQ,CAAC;EACpDF,IAAAA,MAAM,GAAG,IAAI,CAACqB,iBAAiB,CAACrB,MAAM,CAAC;EACvC,IAAA,IAAI,CAACsB,gBAAgB,CAACtB,MAAM,CAAC;EAC7B,IAAA,OAAOA,MAAM;EACf;;EAEA;IACA,OAAOuB,WAAWA,CAACxB,OAAO,EAAE;EAC1B,IAAA,OAAOM,IAAI,CAACmB,GAAG,CAACvB,mBAAU,CAACF,OAAO,CAAC,EAAE,IAAI,CAACQ,QAAQ,CAAC;EACrD;IAEA,OAAOkB,mBAAmBA,CAAC1B,OAAO,EAAEC,MAAM,GAAG,EAAE,EAAE;MAC/C,OAAO,IAAI,CAACuB,WAAW,CAACxB,OAAO,CAAC,IAAI,IAAI,IAAI,CAACA,OAAO,EAAE,OAAOC,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAG,IAAI,CAAC;EACnG;IAEA,WAAWL,OAAOA,GAAG;EACnB,IAAA,OAAOA,OAAO;EAChB;IAEA,WAAWY,QAAQA,GAAG;EACpB,IAAA,OAAO,CAAU,OAAA,EAAA,IAAI,CAACmB,IAAI,CAAE,CAAA;EAC9B;IAEA,WAAWd,SAASA,GAAG;EACrB,IAAA,OAAO,CAAI,CAAA,EAAA,IAAI,CAACL,QAAQ,CAAE,CAAA;EAC5B;IAEA,OAAOoB,SAASA,CAACC,IAAI,EAAE;EACrB,IAAA,OAAO,GAAGA,IAAI,CAAA,EAAG,IAAI,CAAChB,SAAS,CAAE,CAAA;EACnC;EACF;;;;;;;;"}
1
+ {"version":3,"file":"base-component.js","sources":["../src/base-component.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI base-component.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This component is a modified version of the Bootstrap's base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.1'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `coreui.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n"],"names":["VERSION","BaseComponent","Config","constructor","element","config","getElement","_element","_config","_getConfig","Data","set","DATA_KEY","dispose","remove","EventHandler","off","EVENT_KEY","propertyName","Object","getOwnPropertyNames","_queueCallback","callback","isAnimated","executeAfterTransition","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","getInstance","get","getOrCreateInstance","NAME","eventName","name"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAOA;EACA;EACA;;EAEA,MAAMA,OAAO,GAAG,OAAO;;EAEvB;EACA;EACA;;EAEA,MAAMC,aAAa,SAASC,MAAM,CAAC;EACjCC,EAAAA,WAAWA,CAACC,OAAO,EAAEC,MAAM,EAAE;EAC3B,IAAA,KAAK,EAAE;EAEPD,IAAAA,OAAO,GAAGE,mBAAU,CAACF,OAAO,CAAC;MAC7B,IAAI,CAACA,OAAO,EAAE;EACZ,MAAA;EACF;MAEA,IAAI,CAACG,QAAQ,GAAGH,OAAO;MACvB,IAAI,CAACI,OAAO,GAAG,IAAI,CAACC,UAAU,CAACJ,MAAM,CAAC;EAEtCK,IAAAA,IAAI,CAACC,GAAG,CAAC,IAAI,CAACJ,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACS,QAAQ,EAAE,IAAI,CAAC;EAC1D;;EAEA;EACAC,EAAAA,OAAOA,GAAG;EACRH,IAAAA,IAAI,CAACI,MAAM,CAAC,IAAI,CAACP,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACS,QAAQ,CAAC;EACrDG,IAAAA,YAAY,CAACC,GAAG,CAAC,IAAI,CAACT,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACc,SAAS,CAAC;MAE3D,KAAK,MAAMC,YAAY,IAAIC,MAAM,CAACC,mBAAmB,CAAC,IAAI,CAAC,EAAE;EAC3D,MAAA,IAAI,CAACF,YAAY,CAAC,GAAG,IAAI;EAC3B;EACF;IAEAG,cAAcA,CAACC,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,GAAG,IAAI,EAAE;EACnDC,IAAAA,+BAAsB,CAACF,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,CAAC;EACvD;IAEAd,UAAUA,CAACJ,MAAM,EAAE;MACjBA,MAAM,GAAG,IAAI,CAACoB,eAAe,CAACpB,MAAM,EAAE,IAAI,CAACE,QAAQ,CAAC;EACpDF,IAAAA,MAAM,GAAG,IAAI,CAACqB,iBAAiB,CAACrB,MAAM,CAAC;EACvC,IAAA,IAAI,CAACsB,gBAAgB,CAACtB,MAAM,CAAC;EAC7B,IAAA,OAAOA,MAAM;EACf;;EAEA;IACA,OAAOuB,WAAWA,CAACxB,OAAO,EAAE;EAC1B,IAAA,OAAOM,IAAI,CAACmB,GAAG,CAACvB,mBAAU,CAACF,OAAO,CAAC,EAAE,IAAI,CAACQ,QAAQ,CAAC;EACrD;IAEA,OAAOkB,mBAAmBA,CAAC1B,OAAO,EAAEC,MAAM,GAAG,EAAE,EAAE;MAC/C,OAAO,IAAI,CAACuB,WAAW,CAACxB,OAAO,CAAC,IAAI,IAAI,IAAI,CAACA,OAAO,EAAE,OAAOC,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAG,IAAI,CAAC;EACnG;IAEA,WAAWL,OAAOA,GAAG;EACnB,IAAA,OAAOA,OAAO;EAChB;IAEA,WAAWY,QAAQA,GAAG;EACpB,IAAA,OAAO,CAAU,OAAA,EAAA,IAAI,CAACmB,IAAI,CAAE,CAAA;EAC9B;IAEA,WAAWd,SAASA,GAAG;EACrB,IAAA,OAAO,CAAI,CAAA,EAAA,IAAI,CAACL,QAAQ,CAAE,CAAA;EAC5B;IAEA,OAAOoB,SAASA,CAACC,IAAI,EAAE;EACrB,IAAA,OAAO,GAAGA,IAAI,CAAA,EAAG,IAAI,CAAChB,SAAS,CAAE,CAAA;EACnC;EACF;;;;;;;;"}
package/js/dist/button.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI button.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI button.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI carousel.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI carousel.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI collapse.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI collapse.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI data.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI data.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI event-handler.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI event-handler.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI manipulator.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI manipulator.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI selector-engine.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI selector-engine.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI dropdown.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI dropdown.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
package/js/dist/modal.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI modal.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI modal.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI navigation.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI navigation.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -101,7 +101,7 @@
101
101
  element.setAttribute('aria-expanded', true);
102
102
  });
103
103
  }
104
- if (!this._config.activeLinksExact && element.href.startsWith(currentUrl)) {
104
+ if (!this._config.activeLinksExact && currentUrl.startsWith(element.href)) {
105
105
  element.classList.add(CLASS_NAME_ACTIVE);
106
106
  // eslint-disable-next-line unicorn/no-array-for-each
107
107
  Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sources":["../src/navigation.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI navigation.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'navigation'\nconst DATA_KEY = 'coreui.navigation'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n activeLinksExact: true,\n groupsAutoCollapse: true\n}\n\nconst DefaultType = {\n activeLinksExact: 'boolean',\n groupsAutoCollapse: '(string|boolean)'\n}\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SHOW = 'show'\n\nconst CLASS_NAME_NAV_GROUP = 'nav-group'\nconst CLASS_NAME_NAV_GROUP_TOGGLE = 'nav-group-toggle'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_NAV_GROUP = '.nav-group'\nconst SELECTOR_NAV_GROUP_ITEMS = '.nav-group-items'\nconst SELECTOR_NAV_GROUP_TOGGLE = '.nav-group-toggle'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_DATA_NAVIGATION = '[data-coreui=\"navigation\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Navigation extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._config = this._getConfig(config)\n this._setActiveLink()\n this._addEventListeners()\n\n Data.set(element, DATA_KEY, this)\n }\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Private\n\n _setActiveLink() {\n for (const element of Array.from(this._element.querySelectorAll(SELECTOR_NAV_LINK))) {\n if (element.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {\n continue\n }\n\n let currentUrl = String(window.location)\n\n const urlHasParams = /\\?.*=/\n const urlHasQueryString = /\\?./\n const urlHasHash = /#./\n\n if (urlHasParams.test(currentUrl) || urlHasQueryString.test(currentUrl)) {\n currentUrl = currentUrl.split('?')[0]\n }\n\n if (urlHasHash.test(currentUrl)) {\n currentUrl = currentUrl.split('#')[0]\n }\n\n if (this._config.activeLinksExact && element.href === currentUrl) {\n element.classList.add(CLASS_NAME_ACTIVE)\n // eslint-disable-next-line unicorn/no-array-for-each\n Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {\n element.classList.add(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n if (!this._config.activeLinksExact && element.href.startsWith(currentUrl)) {\n element.classList.add(CLASS_NAME_ACTIVE)\n // eslint-disable-next-line unicorn/no-array-for-each\n Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {\n element.classList.add(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', true)\n })\n }\n }\n }\n\n _getParents(element, selector) {\n // Setup parents array\n const parents = []\n\n // Get matching parent elements\n for (; element && element !== document; element = element.parentNode) {\n // Add matching parents to array\n if (selector) {\n if (element.matches(selector)) {\n parents.push(element)\n }\n } else {\n parents.push(element)\n }\n }\n\n return parents\n }\n\n _getAllSiblings(element, filter) {\n const siblings = []\n element = element.parentNode.firstChild\n do {\n if (element.nodeType === 3) {\n continue // text node\n }\n\n if (element.nodeType === 8) {\n continue // comment node\n }\n\n if (!filter || filter(element)) {\n siblings.push(element)\n }\n\n // eslint-disable-next-line no-cond-assign\n } while (element = element.nextSibling)\n\n return siblings\n }\n\n _getChildren(n, skipMe) {\n const children = []\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== skipMe) {\n children.push(n)\n }\n }\n\n return children\n }\n\n _getSiblings(element, filter) {\n const siblings = this._getChildren(element.parentNode.firstChild, element).filter(filter)\n return siblings\n }\n\n _slideDown(element) {\n element.style.height = 'auto'\n const height = element.clientHeight\n element.style.height = '0px'\n setTimeout(() => {\n element.style.height = `${height}px`\n }, 0)\n\n this._queueCallback(() => {\n element.style.height = 'auto'\n }, element, true)\n }\n\n _slideUp(element, callback) {\n const height = element.clientHeight\n element.style.height = `${height}px`\n setTimeout(() => {\n element.style.height = '0px'\n }, 0)\n\n this._queueCallback(() => {\n if (typeof callback === 'function') {\n callback()\n }\n }, element, true)\n }\n\n _toggleGroupItems(event) {\n let toggler = event.target\n if (!toggler.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {\n toggler = toggler.closest(SELECTOR_NAV_GROUP_TOGGLE)\n }\n\n const filter = element => Boolean(element.classList.contains(CLASS_NAME_NAV_GROUP) && element.classList.contains(CLASS_NAME_SHOW))\n\n // Close other groups\n if (this._config.groupsAutoCollapse === true) {\n for (const element of this._getSiblings(toggler.parentNode, filter)) {\n this._slideUp(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, element), () => {\n element.classList.remove(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', false)\n })\n }\n }\n\n if (toggler.parentNode.classList.contains(CLASS_NAME_SHOW)) {\n this._slideUp(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode), () => {\n toggler.parentNode.classList.remove(CLASS_NAME_SHOW)\n toggler.parentNode.setAttribute('aria-expanded', false)\n })\n return\n }\n\n toggler.parentNode.classList.add(CLASS_NAME_SHOW)\n toggler.parentNode.setAttribute('aria-expanded', true)\n this._slideDown(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode))\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DATA_API, SELECTOR_NAV_GROUP_TOGGLE, event => {\n event.preventDefault()\n this._toggleGroupItems(event, this)\n })\n }\n\n // Static\n\n static navigationInterface(element, config) {\n const data = Navigation.getOrCreateInstance(element, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Navigation.navigationInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of Array.from(document.querySelectorAll(SELECTOR_DATA_NAVIGATION))) {\n Navigation.navigationInterface(element)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Navigation to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Navigation)\n\nexport default Navigation\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","activeLinksExact","groupsAutoCollapse","DefaultType","CLASS_NAME_ACTIVE","CLASS_NAME_SHOW","CLASS_NAME_NAV_GROUP","CLASS_NAME_NAV_GROUP_TOGGLE","EVENT_CLICK_DATA_API","EVENT_LOAD_DATA_API","SELECTOR_NAV_GROUP","SELECTOR_NAV_GROUP_ITEMS","SELECTOR_NAV_GROUP_TOGGLE","SELECTOR_NAV_LINK","SELECTOR_DATA_NAVIGATION","Navigation","BaseComponent","constructor","element","config","_config","_getConfig","_setActiveLink","_addEventListeners","Data","set","Array","from","_element","querySelectorAll","classList","contains","currentUrl","String","window","location","urlHasParams","urlHasQueryString","urlHasHash","test","split","href","add","_getParents","forEach","setAttribute","startsWith","selector","parents","document","parentNode","matches","push","_getAllSiblings","filter","siblings","firstChild","nodeType","nextSibling","_getChildren","n","skipMe","children","_getSiblings","_slideDown","style","height","clientHeight","setTimeout","_queueCallback","_slideUp","callback","_toggleGroupItems","event","toggler","target","closest","Boolean","SelectorEngine","findOne","remove","EventHandler","on","preventDefault","navigationInterface","data","getOrCreateInstance","TypeError","jQueryInterface","each","defineJQueryPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"navigation.js","sources":["../src/navigation.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI navigation.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'navigation'\nconst DATA_KEY = 'coreui.navigation'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n activeLinksExact: true,\n groupsAutoCollapse: true\n}\n\nconst DefaultType = {\n activeLinksExact: 'boolean',\n groupsAutoCollapse: '(string|boolean)'\n}\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SHOW = 'show'\n\nconst CLASS_NAME_NAV_GROUP = 'nav-group'\nconst CLASS_NAME_NAV_GROUP_TOGGLE = 'nav-group-toggle'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_NAV_GROUP = '.nav-group'\nconst SELECTOR_NAV_GROUP_ITEMS = '.nav-group-items'\nconst SELECTOR_NAV_GROUP_TOGGLE = '.nav-group-toggle'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_DATA_NAVIGATION = '[data-coreui=\"navigation\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Navigation extends BaseComponent {\n constructor(element, config) {\n super(element)\n this._config = this._getConfig(config)\n this._setActiveLink()\n this._addEventListeners()\n\n Data.set(element, DATA_KEY, this)\n }\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Private\n\n _setActiveLink() {\n for (const element of Array.from(this._element.querySelectorAll(SELECTOR_NAV_LINK))) {\n if (element.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {\n continue\n }\n\n let currentUrl = String(window.location)\n\n const urlHasParams = /\\?.*=/\n const urlHasQueryString = /\\?./\n const urlHasHash = /#./\n\n if (urlHasParams.test(currentUrl) || urlHasQueryString.test(currentUrl)) {\n currentUrl = currentUrl.split('?')[0]\n }\n\n if (urlHasHash.test(currentUrl)) {\n currentUrl = currentUrl.split('#')[0]\n }\n\n if (this._config.activeLinksExact && element.href === currentUrl) {\n element.classList.add(CLASS_NAME_ACTIVE)\n // eslint-disable-next-line unicorn/no-array-for-each\n Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {\n element.classList.add(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n if (!this._config.activeLinksExact && currentUrl.startsWith(element.href)) {\n element.classList.add(CLASS_NAME_ACTIVE)\n // eslint-disable-next-line unicorn/no-array-for-each\n Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {\n element.classList.add(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', true)\n })\n }\n }\n }\n\n _getParents(element, selector) {\n // Setup parents array\n const parents = []\n\n // Get matching parent elements\n for (; element && element !== document; element = element.parentNode) {\n // Add matching parents to array\n if (selector) {\n if (element.matches(selector)) {\n parents.push(element)\n }\n } else {\n parents.push(element)\n }\n }\n\n return parents\n }\n\n _getAllSiblings(element, filter) {\n const siblings = []\n element = element.parentNode.firstChild\n do {\n if (element.nodeType === 3) {\n continue // text node\n }\n\n if (element.nodeType === 8) {\n continue // comment node\n }\n\n if (!filter || filter(element)) {\n siblings.push(element)\n }\n\n // eslint-disable-next-line no-cond-assign\n } while (element = element.nextSibling)\n\n return siblings\n }\n\n _getChildren(n, skipMe) {\n const children = []\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== skipMe) {\n children.push(n)\n }\n }\n\n return children\n }\n\n _getSiblings(element, filter) {\n const siblings = this._getChildren(element.parentNode.firstChild, element).filter(filter)\n return siblings\n }\n\n _slideDown(element) {\n element.style.height = 'auto'\n const height = element.clientHeight\n element.style.height = '0px'\n setTimeout(() => {\n element.style.height = `${height}px`\n }, 0)\n\n this._queueCallback(() => {\n element.style.height = 'auto'\n }, element, true)\n }\n\n _slideUp(element, callback) {\n const height = element.clientHeight\n element.style.height = `${height}px`\n setTimeout(() => {\n element.style.height = '0px'\n }, 0)\n\n this._queueCallback(() => {\n if (typeof callback === 'function') {\n callback()\n }\n }, element, true)\n }\n\n _toggleGroupItems(event) {\n let toggler = event.target\n if (!toggler.classList.contains(CLASS_NAME_NAV_GROUP_TOGGLE)) {\n toggler = toggler.closest(SELECTOR_NAV_GROUP_TOGGLE)\n }\n\n const filter = element => Boolean(element.classList.contains(CLASS_NAME_NAV_GROUP) && element.classList.contains(CLASS_NAME_SHOW))\n\n // Close other groups\n if (this._config.groupsAutoCollapse === true) {\n for (const element of this._getSiblings(toggler.parentNode, filter)) {\n this._slideUp(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, element), () => {\n element.classList.remove(CLASS_NAME_SHOW)\n element.setAttribute('aria-expanded', false)\n })\n }\n }\n\n if (toggler.parentNode.classList.contains(CLASS_NAME_SHOW)) {\n this._slideUp(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode), () => {\n toggler.parentNode.classList.remove(CLASS_NAME_SHOW)\n toggler.parentNode.setAttribute('aria-expanded', false)\n })\n return\n }\n\n toggler.parentNode.classList.add(CLASS_NAME_SHOW)\n toggler.parentNode.setAttribute('aria-expanded', true)\n this._slideDown(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode))\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DATA_API, SELECTOR_NAV_GROUP_TOGGLE, event => {\n event.preventDefault()\n this._toggleGroupItems(event, this)\n })\n }\n\n // Static\n\n static navigationInterface(element, config) {\n const data = Navigation.getOrCreateInstance(element, config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Navigation.navigationInterface(this, config)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of Array.from(document.querySelectorAll(SELECTOR_DATA_NAVIGATION))) {\n Navigation.navigationInterface(element)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Navigation to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(Navigation)\n\nexport default Navigation\n"],"names":["NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","activeLinksExact","groupsAutoCollapse","DefaultType","CLASS_NAME_ACTIVE","CLASS_NAME_SHOW","CLASS_NAME_NAV_GROUP","CLASS_NAME_NAV_GROUP_TOGGLE","EVENT_CLICK_DATA_API","EVENT_LOAD_DATA_API","SELECTOR_NAV_GROUP","SELECTOR_NAV_GROUP_ITEMS","SELECTOR_NAV_GROUP_TOGGLE","SELECTOR_NAV_LINK","SELECTOR_DATA_NAVIGATION","Navigation","BaseComponent","constructor","element","config","_config","_getConfig","_setActiveLink","_addEventListeners","Data","set","Array","from","_element","querySelectorAll","classList","contains","currentUrl","String","window","location","urlHasParams","urlHasQueryString","urlHasHash","test","split","href","add","_getParents","forEach","setAttribute","startsWith","selector","parents","document","parentNode","matches","push","_getAllSiblings","filter","siblings","firstChild","nodeType","nextSibling","_getChildren","n","skipMe","children","_getSiblings","_slideDown","style","height","clientHeight","setTimeout","_queueCallback","_slideUp","callback","_toggleGroupItems","event","toggler","target","closest","Boolean","SelectorEngine","findOne","remove","EventHandler","on","preventDefault","navigationInterface","data","getOrCreateInstance","TypeError","jQueryInterface","each","defineJQueryPlugin"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI offcanvas.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI offcanvas.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI popover.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI popover.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI scrollspy.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI scrollspy.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI sidebar.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI sidebar.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
package/js/dist/tab.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI tab.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI tab.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
package/js/dist/toast.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI toast.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI toast.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI tooltip.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI tooltip.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI backdrop.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI backdrop.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI component-functions.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI component-functions.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI config.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI config.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI focustrap.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI focustrap.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI index.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI index.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/util/index.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI util/index.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","selector","window","CSS","escape","replace","match","id","toType","object","undefined","Object","prototype","toString","call","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","element","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","jquery","nodeType","getElement","length","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","parentNode","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","push","isRTL","dir","defineJQueryPlugin","plugin","$","name","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","execute","possibleCallback","args","defaultValue","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","handler","target","removeEventListener","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/util/index.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI util/index.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-coreui-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","selector","window","CSS","escape","replace","match","id","toType","object","undefined","Object","prototype","toString","call","toLowerCase","getUID","prefix","Math","floor","random","document","getElementById","getTransitionDurationFromElement","element","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","jquery","nodeType","getElement","length","querySelector","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","parentNode","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","DOMContentLoadedCallbacks","onDOMContentLoaded","callback","readyState","addEventListener","push","isRTL","dir","defineJQueryPlugin","plugin","$","name","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","execute","possibleCallback","args","defaultValue","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","handler","target","removeEventListener","setTimeout","getNextActiveElement","list","activeElement","shouldGetNext","isCycleAllowed","listLength","index","indexOf","max","min"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI sanitizer.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI sanitizer.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -67,7 +67,6 @@
67
67
  *
68
68
  * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
69
69
  */
70
- // eslint-disable-next-line unicorn/better-regex
71
70
  const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
72
71
  const allowedAttribute = (attribute, allowedAttributeList) => {
73
72
  const attributeName = attribute.nodeName.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizer.js","sources":["../../src/util/sanitizer.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI util/sanitizer.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n"],"names":["ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","a","area","b","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","i","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","uriAttributes","Set","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","toLowerCase","includes","has","Boolean","test","nodeValue","filter","attributeRegex","RegExp","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","length","domParser","window","DOMParser","createdDocument","parseFromString","elements","concat","body","querySelectorAll","element","elementName","Object","keys","remove","attributeList","attributes","allowedAttributes","removeAttribute","innerHTML"],"mappings":"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"}
1
+ {"version":3,"file":"sanitizer.js","sources":["../../src/util/sanitizer.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI util/sanitizer.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n"],"names":["ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","a","area","b","br","col","code","dd","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","i","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","uriAttributes","Set","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","toLowerCase","includes","has","Boolean","test","nodeValue","filter","attributeRegex","RegExp","some","regex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","length","domParser","window","DOMParser","createdDocument","parseFromString","elements","concat","body","querySelectorAll","element","elementName","Object","keys","remove","attributeList","attributes","allowedAttributes","removeAttribute","innerHTML"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI scrollbar.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI scrollbar.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI swipe.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI swipe.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * CoreUI template-factory.js v5.2.0 (https://coreui.io)
3
- * Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
2
+ * CoreUI template-factory.js v5.3.1 (https://coreui.io)
3
+ * Copyright 2025 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -17,7 +17,7 @@ import { executeAfterTransition, getElement } from './util/index.js'
17
17
  * Constants
18
18
  */
19
19
 
20
- const VERSION = '5.2.0'
20
+ const VERSION = '5.3.1'
21
21
 
22
22
  /**
23
23
  * Class definition
@@ -111,7 +111,7 @@ class Navigation extends BaseComponent {
111
111
  })
112
112
  }
113
113
 
114
- if (!this._config.activeLinksExact && element.href.startsWith(currentUrl)) {
114
+ if (!this._config.activeLinksExact && currentUrl.startsWith(element.href)) {
115
115
  element.classList.add(CLASS_NAME_ACTIVE)
116
116
  // eslint-disable-next-line unicorn/no-array-for-each
117
117
  Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {
@@ -66,7 +66,6 @@ const uriAttributes = new Set([
66
66
  *
67
67
  * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
68
68
  */
69
- // eslint-disable-next-line unicorn/better-regex
70
69
  const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i
71
70
 
72
71
  const allowedAttribute = (attribute, allowedAttributeList) => {