@openeuropa/bcl-theme-joinup 0.18.0 → 0.19.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 (156) hide show
  1. package/bcl-builder.config.js +10 -0
  2. package/css/oe-bcl-joinup.css +362 -298
  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/icons-flag.svg +1 -1
  7. package/js/oe-bcl-joinup.bundle.js +117 -72
  8. package/js/oe-bcl-joinup.bundle.js.map +1 -1
  9. package/js/oe-bcl-joinup.bundle.min.js +1 -1
  10. package/js/oe-bcl-joinup.bundle.min.js.map +1 -1
  11. package/js/oe-bcl-joinup.umd.js +117 -72
  12. package/js/oe-bcl-joinup.umd.js.map +1 -1
  13. package/js/oe-bcl-joinup.umd.min.js +1 -1
  14. package/js/oe-bcl-joinup.umd.min.js.map +1 -1
  15. package/logos/ec/logo-ec--ar.svg +82 -0
  16. package/logos/ec/logo-ec--bg.svg +233 -0
  17. package/logos/ec/logo-ec--ca.svg +87 -0
  18. package/logos/ec/logo-ec--cs.svg +207 -0
  19. package/logos/ec/logo-ec--da.svg +235 -0
  20. package/logos/ec/logo-ec--de.svg +243 -0
  21. package/logos/ec/logo-ec--el.svg +204 -0
  22. package/logos/ec/logo-ec--en.svg +233 -0
  23. package/logos/ec/logo-ec--es.svg +210 -0
  24. package/logos/ec/logo-ec--et.svg +207 -0
  25. package/logos/ec/logo-ec--fi.svg +219 -0
  26. package/logos/ec/logo-ec--fr.svg +1 -0
  27. package/logos/ec/logo-ec--ga.svg +221 -0
  28. package/logos/ec/logo-ec--hr.svg +216 -0
  29. package/logos/ec/logo-ec--hu.svg +218 -0
  30. package/logos/ec/logo-ec--is.svg +105 -0
  31. package/logos/ec/logo-ec--it.svg +241 -0
  32. package/logos/ec/logo-ec--lt.svg +203 -0
  33. package/logos/ec/logo-ec--lv.svg +212 -0
  34. package/logos/ec/logo-ec--mt.svg +239 -0
  35. package/logos/ec/logo-ec--mute.svg +52 -0
  36. package/logos/ec/logo-ec--nl.svg +231 -0
  37. package/logos/ec/logo-ec--no.svg +89 -0
  38. package/logos/ec/logo-ec--pl.svg +225 -0
  39. package/logos/ec/logo-ec--pt.svg +228 -0
  40. package/logos/ec/logo-ec--ro.svg +225 -0
  41. package/logos/ec/logo-ec--sk.svg +217 -0
  42. package/logos/ec/logo-ec--sl.svg +216 -0
  43. package/logos/ec/logo-ec--sv.svg +254 -0
  44. package/logos/ec/logo-ec--tr.svg +87 -0
  45. package/logos/ec/negative/logo-ec--ar.svg +83 -0
  46. package/logos/ec/negative/logo-ec--bg.svg +59 -0
  47. package/logos/ec/negative/logo-ec--ca.svg +88 -0
  48. package/logos/ec/negative/logo-ec--cs.svg +86 -0
  49. package/logos/ec/negative/logo-ec--da.svg +91 -0
  50. package/logos/ec/negative/logo-ec--de.svg +93 -0
  51. package/logos/ec/negative/logo-ec--el.svg +89 -0
  52. package/logos/ec/negative/logo-ec--en.svg +90 -0
  53. package/logos/ec/negative/logo-ec--es.svg +87 -0
  54. package/logos/ec/negative/logo-ec--et.svg +87 -0
  55. package/logos/ec/negative/logo-ec--fi.svg +88 -0
  56. package/logos/ec/negative/logo-ec--fr.svg +92 -0
  57. package/logos/ec/negative/logo-ec--ga.svg +90 -0
  58. package/logos/ec/negative/logo-ec--hr.svg +88 -0
  59. package/logos/ec/negative/logo-ec--hu.svg +58 -0
  60. package/logos/ec/negative/logo-ec--is.svg +105 -0
  61. package/logos/ec/negative/logo-ec--it.svg +95 -0
  62. package/logos/ec/negative/logo-ec--lt.svg +87 -0
  63. package/logos/ec/negative/logo-ec--lv.svg +87 -0
  64. package/logos/ec/negative/logo-ec--mt.svg +98 -0
  65. package/logos/ec/negative/logo-ec--nl.svg +89 -0
  66. package/logos/ec/negative/logo-ec--no.svg +90 -0
  67. package/logos/ec/negative/logo-ec--pl.svg +89 -0
  68. package/logos/ec/negative/logo-ec--pt.svg +58 -0
  69. package/logos/ec/negative/logo-ec--ro.svg +94 -0
  70. package/logos/ec/negative/logo-ec--sk.svg +87 -0
  71. package/logos/ec/negative/logo-ec--sl.svg +88 -0
  72. package/logos/ec/negative/logo-ec--sv.svg +94 -0
  73. package/logos/ec/negative/logo-ec--tr.svg +87 -0
  74. package/logos/eu/condensed-version/positive/logo-eu--ar.svg +29 -0
  75. package/logos/eu/condensed-version/positive/logo-eu--bg.svg +20 -0
  76. package/logos/eu/condensed-version/positive/logo-eu--ca.svg +16 -0
  77. package/logos/eu/condensed-version/positive/logo-eu--cs.svg +20 -0
  78. package/logos/eu/condensed-version/positive/logo-eu--da.svg +20 -0
  79. package/logos/eu/condensed-version/positive/logo-eu--de.svg +20 -0
  80. package/logos/eu/condensed-version/positive/logo-eu--el.svg +20 -0
  81. package/logos/eu/condensed-version/positive/logo-eu--en.svg +20 -0
  82. package/logos/eu/condensed-version/positive/logo-eu--es.svg +20 -0
  83. package/logos/eu/condensed-version/positive/logo-eu--et.svg +20 -0
  84. package/logos/eu/condensed-version/positive/logo-eu--fi.svg +20 -0
  85. package/logos/eu/condensed-version/positive/logo-eu--fr.svg +20 -0
  86. package/logos/eu/condensed-version/positive/logo-eu--ga.svg +20 -0
  87. package/logos/eu/condensed-version/positive/logo-eu--hr.svg +20 -0
  88. package/logos/eu/condensed-version/positive/logo-eu--hu.svg +20 -0
  89. package/logos/eu/condensed-version/positive/logo-eu--is.svg +17 -0
  90. package/logos/eu/condensed-version/positive/logo-eu--it.svg +20 -0
  91. package/logos/eu/condensed-version/positive/logo-eu--lt.svg +20 -0
  92. package/logos/eu/condensed-version/positive/logo-eu--lv.svg +20 -0
  93. package/logos/eu/condensed-version/positive/logo-eu--mt.svg +20 -0
  94. package/logos/eu/condensed-version/positive/logo-eu--nl.svg +20 -0
  95. package/logos/eu/condensed-version/positive/logo-eu--no.svg +16 -0
  96. package/logos/eu/condensed-version/positive/logo-eu--pl.svg +20 -0
  97. package/logos/eu/condensed-version/positive/logo-eu--pt.svg +20 -0
  98. package/logos/eu/condensed-version/positive/logo-eu--ro.svg +20 -0
  99. package/logos/eu/condensed-version/positive/logo-eu--sk.svg +20 -0
  100. package/logos/eu/condensed-version/positive/logo-eu--sl.svg +20 -0
  101. package/logos/eu/condensed-version/positive/logo-eu--sv.svg +20 -0
  102. package/logos/eu/condensed-version/positive/logo-eu--tr.svg +16 -0
  103. package/logos/eu/logo-eu--mute.svg +10 -0
  104. package/logos/eu/standard-version/positive/logo-eu--ar.svg +27 -0
  105. package/logos/eu/standard-version/positive/logo-eu--bg.svg +34 -0
  106. package/logos/eu/standard-version/positive/logo-eu--ca.svg +27 -0
  107. package/logos/eu/standard-version/positive/logo-eu--cs.svg +32 -0
  108. package/logos/eu/standard-version/positive/logo-eu--da.svg +38 -0
  109. package/logos/eu/standard-version/positive/logo-eu--de.svg +36 -0
  110. package/logos/eu/standard-version/positive/logo-eu--el.svg +34 -0
  111. package/logos/eu/standard-version/positive/logo-eu--en.svg +33 -0
  112. package/logos/eu/standard-version/positive/logo-eu--es.svg +32 -0
  113. package/logos/eu/standard-version/positive/logo-eu--et.svg +31 -0
  114. package/logos/eu/standard-version/positive/logo-eu--fi.svg +34 -0
  115. package/logos/eu/standard-version/positive/logo-eu--fr.svg +35 -0
  116. package/logos/eu/standard-version/positive/logo-eu--ga.svg +36 -0
  117. package/logos/eu/standard-version/positive/logo-eu--hr.svg +33 -0
  118. package/logos/eu/standard-version/positive/logo-eu--hu.svg +31 -0
  119. package/logos/eu/standard-version/positive/logo-eu--is.svg +31 -0
  120. package/logos/eu/standard-version/positive/logo-eu--it.svg +33 -0
  121. package/logos/eu/standard-version/positive/logo-eu--lt.svg +34 -0
  122. package/logos/eu/standard-version/positive/logo-eu--lv.svg +36 -0
  123. package/logos/eu/standard-version/positive/logo-eu--mt.svg +34 -0
  124. package/logos/eu/standard-version/positive/logo-eu--nl.svg +32 -0
  125. package/logos/eu/standard-version/positive/logo-eu--no.svg +31 -0
  126. package/logos/eu/standard-version/positive/logo-eu--pl.svg +34 -0
  127. package/logos/eu/standard-version/positive/logo-eu--pt.svg +33 -0
  128. package/logos/eu/standard-version/positive/logo-eu--ro.svg +36 -0
  129. package/logos/eu/standard-version/positive/logo-eu--sk.svg +32 -0
  130. package/logos/eu/standard-version/positive/logo-eu--sl.svg +33 -0
  131. package/logos/eu/standard-version/positive/logo-eu--sv.svg +37 -0
  132. package/logos/eu/standard-version/positive/logo-eu--tr.svg +29 -0
  133. package/package.json +14 -12
  134. package/src/scss/base/_colors.scss +22 -0
  135. package/src/scss/base/_variables.scss +0 -24
  136. package/src/scss/oe-bcl-joinup.scss +10 -2
  137. package/templates/bcl-accordion/accordion.html.twig +7 -2
  138. package/templates/bcl-alert/alert.html.twig +1 -1
  139. package/templates/bcl-badge/badge.html.twig +1 -1
  140. package/templates/bcl-base-templates/content-type.html.twig +14 -0
  141. package/templates/bcl-blockquote/blockquote.html.twig +18 -3
  142. package/templates/bcl-card/card.html.twig +8 -0
  143. package/templates/bcl-contact-form/contact-form.html.twig +5 -0
  144. package/templates/bcl-content-banner/content-banner.html.twig +1 -2
  145. package/templates/bcl-date-block/date-block.html.twig +3 -4
  146. package/templates/bcl-description-list/description-list.html.twig +29 -11
  147. package/templates/bcl-event/event.html.twig +5 -22
  148. package/templates/bcl-featured-media/featured-media.html.twig +3 -1
  149. package/templates/bcl-file/file.html.twig +3 -2
  150. package/templates/bcl-form/form.html.twig +26 -0
  151. package/templates/bcl-links-block/links-block.html.twig +1 -1
  152. package/templates/bcl-listing/listing.html.twig +6 -0
  153. package/templates/bcl-progress/progress.html.twig +5 -1
  154. package/templates/bcl-project/project.html.twig +60 -0
  155. package/templates/bcl-project-status/project-status.html.twig +109 -0
  156. package/templates/bcl-recent-activities/recent-activities.html.twig +1 -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 {
@@ -2383,8 +2386,8 @@
2383
2386
  var win = window;
2384
2387
  var dpr = win.devicePixelRatio || 1;
2385
2388
  return {
2386
- x: round(round(x * dpr) / dpr) || 0,
2387
- y: round(round(y * dpr) / dpr) || 0
2389
+ x: round(x * dpr) / dpr || 0,
2390
+ y: round(y * dpr) / dpr || 0
2388
2391
  };
2389
2392
  }
2390
2393
 
@@ -2399,14 +2402,23 @@
2399
2402
  position = _ref2.position,
2400
2403
  gpuAcceleration = _ref2.gpuAcceleration,
2401
2404
  adaptive = _ref2.adaptive,
2402
- roundOffsets = _ref2.roundOffsets;
2403
-
2404
- var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,
2405
- _ref3$x = _ref3.x,
2406
- x = _ref3$x === void 0 ? 0 : _ref3$x,
2407
- _ref3$y = _ref3.y,
2408
- y = _ref3$y === void 0 ? 0 : _ref3$y;
2405
+ roundOffsets = _ref2.roundOffsets,
2406
+ isFixed = _ref2.isFixed;
2407
+ var _offsets$x = offsets.x,
2408
+ x = _offsets$x === void 0 ? 0 : _offsets$x,
2409
+ _offsets$y = offsets.y,
2410
+ y = _offsets$y === void 0 ? 0 : _offsets$y;
2411
+
2412
+ var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
2413
+ x: x,
2414
+ y: y
2415
+ }) : {
2416
+ x: x,
2417
+ y: y
2418
+ };
2409
2419
 
2420
+ x = _ref3.x;
2421
+ y = _ref3.y;
2410
2422
  var hasX = offsets.hasOwnProperty('x');
2411
2423
  var hasY = offsets.hasOwnProperty('y');
2412
2424
  var sideX = left;
@@ -2431,16 +2443,18 @@
2431
2443
  offsetParent = offsetParent;
2432
2444
 
2433
2445
  if (placement === top || (placement === left || placement === right) && variation === end) {
2434
- sideY = bottom; // $FlowFixMe[prop-missing]
2435
-
2436
- y -= offsetParent[heightProp] - popperRect.height;
2446
+ sideY = bottom;
2447
+ var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
2448
+ offsetParent[heightProp];
2449
+ y -= offsetY - popperRect.height;
2437
2450
  y *= gpuAcceleration ? 1 : -1;
2438
2451
  }
2439
2452
 
2440
2453
  if (placement === left || (placement === top || placement === bottom) && variation === end) {
2441
- sideX = right; // $FlowFixMe[prop-missing]
2442
-
2443
- x -= offsetParent[widthProp] - popperRect.width;
2454
+ sideX = right;
2455
+ var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
2456
+ offsetParent[widthProp];
2457
+ x -= offsetX - popperRect.width;
2444
2458
  x *= gpuAcceleration ? 1 : -1;
2445
2459
  }
2446
2460
  }
@@ -2449,6 +2463,17 @@
2449
2463
  position: position
2450
2464
  }, adaptive && unsetSides);
2451
2465
 
2466
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
2467
+ x: x,
2468
+ y: y
2469
+ }) : {
2470
+ x: x,
2471
+ y: y
2472
+ };
2473
+
2474
+ x = _ref4.x;
2475
+ y = _ref4.y;
2476
+
2452
2477
  if (gpuAcceleration) {
2453
2478
  var _Object$assign;
2454
2479
 
@@ -2458,9 +2483,9 @@
2458
2483
  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
2459
2484
  }
2460
2485
 
2461
- function computeStyles(_ref4) {
2462
- var state = _ref4.state,
2463
- options = _ref4.options;
2486
+ function computeStyles(_ref5) {
2487
+ var state = _ref5.state,
2488
+ options = _ref5.options;
2464
2489
  var _options$gpuAccelerat = options.gpuAcceleration,
2465
2490
  gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
2466
2491
  _options$adaptive = options.adaptive,
@@ -2473,7 +2498,8 @@
2473
2498
  variation: getVariation(state.placement),
2474
2499
  popper: state.elements.popper,
2475
2500
  popperRect: state.rects.popper,
2476
- gpuAcceleration: gpuAcceleration
2501
+ gpuAcceleration: gpuAcceleration,
2502
+ isFixed: state.options.strategy === 'fixed'
2477
2503
  };
2478
2504
 
2479
2505
  if (state.modifiersData.popperOffsets != null) {
@@ -2731,7 +2757,7 @@
2731
2757
  }
2732
2758
 
2733
2759
  function getClientRectFromMixedType(element, clippingParent) {
2734
- return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
2760
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
2735
2761
  } // A "clipping parent" is an overflowable container with the characteristic of
2736
2762
  // clipping (or hiding) overflowing elements with a position different from
2737
2763
  // `initial`
@@ -3244,6 +3270,14 @@
3244
3270
  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
3245
3271
  placement: state.placement
3246
3272
  })) : tetherOffset;
3273
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
3274
+ mainAxis: tetherOffsetValue,
3275
+ altAxis: tetherOffsetValue
3276
+ } : Object.assign({
3277
+ mainAxis: 0,
3278
+ altAxis: 0
3279
+ }, tetherOffsetValue);
3280
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
3247
3281
  var data = {
3248
3282
  x: 0,
3249
3283
  y: 0
@@ -3253,13 +3287,15 @@
3253
3287
  return;
3254
3288
  }
3255
3289
 
3256
- if (checkMainAxis || checkAltAxis) {
3290
+ if (checkMainAxis) {
3291
+ var _offsetModifierState$;
3292
+
3257
3293
  var mainSide = mainAxis === 'y' ? top : left;
3258
3294
  var altSide = mainAxis === 'y' ? bottom : right;
3259
3295
  var len = mainAxis === 'y' ? 'height' : 'width';
3260
3296
  var offset = popperOffsets[mainAxis];
3261
- var min$1 = popperOffsets[mainAxis] + overflow[mainSide];
3262
- var max$1 = popperOffsets[mainAxis] - overflow[altSide];
3297
+ var min$1 = offset + overflow[mainSide];
3298
+ var max$1 = offset - overflow[altSide];
3263
3299
  var additive = tether ? -popperRect[len] / 2 : 0;
3264
3300
  var minLen = variation === start ? referenceRect[len] : popperRect[len];
3265
3301
  var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
@@ -3279,36 +3315,45 @@
3279
3315
  // width or height)
3280
3316
 
3281
3317
  var arrowLen = within(0, referenceRect[len], arrowRect[len]);
3282
- var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;
3283
- var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;
3318
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
3319
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
3284
3320
  var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
3285
3321
  var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
3286
- var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;
3287
- var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;
3288
- var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;
3322
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
3323
+ var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
3324
+ var tetherMax = offset + maxOffset - offsetModifierValue;
3325
+ var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
3326
+ popperOffsets[mainAxis] = preventedOffset;
3327
+ data[mainAxis] = preventedOffset - offset;
3328
+ }
3289
3329
 
3290
- if (checkMainAxis) {
3291
- var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
3292
- popperOffsets[mainAxis] = preventedOffset;
3293
- data[mainAxis] = preventedOffset - offset;
3294
- }
3330
+ if (checkAltAxis) {
3331
+ var _offsetModifierState$2;
3295
3332
 
3296
- if (checkAltAxis) {
3297
- var _mainSide = mainAxis === 'x' ? top : left;
3333
+ var _mainSide = mainAxis === 'x' ? top : left;
3298
3334
 
3299
- var _altSide = mainAxis === 'x' ? bottom : right;
3335
+ var _altSide = mainAxis === 'x' ? bottom : right;
3300
3336
 
3301
- var _offset = popperOffsets[altAxis];
3337
+ var _offset = popperOffsets[altAxis];
3302
3338
 
3303
- var _min = _offset + overflow[_mainSide];
3339
+ var _len = altAxis === 'y' ? 'height' : 'width';
3304
3340
 
3305
- var _max = _offset - overflow[_altSide];
3341
+ var _min = _offset + overflow[_mainSide];
3306
3342
 
3307
- var _preventedOffset = within(tether ? min(_min, tetherMin) : _min, _offset, tether ? max(_max, tetherMax) : _max);
3343
+ var _max = _offset - overflow[_altSide];
3308
3344
 
3309
- popperOffsets[altAxis] = _preventedOffset;
3310
- data[altAxis] = _preventedOffset - _offset;
3311
- }
3345
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
3346
+
3347
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
3348
+
3349
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
3350
+
3351
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
3352
+
3353
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
3354
+
3355
+ popperOffsets[altAxis] = _preventedOffset;
3356
+ data[altAxis] = _preventedOffset - _offset;
3312
3357
  }
3313
3358
 
3314
3359
  state.modifiersData[name] = data;
@@ -3340,8 +3385,8 @@
3340
3385
 
3341
3386
  function isElementScaled(element) {
3342
3387
  var rect = element.getBoundingClientRect();
3343
- var scaleX = rect.width / element.offsetWidth || 1;
3344
- var scaleY = rect.height / element.offsetHeight || 1;
3388
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
3389
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
3345
3390
  return scaleX !== 1 || scaleY !== 1;
3346
3391
  } // Returns the composite rect of an element relative to its offsetParent.
3347
3392
  // Composite means it takes into account transforms as well as layout.
@@ -3353,9 +3398,9 @@
3353
3398
  }
3354
3399
 
3355
3400
  var isOffsetParentAnElement = isHTMLElement(offsetParent);
3356
- isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3401
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3357
3402
  var documentElement = getDocumentElement(offsetParent);
3358
- var rect = getBoundingClientRect(elementOrVirtualElement);
3403
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
3359
3404
  var scroll = {
3360
3405
  scrollLeft: 0,
3361
3406
  scrollTop: 0
@@ -3372,7 +3417,7 @@
3372
3417
  }
3373
3418
 
3374
3419
  if (isHTMLElement(offsetParent)) {
3375
- offsets = getBoundingClientRect(offsetParent);
3420
+ offsets = getBoundingClientRect(offsetParent, true);
3376
3421
  offsets.x += offsetParent.clientLeft;
3377
3422
  offsets.y += offsetParent.clientTop;
3378
3423
  } else if (documentElement) {