@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
@@ -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
  */
@@ -662,7 +662,7 @@ class Config {
662
662
  * Constants
663
663
  */
664
664
 
665
- const VERSION = '4.3.0-alpha.0';
665
+ const VERSION = '4.3.0';
666
666
 
667
667
  /**
668
668
  * Class definition
@@ -3229,34 +3229,6 @@ defineJQueryPlugin(Offcanvas);
3229
3229
  * --------------------------------------------------------------------------
3230
3230
  */
3231
3231
 
3232
- const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
3233
-
3234
- /**
3235
- * A pattern that recognizes a commonly useful subset of URLs that are safe.
3236
- *
3237
- * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
3238
- */
3239
- const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
3240
-
3241
- /**
3242
- * A pattern that matches safe data URLs. Only matches image, video and audio types.
3243
- *
3244
- * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
3245
- */
3246
- 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;
3247
- const allowedAttribute = (attribute, allowedAttributeList) => {
3248
- const attributeName = attribute.nodeName.toLowerCase();
3249
- if (allowedAttributeList.includes(attributeName)) {
3250
- if (uriAttributes.has(attributeName)) {
3251
- return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));
3252
- }
3253
- return true;
3254
- }
3255
-
3256
- // Check if a regular expression validates the attribute.
3257
- return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
3258
- };
3259
-
3260
3232
  // js-docs-start allow-list
3261
3233
  const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
3262
3234
  const DefaultAllowlist = {
@@ -3294,6 +3266,28 @@ const DefaultAllowlist = {
3294
3266
  };
3295
3267
  // js-docs-end allow-list
3296
3268
 
3269
+ const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
3270
+
3271
+ /**
3272
+ * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation
3273
+ * contexts.
3274
+ *
3275
+ * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
3276
+ */
3277
+ // eslint-disable-next-line unicorn/better-regex
3278
+ const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
3279
+ const allowedAttribute = (attribute, allowedAttributeList) => {
3280
+ const attributeName = attribute.nodeName.toLowerCase();
3281
+ if (allowedAttributeList.includes(attributeName)) {
3282
+ if (uriAttributes.has(attributeName)) {
3283
+ return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
3284
+ }
3285
+ return true;
3286
+ }
3287
+
3288
+ // Check if a regular expression validates the attribute.
3289
+ return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
3290
+ };
3297
3291
  function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
3298
3292
  if (!unsafeHtml.length) {
3299
3293
  return unsafeHtml;
@@ -4248,11 +4242,11 @@ class ScrollSpy extends BaseComponent {
4248
4242
  if (!anchor.hash || isDisabled(anchor)) {
4249
4243
  continue;
4250
4244
  }
4251
- const observableSection = SelectorEngine.findOne(anchor.hash, this._element);
4245
+ const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
4252
4246
 
4253
4247
  // ensure that the observableSection exists & is visible
4254
4248
  if (isVisible(observableSection)) {
4255
- this._targetLinks.set(anchor.hash, anchor);
4249
+ this._targetLinks.set(decodeURI(anchor.hash), anchor);
4256
4250
  this._observableSections.set(anchor.hash, observableSection);
4257
4251
  }
4258
4252
  }
@@ -4632,6 +4626,8 @@ const ARROW_LEFT_KEY = 'ArrowLeft';
4632
4626
  const ARROW_RIGHT_KEY = 'ArrowRight';
4633
4627
  const ARROW_UP_KEY = 'ArrowUp';
4634
4628
  const ARROW_DOWN_KEY = 'ArrowDown';
4629
+ const HOME_KEY = 'Home';
4630
+ const END_KEY = 'End';
4635
4631
  const CLASS_NAME_ACTIVE = 'active';
4636
4632
  const CLASS_NAME_FADE$1 = 'fade';
4637
4633
  const CLASS_NAME_SHOW$1 = 'show';
@@ -4738,13 +4734,19 @@ class Tab extends BaseComponent {
4738
4734
  this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
4739
4735
  }
4740
4736
  _keydown(event) {
4741
- if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {
4737
+ if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
4742
4738
  return;
4743
4739
  }
4744
4740
  event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
4745
4741
  event.preventDefault();
4746
- const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
4747
- const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true);
4742
+ const children = this._getChildren().filter(element => !isDisabled(element));
4743
+ let nextActiveElement;
4744
+ if ([HOME_KEY, END_KEY].includes(event.key)) {
4745
+ nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
4746
+ } else {
4747
+ const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
4748
+ nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
4749
+ }
4748
4750
  if (nextActiveElement) {
4749
4751
  nextActiveElement.focus({
4750
4752
  preventScroll: true