@coreui/coreui 5.6.0 → 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 (120) 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 -261
  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 -262
  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 -261
  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 -261
  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 -262
  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 -261
  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 -3
  72. package/js/dist/chip-input.js.map +1 -1
  73. package/js/dist/chip.js +1 -1
  74. package/js/dist/collapse.js +1 -1
  75. package/js/dist/dom/data.js +1 -1
  76. package/js/dist/dom/event-handler.js +1 -1
  77. package/js/dist/dom/manipulator.js +1 -1
  78. package/js/dist/dom/selector-engine.js +1 -1
  79. package/js/dist/dropdown.js +1 -1
  80. package/js/dist/modal.js +1 -1
  81. package/js/dist/navigation.js +2 -2
  82. package/js/dist/navigation.js.map +1 -1
  83. package/js/dist/offcanvas.js +1 -1
  84. package/js/dist/popover.js +1 -1
  85. package/js/dist/scrollspy.js +1 -1
  86. package/js/dist/search-button.js +336 -0
  87. package/js/dist/search-button.js.map +1 -0
  88. package/js/dist/sidebar.js +7 -10
  89. package/js/dist/sidebar.js.map +1 -1
  90. package/js/dist/tab.js +1 -1
  91. package/js/dist/toast.js +1 -1
  92. package/js/dist/tooltip.js +1 -1
  93. package/js/dist/util/backdrop.js +1 -1
  94. package/js/dist/util/component-functions.js +1 -1
  95. package/js/dist/util/config.js +1 -1
  96. package/js/dist/util/focustrap.js +1 -1
  97. package/js/dist/util/index.js +1 -1
  98. package/js/dist/util/sanitizer.js +1 -1
  99. package/js/dist/util/scrollbar.js +1 -1
  100. package/js/dist/util/swipe.js +1 -1
  101. package/js/dist/util/template-factory.js +1 -1
  102. package/js/index.esm.js +1 -0
  103. package/js/index.umd.js +2 -0
  104. package/js/src/base-component.js +1 -1
  105. package/js/src/chip-input.js +0 -2
  106. package/js/src/navigation.js +1 -1
  107. package/js/src/search-button.js +409 -0
  108. package/js/src/sidebar.js +6 -10
  109. package/package.json +17 -16
  110. package/scss/_banner.scss +1 -1
  111. package/scss/_root.scss +3 -0
  112. package/scss/_search-button.scss +127 -0
  113. package/scss/_variables-dark.scss +2 -1
  114. package/scss/_variables.scss +12 -6
  115. package/scss/coreui.scss +1 -0
  116. package/scss/functions/_color-translucent.scss +33 -0
  117. package/scss/functions/_contrast-ratio.scss +3 -3
  118. package/scss/sidebar/_sidebar-narrow.scss +21 -13
  119. package/scss/sidebar/_sidebar-nav.scss +65 -45
  120. package/scss/sidebar/_sidebar.scss +1 -6
package/dist/js/coreui.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI v5.6.0 (https://coreui.io)
2
+ * CoreUI 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
  */
@@ -684,7 +684,7 @@
684
684
  * Constants
685
685
  */
686
686
 
687
- const VERSION = '5.6.0';
687
+ const VERSION = '5.7.0';
688
688
 
689
689
  /**
690
690
  * Class definition
@@ -878,11 +878,11 @@
878
878
  * Constants
879
879
  */
880
880
 
881
- const NAME$j = 'alert';
882
- const DATA_KEY$e = 'coreui.alert';
883
- const EVENT_KEY$f = `.${DATA_KEY$e}`;
884
- const EVENT_CLOSE = `close${EVENT_KEY$f}`;
885
- const EVENT_CLOSED = `closed${EVENT_KEY$f}`;
881
+ const NAME$k = 'alert';
882
+ const DATA_KEY$f = 'coreui.alert';
883
+ const EVENT_KEY$g = `.${DATA_KEY$f}`;
884
+ const EVENT_CLOSE = `close${EVENT_KEY$g}`;
885
+ const EVENT_CLOSED = `closed${EVENT_KEY$g}`;
886
886
  const CLASS_NAME_FADE$5 = 'fade';
887
887
  const CLASS_NAME_SHOW$a = 'show';
888
888
 
@@ -893,7 +893,7 @@
893
893
  class Alert extends BaseComponent {
894
894
  // Getters
895
895
  static get NAME() {
896
- return NAME$j;
896
+ return NAME$k;
897
897
  }
898
898
 
899
899
  // Public
@@ -956,13 +956,13 @@
956
956
  * Constants
957
957
  */
958
958
 
959
- const NAME$i = 'button';
960
- const DATA_KEY$d = 'coreui.button';
961
- const EVENT_KEY$e = `.${DATA_KEY$d}`;
962
- const DATA_API_KEY$a = '.data-api';
963
- const CLASS_NAME_ACTIVE$5 = 'active';
964
- const SELECTOR_DATA_TOGGLE$6 = '[data-coreui-toggle="button"]';
965
- const EVENT_CLICK_DATA_API$8 = `click${EVENT_KEY$e}${DATA_API_KEY$a}`;
959
+ const NAME$j = 'button';
960
+ const DATA_KEY$e = 'coreui.button';
961
+ const EVENT_KEY$f = `.${DATA_KEY$e}`;
962
+ const DATA_API_KEY$b = '.data-api';
963
+ const CLASS_NAME_ACTIVE$6 = 'active';
964
+ const SELECTOR_DATA_TOGGLE$7 = '[data-coreui-toggle="button"]';
965
+ const EVENT_CLICK_DATA_API$9 = `click${EVENT_KEY$f}${DATA_API_KEY$b}`;
966
966
 
967
967
  /**
968
968
  * Class definition
@@ -971,13 +971,13 @@
971
971
  class Button extends BaseComponent {
972
972
  // Getters
973
973
  static get NAME() {
974
- return NAME$i;
974
+ return NAME$j;
975
975
  }
976
976
 
977
977
  // Public
978
978
  toggle() {
979
979
  // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
980
- this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$5));
980
+ this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$6));
981
981
  }
982
982
 
983
983
  // Static
@@ -995,9 +995,9 @@
995
995
  * Data API implementation
996
996
  */
997
997
 
998
- EventHandler.on(document, EVENT_CLICK_DATA_API$8, SELECTOR_DATA_TOGGLE$6, event => {
998
+ EventHandler.on(document, EVENT_CLICK_DATA_API$9, SELECTOR_DATA_TOGGLE$7, event => {
999
999
  event.preventDefault();
1000
- const button = event.target.closest(SELECTOR_DATA_TOGGLE$6);
1000
+ const button = event.target.closest(SELECTOR_DATA_TOGGLE$7);
1001
1001
  const data = Button.getOrCreateInstance(button);
1002
1002
  data.toggle();
1003
1003
  });
@@ -1023,23 +1023,23 @@
1023
1023
  * Constants
1024
1024
  */
1025
1025
 
1026
- const NAME$h = 'swipe';
1027
- const EVENT_KEY$d = '.coreui.swipe';
1028
- const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$d}`;
1029
- const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$d}`;
1030
- const EVENT_TOUCHEND = `touchend${EVENT_KEY$d}`;
1031
- const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$d}`;
1032
- const EVENT_POINTERUP = `pointerup${EVENT_KEY$d}`;
1026
+ const NAME$i = 'swipe';
1027
+ const EVENT_KEY$e = '.coreui.swipe';
1028
+ const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$e}`;
1029
+ const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$e}`;
1030
+ const EVENT_TOUCHEND = `touchend${EVENT_KEY$e}`;
1031
+ const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$e}`;
1032
+ const EVENT_POINTERUP = `pointerup${EVENT_KEY$e}`;
1033
1033
  const POINTER_TYPE_TOUCH = 'touch';
1034
1034
  const POINTER_TYPE_PEN = 'pen';
1035
1035
  const CLASS_NAME_POINTER_EVENT = 'pointer-event';
1036
1036
  const SWIPE_THRESHOLD = 40;
1037
- const Default$g = {
1037
+ const Default$h = {
1038
1038
  endCallback: null,
1039
1039
  leftCallback: null,
1040
1040
  rightCallback: null
1041
1041
  };
1042
- const DefaultType$g = {
1042
+ const DefaultType$h = {
1043
1043
  endCallback: '(function|null)',
1044
1044
  leftCallback: '(function|null)',
1045
1045
  rightCallback: '(function|null)'
@@ -1064,18 +1064,18 @@
1064
1064
 
1065
1065
  // Getters
1066
1066
  static get Default() {
1067
- return Default$g;
1067
+ return Default$h;
1068
1068
  }
1069
1069
  static get DefaultType() {
1070
- return DefaultType$g;
1070
+ return DefaultType$h;
1071
1071
  }
1072
1072
  static get NAME() {
1073
- return NAME$h;
1073
+ return NAME$i;
1074
1074
  }
1075
1075
 
1076
1076
  // Public
1077
1077
  dispose() {
1078
- EventHandler.off(this._element, EVENT_KEY$d);
1078
+ EventHandler.off(this._element, EVENT_KEY$e);
1079
1079
  }
1080
1080
 
1081
1081
  // Private
@@ -1146,10 +1146,10 @@
1146
1146
  * Constants
1147
1147
  */
1148
1148
 
1149
- const NAME$g = 'carousel';
1150
- const DATA_KEY$c = 'coreui.carousel';
1151
- const EVENT_KEY$c = `.${DATA_KEY$c}`;
1152
- const DATA_API_KEY$9 = '.data-api';
1149
+ const NAME$h = 'carousel';
1150
+ const DATA_KEY$d = 'coreui.carousel';
1151
+ const EVENT_KEY$d = `.${DATA_KEY$d}`;
1152
+ const DATA_API_KEY$a = '.data-api';
1153
1153
  const ARROW_LEFT_KEY$1 = 'ArrowLeft';
1154
1154
  const ARROW_RIGHT_KEY$1 = 'ArrowRight';
1155
1155
  const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
@@ -1158,16 +1158,16 @@
1158
1158
  const ORDER_PREV = 'prev';
1159
1159
  const DIRECTION_LEFT = 'left';
1160
1160
  const DIRECTION_RIGHT = 'right';
1161
- const EVENT_SLIDE = `slide${EVENT_KEY$c}`;
1162
- const EVENT_SLID = `slid${EVENT_KEY$c}`;
1163
- const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$c}`;
1164
- const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$c}`;
1165
- const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$c}`;
1166
- const EVENT_DRAG_START = `dragstart${EVENT_KEY$c}`;
1167
- const EVENT_LOAD_DATA_API$5 = `load${EVENT_KEY$c}${DATA_API_KEY$9}`;
1168
- const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$c}${DATA_API_KEY$9}`;
1161
+ const EVENT_SLIDE = `slide${EVENT_KEY$d}`;
1162
+ const EVENT_SLID = `slid${EVENT_KEY$d}`;
1163
+ const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$d}`;
1164
+ const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$d}`;
1165
+ const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$d}`;
1166
+ const EVENT_DRAG_START = `dragstart${EVENT_KEY$d}`;
1167
+ const EVENT_LOAD_DATA_API$5 = `load${EVENT_KEY$d}${DATA_API_KEY$a}`;
1168
+ const EVENT_CLICK_DATA_API$8 = `click${EVENT_KEY$d}${DATA_API_KEY$a}`;
1169
1169
  const CLASS_NAME_CAROUSEL = 'carousel';
1170
- const CLASS_NAME_ACTIVE$4 = 'active';
1170
+ const CLASS_NAME_ACTIVE$5 = 'active';
1171
1171
  const CLASS_NAME_SLIDE = 'slide';
1172
1172
  const CLASS_NAME_END = 'carousel-item-end';
1173
1173
  const CLASS_NAME_START = 'carousel-item-start';
@@ -1184,7 +1184,7 @@
1184
1184
  [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,
1185
1185
  [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT
1186
1186
  };
1187
- const Default$f = {
1187
+ const Default$g = {
1188
1188
  interval: 5000,
1189
1189
  keyboard: true,
1190
1190
  pause: 'hover',
@@ -1192,7 +1192,7 @@
1192
1192
  touch: true,
1193
1193
  wrap: true
1194
1194
  };
1195
- const DefaultType$f = {
1195
+ const DefaultType$g = {
1196
1196
  interval: '(number|boolean)',
1197
1197
  // TODO:v6 remove boolean support
1198
1198
  keyboard: 'boolean',
@@ -1223,13 +1223,13 @@
1223
1223
 
1224
1224
  // Getters
1225
1225
  static get Default() {
1226
- return Default$f;
1226
+ return Default$g;
1227
1227
  }
1228
1228
  static get DefaultType() {
1229
- return DefaultType$f;
1229
+ return DefaultType$g;
1230
1230
  }
1231
1231
  static get NAME() {
1232
- return NAME$g;
1232
+ return NAME$h;
1233
1233
  }
1234
1234
 
1235
1235
  // Public
@@ -1356,11 +1356,11 @@
1356
1356
  return;
1357
1357
  }
1358
1358
  const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
1359
- activeIndicator.classList.remove(CLASS_NAME_ACTIVE$4);
1359
+ activeIndicator.classList.remove(CLASS_NAME_ACTIVE$5);
1360
1360
  activeIndicator.removeAttribute('aria-current');
1361
1361
  const newActiveIndicator = SelectorEngine.findOne(`[data-coreui-slide-to="${index}"]`, this._indicatorsElement);
1362
1362
  if (newActiveIndicator) {
1363
- newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$4);
1363
+ newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$5);
1364
1364
  newActiveIndicator.setAttribute('aria-current', 'true');
1365
1365
  }
1366
1366
  }
@@ -1413,8 +1413,8 @@
1413
1413
  nextElement.classList.add(directionalClassName);
1414
1414
  const completeCallBack = () => {
1415
1415
  nextElement.classList.remove(directionalClassName, orderClassName);
1416
- nextElement.classList.add(CLASS_NAME_ACTIVE$4);
1417
- activeElement.classList.remove(CLASS_NAME_ACTIVE$4, orderClassName, directionalClassName);
1416
+ nextElement.classList.add(CLASS_NAME_ACTIVE$5);
1417
+ activeElement.classList.remove(CLASS_NAME_ACTIVE$5, orderClassName, directionalClassName);
1418
1418
  this._isSliding = false;
1419
1419
  triggerEvent(EVENT_SLID);
1420
1420
  };
@@ -1473,7 +1473,7 @@
1473
1473
  * Data API implementation
1474
1474
  */
1475
1475
 
1476
- EventHandler.on(document, EVENT_CLICK_DATA_API$7, SELECTOR_DATA_SLIDE, function (event) {
1476
+ EventHandler.on(document, EVENT_CLICK_DATA_API$8, SELECTOR_DATA_SLIDE, function (event) {
1477
1477
  const target = SelectorEngine.getElementFromSelector(this);
1478
1478
  if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
1479
1479
  return;
@@ -1519,25 +1519,25 @@
1519
1519
  * Constants
1520
1520
  */
1521
1521
 
1522
- const NAME$f = 'chip';
1523
- const DATA_KEY$b = 'coreui.chip';
1524
- const EVENT_KEY$b = `.${DATA_KEY$b}`;
1525
- const DATA_API_KEY$8 = '.data-api';
1526
- const EVENT_REMOVE$1 = `remove${EVENT_KEY$b}`;
1527
- const EVENT_REMOVED = `removed${EVENT_KEY$b}`;
1528
- const EVENT_SELECT$1 = `select${EVENT_KEY$b}`;
1529
- const EVENT_SELECTED = `selected${EVENT_KEY$b}`;
1530
- const EVENT_DESELECT = `deselect${EVENT_KEY$b}`;
1531
- const EVENT_DESELECTED = `deselected${EVENT_KEY$b}`;
1522
+ const NAME$g = 'chip';
1523
+ const DATA_KEY$c = 'coreui.chip';
1524
+ const EVENT_KEY$c = `.${DATA_KEY$c}`;
1525
+ const DATA_API_KEY$9 = '.data-api';
1526
+ const EVENT_REMOVE$1 = `remove${EVENT_KEY$c}`;
1527
+ const EVENT_REMOVED = `removed${EVENT_KEY$c}`;
1528
+ const EVENT_SELECT$1 = `select${EVENT_KEY$c}`;
1529
+ const EVENT_SELECTED = `selected${EVENT_KEY$c}`;
1530
+ const EVENT_DESELECT = `deselect${EVENT_KEY$c}`;
1531
+ const EVENT_DESELECTED = `deselected${EVENT_KEY$c}`;
1532
1532
  const SELECTOR_CHIP_REMOVE$1 = '.chip-remove';
1533
1533
  const SELECTOR_DATA_CHIP = '[data-coreui-chip]';
1534
1534
  const SELECTOR_FOCUSABLE_ITEMS$1 = '.chip:not(.disabled)';
1535
1535
  const CLASS_NAME_CHIP_CLICKABLE = 'chip-clickable';
1536
1536
  const CLASS_NAME_CHIP_REMOVE = 'chip-remove';
1537
- const CLASS_NAME_ACTIVE$3 = 'active';
1537
+ const CLASS_NAME_ACTIVE$4 = 'active';
1538
1538
  const CLASS_NAME_DISABLED$1 = 'disabled';
1539
1539
  const DEFAULT_REMOVE_ICON$1 = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>';
1540
- const Default$e = {
1540
+ const Default$f = {
1541
1541
  ariaRemoveLabel: 'Remove',
1542
1542
  disabled: false,
1543
1543
  removable: false,
@@ -1545,7 +1545,7 @@
1545
1545
  selectable: false,
1546
1546
  selected: false
1547
1547
  };
1548
- const DefaultType$e = {
1548
+ const DefaultType$f = {
1549
1549
  ariaRemoveLabel: 'string',
1550
1550
  disabled: 'boolean',
1551
1551
  removable: 'boolean',
@@ -1562,7 +1562,7 @@
1562
1562
  constructor(element, config) {
1563
1563
  super(element, config);
1564
1564
  this._disabled = this._config.disabled || this._element.classList.contains(CLASS_NAME_DISABLED$1);
1565
- this._selected = this._config.selected || this._element.classList.contains(CLASS_NAME_ACTIVE$3);
1565
+ this._selected = this._config.selected || this._element.classList.contains(CLASS_NAME_ACTIVE$4);
1566
1566
  this._ensureRemoveButton();
1567
1567
  this._applyState();
1568
1568
  if (this._config.selectable || this._config.removable) {
@@ -1573,13 +1573,13 @@
1573
1573
 
1574
1574
  // Getters
1575
1575
  static get Default() {
1576
- return Default$e;
1576
+ return Default$f;
1577
1577
  }
1578
1578
  static get DefaultType() {
1579
- return DefaultType$e;
1579
+ return DefaultType$f;
1580
1580
  }
1581
1581
  static get NAME() {
1582
- return NAME$f;
1582
+ return NAME$g;
1583
1583
  }
1584
1584
 
1585
1585
  // Public
@@ -1662,10 +1662,10 @@
1662
1662
  }
1663
1663
  }
1664
1664
  if (this._config.selectable) {
1665
- this._element.classList.toggle(CLASS_NAME_ACTIVE$3, this._selected);
1665
+ this._element.classList.toggle(CLASS_NAME_ACTIVE$4, this._selected);
1666
1666
  this._element.setAttribute('aria-selected', this._selected ? 'true' : 'false');
1667
1667
  } else {
1668
- this._element.classList.remove(CLASS_NAME_ACTIVE$3);
1668
+ this._element.classList.remove(CLASS_NAME_ACTIVE$4);
1669
1669
  if (this._element.getAttribute('aria-selected') === 'true') {
1670
1670
  this._element.setAttribute('aria-selected', 'false');
1671
1671
  }
@@ -1802,7 +1802,7 @@
1802
1802
  * Data API implementation
1803
1803
  */
1804
1804
 
1805
- EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$b}${DATA_API_KEY$8}`, () => {
1805
+ EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$c}${DATA_API_KEY$9}`, () => {
1806
1806
  for (const element of SelectorEngine.find(SELECTOR_DATA_CHIP)) {
1807
1807
  Chip.chipInterface(element);
1808
1808
  }
@@ -1829,15 +1829,15 @@
1829
1829
  * Constants
1830
1830
  */
1831
1831
 
1832
- const NAME$e = 'chip-input';
1833
- const DATA_KEY$a = 'coreui.chip-input';
1834
- const EVENT_KEY$a = `.${DATA_KEY$a}`;
1835
- const DATA_API_KEY$7 = '.data-api';
1836
- const EVENT_ADD = `add${EVENT_KEY$a}`;
1837
- const EVENT_REMOVE = `remove${EVENT_KEY$a}`;
1838
- const EVENT_CHANGE = `change${EVENT_KEY$a}`;
1839
- const EVENT_SELECT = `select${EVENT_KEY$a}`;
1840
- const EVENT_INPUT = `input${EVENT_KEY$a}`;
1832
+ const NAME$f = 'chip-input';
1833
+ const DATA_KEY$b = 'coreui.chip-input';
1834
+ const EVENT_KEY$b = `.${DATA_KEY$b}`;
1835
+ const DATA_API_KEY$8 = '.data-api';
1836
+ const EVENT_ADD = `add${EVENT_KEY$b}`;
1837
+ const EVENT_REMOVE = `remove${EVENT_KEY$b}`;
1838
+ const EVENT_CHANGE = `change${EVENT_KEY$b}`;
1839
+ const EVENT_SELECT = `select${EVENT_KEY$b}`;
1840
+ const EVENT_INPUT = `input${EVENT_KEY$b}`;
1841
1841
  const SELECTOR_DATA_CHIP_INPUT = '[data-coreui-chip-input]';
1842
1842
  const SELECTOR_CHIP = '.chip';
1843
1843
  const SELECTOR_CHIP_ACTIVE = `${SELECTOR_CHIP}.active`;
@@ -1848,7 +1848,7 @@
1848
1848
  const CLASS_NAME_DISABLED = 'disabled';
1849
1849
  const CLASS_NAME_CHIP_INPUT_FIELD = 'chip-input-field';
1850
1850
  const DEFAULT_REMOVE_ICON = '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>';
1851
- const Default$d = {
1851
+ const Default$e = {
1852
1852
  chipClassName: null,
1853
1853
  createOnBlur: true,
1854
1854
  disabled: false,
@@ -1862,7 +1862,7 @@
1862
1862
  selectable: false,
1863
1863
  separator: ','
1864
1864
  };
1865
- const DefaultType$d = {
1865
+ const DefaultType$e = {
1866
1866
  chipClassName: '(string|function|null)',
1867
1867
  createOnBlur: 'boolean',
1868
1868
  disabled: 'boolean',
@@ -1904,13 +1904,13 @@
1904
1904
 
1905
1905
  // Getters
1906
1906
  static get Default() {
1907
- return Default$d;
1907
+ return Default$e;
1908
1908
  }
1909
1909
  static get DefaultType() {
1910
- return DefaultType$d;
1910
+ return DefaultType$e;
1911
1911
  }
1912
1912
  static get NAME() {
1913
- return NAME$e;
1913
+ return NAME$f;
1914
1914
  }
1915
1915
 
1916
1916
  // Public
@@ -2159,8 +2159,6 @@
2159
2159
  return;
2160
2160
  }
2161
2161
  if (event.key.length === 1) {
2162
- // eslint-disable-next-line no-console
2163
- console.log(event.key.length);
2164
2162
  this._input.focus();
2165
2163
  }
2166
2164
  });
@@ -2321,7 +2319,7 @@
2321
2319
  * Data API implementation
2322
2320
  */
2323
2321
 
2324
- EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$a}${DATA_API_KEY$7}`, () => {
2322
+ EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$b}${DATA_API_KEY$8}`, () => {
2325
2323
  for (const element of SelectorEngine.find(SELECTOR_DATA_CHIP_INPUT)) {
2326
2324
  ChipInput.getOrCreateInstance(element);
2327
2325
  }
@@ -2342,15 +2340,15 @@
2342
2340
  * Constants
2343
2341
  */
2344
2342
 
2345
- const NAME$d = 'collapse';
2346
- const DATA_KEY$9 = 'coreui.collapse';
2347
- const EVENT_KEY$9 = `.${DATA_KEY$9}`;
2348
- const DATA_API_KEY$6 = '.data-api';
2349
- const EVENT_SHOW$7 = `show${EVENT_KEY$9}`;
2350
- const EVENT_SHOWN$7 = `shown${EVENT_KEY$9}`;
2351
- const EVENT_HIDE$7 = `hide${EVENT_KEY$9}`;
2352
- const EVENT_HIDDEN$7 = `hidden${EVENT_KEY$9}`;
2353
- const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$9}${DATA_API_KEY$6}`;
2343
+ const NAME$e = 'collapse';
2344
+ const DATA_KEY$a = 'coreui.collapse';
2345
+ const EVENT_KEY$a = `.${DATA_KEY$a}`;
2346
+ const DATA_API_KEY$7 = '.data-api';
2347
+ const EVENT_SHOW$7 = `show${EVENT_KEY$a}`;
2348
+ const EVENT_SHOWN$7 = `shown${EVENT_KEY$a}`;
2349
+ const EVENT_HIDE$7 = `hide${EVENT_KEY$a}`;
2350
+ const EVENT_HIDDEN$7 = `hidden${EVENT_KEY$a}`;
2351
+ const EVENT_CLICK_DATA_API$7 = `click${EVENT_KEY$a}${DATA_API_KEY$7}`;
2354
2352
  const CLASS_NAME_SHOW$9 = 'show';
2355
2353
  const CLASS_NAME_COLLAPSE = 'collapse';
2356
2354
  const CLASS_NAME_COLLAPSING = 'collapsing';
@@ -2360,12 +2358,12 @@
2360
2358
  const WIDTH = 'width';
2361
2359
  const HEIGHT = 'height';
2362
2360
  const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
2363
- const SELECTOR_DATA_TOGGLE$5 = '[data-coreui-toggle="collapse"]';
2364
- const Default$c = {
2361
+ const SELECTOR_DATA_TOGGLE$6 = '[data-coreui-toggle="collapse"]';
2362
+ const Default$d = {
2365
2363
  parent: null,
2366
2364
  toggle: true
2367
2365
  };
2368
- const DefaultType$c = {
2366
+ const DefaultType$d = {
2369
2367
  parent: '(null|element)',
2370
2368
  toggle: 'boolean'
2371
2369
  };
@@ -2379,7 +2377,7 @@
2379
2377
  super(element, config);
2380
2378
  this._isTransitioning = false;
2381
2379
  this._triggerArray = [];
2382
- const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$5);
2380
+ const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$6);
2383
2381
  for (const elem of toggleList) {
2384
2382
  const selector = SelectorEngine.getSelectorFromElement(elem);
2385
2383
  const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);
@@ -2398,13 +2396,13 @@
2398
2396
 
2399
2397
  // Getters
2400
2398
  static get Default() {
2401
- return Default$c;
2399
+ return Default$d;
2402
2400
  }
2403
2401
  static get DefaultType() {
2404
- return DefaultType$c;
2402
+ return DefaultType$d;
2405
2403
  }
2406
2404
  static get NAME() {
2407
- return NAME$d;
2405
+ return NAME$e;
2408
2406
  }
2409
2407
 
2410
2408
  // Public
@@ -2501,7 +2499,7 @@
2501
2499
  if (!this._config.parent) {
2502
2500
  return;
2503
2501
  }
2504
- const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$5);
2502
+ const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$6);
2505
2503
  for (const element of children) {
2506
2504
  const selected = SelectorEngine.getElementFromSelector(element);
2507
2505
  if (selected) {
@@ -2546,7 +2544,7 @@
2546
2544
  * Data API implementation
2547
2545
  */
2548
2546
 
2549
- EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, function (event) {
2547
+ EventHandler.on(document, EVENT_CLICK_DATA_API$7, SELECTOR_DATA_TOGGLE$6, function (event) {
2550
2548
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
2551
2549
  if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
2552
2550
  event.preventDefault();
@@ -2579,31 +2577,31 @@
2579
2577
  * Constants
2580
2578
  */
2581
2579
 
2582
- const NAME$c = 'dropdown';
2583
- const DATA_KEY$8 = 'coreui.dropdown';
2584
- const EVENT_KEY$8 = `.${DATA_KEY$8}`;
2585
- const DATA_API_KEY$5 = '.data-api';
2580
+ const NAME$d = 'dropdown';
2581
+ const DATA_KEY$9 = 'coreui.dropdown';
2582
+ const EVENT_KEY$9 = `.${DATA_KEY$9}`;
2583
+ const DATA_API_KEY$6 = '.data-api';
2586
2584
  const ESCAPE_KEY$2 = 'Escape';
2587
2585
  const TAB_KEY$1 = 'Tab';
2588
2586
  const ARROW_UP_KEY$1 = 'ArrowUp';
2589
2587
  const ARROW_DOWN_KEY$1 = 'ArrowDown';
2590
2588
  const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
2591
2589
 
2592
- const EVENT_HIDE$6 = `hide${EVENT_KEY$8}`;
2593
- const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$8}`;
2594
- const EVENT_SHOW$6 = `show${EVENT_KEY$8}`;
2595
- const EVENT_SHOWN$6 = `shown${EVENT_KEY$8}`;
2596
- const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
2597
- const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$8}${DATA_API_KEY$5}`;
2598
- const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$8}${DATA_API_KEY$5}`;
2590
+ const EVENT_HIDE$6 = `hide${EVENT_KEY$9}`;
2591
+ const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$9}`;
2592
+ const EVENT_SHOW$6 = `show${EVENT_KEY$9}`;
2593
+ const EVENT_SHOWN$6 = `shown${EVENT_KEY$9}`;
2594
+ const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$9}${DATA_API_KEY$6}`;
2595
+ const EVENT_KEYDOWN_DATA_API$1 = `keydown${EVENT_KEY$9}${DATA_API_KEY$6}`;
2596
+ const EVENT_KEYUP_DATA_API$1 = `keyup${EVENT_KEY$9}${DATA_API_KEY$6}`;
2599
2597
  const CLASS_NAME_SHOW$8 = 'show';
2600
2598
  const CLASS_NAME_DROPUP = 'dropup';
2601
2599
  const CLASS_NAME_DROPEND = 'dropend';
2602
2600
  const CLASS_NAME_DROPSTART = 'dropstart';
2603
2601
  const CLASS_NAME_DROPUP_CENTER = 'dropup-center';
2604
2602
  const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';
2605
- const SELECTOR_DATA_TOGGLE$4 = '[data-coreui-toggle="dropdown"]:not(.disabled):not(:disabled)';
2606
- const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$4}.${CLASS_NAME_SHOW$8}`;
2603
+ const SELECTOR_DATA_TOGGLE$5 = '[data-coreui-toggle="dropdown"]:not(.disabled):not(:disabled)';
2604
+ const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$5}.${CLASS_NAME_SHOW$8}`;
2607
2605
  const SELECTOR_MENU = '.dropdown-menu';
2608
2606
  const SELECTOR_NAVBAR = '.navbar';
2609
2607
  const SELECTOR_NAVBAR_NAV = '.navbar-nav';
@@ -2616,7 +2614,7 @@
2616
2614
  const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';
2617
2615
  const PLACEMENT_TOPCENTER = 'top';
2618
2616
  const PLACEMENT_BOTTOMCENTER = 'bottom';
2619
- const Default$b = {
2617
+ const Default$c = {
2620
2618
  autoClose: true,
2621
2619
  boundary: 'clippingParents',
2622
2620
  display: 'dynamic',
@@ -2624,7 +2622,7 @@
2624
2622
  popperConfig: null,
2625
2623
  reference: 'toggle'
2626
2624
  };
2627
- const DefaultType$b = {
2625
+ const DefaultType$c = {
2628
2626
  autoClose: '(boolean|string)',
2629
2627
  boundary: '(string|element)',
2630
2628
  display: 'string',
@@ -2649,13 +2647,13 @@
2649
2647
 
2650
2648
  // Getters
2651
2649
  static get Default() {
2652
- return Default$b;
2650
+ return Default$c;
2653
2651
  }
2654
2652
  static get DefaultType() {
2655
- return DefaultType$b;
2653
+ return DefaultType$c;
2656
2654
  }
2657
2655
  static get NAME() {
2658
- return NAME$c;
2656
+ return NAME$d;
2659
2657
  }
2660
2658
 
2661
2659
  // Public
@@ -2739,7 +2737,7 @@
2739
2737
  config = super._getConfig(config);
2740
2738
  if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
2741
2739
  // Popper virtual elements require a getBoundingClientRect method
2742
- throw new TypeError(`${NAME$c.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
2740
+ throw new TypeError(`${NAME$d.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
2743
2741
  }
2744
2742
  return config;
2745
2743
  }
@@ -2899,7 +2897,7 @@
2899
2897
  event.preventDefault();
2900
2898
 
2901
2899
  // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
2902
- const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$4) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$4)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$4)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$4, event.delegateTarget.parentNode);
2900
+ const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$5) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$5)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$5)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$5, event.delegateTarget.parentNode);
2903
2901
  const instance = Dropdown.getOrCreateInstance(getToggleButton);
2904
2902
  if (isUpOrDownEvent) {
2905
2903
  event.stopPropagation();
@@ -2920,11 +2918,11 @@
2920
2918
  * Data API implementation
2921
2919
  */
2922
2920
 
2923
- EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$4, Dropdown.dataApiKeydownHandler);
2924
- EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
2925
- EventHandler.on(document, EVENT_CLICK_DATA_API$5, Dropdown.clearMenus);
2926
- EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
2927
- EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$4, function (event) {
2921
+ EventHandler.on(document, EVENT_KEYDOWN_DATA_API$1, SELECTOR_DATA_TOGGLE$5, Dropdown.dataApiKeydownHandler);
2922
+ EventHandler.on(document, EVENT_KEYDOWN_DATA_API$1, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
2923
+ EventHandler.on(document, EVENT_CLICK_DATA_API$6, Dropdown.clearMenus);
2924
+ EventHandler.on(document, EVENT_KEYUP_DATA_API$1, Dropdown.clearMenus);
2925
+ EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, function (event) {
2928
2926
  event.preventDefault();
2929
2927
  Dropdown.getOrCreateInstance(this).toggle();
2930
2928
  });
@@ -2950,11 +2948,11 @@
2950
2948
  * Constants
2951
2949
  */
2952
2950
 
2953
- const NAME$b = 'backdrop';
2951
+ const NAME$c = 'backdrop';
2954
2952
  const CLASS_NAME_FADE$4 = 'fade';
2955
2953
  const CLASS_NAME_SHOW$7 = 'show';
2956
- const EVENT_MOUSEDOWN = `mousedown.coreui.${NAME$b}`;
2957
- const Default$a = {
2954
+ const EVENT_MOUSEDOWN = `mousedown.coreui.${NAME$c}`;
2955
+ const Default$b = {
2958
2956
  className: 'modal-backdrop',
2959
2957
  clickCallback: null,
2960
2958
  isAnimated: false,
@@ -2962,7 +2960,7 @@
2962
2960
  // if false, we use the backdrop helper without adding any element to the dom
2963
2961
  rootElement: 'body' // give the choice to place backdrop under different elements
2964
2962
  };
2965
- const DefaultType$a = {
2963
+ const DefaultType$b = {
2966
2964
  className: 'string',
2967
2965
  clickCallback: '(function|null)',
2968
2966
  isAnimated: 'boolean',
@@ -2984,13 +2982,13 @@
2984
2982
 
2985
2983
  // Getters
2986
2984
  static get Default() {
2987
- return Default$a;
2985
+ return Default$b;
2988
2986
  }
2989
2987
  static get DefaultType() {
2990
- return DefaultType$a;
2988
+ return DefaultType$b;
2991
2989
  }
2992
2990
  static get NAME() {
2993
- return NAME$b;
2991
+ return NAME$c;
2994
2992
  }
2995
2993
 
2996
2994
  // Public
@@ -3077,19 +3075,19 @@
3077
3075
  * Constants
3078
3076
  */
3079
3077
 
3080
- const NAME$a = 'focustrap';
3081
- const DATA_KEY$7 = 'coreui.focustrap';
3082
- const EVENT_KEY$7 = `.${DATA_KEY$7}`;
3083
- const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$7}`;
3084
- const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$7}`;
3078
+ const NAME$b = 'focustrap';
3079
+ const DATA_KEY$8 = 'coreui.focustrap';
3080
+ const EVENT_KEY$8 = `.${DATA_KEY$8}`;
3081
+ const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$8}`;
3082
+ const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$8}`;
3085
3083
  const TAB_KEY = 'Tab';
3086
3084
  const TAB_NAV_FORWARD = 'forward';
3087
3085
  const TAB_NAV_BACKWARD = 'backward';
3088
- const Default$9 = {
3086
+ const Default$a = {
3089
3087
  autofocus: true,
3090
3088
  trapElement: null // The element to trap focus inside of
3091
3089
  };
3092
- const DefaultType$9 = {
3090
+ const DefaultType$a = {
3093
3091
  autofocus: 'boolean',
3094
3092
  trapElement: 'element'
3095
3093
  };
@@ -3108,13 +3106,13 @@
3108
3106
 
3109
3107
  // Getters
3110
3108
  static get Default() {
3111
- return Default$9;
3109
+ return Default$a;
3112
3110
  }
3113
3111
  static get DefaultType() {
3114
- return DefaultType$9;
3112
+ return DefaultType$a;
3115
3113
  }
3116
3114
  static get NAME() {
3117
- return NAME$a;
3115
+ return NAME$b;
3118
3116
  }
3119
3117
 
3120
3118
  // Public
@@ -3125,7 +3123,7 @@
3125
3123
  if (this._config.autofocus) {
3126
3124
  this._config.trapElement.focus();
3127
3125
  }
3128
- EventHandler.off(document, EVENT_KEY$7); // guard against infinite focus loop
3126
+ EventHandler.off(document, EVENT_KEY$8); // guard against infinite focus loop
3129
3127
  EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));
3130
3128
  EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));
3131
3129
  this._isActive = true;
@@ -3135,7 +3133,7 @@
3135
3133
  return;
3136
3134
  }
3137
3135
  this._isActive = false;
3138
- EventHandler.off(document, EVENT_KEY$7);
3136
+ EventHandler.off(document, EVENT_KEY$8);
3139
3137
  }
3140
3138
 
3141
3139
  // Private
@@ -3279,21 +3277,21 @@
3279
3277
  * Constants
3280
3278
  */
3281
3279
 
3282
- const NAME$9 = 'modal';
3283
- const DATA_KEY$6 = 'coreui.modal';
3284
- const EVENT_KEY$6 = `.${DATA_KEY$6}`;
3285
- const DATA_API_KEY$4 = '.data-api';
3280
+ const NAME$a = 'modal';
3281
+ const DATA_KEY$7 = 'coreui.modal';
3282
+ const EVENT_KEY$7 = `.${DATA_KEY$7}`;
3283
+ const DATA_API_KEY$5 = '.data-api';
3286
3284
  const ESCAPE_KEY$1 = 'Escape';
3287
- const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
3288
- const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$6}`;
3289
- const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
3290
- const EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
3291
- const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
3292
- const EVENT_RESIZE$2 = `resize${EVENT_KEY$6}`;
3293
- const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$6}`;
3294
- const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`;
3295
- const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$6}`;
3296
- const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$6}${DATA_API_KEY$4}`;
3285
+ const EVENT_HIDE$5 = `hide${EVENT_KEY$7}`;
3286
+ const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$7}`;
3287
+ const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$7}`;
3288
+ const EVENT_SHOW$5 = `show${EVENT_KEY$7}`;
3289
+ const EVENT_SHOWN$5 = `shown${EVENT_KEY$7}`;
3290
+ const EVENT_RESIZE$2 = `resize${EVENT_KEY$7}`;
3291
+ const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$7}`;
3292
+ const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$7}`;
3293
+ const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$7}`;
3294
+ const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$7}${DATA_API_KEY$5}`;
3297
3295
  const CLASS_NAME_OPEN = 'modal-open';
3298
3296
  const CLASS_NAME_FADE$3 = 'fade';
3299
3297
  const CLASS_NAME_SHOW$6 = 'show';
@@ -3301,13 +3299,13 @@
3301
3299
  const OPEN_SELECTOR$1 = '.modal.show';
3302
3300
  const SELECTOR_DIALOG = '.modal-dialog';
3303
3301
  const SELECTOR_MODAL_BODY = '.modal-body';
3304
- const SELECTOR_DATA_TOGGLE$3 = '[data-coreui-toggle="modal"]';
3305
- const Default$8 = {
3302
+ const SELECTOR_DATA_TOGGLE$4 = '[data-coreui-toggle="modal"]';
3303
+ const Default$9 = {
3306
3304
  backdrop: true,
3307
3305
  focus: true,
3308
3306
  keyboard: true
3309
3307
  };
3310
- const DefaultType$8 = {
3308
+ const DefaultType$9 = {
3311
3309
  backdrop: '(boolean|string)',
3312
3310
  focus: 'boolean',
3313
3311
  keyboard: 'boolean'
@@ -3331,13 +3329,13 @@
3331
3329
 
3332
3330
  // Getters
3333
3331
  static get Default() {
3334
- return Default$8;
3332
+ return Default$9;
3335
3333
  }
3336
3334
  static get DefaultType() {
3337
- return DefaultType$8;
3335
+ return DefaultType$9;
3338
3336
  }
3339
3337
  static get NAME() {
3340
- return NAME$9;
3338
+ return NAME$a;
3341
3339
  }
3342
3340
 
3343
3341
  // Public
@@ -3376,8 +3374,8 @@
3376
3374
  this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
3377
3375
  }
3378
3376
  dispose() {
3379
- EventHandler.off(window, EVENT_KEY$6);
3380
- EventHandler.off(this._dialog, EVENT_KEY$6);
3377
+ EventHandler.off(window, EVENT_KEY$7);
3378
+ EventHandler.off(this._dialog, EVENT_KEY$7);
3381
3379
  this._backdrop.dispose();
3382
3380
  this._focustrap.deactivate();
3383
3381
  super.dispose();
@@ -3539,7 +3537,7 @@
3539
3537
  * Data API implementation
3540
3538
  */
3541
3539
 
3542
- EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$3, function (event) {
3540
+ EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$4, function (event) {
3543
3541
  const target = SelectorEngine.getElementFromSelector(this);
3544
3542
  if (['A', 'AREA'].includes(this.tagName)) {
3545
3543
  event.preventDefault();
@@ -3586,29 +3584,29 @@
3586
3584
  * ------------------------------------------------------------------------
3587
3585
  */
3588
3586
 
3589
- const NAME$8 = 'navigation';
3590
- const DATA_KEY$5 = 'coreui.navigation';
3591
- const EVENT_KEY$5 = `.${DATA_KEY$5}`;
3592
- const DATA_API_KEY$3 = '.data-api';
3593
- const Default$7 = {
3587
+ const NAME$9 = 'navigation';
3588
+ const DATA_KEY$6 = 'coreui.navigation';
3589
+ const EVENT_KEY$6 = `.${DATA_KEY$6}`;
3590
+ const DATA_API_KEY$4 = '.data-api';
3591
+ const Default$8 = {
3594
3592
  activeLinksExact: true,
3595
3593
  groupsAutoCollapse: true
3596
3594
  };
3597
- const DefaultType$7 = {
3595
+ const DefaultType$8 = {
3598
3596
  activeLinksExact: 'boolean',
3599
3597
  groupsAutoCollapse: '(string|boolean)'
3600
3598
  };
3601
- const CLASS_NAME_ACTIVE$2 = 'active';
3599
+ const CLASS_NAME_ACTIVE$3 = 'active';
3602
3600
  const CLASS_NAME_SHOW$5 = 'show';
3603
3601
  const CLASS_NAME_NAV_GROUP = 'nav-group';
3604
3602
  const CLASS_NAME_NAV_GROUP_TOGGLE = 'nav-group-toggle';
3605
- const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$5}${DATA_API_KEY$3}`;
3606
- const EVENT_LOAD_DATA_API$4 = `load${EVENT_KEY$5}${DATA_API_KEY$3}`;
3603
+ const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$6}${DATA_API_KEY$4}`;
3604
+ const EVENT_LOAD_DATA_API$4 = `load${EVENT_KEY$6}${DATA_API_KEY$4}`;
3607
3605
  const SELECTOR_NAV_GROUP = '.nav-group';
3608
3606
  const SELECTOR_NAV_GROUP_ITEMS = '.nav-group-items';
3609
3607
  const SELECTOR_NAV_GROUP_TOGGLE = '.nav-group-toggle';
3610
3608
  const SELECTOR_NAV_LINK = '.nav-link';
3611
- const SELECTOR_DATA_NAVIGATION = '[data-coreui="navigation"]';
3609
+ const SELECTOR_DATA_NAVIGATION = '[data-coreui-navigation], [data-coreui="navigation"]';
3612
3610
 
3613
3611
  /**
3614
3612
  * ------------------------------------------------------------------------
@@ -3622,21 +3620,21 @@
3622
3620
  this._config = this._getConfig(config);
3623
3621
  this._setActiveLink();
3624
3622
  this._addEventListeners();
3625
- Data.set(element, DATA_KEY$5, this);
3623
+ Data.set(element, DATA_KEY$6, this);
3626
3624
  }
3627
3625
  // Getters
3628
3626
 
3629
3627
  static get Default() {
3630
- return Default$7;
3628
+ return Default$8;
3631
3629
  }
3632
3630
  static get DATA_KEY() {
3633
- return DATA_KEY$5;
3631
+ return DATA_KEY$6;
3634
3632
  }
3635
3633
  static get DefaultType() {
3636
- return DefaultType$7;
3634
+ return DefaultType$8;
3637
3635
  }
3638
3636
  static get NAME() {
3639
- return NAME$8;
3637
+ return NAME$9;
3640
3638
  }
3641
3639
 
3642
3640
  // Private
@@ -3657,7 +3655,7 @@
3657
3655
  currentUrl = currentUrl.split('#')[0];
3658
3656
  }
3659
3657
  if (this._config.activeLinksExact && element.href === currentUrl) {
3660
- element.classList.add(CLASS_NAME_ACTIVE$2);
3658
+ element.classList.add(CLASS_NAME_ACTIVE$3);
3661
3659
  // eslint-disable-next-line unicorn/no-array-for-each
3662
3660
  Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {
3663
3661
  element.classList.add(CLASS_NAME_SHOW$5);
@@ -3665,7 +3663,7 @@
3665
3663
  });
3666
3664
  }
3667
3665
  if (!this._config.activeLinksExact && currentUrl.startsWith(element.href)) {
3668
- element.classList.add(CLASS_NAME_ACTIVE$2);
3666
+ element.classList.add(CLASS_NAME_ACTIVE$3);
3669
3667
  // eslint-disable-next-line unicorn/no-array-for-each
3670
3668
  Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {
3671
3669
  element.classList.add(CLASS_NAME_SHOW$5);
@@ -3773,7 +3771,7 @@
3773
3771
  this._slideDown(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode));
3774
3772
  }
3775
3773
  _addEventListeners() {
3776
- EventHandler.on(this._element, EVENT_CLICK_DATA_API$3, SELECTOR_NAV_GROUP_TOGGLE, event => {
3774
+ EventHandler.on(this._element, EVENT_CLICK_DATA_API$4, SELECTOR_NAV_GROUP_TOGGLE, event => {
3777
3775
  event.preventDefault();
3778
3776
  this._toggleGroupItems(event, this);
3779
3777
  });
@@ -3832,32 +3830,32 @@
3832
3830
  * Constants
3833
3831
  */
3834
3832
 
3835
- const NAME$7 = 'offcanvas';
3836
- const DATA_KEY$4 = 'coreui.offcanvas';
3837
- const EVENT_KEY$4 = `.${DATA_KEY$4}`;
3838
- const DATA_API_KEY$2 = '.data-api';
3839
- const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$4}${DATA_API_KEY$2}`;
3833
+ const NAME$8 = 'offcanvas';
3834
+ const DATA_KEY$5 = 'coreui.offcanvas';
3835
+ const EVENT_KEY$5 = `.${DATA_KEY$5}`;
3836
+ const DATA_API_KEY$3 = '.data-api';
3837
+ const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$5}${DATA_API_KEY$3}`;
3840
3838
  const ESCAPE_KEY = 'Escape';
3841
3839
  const CLASS_NAME_SHOW$4 = 'show';
3842
3840
  const CLASS_NAME_SHOWING$1 = 'showing';
3843
3841
  const CLASS_NAME_HIDING = 'hiding';
3844
3842
  const CLASS_NAME_BACKDROP$1 = 'offcanvas-backdrop';
3845
3843
  const OPEN_SELECTOR = '.offcanvas.show';
3846
- const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
3847
- const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
3848
- const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
3849
- const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$4}`;
3850
- const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
3851
- const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
3852
- const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
3853
- const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$4}`;
3854
- const SELECTOR_DATA_TOGGLE$2 = '[data-coreui-toggle="offcanvas"]';
3855
- const Default$6 = {
3844
+ const EVENT_SHOW$4 = `show${EVENT_KEY$5}`;
3845
+ const EVENT_SHOWN$4 = `shown${EVENT_KEY$5}`;
3846
+ const EVENT_HIDE$4 = `hide${EVENT_KEY$5}`;
3847
+ const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$5}`;
3848
+ const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$5}`;
3849
+ const EVENT_RESIZE$1 = `resize${EVENT_KEY$5}`;
3850
+ const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$5}${DATA_API_KEY$3}`;
3851
+ const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$5}`;
3852
+ const SELECTOR_DATA_TOGGLE$3 = '[data-coreui-toggle="offcanvas"]';
3853
+ const Default$7 = {
3856
3854
  backdrop: true,
3857
3855
  keyboard: true,
3858
3856
  scroll: false
3859
3857
  };
3860
- const DefaultType$6 = {
3858
+ const DefaultType$7 = {
3861
3859
  backdrop: '(boolean|string)',
3862
3860
  keyboard: 'boolean',
3863
3861
  scroll: 'boolean'
@@ -3878,13 +3876,13 @@
3878
3876
 
3879
3877
  // Getters
3880
3878
  static get Default() {
3881
- return Default$6;
3879
+ return Default$7;
3882
3880
  }
3883
3881
  static get DefaultType() {
3884
- return DefaultType$6;
3882
+ return DefaultType$7;
3885
3883
  }
3886
3884
  static get NAME() {
3887
- return NAME$7;
3885
+ return NAME$8;
3888
3886
  }
3889
3887
 
3890
3888
  // Public
@@ -4008,7 +4006,7 @@
4008
4006
  * Data API implementation
4009
4007
  */
4010
4008
 
4011
- EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {
4009
+ EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {
4012
4010
  const target = SelectorEngine.getElementFromSelector(this);
4013
4011
  if (['A', 'AREA'].includes(this.tagName)) {
4014
4012
  event.preventDefault();
@@ -4164,8 +4162,8 @@
4164
4162
  * Constants
4165
4163
  */
4166
4164
 
4167
- const NAME$6 = 'TemplateFactory';
4168
- const Default$5 = {
4165
+ const NAME$7 = 'TemplateFactory';
4166
+ const Default$6 = {
4169
4167
  allowList: DefaultAllowlist,
4170
4168
  content: {},
4171
4169
  // { selector : text , selector2 : text2 , }
@@ -4175,7 +4173,7 @@
4175
4173
  sanitizeFn: null,
4176
4174
  template: '<div></div>'
4177
4175
  };
4178
- const DefaultType$5 = {
4176
+ const DefaultType$6 = {
4179
4177
  allowList: 'object',
4180
4178
  content: 'object',
4181
4179
  extraClass: '(string|function)',
@@ -4201,13 +4199,13 @@
4201
4199
 
4202
4200
  // Getters
4203
4201
  static get Default() {
4204
- return Default$5;
4202
+ return Default$6;
4205
4203
  }
4206
4204
  static get DefaultType() {
4207
- return DefaultType$5;
4205
+ return DefaultType$6;
4208
4206
  }
4209
4207
  static get NAME() {
4210
- return NAME$6;
4208
+ return NAME$7;
4211
4209
  }
4212
4210
 
4213
4211
  // Public
@@ -4303,7 +4301,7 @@
4303
4301
  * Constants
4304
4302
  */
4305
4303
 
4306
- const NAME$5 = 'tooltip';
4304
+ const NAME$6 = 'tooltip';
4307
4305
  const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
4308
4306
  const CLASS_NAME_FADE$2 = 'fade';
4309
4307
  const CLASS_NAME_MODAL = 'modal';
@@ -4332,7 +4330,7 @@
4332
4330
  BOTTOM: 'bottom',
4333
4331
  LEFT: isRTL() ? 'right' : 'left'
4334
4332
  };
4335
- const Default$4 = {
4333
+ const Default$5 = {
4336
4334
  allowList: DefaultAllowlist,
4337
4335
  animation: true,
4338
4336
  boundary: 'clippingParents',
@@ -4351,7 +4349,7 @@
4351
4349
  title: '',
4352
4350
  trigger: 'hover focus'
4353
4351
  };
4354
- const DefaultType$4 = {
4352
+ const DefaultType$5 = {
4355
4353
  allowList: 'object',
4356
4354
  animation: 'boolean',
4357
4355
  boundary: '(string|element)',
@@ -4401,13 +4399,13 @@
4401
4399
 
4402
4400
  // Getters
4403
4401
  static get Default() {
4404
- return Default$4;
4402
+ return Default$5;
4405
4403
  }
4406
4404
  static get DefaultType() {
4407
- return DefaultType$4;
4405
+ return DefaultType$5;
4408
4406
  }
4409
4407
  static get NAME() {
4410
- return NAME$5;
4408
+ return NAME$6;
4411
4409
  }
4412
4410
 
4413
4411
  // Public
@@ -4818,10 +4816,10 @@
4818
4816
  * Constants
4819
4817
  */
4820
4818
 
4821
- const NAME$4 = 'popover';
4819
+ const NAME$5 = 'popover';
4822
4820
  const SELECTOR_TITLE = '.popover-header';
4823
4821
  const SELECTOR_CONTENT = '.popover-body';
4824
- const Default$3 = {
4822
+ const Default$4 = {
4825
4823
  ...Tooltip.Default,
4826
4824
  content: '',
4827
4825
  offset: [0, 8],
@@ -4829,7 +4827,7 @@
4829
4827
  template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>',
4830
4828
  trigger: 'click'
4831
4829
  };
4832
- const DefaultType$3 = {
4830
+ const DefaultType$4 = {
4833
4831
  ...Tooltip.DefaultType,
4834
4832
  content: '(null|string|element|function)'
4835
4833
  };
@@ -4841,13 +4839,13 @@
4841
4839
  class Popover extends Tooltip {
4842
4840
  // Getters
4843
4841
  static get Default() {
4844
- return Default$3;
4842
+ return Default$4;
4845
4843
  }
4846
4844
  static get DefaultType() {
4847
- return DefaultType$3;
4845
+ return DefaultType$4;
4848
4846
  }
4849
4847
  static get NAME() {
4850
- return NAME$4;
4848
+ return NAME$5;
4851
4849
  }
4852
4850
 
4853
4851
  // Overrides
@@ -4902,15 +4900,15 @@
4902
4900
  * Constants
4903
4901
  */
4904
4902
 
4905
- const NAME$3 = 'scrollspy';
4906
- const DATA_KEY$3 = 'coreui.scrollspy';
4907
- const EVENT_KEY$3 = `.${DATA_KEY$3}`;
4908
- const DATA_API_KEY$1 = '.data-api';
4909
- const EVENT_ACTIVATE = `activate${EVENT_KEY$3}`;
4910
- const EVENT_CLICK = `click${EVENT_KEY$3}`;
4911
- const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
4903
+ const NAME$4 = 'scrollspy';
4904
+ const DATA_KEY$4 = 'coreui.scrollspy';
4905
+ const EVENT_KEY$4 = `.${DATA_KEY$4}`;
4906
+ const DATA_API_KEY$2 = '.data-api';
4907
+ const EVENT_ACTIVATE = `activate${EVENT_KEY$4}`;
4908
+ const EVENT_CLICK = `click${EVENT_KEY$4}`;
4909
+ const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$4}${DATA_API_KEY$2}`;
4912
4910
  const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
4913
- const CLASS_NAME_ACTIVE$1 = 'active';
4911
+ const CLASS_NAME_ACTIVE$2 = 'active';
4914
4912
  const SELECTOR_DATA_SPY = '[data-coreui-spy="scroll"]';
4915
4913
  const SELECTOR_TARGET_LINKS = '[href]';
4916
4914
  const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
@@ -4920,7 +4918,7 @@
4920
4918
  const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
4921
4919
  const SELECTOR_DROPDOWN = '.dropdown';
4922
4920
  const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
4923
- const Default$2 = {
4921
+ const Default$3 = {
4924
4922
  offset: null,
4925
4923
  // TODO: v6 @deprecated, keep it for backwards compatibility reasons
4926
4924
  rootMargin: '0px 0px -25%',
@@ -4928,7 +4926,7 @@
4928
4926
  target: null,
4929
4927
  threshold: [0.1, 0.5, 1]
4930
4928
  };
4931
- const DefaultType$2 = {
4929
+ const DefaultType$3 = {
4932
4930
  offset: '(number|null)',
4933
4931
  // TODO v6 @deprecated, keep it for backwards compatibility reasons
4934
4932
  rootMargin: 'string',
@@ -4960,13 +4958,13 @@
4960
4958
 
4961
4959
  // Getters
4962
4960
  static get Default() {
4963
- return Default$2;
4961
+ return Default$3;
4964
4962
  }
4965
4963
  static get DefaultType() {
4966
- return DefaultType$2;
4964
+ return DefaultType$3;
4967
4965
  }
4968
4966
  static get NAME() {
4969
- return NAME$3;
4967
+ return NAME$4;
4970
4968
  }
4971
4969
 
4972
4970
  // Public
@@ -5091,7 +5089,7 @@
5091
5089
  }
5092
5090
  this._clearActiveClass(this._config.target);
5093
5091
  this._activeTarget = target;
5094
- target.classList.add(CLASS_NAME_ACTIVE$1);
5092
+ target.classList.add(CLASS_NAME_ACTIVE$2);
5095
5093
  this._activateParents(target);
5096
5094
  EventHandler.trigger(this._element, EVENT_ACTIVATE, {
5097
5095
  relatedTarget: target
@@ -5100,22 +5098,22 @@
5100
5098
  _activateParents(target) {
5101
5099
  // Activate dropdown parents
5102
5100
  if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
5103
- SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);
5101
+ SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
5104
5102
  return;
5105
5103
  }
5106
5104
  for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
5107
5105
  // Set triggered links parents as active
5108
5106
  // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
5109
5107
  for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
5110
- item.classList.add(CLASS_NAME_ACTIVE$1);
5108
+ item.classList.add(CLASS_NAME_ACTIVE$2);
5111
5109
  }
5112
5110
  }
5113
5111
  }
5114
5112
  _clearActiveClass(parent) {
5115
- parent.classList.remove(CLASS_NAME_ACTIVE$1);
5116
- const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);
5113
+ parent.classList.remove(CLASS_NAME_ACTIVE$2);
5114
+ const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$2}`, parent);
5117
5115
  for (const node of activeNodes) {
5118
- node.classList.remove(CLASS_NAME_ACTIVE$1);
5116
+ node.classList.remove(CLASS_NAME_ACTIVE$2);
5119
5117
  }
5120
5118
  }
5121
5119
 
@@ -5150,6 +5148,327 @@
5150
5148
 
5151
5149
  defineJQueryPlugin(ScrollSpy);
5152
5150
 
5151
+ /**
5152
+ * --------------------------------------------------------------------------
5153
+ * CoreUI search-button.js
5154
+ * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5155
+ * --------------------------------------------------------------------------
5156
+ */
5157
+
5158
+
5159
+ /**
5160
+ * Constants
5161
+ */
5162
+
5163
+ const NAME$3 = 'search-button';
5164
+ const DATA_KEY$3 = 'coreui.search-button';
5165
+ const EVENT_KEY$3 = `.${DATA_KEY$3}`;
5166
+ const DATA_API_KEY$1 = '.data-api';
5167
+ const EVENT_BLUR_DATA_API = `blur${EVENT_KEY$3}${DATA_API_KEY$1}`;
5168
+ const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;
5169
+ const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$3}${DATA_API_KEY$1}`;
5170
+ const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$3}${DATA_API_KEY$1}`;
5171
+ const EVENT_TRIGGER = `trigger${EVENT_KEY$3}`;
5172
+ const CLASS_NAME_SHORTCUT_KEYS = 'search-button-keys';
5173
+ const CLASS_NAME_SHORTCUT_KEY = 'search-button-key';
5174
+ const CLASS_NAME_ACTIVE$1 = 'active';
5175
+ const SELECTOR_DATA_TOGGLE$2 = '[data-coreui-search-button]';
5176
+ const SELECTOR_EDITABLE_TARGET = 'input, textarea, select, [contenteditable=""], [contenteditable="true"], [contenteditable="plaintext-only"]';
5177
+ const SELECTOR_PLACEHOLDER = '.search-button-placeholder';
5178
+ const SELECTOR_SHORTCUT_KEY = '.search-button-key';
5179
+ const SELECTOR_SHORTCUT_KEYS = '.search-button-keys';
5180
+ const Default$2 = {
5181
+ preventDefault: true,
5182
+ shortcut: 'meta+/,ctrl+/'
5183
+ };
5184
+ const DefaultType$2 = {
5185
+ preventDefault: 'boolean',
5186
+ shortcut: 'string'
5187
+ };
5188
+ const MODIFIER_KEYS = new Set(['alt', 'ctrl', 'meta', 'shift']);
5189
+ const KEY_ALIASES = {
5190
+ cmd: 'meta',
5191
+ command: 'meta',
5192
+ control: 'ctrl',
5193
+ option: 'alt',
5194
+ return: 'enter',
5195
+ esc: 'escape',
5196
+ spacebar: 'space',
5197
+ ' ': 'space'
5198
+ };
5199
+ const KEY_LABELS = {
5200
+ alt: 'Alt',
5201
+ ctrl: 'Ctrl',
5202
+ meta: '⌘',
5203
+ shift: 'Shift',
5204
+ space: 'Space'
5205
+ };
5206
+
5207
+ /**
5208
+ * Class definition
5209
+ */
5210
+
5211
+ class SearchButton extends BaseComponent {
5212
+ constructor(element, config) {
5213
+ super(element, config);
5214
+ this._shortcutTriggered = false;
5215
+ this._shortcuts = this._parseShortcut(this._config.shortcut);
5216
+ this._preferredShortcut = this._getPreferredShortcut(this._shortcuts);
5217
+ this._syncShortcutKeys();
5218
+ }
5219
+
5220
+ // Getters
5221
+ static get Default() {
5222
+ return Default$2;
5223
+ }
5224
+ static get DefaultType() {
5225
+ return DefaultType$2;
5226
+ }
5227
+ static get NAME() {
5228
+ return NAME$3;
5229
+ }
5230
+
5231
+ // Public
5232
+ trigger() {
5233
+ this._triggerEvent('api');
5234
+ }
5235
+
5236
+ // Private
5237
+ _triggerEvent(trigger) {
5238
+ if (this._isDisabled()) {
5239
+ return;
5240
+ }
5241
+ EventHandler.trigger(this._element, EVENT_TRIGGER, {
5242
+ trigger
5243
+ });
5244
+ }
5245
+ _handleShortcut(event) {
5246
+ if (this._isDisabled() || event.defaultPrevented || event.repeat || this._shouldIgnoreShortcut(event)) {
5247
+ return false;
5248
+ }
5249
+ const matchedShortcut = this._shortcuts.find(shortcut => this._matchesShortcut(shortcut, event));
5250
+ if (!matchedShortcut) {
5251
+ return false;
5252
+ }
5253
+ if (this._config.preventDefault) {
5254
+ event.preventDefault();
5255
+ }
5256
+ this._shortcutTriggered = true;
5257
+ try {
5258
+ this._element.click();
5259
+ } finally {
5260
+ this._shortcutTriggered = false;
5261
+ }
5262
+ return true;
5263
+ }
5264
+ _isDisabled() {
5265
+ return this._element.classList.contains('disabled') || this._element.getAttribute('aria-disabled') === 'true' || this._element.disabled;
5266
+ }
5267
+ _ensureShortcutKeys() {
5268
+ const existingShortcutKeys = this._element.querySelector(SELECTOR_SHORTCUT_KEYS);
5269
+ if (existingShortcutKeys) {
5270
+ return existingShortcutKeys;
5271
+ }
5272
+ const shortcutKeys = document.createElement('span');
5273
+ shortcutKeys.className = CLASS_NAME_SHORTCUT_KEYS;
5274
+ shortcutKeys.setAttribute('aria-hidden', 'true');
5275
+ const placeholder = this._element.querySelector(SELECTOR_PLACEHOLDER);
5276
+ if (placeholder) {
5277
+ placeholder.after(shortcutKeys);
5278
+ return shortcutKeys;
5279
+ }
5280
+ this._element.append(shortcutKeys);
5281
+ return shortcutKeys;
5282
+ }
5283
+ _syncShortcutKeys() {
5284
+ var _this$_preferredShort;
5285
+ const shortcutKeys = this._ensureShortcutKeys();
5286
+ const shortcutTokens = this._formatShortcutTokens(((_this$_preferredShort = this._preferredShortcut) == null ? void 0 : _this$_preferredShort.shortcut) || '').filter(Boolean);
5287
+ shortcutKeys.replaceChildren();
5288
+ for (const key of shortcutTokens) {
5289
+ const shortcutKey = document.createElement('span');
5290
+ shortcutKey.className = CLASS_NAME_SHORTCUT_KEY;
5291
+ shortcutKey.textContent = key;
5292
+ shortcutKey.dataset.coreuiSearchButtonKey = key;
5293
+ shortcutKeys.append(shortcutKey);
5294
+ }
5295
+ }
5296
+ _syncActiveKeys(event) {
5297
+ const pressedKeys = this._getPressedKeys(event);
5298
+ for (const shortcutKey of this._element.querySelectorAll(SELECTOR_SHORTCUT_KEY)) {
5299
+ shortcutKey.classList.toggle(CLASS_NAME_ACTIVE$1, pressedKeys.has(shortcutKey.dataset.coreuiSearchButtonKey));
5300
+ }
5301
+ }
5302
+ _clearActiveKeys() {
5303
+ for (const shortcutKey of this._element.querySelectorAll(SELECTOR_SHORTCUT_KEY)) {
5304
+ shortcutKey.classList.remove(CLASS_NAME_ACTIVE$1);
5305
+ }
5306
+ }
5307
+ _consumeShortcutTrigger() {
5308
+ const shortcutTriggered = this._shortcutTriggered;
5309
+ this._shortcutTriggered = false;
5310
+ return shortcutTriggered;
5311
+ }
5312
+ _shouldIgnoreShortcut(event) {
5313
+ return this._isEditableTarget(event.target) && !event.ctrlKey && !event.metaKey;
5314
+ }
5315
+ _isEditableTarget(target) {
5316
+ if (!(target instanceof Element)) {
5317
+ return false;
5318
+ }
5319
+ return target.matches(SELECTOR_EDITABLE_TARGET) || target.closest(SELECTOR_EDITABLE_TARGET);
5320
+ }
5321
+ _normalizeKey(key) {
5322
+ return KEY_ALIASES[key.toLowerCase()] || key.toLowerCase();
5323
+ }
5324
+ _parseShortcut(shortcut) {
5325
+ return shortcut.split(',').map(value => value.trim()).filter(Boolean).map(value => {
5326
+ const keys = value.split('+').map(part => this._normalizeKey(part.trim()));
5327
+ const modifiers = {
5328
+ alt: false,
5329
+ ctrl: false,
5330
+ meta: false,
5331
+ shift: false
5332
+ };
5333
+ let key = '';
5334
+ for (const part of keys) {
5335
+ if (MODIFIER_KEYS.has(part)) {
5336
+ modifiers[part] = true;
5337
+ continue;
5338
+ }
5339
+ key = part;
5340
+ }
5341
+ return {
5342
+ key,
5343
+ modifiers,
5344
+ shortcut: value
5345
+ };
5346
+ });
5347
+ }
5348
+ _matchesShortcut(shortcut, event) {
5349
+ if (!shortcut.key || this._normalizeKey(event.key) !== shortcut.key) {
5350
+ return false;
5351
+ }
5352
+ return shortcut.modifiers.alt === event.altKey && shortcut.modifiers.ctrl === event.ctrlKey && shortcut.modifiers.meta === event.metaKey && shortcut.modifiers.shift === event.shiftKey;
5353
+ }
5354
+ _formatShortcutTokens(shortcut) {
5355
+ return shortcut.split('+').map(part => this._normalizeKey(part.trim())).map(part => this._getKeyLabel(part));
5356
+ }
5357
+ _getPlatform() {
5358
+ var _window$navigator$use;
5359
+ return ((_window$navigator$use = window.navigator.userAgentData) == null ? void 0 : _window$navigator$use.platform) || window.navigator.platform || window.navigator.userAgent || '';
5360
+ }
5361
+ _isMacOS() {
5362
+ return /Mac|iPhone|iPad|iPod|macOS|Macintosh/.test(this._getPlatform());
5363
+ }
5364
+ _getPreferredShortcut(shortcuts) {
5365
+ return shortcuts.find(shortcut => {
5366
+ return this._isMacOS() ? shortcut.modifiers.meta : shortcut.modifiers.ctrl;
5367
+ }) || shortcuts[0] || null;
5368
+ }
5369
+ _getPressedKeys(event) {
5370
+ const pressedKeys = new Set();
5371
+ if (event.altKey) {
5372
+ pressedKeys.add(KEY_LABELS.alt);
5373
+ }
5374
+ if (event.ctrlKey) {
5375
+ pressedKeys.add(KEY_LABELS.ctrl);
5376
+ }
5377
+ if (event.metaKey) {
5378
+ pressedKeys.add(KEY_LABELS.meta);
5379
+ }
5380
+ if (event.shiftKey) {
5381
+ pressedKeys.add(KEY_LABELS.shift);
5382
+ }
5383
+ const normalizedKey = this._normalizeKey(event.key);
5384
+ const keyLabel = this._getKeyLabel(normalizedKey);
5385
+ if (!MODIFIER_KEYS.has(normalizedKey) && event.type === 'keydown') {
5386
+ pressedKeys.add(keyLabel);
5387
+ }
5388
+ return pressedKeys;
5389
+ }
5390
+ _getKeyLabel(key) {
5391
+ return KEY_LABELS[key] || (key.length === 1 ? key.toUpperCase() : `${key.charAt(0).toUpperCase()}${key.slice(1)}`);
5392
+ }
5393
+
5394
+ // Static
5395
+ static searchButtonInterface(element, config) {
5396
+ const data = SearchButton.getOrCreateInstance(element, config);
5397
+ if (typeof config === 'string') {
5398
+ if (config.startsWith('_') || typeof data[config] !== 'function') {
5399
+ throw new TypeError(`No method named "${config}"`);
5400
+ }
5401
+ data[config]();
5402
+ }
5403
+ }
5404
+ static jQueryInterface(config) {
5405
+ return this.each(function () {
5406
+ SearchButton.searchButtonInterface(this, config);
5407
+ });
5408
+ }
5409
+ static _initializeDataApi() {
5410
+ for (const button of document.querySelectorAll(SELECTOR_DATA_TOGGLE$2)) {
5411
+ SearchButton.getOrCreateInstance(button);
5412
+ }
5413
+ }
5414
+ static _handleDataApiClick(event) {
5415
+ event.preventDefault();
5416
+ const button = event.target.closest(SELECTOR_DATA_TOGGLE$2);
5417
+ const data = SearchButton.getOrCreateInstance(button);
5418
+ const shortcutTriggered = data._consumeShortcutTrigger();
5419
+ if (shortcutTriggered) {
5420
+ data._triggerEvent('shortcut');
5421
+ return;
5422
+ }
5423
+ data._triggerEvent('click');
5424
+ }
5425
+ static _handleDataApiKeydown(event) {
5426
+ for (const button of document.querySelectorAll(SELECTOR_DATA_TOGGLE$2)) {
5427
+ const data = SearchButton.getOrCreateInstance(button);
5428
+ data._syncActiveKeys(event);
5429
+ if (data._handleShortcut(event)) {
5430
+ break;
5431
+ }
5432
+ }
5433
+ }
5434
+ static _handleDataApiKeyup(event) {
5435
+ for (const button of document.querySelectorAll(SELECTOR_DATA_TOGGLE$2)) {
5436
+ SearchButton.getOrCreateInstance(button)._syncActiveKeys(event);
5437
+ }
5438
+ }
5439
+ static _handleDataApiBlur() {
5440
+ for (const button of document.querySelectorAll(SELECTOR_DATA_TOGGLE$2)) {
5441
+ SearchButton.getOrCreateInstance(button)._clearActiveKeys();
5442
+ }
5443
+ }
5444
+ }
5445
+
5446
+ /**
5447
+ * Data API implementation
5448
+ */
5449
+
5450
+ EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$3}${DATA_API_KEY$1}`, () => {
5451
+ SearchButton._initializeDataApi();
5452
+ });
5453
+ EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, event => {
5454
+ SearchButton._handleDataApiClick(event);
5455
+ });
5456
+ EventHandler.on(document, EVENT_KEYDOWN_DATA_API, event => {
5457
+ SearchButton._handleDataApiKeydown(event);
5458
+ });
5459
+ EventHandler.on(document, EVENT_KEYUP_DATA_API, event => {
5460
+ SearchButton._handleDataApiKeyup(event);
5461
+ });
5462
+ EventHandler.on(window, EVENT_BLUR_DATA_API, () => {
5463
+ SearchButton._handleDataApiBlur();
5464
+ });
5465
+
5466
+ /**
5467
+ * jQuery
5468
+ */
5469
+
5470
+ defineJQueryPlugin(SearchButton);
5471
+
5153
5472
  /**
5154
5473
  * --------------------------------------------------------------------------
5155
5474
  * CoreUI sidebar.js
@@ -5276,13 +5595,13 @@
5276
5595
  }
5277
5596
  narrow() {
5278
5597
  if (!this._isMobile()) {
5279
- this._addClassName(CLASS_NAME_SIDEBAR_NARROW);
5598
+ this._element.classList.add(CLASS_NAME_SIDEBAR_NARROW);
5280
5599
  this._narrow = true;
5281
5600
  }
5282
5601
  }
5283
5602
  unfoldable() {
5284
5603
  if (!this._isMobile()) {
5285
- this._addClassName(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE);
5604
+ this._element.classList.add(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE);
5286
5605
  this._unfoldable = true;
5287
5606
  }
5288
5607
  }
@@ -5340,19 +5659,16 @@
5340
5659
  const rect = this._element.getBoundingClientRect();
5341
5660
  return rect.top >= 0 && rect.left >= 0 && Math.floor(rect.bottom) <= (window.innerHeight || document.documentElement.clientHeight) && Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth);
5342
5661
  }
5343
- _addClassName(className) {
5344
- this._element.classList.add(className);
5345
- }
5346
- _clickOutListener(event, sidebar) {
5662
+ _clickOutListener(event) {
5347
5663
  if (event.target.closest(SELECTOR_SIDEBAR) === null) {
5348
5664
  event.preventDefault();
5349
5665
  event.stopPropagation();
5350
- sidebar.hide();
5666
+ this.hide();
5351
5667
  }
5352
5668
  }
5353
5669
  _addClickOutListener() {
5354
5670
  EventHandler.on(document, EVENT_CLICK_DATA_API$1, event => {
5355
- this._clickOutListener(event, this);
5671
+ this._clickOutListener(event);
5356
5672
  });
5357
5673
  }
5358
5674
  _removeClickOutListener() {
@@ -5369,7 +5685,7 @@
5369
5685
  }
5370
5686
  EventHandler.on(this._element, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, event => {
5371
5687
  event.preventDefault();
5372
- const toggle = Manipulator.getDataAttribute(event.target, 'toggle');
5688
+ const toggle = Manipulator.getDataAttribute(event.target.closest(SELECTOR_DATA_TOGGLE$1), 'toggle');
5373
5689
  if (toggle === 'narrow') {
5374
5690
  this.toggleNarrow();
5375
5691
  }
@@ -5906,6 +6222,7 @@
5906
6222
  OffCanvas: Offcanvas,
5907
6223
  Popover,
5908
6224
  ScrollSpy,
6225
+ SearchButton,
5909
6226
  Sidebar,
5910
6227
  Tab,
5911
6228
  Toast,