@openeuropa/bcl-theme-joinup 0.17.0 → 0.20.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 (245) hide show
  1. package/bcl-builder.config.js +21 -4
  2. package/css/oe-bcl-joinup.css +986 -361
  3. package/css/oe-bcl-joinup.css.map +1 -1
  4. package/css/oe-bcl-joinup.min.css +1 -1
  5. package/css/oe-bcl-joinup.min.css.map +1 -1
  6. package/icons/bcl-default-icons.svg +1 -0
  7. package/icons/icons-flag.svg +1 -1
  8. package/js/oe-bcl-joinup.bundle.js +117 -72
  9. package/js/oe-bcl-joinup.bundle.js.map +1 -1
  10. package/js/oe-bcl-joinup.bundle.min.js +1 -1
  11. package/js/oe-bcl-joinup.bundle.min.js.map +1 -1
  12. package/js/oe-bcl-joinup.esm.js.map +1 -1
  13. package/js/oe-bcl-joinup.esm.min.js.map +1 -1
  14. package/js/oe-bcl-joinup.umd.js +117 -72
  15. package/js/oe-bcl-joinup.umd.js.map +1 -1
  16. package/js/oe-bcl-joinup.umd.min.js +1 -1
  17. package/js/oe-bcl-joinup.umd.min.js.map +1 -1
  18. package/js/slimselect.min.js +1 -1
  19. package/logos/ec/logo-ec--mute.svg +52 -0
  20. package/logos/ec/negative/logo-ec--ar.svg +83 -0
  21. package/logos/ec/negative/logo-ec--bg.svg +59 -0
  22. package/logos/ec/negative/logo-ec--ca.svg +88 -0
  23. package/logos/ec/negative/logo-ec--cs.svg +86 -0
  24. package/logos/ec/negative/logo-ec--da.svg +91 -0
  25. package/logos/ec/negative/logo-ec--de.svg +93 -0
  26. package/logos/ec/negative/logo-ec--el.svg +89 -0
  27. package/logos/ec/negative/logo-ec--en.svg +90 -0
  28. package/logos/ec/negative/logo-ec--es.svg +87 -0
  29. package/logos/ec/negative/logo-ec--et.svg +87 -0
  30. package/logos/ec/negative/logo-ec--fi.svg +88 -0
  31. package/logos/ec/negative/logo-ec--fr.svg +92 -0
  32. package/logos/ec/negative/logo-ec--ga.svg +90 -0
  33. package/logos/ec/negative/logo-ec--hr.svg +88 -0
  34. package/logos/ec/negative/logo-ec--hu.svg +58 -0
  35. package/logos/ec/negative/logo-ec--is.svg +105 -0
  36. package/logos/ec/negative/logo-ec--it.svg +95 -0
  37. package/logos/ec/negative/logo-ec--lt.svg +87 -0
  38. package/logos/ec/negative/logo-ec--lv.svg +87 -0
  39. package/logos/ec/negative/logo-ec--mt.svg +98 -0
  40. package/logos/ec/negative/logo-ec--nl.svg +89 -0
  41. package/logos/ec/negative/logo-ec--no.svg +90 -0
  42. package/logos/ec/negative/logo-ec--pl.svg +89 -0
  43. package/logos/ec/negative/logo-ec--pt.svg +58 -0
  44. package/logos/ec/negative/logo-ec--ro.svg +94 -0
  45. package/logos/ec/negative/logo-ec--sk.svg +87 -0
  46. package/logos/ec/negative/logo-ec--sl.svg +88 -0
  47. package/logos/ec/negative/logo-ec--sv.svg +94 -0
  48. package/logos/ec/negative/logo-ec--tr.svg +87 -0
  49. package/logos/ec/positive/logo-ec--ar.svg +82 -0
  50. package/logos/ec/positive/logo-ec--bg.svg +233 -0
  51. package/logos/ec/positive/logo-ec--ca.svg +87 -0
  52. package/logos/ec/positive/logo-ec--cs.svg +207 -0
  53. package/logos/ec/positive/logo-ec--da.svg +235 -0
  54. package/logos/ec/positive/logo-ec--de.svg +243 -0
  55. package/logos/ec/positive/logo-ec--el.svg +204 -0
  56. package/logos/ec/positive/logo-ec--en.svg +233 -0
  57. package/logos/ec/positive/logo-ec--es.svg +210 -0
  58. package/logos/ec/positive/logo-ec--et.svg +207 -0
  59. package/logos/ec/positive/logo-ec--fi.svg +219 -0
  60. package/logos/ec/positive/logo-ec--fr.svg +1 -0
  61. package/logos/ec/positive/logo-ec--ga.svg +221 -0
  62. package/logos/ec/positive/logo-ec--hr.svg +216 -0
  63. package/logos/ec/positive/logo-ec--hu.svg +218 -0
  64. package/logos/ec/positive/logo-ec--is.svg +105 -0
  65. package/logos/ec/positive/logo-ec--it.svg +241 -0
  66. package/logos/ec/positive/logo-ec--lt.svg +203 -0
  67. package/logos/ec/positive/logo-ec--lv.svg +212 -0
  68. package/logos/ec/positive/logo-ec--mt.svg +239 -0
  69. package/logos/ec/positive/logo-ec--nl.svg +231 -0
  70. package/logos/ec/positive/logo-ec--no.svg +89 -0
  71. package/logos/ec/positive/logo-ec--pl.svg +225 -0
  72. package/logos/ec/positive/logo-ec--pt.svg +228 -0
  73. package/logos/ec/positive/logo-ec--ro.svg +225 -0
  74. package/logos/ec/positive/logo-ec--sk.svg +217 -0
  75. package/logos/ec/positive/logo-ec--sl.svg +216 -0
  76. package/logos/ec/positive/logo-ec--sv.svg +254 -0
  77. package/logos/ec/positive/logo-ec--tr.svg +87 -0
  78. package/logos/eu/condensed-version/negative/logo-eu--ar.svg +18 -0
  79. package/logos/eu/condensed-version/negative/logo-eu--bg.svg +7 -0
  80. package/logos/eu/condensed-version/negative/logo-eu--ca.svg +7 -0
  81. package/logos/eu/condensed-version/negative/logo-eu--cs.svg +7 -0
  82. package/logos/eu/condensed-version/negative/logo-eu--da.svg +7 -0
  83. package/logos/eu/condensed-version/negative/logo-eu--de.svg +7 -0
  84. package/logos/eu/condensed-version/negative/logo-eu--el.svg +7 -0
  85. package/logos/eu/condensed-version/negative/logo-eu--en.svg +7 -0
  86. package/logos/eu/condensed-version/negative/logo-eu--es.svg +7 -0
  87. package/logos/eu/condensed-version/negative/logo-eu--et.svg +7 -0
  88. package/logos/eu/condensed-version/negative/logo-eu--fi.svg +7 -0
  89. package/logos/eu/condensed-version/negative/logo-eu--fr.svg +7 -0
  90. package/logos/eu/condensed-version/negative/logo-eu--ga.svg +7 -0
  91. package/logos/eu/condensed-version/negative/logo-eu--hr.svg +7 -0
  92. package/logos/eu/condensed-version/negative/logo-eu--hu.svg +7 -0
  93. package/logos/eu/condensed-version/negative/logo-eu--is.svg +8 -0
  94. package/logos/eu/condensed-version/negative/logo-eu--it.svg +7 -0
  95. package/logos/eu/condensed-version/negative/logo-eu--lt.svg +7 -0
  96. package/logos/eu/condensed-version/negative/logo-eu--lv.svg +7 -0
  97. package/logos/eu/condensed-version/negative/logo-eu--mt.svg +7 -0
  98. package/logos/eu/condensed-version/negative/logo-eu--nl.svg +7 -0
  99. package/logos/eu/condensed-version/negative/logo-eu--no.svg +7 -0
  100. package/logos/eu/condensed-version/negative/logo-eu--pl.svg +7 -0
  101. package/logos/eu/condensed-version/negative/logo-eu--pt.svg +7 -0
  102. package/logos/eu/condensed-version/negative/logo-eu--ro.svg +7 -0
  103. package/logos/eu/condensed-version/negative/logo-eu--sk.svg +7 -0
  104. package/logos/eu/condensed-version/negative/logo-eu--sl.svg +7 -0
  105. package/logos/eu/condensed-version/negative/logo-eu--sv.svg +7 -0
  106. package/logos/eu/condensed-version/negative/logo-eu--tr.svg +7 -0
  107. package/logos/eu/condensed-version/positive/logo-eu--ar.svg +29 -0
  108. package/logos/eu/condensed-version/positive/logo-eu--bg.svg +20 -0
  109. package/logos/eu/condensed-version/positive/logo-eu--ca.svg +16 -0
  110. package/logos/eu/condensed-version/positive/logo-eu--cs.svg +20 -0
  111. package/logos/eu/condensed-version/positive/logo-eu--da.svg +20 -0
  112. package/logos/eu/condensed-version/positive/logo-eu--de.svg +20 -0
  113. package/logos/eu/condensed-version/positive/logo-eu--el.svg +20 -0
  114. package/logos/eu/condensed-version/positive/logo-eu--en.svg +20 -0
  115. package/logos/eu/condensed-version/positive/logo-eu--es.svg +20 -0
  116. package/logos/eu/condensed-version/positive/logo-eu--et.svg +20 -0
  117. package/logos/eu/condensed-version/positive/logo-eu--fi.svg +20 -0
  118. package/logos/eu/condensed-version/positive/logo-eu--fr.svg +20 -0
  119. package/logos/eu/condensed-version/positive/logo-eu--ga.svg +20 -0
  120. package/logos/eu/condensed-version/positive/logo-eu--hr.svg +20 -0
  121. package/logos/eu/condensed-version/positive/logo-eu--hu.svg +20 -0
  122. package/logos/eu/condensed-version/positive/logo-eu--is.svg +17 -0
  123. package/logos/eu/condensed-version/positive/logo-eu--it.svg +20 -0
  124. package/logos/eu/condensed-version/positive/logo-eu--lt.svg +20 -0
  125. package/logos/eu/condensed-version/positive/logo-eu--lv.svg +20 -0
  126. package/logos/eu/condensed-version/positive/logo-eu--mt.svg +20 -0
  127. package/logos/eu/condensed-version/positive/logo-eu--nl.svg +20 -0
  128. package/logos/eu/condensed-version/positive/logo-eu--no.svg +16 -0
  129. package/logos/eu/condensed-version/positive/logo-eu--pl.svg +20 -0
  130. package/logos/eu/condensed-version/positive/logo-eu--pt.svg +20 -0
  131. package/logos/eu/condensed-version/positive/logo-eu--ro.svg +20 -0
  132. package/logos/eu/condensed-version/positive/logo-eu--sk.svg +20 -0
  133. package/logos/eu/condensed-version/positive/logo-eu--sl.svg +20 -0
  134. package/logos/eu/condensed-version/positive/logo-eu--sv.svg +20 -0
  135. package/logos/eu/condensed-version/positive/logo-eu--tr.svg +16 -0
  136. package/logos/eu/logo-eu--mute.svg +10 -0
  137. package/logos/eu/standard-version/negative/logo-eu--ar.svg +18 -0
  138. package/logos/eu/standard-version/negative/logo-eu--bg.svg +17 -0
  139. package/logos/eu/standard-version/negative/logo-eu--ca.svg +16 -0
  140. package/logos/eu/standard-version/negative/logo-eu--cs.svg +17 -0
  141. package/logos/eu/standard-version/negative/logo-eu--da.svg +23 -0
  142. package/logos/eu/standard-version/negative/logo-eu--de.svg +21 -0
  143. package/logos/eu/standard-version/negative/logo-eu--el.svg +19 -0
  144. package/logos/eu/standard-version/negative/logo-eu--en.svg +18 -0
  145. package/logos/eu/standard-version/negative/logo-eu--es.svg +17 -0
  146. package/logos/eu/standard-version/negative/logo-eu--et.svg +16 -0
  147. package/logos/eu/standard-version/negative/logo-eu--fi.svg +19 -0
  148. package/logos/eu/standard-version/negative/logo-eu--fr.svg +20 -0
  149. package/logos/eu/standard-version/negative/logo-eu--ga.svg +21 -0
  150. package/logos/eu/standard-version/negative/logo-eu--hr.svg +18 -0
  151. package/logos/eu/standard-version/negative/logo-eu--hu.svg +16 -0
  152. package/logos/eu/standard-version/negative/logo-eu--is.svg +20 -0
  153. package/logos/eu/standard-version/negative/logo-eu--it.svg +18 -0
  154. package/logos/eu/standard-version/negative/logo-eu--lt.svg +19 -0
  155. package/logos/eu/standard-version/negative/logo-eu--lv.svg +21 -0
  156. package/logos/eu/standard-version/negative/logo-eu--mt.svg +19 -0
  157. package/logos/eu/standard-version/negative/logo-eu--nl.svg +17 -0
  158. package/logos/eu/standard-version/negative/logo-eu--no.svg +20 -0
  159. package/logos/eu/standard-version/negative/logo-eu--pl.svg +19 -0
  160. package/logos/eu/standard-version/negative/logo-eu--pt.svg +18 -0
  161. package/logos/eu/standard-version/negative/logo-eu--ro.svg +21 -0
  162. package/logos/eu/standard-version/negative/logo-eu--sk.svg +17 -0
  163. package/logos/eu/standard-version/negative/logo-eu--sl.svg +18 -0
  164. package/logos/eu/standard-version/negative/logo-eu--sv.svg +22 -0
  165. package/logos/eu/standard-version/negative/logo-eu--tr.svg +18 -0
  166. package/logos/eu/standard-version/positive/logo-eu--ar.svg +27 -0
  167. package/logos/eu/standard-version/positive/logo-eu--bg.svg +34 -0
  168. package/logos/eu/standard-version/positive/logo-eu--ca.svg +27 -0
  169. package/logos/eu/standard-version/positive/logo-eu--cs.svg +32 -0
  170. package/logos/eu/standard-version/positive/logo-eu--da.svg +38 -0
  171. package/logos/eu/standard-version/positive/logo-eu--de.svg +36 -0
  172. package/logos/eu/standard-version/positive/logo-eu--el.svg +34 -0
  173. package/logos/eu/standard-version/positive/logo-eu--en.svg +33 -0
  174. package/logos/eu/standard-version/positive/logo-eu--es.svg +32 -0
  175. package/logos/eu/standard-version/positive/logo-eu--et.svg +31 -0
  176. package/logos/eu/standard-version/positive/logo-eu--fi.svg +34 -0
  177. package/logos/eu/standard-version/positive/logo-eu--fr.svg +35 -0
  178. package/logos/eu/standard-version/positive/logo-eu--ga.svg +36 -0
  179. package/logos/eu/standard-version/positive/logo-eu--hr.svg +33 -0
  180. package/logos/eu/standard-version/positive/logo-eu--hu.svg +31 -0
  181. package/logos/eu/standard-version/positive/logo-eu--is.svg +31 -0
  182. package/logos/eu/standard-version/positive/logo-eu--it.svg +33 -0
  183. package/logos/eu/standard-version/positive/logo-eu--lt.svg +34 -0
  184. package/logos/eu/standard-version/positive/logo-eu--lv.svg +36 -0
  185. package/logos/eu/standard-version/positive/logo-eu--mt.svg +34 -0
  186. package/logos/eu/standard-version/positive/logo-eu--nl.svg +32 -0
  187. package/logos/eu/standard-version/positive/logo-eu--no.svg +31 -0
  188. package/logos/eu/standard-version/positive/logo-eu--pl.svg +34 -0
  189. package/logos/eu/standard-version/positive/logo-eu--pt.svg +33 -0
  190. package/logos/eu/standard-version/positive/logo-eu--ro.svg +36 -0
  191. package/logos/eu/standard-version/positive/logo-eu--sk.svg +32 -0
  192. package/logos/eu/standard-version/positive/logo-eu--sl.svg +33 -0
  193. package/logos/eu/standard-version/positive/logo-eu--sv.svg +37 -0
  194. package/logos/eu/standard-version/positive/logo-eu--tr.svg +29 -0
  195. package/package.json +24 -17
  196. package/src/scss/_badges.scss +6 -0
  197. package/src/scss/_buttons.scss +2 -2
  198. package/src/scss/base/_colors.scss +22 -0
  199. package/src/scss/base/_utilities.scss +1 -1
  200. package/src/scss/base/_variables.scss +1 -24
  201. package/src/scss/oe-bcl-joinup.scss +13 -2
  202. package/templates/bcl-accordion/accordion.html.twig +7 -2
  203. package/templates/bcl-alert/alert.html.twig +5 -5
  204. package/templates/bcl-badge/badge.html.twig +5 -5
  205. package/templates/bcl-base-templates/content-type.html.twig +14 -0
  206. package/templates/bcl-blockquote/blockquote.html.twig +18 -3
  207. package/templates/bcl-breadcrumb/breadcrumb.html.twig +2 -2
  208. package/templates/bcl-card/card.html.twig +19 -2
  209. package/templates/bcl-card-layout/card-layout.html.twig +6 -1
  210. package/templates/bcl-contact-form/contact-form.html.twig +5 -0
  211. package/templates/bcl-content-banner/content-banner.html.twig +38 -21
  212. package/templates/bcl-date-block/date-block.html.twig +3 -4
  213. package/templates/bcl-description-list/description-list.html.twig +39 -13
  214. package/templates/bcl-event/event.html.twig +5 -22
  215. package/templates/bcl-fact-figures/fact-figures.html.twig +5 -5
  216. package/templates/bcl-featured-media/featured-media.html.twig +3 -1
  217. package/templates/bcl-file/file.html.twig +6 -5
  218. package/templates/bcl-footer/footer.html.twig +1 -1
  219. package/templates/bcl-form/form.html.twig +26 -0
  220. package/templates/bcl-header/header.html.twig +31 -15
  221. package/templates/bcl-language-list/language-list-grid.html.twig +68 -0
  222. package/templates/bcl-language-list/language-list-modal.html.twig +58 -0
  223. package/templates/bcl-language-list/language-list.html.twig +111 -0
  224. package/templates/bcl-language-switcher/language-switcher.html.twig +44 -0
  225. package/templates/bcl-link/link.html.twig +1 -1
  226. package/templates/bcl-links-block/links-block.html.twig +2 -2
  227. package/templates/bcl-listing/listing.html.twig +10 -3
  228. package/templates/bcl-modal/modal.html.twig +12 -1
  229. package/templates/bcl-navbar/navbar.html.twig +39 -28
  230. package/templates/bcl-navigation/navigation.html.twig +8 -3
  231. package/templates/bcl-page/page.html.twig +1 -1
  232. package/templates/bcl-pagination/pagination.html.twig +8 -0
  233. package/templates/bcl-progress/progress.html.twig +6 -1
  234. package/templates/bcl-project/project.html.twig +112 -0
  235. package/templates/bcl-project-status/project-status.html.twig +128 -0
  236. package/templates/bcl-recent-activities/recent-activities.html.twig +1 -1
  237. package/templates/bcl-select/select.html.twig +3 -0
  238. package/templates/bcl-subscription/subscription-modal.html.twig +24 -0
  239. package/templates/bcl-subscription/subscription.html.twig +10 -0
  240. package/templates/bcl-subscription-block/subscription-block.html.twig +36 -0
  241. package/templates/bcl-timeline/timeline.html.twig +3 -3
  242. package/templates/bcl-toast/toasts.html.twig +1 -0
  243. package/templates/bcl-user/user-view-compact.html.twig +9 -2
  244. package/templates/bcl-user/user-view.html.twig +2 -12
  245. package/icons/bootstrap-icons.svg +0 -1
@@ -2077,29 +2077,32 @@
2077
2077
  return placement.split('-')[0];
2078
2078
  }
2079
2079
 
2080
- // import { isHTMLElement } from './instanceOf';
2081
- function getBoundingClientRect(element, // eslint-disable-next-line unused-imports/no-unused-vars
2082
- includeScale) {
2080
+ var max = Math.max;
2081
+ var min = Math.min;
2082
+ var round = Math.round;
2083
+
2084
+ function getBoundingClientRect(element, includeScale) {
2085
+ if (includeScale === void 0) {
2086
+ includeScale = false;
2087
+ }
2083
2088
 
2084
2089
  var rect = element.getBoundingClientRect();
2085
2090
  var scaleX = 1;
2086
- var scaleY = 1; // FIXME:
2087
- // `offsetWidth` returns an integer while `getBoundingClientRect`
2088
- // returns a float. This results in `scaleX` or `scaleY` being
2089
- // non-1 when it should be for elements that aren't a full pixel in
2090
- // width or height.
2091
- // if (isHTMLElement(element) && includeScale) {
2092
- // const offsetHeight = element.offsetHeight;
2093
- // const offsetWidth = element.offsetWidth;
2094
- // // Do not attempt to divide by 0, otherwise we get `Infinity` as scale
2095
- // // Fallback to 1 in case both values are `0`
2096
- // if (offsetWidth > 0) {
2097
- // scaleX = rect.width / offsetWidth || 1;
2098
- // }
2099
- // if (offsetHeight > 0) {
2100
- // scaleY = rect.height / offsetHeight || 1;
2101
- // }
2102
- // }
2091
+ var scaleY = 1;
2092
+
2093
+ if (isHTMLElement(element) && includeScale) {
2094
+ var offsetHeight = element.offsetHeight;
2095
+ var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale
2096
+ // Fallback to 1 in case both values are `0`
2097
+
2098
+ if (offsetWidth > 0) {
2099
+ scaleX = round(rect.width) / offsetWidth || 1;
2100
+ }
2101
+
2102
+ if (offsetHeight > 0) {
2103
+ scaleY = round(rect.height) / offsetHeight || 1;
2104
+ }
2105
+ }
2103
2106
 
2104
2107
  return {
2105
2108
  width: rect.width / scaleX,
@@ -2254,13 +2257,13 @@
2254
2257
  return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
2255
2258
  }
2256
2259
 
2257
- var max = Math.max;
2258
- var min = Math.min;
2259
- var round = Math.round;
2260
-
2261
2260
  function within(min$1, value, max$1) {
2262
2261
  return max(min$1, min(value, max$1));
2263
2262
  }
2263
+ function withinMaxClamp(min, value, max) {
2264
+ var v = within(min, value, max);
2265
+ return v > max ? max : v;
2266
+ }
2264
2267
 
2265
2268
  function getFreshSideObject() {
2266
2269
  return {
@@ -2392,8 +2395,8 @@
2392
2395
  var win = window;
2393
2396
  var dpr = win.devicePixelRatio || 1;
2394
2397
  return {
2395
- x: round(round(x * dpr) / dpr) || 0,
2396
- y: round(round(y * dpr) / dpr) || 0
2398
+ x: round(x * dpr) / dpr || 0,
2399
+ y: round(y * dpr) / dpr || 0
2397
2400
  };
2398
2401
  }
2399
2402
 
@@ -2408,14 +2411,23 @@
2408
2411
  position = _ref2.position,
2409
2412
  gpuAcceleration = _ref2.gpuAcceleration,
2410
2413
  adaptive = _ref2.adaptive,
2411
- roundOffsets = _ref2.roundOffsets;
2412
-
2413
- var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,
2414
- _ref3$x = _ref3.x,
2415
- x = _ref3$x === void 0 ? 0 : _ref3$x,
2416
- _ref3$y = _ref3.y,
2417
- y = _ref3$y === void 0 ? 0 : _ref3$y;
2414
+ roundOffsets = _ref2.roundOffsets,
2415
+ isFixed = _ref2.isFixed;
2416
+ var _offsets$x = offsets.x,
2417
+ x = _offsets$x === void 0 ? 0 : _offsets$x,
2418
+ _offsets$y = offsets.y,
2419
+ y = _offsets$y === void 0 ? 0 : _offsets$y;
2420
+
2421
+ var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
2422
+ x: x,
2423
+ y: y
2424
+ }) : {
2425
+ x: x,
2426
+ y: y
2427
+ };
2418
2428
 
2429
+ x = _ref3.x;
2430
+ y = _ref3.y;
2419
2431
  var hasX = offsets.hasOwnProperty('x');
2420
2432
  var hasY = offsets.hasOwnProperty('y');
2421
2433
  var sideX = left;
@@ -2440,16 +2452,18 @@
2440
2452
  offsetParent = offsetParent;
2441
2453
 
2442
2454
  if (placement === top || (placement === left || placement === right) && variation === end) {
2443
- sideY = bottom; // $FlowFixMe[prop-missing]
2444
-
2445
- y -= offsetParent[heightProp] - popperRect.height;
2455
+ sideY = bottom;
2456
+ var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
2457
+ offsetParent[heightProp];
2458
+ y -= offsetY - popperRect.height;
2446
2459
  y *= gpuAcceleration ? 1 : -1;
2447
2460
  }
2448
2461
 
2449
2462
  if (placement === left || (placement === top || placement === bottom) && variation === end) {
2450
- sideX = right; // $FlowFixMe[prop-missing]
2451
-
2452
- x -= offsetParent[widthProp] - popperRect.width;
2463
+ sideX = right;
2464
+ var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
2465
+ offsetParent[widthProp];
2466
+ x -= offsetX - popperRect.width;
2453
2467
  x *= gpuAcceleration ? 1 : -1;
2454
2468
  }
2455
2469
  }
@@ -2458,6 +2472,17 @@
2458
2472
  position: position
2459
2473
  }, adaptive && unsetSides);
2460
2474
 
2475
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
2476
+ x: x,
2477
+ y: y
2478
+ }) : {
2479
+ x: x,
2480
+ y: y
2481
+ };
2482
+
2483
+ x = _ref4.x;
2484
+ y = _ref4.y;
2485
+
2461
2486
  if (gpuAcceleration) {
2462
2487
  var _Object$assign;
2463
2488
 
@@ -2467,9 +2492,9 @@
2467
2492
  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
2468
2493
  }
2469
2494
 
2470
- function computeStyles(_ref4) {
2471
- var state = _ref4.state,
2472
- options = _ref4.options;
2495
+ function computeStyles(_ref5) {
2496
+ var state = _ref5.state,
2497
+ options = _ref5.options;
2473
2498
  var _options$gpuAccelerat = options.gpuAcceleration,
2474
2499
  gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
2475
2500
  _options$adaptive = options.adaptive,
@@ -2492,7 +2517,8 @@
2492
2517
  variation: getVariation(state.placement),
2493
2518
  popper: state.elements.popper,
2494
2519
  popperRect: state.rects.popper,
2495
- gpuAcceleration: gpuAcceleration
2520
+ gpuAcceleration: gpuAcceleration,
2521
+ isFixed: state.options.strategy === 'fixed'
2496
2522
  };
2497
2523
 
2498
2524
  if (state.modifiersData.popperOffsets != null) {
@@ -2750,7 +2776,7 @@
2750
2776
  }
2751
2777
 
2752
2778
  function getClientRectFromMixedType(element, clippingParent) {
2753
- return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
2779
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
2754
2780
  } // A "clipping parent" is an overflowable container with the characteristic of
2755
2781
  // clipping (or hiding) overflowing elements with a position different from
2756
2782
  // `initial`
@@ -3267,6 +3293,14 @@
3267
3293
  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
3268
3294
  placement: state.placement
3269
3295
  })) : tetherOffset;
3296
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
3297
+ mainAxis: tetherOffsetValue,
3298
+ altAxis: tetherOffsetValue
3299
+ } : Object.assign({
3300
+ mainAxis: 0,
3301
+ altAxis: 0
3302
+ }, tetherOffsetValue);
3303
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
3270
3304
  var data = {
3271
3305
  x: 0,
3272
3306
  y: 0
@@ -3276,13 +3310,15 @@
3276
3310
  return;
3277
3311
  }
3278
3312
 
3279
- if (checkMainAxis || checkAltAxis) {
3313
+ if (checkMainAxis) {
3314
+ var _offsetModifierState$;
3315
+
3280
3316
  var mainSide = mainAxis === 'y' ? top : left;
3281
3317
  var altSide = mainAxis === 'y' ? bottom : right;
3282
3318
  var len = mainAxis === 'y' ? 'height' : 'width';
3283
3319
  var offset = popperOffsets[mainAxis];
3284
- var min$1 = popperOffsets[mainAxis] + overflow[mainSide];
3285
- var max$1 = popperOffsets[mainAxis] - overflow[altSide];
3320
+ var min$1 = offset + overflow[mainSide];
3321
+ var max$1 = offset - overflow[altSide];
3286
3322
  var additive = tether ? -popperRect[len] / 2 : 0;
3287
3323
  var minLen = variation === start ? referenceRect[len] : popperRect[len];
3288
3324
  var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
@@ -3302,36 +3338,45 @@
3302
3338
  // width or height)
3303
3339
 
3304
3340
  var arrowLen = within(0, referenceRect[len], arrowRect[len]);
3305
- var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;
3306
- var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;
3341
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
3342
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
3307
3343
  var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
3308
3344
  var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
3309
- var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;
3310
- var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;
3311
- var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;
3345
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
3346
+ var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
3347
+ var tetherMax = offset + maxOffset - offsetModifierValue;
3348
+ var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
3349
+ popperOffsets[mainAxis] = preventedOffset;
3350
+ data[mainAxis] = preventedOffset - offset;
3351
+ }
3312
3352
 
3313
- if (checkMainAxis) {
3314
- var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
3315
- popperOffsets[mainAxis] = preventedOffset;
3316
- data[mainAxis] = preventedOffset - offset;
3317
- }
3353
+ if (checkAltAxis) {
3354
+ var _offsetModifierState$2;
3318
3355
 
3319
- if (checkAltAxis) {
3320
- var _mainSide = mainAxis === 'x' ? top : left;
3356
+ var _mainSide = mainAxis === 'x' ? top : left;
3321
3357
 
3322
- var _altSide = mainAxis === 'x' ? bottom : right;
3358
+ var _altSide = mainAxis === 'x' ? bottom : right;
3323
3359
 
3324
- var _offset = popperOffsets[altAxis];
3360
+ var _offset = popperOffsets[altAxis];
3325
3361
 
3326
- var _min = _offset + overflow[_mainSide];
3362
+ var _len = altAxis === 'y' ? 'height' : 'width';
3327
3363
 
3328
- var _max = _offset - overflow[_altSide];
3364
+ var _min = _offset + overflow[_mainSide];
3329
3365
 
3330
- var _preventedOffset = within(tether ? min(_min, tetherMin) : _min, _offset, tether ? max(_max, tetherMax) : _max);
3366
+ var _max = _offset - overflow[_altSide];
3331
3367
 
3332
- popperOffsets[altAxis] = _preventedOffset;
3333
- data[altAxis] = _preventedOffset - _offset;
3334
- }
3368
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
3369
+
3370
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
3371
+
3372
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
3373
+
3374
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
3375
+
3376
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
3377
+
3378
+ popperOffsets[altAxis] = _preventedOffset;
3379
+ data[altAxis] = _preventedOffset - _offset;
3335
3380
  }
3336
3381
 
3337
3382
  state.modifiersData[name] = data;
@@ -3363,8 +3408,8 @@
3363
3408
 
3364
3409
  function isElementScaled(element) {
3365
3410
  var rect = element.getBoundingClientRect();
3366
- var scaleX = rect.width / element.offsetWidth || 1;
3367
- var scaleY = rect.height / element.offsetHeight || 1;
3411
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
3412
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
3368
3413
  return scaleX !== 1 || scaleY !== 1;
3369
3414
  } // Returns the composite rect of an element relative to its offsetParent.
3370
3415
  // Composite means it takes into account transforms as well as layout.
@@ -3376,9 +3421,9 @@
3376
3421
  }
3377
3422
 
3378
3423
  var isOffsetParentAnElement = isHTMLElement(offsetParent);
3379
- isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3424
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3380
3425
  var documentElement = getDocumentElement(offsetParent);
3381
- var rect = getBoundingClientRect(elementOrVirtualElement);
3426
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
3382
3427
  var scroll = {
3383
3428
  scrollLeft: 0,
3384
3429
  scrollTop: 0
@@ -3395,7 +3440,7 @@
3395
3440
  }
3396
3441
 
3397
3442
  if (isHTMLElement(offsetParent)) {
3398
- offsets = getBoundingClientRect(offsetParent);
3443
+ offsets = getBoundingClientRect(offsetParent, true);
3399
3444
  offsets.x += offsetParent.clientLeft;
3400
3445
  offsets.y += offsetParent.clientTop;
3401
3446
  } else if (documentElement) {