@coreui/coreui 4.3.0-alpha.0 → 4.3.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 (127) hide show
  1. package/README.md +2 -2
  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 +2 -2
  7. package/dist/css/coreui-grid.rtl.css.map +1 -1
  8. package/dist/css/coreui-grid.rtl.min.css +2 -2
  9. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  10. package/dist/css/coreui-reboot.css +44 -149
  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 +45 -150
  15. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  16. package/dist/css/coreui-reboot.rtl.min.css +3 -3
  17. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  18. package/dist/css/coreui-utilities.css +81 -366
  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 +78 -363
  23. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  24. package/dist/css/coreui-utilities.rtl.min.css +3 -3
  25. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  26. package/dist/css/coreui.css +523 -1112
  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 +537 -1140
  31. package/dist/css/coreui.rtl.css.map +1 -1
  32. package/dist/css/coreui.rtl.min.css +3 -3
  33. package/dist/css/coreui.rtl.min.css.map +1 -1
  34. package/dist/js/coreui.bundle.js +43 -47
  35. package/dist/js/coreui.bundle.js.map +1 -1
  36. package/dist/js/coreui.bundle.min.js +2 -2
  37. package/dist/js/coreui.bundle.min.js.map +1 -1
  38. package/dist/js/coreui.esm.js +37 -35
  39. package/dist/js/coreui.esm.js.map +1 -1
  40. package/dist/js/coreui.esm.min.js +2 -2
  41. package/dist/js/coreui.esm.min.js.map +1 -1
  42. package/dist/js/coreui.js +37 -35
  43. package/dist/js/coreui.js.map +1 -1
  44. package/dist/js/coreui.min.js +2 -2
  45. package/dist/js/coreui.min.js.map +1 -1
  46. package/js/dist/alert.js +1 -1
  47. package/js/dist/base-component.js +2 -2
  48. package/js/dist/base-component.js.map +1 -1
  49. package/js/dist/button.js +1 -1
  50. package/js/dist/carousel.js +1 -1
  51. package/js/dist/collapse.js +1 -1
  52. package/js/dist/dom/data.js +1 -1
  53. package/js/dist/dom/event-handler.js +1 -1
  54. package/js/dist/dom/manipulator.js +1 -1
  55. package/js/dist/dom/selector-engine.js +1 -1
  56. package/js/dist/dropdown.js +1 -1
  57. package/js/dist/modal.js +1 -1
  58. package/js/dist/navigation.js +1 -1
  59. package/js/dist/offcanvas.js +1 -1
  60. package/js/dist/popover.js +1 -1
  61. package/js/dist/scrollspy.js +3 -3
  62. package/js/dist/scrollspy.js.map +1 -1
  63. package/js/dist/sidebar.js +1 -1
  64. package/js/dist/tab.js +12 -4
  65. package/js/dist/tab.js.map +1 -1
  66. package/js/dist/toast.js +1 -1
  67. package/js/dist/tooltip.js +1 -1
  68. package/js/dist/util/backdrop.js +1 -1
  69. package/js/dist/util/component-functions.js +1 -1
  70. package/js/dist/util/config.js +1 -1
  71. package/js/dist/util/focustrap.js +1 -1
  72. package/js/dist/util/index.js +1 -1
  73. package/js/dist/util/sanitizer.js +23 -29
  74. package/js/dist/util/sanitizer.js.map +1 -1
  75. package/js/dist/util/scrollbar.js +1 -1
  76. package/js/dist/util/swipe.js +1 -1
  77. package/js/dist/util/template-factory.js +1 -1
  78. package/js/src/base-component.js +1 -1
  79. package/js/src/scrollspy.js +2 -2
  80. package/js/src/tab.js +13 -3
  81. package/js/src/util/sanitizer.js +36 -41
  82. package/package.json +35 -47
  83. package/scss/_accordion.scss +0 -9
  84. package/scss/_alert.scss +5 -5
  85. package/scss/_button-group.scss +3 -3
  86. package/scss/_buttons.scss +0 -22
  87. package/scss/_card.scss +3 -3
  88. package/scss/_carousel.scss +8 -24
  89. package/scss/_close.scss +1 -13
  90. package/scss/_dropdown.scss +4 -4
  91. package/scss/_functions.scss +22 -6
  92. package/scss/_list-group.scss +2 -11
  93. package/scss/_maps.scss +0 -123
  94. package/scss/_mixins.scss +1 -1
  95. package/scss/_nav.scss +2 -17
  96. package/scss/_navbar.scss +1 -10
  97. package/scss/_reboot.scss +4 -4
  98. package/scss/_root.scss +11 -93
  99. package/scss/_tooltip.scss +1 -1
  100. package/scss/_type.scss +1 -1
  101. package/scss/_utilities.scss +0 -16
  102. package/scss/_variables.scss +162 -115
  103. package/scss/coreui-grid.rtl.scss +1 -1
  104. package/scss/coreui-grid.scss +0 -1
  105. package/scss/coreui-reboot.rtl.scss +1 -1
  106. package/scss/coreui-reboot.scss +0 -1
  107. package/scss/coreui-utilities.rtl.scss +1 -1
  108. package/scss/coreui-utilities.scss +0 -1
  109. package/scss/coreui.scss +0 -1
  110. package/scss/forms/_floating-labels.scss +3 -2
  111. package/scss/forms/_form-check.scss +12 -20
  112. package/scss/forms/_form-control.scss +14 -11
  113. package/scss/forms/_form-range.scss +11 -11
  114. package/scss/forms/_form-select.scss +9 -16
  115. package/scss/forms/_form-text.scss +1 -1
  116. package/scss/forms/_labels.scss +2 -2
  117. package/scss/helpers/_color-bg.scss +1 -14
  118. package/scss/helpers/_vr.scss +1 -1
  119. package/scss/mixins/_banner.scss +1 -1
  120. package/scss/mixins/_caret.scss +3 -3
  121. package/scss/mixins/_list-group.scss +0 -1
  122. package/scss/mixins/_utilities.scss +15 -35
  123. package/scss/sidebar/_sidebar.scss +2 -10
  124. package/js/index.esm.js +0 -21
  125. package/js/index.umd.js +0 -38
  126. package/scss/_variables-dark.scss +0 -169
  127. package/scss/mixins/_color-mode.scss +0 -21
package/dist/js/coreui.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * CoreUI v4.3.0-alpha.0 (https://coreui.io)
2
+ * CoreUI v4.3.0 (https://coreui.io)
3
3
  * Copyright 2023 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
5
5
  */
@@ -685,7 +685,7 @@
685
685
  * Constants
686
686
  */
687
687
 
688
- const VERSION = '4.3.0-alpha.0';
688
+ const VERSION = '4.3.0';
689
689
 
690
690
  /**
691
691
  * Class definition
@@ -3252,34 +3252,6 @@
3252
3252
  * --------------------------------------------------------------------------
3253
3253
  */
3254
3254
 
3255
- const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
3256
-
3257
- /**
3258
- * A pattern that recognizes a commonly useful subset of URLs that are safe.
3259
- *
3260
- * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
3261
- */
3262
- const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
3263
-
3264
- /**
3265
- * A pattern that matches safe data URLs. Only matches image, video and audio types.
3266
- *
3267
- * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
3268
- */
3269
- const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
3270
- const allowedAttribute = (attribute, allowedAttributeList) => {
3271
- const attributeName = attribute.nodeName.toLowerCase();
3272
- if (allowedAttributeList.includes(attributeName)) {
3273
- if (uriAttributes.has(attributeName)) {
3274
- return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));
3275
- }
3276
- return true;
3277
- }
3278
-
3279
- // Check if a regular expression validates the attribute.
3280
- return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
3281
- };
3282
-
3283
3255
  // js-docs-start allow-list
3284
3256
  const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
3285
3257
  const DefaultAllowlist = {
@@ -3317,6 +3289,28 @@
3317
3289
  };
3318
3290
  // js-docs-end allow-list
3319
3291
 
3292
+ const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
3293
+
3294
+ /**
3295
+ * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation
3296
+ * contexts.
3297
+ *
3298
+ * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
3299
+ */
3300
+ // eslint-disable-next-line unicorn/better-regex
3301
+ const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
3302
+ const allowedAttribute = (attribute, allowedAttributeList) => {
3303
+ const attributeName = attribute.nodeName.toLowerCase();
3304
+ if (allowedAttributeList.includes(attributeName)) {
3305
+ if (uriAttributes.has(attributeName)) {
3306
+ return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
3307
+ }
3308
+ return true;
3309
+ }
3310
+
3311
+ // Check if a regular expression validates the attribute.
3312
+ return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
3313
+ };
3320
3314
  function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
3321
3315
  if (!unsafeHtml.length) {
3322
3316
  return unsafeHtml;
@@ -4271,11 +4265,11 @@
4271
4265
  if (!anchor.hash || isDisabled(anchor)) {
4272
4266
  continue;
4273
4267
  }
4274
- const observableSection = SelectorEngine.findOne(anchor.hash, this._element);
4268
+ const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
4275
4269
 
4276
4270
  // ensure that the observableSection exists & is visible
4277
4271
  if (isVisible(observableSection)) {
4278
- this._targetLinks.set(anchor.hash, anchor);
4272
+ this._targetLinks.set(decodeURI(anchor.hash), anchor);
4279
4273
  this._observableSections.set(anchor.hash, observableSection);
4280
4274
  }
4281
4275
  }
@@ -4655,6 +4649,8 @@
4655
4649
  const ARROW_RIGHT_KEY = 'ArrowRight';
4656
4650
  const ARROW_UP_KEY = 'ArrowUp';
4657
4651
  const ARROW_DOWN_KEY = 'ArrowDown';
4652
+ const HOME_KEY = 'Home';
4653
+ const END_KEY = 'End';
4658
4654
  const CLASS_NAME_ACTIVE = 'active';
4659
4655
  const CLASS_NAME_FADE$1 = 'fade';
4660
4656
  const CLASS_NAME_SHOW$1 = 'show';
@@ -4761,13 +4757,19 @@
4761
4757
  this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
4762
4758
  }
4763
4759
  _keydown(event) {
4764
- if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {
4760
+ if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
4765
4761
  return;
4766
4762
  }
4767
4763
  event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
4768
4764
  event.preventDefault();
4769
- const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
4770
- const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true);
4765
+ const children = this._getChildren().filter(element => !isDisabled(element));
4766
+ let nextActiveElement;
4767
+ if ([HOME_KEY, END_KEY].includes(event.key)) {
4768
+ nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
4769
+ } else {
4770
+ const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
4771
+ nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
4772
+ }
4771
4773
  if (nextActiveElement) {
4772
4774
  nextActiveElement.focus({
4773
4775
  preventScroll: true