@tabler/core 1.0.0-beta11 → 1.0.0-beta12

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 (112) hide show
  1. package/README.md +33 -10
  2. package/dist/css/demo.css +251 -379
  3. package/dist/css/demo.min.css +3 -3
  4. package/dist/css/demo.rtl.css +251 -379
  5. package/dist/css/demo.rtl.min.css +3 -3
  6. package/dist/css/tabler-flags.css +266 -529
  7. package/dist/css/tabler-flags.min.css +3 -3
  8. package/dist/css/tabler-flags.rtl.css +266 -529
  9. package/dist/css/tabler-flags.rtl.min.css +3 -3
  10. package/dist/css/tabler-payments.css +127 -252
  11. package/dist/css/tabler-payments.min.css +2 -2
  12. package/dist/css/tabler-payments.rtl.css +127 -252
  13. package/dist/css/tabler-payments.rtl.min.css +2 -2
  14. package/dist/css/tabler-vendors.css +480 -679
  15. package/dist/css/tabler-vendors.min.css +3 -3
  16. package/dist/css/tabler-vendors.rtl.css +480 -679
  17. package/dist/css/tabler-vendors.rtl.min.css +3 -3
  18. package/dist/css/tabler.css +10041 -14881
  19. package/dist/css/tabler.min.css +4 -4
  20. package/dist/css/tabler.rtl.css +10041 -14880
  21. package/dist/css/tabler.rtl.min.css +4 -4
  22. package/dist/js/demo-theme.js +32 -0
  23. package/dist/js/demo-theme.min.js +9 -0
  24. package/dist/js/demo.js +2 -12
  25. package/dist/js/demo.min.js +3 -3
  26. package/dist/js/tabler.esm.js +90 -61
  27. package/dist/js/tabler.esm.min.js +9 -3
  28. package/dist/js/tabler.js +112 -61
  29. package/dist/js/tabler.min.js +9 -3
  30. package/dist/libs/apexcharts/dist/apexcharts.amd.js +1 -1
  31. package/dist/libs/apexcharts/dist/apexcharts.common.js +3 -3
  32. package/dist/libs/apexcharts/dist/apexcharts.esm.js +3 -3
  33. package/dist/libs/apexcharts/dist/apexcharts.js +27 -8
  34. package/dist/libs/apexcharts/dist/apexcharts.min.js +3 -3
  35. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.js +131 -107
  36. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.js.map +1 -1
  37. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.min.js +2 -2
  38. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.min.js.map +1 -1
  39. package/dist/libs/bootstrap/dist/js/bootstrap.esm.js +70 -57
  40. package/dist/libs/bootstrap/dist/js/bootstrap.esm.js.map +1 -1
  41. package/dist/libs/bootstrap/dist/js/bootstrap.esm.min.js +2 -2
  42. package/dist/libs/bootstrap/dist/js/bootstrap.esm.min.js.map +1 -1
  43. package/dist/libs/bootstrap/dist/js/bootstrap.js +71 -58
  44. package/dist/libs/bootstrap/dist/js/bootstrap.js.map +1 -1
  45. package/dist/libs/bootstrap/dist/js/bootstrap.min.js +2 -2
  46. package/dist/libs/bootstrap/dist/js/bootstrap.min.js.map +1 -1
  47. package/dist/libs/jsvectormap/dist/js/jsvectormap.js +1061 -1066
  48. package/dist/libs/jsvectormap/dist/js/jsvectormap.min.js +1 -1
  49. package/dist/libs/nouislider/dist/nouislider.d.ts +1 -1
  50. package/package.json +68 -22
  51. package/src/js/demo-theme.js +25 -0
  52. package/src/js/demo.js +0 -17
  53. package/src/js/src/tabler.js +17 -0
  54. package/src/js/tabler.js +2 -0
  55. package/src/scss/_core.scss +1 -0
  56. package/src/scss/_mixins-override.scss +26 -26
  57. package/src/scss/_utilities.scss +2 -2
  58. package/src/scss/_variables.scss +207 -89
  59. package/src/scss/demo/_examples.scss +2 -2
  60. package/src/scss/demo/_highlight.scss +3 -3
  61. package/src/scss/demo.scss +4 -4
  62. package/src/scss/fonts/_webfonts.scss +0 -50
  63. package/src/scss/layout/_core.scss +2 -23
  64. package/src/scss/layout/_dark.scss +8 -6
  65. package/src/scss/layout/_footer.scss +2 -2
  66. package/src/scss/layout/_navbar.scss +7 -5
  67. package/src/scss/layout/_page.scss +8 -6
  68. package/src/scss/layout/_root.scss +37 -0
  69. package/src/scss/mixins/_functions.scss +2 -2
  70. package/src/scss/mixins/_mixins.scss +3 -2
  71. package/src/scss/ui/_accordion.scss +1 -1
  72. package/src/scss/ui/_alerts.scss +1 -1
  73. package/src/scss/ui/_avatars.scss +5 -5
  74. package/src/scss/ui/_badges.scss +2 -2
  75. package/src/scss/ui/_buttons.scss +25 -17
  76. package/src/scss/ui/_calendars.scss +8 -8
  77. package/src/scss/ui/_cards.scss +28 -31
  78. package/src/scss/ui/_carousel.scss +1 -1
  79. package/src/scss/ui/_chips.scss +0 -0
  80. package/src/scss/ui/_empty.scss +3 -3
  81. package/src/scss/ui/_flags.scss +2 -2
  82. package/src/scss/ui/_forms.scss +7 -7
  83. package/src/scss/ui/_grid.scss +8 -9
  84. package/src/scss/ui/_icons.scss +64 -4
  85. package/src/scss/ui/_legend.scss +8 -4
  86. package/src/scss/ui/_lists.scss +16 -13
  87. package/src/scss/ui/_markdown.scss +2 -3
  88. package/src/scss/ui/_modals.scss +1 -1
  89. package/src/scss/ui/_nav.scss +7 -7
  90. package/src/scss/ui/_offcanvas.scss +2 -2
  91. package/src/scss/ui/_pagination.scss +10 -6
  92. package/src/scss/ui/_placeholder.scss +1 -1
  93. package/src/scss/ui/_progress.scss +45 -6
  94. package/src/scss/ui/_ribbons.scss +5 -5
  95. package/src/scss/ui/_status.scss +2 -2
  96. package/src/scss/ui/_steps.scss +2 -2
  97. package/src/scss/ui/_tables.scss +26 -5
  98. package/src/scss/ui/_toasts.scss +0 -1
  99. package/src/scss/ui/_type.scss +45 -30
  100. package/src/scss/ui/forms/_form-check.scss +26 -1
  101. package/src/scss/ui/forms/_form-colorinput.scss +2 -2
  102. package/src/scss/ui/forms/_form-icon.scss +1 -1
  103. package/src/scss/ui/forms/_form-imagecheck.scss +4 -4
  104. package/src/scss/ui/forms/_form-selectgroup.scss +7 -7
  105. package/src/scss/ui/typo/_hr.scss +2 -3
  106. package/src/scss/utils/_colors.scss +14 -5
  107. package/src/scss/vendor/_dropzone.scss +1 -1
  108. package/src/scss/vendor/_jsvectormap.scss +7 -7
  109. package/src/scss/vendor/_litepicker.scss +11 -11
  110. package/src/scss/vendor/_plyr.scss +1 -1
  111. package/src/scss/vendor/_tinymce.scss +3 -3
  112. package/src/scss/vendor/_tom-select.scss +2 -0
@@ -0,0 +1,32 @@
1
+ /*!
2
+ * Tabler v1.0.0-beta12 (https://tabler.io)
3
+ * @version 1.0.0-beta12
4
+ * @link https://tabler.io
5
+ * Copyright 2018-2022 The Tabler Authors
6
+ * Copyright 2018-2022 codecalm.net Paweł Kuna
7
+ * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE)
8
+ */
9
+ (function (factory) {
10
+ typeof define === 'function' && define.amd ? define(factory) :
11
+ factory();
12
+ })((function () { 'use strict';
13
+
14
+ var themeStorageKey = 'tablerTheme';
15
+ var defaultTheme = 'light';
16
+ var selectedTheme;
17
+ var params = new Proxy(new URLSearchParams(window.location.search), {
18
+ get: function get(searchParams, prop) {
19
+ return searchParams.get(prop);
20
+ }
21
+ });
22
+ if (!!params.theme) {
23
+ localStorage.setItem(themeStorageKey, params.theme);
24
+ selectedTheme = params.theme;
25
+ } else {
26
+ var storedTheme = localStorage.getItem(themeStorageKey);
27
+ selectedTheme = storedTheme ? storedTheme : defaultTheme;
28
+ }
29
+ document.body.classList.remove('theme-dark', 'theme-light');
30
+ document.body.classList.add("theme-".concat(selectedTheme));
31
+
32
+ }));
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Tabler v1.0.0-beta12 (https://tabler.io)
3
+ * @version 1.0.0-beta12
4
+ * @link https://tabler.io
5
+ * Copyright 2018-2022 The Tabler Authors
6
+ * Copyright 2018-2022 codecalm.net Paweł Kuna
7
+ * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE)
8
+ */
9
+ !function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e,t="tablerTheme",n=new Proxy(new URLSearchParams(window.location.search),{get:function(e,t){return e.get(t)}});if(n.theme)localStorage.setItem(t,n.theme),e=n.theme;else{var o=localStorage.getItem(t);e=o||"light"}document.body.classList.remove("theme-dark","theme-light"),document.body.classList.add("theme-".concat(e))}));
package/dist/js/demo.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Tabler v1.0.0-beta11 (https://tabler.io)
3
- * @version 1.0.0-beta11
2
+ * Tabler v1.0.0-beta12 (https://tabler.io)
3
+ * @version 1.0.0-beta12
4
4
  * @link https://tabler.io
5
5
  * Copyright 2018-2022 The Tabler Authors
6
6
  * Copyright 2018-2022 codecalm.net Paweł Kuna
@@ -71,10 +71,6 @@
71
71
  }
72
72
 
73
73
  var items = {
74
- 'theme': {
75
- localStorage: 'tablerTheme',
76
- default: 'light'
77
- },
78
74
  'menu-position': {
79
75
  localStorage: 'tablerMenuPosition',
80
76
  default: 'top'
@@ -120,10 +116,6 @@
120
116
  }
121
117
  }
122
118
  };
123
- var updateBodyClasses = function updateBodyClasses() {
124
- document.body.classList.remove('theme-dark', 'theme-light');
125
- document.body.classList.add("theme-".concat(config.theme));
126
- };
127
119
  var submitForm = function submitForm(form) {
128
120
  for (var _i3 = 0, _Object$entries3 = Object.entries(items); _i3 < _Object$entries3.length; _i3++) {
129
121
  var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),
@@ -133,12 +125,10 @@
133
125
  localStorage.setItem(_params2.localStorage, value);
134
126
  config[_key3] = value;
135
127
  }
136
- updateBodyClasses();
137
128
  window.dispatchEvent(new Event('resize'));
138
129
  new bootstrap.Offcanvas(form).hide();
139
130
  };
140
131
  parseUrl();
141
- updateBodyClasses();
142
132
  var form = document.querySelector('#offcanvasSettings');
143
133
  if (form) {
144
134
  form.addEventListener('submit', function (e) {
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Tabler v1.0.0-beta11 (https://tabler.io)
3
- * @version 1.0.0-beta11
2
+ * Tabler v1.0.0-beta12 (https://tabler.io)
3
+ * @version 1.0.0-beta12
4
4
  * @link https://tabler.io
5
5
  * Copyright 2018-2022 The Tabler Authors
6
6
  * Copyright 2018-2022 codecalm.net Paweł Kuna
7
7
  * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE)
8
8
  */
9
- !function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";function t(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==r)return;var n,o,a=[],l=!0,i=!1;try{for(r=r.call(t);!(l=(n=r.next()).done)&&(a.push(n.value),!e||a.length!==e);l=!0);}catch(t){i=!0,o=t}finally{try{l||null==r.return||r.return()}finally{if(i)throw o}}return a}(t,r)||function(t,r){if(!t)return;if("string"==typeof t)return e(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(t,r)}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}for(var r={theme:{localStorage:"tablerTheme",default:"light"},"menu-position":{localStorage:"tablerMenuPosition",default:"top"},"menu-behavior":{localStorage:"tablerMenuBehavior",default:"sticky"},"container-layout":{localStorage:"tablerContainerLayout",default:"boxed"}},n={},o=0,a=Object.entries(r);o<a.length;o++){var l=t(a[o],2),i=l[0],c=l[1],u=localStorage.getItem(c.localStorage);n[i]=u||c.default}var f=function(){document.body.classList.remove("theme-dark","theme-light"),document.body.classList.add("theme-".concat(n.theme))};!function(){for(var t=window.location.search.substring(1).split("&"),e=0;e<t.length;e++){var o=t[e].split("="),a=o[0],l=o[1];r[a]&&(localStorage.setItem(r[a].localStorage,l),n[a]=l)}}(),f();var s=document.querySelector("#offcanvasSettings");s&&(s.addEventListener("submit",function(e){e.preventDefault(),function(e){for(var o=0,a=Object.entries(r);o<a.length;o++){var l=t(a[o],2),i=l[0],c=l[1],u=e.querySelector('[name="settings-'.concat(i,'"]:checked')).value;localStorage.setItem(c.localStorage,u),n[i]=u}f(),window.dispatchEvent(new Event("resize")),new bootstrap.Offcanvas(e).hide()}(s)}),function(e){for(var o=0,a=Object.entries(r);o<a.length;o++){var l=t(a[o],2),i=l[0];l[1];var c=e.querySelector('[name="settings-'.concat(i,'"][value="').concat(n[i],'"]'));c&&(c.checked=!0)}}(s))});
9
+ !function(t){"function"==typeof define&&define.amd?define(t):t()}((function(){"use strict";function t(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==r)return;var n,o,a=[],l=!0,i=!1;try{for(r=r.call(t);!(l=(n=r.next()).done)&&(a.push(n.value),!e||a.length!==e);l=!0);}catch(t){i=!0,o=t}finally{try{l||null==r.return||r.return()}finally{if(i)throw o}}return a}(t,r)||function(t,r){if(!t)return;if("string"==typeof t)return e(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(t,r)}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}for(var r={"menu-position":{localStorage:"tablerMenuPosition",default:"top"},"menu-behavior":{localStorage:"tablerMenuBehavior",default:"sticky"},"container-layout":{localStorage:"tablerContainerLayout",default:"boxed"}},n={},o=0,a=Object.entries(r);o<a.length;o++){var l=t(a[o],2),i=l[0],c=l[1],u=localStorage.getItem(c.localStorage);n[i]=u||c.default}!function(){for(var t=window.location.search.substring(1).split("&"),e=0;e<t.length;e++){var o=t[e].split("="),a=o[0],l=o[1];r[a]&&(localStorage.setItem(r[a].localStorage,l),n[a]=l)}}();var f=document.querySelector("#offcanvasSettings");f&&(f.addEventListener("submit",(function(e){e.preventDefault(),function(e){for(var o=0,a=Object.entries(r);o<a.length;o++){var l=t(a[o],2),i=l[0],c=l[1],u=e.querySelector('[name="settings-'.concat(i,'"]:checked')).value;localStorage.setItem(c.localStorage,u),n[i]=u}window.dispatchEvent(new Event("resize")),new bootstrap.Offcanvas(e).hide()}(f)})),function(e){for(var o=0,a=Object.entries(r);o<a.length;o++){var l=t(a[o],2),i=l[0];l[1];var c=e.querySelector('[name="settings-'.concat(i,'"][value="').concat(n[i],'"]'));c&&(c.checked=!0)}}(f))}));
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Tabler v1.0.0-beta11 (https://tabler.io)
3
- * @version 1.0.0-beta11
2
+ * Tabler v1.0.0-beta12 (https://tabler.io)
3
+ * @version 1.0.0-beta12
4
4
  * @link https://tabler.io
5
5
  * Copyright 2018-2022 The Tabler Authors
6
6
  * Copyright 2018-2022 codecalm.net Paweł Kuna
@@ -3253,32 +3253,50 @@ var max = Math.max;
3253
3253
  var min = Math.min;
3254
3254
  var round = Math.round;
3255
3255
 
3256
- function getBoundingClientRect(element, includeScale) {
3256
+ function getUAString() {
3257
+ var uaData = navigator.userAgentData;
3258
+ if (uaData != null && uaData.brands) {
3259
+ return uaData.brands.map(function (item) {
3260
+ return item.brand + "/" + item.version;
3261
+ }).join(' ');
3262
+ }
3263
+ return navigator.userAgent;
3264
+ }
3265
+
3266
+ function isLayoutViewport() {
3267
+ return !/^((?!chrome|android).)*safari/i.test(getUAString());
3268
+ }
3269
+
3270
+ function getBoundingClientRect(element, includeScale, isFixedStrategy) {
3257
3271
  if (includeScale === void 0) {
3258
3272
  includeScale = false;
3259
3273
  }
3260
- var rect = element.getBoundingClientRect();
3274
+ if (isFixedStrategy === void 0) {
3275
+ isFixedStrategy = false;
3276
+ }
3277
+ var clientRect = element.getBoundingClientRect();
3261
3278
  var scaleX = 1;
3262
3279
  var scaleY = 1;
3263
- if (isHTMLElement(element) && includeScale) {
3264
- var offsetHeight = element.offsetHeight;
3265
- var offsetWidth = element.offsetWidth;
3266
- if (offsetWidth > 0) {
3267
- scaleX = round(rect.width) / offsetWidth || 1;
3268
- }
3269
- if (offsetHeight > 0) {
3270
- scaleY = round(rect.height) / offsetHeight || 1;
3271
- }
3272
- }
3280
+ if (includeScale && isHTMLElement(element)) {
3281
+ scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
3282
+ scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
3283
+ }
3284
+ var _ref = isElement$1(element) ? getWindow(element) : window,
3285
+ visualViewport = _ref.visualViewport;
3286
+ var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
3287
+ var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
3288
+ var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
3289
+ var width = clientRect.width / scaleX;
3290
+ var height = clientRect.height / scaleY;
3273
3291
  return {
3274
- width: rect.width / scaleX,
3275
- height: rect.height / scaleY,
3276
- top: rect.top / scaleY,
3277
- right: rect.right / scaleX,
3278
- bottom: rect.bottom / scaleY,
3279
- left: rect.left / scaleX,
3280
- x: rect.left / scaleX,
3281
- y: rect.top / scaleY
3292
+ width: width,
3293
+ height: height,
3294
+ top: y,
3295
+ right: x + width,
3296
+ bottom: y + height,
3297
+ left: x,
3298
+ x: x,
3299
+ y: y
3282
3300
  };
3283
3301
  }
3284
3302
 
@@ -3350,8 +3368,8 @@ function getTrueOffsetParent(element) {
3350
3368
  return element.offsetParent;
3351
3369
  }
3352
3370
  function getContainingBlock(element) {
3353
- var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
3354
- var isIE = navigator.userAgent.indexOf('Trident') !== -1;
3371
+ var isFirefox = /firefox/i.test(getUAString());
3372
+ var isIE = /Trident/i.test(getUAString());
3355
3373
  if (isIE && isHTMLElement(element)) {
3356
3374
  var elementCss = getComputedStyle$1(element);
3357
3375
  if (elementCss.position === 'fixed') {
@@ -3698,7 +3716,7 @@ function getWindowScrollBarX(element) {
3698
3716
  return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
3699
3717
  }
3700
3718
 
3701
- function getViewportRect(element) {
3719
+ function getViewportRect(element, strategy) {
3702
3720
  var win = getWindow(element);
3703
3721
  var html = getDocumentElement(element);
3704
3722
  var visualViewport = win.visualViewport;
@@ -3709,7 +3727,8 @@ function getViewportRect(element) {
3709
3727
  if (visualViewport) {
3710
3728
  width = visualViewport.width;
3711
3729
  height = visualViewport.height;
3712
- if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
3730
+ var layoutViewport = isLayoutViewport();
3731
+ if (layoutViewport || !layoutViewport && strategy === 'fixed') {
3713
3732
  x = visualViewport.offsetLeft;
3714
3733
  y = visualViewport.offsetTop;
3715
3734
  }
@@ -3783,8 +3802,8 @@ function rectToClientRect(rect) {
3783
3802
  });
3784
3803
  }
3785
3804
 
3786
- function getInnerBoundingClientRect(element) {
3787
- var rect = getBoundingClientRect(element);
3805
+ function getInnerBoundingClientRect(element, strategy) {
3806
+ var rect = getBoundingClientRect(element, false, strategy === 'fixed');
3788
3807
  rect.top = rect.top + element.clientTop;
3789
3808
  rect.left = rect.left + element.clientLeft;
3790
3809
  rect.bottom = rect.top + element.clientHeight;
@@ -3795,8 +3814,8 @@ function getInnerBoundingClientRect(element) {
3795
3814
  rect.y = rect.top;
3796
3815
  return rect;
3797
3816
  }
3798
- function getClientRectFromMixedType(element, clippingParent) {
3799
- return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement$1(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
3817
+ function getClientRectFromMixedType(element, clippingParent, strategy) {
3818
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement$1(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
3800
3819
  }
3801
3820
  function getClippingParents(element) {
3802
3821
  var clippingParents = listScrollParents(getParentNode(element));
@@ -3809,18 +3828,18 @@ function getClippingParents(element) {
3809
3828
  return isElement$1(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
3810
3829
  });
3811
3830
  }
3812
- function getClippingRect(element, boundary, rootBoundary) {
3831
+ function getClippingRect(element, boundary, rootBoundary, strategy) {
3813
3832
  var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
3814
3833
  var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
3815
3834
  var firstClippingParent = clippingParents[0];
3816
3835
  var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
3817
- var rect = getClientRectFromMixedType(element, clippingParent);
3836
+ var rect = getClientRectFromMixedType(element, clippingParent, strategy);
3818
3837
  accRect.top = max(rect.top, accRect.top);
3819
3838
  accRect.right = min(rect.right, accRect.right);
3820
3839
  accRect.bottom = min(rect.bottom, accRect.bottom);
3821
3840
  accRect.left = max(rect.left, accRect.left);
3822
3841
  return accRect;
3823
- }, getClientRectFromMixedType(element, firstClippingParent));
3842
+ }, getClientRectFromMixedType(element, firstClippingParent, strategy));
3824
3843
  clippingRect.width = clippingRect.right - clippingRect.left;
3825
3844
  clippingRect.height = clippingRect.bottom - clippingRect.top;
3826
3845
  clippingRect.x = clippingRect.left;
@@ -3890,6 +3909,8 @@ function detectOverflow(state, options) {
3890
3909
  var _options = options,
3891
3910
  _options$placement = _options.placement,
3892
3911
  placement = _options$placement === void 0 ? state.placement : _options$placement,
3912
+ _options$strategy = _options.strategy,
3913
+ strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,
3893
3914
  _options$boundary = _options.boundary,
3894
3915
  boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
3895
3916
  _options$rootBoundary = _options.rootBoundary,
@@ -3904,7 +3925,7 @@ function detectOverflow(state, options) {
3904
3925
  var altContext = elementContext === popper ? reference : popper;
3905
3926
  var popperRect = state.rects.popper;
3906
3927
  var element = state.elements[altBoundary ? altContext : elementContext];
3907
- var clippingClientRect = getClippingRect(isElement$1(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
3928
+ var clippingClientRect = getClippingRect(isElement$1(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
3908
3929
  var referenceClientRect = getBoundingClientRect(state.elements.reference);
3909
3930
  var popperOffsets = computeOffsets({
3910
3931
  reference: referenceClientRect,
@@ -4339,7 +4360,7 @@ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
4339
4360
  var isOffsetParentAnElement = isHTMLElement(offsetParent);
4340
4361
  var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
4341
4362
  var documentElement = getDocumentElement(offsetParent);
4342
- var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
4363
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
4343
4364
  var scroll = {
4344
4365
  scrollLeft: 0,
4345
4366
  scrollTop: 0
@@ -4632,7 +4653,7 @@ var Popper = /*#__PURE__*/Object.freeze({
4632
4653
  });
4633
4654
 
4634
4655
  /*!
4635
- * Bootstrap v5.2.0 (https://getbootstrap.com/)
4656
+ * Bootstrap v5.2.1 (https://getbootstrap.com/)
4636
4657
  * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4637
4658
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4638
4659
  */
@@ -5163,7 +5184,7 @@ class Config {
5163
5184
  }
5164
5185
  }
5165
5186
  }
5166
- const VERSION = '5.2.0';
5187
+ const VERSION = '5.2.1';
5167
5188
  class BaseComponent extends Config {
5168
5189
  constructor(element, config) {
5169
5190
  super();
@@ -6007,7 +6028,7 @@ class Dropdown extends BaseComponent {
6007
6028
  super(element, config);
6008
6029
  this._popper = null;
6009
6030
  this._parent = this._element.parentNode;
6010
- this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent);
6031
+ this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0];
6011
6032
  this._inNavbar = this._detectNavbar();
6012
6033
  }
6013
6034
  static get Default() {
@@ -6231,7 +6252,7 @@ class Dropdown extends BaseComponent {
6231
6252
  return;
6232
6253
  }
6233
6254
  event.preventDefault();
6234
- const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
6255
+ const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0];
6235
6256
  const instance = Dropdown.getOrCreateInstance(getToggleButton);
6236
6257
  if (isUpOrDownEvent) {
6237
6258
  event.stopPropagation();
@@ -6510,6 +6531,7 @@ const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
6510
6531
  const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
6511
6532
  const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
6512
6533
  const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
6534
+ const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
6513
6535
  const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
6514
6536
  const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
6515
6537
  const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
@@ -6651,16 +6673,18 @@ class Modal extends BaseComponent {
6651
6673
  }
6652
6674
  });
6653
6675
  EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
6654
- if (event.target !== event.currentTarget) {
6655
- return;
6656
- }
6657
- if (this._config.backdrop === 'static') {
6658
- this._triggerBackdropTransition();
6659
- return;
6660
- }
6661
- if (this._config.backdrop) {
6662
- this.hide();
6663
- }
6676
+ EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
6677
+ if (this._dialog.contains(event.target) || this._dialog.contains(event2.target)) {
6678
+ return;
6679
+ }
6680
+ if (this._config.backdrop === 'static') {
6681
+ this._triggerBackdropTransition();
6682
+ return;
6683
+ }
6684
+ if (this._config.backdrop) {
6685
+ this.hide();
6686
+ }
6687
+ });
6664
6688
  });
6665
6689
  }
6666
6690
  _hideModal() {
@@ -7202,7 +7226,7 @@ class Tooltip extends BaseComponent {
7202
7226
  super(element, config);
7203
7227
  this._isEnabled = true;
7204
7228
  this._timeout = 0;
7205
- this._isHovered = false;
7229
+ this._isHovered = null;
7206
7230
  this._activeTrigger = {};
7207
7231
  this._popper = null;
7208
7232
  this._templateFactory = null;
@@ -7254,6 +7278,9 @@ class Tooltip extends BaseComponent {
7254
7278
  if (this.tip) {
7255
7279
  this.tip.remove();
7256
7280
  }
7281
+ if (this._config.originalTitle) {
7282
+ this._element.setAttribute('title', this._config.originalTitle);
7283
+ }
7257
7284
  this._disposePopper();
7258
7285
  super.dispose();
7259
7286
  }
@@ -7295,12 +7322,11 @@ class Tooltip extends BaseComponent {
7295
7322
  }
7296
7323
  }
7297
7324
  const complete = () => {
7298
- const previousHoverState = this._isHovered;
7299
- this._isHovered = false;
7300
7325
  EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
7301
- if (previousHoverState) {
7326
+ if (this._isHovered === false) {
7302
7327
  this._leave();
7303
7328
  }
7329
+ this._isHovered = false;
7304
7330
  };
7305
7331
  this._queueCallback(complete, this.tip, this._isAnimated());
7306
7332
  }
@@ -7322,7 +7348,7 @@ class Tooltip extends BaseComponent {
7322
7348
  this._activeTrigger[TRIGGER_CLICK] = false;
7323
7349
  this._activeTrigger[TRIGGER_FOCUS] = false;
7324
7350
  this._activeTrigger[TRIGGER_HOVER] = false;
7325
- this._isHovered = false;
7351
+ this._isHovered = null;
7326
7352
  const complete = () => {
7327
7353
  if (this._isWithActiveTrigger()) {
7328
7354
  return;
@@ -7662,13 +7688,15 @@ const Default$1 = {
7662
7688
  offset: null,
7663
7689
  rootMargin: '0px 0px -25%',
7664
7690
  smoothScroll: false,
7665
- target: null
7691
+ target: null,
7692
+ threshold: [0.1, 0.5, 1]
7666
7693
  };
7667
7694
  const DefaultType$1 = {
7668
7695
  offset: '(number|null)',
7669
7696
  rootMargin: 'string',
7670
7697
  smoothScroll: 'boolean',
7671
- target: 'element'
7698
+ target: 'element',
7699
+ threshold: 'array'
7672
7700
  };
7673
7701
  class ScrollSpy extends BaseComponent {
7674
7702
  constructor(element, config) {
@@ -7711,6 +7739,10 @@ class ScrollSpy extends BaseComponent {
7711
7739
  }
7712
7740
  _configAfterMerge(config) {
7713
7741
  config.target = getElement(config.target) || document.body;
7742
+ config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
7743
+ if (typeof config.threshold === 'string') {
7744
+ config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));
7745
+ }
7714
7746
  return config;
7715
7747
  }
7716
7748
  _maybeEnableSmoothScroll() {
@@ -7738,8 +7770,8 @@ class ScrollSpy extends BaseComponent {
7738
7770
  _getNewObserver() {
7739
7771
  const options = {
7740
7772
  root: this._rootElement,
7741
- threshold: [0.1, 0.5, 1],
7742
- rootMargin: this._getRootMargin()
7773
+ threshold: this._config.threshold,
7774
+ rootMargin: this._config.rootMargin
7743
7775
  };
7744
7776
  return new IntersectionObserver(entries => this._observerCallback(entries), options);
7745
7777
  }
@@ -7771,9 +7803,6 @@ class ScrollSpy extends BaseComponent {
7771
7803
  }
7772
7804
  }
7773
7805
  }
7774
- _getRootMargin() {
7775
- return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin;
7776
- }
7777
7806
  _initializeTargetsAndObservables() {
7778
7807
  this._targetLinks = new Map();
7779
7808
  this._observableSections = new Map();