@coreui/coreui 5.6.1 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/README.md +3 -4
  2. package/dist/css/coreui-grid.css +1 -1
  3. package/dist/css/coreui-grid.css.map +1 -1
  4. package/dist/css/coreui-grid.min.css +1 -1
  5. package/dist/css/coreui-grid.min.css.map +1 -1
  6. package/dist/css/coreui-grid.rtl.css +1 -1
  7. package/dist/css/coreui-grid.rtl.css.map +1 -1
  8. package/dist/css/coreui-grid.rtl.min.css +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  10. package/dist/css/coreui-reboot.css +5 -3
  11. package/dist/css/coreui-reboot.css.map +1 -1
  12. package/dist/css/coreui-reboot.min.css +2 -2
  13. package/dist/css/coreui-reboot.min.css.map +1 -1
  14. package/dist/css/coreui-reboot.rtl.css +5 -3
  15. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  16. package/dist/css/coreui-reboot.rtl.min.css +2 -2
  17. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  18. package/dist/css/coreui-utilities.css +5 -3
  19. package/dist/css/coreui-utilities.css.map +1 -1
  20. package/dist/css/coreui-utilities.min.css +2 -2
  21. package/dist/css/coreui-utilities.min.css.map +1 -1
  22. package/dist/css/coreui-utilities.rtl.css +5 -3
  23. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  24. package/dist/css/coreui-utilities.rtl.min.css +2 -2
  25. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  26. package/dist/css/coreui.css +172 -68
  27. package/dist/css/coreui.css.map +1 -1
  28. package/dist/css/coreui.min.css +2 -2
  29. package/dist/css/coreui.min.css.map +1 -1
  30. package/dist/css/coreui.rtl.css +167 -66
  31. package/dist/css/coreui.rtl.css.map +1 -1
  32. package/dist/css/coreui.rtl.min.css +2 -2
  33. package/dist/css/coreui.rtl.min.css.map +1 -1
  34. package/dist/css/themes/bootstrap/bootstrap.css +172 -68
  35. package/dist/css/themes/bootstrap/bootstrap.css.map +1 -1
  36. package/dist/css/themes/bootstrap/bootstrap.min.css +2 -2
  37. package/dist/css/themes/bootstrap/bootstrap.min.css.map +1 -1
  38. package/dist/css/themes/bootstrap/bootstrap.rtl.css +167 -66
  39. package/dist/css/themes/bootstrap/bootstrap.rtl.css.map +1 -1
  40. package/dist/css/themes/bootstrap/bootstrap.rtl.min.css +2 -2
  41. package/dist/css/themes/bootstrap/bootstrap.rtl.min.css.map +1 -1
  42. package/dist/js/bootstrap.bundle.js +578 -259
  43. package/dist/js/bootstrap.bundle.js.map +1 -1
  44. package/dist/js/bootstrap.bundle.min.js +2 -2
  45. package/dist/js/bootstrap.bundle.min.js.map +1 -1
  46. package/dist/js/bootstrap.esm.js +578 -260
  47. package/dist/js/bootstrap.esm.js.map +1 -1
  48. package/dist/js/bootstrap.esm.min.js +2 -2
  49. package/dist/js/bootstrap.esm.min.js.map +1 -1
  50. package/dist/js/bootstrap.js +578 -259
  51. package/dist/js/bootstrap.js.map +1 -1
  52. package/dist/js/bootstrap.min.js +2 -2
  53. package/dist/js/bootstrap.min.js.map +1 -1
  54. package/dist/js/coreui.bundle.js +578 -259
  55. package/dist/js/coreui.bundle.js.map +1 -1
  56. package/dist/js/coreui.bundle.min.js +2 -2
  57. package/dist/js/coreui.bundle.min.js.map +1 -1
  58. package/dist/js/coreui.esm.js +578 -260
  59. package/dist/js/coreui.esm.js.map +1 -1
  60. package/dist/js/coreui.esm.min.js +2 -2
  61. package/dist/js/coreui.esm.min.js.map +1 -1
  62. package/dist/js/coreui.js +578 -259
  63. package/dist/js/coreui.js.map +1 -1
  64. package/dist/js/coreui.min.js +2 -2
  65. package/dist/js/coreui.min.js.map +1 -1
  66. package/js/dist/alert.js +1 -1
  67. package/js/dist/base-component.js +2 -2
  68. package/js/dist/base-component.js.map +1 -1
  69. package/js/dist/button.js +1 -1
  70. package/js/dist/carousel.js +1 -1
  71. package/js/dist/chip-input.js +1 -1
  72. package/js/dist/chip.js +1 -1
  73. package/js/dist/collapse.js +1 -1
  74. package/js/dist/dom/data.js +1 -1
  75. package/js/dist/dom/event-handler.js +1 -1
  76. package/js/dist/dom/manipulator.js +1 -1
  77. package/js/dist/dom/selector-engine.js +1 -1
  78. package/js/dist/dropdown.js +1 -1
  79. package/js/dist/modal.js +1 -1
  80. package/js/dist/navigation.js +2 -2
  81. package/js/dist/navigation.js.map +1 -1
  82. package/js/dist/offcanvas.js +1 -1
  83. package/js/dist/popover.js +1 -1
  84. package/js/dist/scrollspy.js +1 -1
  85. package/js/dist/search-button.js +336 -0
  86. package/js/dist/search-button.js.map +1 -0
  87. package/js/dist/sidebar.js +7 -10
  88. package/js/dist/sidebar.js.map +1 -1
  89. package/js/dist/tab.js +1 -1
  90. package/js/dist/toast.js +1 -1
  91. package/js/dist/tooltip.js +1 -1
  92. package/js/dist/util/backdrop.js +1 -1
  93. package/js/dist/util/component-functions.js +1 -1
  94. package/js/dist/util/config.js +1 -1
  95. package/js/dist/util/focustrap.js +1 -1
  96. package/js/dist/util/index.js +1 -1
  97. package/js/dist/util/sanitizer.js +1 -1
  98. package/js/dist/util/scrollbar.js +1 -1
  99. package/js/dist/util/swipe.js +1 -1
  100. package/js/dist/util/template-factory.js +1 -1
  101. package/js/index.esm.js +1 -0
  102. package/js/index.umd.js +2 -0
  103. package/js/src/base-component.js +1 -1
  104. package/js/src/navigation.js +1 -1
  105. package/js/src/search-button.js +409 -0
  106. package/js/src/sidebar.js +6 -10
  107. package/package.json +15 -14
  108. package/scss/_banner.scss +1 -1
  109. package/scss/_root.scss +3 -0
  110. package/scss/_search-button.scss +127 -0
  111. package/scss/_variables-dark.scss +2 -1
  112. package/scss/_variables.scss +12 -6
  113. package/scss/coreui.scss +1 -0
  114. package/scss/functions/_color-translucent.scss +33 -0
  115. package/scss/functions/_contrast-ratio.scss +3 -3
  116. package/scss/sidebar/_sidebar-narrow.scss +21 -13
  117. package/scss/sidebar/_sidebar-nav.scss +65 -45
  118. package/scss/sidebar/_sidebar.scss +1 -6
package/js/dist/alert.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI alert.js v5.6.1 (https://coreui.io)
2
+ * CoreUI alert.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI base-component.js v5.6.1 (https://coreui.io)
2
+ * CoreUI base-component.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -24,7 +24,7 @@
24
24
  * Constants
25
25
  */
26
26
 
27
- const VERSION = '5.6.1';
27
+ const VERSION = '5.7.0';
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.6.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 // Private\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,IAAA;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,EAAA;;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,IAAA;EACF,EAAA;;EAEA;IACAG,cAAcA,CAACC,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,GAAG,IAAI,EAAE;EACnDC,IAAAA,+BAAsB,CAACF,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,CAAC;EACvD,EAAA;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,EAAA;;EAEA;IACA,OAAOuB,WAAWA,CAACxB,OAAO,EAAE;EAC1B,IAAA,OAAOM,IAAI,CAACmB,GAAG,CAACvB,mBAAU,CAACF,OAAO,CAAC,EAAE,IAAI,CAACQ,QAAQ,CAAC;EACrD,EAAA;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,EAAA;IAEA,WAAWL,OAAOA,GAAG;EACnB,IAAA,OAAOA,OAAO;EAChB,EAAA;IAEA,WAAWY,QAAQA,GAAG;EACpB,IAAA,OAAO,CAAA,OAAA,EAAU,IAAI,CAACmB,IAAI,CAAA,CAAE;EAC9B,EAAA;IAEA,WAAWd,SAASA,GAAG;EACrB,IAAA,OAAO,CAAA,CAAA,EAAI,IAAI,CAACL,QAAQ,CAAA,CAAE;EAC5B,EAAA;IAEA,OAAOoB,SAASA,CAACC,IAAI,EAAE;EACrB,IAAA,OAAO,GAAGA,IAAI,CAAA,EAAG,IAAI,CAAChB,SAAS,CAAA,CAAE;EACnC,EAAA;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.7.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 // Private\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,IAAA;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,EAAA;;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,IAAA;EACF,EAAA;;EAEA;IACAG,cAAcA,CAACC,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,GAAG,IAAI,EAAE;EACnDC,IAAAA,+BAAsB,CAACF,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,CAAC;EACvD,EAAA;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,EAAA;;EAEA;IACA,OAAOuB,WAAWA,CAACxB,OAAO,EAAE;EAC1B,IAAA,OAAOM,IAAI,CAACmB,GAAG,CAACvB,mBAAU,CAACF,OAAO,CAAC,EAAE,IAAI,CAACQ,QAAQ,CAAC;EACrD,EAAA;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,EAAA;IAEA,WAAWL,OAAOA,GAAG;EACnB,IAAA,OAAOA,OAAO;EAChB,EAAA;IAEA,WAAWY,QAAQA,GAAG;EACpB,IAAA,OAAO,CAAA,OAAA,EAAU,IAAI,CAACmB,IAAI,CAAA,CAAE;EAC9B,EAAA;IAEA,WAAWd,SAASA,GAAG;EACrB,IAAA,OAAO,CAAA,CAAA,EAAI,IAAI,CAACL,QAAQ,CAAA,CAAE;EAC5B,EAAA;IAEA,OAAOoB,SAASA,CAACC,IAAI,EAAE;EACrB,IAAA,OAAO,GAAGA,IAAI,CAAA,EAAG,IAAI,CAAChB,SAAS,CAAA,CAAE;EACnC,EAAA;EACF;;;;;;;;"}
package/js/dist/button.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI button.js v5.6.1 (https://coreui.io)
2
+ * CoreUI button.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI carousel.js v5.6.1 (https://coreui.io)
2
+ * CoreUI carousel.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI chip-input.js v5.6.1 (https://coreui.io)
2
+ * CoreUI chip-input.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
package/js/dist/chip.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI chip.js v5.6.1 (https://coreui.io)
2
+ * CoreUI chip.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI collapse.js v5.6.1 (https://coreui.io)
2
+ * CoreUI collapse.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI data.js v5.6.1 (https://coreui.io)
2
+ * CoreUI data.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI event-handler.js v5.6.1 (https://coreui.io)
2
+ * CoreUI event-handler.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI manipulator.js v5.6.1 (https://coreui.io)
2
+ * CoreUI manipulator.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI selector-engine.js v5.6.1 (https://coreui.io)
2
+ * CoreUI selector-engine.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI dropdown.js v5.6.1 (https://coreui.io)
2
+ * CoreUI dropdown.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
package/js/dist/modal.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI modal.js v5.6.1 (https://coreui.io)
2
+ * CoreUI modal.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI navigation.js v5.6.1 (https://coreui.io)
2
+ * CoreUI navigation.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -45,7 +45,7 @@
45
45
  const SELECTOR_NAV_GROUP_ITEMS = '.nav-group-items';
46
46
  const SELECTOR_NAV_GROUP_TOGGLE = '.nav-group-toggle';
47
47
  const SELECTOR_NAV_LINK = '.nav-link';
48
- const SELECTOR_DATA_NAVIGATION = '[data-coreui="navigation"]';
48
+ const SELECTOR_DATA_NAVIGATION = '[data-coreui-navigation], [data-coreui="navigation"]';
49
49
 
50
50
  /**
51
51
  * ------------------------------------------------------------------------
@@ -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 && 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
+ {"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], [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,5 +1,5 @@
1
1
  /*!
2
- * CoreUI offcanvas.js v5.6.1 (https://coreui.io)
2
+ * CoreUI offcanvas.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI popover.js v5.6.1 (https://coreui.io)
2
+ * CoreUI popover.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI scrollspy.js v5.6.1 (https://coreui.io)
2
+ * CoreUI scrollspy.js v5.7.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -0,0 +1,336 @@
1
+ /*!
2
+ * CoreUI search-button.js v5.7.0 (https://coreui.io)
3
+ * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
+ * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./util/index.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './util/index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SearchButton = factory(global.BaseComponent, global.EventHandler, global.Index));
10
+ })(this, (function (BaseComponent, EventHandler, index_js) { 'use strict';
11
+
12
+ /**
13
+ * --------------------------------------------------------------------------
14
+ * CoreUI search-button.js
15
+ * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
16
+ * --------------------------------------------------------------------------
17
+ */
18
+
19
+
20
+ /**
21
+ * Constants
22
+ */
23
+
24
+ const NAME = 'search-button';
25
+ const DATA_KEY = 'coreui.search-button';
26
+ const EVENT_KEY = `.${DATA_KEY}`;
27
+ const DATA_API_KEY = '.data-api';
28
+ const EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`;
29
+ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
30
+ const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`;
31
+ const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`;
32
+ const EVENT_TRIGGER = `trigger${EVENT_KEY}`;
33
+ const CLASS_NAME_SHORTCUT_KEYS = 'search-button-keys';
34
+ const CLASS_NAME_SHORTCUT_KEY = 'search-button-key';
35
+ const CLASS_NAME_ACTIVE = 'active';
36
+ const SELECTOR_DATA_TOGGLE = '[data-coreui-search-button]';
37
+ const SELECTOR_EDITABLE_TARGET = 'input, textarea, select, [contenteditable=""], [contenteditable="true"], [contenteditable="plaintext-only"]';
38
+ const SELECTOR_PLACEHOLDER = '.search-button-placeholder';
39
+ const SELECTOR_SHORTCUT_KEY = '.search-button-key';
40
+ const SELECTOR_SHORTCUT_KEYS = '.search-button-keys';
41
+ const Default = {
42
+ preventDefault: true,
43
+ shortcut: 'meta+/,ctrl+/'
44
+ };
45
+ const DefaultType = {
46
+ preventDefault: 'boolean',
47
+ shortcut: 'string'
48
+ };
49
+ const MODIFIER_KEYS = new Set(['alt', 'ctrl', 'meta', 'shift']);
50
+ const KEY_ALIASES = {
51
+ cmd: 'meta',
52
+ command: 'meta',
53
+ control: 'ctrl',
54
+ option: 'alt',
55
+ return: 'enter',
56
+ esc: 'escape',
57
+ spacebar: 'space',
58
+ ' ': 'space'
59
+ };
60
+ const KEY_LABELS = {
61
+ alt: 'Alt',
62
+ ctrl: 'Ctrl',
63
+ meta: '⌘',
64
+ shift: 'Shift',
65
+ space: 'Space'
66
+ };
67
+
68
+ /**
69
+ * Class definition
70
+ */
71
+
72
+ class SearchButton extends BaseComponent {
73
+ constructor(element, config) {
74
+ super(element, config);
75
+ this._shortcutTriggered = false;
76
+ this._shortcuts = this._parseShortcut(this._config.shortcut);
77
+ this._preferredShortcut = this._getPreferredShortcut(this._shortcuts);
78
+ this._syncShortcutKeys();
79
+ }
80
+
81
+ // Getters
82
+ static get Default() {
83
+ return Default;
84
+ }
85
+ static get DefaultType() {
86
+ return DefaultType;
87
+ }
88
+ static get NAME() {
89
+ return NAME;
90
+ }
91
+
92
+ // Public
93
+ trigger() {
94
+ this._triggerEvent('api');
95
+ }
96
+
97
+ // Private
98
+ _triggerEvent(trigger) {
99
+ if (this._isDisabled()) {
100
+ return;
101
+ }
102
+ EventHandler.trigger(this._element, EVENT_TRIGGER, {
103
+ trigger
104
+ });
105
+ }
106
+ _handleShortcut(event) {
107
+ if (this._isDisabled() || event.defaultPrevented || event.repeat || this._shouldIgnoreShortcut(event)) {
108
+ return false;
109
+ }
110
+ const matchedShortcut = this._shortcuts.find(shortcut => this._matchesShortcut(shortcut, event));
111
+ if (!matchedShortcut) {
112
+ return false;
113
+ }
114
+ if (this._config.preventDefault) {
115
+ event.preventDefault();
116
+ }
117
+ this._shortcutTriggered = true;
118
+ try {
119
+ this._element.click();
120
+ } finally {
121
+ this._shortcutTriggered = false;
122
+ }
123
+ return true;
124
+ }
125
+ _isDisabled() {
126
+ return this._element.classList.contains('disabled') || this._element.getAttribute('aria-disabled') === 'true' || this._element.disabled;
127
+ }
128
+ _ensureShortcutKeys() {
129
+ const existingShortcutKeys = this._element.querySelector(SELECTOR_SHORTCUT_KEYS);
130
+ if (existingShortcutKeys) {
131
+ return existingShortcutKeys;
132
+ }
133
+ const shortcutKeys = document.createElement('span');
134
+ shortcutKeys.className = CLASS_NAME_SHORTCUT_KEYS;
135
+ shortcutKeys.setAttribute('aria-hidden', 'true');
136
+ const placeholder = this._element.querySelector(SELECTOR_PLACEHOLDER);
137
+ if (placeholder) {
138
+ placeholder.after(shortcutKeys);
139
+ return shortcutKeys;
140
+ }
141
+ this._element.append(shortcutKeys);
142
+ return shortcutKeys;
143
+ }
144
+ _syncShortcutKeys() {
145
+ var _this$_preferredShort;
146
+ const shortcutKeys = this._ensureShortcutKeys();
147
+ const shortcutTokens = this._formatShortcutTokens(((_this$_preferredShort = this._preferredShortcut) == null ? void 0 : _this$_preferredShort.shortcut) || '').filter(Boolean);
148
+ shortcutKeys.replaceChildren();
149
+ for (const key of shortcutTokens) {
150
+ const shortcutKey = document.createElement('span');
151
+ shortcutKey.className = CLASS_NAME_SHORTCUT_KEY;
152
+ shortcutKey.textContent = key;
153
+ shortcutKey.dataset.coreuiSearchButtonKey = key;
154
+ shortcutKeys.append(shortcutKey);
155
+ }
156
+ }
157
+ _syncActiveKeys(event) {
158
+ const pressedKeys = this._getPressedKeys(event);
159
+ for (const shortcutKey of this._element.querySelectorAll(SELECTOR_SHORTCUT_KEY)) {
160
+ shortcutKey.classList.toggle(CLASS_NAME_ACTIVE, pressedKeys.has(shortcutKey.dataset.coreuiSearchButtonKey));
161
+ }
162
+ }
163
+ _clearActiveKeys() {
164
+ for (const shortcutKey of this._element.querySelectorAll(SELECTOR_SHORTCUT_KEY)) {
165
+ shortcutKey.classList.remove(CLASS_NAME_ACTIVE);
166
+ }
167
+ }
168
+ _consumeShortcutTrigger() {
169
+ const shortcutTriggered = this._shortcutTriggered;
170
+ this._shortcutTriggered = false;
171
+ return shortcutTriggered;
172
+ }
173
+ _shouldIgnoreShortcut(event) {
174
+ return this._isEditableTarget(event.target) && !event.ctrlKey && !event.metaKey;
175
+ }
176
+ _isEditableTarget(target) {
177
+ if (!(target instanceof Element)) {
178
+ return false;
179
+ }
180
+ return target.matches(SELECTOR_EDITABLE_TARGET) || target.closest(SELECTOR_EDITABLE_TARGET);
181
+ }
182
+ _normalizeKey(key) {
183
+ return KEY_ALIASES[key.toLowerCase()] || key.toLowerCase();
184
+ }
185
+ _parseShortcut(shortcut) {
186
+ return shortcut.split(',').map(value => value.trim()).filter(Boolean).map(value => {
187
+ const keys = value.split('+').map(part => this._normalizeKey(part.trim()));
188
+ const modifiers = {
189
+ alt: false,
190
+ ctrl: false,
191
+ meta: false,
192
+ shift: false
193
+ };
194
+ let key = '';
195
+ for (const part of keys) {
196
+ if (MODIFIER_KEYS.has(part)) {
197
+ modifiers[part] = true;
198
+ continue;
199
+ }
200
+ key = part;
201
+ }
202
+ return {
203
+ key,
204
+ modifiers,
205
+ shortcut: value
206
+ };
207
+ });
208
+ }
209
+ _matchesShortcut(shortcut, event) {
210
+ if (!shortcut.key || this._normalizeKey(event.key) !== shortcut.key) {
211
+ return false;
212
+ }
213
+ return shortcut.modifiers.alt === event.altKey && shortcut.modifiers.ctrl === event.ctrlKey && shortcut.modifiers.meta === event.metaKey && shortcut.modifiers.shift === event.shiftKey;
214
+ }
215
+ _formatShortcutTokens(shortcut) {
216
+ return shortcut.split('+').map(part => this._normalizeKey(part.trim())).map(part => this._getKeyLabel(part));
217
+ }
218
+ _getPlatform() {
219
+ var _window$navigator$use;
220
+ return ((_window$navigator$use = window.navigator.userAgentData) == null ? void 0 : _window$navigator$use.platform) || window.navigator.platform || window.navigator.userAgent || '';
221
+ }
222
+ _isMacOS() {
223
+ return /Mac|iPhone|iPad|iPod|macOS|Macintosh/.test(this._getPlatform());
224
+ }
225
+ _getPreferredShortcut(shortcuts) {
226
+ return shortcuts.find(shortcut => {
227
+ return this._isMacOS() ? shortcut.modifiers.meta : shortcut.modifiers.ctrl;
228
+ }) || shortcuts[0] || null;
229
+ }
230
+ _getPressedKeys(event) {
231
+ const pressedKeys = new Set();
232
+ if (event.altKey) {
233
+ pressedKeys.add(KEY_LABELS.alt);
234
+ }
235
+ if (event.ctrlKey) {
236
+ pressedKeys.add(KEY_LABELS.ctrl);
237
+ }
238
+ if (event.metaKey) {
239
+ pressedKeys.add(KEY_LABELS.meta);
240
+ }
241
+ if (event.shiftKey) {
242
+ pressedKeys.add(KEY_LABELS.shift);
243
+ }
244
+ const normalizedKey = this._normalizeKey(event.key);
245
+ const keyLabel = this._getKeyLabel(normalizedKey);
246
+ if (!MODIFIER_KEYS.has(normalizedKey) && event.type === 'keydown') {
247
+ pressedKeys.add(keyLabel);
248
+ }
249
+ return pressedKeys;
250
+ }
251
+ _getKeyLabel(key) {
252
+ return KEY_LABELS[key] || (key.length === 1 ? key.toUpperCase() : `${key.charAt(0).toUpperCase()}${key.slice(1)}`);
253
+ }
254
+
255
+ // Static
256
+ static searchButtonInterface(element, config) {
257
+ const data = SearchButton.getOrCreateInstance(element, config);
258
+ if (typeof config === 'string') {
259
+ if (config.startsWith('_') || typeof data[config] !== 'function') {
260
+ throw new TypeError(`No method named "${config}"`);
261
+ }
262
+ data[config]();
263
+ }
264
+ }
265
+ static jQueryInterface(config) {
266
+ return this.each(function () {
267
+ SearchButton.searchButtonInterface(this, config);
268
+ });
269
+ }
270
+ static _initializeDataApi() {
271
+ for (const button of document.querySelectorAll(SELECTOR_DATA_TOGGLE)) {
272
+ SearchButton.getOrCreateInstance(button);
273
+ }
274
+ }
275
+ static _handleDataApiClick(event) {
276
+ event.preventDefault();
277
+ const button = event.target.closest(SELECTOR_DATA_TOGGLE);
278
+ const data = SearchButton.getOrCreateInstance(button);
279
+ const shortcutTriggered = data._consumeShortcutTrigger();
280
+ if (shortcutTriggered) {
281
+ data._triggerEvent('shortcut');
282
+ return;
283
+ }
284
+ data._triggerEvent('click');
285
+ }
286
+ static _handleDataApiKeydown(event) {
287
+ for (const button of document.querySelectorAll(SELECTOR_DATA_TOGGLE)) {
288
+ const data = SearchButton.getOrCreateInstance(button);
289
+ data._syncActiveKeys(event);
290
+ if (data._handleShortcut(event)) {
291
+ break;
292
+ }
293
+ }
294
+ }
295
+ static _handleDataApiKeyup(event) {
296
+ for (const button of document.querySelectorAll(SELECTOR_DATA_TOGGLE)) {
297
+ SearchButton.getOrCreateInstance(button)._syncActiveKeys(event);
298
+ }
299
+ }
300
+ static _handleDataApiBlur() {
301
+ for (const button of document.querySelectorAll(SELECTOR_DATA_TOGGLE)) {
302
+ SearchButton.getOrCreateInstance(button)._clearActiveKeys();
303
+ }
304
+ }
305
+ }
306
+
307
+ /**
308
+ * Data API implementation
309
+ */
310
+
311
+ EventHandler.on(document, `DOMContentLoaded${EVENT_KEY}${DATA_API_KEY}`, () => {
312
+ SearchButton._initializeDataApi();
313
+ });
314
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
315
+ SearchButton._handleDataApiClick(event);
316
+ });
317
+ EventHandler.on(document, EVENT_KEYDOWN_DATA_API, event => {
318
+ SearchButton._handleDataApiKeydown(event);
319
+ });
320
+ EventHandler.on(document, EVENT_KEYUP_DATA_API, event => {
321
+ SearchButton._handleDataApiKeyup(event);
322
+ });
323
+ EventHandler.on(window, EVENT_BLUR_DATA_API, () => {
324
+ SearchButton._handleDataApiBlur();
325
+ });
326
+
327
+ /**
328
+ * jQuery
329
+ */
330
+
331
+ index_js.defineJQueryPlugin(SearchButton);
332
+
333
+ return SearchButton;
334
+
335
+ }));
336
+ //# sourceMappingURL=search-button.js.map