@openeuropa/bcl-bootstrap 0.25.1 → 0.26.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 (142) hide show
  1. package/bootstrap-icons.svg +1 -1
  2. package/icons/apple.svg +2 -2
  3. package/icons/boombox-fill.svg +2 -2
  4. package/icons/cup-fill.svg +1 -1
  5. package/icons/cup.svg +1 -1
  6. package/js/dist/alert.js +3 -12
  7. package/js/dist/alert.js.map +1 -1
  8. package/js/dist/base-component.js +32 -18
  9. package/js/dist/base-component.js.map +1 -1
  10. package/js/dist/button.js +3 -12
  11. package/js/dist/button.js.map +1 -1
  12. package/js/dist/carousel.js +207 -307
  13. package/js/dist/carousel.js.map +1 -1
  14. package/js/dist/collapse.js +57 -88
  15. package/js/dist/collapse.js.map +1 -1
  16. package/js/dist/dom/data.js +1 -3
  17. package/js/dist/dom/data.js.map +1 -1
  18. package/js/dist/dom/event-handler.js +87 -106
  19. package/js/dist/dom/event-handler.js.map +1 -1
  20. package/js/dist/dom/manipulator.js +21 -25
  21. package/js/dist/dom/manipulator.js.map +1 -1
  22. package/js/dist/dom/selector-engine.js +11 -10
  23. package/js/dist/dom/selector-engine.js.map +1 -1
  24. package/js/dist/dropdown.js +83 -115
  25. package/js/dist/dropdown.js.map +1 -1
  26. package/js/dist/modal.js +95 -152
  27. package/js/dist/modal.js.map +1 -1
  28. package/js/dist/offcanvas.js +75 -58
  29. package/js/dist/offcanvas.js.map +1 -1
  30. package/js/dist/popover.js +29 -56
  31. package/js/dist/popover.js.map +1 -1
  32. package/js/dist/scrollspy.js +176 -125
  33. package/js/dist/scrollspy.js.map +1 -1
  34. package/js/dist/tab.js +207 -92
  35. package/js/dist/tab.js.map +1 -1
  36. package/js/dist/toast.js +23 -37
  37. package/js/dist/toast.js.map +1 -1
  38. package/js/dist/tooltip.js +259 -348
  39. package/js/dist/tooltip.js.map +1 -1
  40. package/js/dist/util/backdrop.js +62 -39
  41. package/js/dist/util/backdrop.js.map +1 -1
  42. package/js/dist/util/component-functions.js +1 -1
  43. package/js/dist/util/component-functions.js.map +1 -1
  44. package/js/dist/util/config.js +75 -0
  45. package/js/dist/util/config.js.map +1 -0
  46. package/js/dist/util/focustrap.js +41 -34
  47. package/js/dist/util/focustrap.js.map +1 -1
  48. package/js/dist/util/index.js +56 -52
  49. package/js/dist/util/index.js.map +1 -1
  50. package/js/dist/util/sanitizer.js +12 -19
  51. package/js/dist/util/sanitizer.js.map +1 -1
  52. package/js/dist/util/scrollbar.js +49 -34
  53. package/js/dist/util/scrollbar.js.map +1 -1
  54. package/js/dist/util/swipe.js +151 -0
  55. package/js/dist/util/swipe.js.map +1 -0
  56. package/js/dist/util/template-factory.js +173 -0
  57. package/js/dist/util/template-factory.js.map +1 -0
  58. package/js/src/alert.js +3 -15
  59. package/js/src/base-component.js +28 -18
  60. package/js/src/button.js +3 -17
  61. package/js/src/carousel.js +203 -319
  62. package/js/src/collapse.js +61 -94
  63. package/js/src/dom/data.js +1 -3
  64. package/js/src/dom/event-handler.js +80 -108
  65. package/js/src/dom/manipulator.js +22 -31
  66. package/js/src/dom/selector-engine.js +10 -19
  67. package/js/src/dropdown.js +84 -138
  68. package/js/src/modal.js +94 -158
  69. package/js/src/offcanvas.js +72 -61
  70. package/js/src/popover.js +31 -62
  71. package/js/src/scrollspy.js +166 -171
  72. package/js/src/tab.js +193 -110
  73. package/js/src/toast.js +19 -41
  74. package/js/src/tooltip.js +259 -371
  75. package/js/src/util/backdrop.js +55 -36
  76. package/js/src/util/component-functions.js +1 -1
  77. package/js/src/util/config.js +66 -0
  78. package/js/src/util/focustrap.js +38 -28
  79. package/js/src/util/index.js +67 -64
  80. package/js/src/util/sanitizer.js +11 -19
  81. package/js/src/util/scrollbar.js +47 -30
  82. package/js/src/util/swipe.js +146 -0
  83. package/js/src/util/template-factory.js +160 -0
  84. package/package.json +4 -4
  85. package/scss/_accordion.scss +52 -24
  86. package/scss/_alert.scss +18 -4
  87. package/scss/_badge.scss +14 -5
  88. package/scss/_breadcrumb.scss +22 -10
  89. package/scss/_button-group.scss +3 -0
  90. package/scss/_buttons.scss +97 -22
  91. package/scss/_card.scss +55 -37
  92. package/scss/_close.scss +1 -1
  93. package/scss/_containers.scss +1 -1
  94. package/scss/_dropdown.scss +83 -75
  95. package/scss/_functions.scss +7 -7
  96. package/scss/_grid.scss +3 -3
  97. package/scss/_helpers.scss +1 -0
  98. package/scss/_list-group.scss +44 -27
  99. package/scss/_maps.scss +54 -0
  100. package/scss/_modal.scss +71 -43
  101. package/scss/_nav.scss +53 -20
  102. package/scss/_navbar.scss +91 -150
  103. package/scss/_offcanvas.scss +119 -59
  104. package/scss/_pagination.scss +66 -21
  105. package/scss/_placeholders.scss +1 -1
  106. package/scss/_popover.scss +90 -52
  107. package/scss/_progress.scss +20 -9
  108. package/scss/_reboot.scss +25 -40
  109. package/scss/_root.scss +40 -21
  110. package/scss/_spinners.scss +38 -22
  111. package/scss/_tables.scss +32 -23
  112. package/scss/_toasts.scss +35 -16
  113. package/scss/_tooltip.scss +61 -56
  114. package/scss/_type.scss +2 -0
  115. package/scss/_utilities.scss +43 -26
  116. package/scss/_variables.scss +113 -121
  117. package/scss/bootstrap-grid.scss +3 -6
  118. package/scss/bootstrap-reboot.scss +3 -7
  119. package/scss/bootstrap-utilities.scss +3 -6
  120. package/scss/bootstrap.scss +4 -6
  121. package/scss/forms/_floating-labels.scss +14 -3
  122. package/scss/forms/_form-check.scss +28 -5
  123. package/scss/forms/_form-control.scss +12 -37
  124. package/scss/forms/_form-select.scss +0 -1
  125. package/scss/forms/_input-group.scss +15 -7
  126. package/scss/helpers/_color-bg.scss +10 -0
  127. package/scss/helpers/_colored-links.scss +2 -2
  128. package/scss/helpers/_position.scss +7 -1
  129. package/scss/helpers/_ratio.scss +2 -2
  130. package/scss/helpers/_vr.scss +1 -1
  131. package/scss/mixins/_alert.scss +7 -3
  132. package/scss/mixins/_banner.scss +9 -0
  133. package/scss/mixins/_breakpoints.scss +8 -8
  134. package/scss/mixins/_buttons.scss +32 -95
  135. package/scss/mixins/_container.scss +4 -2
  136. package/scss/mixins/_forms.scss +8 -0
  137. package/scss/mixins/_gradients.scss +1 -1
  138. package/scss/mixins/_grid.scss +12 -12
  139. package/scss/mixins/_pagination.scss +4 -25
  140. package/scss/mixins/_reset-text.scss +1 -1
  141. package/scss/mixins/_table-variants.scss +12 -9
  142. package/scss/mixins/_utilities.scss +12 -4
@@ -1,52 +1,62 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.1.3): base-component.js
3
+ * Bootstrap (v5.2.0): base-component.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
7
7
 
8
8
  import Data from './dom/data'
9
- import {
10
- executeAfterTransition,
11
- getElement
12
- } from './util/index'
9
+ import { executeAfterTransition, getElement } from './util/index'
13
10
  import EventHandler from './dom/event-handler'
11
+ import Config from './util/config'
14
12
 
15
13
  /**
16
- * ------------------------------------------------------------------------
17
14
  * Constants
18
- * ------------------------------------------------------------------------
19
15
  */
20
16
 
21
- const VERSION = '5.1.3'
17
+ const VERSION = '5.2.0'
22
18
 
23
- class BaseComponent {
24
- constructor(element) {
25
- element = getElement(element)
19
+ /**
20
+ * Class definition
21
+ */
26
22
 
23
+ class BaseComponent extends Config {
24
+ constructor(element, config) {
25
+ super()
26
+
27
+ element = getElement(element)
27
28
  if (!element) {
28
29
  return
29
30
  }
30
31
 
31
32
  this._element = element
33
+ this._config = this._getConfig(config)
34
+
32
35
  Data.set(this._element, this.constructor.DATA_KEY, this)
33
36
  }
34
37
 
38
+ // Public
35
39
  dispose() {
36
40
  Data.remove(this._element, this.constructor.DATA_KEY)
37
41
  EventHandler.off(this._element, this.constructor.EVENT_KEY)
38
42
 
39
- Object.getOwnPropertyNames(this).forEach(propertyName => {
43
+ for (const propertyName of Object.getOwnPropertyNames(this)) {
40
44
  this[propertyName] = null
41
- })
45
+ }
42
46
  }
43
47
 
44
48
  _queueCallback(callback, element, isAnimated = true) {
45
49
  executeAfterTransition(callback, element, isAnimated)
46
50
  }
47
51
 
48
- /** Static */
52
+ _getConfig(config) {
53
+ config = this._mergeConfigObj(config, this._element)
54
+ config = this._configAfterMerge(config)
55
+ this._typeCheckConfig(config)
56
+ return config
57
+ }
49
58
 
59
+ // Static
50
60
  static getInstance(element) {
51
61
  return Data.get(getElement(element), this.DATA_KEY)
52
62
  }
@@ -59,10 +69,6 @@ class BaseComponent {
59
69
  return VERSION
60
70
  }
61
71
 
62
- static get NAME() {
63
- throw new Error('You have to implement the static method "NAME", for each component!')
64
- }
65
-
66
72
  static get DATA_KEY() {
67
73
  return `bs.${this.NAME}`
68
74
  }
@@ -70,6 +76,10 @@ class BaseComponent {
70
76
  static get EVENT_KEY() {
71
77
  return `.${this.DATA_KEY}`
72
78
  }
79
+
80
+ static eventName(name) {
81
+ return `${name}${this.EVENT_KEY}`
82
+ }
73
83
  }
74
84
 
75
85
  export default BaseComponent
package/js/src/button.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v5.1.3): button.js
3
+ * Bootstrap (v5.2.0): button.js
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  * --------------------------------------------------------------------------
6
6
  */
@@ -10,9 +10,7 @@ import EventHandler from './dom/event-handler'
10
10
  import BaseComponent from './base-component'
11
11
 
12
12
  /**
13
- * ------------------------------------------------------------------------
14
13
  * Constants
15
- * ------------------------------------------------------------------------
16
14
  */
17
15
 
18
16
  const NAME = 'button'
@@ -21,33 +19,26 @@ const EVENT_KEY = `.${DATA_KEY}`
21
19
  const DATA_API_KEY = '.data-api'
22
20
 
23
21
  const CLASS_NAME_ACTIVE = 'active'
24
-
25
22
  const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]'
26
-
27
23
  const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
28
24
 
29
25
  /**
30
- * ------------------------------------------------------------------------
31
- * Class Definition
32
- * ------------------------------------------------------------------------
26
+ * Class definition
33
27
  */
34
28
 
35
29
  class Button extends BaseComponent {
36
30
  // Getters
37
-
38
31
  static get NAME() {
39
32
  return NAME
40
33
  }
41
34
 
42
35
  // Public
43
-
44
36
  toggle() {
45
37
  // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
46
38
  this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))
47
39
  }
48
40
 
49
41
  // Static
50
-
51
42
  static jQueryInterface(config) {
52
43
  return this.each(function () {
53
44
  const data = Button.getOrCreateInstance(this)
@@ -60,9 +51,7 @@ class Button extends BaseComponent {
60
51
  }
61
52
 
62
53
  /**
63
- * ------------------------------------------------------------------------
64
- * Data Api implementation
65
- * ------------------------------------------------------------------------
54
+ * Data API implementation
66
55
  */
67
56
 
68
57
  EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
@@ -75,10 +64,7 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
75
64
  })
76
65
 
77
66
  /**
78
- * ------------------------------------------------------------------------
79
67
  * jQuery
80
- * ------------------------------------------------------------------------
81
- * add .Button to jQuery only if jQuery is present
82
68
  */
83
69
 
84
70
  defineJQueryPlugin(Button)