@zextras/carbonio-design-system 12.0.1 → 12.0.3

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.
@@ -436,7 +436,7 @@ var insertStyles = function insertStyles(cache, serialized, isStringTag) {
436
436
  };
437
437
 
438
438
  // eslint-disable-next-line no-undef
439
- var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
439
+ var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
440
440
 
441
441
  var isPropValid = /* #__PURE__ */memoize(function (prop) {
442
442
  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111
@@ -3703,7 +3703,9 @@ function hslToHex(hue, saturation, lightness) {
3703
3703
  * }
3704
3704
  */
3705
3705
  function hsl(value, saturation, lightness) {
3706
- if (typeof value === 'object' && saturation === undefined && lightness === undefined) {
3706
+ if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {
3707
+ return hslToHex(value, saturation, lightness);
3708
+ } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {
3707
3709
  return hslToHex(value.hue, value.saturation, value.lightness);
3708
3710
  }
3709
3711
  throw new PolishedError(1);
@@ -3736,7 +3738,9 @@ function hsl(value, saturation, lightness) {
3736
3738
  * }
3737
3739
  */
3738
3740
  function hsla(value, saturation, lightness, alpha) {
3739
- if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {
3741
+ if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {
3742
+ return alpha >= 1 ? hslToHex(value, saturation, lightness) : "rgba(" + hslToRgb(value, saturation, lightness) + "," + alpha + ")";
3743
+ } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {
3740
3744
  return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : "rgba(" + hslToRgb(value.hue, value.saturation, value.lightness) + "," + value.alpha + ")";
3741
3745
  }
3742
3746
  throw new PolishedError(2);
@@ -4786,10 +4790,6 @@ const oppositeSideMap = {
4786
4790
  bottom: 'top',
4787
4791
  top: 'bottom'
4788
4792
  };
4789
- const oppositeAlignmentMap = {
4790
- start: 'end',
4791
- end: 'start'
4792
- };
4793
4793
  function clamp(start, value, end) {
4794
4794
  return max$1(start, min$1(value, end));
4795
4795
  }
@@ -4809,7 +4809,8 @@ function getAxisLength(axis) {
4809
4809
  return axis === 'y' ? 'height' : 'width';
4810
4810
  }
4811
4811
  function getSideAxis(placement) {
4812
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
4812
+ const firstChar = placement[0];
4813
+ return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';
4813
4814
  }
4814
4815
  function getAlignmentAxis(placement) {
4815
4816
  return getOppositeAxis(getSideAxis(placement));
@@ -4832,21 +4833,21 @@ function getExpandedPlacements(placement) {
4832
4833
  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
4833
4834
  }
4834
4835
  function getOppositeAlignmentPlacement(placement) {
4835
- return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
4836
+ return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');
4836
4837
  }
4838
+ const lrPlacement = ['left', 'right'];
4839
+ const rlPlacement = ['right', 'left'];
4840
+ const tbPlacement = ['top', 'bottom'];
4841
+ const btPlacement = ['bottom', 'top'];
4837
4842
  function getSideList(side, isStart, rtl) {
4838
- const lr = ['left', 'right'];
4839
- const rl = ['right', 'left'];
4840
- const tb = ['top', 'bottom'];
4841
- const bt = ['bottom', 'top'];
4842
4843
  switch (side) {
4843
4844
  case 'top':
4844
4845
  case 'bottom':
4845
- if (rtl) return isStart ? rl : lr;
4846
- return isStart ? lr : rl;
4846
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
4847
+ return isStart ? lrPlacement : rlPlacement;
4847
4848
  case 'left':
4848
4849
  case 'right':
4849
- return isStart ? tb : bt;
4850
+ return isStart ? tbPlacement : btPlacement;
4850
4851
  default:
4851
4852
  return [];
4852
4853
  }
@@ -4863,7 +4864,8 @@ function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
4863
4864
  return list;
4864
4865
  }
4865
4866
  function getOppositePlacement(placement) {
4866
- return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);
4867
+ const side = getSide(placement);
4868
+ return oppositeSideMap[side] + placement.slice(side.length);
4867
4869
  }
4868
4870
  function expandPaddingObject(padding) {
4869
4871
  return {
@@ -4957,6 +4959,74 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
4957
4959
  return coords;
4958
4960
  }
4959
4961
 
4962
+ /**
4963
+ * Resolves with an object of overflow side offsets that determine how much the
4964
+ * element is overflowing a given clipping boundary on each side.
4965
+ * - positive = overflowing the boundary by that number of pixels
4966
+ * - negative = how many pixels left before it will overflow
4967
+ * - 0 = lies flush with the boundary
4968
+ * @see https://floating-ui.com/docs/detectOverflow
4969
+ */
4970
+ async function detectOverflow(state, options) {
4971
+ var _await$platform$isEle;
4972
+ if (options === void 0) {
4973
+ options = {};
4974
+ }
4975
+ const {
4976
+ x,
4977
+ y,
4978
+ platform,
4979
+ rects,
4980
+ elements,
4981
+ strategy
4982
+ } = state;
4983
+ const {
4984
+ boundary = 'clippingAncestors',
4985
+ rootBoundary = 'viewport',
4986
+ elementContext = 'floating',
4987
+ altBoundary = false,
4988
+ padding = 0
4989
+ } = evaluate(options, state);
4990
+ const paddingObject = getPaddingObject(padding);
4991
+ const altContext = elementContext === 'floating' ? 'reference' : 'floating';
4992
+ const element = elements[altBoundary ? altContext : elementContext];
4993
+ const clippingClientRect = rectToClientRect(await platform.getClippingRect({
4994
+ element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
4995
+ boundary,
4996
+ rootBoundary,
4997
+ strategy
4998
+ }));
4999
+ const rect = elementContext === 'floating' ? {
5000
+ x,
5001
+ y,
5002
+ width: rects.floating.width,
5003
+ height: rects.floating.height
5004
+ } : rects.reference;
5005
+ const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
5006
+ const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
5007
+ x: 1,
5008
+ y: 1
5009
+ } : {
5010
+ x: 1,
5011
+ y: 1
5012
+ };
5013
+ const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
5014
+ elements,
5015
+ rect,
5016
+ offsetParent,
5017
+ strategy
5018
+ }) : rect);
5019
+ return {
5020
+ top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
5021
+ bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
5022
+ left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
5023
+ right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
5024
+ };
5025
+ }
5026
+
5027
+ // Maximum number of resets that can occur before bailing to avoid infinite reset loops.
5028
+ const MAX_RESET_COUNT = 50;
5029
+
4960
5030
  /**
4961
5031
  * Computes the `x` and `y` coordinates that will place the floating element
4962
5032
  * next to a given reference element.
@@ -4964,14 +5034,17 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
4964
5034
  * This export does not have any `platform` interface logic. You will need to
4965
5035
  * write one for the platform you are using Floating UI with.
4966
5036
  */
4967
- const computePosition$1 = async (reference, floating, config) => {
5037
+ const computePosition$2 = async (reference, floating, config) => {
4968
5038
  const {
4969
5039
  placement = 'bottom',
4970
5040
  strategy = 'absolute',
4971
5041
  middleware = [],
4972
5042
  platform
4973
5043
  } = config;
4974
- const validMiddleware = middleware.filter(Boolean);
5044
+ const platformWithDetectOverflow = platform.detectOverflow ? platform : {
5045
+ ...platform,
5046
+ detectOverflow
5047
+ };
4975
5048
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
4976
5049
  let rects = await platform.getElementRects({
4977
5050
  reference,
@@ -4983,13 +5056,17 @@ const computePosition$1 = async (reference, floating, config) => {
4983
5056
  y
4984
5057
  } = computeCoordsFromPlacement(rects, placement, rtl);
4985
5058
  let statefulPlacement = placement;
4986
- let middlewareData = {};
4987
5059
  let resetCount = 0;
4988
- for (let i = 0; i < validMiddleware.length; i++) {
5060
+ const middlewareData = {};
5061
+ for (let i = 0; i < middleware.length; i++) {
5062
+ const currentMiddleware = middleware[i];
5063
+ if (!currentMiddleware) {
5064
+ continue;
5065
+ }
4989
5066
  const {
4990
5067
  name,
4991
5068
  fn
4992
- } = validMiddleware[i];
5069
+ } = currentMiddleware;
4993
5070
  const {
4994
5071
  x: nextX,
4995
5072
  y: nextY,
@@ -5003,7 +5080,7 @@ const computePosition$1 = async (reference, floating, config) => {
5003
5080
  strategy,
5004
5081
  middlewareData,
5005
5082
  rects,
5006
- platform,
5083
+ platform: platformWithDetectOverflow,
5007
5084
  elements: {
5008
5085
  reference,
5009
5086
  floating
@@ -5011,14 +5088,11 @@ const computePosition$1 = async (reference, floating, config) => {
5011
5088
  });
5012
5089
  x = nextX != null ? nextX : x;
5013
5090
  y = nextY != null ? nextY : y;
5014
- middlewareData = {
5015
- ...middlewareData,
5016
- [name]: {
5017
- ...middlewareData[name],
5018
- ...data
5019
- }
5091
+ middlewareData[name] = {
5092
+ ...middlewareData[name],
5093
+ ...data
5020
5094
  };
5021
- if (reset && resetCount <= 50) {
5095
+ if (reset && resetCount < MAX_RESET_COUNT) {
5022
5096
  resetCount++;
5023
5097
  if (typeof reset === 'object') {
5024
5098
  if (reset.placement) {
@@ -5048,71 +5122,6 @@ const computePosition$1 = async (reference, floating, config) => {
5048
5122
  };
5049
5123
  };
5050
5124
 
5051
- /**
5052
- * Resolves with an object of overflow side offsets that determine how much the
5053
- * element is overflowing a given clipping boundary on each side.
5054
- * - positive = overflowing the boundary by that number of pixels
5055
- * - negative = how many pixels left before it will overflow
5056
- * - 0 = lies flush with the boundary
5057
- * @see https://floating-ui.com/docs/detectOverflow
5058
- */
5059
- async function detectOverflow(state, options) {
5060
- var _await$platform$isEle;
5061
- if (options === void 0) {
5062
- options = {};
5063
- }
5064
- const {
5065
- x,
5066
- y,
5067
- platform,
5068
- rects,
5069
- elements,
5070
- strategy
5071
- } = state;
5072
- const {
5073
- boundary = 'clippingAncestors',
5074
- rootBoundary = 'viewport',
5075
- elementContext = 'floating',
5076
- altBoundary = false,
5077
- padding = 0
5078
- } = evaluate(options, state);
5079
- const paddingObject = getPaddingObject(padding);
5080
- const altContext = elementContext === 'floating' ? 'reference' : 'floating';
5081
- const element = elements[altBoundary ? altContext : elementContext];
5082
- const clippingClientRect = rectToClientRect(await platform.getClippingRect({
5083
- element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
5084
- boundary,
5085
- rootBoundary,
5086
- strategy
5087
- }));
5088
- const rect = elementContext === 'floating' ? {
5089
- x,
5090
- y,
5091
- width: rects.floating.width,
5092
- height: rects.floating.height
5093
- } : rects.reference;
5094
- const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
5095
- const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
5096
- x: 1,
5097
- y: 1
5098
- } : {
5099
- x: 1,
5100
- y: 1
5101
- };
5102
- const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
5103
- elements,
5104
- rect,
5105
- offsetParent,
5106
- strategy
5107
- }) : rect);
5108
- return {
5109
- top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
5110
- bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
5111
- left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
5112
- right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
5113
- };
5114
- }
5115
-
5116
5125
  /**
5117
5126
  * Provides data to position an inner element of the floating element so that it
5118
5127
  * appears centered to the reference element.
@@ -5201,7 +5210,7 @@ const arrow$3 = options => ({
5201
5210
  * clipping boundary. Alternative to `autoPlacement`.
5202
5211
  * @see https://floating-ui.com/docs/flip
5203
5212
  */
5204
- const flip$2 = function (options) {
5213
+ const flip$3 = function (options) {
5205
5214
  if (options === void 0) {
5206
5215
  options = {};
5207
5216
  }
@@ -5245,7 +5254,7 @@ const flip$2 = function (options) {
5245
5254
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
5246
5255
  }
5247
5256
  const placements = [initialPlacement, ...fallbackPlacements];
5248
- const overflow = await detectOverflow(state, detectOverflowOptions);
5257
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
5249
5258
  const overflows = [];
5250
5259
  let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
5251
5260
  if (checkMainAxis) {
@@ -5266,16 +5275,22 @@ const flip$2 = function (options) {
5266
5275
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
5267
5276
  const nextPlacement = placements[nextIndex];
5268
5277
  if (nextPlacement) {
5269
- // Try next placement and re-run the lifecycle.
5270
- return {
5271
- data: {
5272
- index: nextIndex,
5273
- overflows: overflowsData
5274
- },
5275
- reset: {
5276
- placement: nextPlacement
5277
- }
5278
- };
5278
+ const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
5279
+ if (!ignoreCrossAxisOverflow ||
5280
+ // We leave the current main axis only if every placement on that axis
5281
+ // overflows the main axis.
5282
+ overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
5283
+ // Try next placement and re-run the lifecycle.
5284
+ return {
5285
+ data: {
5286
+ index: nextIndex,
5287
+ overflows: overflowsData
5288
+ },
5289
+ reset: {
5290
+ placement: nextPlacement
5291
+ }
5292
+ };
5293
+ }
5279
5294
  }
5280
5295
 
5281
5296
  // First, find the candidates that fit on the mainAxis side of overflow,
@@ -5321,6 +5336,8 @@ const flip$2 = function (options) {
5321
5336
  };
5322
5337
  };
5323
5338
 
5339
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
5340
+
5324
5341
  // For type backwards-compatibility, the `OffsetOptions` type was also
5325
5342
  // Derivable.
5326
5343
 
@@ -5334,7 +5351,7 @@ async function convertValueToCoords(state, options) {
5334
5351
  const side = getSide(placement);
5335
5352
  const alignment = getAlignment(placement);
5336
5353
  const isVertical = getSideAxis(placement) === 'y';
5337
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
5354
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
5338
5355
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
5339
5356
  const rawValue = evaluate(options, state);
5340
5357
 
@@ -5348,10 +5365,9 @@ async function convertValueToCoords(state, options) {
5348
5365
  crossAxis: 0,
5349
5366
  alignmentAxis: null
5350
5367
  } : {
5351
- mainAxis: 0,
5352
- crossAxis: 0,
5353
- alignmentAxis: null,
5354
- ...rawValue
5368
+ mainAxis: rawValue.mainAxis || 0,
5369
+ crossAxis: rawValue.crossAxis || 0,
5370
+ alignmentAxis: rawValue.alignmentAxis
5355
5371
  };
5356
5372
  if (alignment && typeof alignmentAxis === 'number') {
5357
5373
  crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;
@@ -5372,7 +5388,7 @@ async function convertValueToCoords(state, options) {
5372
5388
  * object may be passed.
5373
5389
  * @see https://floating-ui.com/docs/offset
5374
5390
  */
5375
- const offset$2 = function (options) {
5391
+ const offset$3 = function (options) {
5376
5392
  if (options === void 0) {
5377
5393
  options = 0;
5378
5394
  }
@@ -5422,7 +5438,8 @@ const shift$1 = function (options) {
5422
5438
  const {
5423
5439
  x,
5424
5440
  y,
5425
- placement
5441
+ placement,
5442
+ platform
5426
5443
  } = state;
5427
5444
  const {
5428
5445
  mainAxis: checkMainAxis = true,
@@ -5445,7 +5462,7 @@ const shift$1 = function (options) {
5445
5462
  x,
5446
5463
  y
5447
5464
  };
5448
- const overflow = await detectOverflow(state, detectOverflowOptions);
5465
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
5449
5466
  const crossAxis = getSideAxis(getSide(placement));
5450
5467
  const mainAxis = getOppositeAxis(crossAxis);
5451
5468
  let mainAxisCoord = coords[mainAxis];
@@ -5473,7 +5490,11 @@ const shift$1 = function (options) {
5473
5490
  ...limitedCoords,
5474
5491
  data: {
5475
5492
  x: limitedCoords.x - x,
5476
- y: limitedCoords.y - y
5493
+ y: limitedCoords.y - y,
5494
+ enabled: {
5495
+ [mainAxis]: checkMainAxis,
5496
+ [crossAxis]: checkCrossAxis
5497
+ }
5477
5498
  }
5478
5499
  };
5479
5500
  }
@@ -5531,7 +5552,7 @@ const limitShift$1 = function (options) {
5531
5552
  if (checkCrossAxis) {
5532
5553
  var _middlewareData$offse, _middlewareData$offse2;
5533
5554
  const len = mainAxis === 'y' ? 'width' : 'height';
5534
- const isOriginSide = ['top', 'left'].includes(getSide(placement));
5555
+ const isOriginSide = originSides.has(getSide(placement));
5535
5556
  const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
5536
5557
  const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
5537
5558
  if (crossAxisCoord < limitMin) {
@@ -5598,27 +5619,36 @@ function isOverflowElement(element) {
5598
5619
  overflowX,
5599
5620
  overflowY,
5600
5621
  display
5601
- } = getComputedStyle(element);
5602
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
5622
+ } = getComputedStyle$1(element);
5623
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';
5603
5624
  }
5604
5625
  function isTableElement(element) {
5605
- return ['table', 'td', 'th'].includes(getNodeName(element));
5626
+ return /^(table|td|th)$/.test(getNodeName(element));
5606
5627
  }
5607
5628
  function isTopLayer(element) {
5608
- return [':popover-open', ':modal'].some(selector => {
5609
- try {
5610
- return element.matches(selector);
5611
- } catch (e) {
5612
- return false;
5629
+ try {
5630
+ if (element.matches(':popover-open')) {
5631
+ return true;
5613
5632
  }
5614
- });
5633
+ } catch (_e) {
5634
+ // no-op
5635
+ }
5636
+ try {
5637
+ return element.matches(':modal');
5638
+ } catch (_e) {
5639
+ return false;
5640
+ }
5615
5641
  }
5642
+ const willChangeRe = /transform|translate|scale|rotate|perspective|filter/;
5643
+ const containRe = /paint|layout|strict|content/;
5644
+ const isNotNone = value => !!value && value !== 'none';
5645
+ let isWebKitValue;
5616
5646
  function isContainingBlock(elementOrCss) {
5617
- const webkit = isWebKit();
5618
- const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
5647
+ const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
5619
5648
 
5620
5649
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
5621
- return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
5650
+ // https://drafts.csswg.org/css-transforms-2/#individual-transforms
5651
+ return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');
5622
5652
  }
5623
5653
  function getContainingBlock(element) {
5624
5654
  let currentNode = getParentNode(element);
@@ -5633,13 +5663,15 @@ function getContainingBlock(element) {
5633
5663
  return null;
5634
5664
  }
5635
5665
  function isWebKit() {
5636
- if (typeof CSS === 'undefined' || !CSS.supports) return false;
5637
- return CSS.supports('-webkit-backdrop-filter', 'none');
5666
+ if (isWebKitValue == null) {
5667
+ isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');
5668
+ }
5669
+ return isWebKitValue;
5638
5670
  }
5639
5671
  function isLastTraversableNode(node) {
5640
- return ['html', 'body', '#document'].includes(getNodeName(node));
5672
+ return /^(html|body|#document)$/.test(getNodeName(node));
5641
5673
  }
5642
- function getComputedStyle(element) {
5674
+ function getComputedStyle$1(element) {
5643
5675
  return getWindow(element).getComputedStyle(element);
5644
5676
  }
5645
5677
  function getNodeScroll(element) {
@@ -5693,15 +5725,16 @@ function getOverflowAncestors(node, list, traverseIframes) {
5693
5725
  if (isBody) {
5694
5726
  const frameElement = getFrameElement(win);
5695
5727
  return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
5728
+ } else {
5729
+ return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
5696
5730
  }
5697
- return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
5698
5731
  }
5699
5732
  function getFrameElement(win) {
5700
5733
  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
5701
5734
  }
5702
5735
 
5703
- function getCssDimensions(element) {
5704
- const css = getComputedStyle(element);
5736
+ function getCssDimensions$1(element) {
5737
+ const css = getComputedStyle$1(element);
5705
5738
  // In testing environments, the `width` and `height` properties are empty
5706
5739
  // strings for SVG elements, returning NaN. Fallback to `0` in this case.
5707
5740
  let width = parseFloat(css.width) || 0;
@@ -5721,12 +5754,12 @@ function getCssDimensions(element) {
5721
5754
  };
5722
5755
  }
5723
5756
 
5724
- function unwrapElement(element) {
5757
+ function unwrapElement$1(element) {
5725
5758
  return !isElement(element) ? element.contextElement : element;
5726
5759
  }
5727
5760
 
5728
- function getScale(element) {
5729
- const domElement = unwrapElement(element);
5761
+ function getScale$1(element) {
5762
+ const domElement = unwrapElement$1(element);
5730
5763
  if (!isHTMLElement(domElement)) {
5731
5764
  return createCoords(1);
5732
5765
  }
@@ -5735,7 +5768,7 @@ function getScale(element) {
5735
5768
  width,
5736
5769
  height,
5737
5770
  $
5738
- } = getCssDimensions(domElement);
5771
+ } = getCssDimensions$1(domElement);
5739
5772
  let x = ($ ? round(rect.width) : rect.width) / width;
5740
5773
  let y = ($ ? round(rect.height) : rect.height) / height;
5741
5774
 
@@ -5753,18 +5786,18 @@ function getScale(element) {
5753
5786
  };
5754
5787
  }
5755
5788
 
5756
- const noOffsets = /*#__PURE__*/createCoords(0);
5757
- function getVisualOffsets(element) {
5789
+ const noOffsets$1 = /*#__PURE__*/createCoords(0);
5790
+ function getVisualOffsets$1(element) {
5758
5791
  const win = getWindow(element);
5759
5792
  if (!isWebKit() || !win.visualViewport) {
5760
- return noOffsets;
5793
+ return noOffsets$1;
5761
5794
  }
5762
5795
  return {
5763
5796
  x: win.visualViewport.offsetLeft,
5764
5797
  y: win.visualViewport.offsetTop
5765
5798
  };
5766
5799
  }
5767
- function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
5800
+ function shouldAddVisualOffsets$1(element, isFixed, floatingOffsetParent) {
5768
5801
  if (isFixed === void 0) {
5769
5802
  isFixed = false;
5770
5803
  }
@@ -5774,7 +5807,7 @@ function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
5774
5807
  return isFixed;
5775
5808
  }
5776
5809
 
5777
- function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
5810
+ function getBoundingClientRect$1(element, includeScale, isFixedStrategy, offsetParent) {
5778
5811
  if (includeScale === void 0) {
5779
5812
  includeScale = false;
5780
5813
  }
@@ -5782,18 +5815,18 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
5782
5815
  isFixedStrategy = false;
5783
5816
  }
5784
5817
  const clientRect = element.getBoundingClientRect();
5785
- const domElement = unwrapElement(element);
5818
+ const domElement = unwrapElement$1(element);
5786
5819
  let scale = createCoords(1);
5787
5820
  if (includeScale) {
5788
5821
  if (offsetParent) {
5789
5822
  if (isElement(offsetParent)) {
5790
- scale = getScale(offsetParent);
5823
+ scale = getScale$1(offsetParent);
5791
5824
  }
5792
5825
  } else {
5793
- scale = getScale(element);
5826
+ scale = getScale$1(element);
5794
5827
  }
5795
5828
  }
5796
- const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
5829
+ const visualOffsets = shouldAddVisualOffsets$1(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets$1(domElement) : createCoords(0);
5797
5830
  let x = (clientRect.left + visualOffsets.x) / scale.x;
5798
5831
  let y = (clientRect.top + visualOffsets.y) / scale.y;
5799
5832
  let width = clientRect.width / scale.x;
@@ -5804,9 +5837,9 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
5804
5837
  let currentWin = win;
5805
5838
  let currentIFrame = getFrameElement(currentWin);
5806
5839
  while (currentIFrame && offsetParent && offsetWin !== currentWin) {
5807
- const iframeScale = getScale(currentIFrame);
5840
+ const iframeScale = getScale$1(currentIFrame);
5808
5841
  const iframeRect = currentIFrame.getBoundingClientRect();
5809
- const css = getComputedStyle(currentIFrame);
5842
+ const css = getComputedStyle$1(currentIFrame);
5810
5843
  const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
5811
5844
  const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
5812
5845
  x *= iframeScale.x;
@@ -5829,22 +5862,22 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
5829
5862
 
5830
5863
  // If <html> has a CSS width greater than the viewport, then this will be
5831
5864
  // incorrect for RTL.
5832
- function getWindowScrollBarX(element, rect) {
5865
+ function getWindowScrollBarX$1(element, rect) {
5833
5866
  const leftScroll = getNodeScroll(element).scrollLeft;
5834
5867
  if (!rect) {
5835
- return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
5868
+ return getBoundingClientRect$1(getDocumentElement(element)).left + leftScroll;
5836
5869
  }
5837
5870
  return rect.left + leftScroll;
5838
5871
  }
5839
5872
 
5840
- function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
5873
+ function getHTMLOffset$1(documentElement, scroll, ignoreScrollbarX) {
5841
5874
  if (ignoreScrollbarX === void 0) {
5842
5875
  ignoreScrollbarX = false;
5843
5876
  }
5844
5877
  const htmlRect = documentElement.getBoundingClientRect();
5845
5878
  const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
5846
5879
  // RTL <body> scrollbar.
5847
- getWindowScrollBarX(documentElement, htmlRect));
5880
+ getWindowScrollBarX$1(documentElement, htmlRect));
5848
5881
  const y = htmlRect.top + scroll.scrollTop;
5849
5882
  return {
5850
5883
  x,
@@ -5852,7 +5885,7 @@ function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
5852
5885
  };
5853
5886
  }
5854
5887
 
5855
- function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
5888
+ function convertOffsetParentRelativeRectToViewportRelativeRect$1(_ref) {
5856
5889
  let {
5857
5890
  elements,
5858
5891
  rect,
@@ -5877,13 +5910,13 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
5877
5910
  scroll = getNodeScroll(offsetParent);
5878
5911
  }
5879
5912
  if (isHTMLElement(offsetParent)) {
5880
- const offsetRect = getBoundingClientRect(offsetParent);
5881
- scale = getScale(offsetParent);
5913
+ const offsetRect = getBoundingClientRect$1(offsetParent);
5914
+ scale = getScale$1(offsetParent);
5882
5915
  offsets.x = offsetRect.x + offsetParent.clientLeft;
5883
5916
  offsets.y = offsetRect.y + offsetParent.clientTop;
5884
5917
  }
5885
5918
  }
5886
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
5919
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset$1(documentElement, scroll, true) : createCoords(0);
5887
5920
  return {
5888
5921
  width: rect.width * scale.x,
5889
5922
  height: rect.height * scale.y,
@@ -5892,21 +5925,21 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
5892
5925
  };
5893
5926
  }
5894
5927
 
5895
- function getClientRects(element) {
5928
+ function getClientRects$1(element) {
5896
5929
  return Array.from(element.getClientRects());
5897
5930
  }
5898
5931
 
5899
5932
  // Gets the entire size of the scrollable document area, even extending outside
5900
5933
  // of the `<html>` and `<body>` rect bounds if horizontally scrollable.
5901
- function getDocumentRect(element) {
5934
+ function getDocumentRect$1(element) {
5902
5935
  const html = getDocumentElement(element);
5903
5936
  const scroll = getNodeScroll(element);
5904
5937
  const body = element.ownerDocument.body;
5905
5938
  const width = max$1(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
5906
5939
  const height = max$1(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
5907
- let x = -scroll.scrollLeft + getWindowScrollBarX(element);
5940
+ let x = -scroll.scrollLeft + getWindowScrollBarX$1(element);
5908
5941
  const y = -scroll.scrollTop;
5909
- if (getComputedStyle(body).direction === 'rtl') {
5942
+ if (getComputedStyle$1(body).direction === 'rtl') {
5910
5943
  x += max$1(html.clientWidth, body.clientWidth) - width;
5911
5944
  }
5912
5945
  return {
@@ -5917,7 +5950,7 @@ function getDocumentRect(element) {
5917
5950
  };
5918
5951
  }
5919
5952
 
5920
- function getViewportRect(element, strategy) {
5953
+ function getViewportRect$1(element, strategy) {
5921
5954
  const win = getWindow(element);
5922
5955
  const html = getDocumentElement(element);
5923
5956
  const visualViewport = win.visualViewport;
@@ -5943,11 +5976,11 @@ function getViewportRect(element, strategy) {
5943
5976
  }
5944
5977
 
5945
5978
  // Returns the inner client rect, subtracting scrollbars if present.
5946
- function getInnerBoundingClientRect(element, strategy) {
5947
- const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
5979
+ function getInnerBoundingClientRect$1(element, strategy) {
5980
+ const clientRect = getBoundingClientRect$1(element, true, strategy === 'fixed');
5948
5981
  const top = clientRect.top + element.clientTop;
5949
5982
  const left = clientRect.left + element.clientLeft;
5950
- const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
5983
+ const scale = isHTMLElement(element) ? getScale$1(element) : createCoords(1);
5951
5984
  const width = element.clientWidth * scale.x;
5952
5985
  const height = element.clientHeight * scale.y;
5953
5986
  const x = left * scale.x;
@@ -5959,16 +5992,16 @@ function getInnerBoundingClientRect(element, strategy) {
5959
5992
  y
5960
5993
  };
5961
5994
  }
5962
- function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
5995
+ function getClientRectFromClippingAncestor$1(element, clippingAncestor, strategy) {
5963
5996
  let rect;
5964
5997
  if (clippingAncestor === 'viewport') {
5965
- rect = getViewportRect(element, strategy);
5998
+ rect = getViewportRect$1(element, strategy);
5966
5999
  } else if (clippingAncestor === 'document') {
5967
- rect = getDocumentRect(getDocumentElement(element));
6000
+ rect = getDocumentRect$1(getDocumentElement(element));
5968
6001
  } else if (isElement(clippingAncestor)) {
5969
- rect = getInnerBoundingClientRect(clippingAncestor, strategy);
6002
+ rect = getInnerBoundingClientRect$1(clippingAncestor, strategy);
5970
6003
  } else {
5971
- const visualOffsets = getVisualOffsets(element);
6004
+ const visualOffsets = getVisualOffsets$1(element);
5972
6005
  rect = {
5973
6006
  x: clippingAncestor.x - visualOffsets.x,
5974
6007
  y: clippingAncestor.y - visualOffsets.y,
@@ -5978,35 +6011,35 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
5978
6011
  }
5979
6012
  return rectToClientRect(rect);
5980
6013
  }
5981
- function hasFixedPositionAncestor(element, stopNode) {
6014
+ function hasFixedPositionAncestor$1(element, stopNode) {
5982
6015
  const parentNode = getParentNode(element);
5983
6016
  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
5984
6017
  return false;
5985
6018
  }
5986
- return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
6019
+ return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor$1(parentNode, stopNode);
5987
6020
  }
5988
6021
 
5989
6022
  // A "clipping ancestor" is an `overflow` element with the characteristic of
5990
6023
  // clipping (or hiding) child elements. This returns all clipping ancestors
5991
6024
  // of the given element up the tree.
5992
- function getClippingElementAncestors(element, cache) {
6025
+ function getClippingElementAncestors$1(element, cache) {
5993
6026
  const cachedResult = cache.get(element);
5994
6027
  if (cachedResult) {
5995
6028
  return cachedResult;
5996
6029
  }
5997
6030
  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
5998
6031
  let currentContainingBlockComputedStyle = null;
5999
- const elementIsFixed = getComputedStyle(element).position === 'fixed';
6032
+ const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
6000
6033
  let currentNode = elementIsFixed ? getParentNode(element) : element;
6001
6034
 
6002
6035
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
6003
6036
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
6004
- const computedStyle = getComputedStyle(currentNode);
6037
+ const computedStyle = getComputedStyle$1(currentNode);
6005
6038
  const currentNodeIsContaining = isContainingBlock(currentNode);
6006
6039
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
6007
6040
  currentContainingBlockComputedStyle = null;
6008
6041
  }
6009
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
6042
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor$1(element, currentNode);
6010
6043
  if (shouldDropCurrentNode) {
6011
6044
  // Drop non-containing blocks.
6012
6045
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -6022,24 +6055,24 @@ function getClippingElementAncestors(element, cache) {
6022
6055
 
6023
6056
  // Gets the maximum area that the element is visible in due to any number of
6024
6057
  // clipping ancestors.
6025
- function getClippingRect(_ref) {
6058
+ function getClippingRect$1(_ref) {
6026
6059
  let {
6027
6060
  element,
6028
6061
  boundary,
6029
6062
  rootBoundary,
6030
6063
  strategy
6031
6064
  } = _ref;
6032
- const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
6065
+ const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors$1(element, this._c) : [].concat(boundary);
6033
6066
  const clippingAncestors = [...elementClippingAncestors, rootBoundary];
6034
6067
  const firstClippingAncestor = clippingAncestors[0];
6035
6068
  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
6036
- const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
6069
+ const rect = getClientRectFromClippingAncestor$1(element, clippingAncestor, strategy);
6037
6070
  accRect.top = max$1(rect.top, accRect.top);
6038
6071
  accRect.right = min$1(rect.right, accRect.right);
6039
6072
  accRect.bottom = min$1(rect.bottom, accRect.bottom);
6040
6073
  accRect.left = max$1(rect.left, accRect.left);
6041
6074
  return accRect;
6042
- }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
6075
+ }, getClientRectFromClippingAncestor$1(element, firstClippingAncestor, strategy));
6043
6076
  return {
6044
6077
  width: clippingRect.right - clippingRect.left,
6045
6078
  height: clippingRect.bottom - clippingRect.top,
@@ -6048,22 +6081,22 @@ function getClippingRect(_ref) {
6048
6081
  };
6049
6082
  }
6050
6083
 
6051
- function getDimensions(element) {
6084
+ function getDimensions$1(element) {
6052
6085
  const {
6053
6086
  width,
6054
6087
  height
6055
- } = getCssDimensions(element);
6088
+ } = getCssDimensions$1(element);
6056
6089
  return {
6057
6090
  width,
6058
6091
  height
6059
6092
  };
6060
6093
  }
6061
6094
 
6062
- function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
6095
+ function getRectRelativeToOffsetParent$1(element, offsetParent, strategy) {
6063
6096
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
6064
6097
  const documentElement = getDocumentElement(offsetParent);
6065
6098
  const isFixed = strategy === 'fixed';
6066
- const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
6099
+ const rect = getBoundingClientRect$1(element, true, isFixed, offsetParent);
6067
6100
  let scroll = {
6068
6101
  scrollLeft: 0,
6069
6102
  scrollTop: 0
@@ -6074,16 +6107,16 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
6074
6107
  scroll = getNodeScroll(offsetParent);
6075
6108
  }
6076
6109
  if (isOffsetParentAnElement) {
6077
- const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
6110
+ const offsetRect = getBoundingClientRect$1(offsetParent, true, isFixed, offsetParent);
6078
6111
  offsets.x = offsetRect.x + offsetParent.clientLeft;
6079
6112
  offsets.y = offsetRect.y + offsetParent.clientTop;
6080
6113
  } else if (documentElement) {
6081
6114
  // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
6082
6115
  // Firefox with layout.scrollbar.side = 3 in about:config to test this.
6083
- offsets.x = getWindowScrollBarX(documentElement);
6116
+ offsets.x = getWindowScrollBarX$1(documentElement);
6084
6117
  }
6085
6118
  }
6086
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
6119
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset$1(documentElement, scroll) : createCoords(0);
6087
6120
  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
6088
6121
  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
6089
6122
  return {
@@ -6094,12 +6127,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
6094
6127
  };
6095
6128
  }
6096
6129
 
6097
- function isStaticPositioned(element) {
6098
- return getComputedStyle(element).position === 'static';
6130
+ function isStaticPositioned$1(element) {
6131
+ return getComputedStyle$1(element).position === 'static';
6099
6132
  }
6100
6133
 
6101
- function getTrueOffsetParent(element, polyfill) {
6102
- if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {
6134
+ function getTrueOffsetParent$1(element, polyfill) {
6135
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
6103
6136
  return null;
6104
6137
  }
6105
6138
  if (polyfill) {
@@ -6119,7 +6152,7 @@ function getTrueOffsetParent(element, polyfill) {
6119
6152
 
6120
6153
  // Gets the closest ancestor positioned element. Handles some edge cases,
6121
6154
  // such as table ancestors and cross browser bugs.
6122
- function getOffsetParent(element, polyfill) {
6155
+ function getOffsetParent$1(element, polyfill) {
6123
6156
  const win = getWindow(element);
6124
6157
  if (isTopLayer(element)) {
6125
6158
  return win;
@@ -6127,29 +6160,29 @@ function getOffsetParent(element, polyfill) {
6127
6160
  if (!isHTMLElement(element)) {
6128
6161
  let svgOffsetParent = getParentNode(element);
6129
6162
  while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
6130
- if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
6163
+ if (isElement(svgOffsetParent) && !isStaticPositioned$1(svgOffsetParent)) {
6131
6164
  return svgOffsetParent;
6132
6165
  }
6133
6166
  svgOffsetParent = getParentNode(svgOffsetParent);
6134
6167
  }
6135
6168
  return win;
6136
6169
  }
6137
- let offsetParent = getTrueOffsetParent(element, polyfill);
6138
- while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
6139
- offsetParent = getTrueOffsetParent(offsetParent, polyfill);
6170
+ let offsetParent = getTrueOffsetParent$1(element, polyfill);
6171
+ while (offsetParent && isTableElement(offsetParent) && isStaticPositioned$1(offsetParent)) {
6172
+ offsetParent = getTrueOffsetParent$1(offsetParent, polyfill);
6140
6173
  }
6141
- if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
6174
+ if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned$1(offsetParent) && !isContainingBlock(offsetParent)) {
6142
6175
  return win;
6143
6176
  }
6144
6177
  return offsetParent || getContainingBlock(element) || win;
6145
6178
  }
6146
6179
 
6147
- const getElementRects = async function (data) {
6148
- const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
6180
+ const getElementRects$1 = async function (data) {
6181
+ const getOffsetParentFn = this.getOffsetParent || getOffsetParent$1;
6149
6182
  const getDimensionsFn = this.getDimensions;
6150
6183
  const floatingDimensions = await getDimensionsFn(data.floating);
6151
6184
  return {
6152
- reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
6185
+ reference: getRectRelativeToOffsetParent$1(data.reference, await getOffsetParentFn(data.floating), data.strategy),
6153
6186
  floating: {
6154
6187
  x: 0,
6155
6188
  y: 0,
@@ -6159,25 +6192,25 @@ const getElementRects = async function (data) {
6159
6192
  };
6160
6193
  };
6161
6194
 
6162
- function isRTL(element) {
6163
- return getComputedStyle(element).direction === 'rtl';
6195
+ function isRTL$1(element) {
6196
+ return getComputedStyle$1(element).direction === 'rtl';
6164
6197
  }
6165
6198
 
6166
- const platform = {
6167
- convertOffsetParentRelativeRectToViewportRelativeRect,
6199
+ const platform$1 = {
6200
+ convertOffsetParentRelativeRectToViewportRelativeRect: convertOffsetParentRelativeRectToViewportRelativeRect$1,
6168
6201
  getDocumentElement,
6169
- getClippingRect,
6170
- getOffsetParent,
6171
- getElementRects,
6172
- getClientRects,
6173
- getDimensions,
6174
- getScale,
6202
+ getClippingRect: getClippingRect$1,
6203
+ getOffsetParent: getOffsetParent$1,
6204
+ getElementRects: getElementRects$1,
6205
+ getClientRects: getClientRects$1,
6206
+ getDimensions: getDimensions$1,
6207
+ getScale: getScale$1,
6175
6208
  isElement,
6176
- isRTL
6209
+ isRTL: isRTL$1
6177
6210
  };
6178
6211
 
6179
6212
  // https://samthor.au/2021/observing-dom/
6180
- function observeMove(element, onMove) {
6213
+ function observeMove$1(element, onMove) {
6181
6214
  let io = null;
6182
6215
  let timeoutId;
6183
6216
  const root = getDocumentElement(element);
@@ -6261,7 +6294,7 @@ function observeMove(element, onMove) {
6261
6294
  * removed from the DOM or hidden from the screen.
6262
6295
  * @see https://floating-ui.com/docs/autoUpdate
6263
6296
  */
6264
- function autoUpdate(reference, floating, update, options) {
6297
+ function autoUpdate$1(reference, floating, update, options) {
6265
6298
  if (options === void 0) {
6266
6299
  options = {};
6267
6300
  }
@@ -6272,7 +6305,7 @@ function autoUpdate(reference, floating, update, options) {
6272
6305
  layoutShift = typeof IntersectionObserver === 'function',
6273
6306
  animationFrame = false
6274
6307
  } = options;
6275
- const referenceEl = unwrapElement(reference);
6308
+ const referenceEl = unwrapElement$1(reference);
6276
6309
  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];
6277
6310
  ancestors.forEach(ancestor => {
6278
6311
  ancestorScroll && ancestor.addEventListener('scroll', update, {
@@ -6280,7 +6313,7 @@ function autoUpdate(reference, floating, update, options) {
6280
6313
  });
6281
6314
  ancestorResize && ancestor.addEventListener('resize', update);
6282
6315
  });
6283
- const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
6316
+ const cleanupIo = referenceEl && layoutShift ? observeMove$1(referenceEl, update) : null;
6284
6317
  let reobserveFrame = -1;
6285
6318
  let resizeObserver = null;
6286
6319
  if (elementResize) {
@@ -6304,12 +6337,12 @@ function autoUpdate(reference, floating, update, options) {
6304
6337
  resizeObserver.observe(floating);
6305
6338
  }
6306
6339
  let frameId;
6307
- let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
6340
+ let prevRefRect = animationFrame ? getBoundingClientRect$1(reference) : null;
6308
6341
  if (animationFrame) {
6309
6342
  frameLoop();
6310
6343
  }
6311
6344
  function frameLoop() {
6312
- const nextRefRect = getBoundingClientRect(reference);
6345
+ const nextRefRect = getBoundingClientRect$1(reference);
6313
6346
  if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {
6314
6347
  update();
6315
6348
  }
@@ -6339,7 +6372,7 @@ function autoUpdate(reference, floating, update, options) {
6339
6372
  * object may be passed.
6340
6373
  * @see https://floating-ui.com/docs/offset
6341
6374
  */
6342
- const offset$1 = offset$2;
6375
+ const offset$2 = offset$3;
6343
6376
 
6344
6377
  /**
6345
6378
  * Optimizes the visibility of the floating element by shifting it in order to
@@ -6354,14 +6387,7 @@ const shift = shift$1;
6354
6387
  * clipping boundary. Alternative to `autoPlacement`.
6355
6388
  * @see https://floating-ui.com/docs/flip
6356
6389
  */
6357
- const flip$1 = flip$2;
6358
-
6359
- /**
6360
- * Provides data to position an inner element of the floating element so that it
6361
- * appears centered to the reference element.
6362
- * @see https://floating-ui.com/docs/arrow
6363
- */
6364
- const arrow$2 = arrow$3;
6390
+ const flip$2 = flip$3;
6365
6391
 
6366
6392
  /**
6367
6393
  * Built-in `limiter` that will stop `shift()` at a certain point.
@@ -6372,20 +6398,20 @@ const limitShift = limitShift$1;
6372
6398
  * Computes the `x` and `y` coordinates that will place the floating element
6373
6399
  * next to a given reference element.
6374
6400
  */
6375
- const computePosition = (reference, floating, options) => {
6401
+ const computePosition$1 = (reference, floating, options) => {
6376
6402
  // This caches the expensive `getClippingElementAncestors` function so that
6377
6403
  // multiple lifecycle resets re-use the same result. It only lives for a
6378
6404
  // single call. If other functions become expensive, we can add them as well.
6379
6405
  const cache = new Map();
6380
6406
  const mergedOptions = {
6381
- platform,
6407
+ platform: platform$1,
6382
6408
  ...options
6383
6409
  };
6384
6410
  const platformWithCache = {
6385
6411
  ...mergedOptions.platform,
6386
6412
  _c: cache
6387
6413
  };
6388
- return computePosition$1(reference, floating, {
6414
+ return computePosition$2(reference, floating, {
6389
6415
  ...mergedOptions,
6390
6416
  platform: platformWithCache
6391
6417
  });
@@ -6414,8 +6440,8 @@ function useCombinedRefs(...refs) {
6414
6440
  */
6415
6441
 
6416
6442
  function setupFloating(reference, floating, options) {
6417
- return autoUpdate(reference, floating, () => {
6418
- computePosition(reference, floating, options).then(({
6443
+ return autoUpdate$1(reference, floating, () => {
6444
+ computePosition$1(reference, floating, options).then(({
6419
6445
  x,
6420
6446
  y
6421
6447
  }) => {
@@ -6611,7 +6637,7 @@ const Tooltip = /*#__PURE__*/React__namespace.default.forwardRef(function Toolti
6611
6637
  if (open && !disabled && combinedTriggerRef.current && tooltipRef.current) {
6612
6638
  cleanup = setupFloating(combinedTriggerRef.current, tooltipRef.current, {
6613
6639
  placement,
6614
- middleware: [offset$1(8), flip$1({
6640
+ middleware: [offset$2(8), flip$2({
6615
6641
  fallbackPlacements
6616
6642
  }), shift({
6617
6643
  limiter: limitShift()
@@ -8842,7 +8868,7 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
8842
8868
  if (popperReference && dropdownRef.current) {
8843
8869
  cleanup = setupFloating(popperReference, dropdownRef.current, {
8844
8870
  placement,
8845
- middleware: [flip$1(), shift({
8871
+ middleware: [flip$2(), shift({
8846
8872
  limiter: limitShift()
8847
8873
  })],
8848
8874
  strategy: 'fixed'
@@ -17984,23 +18010,749 @@ function subYears(date, amount) {
17984
18010
  return addYears(date, -amount);
17985
18011
  }
17986
18012
 
17987
- var index$1 = typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect;
17988
-
17989
- // Fork of `fast-deep-equal` that only does the comparisons we need and compares
17990
- // functions
17991
- function deepEqual(a, b) {
17992
- if (a === b) {
17993
- return true;
17994
- }
17995
- if (typeof a !== typeof b) {
17996
- return false;
17997
- }
17998
- if (typeof a === 'function' && a.toString() === b.toString()) {
17999
- return true;
18000
- }
18001
- let length;
18002
- let i;
18003
- let keys;
18013
+ function getCssDimensions(element) {
18014
+ const css = getComputedStyle$1(element);
18015
+ // In testing environments, the `width` and `height` properties are empty
18016
+ // strings for SVG elements, returning NaN. Fallback to `0` in this case.
18017
+ let width = parseFloat(css.width) || 0;
18018
+ let height = parseFloat(css.height) || 0;
18019
+ const hasOffset = isHTMLElement(element);
18020
+ const offsetWidth = hasOffset ? element.offsetWidth : width;
18021
+ const offsetHeight = hasOffset ? element.offsetHeight : height;
18022
+ const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
18023
+ if (shouldFallback) {
18024
+ width = offsetWidth;
18025
+ height = offsetHeight;
18026
+ }
18027
+ return {
18028
+ width,
18029
+ height,
18030
+ $: shouldFallback
18031
+ };
18032
+ }
18033
+
18034
+ function unwrapElement(element) {
18035
+ return !isElement(element) ? element.contextElement : element;
18036
+ }
18037
+
18038
+ function getScale(element) {
18039
+ const domElement = unwrapElement(element);
18040
+ if (!isHTMLElement(domElement)) {
18041
+ return createCoords(1);
18042
+ }
18043
+ const rect = domElement.getBoundingClientRect();
18044
+ const {
18045
+ width,
18046
+ height,
18047
+ $
18048
+ } = getCssDimensions(domElement);
18049
+ let x = ($ ? round(rect.width) : rect.width) / width;
18050
+ let y = ($ ? round(rect.height) : rect.height) / height;
18051
+
18052
+ // 0, NaN, or Infinity should always fallback to 1.
18053
+
18054
+ if (!x || !Number.isFinite(x)) {
18055
+ x = 1;
18056
+ }
18057
+ if (!y || !Number.isFinite(y)) {
18058
+ y = 1;
18059
+ }
18060
+ return {
18061
+ x,
18062
+ y
18063
+ };
18064
+ }
18065
+
18066
+ const noOffsets = /*#__PURE__*/createCoords(0);
18067
+ function getVisualOffsets(element) {
18068
+ const win = getWindow(element);
18069
+ if (!isWebKit() || !win.visualViewport) {
18070
+ return noOffsets;
18071
+ }
18072
+ return {
18073
+ x: win.visualViewport.offsetLeft,
18074
+ y: win.visualViewport.offsetTop
18075
+ };
18076
+ }
18077
+ function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
18078
+ if (isFixed === void 0) {
18079
+ isFixed = false;
18080
+ }
18081
+ if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {
18082
+ return false;
18083
+ }
18084
+ return isFixed;
18085
+ }
18086
+
18087
+ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
18088
+ if (includeScale === void 0) {
18089
+ includeScale = false;
18090
+ }
18091
+ if (isFixedStrategy === void 0) {
18092
+ isFixedStrategy = false;
18093
+ }
18094
+ const clientRect = element.getBoundingClientRect();
18095
+ const domElement = unwrapElement(element);
18096
+ let scale = createCoords(1);
18097
+ if (includeScale) {
18098
+ if (offsetParent) {
18099
+ if (isElement(offsetParent)) {
18100
+ scale = getScale(offsetParent);
18101
+ }
18102
+ } else {
18103
+ scale = getScale(element);
18104
+ }
18105
+ }
18106
+ const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
18107
+ let x = (clientRect.left + visualOffsets.x) / scale.x;
18108
+ let y = (clientRect.top + visualOffsets.y) / scale.y;
18109
+ let width = clientRect.width / scale.x;
18110
+ let height = clientRect.height / scale.y;
18111
+ if (domElement) {
18112
+ const win = getWindow(domElement);
18113
+ const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
18114
+ let currentWin = win;
18115
+ let currentIFrame = getFrameElement(currentWin);
18116
+ while (currentIFrame && offsetParent && offsetWin !== currentWin) {
18117
+ const iframeScale = getScale(currentIFrame);
18118
+ const iframeRect = currentIFrame.getBoundingClientRect();
18119
+ const css = getComputedStyle$1(currentIFrame);
18120
+ const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
18121
+ const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
18122
+ x *= iframeScale.x;
18123
+ y *= iframeScale.y;
18124
+ width *= iframeScale.x;
18125
+ height *= iframeScale.y;
18126
+ x += left;
18127
+ y += top;
18128
+ currentWin = getWindow(currentIFrame);
18129
+ currentIFrame = getFrameElement(currentWin);
18130
+ }
18131
+ }
18132
+ return rectToClientRect({
18133
+ width,
18134
+ height,
18135
+ x,
18136
+ y
18137
+ });
18138
+ }
18139
+
18140
+ // If <html> has a CSS width greater than the viewport, then this will be
18141
+ // incorrect for RTL.
18142
+ function getWindowScrollBarX(element, rect) {
18143
+ const leftScroll = getNodeScroll(element).scrollLeft;
18144
+ if (!rect) {
18145
+ return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
18146
+ }
18147
+ return rect.left + leftScroll;
18148
+ }
18149
+
18150
+ function getHTMLOffset(documentElement, scroll) {
18151
+ const htmlRect = documentElement.getBoundingClientRect();
18152
+ const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
18153
+ const y = htmlRect.top + scroll.scrollTop;
18154
+ return {
18155
+ x,
18156
+ y
18157
+ };
18158
+ }
18159
+
18160
+ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
18161
+ let {
18162
+ elements,
18163
+ rect,
18164
+ offsetParent,
18165
+ strategy
18166
+ } = _ref;
18167
+ const isFixed = strategy === 'fixed';
18168
+ const documentElement = getDocumentElement(offsetParent);
18169
+ const topLayer = elements ? isTopLayer(elements.floating) : false;
18170
+ if (offsetParent === documentElement || topLayer && isFixed) {
18171
+ return rect;
18172
+ }
18173
+ let scroll = {
18174
+ scrollLeft: 0,
18175
+ scrollTop: 0
18176
+ };
18177
+ let scale = createCoords(1);
18178
+ const offsets = createCoords(0);
18179
+ const isOffsetParentAnElement = isHTMLElement(offsetParent);
18180
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
18181
+ if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
18182
+ scroll = getNodeScroll(offsetParent);
18183
+ }
18184
+ if (isOffsetParentAnElement) {
18185
+ const offsetRect = getBoundingClientRect(offsetParent);
18186
+ scale = getScale(offsetParent);
18187
+ offsets.x = offsetRect.x + offsetParent.clientLeft;
18188
+ offsets.y = offsetRect.y + offsetParent.clientTop;
18189
+ }
18190
+ }
18191
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
18192
+ return {
18193
+ width: rect.width * scale.x,
18194
+ height: rect.height * scale.y,
18195
+ x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
18196
+ y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
18197
+ };
18198
+ }
18199
+
18200
+ function getClientRects(element) {
18201
+ return Array.from(element.getClientRects());
18202
+ }
18203
+
18204
+ // Gets the entire size of the scrollable document area, even extending outside
18205
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable.
18206
+ function getDocumentRect(element) {
18207
+ const html = getDocumentElement(element);
18208
+ const scroll = getNodeScroll(element);
18209
+ const body = element.ownerDocument.body;
18210
+ const width = max$1(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
18211
+ const height = max$1(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
18212
+ let x = -scroll.scrollLeft + getWindowScrollBarX(element);
18213
+ const y = -scroll.scrollTop;
18214
+ if (getComputedStyle$1(body).direction === 'rtl') {
18215
+ x += max$1(html.clientWidth, body.clientWidth) - width;
18216
+ }
18217
+ return {
18218
+ width,
18219
+ height,
18220
+ x,
18221
+ y
18222
+ };
18223
+ }
18224
+
18225
+ // Safety check: ensure the scrollbar space is reasonable in case this
18226
+ // calculation is affected by unusual styles.
18227
+ // Most scrollbars leave 15-18px of space.
18228
+ const SCROLLBAR_MAX = 25;
18229
+ function getViewportRect(element, strategy) {
18230
+ const win = getWindow(element);
18231
+ const html = getDocumentElement(element);
18232
+ const visualViewport = win.visualViewport;
18233
+ let width = html.clientWidth;
18234
+ let height = html.clientHeight;
18235
+ let x = 0;
18236
+ let y = 0;
18237
+ if (visualViewport) {
18238
+ width = visualViewport.width;
18239
+ height = visualViewport.height;
18240
+ const visualViewportBased = isWebKit();
18241
+ if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {
18242
+ x = visualViewport.offsetLeft;
18243
+ y = visualViewport.offsetTop;
18244
+ }
18245
+ }
18246
+ const windowScrollbarX = getWindowScrollBarX(html);
18247
+ // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the
18248
+ // visual width of the <html> but this is not considered in the size
18249
+ // of `html.clientWidth`.
18250
+ if (windowScrollbarX <= 0) {
18251
+ const doc = html.ownerDocument;
18252
+ const body = doc.body;
18253
+ const bodyStyles = getComputedStyle(body);
18254
+ const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
18255
+ const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
18256
+ if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
18257
+ width -= clippingStableScrollbarWidth;
18258
+ }
18259
+ } else if (windowScrollbarX <= SCROLLBAR_MAX) {
18260
+ // If the <body> scrollbar is on the left, the width needs to be extended
18261
+ // by the scrollbar amount so there isn't extra space on the right.
18262
+ width += windowScrollbarX;
18263
+ }
18264
+ return {
18265
+ width,
18266
+ height,
18267
+ x,
18268
+ y
18269
+ };
18270
+ }
18271
+
18272
+ // Returns the inner client rect, subtracting scrollbars if present.
18273
+ function getInnerBoundingClientRect(element, strategy) {
18274
+ const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
18275
+ const top = clientRect.top + element.clientTop;
18276
+ const left = clientRect.left + element.clientLeft;
18277
+ const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
18278
+ const width = element.clientWidth * scale.x;
18279
+ const height = element.clientHeight * scale.y;
18280
+ const x = left * scale.x;
18281
+ const y = top * scale.y;
18282
+ return {
18283
+ width,
18284
+ height,
18285
+ x,
18286
+ y
18287
+ };
18288
+ }
18289
+ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
18290
+ let rect;
18291
+ if (clippingAncestor === 'viewport') {
18292
+ rect = getViewportRect(element, strategy);
18293
+ } else if (clippingAncestor === 'document') {
18294
+ rect = getDocumentRect(getDocumentElement(element));
18295
+ } else if (isElement(clippingAncestor)) {
18296
+ rect = getInnerBoundingClientRect(clippingAncestor, strategy);
18297
+ } else {
18298
+ const visualOffsets = getVisualOffsets(element);
18299
+ rect = {
18300
+ x: clippingAncestor.x - visualOffsets.x,
18301
+ y: clippingAncestor.y - visualOffsets.y,
18302
+ width: clippingAncestor.width,
18303
+ height: clippingAncestor.height
18304
+ };
18305
+ }
18306
+ return rectToClientRect(rect);
18307
+ }
18308
+ function hasFixedPositionAncestor(element, stopNode) {
18309
+ const parentNode = getParentNode(element);
18310
+ if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
18311
+ return false;
18312
+ }
18313
+ return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
18314
+ }
18315
+
18316
+ // A "clipping ancestor" is an `overflow` element with the characteristic of
18317
+ // clipping (or hiding) child elements. This returns all clipping ancestors
18318
+ // of the given element up the tree.
18319
+ function getClippingElementAncestors(element, cache) {
18320
+ const cachedResult = cache.get(element);
18321
+ if (cachedResult) {
18322
+ return cachedResult;
18323
+ }
18324
+ let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
18325
+ let currentContainingBlockComputedStyle = null;
18326
+ const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
18327
+ let currentNode = elementIsFixed ? getParentNode(element) : element;
18328
+
18329
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
18330
+ while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
18331
+ const computedStyle = getComputedStyle$1(currentNode);
18332
+ const currentNodeIsContaining = isContainingBlock(currentNode);
18333
+ if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
18334
+ currentContainingBlockComputedStyle = null;
18335
+ }
18336
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === 'absolute' || currentContainingBlockComputedStyle.position === 'fixed') || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
18337
+ if (shouldDropCurrentNode) {
18338
+ // Drop non-containing blocks.
18339
+ result = result.filter(ancestor => ancestor !== currentNode);
18340
+ } else {
18341
+ // Record last containing block for next iteration.
18342
+ currentContainingBlockComputedStyle = computedStyle;
18343
+ }
18344
+ currentNode = getParentNode(currentNode);
18345
+ }
18346
+ cache.set(element, result);
18347
+ return result;
18348
+ }
18349
+
18350
+ // Gets the maximum area that the element is visible in due to any number of
18351
+ // clipping ancestors.
18352
+ function getClippingRect(_ref) {
18353
+ let {
18354
+ element,
18355
+ boundary,
18356
+ rootBoundary,
18357
+ strategy
18358
+ } = _ref;
18359
+ const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
18360
+ const clippingAncestors = [...elementClippingAncestors, rootBoundary];
18361
+ const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);
18362
+ let top = firstRect.top;
18363
+ let right = firstRect.right;
18364
+ let bottom = firstRect.bottom;
18365
+ let left = firstRect.left;
18366
+ for (let i = 1; i < clippingAncestors.length; i++) {
18367
+ const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);
18368
+ top = max$1(rect.top, top);
18369
+ right = min$1(rect.right, right);
18370
+ bottom = min$1(rect.bottom, bottom);
18371
+ left = max$1(rect.left, left);
18372
+ }
18373
+ return {
18374
+ width: right - left,
18375
+ height: bottom - top,
18376
+ x: left,
18377
+ y: top
18378
+ };
18379
+ }
18380
+
18381
+ function getDimensions(element) {
18382
+ const {
18383
+ width,
18384
+ height
18385
+ } = getCssDimensions(element);
18386
+ return {
18387
+ width,
18388
+ height
18389
+ };
18390
+ }
18391
+
18392
+ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
18393
+ const isOffsetParentAnElement = isHTMLElement(offsetParent);
18394
+ const documentElement = getDocumentElement(offsetParent);
18395
+ const isFixed = strategy === 'fixed';
18396
+ const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
18397
+ let scroll = {
18398
+ scrollLeft: 0,
18399
+ scrollTop: 0
18400
+ };
18401
+ const offsets = createCoords(0);
18402
+
18403
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
18404
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
18405
+ function setLeftRTLScrollbarOffset() {
18406
+ offsets.x = getWindowScrollBarX(documentElement);
18407
+ }
18408
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
18409
+ if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
18410
+ scroll = getNodeScroll(offsetParent);
18411
+ }
18412
+ if (isOffsetParentAnElement) {
18413
+ const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
18414
+ offsets.x = offsetRect.x + offsetParent.clientLeft;
18415
+ offsets.y = offsetRect.y + offsetParent.clientTop;
18416
+ } else if (documentElement) {
18417
+ setLeftRTLScrollbarOffset();
18418
+ }
18419
+ }
18420
+ if (isFixed && !isOffsetParentAnElement && documentElement) {
18421
+ setLeftRTLScrollbarOffset();
18422
+ }
18423
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
18424
+ const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
18425
+ const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
18426
+ return {
18427
+ x,
18428
+ y,
18429
+ width: rect.width,
18430
+ height: rect.height
18431
+ };
18432
+ }
18433
+
18434
+ function isStaticPositioned(element) {
18435
+ return getComputedStyle$1(element).position === 'static';
18436
+ }
18437
+
18438
+ function getTrueOffsetParent(element, polyfill) {
18439
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
18440
+ return null;
18441
+ }
18442
+ if (polyfill) {
18443
+ return polyfill(element);
18444
+ }
18445
+ let rawOffsetParent = element.offsetParent;
18446
+
18447
+ // Firefox returns the <html> element as the offsetParent if it's non-static,
18448
+ // while Chrome and Safari return the <body> element. The <body> element must
18449
+ // be used to perform the correct calculations even if the <html> element is
18450
+ // non-static.
18451
+ if (getDocumentElement(element) === rawOffsetParent) {
18452
+ rawOffsetParent = rawOffsetParent.ownerDocument.body;
18453
+ }
18454
+ return rawOffsetParent;
18455
+ }
18456
+
18457
+ // Gets the closest ancestor positioned element. Handles some edge cases,
18458
+ // such as table ancestors and cross browser bugs.
18459
+ function getOffsetParent(element, polyfill) {
18460
+ const win = getWindow(element);
18461
+ if (isTopLayer(element)) {
18462
+ return win;
18463
+ }
18464
+ if (!isHTMLElement(element)) {
18465
+ let svgOffsetParent = getParentNode(element);
18466
+ while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
18467
+ if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
18468
+ return svgOffsetParent;
18469
+ }
18470
+ svgOffsetParent = getParentNode(svgOffsetParent);
18471
+ }
18472
+ return win;
18473
+ }
18474
+ let offsetParent = getTrueOffsetParent(element, polyfill);
18475
+ while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
18476
+ offsetParent = getTrueOffsetParent(offsetParent, polyfill);
18477
+ }
18478
+ if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
18479
+ return win;
18480
+ }
18481
+ return offsetParent || getContainingBlock(element) || win;
18482
+ }
18483
+
18484
+ const getElementRects = async function (data) {
18485
+ const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
18486
+ const getDimensionsFn = this.getDimensions;
18487
+ const floatingDimensions = await getDimensionsFn(data.floating);
18488
+ return {
18489
+ reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
18490
+ floating: {
18491
+ x: 0,
18492
+ y: 0,
18493
+ width: floatingDimensions.width,
18494
+ height: floatingDimensions.height
18495
+ }
18496
+ };
18497
+ };
18498
+
18499
+ function isRTL(element) {
18500
+ return getComputedStyle$1(element).direction === 'rtl';
18501
+ }
18502
+
18503
+ const platform = {
18504
+ convertOffsetParentRelativeRectToViewportRelativeRect,
18505
+ getDocumentElement,
18506
+ getClippingRect,
18507
+ getOffsetParent,
18508
+ getElementRects,
18509
+ getClientRects,
18510
+ getDimensions,
18511
+ getScale,
18512
+ isElement,
18513
+ isRTL
18514
+ };
18515
+
18516
+ function rectsAreEqual(a, b) {
18517
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
18518
+ }
18519
+
18520
+ // https://samthor.au/2021/observing-dom/
18521
+ function observeMove(element, onMove) {
18522
+ let io = null;
18523
+ let timeoutId;
18524
+ const root = getDocumentElement(element);
18525
+ function cleanup() {
18526
+ var _io;
18527
+ clearTimeout(timeoutId);
18528
+ (_io = io) == null || _io.disconnect();
18529
+ io = null;
18530
+ }
18531
+ function refresh(skip, threshold) {
18532
+ if (skip === void 0) {
18533
+ skip = false;
18534
+ }
18535
+ if (threshold === void 0) {
18536
+ threshold = 1;
18537
+ }
18538
+ cleanup();
18539
+ const elementRectForRootMargin = element.getBoundingClientRect();
18540
+ const {
18541
+ left,
18542
+ top,
18543
+ width,
18544
+ height
18545
+ } = elementRectForRootMargin;
18546
+ if (!skip) {
18547
+ onMove();
18548
+ }
18549
+ if (!width || !height) {
18550
+ return;
18551
+ }
18552
+ const insetTop = floor(top);
18553
+ const insetRight = floor(root.clientWidth - (left + width));
18554
+ const insetBottom = floor(root.clientHeight - (top + height));
18555
+ const insetLeft = floor(left);
18556
+ const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
18557
+ const options = {
18558
+ rootMargin,
18559
+ threshold: max$1(0, min$1(1, threshold)) || 1
18560
+ };
18561
+ let isFirstUpdate = true;
18562
+ function handleObserve(entries) {
18563
+ const ratio = entries[0].intersectionRatio;
18564
+ if (ratio !== threshold) {
18565
+ if (!isFirstUpdate) {
18566
+ return refresh();
18567
+ }
18568
+ if (!ratio) {
18569
+ // If the reference is clipped, the ratio is 0. Throttle the refresh
18570
+ // to prevent an infinite loop of updates.
18571
+ timeoutId = setTimeout(() => {
18572
+ refresh(false, 1e-7);
18573
+ }, 1000);
18574
+ } else {
18575
+ refresh(false, ratio);
18576
+ }
18577
+ }
18578
+ if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
18579
+ // It's possible that even though the ratio is reported as 1, the
18580
+ // element is not actually fully within the IntersectionObserver's root
18581
+ // area anymore. This can happen under performance constraints. This may
18582
+ // be a bug in the browser's IntersectionObserver implementation. To
18583
+ // work around this, we compare the element's bounding rect now with
18584
+ // what it was at the time we created the IntersectionObserver. If they
18585
+ // are not equal then the element moved, so we refresh.
18586
+ refresh();
18587
+ }
18588
+ isFirstUpdate = false;
18589
+ }
18590
+
18591
+ // Older browsers don't support a `document` as the root and will throw an
18592
+ // error.
18593
+ try {
18594
+ io = new IntersectionObserver(handleObserve, {
18595
+ ...options,
18596
+ // Handle <iframe>s
18597
+ root: root.ownerDocument
18598
+ });
18599
+ } catch (_e) {
18600
+ io = new IntersectionObserver(handleObserve, options);
18601
+ }
18602
+ io.observe(element);
18603
+ }
18604
+ refresh(true);
18605
+ return cleanup;
18606
+ }
18607
+
18608
+ /**
18609
+ * Automatically updates the position of the floating element when necessary.
18610
+ * Should only be called when the floating element is mounted on the DOM or
18611
+ * visible on the screen.
18612
+ * @returns cleanup function that should be invoked when the floating element is
18613
+ * removed from the DOM or hidden from the screen.
18614
+ * @see https://floating-ui.com/docs/autoUpdate
18615
+ */
18616
+ function autoUpdate(reference, floating, update, options) {
18617
+ if (options === void 0) {
18618
+ options = {};
18619
+ }
18620
+ const {
18621
+ ancestorScroll = true,
18622
+ ancestorResize = true,
18623
+ elementResize = typeof ResizeObserver === 'function',
18624
+ layoutShift = typeof IntersectionObserver === 'function',
18625
+ animationFrame = false
18626
+ } = options;
18627
+ const referenceEl = unwrapElement(reference);
18628
+ const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];
18629
+ ancestors.forEach(ancestor => {
18630
+ ancestorScroll && ancestor.addEventListener('scroll', update, {
18631
+ passive: true
18632
+ });
18633
+ ancestorResize && ancestor.addEventListener('resize', update);
18634
+ });
18635
+ const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
18636
+ let reobserveFrame = -1;
18637
+ let resizeObserver = null;
18638
+ if (elementResize) {
18639
+ resizeObserver = new ResizeObserver(_ref => {
18640
+ let [firstEntry] = _ref;
18641
+ if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {
18642
+ // Prevent update loops when using the `size` middleware.
18643
+ // https://github.com/floating-ui/floating-ui/issues/1740
18644
+ resizeObserver.unobserve(floating);
18645
+ cancelAnimationFrame(reobserveFrame);
18646
+ reobserveFrame = requestAnimationFrame(() => {
18647
+ var _resizeObserver;
18648
+ (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
18649
+ });
18650
+ }
18651
+ update();
18652
+ });
18653
+ if (referenceEl && !animationFrame) {
18654
+ resizeObserver.observe(referenceEl);
18655
+ }
18656
+ if (floating) {
18657
+ resizeObserver.observe(floating);
18658
+ }
18659
+ }
18660
+ let frameId;
18661
+ let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
18662
+ if (animationFrame) {
18663
+ frameLoop();
18664
+ }
18665
+ function frameLoop() {
18666
+ const nextRefRect = getBoundingClientRect(reference);
18667
+ if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
18668
+ update();
18669
+ }
18670
+ prevRefRect = nextRefRect;
18671
+ frameId = requestAnimationFrame(frameLoop);
18672
+ }
18673
+ update();
18674
+ return () => {
18675
+ var _resizeObserver2;
18676
+ ancestors.forEach(ancestor => {
18677
+ ancestorScroll && ancestor.removeEventListener('scroll', update);
18678
+ ancestorResize && ancestor.removeEventListener('resize', update);
18679
+ });
18680
+ cleanupIo == null || cleanupIo();
18681
+ (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
18682
+ resizeObserver = null;
18683
+ if (animationFrame) {
18684
+ cancelAnimationFrame(frameId);
18685
+ }
18686
+ };
18687
+ }
18688
+
18689
+ /**
18690
+ * Modifies the placement by translating the floating element along the
18691
+ * specified axes.
18692
+ * A number (shorthand for `mainAxis` or distance), or an axes configuration
18693
+ * object may be passed.
18694
+ * @see https://floating-ui.com/docs/offset
18695
+ */
18696
+ const offset$1 = offset$3;
18697
+
18698
+ /**
18699
+ * Optimizes the visibility of the floating element by flipping the `placement`
18700
+ * in order to keep it in view when the preferred placement(s) will overflow the
18701
+ * clipping boundary. Alternative to `autoPlacement`.
18702
+ * @see https://floating-ui.com/docs/flip
18703
+ */
18704
+ const flip$1 = flip$3;
18705
+
18706
+ /**
18707
+ * Provides data to position an inner element of the floating element so that it
18708
+ * appears centered to the reference element.
18709
+ * @see https://floating-ui.com/docs/arrow
18710
+ */
18711
+ const arrow$2 = arrow$3;
18712
+
18713
+ /**
18714
+ * Computes the `x` and `y` coordinates that will place the floating element
18715
+ * next to a given reference element.
18716
+ */
18717
+ const computePosition = (reference, floating, options) => {
18718
+ // This caches the expensive `getClippingElementAncestors` function so that
18719
+ // multiple lifecycle resets re-use the same result. It only lives for a
18720
+ // single call. If other functions become expensive, we can add them as well.
18721
+ const cache = new Map();
18722
+ const mergedOptions = {
18723
+ platform,
18724
+ ...options
18725
+ };
18726
+ const platformWithCache = {
18727
+ ...mergedOptions.platform,
18728
+ _c: cache
18729
+ };
18730
+ return computePosition$2(reference, floating, {
18731
+ ...mergedOptions,
18732
+ platform: platformWithCache
18733
+ });
18734
+ };
18735
+
18736
+ var isClient = typeof document !== 'undefined';
18737
+
18738
+ var noop = function noop() {};
18739
+ var index$1 = isClient ? React.useLayoutEffect : noop;
18740
+
18741
+ // Fork of `fast-deep-equal` that only does the comparisons we need and compares
18742
+ // functions
18743
+ function deepEqual(a, b) {
18744
+ if (a === b) {
18745
+ return true;
18746
+ }
18747
+ if (typeof a !== typeof b) {
18748
+ return false;
18749
+ }
18750
+ if (typeof a === 'function' && a.toString() === b.toString()) {
18751
+ return true;
18752
+ }
18753
+ let length;
18754
+ let i;
18755
+ let keys;
18004
18756
  if (a && b && typeof a === 'object') {
18005
18757
  if (Array.isArray(a)) {
18006
18758
  length = a.length;
@@ -18258,10 +19010,14 @@ const arrow$1 = options => {
18258
19010
  * object may be passed.
18259
19011
  * @see https://floating-ui.com/docs/offset
18260
19012
  */
18261
- const offset = (options, deps) => ({
18262
- ...offset$1(options),
18263
- options: [options, deps]
18264
- });
19013
+ const offset = (options, deps) => {
19014
+ const result = offset$1(options);
19015
+ return {
19016
+ name: result.name,
19017
+ fn: result.fn,
19018
+ options: [options, deps]
19019
+ };
19020
+ };
18265
19021
 
18266
19022
  /**
18267
19023
  * Optimizes the visibility of the floating element by flipping the `placement`
@@ -18269,10 +19025,14 @@ const offset = (options, deps) => ({
18269
19025
  * clipping boundary. Alternative to `autoPlacement`.
18270
19026
  * @see https://floating-ui.com/docs/flip
18271
19027
  */
18272
- const flip = (options, deps) => ({
18273
- ...flip$1(options),
18274
- options: [options, deps]
18275
- });
19028
+ const flip = (options, deps) => {
19029
+ const result = flip$1(options);
19030
+ return {
19031
+ name: result.name,
19032
+ fn: result.fn,
19033
+ options: [options, deps]
19034
+ };
19035
+ };
18276
19036
 
18277
19037
  /**
18278
19038
  * Provides data to position an inner element of the floating element so that it
@@ -18280,10 +19040,14 @@ const flip = (options, deps) => ({
18280
19040
  * This wraps the core `arrow` middleware to allow React refs as the element.
18281
19041
  * @see https://floating-ui.com/docs/arrow
18282
19042
  */
18283
- const arrow = (options, deps) => ({
18284
- ...arrow$1(options),
18285
- options: [options, deps]
18286
- });
19043
+ const arrow = (options, deps) => {
19044
+ const result = arrow$1(options);
19045
+ return {
19046
+ name: result.name,
19047
+ fn: result.fn,
19048
+ options: [options, deps]
19049
+ };
19050
+ };
18287
19051
 
18288
19052
  // https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379
18289
19053
  const SafeReact = {
@@ -18423,7 +19187,7 @@ const FloatingArrow = /*#__PURE__*/React__namespace.forwardRef(function Floating
18423
19187
  // https://github.com/floating-ui/floating-ui/issues/2932
18424
19188
  index(() => {
18425
19189
  if (!floating) return;
18426
- const isRTL = getComputedStyle(floating).direction === 'rtl';
19190
+ const isRTL = getComputedStyle$1(floating).direction === 'rtl';
18427
19191
  if (isRTL) {
18428
19192
  setIsRTL(true);
18429
19193
  }
@@ -18598,7 +19362,7 @@ function useFloating(options) {
18598
19362
  const computedElements = rootContext.elements;
18599
19363
  const [_domReference, setDomReference] = React__namespace.useState(null);
18600
19364
  const [positionReference, _setPositionReference] = React__namespace.useState(null);
18601
- const optionDomReference = computedElements == null ? void 0 : computedElements.reference;
19365
+ const optionDomReference = computedElements == null ? void 0 : computedElements.domReference;
18602
19366
  const domReference = optionDomReference || _domReference;
18603
19367
  const domReferenceRef = React__namespace.useRef(null);
18604
19368
  const tree = useFloatingTree();
@@ -23974,7 +24738,7 @@ const DateTimePickerInput = /*#__PURE__*/React__namespace.default.forwardRef(fun
23974
24738
  var css_248z = ".react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon::before{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:\"\";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:\"Helvetica Neue\",helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative;line-height:initial}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:bold;font-size:.944rem}h2.react-datepicker__current-month{padding:0;margin:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *::before{border-color:hsl(0,0%,65%)}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next::before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous::before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.3rem;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + 1.7rem/2);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:bold}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:rgba(0,0,0,0)}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected,.react-datepicker__week-number--keyboard-selected):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:rgb(28.75,93.2196969697,143.75)}.react-datepicker__week-number--keyboard-selected{border-radius:.3rem;background-color:rgb(41.5,134.5606060606,207.5);color:#fff}.react-datepicker__week-number--keyboard-selected:hover{background-color:rgb(28.75,93.2196969697,143.75)}.react-datepicker__day-names{white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:bold}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:rgb(49.8551020408,189.6448979592,62.5632653061)}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:rgb(207,82.9642857143,0)}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:rgb(28.75,93.2196969697,143.75)}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:rgb(186.25,217.0833333333,241.25);color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:rgb(28.75,93.2196969697,143.75)}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:rgba(33,107,165,.5)}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{position:absolute;bottom:70%;left:50%;transform:translateX(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:.5rem;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid rgba(0,0,0,0);border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:hsl(0,0%,70%)}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:hsl(0,0%,70%)}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:hsl(0,0%,70%)}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:rgba(0,0,0,0);border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon::after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:\"×\"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled::after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:bold;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:rgba(0,0,0,.8);left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media(max-width: 400px),(max-height: 550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__children-container{width:13.8rem;margin:.4rem;padding-right:.2rem;padding-left:.2rem;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-0.125em}\n";
23975
24739
  styleInject(css_248z);
23976
24740
 
23977
- const DEFAULT_MODIFIERS = [flip$1({
24741
+ const DEFAULT_MODIFIERS = [flip$2({
23978
24742
  fallbackPlacements: ['bottom']
23979
24743
  }), shift({
23980
24744
  limiter: limitShift()
@@ -24446,6 +25210,68 @@ const TextArea = /*#__PURE__*/React__namespace.default.forwardRef(function TextA
24446
25210
  }, description));
24447
25211
  });
24448
25212
 
25213
+ var es_array_includes = {};
25214
+
25215
+ var addToUnscopables;
25216
+ var hasRequiredAddToUnscopables;
25217
+
25218
+ function requireAddToUnscopables () {
25219
+ if (hasRequiredAddToUnscopables) return addToUnscopables;
25220
+ hasRequiredAddToUnscopables = 1;
25221
+ var wellKnownSymbol = requireWellKnownSymbol();
25222
+ var create = requireObjectCreate();
25223
+ var defineProperty = requireObjectDefineProperty().f;
25224
+
25225
+ var UNSCOPABLES = wellKnownSymbol('unscopables');
25226
+ var ArrayPrototype = Array.prototype;
25227
+
25228
+ // Array.prototype[@@unscopables]
25229
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
25230
+ if (ArrayPrototype[UNSCOPABLES] === undefined) {
25231
+ defineProperty(ArrayPrototype, UNSCOPABLES, {
25232
+ configurable: true,
25233
+ value: create(null)
25234
+ });
25235
+ }
25236
+
25237
+ // add a key to Array.prototype[@@unscopables]
25238
+ addToUnscopables = function (key) {
25239
+ ArrayPrototype[UNSCOPABLES][key] = true;
25240
+ };
25241
+ return addToUnscopables;
25242
+ }
25243
+
25244
+ var hasRequiredEs_array_includes;
25245
+
25246
+ function requireEs_array_includes () {
25247
+ if (hasRequiredEs_array_includes) return es_array_includes;
25248
+ hasRequiredEs_array_includes = 1;
25249
+ var $ = require_export();
25250
+ var $includes = requireArrayIncludes().includes;
25251
+ var fails = requireFails();
25252
+ var addToUnscopables = requireAddToUnscopables();
25253
+
25254
+ // FF99+ bug
25255
+ var BROKEN_ON_SPARSE = fails(function () {
25256
+ // eslint-disable-next-line es/no-array-prototype-includes -- detection
25257
+ return !Array(1).includes();
25258
+ });
25259
+
25260
+ // `Array.prototype.includes` method
25261
+ // https://tc39.es/ecma262/#sec-array.prototype.includes
25262
+ $({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
25263
+ includes: function includes(el /* , fromIndex = 0 */) {
25264
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
25265
+ }
25266
+ });
25267
+
25268
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
25269
+ addToUnscopables('includes');
25270
+ return es_array_includes;
25271
+ }
25272
+
25273
+ requireEs_array_includes();
25274
+
24449
25275
  const DEFAULT_TRANSITION_TIMING = 'cubic-bezier(0.4, 0, 0.2, 1)';
24450
25276
  const DEFAULT_TRANSITION_DURATION = 225;
24451
25277
  const STYLES = {
@@ -25503,7 +26329,7 @@ const Popper = /*#__PURE__*/React__namespace.default.forwardRef(function PopperF
25503
26329
  if (popperRef.current) {
25504
26330
  cleanup = setupFloating(virtualEl || anchorElement, popperRef.current, {
25505
26331
  placement,
25506
- middleware: [offset$1(8), !virtualEl && flip$1({
26332
+ middleware: [offset$2(8), !virtualEl && flip$2({
25507
26333
  fallbackPlacements: ['bottom']
25508
26334
  }), shift({
25509
26335
  limiter: limitShift()
@@ -26152,6 +26978,7 @@ const CustomModal = /*#__PURE__*/React__namespace.default.forwardRef(function Mo
26152
26978
  const modalContentRef = React.useRef(null);
26153
26979
  const startSentinelRef = React.useRef(null);
26154
26980
  const endSentinelRef = React.useRef(null);
26981
+ const focusModalContentRef = React.useRef(focusModalContent);
26155
26982
  const onBackdropClick = React.useCallback(e => {
26156
26983
  if (e) {
26157
26984
  e.stopPropagation();
@@ -26199,7 +27026,7 @@ const CustomModal = /*#__PURE__*/React__namespace.default.forwardRef(function Mo
26199
27026
  const startSentinelRefSave = startSentinelRef.current;
26200
27027
  const endSentinelRefSave = endSentinelRef.current;
26201
27028
  if (open) {
26202
- if (focusModalContent) {
27029
+ if (focusModalContentRef.current) {
26203
27030
  modalContentRef.current && modalContentRef.current.focus();
26204
27031
  }
26205
27032
  startSentinelRefSave && startSentinelRefSave.addEventListener('focus', onStartSentinelFocus);
@@ -26210,7 +27037,7 @@ const CustomModal = /*#__PURE__*/React__namespace.default.forwardRef(function Mo
26210
27037
  endSentinelRefSave && endSentinelRefSave.removeEventListener('focus', onEndSentinelFocus);
26211
27038
  open && focusedElement && focusedElement.focus();
26212
27039
  };
26213
- }, [open, onStartSentinelFocus, onEndSentinelFocus, windowObj, focusModalContent]);
27040
+ }, [open, onStartSentinelFocus, onEndSentinelFocus, windowObj]);
26214
27041
  React.useEffect(() => {
26215
27042
  // delay the open of the modal after the show of the portal
26216
27043
  // in order to make the transition visible