@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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI v5.6.1 (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.1';
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 = 'bs.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 = 'bs.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 = 'bs.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-bs-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 = 'bs.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-bs-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 = '.bs.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 = '.bs.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 = 'bs.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 = 'bs.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-bs-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 = 'bs.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 = 'bs.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-bs-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 = 'bs.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 = 'bs.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-bs-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
@@ -2319,7 +2319,7 @@
2319
2319
  * Data API implementation
2320
2320
  */
2321
2321
 
2322
- EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$a}${DATA_API_KEY$7}`, () => {
2322
+ EventHandler.on(document, `DOMContentLoaded${EVENT_KEY$b}${DATA_API_KEY$8}`, () => {
2323
2323
  for (const element of SelectorEngine.find(SELECTOR_DATA_CHIP_INPUT)) {
2324
2324
  ChipInput.getOrCreateInstance(element);
2325
2325
  }
@@ -2340,15 +2340,15 @@
2340
2340
  * Constants
2341
2341
  */
2342
2342
 
2343
- const NAME$d = 'collapse';
2344
- const DATA_KEY$9 = 'bs.collapse';
2345
- const EVENT_KEY$9 = `.${DATA_KEY$9}`;
2346
- const DATA_API_KEY$6 = '.data-api';
2347
- const EVENT_SHOW$7 = `show${EVENT_KEY$9}`;
2348
- const EVENT_SHOWN$7 = `shown${EVENT_KEY$9}`;
2349
- const EVENT_HIDE$7 = `hide${EVENT_KEY$9}`;
2350
- const EVENT_HIDDEN$7 = `hidden${EVENT_KEY$9}`;
2351
- const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$9}${DATA_API_KEY$6}`;
2343
+ const NAME$e = 'collapse';
2344
+ const DATA_KEY$a = 'bs.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}`;
2352
2352
  const CLASS_NAME_SHOW$9 = 'show';
2353
2353
  const CLASS_NAME_COLLAPSE = 'collapse';
2354
2354
  const CLASS_NAME_COLLAPSING = 'collapsing';
@@ -2358,12 +2358,12 @@
2358
2358
  const WIDTH = 'width';
2359
2359
  const HEIGHT = 'height';
2360
2360
  const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
2361
- const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="collapse"]';
2362
- const Default$c = {
2361
+ const SELECTOR_DATA_TOGGLE$6 = '[data-bs-toggle="collapse"]';
2362
+ const Default$d = {
2363
2363
  parent: null,
2364
2364
  toggle: true
2365
2365
  };
2366
- const DefaultType$c = {
2366
+ const DefaultType$d = {
2367
2367
  parent: '(null|element)',
2368
2368
  toggle: 'boolean'
2369
2369
  };
@@ -2377,7 +2377,7 @@
2377
2377
  super(element, config);
2378
2378
  this._isTransitioning = false;
2379
2379
  this._triggerArray = [];
2380
- const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$5);
2380
+ const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$6);
2381
2381
  for (const elem of toggleList) {
2382
2382
  const selector = SelectorEngine.getSelectorFromElement(elem);
2383
2383
  const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);
@@ -2396,13 +2396,13 @@
2396
2396
 
2397
2397
  // Getters
2398
2398
  static get Default() {
2399
- return Default$c;
2399
+ return Default$d;
2400
2400
  }
2401
2401
  static get DefaultType() {
2402
- return DefaultType$c;
2402
+ return DefaultType$d;
2403
2403
  }
2404
2404
  static get NAME() {
2405
- return NAME$d;
2405
+ return NAME$e;
2406
2406
  }
2407
2407
 
2408
2408
  // Public
@@ -2499,7 +2499,7 @@
2499
2499
  if (!this._config.parent) {
2500
2500
  return;
2501
2501
  }
2502
- const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$5);
2502
+ const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$6);
2503
2503
  for (const element of children) {
2504
2504
  const selected = SelectorEngine.getElementFromSelector(element);
2505
2505
  if (selected) {
@@ -2544,7 +2544,7 @@
2544
2544
  * Data API implementation
2545
2545
  */
2546
2546
 
2547
- 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) {
2548
2548
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
2549
2549
  if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
2550
2550
  event.preventDefault();
@@ -2577,31 +2577,31 @@
2577
2577
  * Constants
2578
2578
  */
2579
2579
 
2580
- const NAME$c = 'dropdown';
2581
- const DATA_KEY$8 = 'bs.dropdown';
2582
- const EVENT_KEY$8 = `.${DATA_KEY$8}`;
2583
- const DATA_API_KEY$5 = '.data-api';
2580
+ const NAME$d = 'dropdown';
2581
+ const DATA_KEY$9 = 'bs.dropdown';
2582
+ const EVENT_KEY$9 = `.${DATA_KEY$9}`;
2583
+ const DATA_API_KEY$6 = '.data-api';
2584
2584
  const ESCAPE_KEY$2 = 'Escape';
2585
2585
  const TAB_KEY$1 = 'Tab';
2586
2586
  const ARROW_UP_KEY$1 = 'ArrowUp';
2587
2587
  const ARROW_DOWN_KEY$1 = 'ArrowDown';
2588
2588
  const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
2589
2589
 
2590
- const EVENT_HIDE$6 = `hide${EVENT_KEY$8}`;
2591
- const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$8}`;
2592
- const EVENT_SHOW$6 = `show${EVENT_KEY$8}`;
2593
- const EVENT_SHOWN$6 = `shown${EVENT_KEY$8}`;
2594
- const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
2595
- const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$8}${DATA_API_KEY$5}`;
2596
- 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}`;
2597
2597
  const CLASS_NAME_SHOW$8 = 'show';
2598
2598
  const CLASS_NAME_DROPUP = 'dropup';
2599
2599
  const CLASS_NAME_DROPEND = 'dropend';
2600
2600
  const CLASS_NAME_DROPSTART = 'dropstart';
2601
2601
  const CLASS_NAME_DROPUP_CENTER = 'dropup-center';
2602
2602
  const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';
2603
- const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
2604
- const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$4}.${CLASS_NAME_SHOW$8}`;
2603
+ const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
2604
+ const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$5}.${CLASS_NAME_SHOW$8}`;
2605
2605
  const SELECTOR_MENU = '.dropdown-menu';
2606
2606
  const SELECTOR_NAVBAR = '.navbar';
2607
2607
  const SELECTOR_NAVBAR_NAV = '.navbar-nav';
@@ -2614,7 +2614,7 @@
2614
2614
  const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';
2615
2615
  const PLACEMENT_TOPCENTER = 'top';
2616
2616
  const PLACEMENT_BOTTOMCENTER = 'bottom';
2617
- const Default$b = {
2617
+ const Default$c = {
2618
2618
  autoClose: true,
2619
2619
  boundary: 'clippingParents',
2620
2620
  display: 'dynamic',
@@ -2622,7 +2622,7 @@
2622
2622
  popperConfig: null,
2623
2623
  reference: 'toggle'
2624
2624
  };
2625
- const DefaultType$b = {
2625
+ const DefaultType$c = {
2626
2626
  autoClose: '(boolean|string)',
2627
2627
  boundary: '(string|element)',
2628
2628
  display: 'string',
@@ -2647,13 +2647,13 @@
2647
2647
 
2648
2648
  // Getters
2649
2649
  static get Default() {
2650
- return Default$b;
2650
+ return Default$c;
2651
2651
  }
2652
2652
  static get DefaultType() {
2653
- return DefaultType$b;
2653
+ return DefaultType$c;
2654
2654
  }
2655
2655
  static get NAME() {
2656
- return NAME$c;
2656
+ return NAME$d;
2657
2657
  }
2658
2658
 
2659
2659
  // Public
@@ -2737,7 +2737,7 @@
2737
2737
  config = super._getConfig(config);
2738
2738
  if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
2739
2739
  // Popper virtual elements require a getBoundingClientRect method
2740
- 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.`);
2741
2741
  }
2742
2742
  return config;
2743
2743
  }
@@ -2897,7 +2897,7 @@
2897
2897
  event.preventDefault();
2898
2898
 
2899
2899
  // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
2900
- 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);
2901
2901
  const instance = Dropdown.getOrCreateInstance(getToggleButton);
2902
2902
  if (isUpOrDownEvent) {
2903
2903
  event.stopPropagation();
@@ -2918,11 +2918,11 @@
2918
2918
  * Data API implementation
2919
2919
  */
2920
2920
 
2921
- EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$4, Dropdown.dataApiKeydownHandler);
2922
- EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
2923
- EventHandler.on(document, EVENT_CLICK_DATA_API$5, Dropdown.clearMenus);
2924
- EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
2925
- 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) {
2926
2926
  event.preventDefault();
2927
2927
  Dropdown.getOrCreateInstance(this).toggle();
2928
2928
  });
@@ -2948,11 +2948,11 @@
2948
2948
  * Constants
2949
2949
  */
2950
2950
 
2951
- const NAME$b = 'backdrop';
2951
+ const NAME$c = 'backdrop';
2952
2952
  const CLASS_NAME_FADE$4 = 'fade';
2953
2953
  const CLASS_NAME_SHOW$7 = 'show';
2954
- const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$b}`;
2955
- const Default$a = {
2954
+ const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$c}`;
2955
+ const Default$b = {
2956
2956
  className: 'modal-backdrop',
2957
2957
  clickCallback: null,
2958
2958
  isAnimated: false,
@@ -2960,7 +2960,7 @@
2960
2960
  // if false, we use the backdrop helper without adding any element to the dom
2961
2961
  rootElement: 'body' // give the choice to place backdrop under different elements
2962
2962
  };
2963
- const DefaultType$a = {
2963
+ const DefaultType$b = {
2964
2964
  className: 'string',
2965
2965
  clickCallback: '(function|null)',
2966
2966
  isAnimated: 'boolean',
@@ -2982,13 +2982,13 @@
2982
2982
 
2983
2983
  // Getters
2984
2984
  static get Default() {
2985
- return Default$a;
2985
+ return Default$b;
2986
2986
  }
2987
2987
  static get DefaultType() {
2988
- return DefaultType$a;
2988
+ return DefaultType$b;
2989
2989
  }
2990
2990
  static get NAME() {
2991
- return NAME$b;
2991
+ return NAME$c;
2992
2992
  }
2993
2993
 
2994
2994
  // Public
@@ -3075,19 +3075,19 @@
3075
3075
  * Constants
3076
3076
  */
3077
3077
 
3078
- const NAME$a = 'focustrap';
3079
- const DATA_KEY$7 = 'bs.focustrap';
3080
- const EVENT_KEY$7 = `.${DATA_KEY$7}`;
3081
- const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$7}`;
3082
- const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$7}`;
3078
+ const NAME$b = 'focustrap';
3079
+ const DATA_KEY$8 = 'bs.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}`;
3083
3083
  const TAB_KEY = 'Tab';
3084
3084
  const TAB_NAV_FORWARD = 'forward';
3085
3085
  const TAB_NAV_BACKWARD = 'backward';
3086
- const Default$9 = {
3086
+ const Default$a = {
3087
3087
  autofocus: true,
3088
3088
  trapElement: null // The element to trap focus inside of
3089
3089
  };
3090
- const DefaultType$9 = {
3090
+ const DefaultType$a = {
3091
3091
  autofocus: 'boolean',
3092
3092
  trapElement: 'element'
3093
3093
  };
@@ -3106,13 +3106,13 @@
3106
3106
 
3107
3107
  // Getters
3108
3108
  static get Default() {
3109
- return Default$9;
3109
+ return Default$a;
3110
3110
  }
3111
3111
  static get DefaultType() {
3112
- return DefaultType$9;
3112
+ return DefaultType$a;
3113
3113
  }
3114
3114
  static get NAME() {
3115
- return NAME$a;
3115
+ return NAME$b;
3116
3116
  }
3117
3117
 
3118
3118
  // Public
@@ -3123,7 +3123,7 @@
3123
3123
  if (this._config.autofocus) {
3124
3124
  this._config.trapElement.focus();
3125
3125
  }
3126
- EventHandler.off(document, EVENT_KEY$7); // guard against infinite focus loop
3126
+ EventHandler.off(document, EVENT_KEY$8); // guard against infinite focus loop
3127
3127
  EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));
3128
3128
  EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));
3129
3129
  this._isActive = true;
@@ -3133,7 +3133,7 @@
3133
3133
  return;
3134
3134
  }
3135
3135
  this._isActive = false;
3136
- EventHandler.off(document, EVENT_KEY$7);
3136
+ EventHandler.off(document, EVENT_KEY$8);
3137
3137
  }
3138
3138
 
3139
3139
  // Private
@@ -3277,21 +3277,21 @@
3277
3277
  * Constants
3278
3278
  */
3279
3279
 
3280
- const NAME$9 = 'modal';
3281
- const DATA_KEY$6 = 'bs.modal';
3282
- const EVENT_KEY$6 = `.${DATA_KEY$6}`;
3283
- const DATA_API_KEY$4 = '.data-api';
3280
+ const NAME$a = 'modal';
3281
+ const DATA_KEY$7 = 'bs.modal';
3282
+ const EVENT_KEY$7 = `.${DATA_KEY$7}`;
3283
+ const DATA_API_KEY$5 = '.data-api';
3284
3284
  const ESCAPE_KEY$1 = 'Escape';
3285
- const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
3286
- const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$6}`;
3287
- const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
3288
- const EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
3289
- const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
3290
- const EVENT_RESIZE$2 = `resize${EVENT_KEY$6}`;
3291
- const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$6}`;
3292
- const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$6}`;
3293
- const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$6}`;
3294
- 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}`;
3295
3295
  const CLASS_NAME_OPEN = 'modal-open';
3296
3296
  const CLASS_NAME_FADE$3 = 'fade';
3297
3297
  const CLASS_NAME_SHOW$6 = 'show';
@@ -3299,13 +3299,13 @@
3299
3299
  const OPEN_SELECTOR$1 = '.modal.show';
3300
3300
  const SELECTOR_DIALOG = '.modal-dialog';
3301
3301
  const SELECTOR_MODAL_BODY = '.modal-body';
3302
- const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="modal"]';
3303
- const Default$8 = {
3302
+ const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="modal"]';
3303
+ const Default$9 = {
3304
3304
  backdrop: true,
3305
3305
  focus: true,
3306
3306
  keyboard: true
3307
3307
  };
3308
- const DefaultType$8 = {
3308
+ const DefaultType$9 = {
3309
3309
  backdrop: '(boolean|string)',
3310
3310
  focus: 'boolean',
3311
3311
  keyboard: 'boolean'
@@ -3329,13 +3329,13 @@
3329
3329
 
3330
3330
  // Getters
3331
3331
  static get Default() {
3332
- return Default$8;
3332
+ return Default$9;
3333
3333
  }
3334
3334
  static get DefaultType() {
3335
- return DefaultType$8;
3335
+ return DefaultType$9;
3336
3336
  }
3337
3337
  static get NAME() {
3338
- return NAME$9;
3338
+ return NAME$a;
3339
3339
  }
3340
3340
 
3341
3341
  // Public
@@ -3374,8 +3374,8 @@
3374
3374
  this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
3375
3375
  }
3376
3376
  dispose() {
3377
- EventHandler.off(window, EVENT_KEY$6);
3378
- EventHandler.off(this._dialog, EVENT_KEY$6);
3377
+ EventHandler.off(window, EVENT_KEY$7);
3378
+ EventHandler.off(this._dialog, EVENT_KEY$7);
3379
3379
  this._backdrop.dispose();
3380
3380
  this._focustrap.deactivate();
3381
3381
  super.dispose();
@@ -3537,7 +3537,7 @@
3537
3537
  * Data API implementation
3538
3538
  */
3539
3539
 
3540
- 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) {
3541
3541
  const target = SelectorEngine.getElementFromSelector(this);
3542
3542
  if (['A', 'AREA'].includes(this.tagName)) {
3543
3543
  event.preventDefault();
@@ -3584,29 +3584,29 @@
3584
3584
  * ------------------------------------------------------------------------
3585
3585
  */
3586
3586
 
3587
- const NAME$8 = 'navigation';
3588
- const DATA_KEY$5 = 'bs.navigation';
3589
- const EVENT_KEY$5 = `.${DATA_KEY$5}`;
3590
- const DATA_API_KEY$3 = '.data-api';
3591
- const Default$7 = {
3587
+ const NAME$9 = 'navigation';
3588
+ const DATA_KEY$6 = 'bs.navigation';
3589
+ const EVENT_KEY$6 = `.${DATA_KEY$6}`;
3590
+ const DATA_API_KEY$4 = '.data-api';
3591
+ const Default$8 = {
3592
3592
  activeLinksExact: true,
3593
3593
  groupsAutoCollapse: true
3594
3594
  };
3595
- const DefaultType$7 = {
3595
+ const DefaultType$8 = {
3596
3596
  activeLinksExact: 'boolean',
3597
3597
  groupsAutoCollapse: '(string|boolean)'
3598
3598
  };
3599
- const CLASS_NAME_ACTIVE$2 = 'active';
3599
+ const CLASS_NAME_ACTIVE$3 = 'active';
3600
3600
  const CLASS_NAME_SHOW$5 = 'show';
3601
3601
  const CLASS_NAME_NAV_GROUP = 'nav-group';
3602
3602
  const CLASS_NAME_NAV_GROUP_TOGGLE = 'nav-group-toggle';
3603
- const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$5}${DATA_API_KEY$3}`;
3604
- 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}`;
3605
3605
  const SELECTOR_NAV_GROUP = '.nav-group';
3606
3606
  const SELECTOR_NAV_GROUP_ITEMS = '.nav-group-items';
3607
3607
  const SELECTOR_NAV_GROUP_TOGGLE = '.nav-group-toggle';
3608
3608
  const SELECTOR_NAV_LINK = '.nav-link';
3609
- const SELECTOR_DATA_NAVIGATION = '[data-bs="navigation"]';
3609
+ const SELECTOR_DATA_NAVIGATION = '[data-bs-navigation], [data-bs="navigation"]';
3610
3610
 
3611
3611
  /**
3612
3612
  * ------------------------------------------------------------------------
@@ -3620,21 +3620,21 @@
3620
3620
  this._config = this._getConfig(config);
3621
3621
  this._setActiveLink();
3622
3622
  this._addEventListeners();
3623
- Data.set(element, DATA_KEY$5, this);
3623
+ Data.set(element, DATA_KEY$6, this);
3624
3624
  }
3625
3625
  // Getters
3626
3626
 
3627
3627
  static get Default() {
3628
- return Default$7;
3628
+ return Default$8;
3629
3629
  }
3630
3630
  static get DATA_KEY() {
3631
- return DATA_KEY$5;
3631
+ return DATA_KEY$6;
3632
3632
  }
3633
3633
  static get DefaultType() {
3634
- return DefaultType$7;
3634
+ return DefaultType$8;
3635
3635
  }
3636
3636
  static get NAME() {
3637
- return NAME$8;
3637
+ return NAME$9;
3638
3638
  }
3639
3639
 
3640
3640
  // Private
@@ -3655,7 +3655,7 @@
3655
3655
  currentUrl = currentUrl.split('#')[0];
3656
3656
  }
3657
3657
  if (this._config.activeLinksExact && element.href === currentUrl) {
3658
- element.classList.add(CLASS_NAME_ACTIVE$2);
3658
+ element.classList.add(CLASS_NAME_ACTIVE$3);
3659
3659
  // eslint-disable-next-line unicorn/no-array-for-each
3660
3660
  Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {
3661
3661
  element.classList.add(CLASS_NAME_SHOW$5);
@@ -3663,7 +3663,7 @@
3663
3663
  });
3664
3664
  }
3665
3665
  if (!this._config.activeLinksExact && currentUrl.startsWith(element.href)) {
3666
- element.classList.add(CLASS_NAME_ACTIVE$2);
3666
+ element.classList.add(CLASS_NAME_ACTIVE$3);
3667
3667
  // eslint-disable-next-line unicorn/no-array-for-each
3668
3668
  Array.from(this._getParents(element, SELECTOR_NAV_GROUP)).forEach(element => {
3669
3669
  element.classList.add(CLASS_NAME_SHOW$5);
@@ -3771,7 +3771,7 @@
3771
3771
  this._slideDown(SelectorEngine.findOne(SELECTOR_NAV_GROUP_ITEMS, toggler.parentNode));
3772
3772
  }
3773
3773
  _addEventListeners() {
3774
- 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 => {
3775
3775
  event.preventDefault();
3776
3776
  this._toggleGroupItems(event, this);
3777
3777
  });
@@ -3830,32 +3830,32 @@
3830
3830
  * Constants
3831
3831
  */
3832
3832
 
3833
- const NAME$7 = 'offcanvas';
3834
- const DATA_KEY$4 = 'bs.offcanvas';
3835
- const EVENT_KEY$4 = `.${DATA_KEY$4}`;
3836
- const DATA_API_KEY$2 = '.data-api';
3837
- const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$4}${DATA_API_KEY$2}`;
3833
+ const NAME$8 = 'offcanvas';
3834
+ const DATA_KEY$5 = 'bs.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}`;
3838
3838
  const ESCAPE_KEY = 'Escape';
3839
3839
  const CLASS_NAME_SHOW$4 = 'show';
3840
3840
  const CLASS_NAME_SHOWING$1 = 'showing';
3841
3841
  const CLASS_NAME_HIDING = 'hiding';
3842
3842
  const CLASS_NAME_BACKDROP$1 = 'offcanvas-backdrop';
3843
3843
  const OPEN_SELECTOR = '.offcanvas.show';
3844
- const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
3845
- const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
3846
- const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
3847
- const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$4}`;
3848
- const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
3849
- const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
3850
- const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
3851
- const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$4}`;
3852
- const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="offcanvas"]';
3853
- 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-bs-toggle="offcanvas"]';
3853
+ const Default$7 = {
3854
3854
  backdrop: true,
3855
3855
  keyboard: true,
3856
3856
  scroll: false
3857
3857
  };
3858
- const DefaultType$6 = {
3858
+ const DefaultType$7 = {
3859
3859
  backdrop: '(boolean|string)',
3860
3860
  keyboard: 'boolean',
3861
3861
  scroll: 'boolean'
@@ -3876,13 +3876,13 @@
3876
3876
 
3877
3877
  // Getters
3878
3878
  static get Default() {
3879
- return Default$6;
3879
+ return Default$7;
3880
3880
  }
3881
3881
  static get DefaultType() {
3882
- return DefaultType$6;
3882
+ return DefaultType$7;
3883
3883
  }
3884
3884
  static get NAME() {
3885
- return NAME$7;
3885
+ return NAME$8;
3886
3886
  }
3887
3887
 
3888
3888
  // Public
@@ -4006,7 +4006,7 @@
4006
4006
  * Data API implementation
4007
4007
  */
4008
4008
 
4009
- 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) {
4010
4010
  const target = SelectorEngine.getElementFromSelector(this);
4011
4011
  if (['A', 'AREA'].includes(this.tagName)) {
4012
4012
  event.preventDefault();
@@ -4162,8 +4162,8 @@
4162
4162
  * Constants
4163
4163
  */
4164
4164
 
4165
- const NAME$6 = 'TemplateFactory';
4166
- const Default$5 = {
4165
+ const NAME$7 = 'TemplateFactory';
4166
+ const Default$6 = {
4167
4167
  allowList: DefaultAllowlist,
4168
4168
  content: {},
4169
4169
  // { selector : text , selector2 : text2 , }
@@ -4173,7 +4173,7 @@
4173
4173
  sanitizeFn: null,
4174
4174
  template: '<div></div>'
4175
4175
  };
4176
- const DefaultType$5 = {
4176
+ const DefaultType$6 = {
4177
4177
  allowList: 'object',
4178
4178
  content: 'object',
4179
4179
  extraClass: '(string|function)',
@@ -4199,13 +4199,13 @@
4199
4199
 
4200
4200
  // Getters
4201
4201
  static get Default() {
4202
- return Default$5;
4202
+ return Default$6;
4203
4203
  }
4204
4204
  static get DefaultType() {
4205
- return DefaultType$5;
4205
+ return DefaultType$6;
4206
4206
  }
4207
4207
  static get NAME() {
4208
- return NAME$6;
4208
+ return NAME$7;
4209
4209
  }
4210
4210
 
4211
4211
  // Public
@@ -4301,7 +4301,7 @@
4301
4301
  * Constants
4302
4302
  */
4303
4303
 
4304
- const NAME$5 = 'tooltip';
4304
+ const NAME$6 = 'tooltip';
4305
4305
  const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
4306
4306
  const CLASS_NAME_FADE$2 = 'fade';
4307
4307
  const CLASS_NAME_MODAL = 'modal';
@@ -4330,7 +4330,7 @@
4330
4330
  BOTTOM: 'bottom',
4331
4331
  LEFT: isRTL() ? 'right' : 'left'
4332
4332
  };
4333
- const Default$4 = {
4333
+ const Default$5 = {
4334
4334
  allowList: DefaultAllowlist,
4335
4335
  animation: true,
4336
4336
  boundary: 'clippingParents',
@@ -4349,7 +4349,7 @@
4349
4349
  title: '',
4350
4350
  trigger: 'hover focus'
4351
4351
  };
4352
- const DefaultType$4 = {
4352
+ const DefaultType$5 = {
4353
4353
  allowList: 'object',
4354
4354
  animation: 'boolean',
4355
4355
  boundary: '(string|element)',
@@ -4399,13 +4399,13 @@
4399
4399
 
4400
4400
  // Getters
4401
4401
  static get Default() {
4402
- return Default$4;
4402
+ return Default$5;
4403
4403
  }
4404
4404
  static get DefaultType() {
4405
- return DefaultType$4;
4405
+ return DefaultType$5;
4406
4406
  }
4407
4407
  static get NAME() {
4408
- return NAME$5;
4408
+ return NAME$6;
4409
4409
  }
4410
4410
 
4411
4411
  // Public
@@ -4816,10 +4816,10 @@
4816
4816
  * Constants
4817
4817
  */
4818
4818
 
4819
- const NAME$4 = 'popover';
4819
+ const NAME$5 = 'popover';
4820
4820
  const SELECTOR_TITLE = '.popover-header';
4821
4821
  const SELECTOR_CONTENT = '.popover-body';
4822
- const Default$3 = {
4822
+ const Default$4 = {
4823
4823
  ...Tooltip.Default,
4824
4824
  content: '',
4825
4825
  offset: [0, 8],
@@ -4827,7 +4827,7 @@
4827
4827
  template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>',
4828
4828
  trigger: 'click'
4829
4829
  };
4830
- const DefaultType$3 = {
4830
+ const DefaultType$4 = {
4831
4831
  ...Tooltip.DefaultType,
4832
4832
  content: '(null|string|element|function)'
4833
4833
  };
@@ -4839,13 +4839,13 @@
4839
4839
  class Popover extends Tooltip {
4840
4840
  // Getters
4841
4841
  static get Default() {
4842
- return Default$3;
4842
+ return Default$4;
4843
4843
  }
4844
4844
  static get DefaultType() {
4845
- return DefaultType$3;
4845
+ return DefaultType$4;
4846
4846
  }
4847
4847
  static get NAME() {
4848
- return NAME$4;
4848
+ return NAME$5;
4849
4849
  }
4850
4850
 
4851
4851
  // Overrides
@@ -4900,15 +4900,15 @@
4900
4900
  * Constants
4901
4901
  */
4902
4902
 
4903
- const NAME$3 = 'scrollspy';
4904
- const DATA_KEY$3 = 'bs.scrollspy';
4905
- const EVENT_KEY$3 = `.${DATA_KEY$3}`;
4906
- const DATA_API_KEY$1 = '.data-api';
4907
- const EVENT_ACTIVATE = `activate${EVENT_KEY$3}`;
4908
- const EVENT_CLICK = `click${EVENT_KEY$3}`;
4909
- const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
4903
+ const NAME$4 = 'scrollspy';
4904
+ const DATA_KEY$4 = 'bs.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}`;
4910
4910
  const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
4911
- const CLASS_NAME_ACTIVE$1 = 'active';
4911
+ const CLASS_NAME_ACTIVE$2 = 'active';
4912
4912
  const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
4913
4913
  const SELECTOR_TARGET_LINKS = '[href]';
4914
4914
  const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
@@ -4918,7 +4918,7 @@
4918
4918
  const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
4919
4919
  const SELECTOR_DROPDOWN = '.dropdown';
4920
4920
  const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
4921
- const Default$2 = {
4921
+ const Default$3 = {
4922
4922
  offset: null,
4923
4923
  // TODO: v6 @deprecated, keep it for backwards compatibility reasons
4924
4924
  rootMargin: '0px 0px -25%',
@@ -4926,7 +4926,7 @@
4926
4926
  target: null,
4927
4927
  threshold: [0.1, 0.5, 1]
4928
4928
  };
4929
- const DefaultType$2 = {
4929
+ const DefaultType$3 = {
4930
4930
  offset: '(number|null)',
4931
4931
  // TODO v6 @deprecated, keep it for backwards compatibility reasons
4932
4932
  rootMargin: 'string',
@@ -4958,13 +4958,13 @@
4958
4958
 
4959
4959
  // Getters
4960
4960
  static get Default() {
4961
- return Default$2;
4961
+ return Default$3;
4962
4962
  }
4963
4963
  static get DefaultType() {
4964
- return DefaultType$2;
4964
+ return DefaultType$3;
4965
4965
  }
4966
4966
  static get NAME() {
4967
- return NAME$3;
4967
+ return NAME$4;
4968
4968
  }
4969
4969
 
4970
4970
  // Public
@@ -5089,7 +5089,7 @@
5089
5089
  }
5090
5090
  this._clearActiveClass(this._config.target);
5091
5091
  this._activeTarget = target;
5092
- target.classList.add(CLASS_NAME_ACTIVE$1);
5092
+ target.classList.add(CLASS_NAME_ACTIVE$2);
5093
5093
  this._activateParents(target);
5094
5094
  EventHandler.trigger(this._element, EVENT_ACTIVATE, {
5095
5095
  relatedTarget: target
@@ -5098,22 +5098,22 @@
5098
5098
  _activateParents(target) {
5099
5099
  // Activate dropdown parents
5100
5100
  if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
5101
- 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);
5102
5102
  return;
5103
5103
  }
5104
5104
  for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
5105
5105
  // Set triggered links parents as active
5106
5106
  // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
5107
5107
  for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
5108
- item.classList.add(CLASS_NAME_ACTIVE$1);
5108
+ item.classList.add(CLASS_NAME_ACTIVE$2);
5109
5109
  }
5110
5110
  }
5111
5111
  }
5112
5112
  _clearActiveClass(parent) {
5113
- parent.classList.remove(CLASS_NAME_ACTIVE$1);
5114
- 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);
5115
5115
  for (const node of activeNodes) {
5116
- node.classList.remove(CLASS_NAME_ACTIVE$1);
5116
+ node.classList.remove(CLASS_NAME_ACTIVE$2);
5117
5117
  }
5118
5118
  }
5119
5119
 
@@ -5148,6 +5148,327 @@
5148
5148
 
5149
5149
  defineJQueryPlugin(ScrollSpy);
5150
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 = 'bs.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-bs-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.bsSearchButtonKey = 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.bsSearchButtonKey));
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
+
5151
5472
  /**
5152
5473
  * --------------------------------------------------------------------------
5153
5474
  * CoreUI sidebar.js
@@ -5274,13 +5595,13 @@
5274
5595
  }
5275
5596
  narrow() {
5276
5597
  if (!this._isMobile()) {
5277
- this._addClassName(CLASS_NAME_SIDEBAR_NARROW);
5598
+ this._element.classList.add(CLASS_NAME_SIDEBAR_NARROW);
5278
5599
  this._narrow = true;
5279
5600
  }
5280
5601
  }
5281
5602
  unfoldable() {
5282
5603
  if (!this._isMobile()) {
5283
- this._addClassName(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE);
5604
+ this._element.classList.add(CLASS_NAME_SIDEBAR_NARROW_UNFOLDABLE);
5284
5605
  this._unfoldable = true;
5285
5606
  }
5286
5607
  }
@@ -5338,19 +5659,16 @@
5338
5659
  const rect = this._element.getBoundingClientRect();
5339
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);
5340
5661
  }
5341
- _addClassName(className) {
5342
- this._element.classList.add(className);
5343
- }
5344
- _clickOutListener(event, sidebar) {
5662
+ _clickOutListener(event) {
5345
5663
  if (event.target.closest(SELECTOR_SIDEBAR) === null) {
5346
5664
  event.preventDefault();
5347
5665
  event.stopPropagation();
5348
- sidebar.hide();
5666
+ this.hide();
5349
5667
  }
5350
5668
  }
5351
5669
  _addClickOutListener() {
5352
5670
  EventHandler.on(document, EVENT_CLICK_DATA_API$1, event => {
5353
- this._clickOutListener(event, this);
5671
+ this._clickOutListener(event);
5354
5672
  });
5355
5673
  }
5356
5674
  _removeClickOutListener() {
@@ -5367,7 +5685,7 @@
5367
5685
  }
5368
5686
  EventHandler.on(this._element, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, event => {
5369
5687
  event.preventDefault();
5370
- const toggle = Manipulator.getDataAttribute(event.target, 'toggle');
5688
+ const toggle = Manipulator.getDataAttribute(event.target.closest(SELECTOR_DATA_TOGGLE$1), 'toggle');
5371
5689
  if (toggle === 'narrow') {
5372
5690
  this.toggleNarrow();
5373
5691
  }
@@ -5904,6 +6222,7 @@
5904
6222
  OffCanvas: Offcanvas,
5905
6223
  Popover,
5906
6224
  ScrollSpy,
6225
+ SearchButton,
5907
6226
  Sidebar,
5908
6227
  Tab,
5909
6228
  Toast,