@oliasoft-open-source/react-ui-library 4.17.0 → 4.18.0-beta-1

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.
package/dist/index.js CHANGED
@@ -11,11 +11,11 @@ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "
11
11
  var _docChanged, _ignoreNextExit, _suggesters, _next, _prev, _handlerMatches, _ignored, _removed, _lastChangeFromAppend, _a;
12
12
  import { jsx, jsxs, Fragment as Fragment$1 } from "react/jsx-runtime";
13
13
  import * as React$4 from "react";
14
- import React__default, { useContext, isValidElement, useState, useRef, useEffect, useCallback, createElement, forwardRef, useMemo, useLayoutEffect as useLayoutEffect$1, createContext, useReducer, useDebugValue, Fragment as Fragment$2, Component as Component$1, memo, cloneElement as cloneElement$1, PureComponent, useImperativeHandle } from "react";
14
+ import React__default, { useContext, isValidElement, useState, useRef, useEffect, useCallback, createElement, forwardRef, useMemo, useLayoutEffect as useLayoutEffect$1, createContext, useReducer, useDebugValue, Fragment as Fragment$2, memo as memo$1, cloneElement as cloneElement$1, PureComponent, useImperativeHandle } from "react";
15
15
  import * as PropTypes from "prop-types";
16
16
  import PropTypes__default from "prop-types";
17
- import ReactDOM, { createPortal, unstable_batchedUpdates, render } from "react-dom";
18
- import { noop as noop$2, set, get as get$2, isString as isString$3, isNumber as isNumber$1, isBoolean as isBoolean$1, isFunction as isFunction$3, isEmpty, isArray as isArray$1, toNumber, debounce as debounce$2, isObject as isObject$5, isEqual as isEqual$3 } from "lodash";
17
+ import ReactDOM, { createPortal, flushSync as flushSync$1, unstable_batchedUpdates, render } from "react-dom";
18
+ import { noop as noop$2, set, get as get$2, isString as isString$3, isNumber as isNumber$1, isBoolean as isBoolean$1, isFunction as isFunction$3, isEmpty, isArray as isArray$1, toNumber, debounce as debounce$3, isObject as isObject$5, isEqual as isEqual$3 } from "lodash";
19
19
  import { toString as toString$1, isScientificStringNum, roundToPrecision, toNum, validateNumber, cleanNumStr, stripLeadingZeros, roundToFixed, roundByMagnitude, unitFromQuantity, getUnit, KNOWN_UNITS, ALT_UNITS, isValueWithUnit, getValue, withUnit, convertSamePrecision, convertAndGetValue, split as split$1, label as label$b, isValidNum, getAltUnitsListByQuantity, altUnitsList, withPrettyUnitLabel, getUnitsForQuantity, roundByMagnitudeToFixed } from "@oliasoft-open-source/units";
20
20
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
21
21
  function getDefaultExportFromCjs(x2) {
@@ -222,32 +222,32 @@ function _setPrototypeOf$3(t, e2) {
222
222
  function _inheritsLoose$3(t, o) {
223
223
  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf$3(t, o);
224
224
  }
225
- var extendStatics$1 = function(d2, b2) {
226
- extendStatics$1 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b3) {
225
+ var extendStatics = function(d2, b2) {
226
+ extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b3) {
227
227
  d3.__proto__ = b3;
228
228
  } || function(d3, b3) {
229
229
  for (var p in b3) if (Object.prototype.hasOwnProperty.call(b3, p)) d3[p] = b3[p];
230
230
  };
231
- return extendStatics$1(d2, b2);
231
+ return extendStatics(d2, b2);
232
232
  };
233
- function __extends$1(d2, b2) {
233
+ function __extends(d2, b2) {
234
234
  if (typeof b2 !== "function" && b2 !== null)
235
235
  throw new TypeError("Class extends value " + String(b2) + " is not a constructor or null");
236
- extendStatics$1(d2, b2);
236
+ extendStatics(d2, b2);
237
237
  function __() {
238
238
  this.constructor = d2;
239
239
  }
240
240
  d2.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
241
241
  }
242
- var __assign$4 = function() {
243
- __assign$4 = Object.assign || function __assign2(t) {
242
+ var __assign$3 = function() {
243
+ __assign$3 = Object.assign || function __assign2(t) {
244
244
  for (var s, i = 1, n2 = arguments.length; i < n2; i++) {
245
245
  s = arguments[i];
246
246
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
247
247
  }
248
248
  return t;
249
249
  };
250
- return __assign$4.apply(this, arguments);
250
+ return __assign$3.apply(this, arguments);
251
251
  };
252
252
  function __rest$1(s, e2) {
253
253
  var t = {};
@@ -883,15 +883,15 @@ var DefaultContext = {
883
883
  attr: void 0
884
884
  };
885
885
  var IconContext = React__default.createContext && React__default.createContext(DefaultContext);
886
- var __assign$3 = function() {
887
- __assign$3 = Object.assign || function(t) {
886
+ var __assign$2 = function() {
887
+ __assign$2 = Object.assign || function(t) {
888
888
  for (var s, i = 1, n2 = arguments.length; i < n2; i++) {
889
889
  s = arguments[i];
890
890
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
891
891
  }
892
892
  return t;
893
893
  };
894
- return __assign$3.apply(this, arguments);
894
+ return __assign$2.apply(this, arguments);
895
895
  };
896
896
  var __rest = function(s, e2) {
897
897
  var t = {};
@@ -903,15 +903,15 @@ var __rest = function(s, e2) {
903
903
  };
904
904
  function Tree2Element(tree2) {
905
905
  return tree2 && tree2.map(function(node2, i) {
906
- return React__default.createElement(node2.tag, __assign$3({
906
+ return React__default.createElement(node2.tag, __assign$2({
907
907
  key: i
908
908
  }, node2.attr), Tree2Element(node2.child));
909
909
  });
910
910
  }
911
911
  function GenIcon(data) {
912
912
  return function(props) {
913
- return React__default.createElement(IconBase, __assign$3({
914
- attr: __assign$3({}, data.attr)
913
+ return React__default.createElement(IconBase, __assign$2({
914
+ attr: __assign$2({}, data.attr)
915
915
  }, props), Tree2Element(data.child));
916
916
  };
917
917
  }
@@ -922,13 +922,13 @@ function IconBase(props) {
922
922
  var className;
923
923
  if (conf.className) className = conf.className;
924
924
  if (props.className) className = (className ? className + " " : "") + props.className;
925
- return React__default.createElement("svg", __assign$3({
925
+ return React__default.createElement("svg", __assign$2({
926
926
  stroke: "currentColor",
927
927
  fill: "currentColor",
928
928
  strokeWidth: "0"
929
929
  }, conf.attr, attr, svgProps, {
930
930
  className,
931
- style: __assign$3(__assign$3({
931
+ style: __assign$2(__assign$2({
932
932
  color: props.color || conf.color
933
933
  }, conf.style), props.style),
934
934
  height: computedSize,
@@ -1808,7 +1808,7 @@ var requestAnimationFrame$1 = function() {
1808
1808
  };
1809
1809
  }();
1810
1810
  var trailingTimeout = 2;
1811
- function throttle$2(callback, delay) {
1811
+ function throttle$1(callback, delay) {
1812
1812
  var leadingCall = false, trailingCall = false, lastCallTime = 0;
1813
1813
  function resolvePending() {
1814
1814
  if (leadingCall) {
@@ -1850,7 +1850,7 @@ var ResizeObserverController$1 = (
1850
1850
  this.mutationsObserver_ = null;
1851
1851
  this.observers_ = [];
1852
1852
  this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
1853
- this.refresh = throttle$2(this.refresh.bind(this), REFRESH_DELAY);
1853
+ this.refresh = throttle$1(this.refresh.bind(this), REFRESH_DELAY);
1854
1854
  }
1855
1855
  ResizeObserverController2.prototype.addObserver = function(observer) {
1856
1856
  if (!~this.observers_.indexOf(observer)) {
@@ -2354,7 +2354,7 @@ function useEventSubscriptions() {
2354
2354
  };
2355
2355
  }, []);
2356
2356
  }
2357
- var useIsomorphicLayoutEffect$5 = typeof window !== "undefined" ? useLayoutEffect$1 : useEffect;
2357
+ var useIsomorphicLayoutEffect$6 = typeof window !== "undefined" ? useLayoutEffect$1 : useEffect;
2358
2358
  function useLastState(currentState, enabled) {
2359
2359
  var lastState = useRef(currentState);
2360
2360
  if (!enabled) {
@@ -2602,7 +2602,7 @@ function useTrackElements(_ref) {
2602
2602
  resetWhenReferenceChangedWhileTracking(previousTrigger, trigger2);
2603
2603
  }, [get3, set2, resetWhenReferenceChangedWhileTracking, getScrollContainers]));
2604
2604
  var triggerOptionParent = triggerOption == null ? void 0 : triggerOption.getParent == null ? void 0 : triggerOption.getParent();
2605
- useIsomorphicLayoutEffect$5(function() {
2605
+ useIsomorphicLayoutEffect$6(function() {
2606
2606
  if (!triggerOptionParent) {
2607
2607
  return;
2608
2608
  }
@@ -2612,7 +2612,7 @@ function useTrackElements(_ref) {
2612
2612
  });
2613
2613
  });
2614
2614
  }, [triggerOptionParent, set2, getScrollContainers]);
2615
- useIsomorphicLayoutEffect$5(function() {
2615
+ useIsomorphicLayoutEffect$6(function() {
2616
2616
  if (enabled) {
2617
2617
  if (!hasEventSubscriptions()) {
2618
2618
  addEventListeners();
@@ -2624,7 +2624,7 @@ function useTrackElements(_ref) {
2624
2624
  }
2625
2625
  };
2626
2626
  }, [enabled, hasEventSubscriptions, addEventListeners, removeAllEventSubscriptions]);
2627
- useIsomorphicLayoutEffect$5(function() {
2627
+ useIsomorphicLayoutEffect$6(function() {
2628
2628
  if (enabled) {
2629
2629
  handleChange();
2630
2630
  }
@@ -5308,15 +5308,15 @@ const Card = ({
5308
5308
  }
5309
5309
  );
5310
5310
  };
5311
- var __assign$2 = function() {
5312
- __assign$2 = Object.assign || function __assign2(t) {
5311
+ var __assign$1 = function() {
5312
+ __assign$1 = Object.assign || function __assign2(t) {
5313
5313
  for (var s, i = 1, n2 = arguments.length; i < n2; i++) {
5314
5314
  s = arguments[i];
5315
5315
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
5316
5316
  }
5317
5317
  return t;
5318
5318
  };
5319
- return __assign$2.apply(this, arguments);
5319
+ return __assign$1.apply(this, arguments);
5320
5320
  };
5321
5321
  function __spreadArray$1(to2, from3, pack) {
5322
5322
  if (pack || arguments.length === 2) for (var i = 0, l = from3.length, ar2; i < l; i++) {
@@ -6149,7 +6149,7 @@ var Ie = function(e2) {
6149
6149
  function e2(e3, n2, o) {
6150
6150
  void 0 === e3 && (e3 = C), void 0 === n2 && (n2 = {});
6151
6151
  var r2 = this;
6152
- this.options = __assign$2(__assign$2({}, Te), e3), this.gs = n2, this.names = new Map(o), this.server = !!e3.isServer, !this.server && S && Re && (Re = false, _e(this)), ue(this, function() {
6152
+ this.options = __assign$1(__assign$1({}, Te), e3), this.gs = n2, this.names = new Map(o), this.server = !!e3.isServer, !this.server && S && Re && (Re = false, _e(this)), ue(this, function() {
6153
6153
  return function(e4) {
6154
6154
  for (var t = e4.getTag(), n3 = t.length, o2 = "", r3 = function(n4) {
6155
6155
  var r4 = function(e5) {
@@ -6172,7 +6172,7 @@ var Ie = function(e2) {
6172
6172
  }, e2.prototype.rehydrate = function() {
6173
6173
  !this.server && S && _e(this);
6174
6174
  }, e2.prototype.reconstructWithOptions = function(n2, o) {
6175
- return void 0 === o && (o = true), new e2(__assign$2(__assign$2({}, this.options), n2), this.gs, o && this.names || void 0);
6175
+ return void 0 === o && (o = true), new e2(__assign$1(__assign$1({}, this.options), n2), this.gs, o && this.names || void 0);
6176
6176
  }, e2.prototype.allocateGSInstance = function(e3) {
6177
6177
  return this.gs[e3] = (this.gs[e3] || 0) + 1;
6178
6178
  }, e2.prototype.getTag = function() {
@@ -6345,9 +6345,9 @@ function it$1(e2, r2, s) {
6345
6345
  var i2 = e4.attrs, a3 = e4.componentStyle, c3 = e4.defaultProps, p2 = e4.foldedComponentIds, d3 = e4.styledComponentId, h2 = e4.target, f3 = React__default.useContext(et$1), m3 = Ge(), y3 = e4.shouldForwardProp || m3.shouldForwardProp;
6346
6346
  "production" !== process.env.NODE_ENV && useDebugValue(d3);
6347
6347
  var v2 = I(r4, f3, c3) || C, g3 = function(e5, n2, o) {
6348
- for (var r5, s3 = __assign$2(__assign$2({}, n2), { className: void 0, theme: o }), i3 = 0; i3 < e5.length; i3 += 1) {
6348
+ for (var r5, s3 = __assign$1(__assign$1({}, n2), { className: void 0, theme: o }), i3 = 0; i3 < e5.length; i3 += 1) {
6349
6349
  var a4 = re(r5 = e5[i3]) ? r5(s3) : r5;
6350
- for (var c4 in a4) s3[c4] = "className" === c4 ? ie$2(s3[c4], a4[c4]) : "style" === c4 ? __assign$2(__assign$2({}, s3[c4]), a4[c4]) : a4[c4];
6350
+ for (var c4 in a4) s3[c4] = "className" === c4 ? ie$2(s3[c4], a4[c4]) : "style" === c4 ? __assign$1(__assign$1({}, s3[c4]), a4[c4]) : a4[c4];
6351
6351
  }
6352
6352
  return n2.className && (s3.className = ie$2(s3.className, n2.className)), s3;
6353
6353
  }(i2, r4, v2), S3 = g3.as || h2, w3 = {};
@@ -6403,9 +6403,9 @@ function ut(n2, o, r2) {
6403
6403
  return n2(o, r2, lt$1.apply(void 0, __spreadArray$1([t], s2, false)));
6404
6404
  };
6405
6405
  return s.attrs = function(e2) {
6406
- return ut(n2, o, __assign$2(__assign$2({}, r2), { attrs: Array.prototype.concat(r2.attrs, e2).filter(Boolean) }));
6406
+ return ut(n2, o, __assign$1(__assign$1({}, r2), { attrs: Array.prototype.concat(r2.attrs, e2).filter(Boolean) }));
6407
6407
  }, s.withConfig = function(e2) {
6408
- return ut(n2, o, __assign$2(__assign$2({}, r2), e2));
6408
+ return ut(n2, o, __assign$1(__assign$1({}, r2), e2));
6409
6409
  }, s;
6410
6410
  }
6411
6411
  var pt$1 = function(e2) {
@@ -9501,383 +9501,803 @@ const InputGroupAddon = ({
9501
9501
  })();
9502
9502
  return /* @__PURE__ */ jsx("span", { className: cx$2(styles$u.addon, order2, small2 ? styles$u.small : ""), children });
9503
9503
  };
9504
- /*! *****************************************************************************
9505
- Copyright (c) Microsoft Corporation. All rights reserved.
9506
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use
9507
- this file except in compliance with the License. You may obtain a copy of the
9508
- License at http://www.apache.org/licenses/LICENSE-2.0
9509
-
9510
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
9511
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9512
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
9513
- MERCHANTABLITY OR NON-INFRINGEMENT.
9514
-
9515
- See the Apache Version 2.0 License for specific language governing permissions
9516
- and limitations under the License.
9517
- ***************************************************************************** */
9518
- var extendStatics = function(d2, b2) {
9519
- extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b3) {
9520
- d3.__proto__ = b3;
9521
- } || function(d3, b3) {
9522
- for (var p in b3) if (b3.hasOwnProperty(p)) d3[p] = b3[p];
9504
+ function memo(getDeps, fn, opts) {
9505
+ let deps = opts.initialDeps ?? [];
9506
+ let result;
9507
+ return () => {
9508
+ var _a2, _b, _c, _d;
9509
+ let depTime;
9510
+ if (opts.key && ((_a2 = opts.debug) == null ? void 0 : _a2.call(opts))) depTime = Date.now();
9511
+ const newDeps = getDeps();
9512
+ const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index2) => deps[index2] !== dep);
9513
+ if (!depsChanged) {
9514
+ return result;
9515
+ }
9516
+ deps = newDeps;
9517
+ let resultTime;
9518
+ if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();
9519
+ result = fn(...newDeps);
9520
+ if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {
9521
+ const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
9522
+ const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;
9523
+ const resultFpsPercentage = resultEndTime / 16;
9524
+ const pad = (str, num) => {
9525
+ str = String(str);
9526
+ while (str.length < num) {
9527
+ str = " " + str;
9528
+ }
9529
+ return str;
9530
+ };
9531
+ console.info(
9532
+ `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,
9533
+ `
9534
+ font-size: .6rem;
9535
+ font-weight: bold;
9536
+ color: hsl(${Math.max(
9537
+ 0,
9538
+ Math.min(120 - 120 * resultFpsPercentage, 120)
9539
+ )}deg 100% 31%);`,
9540
+ opts == null ? void 0 : opts.key
9541
+ );
9542
+ }
9543
+ (_d = opts == null ? void 0 : opts.onChange) == null ? void 0 : _d.call(opts, result);
9544
+ return result;
9523
9545
  };
9524
- return extendStatics(d2, b2);
9525
- };
9526
- function __extends(d2, b2) {
9527
- extendStatics(d2, b2);
9528
- function __() {
9529
- this.constructor = d2;
9546
+ }
9547
+ function notUndefined(value, msg2) {
9548
+ if (value === void 0) {
9549
+ throw new Error(`Unexpected undefined${""}`);
9550
+ } else {
9551
+ return value;
9530
9552
  }
9531
- d2.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
9532
9553
  }
9533
- var __assign$1 = function() {
9534
- __assign$1 = Object.assign || function __assign2(t) {
9535
- for (var s, i = 1, n2 = arguments.length; i < n2; i++) {
9536
- s = arguments[i];
9537
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9538
- }
9539
- return t;
9554
+ const approxEqual = (a2, b2) => Math.abs(a2 - b2) < 1;
9555
+ const debounce$2 = (targetWindow, fn, ms2) => {
9556
+ let timeoutId;
9557
+ return function(...args) {
9558
+ targetWindow.clearTimeout(timeoutId);
9559
+ timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms2);
9540
9560
  };
9541
- return __assign$1.apply(this, arguments);
9542
9561
  };
9543
- function throttle$1(delay, noTrailing, callback, debounceMode) {
9544
- var timeoutID;
9545
- var cancelled = false;
9546
- var lastExec = 0;
9547
- function clearExistingTimeout() {
9548
- if (timeoutID) {
9549
- clearTimeout(timeoutID);
9550
- }
9562
+ const defaultKeyExtractor = (index2) => index2;
9563
+ const defaultRangeExtractor = (range2) => {
9564
+ const start = Math.max(range2.startIndex - range2.overscan, 0);
9565
+ const end = Math.min(range2.endIndex + range2.overscan, range2.count - 1);
9566
+ const arr = [];
9567
+ for (let i = start; i <= end; i++) {
9568
+ arr.push(i);
9551
9569
  }
9552
- function cancel() {
9553
- clearExistingTimeout();
9554
- cancelled = true;
9570
+ return arr;
9571
+ };
9572
+ const observeElementRect = (instance, cb2) => {
9573
+ const element = instance.scrollElement;
9574
+ if (!element) {
9575
+ return;
9555
9576
  }
9556
- if (typeof noTrailing !== "boolean") {
9557
- debounceMode = callback;
9558
- callback = noTrailing;
9559
- noTrailing = void 0;
9577
+ const targetWindow = instance.targetWindow;
9578
+ if (!targetWindow) {
9579
+ return;
9560
9580
  }
9561
- function wrapper2() {
9562
- var self2 = this;
9563
- var elapsed = Date.now() - lastExec;
9564
- var args = arguments;
9565
- if (cancelled) {
9566
- return;
9567
- }
9568
- function exec() {
9569
- lastExec = Date.now();
9570
- callback.apply(self2, args);
9571
- }
9572
- function clear() {
9573
- timeoutID = void 0;
9574
- }
9575
- if (debounceMode && !timeoutID) {
9576
- exec();
9581
+ const handler = (rect) => {
9582
+ const { width: width2, height: height2 } = rect;
9583
+ cb2({ width: Math.round(width2), height: Math.round(height2) });
9584
+ };
9585
+ handler(element.getBoundingClientRect());
9586
+ if (!targetWindow.ResizeObserver) {
9587
+ return () => {
9588
+ };
9589
+ }
9590
+ const observer = new targetWindow.ResizeObserver((entries2) => {
9591
+ const entry = entries2[0];
9592
+ if (entry == null ? void 0 : entry.borderBoxSize) {
9593
+ const box = entry.borderBoxSize[0];
9594
+ if (box) {
9595
+ handler({ width: box.inlineSize, height: box.blockSize });
9596
+ return;
9597
+ }
9577
9598
  }
9578
- clearExistingTimeout();
9579
- if (debounceMode === void 0 && elapsed > delay) {
9580
- exec();
9581
- } else if (noTrailing !== true) {
9582
- timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === void 0 ? delay - elapsed : delay);
9599
+ handler(element.getBoundingClientRect());
9600
+ });
9601
+ observer.observe(element, { box: "border-box" });
9602
+ return () => {
9603
+ observer.unobserve(element);
9604
+ };
9605
+ };
9606
+ const addEventListenerOptions = {
9607
+ passive: true
9608
+ };
9609
+ const supportsScrollend = typeof window == "undefined" ? true : "onscrollend" in window;
9610
+ const observeElementOffset = (instance, cb2) => {
9611
+ const element = instance.scrollElement;
9612
+ if (!element) {
9613
+ return;
9614
+ }
9615
+ const targetWindow = instance.targetWindow;
9616
+ if (!targetWindow) {
9617
+ return;
9618
+ }
9619
+ let offset = 0;
9620
+ const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce$2(
9621
+ targetWindow,
9622
+ () => {
9623
+ cb2(offset, false);
9624
+ },
9625
+ instance.options.isScrollingResetDelay
9626
+ );
9627
+ const createHandler = (isScrolling) => () => {
9628
+ const { horizontal, isRtl } = instance.options;
9629
+ offset = horizontal ? element["scrollLeft"] * (isRtl && -1 || 1) : element["scrollTop"];
9630
+ fallback();
9631
+ cb2(offset, isScrolling);
9632
+ };
9633
+ const handler = createHandler(true);
9634
+ const endHandler = createHandler(false);
9635
+ endHandler();
9636
+ element.addEventListener("scroll", handler, addEventListenerOptions);
9637
+ element.addEventListener("scrollend", endHandler, addEventListenerOptions);
9638
+ return () => {
9639
+ element.removeEventListener("scroll", handler);
9640
+ element.removeEventListener("scrollend", endHandler);
9641
+ };
9642
+ };
9643
+ const measureElement = (element, entry, instance) => {
9644
+ if (entry == null ? void 0 : entry.borderBoxSize) {
9645
+ const box = entry.borderBoxSize[0];
9646
+ if (box) {
9647
+ const size2 = Math.round(
9648
+ box[instance.options.horizontal ? "inlineSize" : "blockSize"]
9649
+ );
9650
+ return size2;
9583
9651
  }
9584
9652
  }
9585
- wrapper2.cancel = cancel;
9586
- return wrapper2;
9587
- }
9588
- var ThresholdUnits = {
9589
- Pixel: "Pixel",
9590
- Percent: "Percent"
9653
+ return Math.round(
9654
+ element.getBoundingClientRect()[instance.options.horizontal ? "width" : "height"]
9655
+ );
9591
9656
  };
9592
- var defaultThreshold$1 = {
9593
- unit: ThresholdUnits.Percent,
9594
- value: 0.8
9657
+ const elementScroll = (offset, {
9658
+ adjustments = 0,
9659
+ behavior
9660
+ }, instance) => {
9661
+ var _a2, _b;
9662
+ const toOffset = offset + adjustments;
9663
+ (_b = (_a2 = instance.scrollElement) == null ? void 0 : _a2.scrollTo) == null ? void 0 : _b.call(_a2, {
9664
+ [instance.options.horizontal ? "left" : "top"]: toOffset,
9665
+ behavior
9666
+ });
9595
9667
  };
9596
- function parseThreshold(scrollThreshold) {
9597
- if (typeof scrollThreshold === "number") {
9598
- return {
9599
- unit: ThresholdUnits.Percent,
9600
- value: scrollThreshold * 100
9601
- };
9602
- }
9603
- if (typeof scrollThreshold === "string") {
9604
- if (scrollThreshold.match(/^(\d*(\.\d+)?)px$/)) {
9605
- return {
9606
- unit: ThresholdUnits.Pixel,
9607
- value: parseFloat(scrollThreshold)
9668
+ class Virtualizer {
9669
+ constructor(opts) {
9670
+ this.unsubs = [];
9671
+ this.scrollElement = null;
9672
+ this.targetWindow = null;
9673
+ this.isScrolling = false;
9674
+ this.scrollToIndexTimeoutId = null;
9675
+ this.measurementsCache = [];
9676
+ this.itemSizeCache = /* @__PURE__ */ new Map();
9677
+ this.pendingMeasuredCacheIndexes = [];
9678
+ this.scrollRect = null;
9679
+ this.scrollOffset = null;
9680
+ this.scrollDirection = null;
9681
+ this.scrollAdjustments = 0;
9682
+ this.elementsCache = /* @__PURE__ */ new Map();
9683
+ this.observer = /* @__PURE__ */ (() => {
9684
+ let _ro = null;
9685
+ const get3 = () => {
9686
+ if (_ro) {
9687
+ return _ro;
9688
+ }
9689
+ if (!this.targetWindow || !this.targetWindow.ResizeObserver) {
9690
+ return null;
9691
+ }
9692
+ return _ro = new this.targetWindow.ResizeObserver((entries2) => {
9693
+ entries2.forEach((entry) => {
9694
+ this._measureElement(entry.target, entry);
9695
+ });
9696
+ });
9608
9697
  };
9609
- }
9610
- if (scrollThreshold.match(/^(\d*(\.\d+)?)%$/)) {
9611
9698
  return {
9612
- unit: ThresholdUnits.Percent,
9613
- value: parseFloat(scrollThreshold)
9614
- };
9615
- }
9616
- console.warn('scrollThreshold format is invalid. Valid formats: "120px", "50%"...');
9617
- return defaultThreshold$1;
9618
- }
9619
- console.warn("scrollThreshold should be string or number");
9620
- return defaultThreshold$1;
9621
- }
9622
- var InfiniteScroll = (
9623
- /** @class */
9624
- function(_super) {
9625
- __extends(InfiniteScroll2, _super);
9626
- function InfiniteScroll2(props) {
9627
- var _this = _super.call(this, props) || this;
9628
- _this.lastScrollTop = 0;
9629
- _this.actionTriggered = false;
9630
- _this.startY = 0;
9631
- _this.currentY = 0;
9632
- _this.dragging = false;
9633
- _this.maxPullDownDistance = 0;
9634
- _this.getScrollableTarget = function() {
9635
- if (_this.props.scrollableTarget instanceof HTMLElement)
9636
- return _this.props.scrollableTarget;
9637
- if (typeof _this.props.scrollableTarget === "string") {
9638
- return document.getElementById(_this.props.scrollableTarget);
9639
- }
9640
- if (_this.props.scrollableTarget === null) {
9641
- console.warn("You are trying to pass scrollableTarget but it is null. This might\n happen because the element may not have been added to DOM yet.\n See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\n ");
9699
+ disconnect: () => {
9700
+ var _a2;
9701
+ (_a2 = get3()) == null ? void 0 : _a2.disconnect();
9702
+ _ro = null;
9703
+ },
9704
+ observe: (target) => {
9705
+ var _a2;
9706
+ return (_a2 = get3()) == null ? void 0 : _a2.observe(target, { box: "border-box" });
9707
+ },
9708
+ unobserve: (target) => {
9709
+ var _a2;
9710
+ return (_a2 = get3()) == null ? void 0 : _a2.unobserve(target);
9642
9711
  }
9643
- return null;
9644
9712
  };
9645
- _this.onStart = function(evt) {
9646
- if (_this.lastScrollTop)
9713
+ })();
9714
+ this.range = null;
9715
+ this.setOptions = (opts2) => {
9716
+ Object.entries(opts2).forEach(([key2, value]) => {
9717
+ if (typeof value === "undefined") delete opts2[key2];
9718
+ });
9719
+ this.options = {
9720
+ debug: false,
9721
+ initialOffset: 0,
9722
+ overscan: 1,
9723
+ paddingStart: 0,
9724
+ paddingEnd: 0,
9725
+ scrollPaddingStart: 0,
9726
+ scrollPaddingEnd: 0,
9727
+ horizontal: false,
9728
+ getItemKey: defaultKeyExtractor,
9729
+ rangeExtractor: defaultRangeExtractor,
9730
+ onChange: () => {
9731
+ },
9732
+ measureElement,
9733
+ initialRect: { width: 0, height: 0 },
9734
+ scrollMargin: 0,
9735
+ gap: 0,
9736
+ indexAttribute: "data-index",
9737
+ initialMeasurementsCache: [],
9738
+ lanes: 1,
9739
+ isScrollingResetDelay: 150,
9740
+ enabled: true,
9741
+ isRtl: false,
9742
+ useScrollendEvent: true,
9743
+ ...opts2
9744
+ };
9745
+ };
9746
+ this.notify = (sync2) => {
9747
+ var _a2, _b;
9748
+ (_b = (_a2 = this.options).onChange) == null ? void 0 : _b.call(_a2, this, sync2);
9749
+ };
9750
+ this.maybeNotify = memo(
9751
+ () => {
9752
+ this.calculateRange();
9753
+ return [
9754
+ this.isScrolling,
9755
+ this.range ? this.range.startIndex : null,
9756
+ this.range ? this.range.endIndex : null
9757
+ ];
9758
+ },
9759
+ (isScrolling) => {
9760
+ this.notify(isScrolling);
9761
+ },
9762
+ {
9763
+ key: process.env.NODE_ENV !== "production" && "maybeNotify",
9764
+ debug: () => this.options.debug,
9765
+ initialDeps: [
9766
+ this.isScrolling,
9767
+ this.range ? this.range.startIndex : null,
9768
+ this.range ? this.range.endIndex : null
9769
+ ]
9770
+ }
9771
+ );
9772
+ this.cleanup = () => {
9773
+ this.unsubs.filter(Boolean).forEach((d2) => d2());
9774
+ this.unsubs = [];
9775
+ this.observer.disconnect();
9776
+ this.scrollElement = null;
9777
+ this.targetWindow = null;
9778
+ };
9779
+ this._didMount = () => {
9780
+ return () => {
9781
+ this.cleanup();
9782
+ };
9783
+ };
9784
+ this._willUpdate = () => {
9785
+ var _a2;
9786
+ const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;
9787
+ if (this.scrollElement !== scrollElement) {
9788
+ this.cleanup();
9789
+ if (!scrollElement) {
9790
+ this.maybeNotify();
9647
9791
  return;
9648
- _this.dragging = true;
9649
- if (evt instanceof MouseEvent) {
9650
- _this.startY = evt.pageY;
9651
- } else if (evt instanceof TouchEvent) {
9652
- _this.startY = evt.touches[0].pageY;
9653
9792
  }
9654
- _this.currentY = _this.startY;
9655
- if (_this._infScroll) {
9656
- _this._infScroll.style.willChange = "transform";
9657
- _this._infScroll.style.transition = "transform 0.2s cubic-bezier(0,0,0.31,1)";
9793
+ this.scrollElement = scrollElement;
9794
+ if (this.scrollElement && "ownerDocument" in this.scrollElement) {
9795
+ this.targetWindow = this.scrollElement.ownerDocument.defaultView;
9796
+ } else {
9797
+ this.targetWindow = ((_a2 = this.scrollElement) == null ? void 0 : _a2.window) ?? null;
9658
9798
  }
9659
- };
9660
- _this.onMove = function(evt) {
9661
- if (!_this.dragging)
9662
- return;
9663
- if (evt instanceof MouseEvent) {
9664
- _this.currentY = evt.pageY;
9665
- } else if (evt instanceof TouchEvent) {
9666
- _this.currentY = evt.touches[0].pageY;
9799
+ this.elementsCache.forEach((cached) => {
9800
+ this.observer.observe(cached);
9801
+ });
9802
+ this._scrollToOffset(this.getScrollOffset(), {
9803
+ adjustments: void 0,
9804
+ behavior: void 0
9805
+ });
9806
+ this.unsubs.push(
9807
+ this.options.observeElementRect(this, (rect) => {
9808
+ this.scrollRect = rect;
9809
+ this.maybeNotify();
9810
+ })
9811
+ );
9812
+ this.unsubs.push(
9813
+ this.options.observeElementOffset(this, (offset, isScrolling) => {
9814
+ this.scrollAdjustments = 0;
9815
+ this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? "forward" : "backward" : null;
9816
+ this.scrollOffset = offset;
9817
+ this.isScrolling = isScrolling;
9818
+ this.maybeNotify();
9819
+ })
9820
+ );
9821
+ }
9822
+ };
9823
+ this.getSize = () => {
9824
+ if (!this.options.enabled) {
9825
+ this.scrollRect = null;
9826
+ return 0;
9827
+ }
9828
+ this.scrollRect = this.scrollRect ?? this.options.initialRect;
9829
+ return this.scrollRect[this.options.horizontal ? "width" : "height"];
9830
+ };
9831
+ this.getScrollOffset = () => {
9832
+ if (!this.options.enabled) {
9833
+ this.scrollOffset = null;
9834
+ return 0;
9835
+ }
9836
+ this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset);
9837
+ return this.scrollOffset;
9838
+ };
9839
+ this.getFurthestMeasurement = (measurements, index2) => {
9840
+ const furthestMeasurementsFound = /* @__PURE__ */ new Map();
9841
+ const furthestMeasurements = /* @__PURE__ */ new Map();
9842
+ for (let m2 = index2 - 1; m2 >= 0; m2--) {
9843
+ const measurement = measurements[m2];
9844
+ if (furthestMeasurementsFound.has(measurement.lane)) {
9845
+ continue;
9667
9846
  }
9668
- if (_this.currentY < _this.startY)
9669
- return;
9670
- if (_this.currentY - _this.startY >= Number(_this.props.pullDownToRefreshThreshold)) {
9671
- _this.setState({
9672
- pullToRefreshThresholdBreached: true
9673
- });
9847
+ const previousFurthestMeasurement = furthestMeasurements.get(
9848
+ measurement.lane
9849
+ );
9850
+ if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {
9851
+ furthestMeasurements.set(measurement.lane, measurement);
9852
+ } else if (measurement.end < previousFurthestMeasurement.end) {
9853
+ furthestMeasurementsFound.set(measurement.lane, true);
9674
9854
  }
9675
- if (_this.currentY - _this.startY > _this.maxPullDownDistance * 1.5)
9676
- return;
9677
- if (_this._infScroll) {
9678
- _this._infScroll.style.overflow = "visible";
9679
- _this._infScroll.style.transform = "translate3d(0px, " + (_this.currentY - _this.startY) + "px, 0px)";
9855
+ if (furthestMeasurementsFound.size === this.options.lanes) {
9856
+ break;
9680
9857
  }
9681
- };
9682
- _this.onEnd = function() {
9683
- _this.startY = 0;
9684
- _this.currentY = 0;
9685
- _this.dragging = false;
9686
- if (_this.state.pullToRefreshThresholdBreached) {
9687
- _this.props.refreshFunction && _this.props.refreshFunction();
9688
- _this.setState({
9689
- pullToRefreshThresholdBreached: false
9690
- });
9858
+ }
9859
+ return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a2, b2) => {
9860
+ if (a2.end === b2.end) {
9861
+ return a2.index - b2.index;
9691
9862
  }
9692
- requestAnimationFrame(function() {
9693
- if (_this._infScroll) {
9694
- _this._infScroll.style.overflow = "auto";
9695
- _this._infScroll.style.transform = "none";
9696
- _this._infScroll.style.willChange = "unset";
9697
- }
9698
- });
9699
- };
9700
- _this.onScrollListener = function(event) {
9701
- if (typeof _this.props.onScroll === "function") {
9702
- setTimeout(function() {
9703
- return _this.props.onScroll && _this.props.onScroll(event);
9704
- }, 0);
9863
+ return a2.end - b2.end;
9864
+ })[0] : void 0;
9865
+ };
9866
+ this.getMeasurementOptions = memo(
9867
+ () => [
9868
+ this.options.count,
9869
+ this.options.paddingStart,
9870
+ this.options.scrollMargin,
9871
+ this.options.getItemKey,
9872
+ this.options.enabled
9873
+ ],
9874
+ (count, paddingStart, scrollMargin, getItemKey, enabled) => {
9875
+ this.pendingMeasuredCacheIndexes = [];
9876
+ return {
9877
+ count,
9878
+ paddingStart,
9879
+ scrollMargin,
9880
+ getItemKey,
9881
+ enabled
9882
+ };
9883
+ },
9884
+ {
9885
+ key: false
9886
+ }
9887
+ );
9888
+ this.getMeasurements = memo(
9889
+ () => [this.getMeasurementOptions(), this.itemSizeCache],
9890
+ ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {
9891
+ if (!enabled) {
9892
+ this.measurementsCache = [];
9893
+ this.itemSizeCache.clear();
9894
+ return [];
9895
+ }
9896
+ if (this.measurementsCache.length === 0) {
9897
+ this.measurementsCache = this.options.initialMeasurementsCache;
9898
+ this.measurementsCache.forEach((item2) => {
9899
+ this.itemSizeCache.set(item2.key, item2.size);
9900
+ });
9705
9901
  }
9706
- var target = _this.props.height || _this._scrollableNode ? event.target : document.documentElement.scrollTop ? document.documentElement : document.body;
9707
- if (_this.actionTriggered)
9708
- return;
9709
- var atBottom = _this.props.inverse ? _this.isElementAtTop(target, _this.props.scrollThreshold) : _this.isElementAtBottom(target, _this.props.scrollThreshold);
9710
- if (atBottom && _this.props.hasMore) {
9711
- _this.actionTriggered = true;
9712
- _this.setState({ showLoader: true });
9713
- _this.props.next && _this.props.next();
9902
+ const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
9903
+ this.pendingMeasuredCacheIndexes = [];
9904
+ const measurements = this.measurementsCache.slice(0, min);
9905
+ for (let i = min; i < count; i++) {
9906
+ const key2 = getItemKey(i);
9907
+ const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);
9908
+ const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;
9909
+ const measuredSize = itemSizeCache.get(key2);
9910
+ const size2 = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i);
9911
+ const end = start + size2;
9912
+ const lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;
9913
+ measurements[i] = {
9914
+ index: i,
9915
+ start,
9916
+ size: size2,
9917
+ end,
9918
+ key: key2,
9919
+ lane
9920
+ };
9714
9921
  }
9715
- _this.lastScrollTop = target.scrollTop;
9716
- };
9717
- _this.state = {
9718
- showLoader: false,
9719
- pullToRefreshThresholdBreached: false,
9720
- prevDataLength: props.dataLength
9721
- };
9722
- _this.throttledOnScrollListener = throttle$1(150, _this.onScrollListener).bind(_this);
9723
- _this.onStart = _this.onStart.bind(_this);
9724
- _this.onMove = _this.onMove.bind(_this);
9725
- _this.onEnd = _this.onEnd.bind(_this);
9726
- return _this;
9727
- }
9728
- InfiniteScroll2.prototype.componentDidMount = function() {
9729
- if (typeof this.props.dataLength === "undefined") {
9730
- throw new Error('mandatory prop "dataLength" is missing. The prop is needed when loading more content. Check README.md for usage');
9731
- }
9732
- this._scrollableNode = this.getScrollableTarget();
9733
- this.el = this.props.height ? this._infScroll : this._scrollableNode || window;
9734
- if (this.el) {
9735
- this.el.addEventListener("scroll", this.throttledOnScrollListener);
9736
- }
9737
- if (typeof this.props.initialScrollY === "number" && this.el && this.el instanceof HTMLElement && this.el.scrollHeight > this.props.initialScrollY) {
9738
- this.el.scrollTo(0, this.props.initialScrollY);
9739
- }
9740
- if (this.props.pullDownToRefresh && this.el) {
9741
- this.el.addEventListener("touchstart", this.onStart);
9742
- this.el.addEventListener("touchmove", this.onMove);
9743
- this.el.addEventListener("touchend", this.onEnd);
9744
- this.el.addEventListener("mousedown", this.onStart);
9745
- this.el.addEventListener("mousemove", this.onMove);
9746
- this.el.addEventListener("mouseup", this.onEnd);
9747
- this.maxPullDownDistance = this._pullDown && this._pullDown.firstChild && this._pullDown.firstChild.getBoundingClientRect().height || 0;
9748
- this.forceUpdate();
9749
- if (typeof this.props.refreshFunction !== "function") {
9750
- throw new Error(`Mandatory prop "refreshFunction" missing.
9751
- Pull Down To Refresh functionality will not work
9752
- as expected. Check README.md for usage'`);
9922
+ this.measurementsCache = measurements;
9923
+ return measurements;
9924
+ },
9925
+ {
9926
+ key: process.env.NODE_ENV !== "production" && "getMeasurements",
9927
+ debug: () => this.options.debug
9928
+ }
9929
+ );
9930
+ this.calculateRange = memo(
9931
+ () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],
9932
+ (measurements, outerSize, scrollOffset) => {
9933
+ return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({
9934
+ measurements,
9935
+ outerSize,
9936
+ scrollOffset
9937
+ }) : null;
9938
+ },
9939
+ {
9940
+ key: process.env.NODE_ENV !== "production" && "calculateRange",
9941
+ debug: () => this.options.debug
9942
+ }
9943
+ );
9944
+ this.getIndexes = memo(
9945
+ () => [
9946
+ this.options.rangeExtractor,
9947
+ this.calculateRange(),
9948
+ this.options.overscan,
9949
+ this.options.count
9950
+ ],
9951
+ (rangeExtractor, range2, overscan, count) => {
9952
+ return range2 === null ? [] : rangeExtractor({
9953
+ startIndex: range2.startIndex,
9954
+ endIndex: range2.endIndex,
9955
+ overscan,
9956
+ count
9957
+ });
9958
+ },
9959
+ {
9960
+ key: process.env.NODE_ENV !== "production" && "getIndexes",
9961
+ debug: () => this.options.debug
9962
+ }
9963
+ );
9964
+ this.indexFromElement = (node2) => {
9965
+ const attributeName = this.options.indexAttribute;
9966
+ const indexStr = node2.getAttribute(attributeName);
9967
+ if (!indexStr) {
9968
+ console.warn(
9969
+ `Missing attribute name '${attributeName}={index}' on measured element.`
9970
+ );
9971
+ return -1;
9972
+ }
9973
+ return parseInt(indexStr, 10);
9974
+ };
9975
+ this._measureElement = (node2, entry) => {
9976
+ const index2 = this.indexFromElement(node2);
9977
+ const item2 = this.measurementsCache[index2];
9978
+ if (!item2) {
9979
+ return;
9980
+ }
9981
+ const key2 = item2.key;
9982
+ const prevNode = this.elementsCache.get(key2);
9983
+ if (prevNode !== node2) {
9984
+ if (prevNode) {
9985
+ this.observer.unobserve(prevNode);
9753
9986
  }
9987
+ this.observer.observe(node2);
9988
+ this.elementsCache.set(key2, node2);
9989
+ }
9990
+ if (node2.isConnected) {
9991
+ this.resizeItem(index2, this.options.measureElement(node2, entry, this));
9754
9992
  }
9755
9993
  };
9756
- InfiniteScroll2.prototype.componentWillUnmount = function() {
9757
- if (this.el) {
9758
- this.el.removeEventListener("scroll", this.throttledOnScrollListener);
9759
- if (this.props.pullDownToRefresh) {
9760
- this.el.removeEventListener("touchstart", this.onStart);
9761
- this.el.removeEventListener("touchmove", this.onMove);
9762
- this.el.removeEventListener("touchend", this.onEnd);
9763
- this.el.removeEventListener("mousedown", this.onStart);
9764
- this.el.removeEventListener("mousemove", this.onMove);
9765
- this.el.removeEventListener("mouseup", this.onEnd);
9994
+ this.resizeItem = (index2, size2) => {
9995
+ const item2 = this.measurementsCache[index2];
9996
+ if (!item2) {
9997
+ return;
9998
+ }
9999
+ const itemSize = this.itemSizeCache.get(item2.key) ?? item2.size;
10000
+ const delta = size2 - itemSize;
10001
+ if (delta !== 0) {
10002
+ if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item2, delta, this) : item2.start < this.getScrollOffset() + this.scrollAdjustments) {
10003
+ if (process.env.NODE_ENV !== "production" && this.options.debug) {
10004
+ console.info("correction", delta);
10005
+ }
10006
+ this._scrollToOffset(this.getScrollOffset(), {
10007
+ adjustments: this.scrollAdjustments += delta,
10008
+ behavior: void 0
10009
+ });
9766
10010
  }
10011
+ this.pendingMeasuredCacheIndexes.push(item2.index);
10012
+ this.itemSizeCache = new Map(this.itemSizeCache.set(item2.key, size2));
10013
+ this.notify(false);
9767
10014
  }
9768
10015
  };
9769
- InfiniteScroll2.prototype.componentDidUpdate = function(prevProps) {
9770
- if (this.props.dataLength === prevProps.dataLength)
10016
+ this.measureElement = (node2) => {
10017
+ if (!node2) {
10018
+ this.elementsCache.forEach((cached, key2) => {
10019
+ if (!cached.isConnected) {
10020
+ this.observer.unobserve(cached);
10021
+ this.elementsCache.delete(key2);
10022
+ }
10023
+ });
9771
10024
  return;
9772
- this.actionTriggered = false;
9773
- this.setState({
9774
- showLoader: false
9775
- });
10025
+ }
10026
+ this._measureElement(node2, void 0);
9776
10027
  };
9777
- InfiniteScroll2.getDerivedStateFromProps = function(nextProps, prevState) {
9778
- var dataLengthChanged = nextProps.dataLength !== prevState.prevDataLength;
9779
- if (dataLengthChanged) {
9780
- return __assign$1(__assign$1({}, prevState), { prevDataLength: nextProps.dataLength });
10028
+ this.getVirtualItems = memo(
10029
+ () => [this.getIndexes(), this.getMeasurements()],
10030
+ (indexes, measurements) => {
10031
+ const virtualItems = [];
10032
+ for (let k2 = 0, len = indexes.length; k2 < len; k2++) {
10033
+ const i = indexes[k2];
10034
+ const measurement = measurements[i];
10035
+ virtualItems.push(measurement);
10036
+ }
10037
+ return virtualItems;
10038
+ },
10039
+ {
10040
+ key: process.env.NODE_ENV !== "production" && "getVirtualItems",
10041
+ debug: () => this.options.debug
9781
10042
  }
9782
- return null;
10043
+ );
10044
+ this.getVirtualItemForOffset = (offset) => {
10045
+ const measurements = this.getMeasurements();
10046
+ if (measurements.length === 0) {
10047
+ return void 0;
10048
+ }
10049
+ return notUndefined(
10050
+ measurements[findNearestBinarySearch(
10051
+ 0,
10052
+ measurements.length - 1,
10053
+ (index2) => notUndefined(measurements[index2]).start,
10054
+ offset
10055
+ )]
10056
+ );
9783
10057
  };
9784
- InfiniteScroll2.prototype.isElementAtTop = function(target, scrollThreshold) {
9785
- if (scrollThreshold === void 0) {
9786
- scrollThreshold = 0.8;
10058
+ this.getOffsetForAlignment = (toOffset, align) => {
10059
+ const size2 = this.getSize();
10060
+ const scrollOffset = this.getScrollOffset();
10061
+ if (align === "auto") {
10062
+ if (toOffset <= scrollOffset) {
10063
+ align = "start";
10064
+ } else if (toOffset >= scrollOffset + size2) {
10065
+ align = "end";
10066
+ } else {
10067
+ align = "start";
10068
+ }
9787
10069
  }
9788
- var clientHeight = target === document.body || target === document.documentElement ? window.screen.availHeight : target.clientHeight;
9789
- var threshold = parseThreshold(scrollThreshold);
9790
- if (threshold.unit === ThresholdUnits.Pixel) {
9791
- return target.scrollTop <= threshold.value + clientHeight - target.scrollHeight + 1;
10070
+ if (align === "start") {
10071
+ toOffset = toOffset;
10072
+ } else if (align === "end") {
10073
+ toOffset = toOffset - size2;
10074
+ } else if (align === "center") {
10075
+ toOffset = toOffset - size2 / 2;
9792
10076
  }
9793
- return target.scrollTop <= threshold.value / 100 + clientHeight - target.scrollHeight + 1;
10077
+ const scrollSizeProp = this.options.horizontal ? "scrollWidth" : "scrollHeight";
10078
+ const scrollSize = this.scrollElement ? "document" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;
10079
+ const maxOffset = scrollSize - size2;
10080
+ return Math.max(Math.min(maxOffset, toOffset), 0);
9794
10081
  };
9795
- InfiniteScroll2.prototype.isElementAtBottom = function(target, scrollThreshold) {
9796
- if (scrollThreshold === void 0) {
9797
- scrollThreshold = 0.8;
10082
+ this.getOffsetForIndex = (index2, align = "auto") => {
10083
+ index2 = Math.max(0, Math.min(index2, this.options.count - 1));
10084
+ const item2 = this.measurementsCache[index2];
10085
+ if (!item2) {
10086
+ return void 0;
9798
10087
  }
9799
- var clientHeight = target === document.body || target === document.documentElement ? window.screen.availHeight : target.clientHeight;
9800
- var threshold = parseThreshold(scrollThreshold);
9801
- if (threshold.unit === ThresholdUnits.Pixel) {
9802
- return target.scrollTop + clientHeight >= target.scrollHeight - threshold.value;
10088
+ const size2 = this.getSize();
10089
+ const scrollOffset = this.getScrollOffset();
10090
+ if (align === "auto") {
10091
+ if (item2.end >= scrollOffset + size2 - this.options.scrollPaddingEnd) {
10092
+ align = "end";
10093
+ } else if (item2.start <= scrollOffset + this.options.scrollPaddingStart) {
10094
+ align = "start";
10095
+ } else {
10096
+ return [scrollOffset, align];
10097
+ }
9803
10098
  }
9804
- return target.scrollTop + clientHeight >= threshold.value / 100 * target.scrollHeight;
10099
+ const toOffset = align === "end" ? item2.end + this.options.scrollPaddingEnd : item2.start - this.options.scrollPaddingStart;
10100
+ return [this.getOffsetForAlignment(toOffset, align), align];
9805
10101
  };
9806
- InfiniteScroll2.prototype.render = function() {
9807
- var _this = this;
9808
- var style = __assign$1({ height: this.props.height || "auto", overflow: "auto", WebkitOverflowScrolling: "touch" }, this.props.style);
9809
- var hasChildren2 = this.props.hasChildren || !!(this.props.children && this.props.children instanceof Array && this.props.children.length);
9810
- var outerDivStyle = this.props.pullDownToRefresh && this.props.height ? { overflow: "auto" } : {};
9811
- return React__default.createElement(
9812
- "div",
9813
- { style: outerDivStyle, className: "infinite-scroll-component__outerdiv" },
9814
- React__default.createElement(
9815
- "div",
9816
- { className: "infinite-scroll-component " + (this.props.className || ""), ref: function(infScroll) {
9817
- return _this._infScroll = infScroll;
9818
- }, style },
9819
- this.props.pullDownToRefresh && React__default.createElement(
9820
- "div",
9821
- { style: { position: "relative" }, ref: function(pullDown) {
9822
- return _this._pullDown = pullDown;
9823
- } },
9824
- React__default.createElement("div", { style: {
9825
- position: "absolute",
9826
- left: 0,
9827
- right: 0,
9828
- top: -1 * this.maxPullDownDistance
9829
- } }, this.state.pullToRefreshThresholdBreached ? this.props.releaseToRefreshContent : this.props.pullDownToRefreshContent)
9830
- ),
9831
- this.props.children,
9832
- !this.state.showLoader && !hasChildren2 && this.props.hasMore && this.props.loader,
9833
- this.state.showLoader && this.props.hasMore && this.props.loader,
9834
- !this.props.hasMore && this.props.endMessage
9835
- )
10102
+ this.isDynamicMode = () => this.elementsCache.size > 0;
10103
+ this.cancelScrollToIndex = () => {
10104
+ if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {
10105
+ this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);
10106
+ this.scrollToIndexTimeoutId = null;
10107
+ }
10108
+ };
10109
+ this.scrollToOffset = (toOffset, { align = "start", behavior } = {}) => {
10110
+ this.cancelScrollToIndex();
10111
+ if (behavior === "smooth" && this.isDynamicMode()) {
10112
+ console.warn(
10113
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
10114
+ );
10115
+ }
10116
+ this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {
10117
+ adjustments: void 0,
10118
+ behavior
10119
+ });
10120
+ };
10121
+ this.scrollToIndex = (index2, { align: initialAlign = "auto", behavior } = {}) => {
10122
+ index2 = Math.max(0, Math.min(index2, this.options.count - 1));
10123
+ this.cancelScrollToIndex();
10124
+ if (behavior === "smooth" && this.isDynamicMode()) {
10125
+ console.warn(
10126
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
10127
+ );
10128
+ }
10129
+ const offsetAndAlign = this.getOffsetForIndex(index2, initialAlign);
10130
+ if (!offsetAndAlign) return;
10131
+ const [offset, align] = offsetAndAlign;
10132
+ this._scrollToOffset(offset, { adjustments: void 0, behavior });
10133
+ if (behavior !== "smooth" && this.isDynamicMode() && this.targetWindow) {
10134
+ this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {
10135
+ this.scrollToIndexTimeoutId = null;
10136
+ const elementInDOM = this.elementsCache.has(
10137
+ this.options.getItemKey(index2)
10138
+ );
10139
+ if (elementInDOM) {
10140
+ const [latestOffset] = notUndefined(
10141
+ this.getOffsetForIndex(index2, align)
10142
+ );
10143
+ if (!approxEqual(latestOffset, this.getScrollOffset())) {
10144
+ this.scrollToIndex(index2, { align, behavior });
10145
+ }
10146
+ } else {
10147
+ this.scrollToIndex(index2, { align, behavior });
10148
+ }
10149
+ });
10150
+ }
10151
+ };
10152
+ this.scrollBy = (delta, { behavior } = {}) => {
10153
+ this.cancelScrollToIndex();
10154
+ if (behavior === "smooth" && this.isDynamicMode()) {
10155
+ console.warn(
10156
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
10157
+ );
10158
+ }
10159
+ this._scrollToOffset(this.getScrollOffset() + delta, {
10160
+ adjustments: void 0,
10161
+ behavior
10162
+ });
10163
+ };
10164
+ this.getTotalSize = () => {
10165
+ var _a2;
10166
+ const measurements = this.getMeasurements();
10167
+ let end;
10168
+ if (measurements.length === 0) {
10169
+ end = this.options.paddingStart;
10170
+ } else {
10171
+ end = this.options.lanes === 1 ? ((_a2 = measurements[measurements.length - 1]) == null ? void 0 : _a2.end) ?? 0 : Math.max(
10172
+ ...measurements.slice(-this.options.lanes).map((m2) => m2.end)
10173
+ );
10174
+ }
10175
+ return Math.max(
10176
+ end - this.options.scrollMargin + this.options.paddingEnd,
10177
+ 0
9836
10178
  );
9837
10179
  };
9838
- return InfiniteScroll2;
9839
- }(Component$1)
9840
- );
9841
- const inputInTable$8 = "_inputInTable_7sjlf_1";
9842
- const inputHover$8 = "_inputHover_7sjlf_13";
9843
- const inputFocus$8 = "_inputFocus_7sjlf_18";
9844
- const inputError$8 = "_inputError_7sjlf_25";
9845
- const inputWarning$8 = "_inputWarning_7sjlf_26";
9846
- const inputDisabled$8 = "_inputDisabled_7sjlf_61";
9847
- const hideScrollbars$8 = "_hideScrollbars_7sjlf_67";
9848
- const header$1 = "_header_7sjlf_77";
9849
- const headerTitle = "_headerTitle_7sjlf_77";
9850
- const heading$3 = "_heading_7sjlf_78";
9851
- const itemHeader = "_itemHeader_7sjlf_78";
9852
- const narrow = "_narrow_7sjlf_81";
9853
- const stickyHeader = "_stickyHeader_7sjlf_85";
9854
- const title$3 = "_title_7sjlf_96";
9855
- const name = "_name_7sjlf_102";
9856
- const iconTooltipMargin = "_iconTooltipMargin_7sjlf_105";
9857
- const bold = "_bold_7sjlf_108";
9858
- const toggleNarrow = "_toggleNarrow_7sjlf_117";
9859
- const drag$1 = "_drag_7sjlf_135";
9860
- const dragOverlay$1 = "_dragOverlay_7sjlf_156";
9861
- const list$1 = "_list_7sjlf_161";
9862
- const bordered$1 = "_bordered_7sjlf_165";
9863
- const item$4 = "_item_7sjlf_78";
9864
- const action = "_action_7sjlf_198";
9865
- const active$3 = "_active_7sjlf_201";
9866
- const indented = "_indented_7sjlf_208";
9867
- const disabled$5 = "_disabled_7sjlf_221";
9868
- const label$6 = "_label_7sjlf_232";
9869
- const details$2 = "_details_7sjlf_243";
9870
- const metadata = "_metadata_7sjlf_244";
9871
- const itemContent = "_itemContent_7sjlf_252";
9872
- const indentIcon = "_indentIcon_7sjlf_259";
9873
- const expandIcon = "_expandIcon_7sjlf_264";
9874
- const expanded = "_expanded_7sjlf_271";
9875
- const right$4 = "_right_7sjlf_274";
9876
- const actions = "_actions_7sjlf_282";
9877
- const scrollableList = "_scrollableList_7sjlf_287";
9878
- const infiniteScrollContainer = "_infiniteScrollContainer_7sjlf_292";
9879
- const hideScrollbar = "_hideScrollbar_7sjlf_67";
9880
- const noPointerEvents = "_noPointerEvents_7sjlf_309";
10180
+ this._scrollToOffset = (offset, {
10181
+ adjustments,
10182
+ behavior
10183
+ }) => {
10184
+ this.options.scrollToFn(offset, { behavior, adjustments }, this);
10185
+ };
10186
+ this.measure = () => {
10187
+ this.itemSizeCache = /* @__PURE__ */ new Map();
10188
+ this.notify(false);
10189
+ };
10190
+ this.setOptions(opts);
10191
+ }
10192
+ }
10193
+ const findNearestBinarySearch = (low, high, getCurrentValue, value) => {
10194
+ while (low <= high) {
10195
+ const middle = (low + high) / 2 | 0;
10196
+ const currentValue = getCurrentValue(middle);
10197
+ if (currentValue < value) {
10198
+ low = middle + 1;
10199
+ } else if (currentValue > value) {
10200
+ high = middle - 1;
10201
+ } else {
10202
+ return middle;
10203
+ }
10204
+ }
10205
+ if (low > 0) {
10206
+ return low - 1;
10207
+ } else {
10208
+ return 0;
10209
+ }
10210
+ };
10211
+ function calculateRange({
10212
+ measurements,
10213
+ outerSize,
10214
+ scrollOffset
10215
+ }) {
10216
+ const count = measurements.length - 1;
10217
+ const getOffset2 = (index2) => measurements[index2].start;
10218
+ const startIndex = findNearestBinarySearch(0, count, getOffset2, scrollOffset);
10219
+ let endIndex = startIndex;
10220
+ while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {
10221
+ endIndex++;
10222
+ }
10223
+ return { startIndex, endIndex };
10224
+ }
10225
+ const useIsomorphicLayoutEffect$5 = typeof document !== "undefined" ? React$4.useLayoutEffect : React$4.useEffect;
10226
+ function useVirtualizerBase(options) {
10227
+ const rerender = React$4.useReducer(() => ({}), {})[1];
10228
+ const resolvedOptions = {
10229
+ ...options,
10230
+ onChange: (instance2, sync2) => {
10231
+ var _a2;
10232
+ if (sync2) {
10233
+ flushSync$1(rerender);
10234
+ } else {
10235
+ rerender();
10236
+ }
10237
+ (_a2 = options.onChange) == null ? void 0 : _a2.call(options, instance2, sync2);
10238
+ }
10239
+ };
10240
+ const [instance] = React$4.useState(
10241
+ () => new Virtualizer(resolvedOptions)
10242
+ );
10243
+ instance.setOptions(resolvedOptions);
10244
+ React$4.useEffect(() => {
10245
+ return instance._didMount();
10246
+ }, []);
10247
+ useIsomorphicLayoutEffect$5(() => {
10248
+ return instance._willUpdate();
10249
+ });
10250
+ return instance;
10251
+ }
10252
+ function useVirtualizer(options) {
10253
+ return useVirtualizerBase({
10254
+ observeElementRect,
10255
+ observeElementOffset,
10256
+ scrollToFn: elementScroll,
10257
+ ...options
10258
+ });
10259
+ }
10260
+ const inputInTable$8 = "_inputInTable_snjei_1";
10261
+ const inputHover$8 = "_inputHover_snjei_13";
10262
+ const inputFocus$8 = "_inputFocus_snjei_18";
10263
+ const inputError$8 = "_inputError_snjei_25";
10264
+ const inputWarning$8 = "_inputWarning_snjei_26";
10265
+ const inputDisabled$8 = "_inputDisabled_snjei_61";
10266
+ const hideScrollbars$8 = "_hideScrollbars_snjei_67";
10267
+ const list$1 = "_list_snjei_77";
10268
+ const bordered$1 = "_bordered_snjei_83";
10269
+ const virtualRow = "_virtualRow_snjei_87";
10270
+ const item$4 = "_item_snjei_87";
10271
+ const header$1 = "_header_snjei_90";
10272
+ const headerTitle = "_headerTitle_snjei_90";
10273
+ const heading$3 = "_heading_snjei_91";
10274
+ const itemHeader = "_itemHeader_snjei_91";
10275
+ const narrow = "_narrow_snjei_94";
10276
+ const stickyHeader = "_stickyHeader_snjei_98";
10277
+ const title$3 = "_title_snjei_109";
10278
+ const name = "_name_snjei_115";
10279
+ const iconTooltipMargin = "_iconTooltipMargin_snjei_118";
10280
+ const bold = "_bold_snjei_121";
10281
+ const toggleNarrow = "_toggleNarrow_snjei_132";
10282
+ const drag$1 = "_drag_snjei_150";
10283
+ const dragOverlay$1 = "_dragOverlay_snjei_171";
10284
+ const listContent = "_listContent_snjei_176";
10285
+ const action = "_action_snjei_203";
10286
+ const active$3 = "_active_snjei_206";
10287
+ const indented = "_indented_snjei_213";
10288
+ const disabled$5 = "_disabled_snjei_226";
10289
+ const label$6 = "_label_snjei_237";
10290
+ const details$2 = "_details_snjei_248";
10291
+ const metadata = "_metadata_snjei_249";
10292
+ const itemContent = "_itemContent_snjei_257";
10293
+ const indentIcon = "_indentIcon_snjei_264";
10294
+ const expandIcon = "_expandIcon_snjei_269";
10295
+ const expanded = "_expanded_snjei_276";
10296
+ const right$4 = "_right_snjei_279";
10297
+ const actions = "_actions_snjei_287";
10298
+ const hideScrollbar = "_hideScrollbar_snjei_67";
10299
+ const noPointerEvents = "_noPointerEvents_snjei_302";
10300
+ const virtualRows = "_virtualRows_snjei_305";
9881
10301
  const listStyles = {
9882
10302
  inputInTable: inputInTable$8,
9883
10303
  inputHover: inputHover$8,
@@ -9886,6 +10306,10 @@ const listStyles = {
9886
10306
  inputWarning: inputWarning$8,
9887
10307
  inputDisabled: inputDisabled$8,
9888
10308
  hideScrollbars: hideScrollbars$8,
10309
+ list: list$1,
10310
+ bordered: bordered$1,
10311
+ virtualRow,
10312
+ item: item$4,
9889
10313
  header: header$1,
9890
10314
  headerTitle,
9891
10315
  heading: heading$3,
@@ -9899,9 +10323,7 @@ const listStyles = {
9899
10323
  toggleNarrow,
9900
10324
  drag: drag$1,
9901
10325
  dragOverlay: dragOverlay$1,
9902
- list: list$1,
9903
- bordered: bordered$1,
9904
- item: item$4,
10326
+ listContent,
9905
10327
  action,
9906
10328
  active: active$3,
9907
10329
  indented,
@@ -9915,10 +10337,9 @@ const listStyles = {
9915
10337
  expanded,
9916
10338
  right: right$4,
9917
10339
  actions,
9918
- scrollableList,
9919
- infiniteScrollContainer,
9920
10340
  hideScrollbar,
9921
- noPointerEvents
10341
+ noPointerEvents,
10342
+ virtualRows
9922
10343
  };
9923
10344
  const ToggleNarrow = ({
9924
10345
  toggleNarrow: toggleNarrow2,
@@ -10143,9 +10564,9 @@ function isTouchEvent$2(event) {
10143
10564
  return false;
10144
10565
  }
10145
10566
  const {
10146
- TouchEvent: TouchEvent2
10567
+ TouchEvent
10147
10568
  } = getWindow(event.target);
10148
- return TouchEvent2 && event instanceof TouchEvent2;
10569
+ return TouchEvent && event instanceof TouchEvent;
10149
10570
  }
10150
10571
  function getEventCoordinates(event) {
10151
10572
  if (isTouchEvent$2(event)) {
@@ -12563,7 +12984,7 @@ var Status;
12563
12984
  Status2[Status2["Initializing"] = 1] = "Initializing";
12564
12985
  Status2[Status2["Initialized"] = 2] = "Initialized";
12565
12986
  })(Status || (Status = {}));
12566
- const DndContext$1 = /* @__PURE__ */ memo(function DndContext(_ref) {
12987
+ const DndContext$1 = /* @__PURE__ */ memo$1(function DndContext(_ref) {
12567
12988
  var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;
12568
12989
  let {
12569
12990
  id: id2,
@@ -14201,72 +14622,6 @@ const ListRow = forwardRef(
14201
14622
  return isSubheading ? /* @__PURE__ */ jsx(ListSubheading, { ref: listRowRefs, item: item2, index: index2 }, index2) : draggable ? listElementWithDrag(index2, item2) : listElement(index2, item2);
14202
14623
  }
14203
14624
  );
14204
- const loader = "_loader_477i5_1";
14205
- const fullViewPortSize = "_fullViewPortSize_477i5_7";
14206
- const cover = "_cover_477i5_14";
14207
- const dimmer = "_dimmer_477i5_21";
14208
- const content$2 = "_content_477i5_44";
14209
- const text$1 = "_text_477i5_49";
14210
- const details$1 = "_details_477i5_53";
14211
- const styles$t = {
14212
- loader,
14213
- fullViewPortSize,
14214
- cover,
14215
- dimmer,
14216
- content: content$2,
14217
- text: text$1,
14218
- details: details$1
14219
- };
14220
- const Loader = ({
14221
- width: width2,
14222
- height: height2,
14223
- text: text2 = "",
14224
- details: details2 = "",
14225
- fullViewPortSize: fullViewPortSize2 = false,
14226
- cover: cover2 = false,
14227
- children = null,
14228
- theme = Theme.DARK,
14229
- testId = null
14230
- }) => {
14231
- const color2 = theme === Theme.DARK ? Theme.WHITE : Theme.INHERIT;
14232
- const background2 = theme === "white" ? "var(--color-background-raised)" : theme === "light" ? "var(--color-background)" : "black";
14233
- return /* @__PURE__ */ jsx(
14234
- "div",
14235
- {
14236
- className: cx$2(styles$t.loader, cover2 ? styles$t.cover : "", {
14237
- [styles$t.fullViewPortSize]: fullViewPortSize2
14238
- }),
14239
- style: { width: width2, height: height2 },
14240
- "data-testid": testId,
14241
- children: /* @__PURE__ */ jsx("div", { className: styles$t.dimmer, style: { background: background2, color: color2 }, children: /* @__PURE__ */ jsxs(
14242
- "div",
14243
- {
14244
- className: styles$t.content,
14245
- "data-testid": testId && `${testId}-content`,
14246
- children: [
14247
- children,
14248
- text2 && /* @__PURE__ */ jsx(
14249
- "div",
14250
- {
14251
- className: styles$t.text,
14252
- "data-testid": testId && `${testId}-text`,
14253
- children: text2
14254
- }
14255
- ),
14256
- details2 && /* @__PURE__ */ jsx(
14257
- "div",
14258
- {
14259
- className: styles$t.details,
14260
- "data-testid": testId && `${testId}-details`,
14261
- children: details2
14262
- }
14263
- )
14264
- ]
14265
- }
14266
- ) })
14267
- }
14268
- );
14269
- };
14270
14625
  const ListDragWrapper = ({
14271
14626
  children,
14272
14627
  draggable,
@@ -14281,15 +14636,14 @@ const ListDragWrapper = ({
14281
14636
  setDragIndex(event.active.id);
14282
14637
  };
14283
14638
  const handleDragEnd = (event) => {
14284
- var _a2, _b, _c, _d, _e2, _f, _g, _h;
14285
14639
  setDragIndex(null);
14286
14640
  const { active: active2, over } = event;
14287
- const from3 = (_b = (_a2 = active2 == null ? void 0 : active2.data) == null ? void 0 : _a2.current) == null ? void 0 : _b.sortable.index;
14288
- const to2 = (_d = (_c = over == null ? void 0 : over.data) == null ? void 0 : _c.current) == null ? void 0 : _d.sortable.index;
14641
+ const from3 = active2 == null ? void 0 : active2.id;
14642
+ const to2 = over == null ? void 0 : over.id;
14289
14643
  if (from3 !== to2) {
14290
14644
  onListReorder({
14291
- from: (_f = (_e2 = active2 == null ? void 0 : active2.data) == null ? void 0 : _e2.current) == null ? void 0 : _f.sortable.index,
14292
- to: (_h = (_g = over == null ? void 0 : over.data) == null ? void 0 : _g.current) == null ? void 0 : _h.sortable.index
14645
+ from: Number(from3),
14646
+ to: Number(to2)
14293
14647
  });
14294
14648
  }
14295
14649
  };
@@ -14338,58 +14692,26 @@ const List = ({
14338
14692
  height: height2,
14339
14693
  testId,
14340
14694
  scrollDetails = {
14341
- scrollable: false,
14342
14695
  hideScrollbar: false,
14343
- triggerScrollToActiveItem: false,
14344
- infiniteScroll: false,
14345
- limit: 10,
14346
- infiniteScrollTarget: void 0
14696
+ triggerScrollToActiveItem: false
14347
14697
  }
14348
14698
  }) => {
14349
- const {
14350
- scrollable,
14351
- hideScrollbar: hideScrollbar2,
14352
- triggerScrollToActiveItem,
14353
- infiniteScroll,
14354
- infiniteScrollTarget
14355
- } = scrollDetails;
14356
- const listHeadingRef = useRef(null);
14357
- const listRowRefs = useRef([]);
14699
+ const { hideScrollbar: hideScrollbar2, triggerScrollToActiveItem } = scrollDetails;
14358
14700
  const listContainerRef = useRef(null);
14359
- const MIN_ITEM_HEIGHT = 44;
14360
- const pageSize = infiniteScroll ? Math.ceil(window.innerHeight / MIN_ITEM_HEIGHT) : list2.items.length;
14361
- const [numVisibleRows, setNumVisibleRows] = useState(pageSize);
14362
- const [hasMore, setHasMore] = useState(numVisibleRows < (list2 == null ? void 0 : list2.items.length));
14363
- useEffect(() => {
14364
- listRowRefs.current = listRowRefs.current.slice(0, list2.items.length);
14365
- }, [list2.items.length]);
14366
- const loadMoreItems = () => {
14367
- if (numVisibleRows >= list2.items.length) {
14368
- setHasMore(false);
14369
- return;
14370
- }
14371
- const newVisibleRows = pageSize + numVisibleRows;
14372
- setNumVisibleRows(newVisibleRows);
14373
- };
14701
+ const MIN_ITEM_HEIGHT = 37;
14702
+ const virtualizer = useVirtualizer({
14703
+ count: list2.items.length,
14704
+ getScrollElement: () => listContainerRef.current,
14705
+ estimateSize: () => MIN_ITEM_HEIGHT,
14706
+ overscan: 5
14707
+ });
14374
14708
  const findFirstActiveItemIndex = (items) => items.findIndex((item2) => item2.active === true);
14375
14709
  const setScrollToActiveItem = (activeItemIndex) => {
14376
- if (!listContainerRef.current || !listHeadingRef.current) return;
14377
- const itemBorderLength = 1;
14378
- if (triggerScrollToActiveItem && activeItemIndex >= 0) {
14379
- const itemOffsets = listRowRefs.current.reduce((acc, val, index2) => {
14380
- if (index2 < activeItemIndex) {
14381
- return acc + val.clientHeight + itemBorderLength;
14382
- }
14383
- return acc;
14384
- }, 0);
14385
- const centerOffset = listContainerRef.current.clientHeight / 2 - listRowRefs.current[activeItemIndex].clientHeight / 2;
14386
- const scrollOffset = itemOffsets - centerOffset;
14387
- if (stickyHeader2) {
14388
- const headingOffset2 = listHeadingRef.current.clientHeight / 2;
14389
- listContainerRef.current.scrollTop = scrollOffset + headingOffset2;
14390
- }
14391
- const headingOffset = listHeadingRef.current.clientHeight;
14392
- listContainerRef.current.scrollTop = scrollOffset + headingOffset;
14710
+ if (activeItemIndex >= 0) {
14711
+ virtualizer.scrollToIndex(activeItemIndex, {
14712
+ align: "center",
14713
+ behavior: "smooth"
14714
+ });
14393
14715
  }
14394
14716
  };
14395
14717
  useEffect(() => {
@@ -14397,24 +14719,19 @@ const List = ({
14397
14719
  const activeItemIndex = findFirstActiveItemIndex(list2 == null ? void 0 : list2.items);
14398
14720
  setScrollToActiveItem(activeItemIndex);
14399
14721
  }
14400
- }, [
14401
- listContainerRef.current,
14402
- listHeadingRef.current,
14403
- triggerScrollToActiveItem
14404
- ]);
14405
- return /* @__PURE__ */ jsx(
14722
+ }, [triggerScrollToActiveItem]);
14723
+ return /* @__PURE__ */ jsxs(
14406
14724
  "div",
14407
14725
  {
14408
14726
  className: cx$2(
14727
+ listStyles.list,
14409
14728
  narrow2 ? listStyles.narrow : "",
14410
- scrollable ? listStyles.scrollableList : "",
14411
- hideScrollbar2 ? listStyles.hideScrollbar : ""
14729
+ bordered2 ? listStyles.bordered : ""
14412
14730
  ),
14413
14731
  "data-testid": testId,
14414
- id: "scrollableDiv",
14415
14732
  style: { height: height2, marginBottom },
14416
- ref: listContainerRef,
14417
- children: /* @__PURE__ */ jsxs(Card, { bordered: bordered2, padding: false, children: [
14733
+ id: "scrollableDiv",
14734
+ children: [
14418
14735
  !noHeader && /* @__PURE__ */ jsx(
14419
14736
  ListHeading,
14420
14737
  {
@@ -14422,53 +14739,123 @@ const List = ({
14422
14739
  actions: list2.actions,
14423
14740
  toggleNarrow: toggleNarrow2,
14424
14741
  onToggleNarrow,
14425
- stickyHeader: stickyHeader2,
14426
- ref: listHeadingRef
14742
+ stickyHeader: stickyHeader2
14427
14743
  }
14428
14744
  ),
14429
- /* @__PURE__ */ jsx("div", { className: cx$2(listStyles.list, bordered2 ? listStyles.bordered : ""), children: /* @__PURE__ */ jsx(
14745
+ /* @__PURE__ */ jsx(
14430
14746
  ListDragWrapper,
14431
14747
  {
14432
14748
  draggable,
14433
14749
  list: list2,
14434
14750
  onListReorder,
14435
- children: infiniteScroll ? /* @__PURE__ */ jsx(
14436
- InfiniteScroll,
14751
+ children: /* @__PURE__ */ jsx(
14752
+ "div",
14437
14753
  {
14438
- dataLength: numVisibleRows,
14439
- next: loadMoreItems,
14440
- hasMore,
14441
- scrollableTarget: infiniteScrollTarget || "scrollableDiv",
14442
- loader: /* @__PURE__ */ jsx(Loader, {}),
14443
- className: listStyles.infiniteScrollContainer,
14444
- children: list2.items.slice(0, numVisibleRows).map((item2, index2) => /* @__PURE__ */ jsx(
14445
- ListRow,
14754
+ className: cx$2(
14755
+ listStyles.listContent,
14756
+ hideScrollbar2 ? listStyles.hideScrollbar : ""
14757
+ ),
14758
+ ref: listContainerRef,
14759
+ children: /* @__PURE__ */ jsx(
14760
+ "div",
14446
14761
  {
14447
- index: index2,
14448
- draggable,
14449
- item: item2,
14450
- expanding,
14451
- invokeEditOnRowClick,
14452
- ref: listRowRefs
14453
- },
14454
- index2
14455
- ))
14762
+ className: listStyles.virtualRows,
14763
+ style: { height: `${virtualizer.getTotalSize()}px` },
14764
+ children: virtualizer.getVirtualItems().map((virtualRow2) => /* @__PURE__ */ jsx(
14765
+ "div",
14766
+ {
14767
+ "data-index": virtualRow2.index,
14768
+ className: listStyles.virtualRow,
14769
+ style: {
14770
+ transform: `translateY(${virtualRow2.start}px)`
14771
+ },
14772
+ ref: virtualizer.measureElement,
14773
+ children: /* @__PURE__ */ jsx(
14774
+ ListRow,
14775
+ {
14776
+ index: virtualRow2.index,
14777
+ draggable,
14778
+ item: list2.items[virtualRow2.index],
14779
+ expanding,
14780
+ invokeEditOnRowClick
14781
+ }
14782
+ )
14783
+ },
14784
+ virtualRow2.key
14785
+ ))
14786
+ }
14787
+ )
14456
14788
  }
14457
- ) : list2.items.map((item2, index2) => /* @__PURE__ */ jsx(
14458
- ListRow,
14459
- {
14460
- index: index2,
14461
- draggable,
14462
- item: item2,
14463
- expanding,
14464
- invokeEditOnRowClick,
14465
- ref: listRowRefs
14466
- },
14467
- index2
14468
- ))
14789
+ )
14469
14790
  }
14470
- ) })
14471
- ] })
14791
+ )
14792
+ ]
14793
+ }
14794
+ );
14795
+ };
14796
+ const loader = "_loader_477i5_1";
14797
+ const fullViewPortSize = "_fullViewPortSize_477i5_7";
14798
+ const cover = "_cover_477i5_14";
14799
+ const dimmer = "_dimmer_477i5_21";
14800
+ const content$2 = "_content_477i5_44";
14801
+ const text$1 = "_text_477i5_49";
14802
+ const details$1 = "_details_477i5_53";
14803
+ const styles$t = {
14804
+ loader,
14805
+ fullViewPortSize,
14806
+ cover,
14807
+ dimmer,
14808
+ content: content$2,
14809
+ text: text$1,
14810
+ details: details$1
14811
+ };
14812
+ const Loader = ({
14813
+ width: width2,
14814
+ height: height2,
14815
+ text: text2 = "",
14816
+ details: details2 = "",
14817
+ fullViewPortSize: fullViewPortSize2 = false,
14818
+ cover: cover2 = false,
14819
+ children = null,
14820
+ theme = Theme.DARK,
14821
+ testId = null
14822
+ }) => {
14823
+ const color2 = theme === Theme.DARK ? Theme.WHITE : Theme.INHERIT;
14824
+ const background2 = theme === "white" ? "var(--color-background-raised)" : theme === "light" ? "var(--color-background)" : "black";
14825
+ return /* @__PURE__ */ jsx(
14826
+ "div",
14827
+ {
14828
+ className: cx$2(styles$t.loader, cover2 ? styles$t.cover : "", {
14829
+ [styles$t.fullViewPortSize]: fullViewPortSize2
14830
+ }),
14831
+ style: { width: width2, height: height2 },
14832
+ "data-testid": testId,
14833
+ children: /* @__PURE__ */ jsx("div", { className: styles$t.dimmer, style: { background: background2, color: color2 }, children: /* @__PURE__ */ jsxs(
14834
+ "div",
14835
+ {
14836
+ className: styles$t.content,
14837
+ "data-testid": testId && `${testId}-content`,
14838
+ children: [
14839
+ children,
14840
+ text2 && /* @__PURE__ */ jsx(
14841
+ "div",
14842
+ {
14843
+ className: styles$t.text,
14844
+ "data-testid": testId && `${testId}-text`,
14845
+ children: text2
14846
+ }
14847
+ ),
14848
+ details2 && /* @__PURE__ */ jsx(
14849
+ "div",
14850
+ {
14851
+ className: styles$t.details,
14852
+ "data-testid": testId && `${testId}-details`,
14853
+ children: details2
14854
+ }
14855
+ )
14856
+ ]
14857
+ }
14858
+ ) })
14472
14859
  }
14473
14860
  );
14474
14861
  };
@@ -15242,7 +15629,7 @@ const useFontsReady = () => {
15242
15629
  const getWidth = () => window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
15243
15630
  const useWindowWidth = () => {
15244
15631
  const [width2, setWidth] = useState(getWidth());
15245
- const resizeListener = debounce$2(() => setWidth(getWidth()), 150);
15632
+ const resizeListener = debounce$3(() => setWidth(getWidth()), 150);
15246
15633
  useEffect(() => {
15247
15634
  window.addEventListener("resize", resizeListener);
15248
15635
  return () => {
@@ -48004,7 +48391,7 @@ const styles$d = {
48004
48391
  active: active$2,
48005
48392
  icon: icon$1
48006
48393
  };
48007
- const TooltipIcon = memo(
48394
+ const TooltipIcon = memo$1(
48008
48395
  ({ isOpen: isOpen2, label: label2, icon: icon2, invalid }) => {
48009
48396
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
48010
48397
  /* @__PURE__ */ jsx(
@@ -48079,7 +48466,7 @@ const Sections = ({
48079
48466
  )
48080
48467
  ] }, i)) });
48081
48468
  };
48082
- const SideBar = memo(
48469
+ const SideBar = memo$1(
48083
48470
  ({
48084
48471
  options,
48085
48472
  startOpen = false,
@@ -50705,19 +51092,19 @@ const Spacer = ({
50705
51092
  }
50706
51093
  }
50707
51094
  );
50708
- const inputInTable$2 = "_inputInTable_xzacf_1";
50709
- const inputHover$2 = "_inputHover_xzacf_13";
50710
- const inputFocus$2 = "_inputFocus_xzacf_18";
50711
- const inputError$2 = "_inputError_xzacf_25";
50712
- const inputWarning$2 = "_inputWarning_xzacf_26";
50713
- const inputDisabled$2 = "_inputDisabled_xzacf_61";
50714
- const hideScrollbars$2 = "_hideScrollbars_xzacf_67";
50715
- const wrapper = "_wrapper_xzacf_85";
50716
- const bordered = "_bordered_xzacf_93";
50717
- const scroll = "_scroll_xzacf_98";
50718
- const table = "_table_xzacf_108";
50719
- const dragOverlay = "_dragOverlay_xzacf_145";
50720
- const striped = "_striped_xzacf_194";
51095
+ const inputInTable$2 = "_inputInTable_xkoxm_1";
51096
+ const inputHover$2 = "_inputHover_xkoxm_13";
51097
+ const inputFocus$2 = "_inputFocus_xkoxm_18";
51098
+ const inputError$2 = "_inputError_xkoxm_25";
51099
+ const inputWarning$2 = "_inputWarning_xkoxm_26";
51100
+ const inputDisabled$2 = "_inputDisabled_xkoxm_61";
51101
+ const hideScrollbars$2 = "_hideScrollbars_xkoxm_67";
51102
+ const wrapper = "_wrapper_xkoxm_85";
51103
+ const bordered = "_bordered_xkoxm_93";
51104
+ const scroll = "_scroll_xkoxm_98";
51105
+ const table = "_table_xkoxm_109";
51106
+ const dragOverlay = "_dragOverlay_xkoxm_145";
51107
+ const striped = "_striped_xkoxm_194";
50721
51108
  const styles$b = {
50722
51109
  inputInTable: inputInTable$2,
50723
51110
  inputHover: inputHover$2,
@@ -50823,36 +51210,6 @@ const hasActions = (rows) => rows.reduce(
50823
51210
  const hasRowActions = (rows, headers) => {
50824
51211
  return hasActions(headers) > 0 || hasActions(rows) > 0;
50825
51212
  };
50826
- const TableScrollWrapper = ({
50827
- table: table2,
50828
- children
50829
- }) => {
50830
- const { rows, infiniteScroll } = table2;
50831
- const pageSize = Math.ceil(window.innerHeight / 30);
50832
- const [visibleRows, setVisibleRows] = infiniteScroll ? useState(pageSize) : [rows.length, null];
50833
- const [hasMore, setHasMore] = infiniteScroll ? useState(visibleRows < rows.length) : [false, null];
50834
- const loadMoreItems = () => {
50835
- if (visibleRows >= rows.length && setHasMore) {
50836
- setHasMore(false);
50837
- return;
50838
- }
50839
- if (setVisibleRows) {
50840
- setVisibleRows(visibleRows + pageSize);
50841
- }
50842
- };
50843
- return /* @__PURE__ */ jsx("div", { id: "scrollWrapper", className: styles$b.scroll, children: infiniteScroll ? /* @__PURE__ */ jsx(
50844
- InfiniteScroll,
50845
- {
50846
- dataLength: Math.min(rows.length, visibleRows + pageSize),
50847
- next: loadMoreItems,
50848
- hasMore,
50849
- scrollableTarget: "scrollWrapper",
50850
- style: { overflow: "initial" },
50851
- loader: null,
50852
- children: children({ visibleRows })
50853
- }
50854
- ) : children({ visibleRows }) });
50855
- };
50856
51213
  const clickableRow = "_clickableRow_10f34_1";
50857
51214
  const hoverableRow = "_hoverableRow_10f34_4";
50858
51215
  const rowActive = "_rowActive_10f34_4";
@@ -51622,7 +51979,7 @@ const Row = ({
51622
51979
  animateLayoutChanges: () => false
51623
51980
  });
51624
51981
  const style = {
51625
- transform: CSS.Translate.toString(transform),
51982
+ transform: CSS.Transform.toString(transform),
51626
51983
  transition,
51627
51984
  opacity: isDragging ? 0 : void 0
51628
51985
  };
@@ -51680,6 +52037,8 @@ const Row = ({
51680
52037
  ),
51681
52038
  "data-error": error2 || null,
51682
52039
  "data-warning": warning2 || null,
52040
+ "data-index": rowIndex,
52041
+ "data-even": rowIndex % 2 === 0,
51683
52042
  style,
51684
52043
  children: [
51685
52044
  draggableTable ? getDragItem() : null,
@@ -51771,6 +52130,35 @@ const TableDragWrapper = (props) => {
51771
52130
  }
51772
52131
  );
51773
52132
  };
52133
+ const TableScrollWrapper = ({
52134
+ table: table2,
52135
+ theadRef,
52136
+ children
52137
+ }) => {
52138
+ var _a2, _b;
52139
+ if (!table2.infiniteScroll) {
52140
+ return /* @__PURE__ */ jsx("div", { id: "scrollWrapper", className: styles$b.scroll, children: children({}) });
52141
+ }
52142
+ const containerRef = useRef(null);
52143
+ const MIN_ITEM_HEIGHT = 31;
52144
+ const virtualizer = useVirtualizer({
52145
+ count: ((_a2 = table2.rows) == null ? void 0 : _a2.length) ?? 0,
52146
+ getScrollElement: () => containerRef.current,
52147
+ estimateSize: () => MIN_ITEM_HEIGHT,
52148
+ overscan: 10
52149
+ });
52150
+ const theadHeight = ((_b = theadRef.current) == null ? void 0 : _b.clientHeight) ?? 0;
52151
+ const totalHeight = virtualizer.getTotalSize() + theadHeight;
52152
+ const items = virtualizer.getVirtualItems();
52153
+ const paddingTop = items.length > 0 ? items[0].start : 0;
52154
+ const paddingBottom = items.length > 0 ? virtualizer.getTotalSize() - items[items.length - 1].end : 0;
52155
+ const tableStyle = {
52156
+ "--virtualPaddingTop": paddingTop + "px",
52157
+ "--virtualPaddingBottom": paddingBottom + "px",
52158
+ height: totalHeight
52159
+ };
52160
+ return /* @__PURE__ */ jsx("div", { id: "scrollWrapper", className: styles$b.scroll, ref: containerRef, children: children({ virtualizer, tableStyle }) });
52161
+ };
51774
52162
  const Table = (props) => {
51775
52163
  var _a2, _b, _c, _d, _e2, _f, _g;
51776
52164
  const { onListReorder = () => {
@@ -51793,6 +52181,7 @@ const Table = (props) => {
51793
52181
  maxHeight,
51794
52182
  fixedWidth: width2
51795
52183
  } = propTable;
52184
+ const theadRef = useRef(null);
51796
52185
  const tbodyRef = useRef(null);
51797
52186
  const headers = get$2(props, "table.headers", []);
51798
52187
  const columnCount = getColumnCount(propRows, headers);
@@ -51854,7 +52243,7 @@ const Table = (props) => {
51854
52243
  testId: testId && `${testId}-title`
51855
52244
  }
51856
52245
  ),
51857
- /* @__PURE__ */ jsx(TableScrollWrapper, { table: table2, children: ({ visibleRows }) => /* @__PURE__ */ jsx(
52246
+ /* @__PURE__ */ jsx(
51858
52247
  TableDragWrapper,
51859
52248
  {
51860
52249
  colSpan,
@@ -51865,49 +52254,65 @@ const Table = (props) => {
51865
52254
  rowActions,
51866
52255
  rows,
51867
52256
  tbodyRef,
51868
- children: /* @__PURE__ */ jsxs(
51869
- "table",
51870
- {
51871
- className: cx$2(styles$b.table, striped2 ? styles$b.striped : ""),
51872
- "data-testid": testId,
51873
- children: [
51874
- /* @__PURE__ */ jsx("thead", { children: headers.map((row2, rowIndex) => {
51875
- return /* @__PURE__ */ jsx(
52257
+ children: /* @__PURE__ */ jsx(TableScrollWrapper, { table: table2, theadRef, children: ({ virtualizer, tableStyle }) => {
52258
+ return /* @__PURE__ */ jsxs(
52259
+ "table",
52260
+ {
52261
+ className: cx$2(styles$b.table, striped2 ? styles$b.striped : ""),
52262
+ "data-testid": testId,
52263
+ style: tableStyle,
52264
+ children: [
52265
+ /* @__PURE__ */ jsx("thead", { ref: theadRef, children: headers.map((row2, rowIndex) => {
52266
+ return /* @__PURE__ */ jsx(
52267
+ Row,
52268
+ {
52269
+ rowIndex,
52270
+ isHeader: true,
52271
+ row: row2,
52272
+ columnCount,
52273
+ columnWidths,
52274
+ colSpan,
52275
+ hasRowActions: rowActions,
52276
+ columnAlignment,
52277
+ columnHeaderAlignments,
52278
+ draggableTable: draggable
52279
+ },
52280
+ `0_${rowIndex}`
52281
+ );
52282
+ }) }),
52283
+ /* @__PURE__ */ jsx("tbody", { ref: tbodyRef, children: virtualizer ? virtualizer.getVirtualItems().map((virtualRow2) => /* @__PURE__ */ jsx(
52284
+ Row,
52285
+ {
52286
+ rowIndex: virtualRow2.index,
52287
+ row: rows[virtualRow2.index],
52288
+ columnCount,
52289
+ columnWidths,
52290
+ colSpan,
52291
+ hasRowActions: rowActions,
52292
+ columnAlignment,
52293
+ draggableTable: draggable
52294
+ },
52295
+ `1_${virtualRow2.index}`
52296
+ )) : rows.map((row2, index2) => /* @__PURE__ */ jsx(
51876
52297
  Row,
51877
52298
  {
51878
- rowIndex,
51879
- isHeader: true,
52299
+ rowIndex: index2,
51880
52300
  row: row2,
51881
52301
  columnCount,
51882
52302
  columnWidths,
51883
52303
  colSpan,
51884
52304
  hasRowActions: rowActions,
51885
52305
  columnAlignment,
51886
- columnHeaderAlignments,
51887
52306
  draggableTable: draggable
51888
52307
  },
51889
- `0_${rowIndex}`
51890
- );
51891
- }) }),
51892
- /* @__PURE__ */ jsx("tbody", { ref: tbodyRef, children: rows.slice(0, visibleRows).map((row2, rowIndex) => /* @__PURE__ */ jsx(
51893
- Row,
51894
- {
51895
- rowIndex,
51896
- row: row2,
51897
- columnCount,
51898
- columnWidths,
51899
- colSpan,
51900
- hasRowActions: rowActions,
51901
- columnAlignment,
51902
- draggableTable: draggable
51903
- },
51904
- `1_${rowIndex}`
51905
- )) })
51906
- ]
51907
- }
51908
- )
52308
+ `1_${index2}`
52309
+ )) })
52310
+ ]
52311
+ }
52312
+ );
52313
+ } })
51909
52314
  }
51910
- ) }),
52315
+ ),
51911
52316
  footer2 && /* @__PURE__ */ jsx(
51912
52317
  Footer,
51913
52318
  {
@@ -55020,7 +55425,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
55020
55425
  }
55021
55426
  let refCount = 0;
55022
55427
  const INSTANCE_SYM = Symbol.for("__REACT_DND_CONTEXT_INSTANCE__");
55023
- var DndProvider = /* @__PURE__ */ memo(function DndProvider2(_param) {
55428
+ var DndProvider = /* @__PURE__ */ memo$1(function DndProvider2(_param) {
55024
55429
  var { children } = _param, props = _objectWithoutProperties(_param, [
55025
55430
  "children"
55026
55431
  ]);
@@ -57381,7 +57786,7 @@ function useFeatures(props, visualElement2, preloadedFeatures) {
57381
57786
  var name_1 = featureNames[i];
57382
57787
  var _a2 = featureDefinitions[name_1], isEnabled = _a2.isEnabled, Component2 = _a2.Component;
57383
57788
  if (isEnabled(props) && Component2) {
57384
- features.push(React$4.createElement(Component2, __assign$4({ key: name_1 }, props, { visualElement: visualElement2 })));
57789
+ features.push(React$4.createElement(Component2, __assign$3({ key: name_1 }, props, { visualElement: visualElement2 })));
57385
57790
  }
57386
57791
  }
57387
57792
  return features;
@@ -57622,7 +58027,7 @@ function useProjection(projectionId, _a2, visualElement2, ProjectionNodeConstruc
57622
58027
  var VisualElementHandler = (
57623
58028
  /** @class */
57624
58029
  function(_super) {
57625
- __extends$1(VisualElementHandler2, _super);
58030
+ __extends(VisualElementHandler2, _super);
57626
58031
  function VisualElementHandler2() {
57627
58032
  return _super !== null && _super.apply(this, arguments) || this;
57628
58033
  }
@@ -57648,20 +58053,20 @@ function createMotionComponent(_a2) {
57648
58053
  preloadedFeatures && loadFeatures(preloadedFeatures);
57649
58054
  function MotionComponent(props, externalRef) {
57650
58055
  var layoutId = useLayoutId(props);
57651
- props = __assign$4(__assign$4({}, props), { layoutId });
58056
+ props = __assign$3(__assign$3({}, props), { layoutId });
57652
58057
  var config = useContext(MotionConfigContext);
57653
58058
  var features = null;
57654
58059
  var context2 = useCreateMotionContext(props);
57655
58060
  var projectionId = config.isStatic ? void 0 : useProjectionId();
57656
58061
  var visualState = useVisualState(props, config.isStatic);
57657
58062
  if (!config.isStatic && isBrowser) {
57658
- context2.visualElement = useVisualElement(Component2, visualState, __assign$4(__assign$4({}, config), props), createVisualElement);
58063
+ context2.visualElement = useVisualElement(Component2, visualState, __assign$3(__assign$3({}, config), props), createVisualElement);
57659
58064
  useProjection(projectionId, props, context2.visualElement, projectionNodeConstructor || featureDefinitions.projectionNodeConstructor);
57660
58065
  features = useFeatures(props, context2.visualElement, preloadedFeatures);
57661
58066
  }
57662
58067
  return React$4.createElement(
57663
58068
  VisualElementHandler,
57664
- { visualElement: context2.visualElement, props: __assign$4(__assign$4({}, config), props) },
58069
+ { visualElement: context2.visualElement, props: __assign$3(__assign$3({}, config), props) },
57665
58070
  features,
57666
58071
  React$4.createElement(MotionContext.Provider, { value: context2 }, useRender(Component2, props, projectionId, useMotionRef(visualState, context2.visualElement, externalRef), visualState, config.isStatic, context2.visualElement))
57667
58072
  );
@@ -57987,7 +58392,7 @@ const filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v
57987
58392
  const functions = v2.match(functionRegex);
57988
58393
  return functions ? functions.map(applyDefaultFilter).join(" ") : v2;
57989
58394
  } });
57990
- var int = __assign$4(__assign$4({}, number), { transform: Math.round });
58395
+ var int = __assign$3(__assign$3({}, number), { transform: Math.round });
57991
58396
  var numberValueTypes = {
57992
58397
  // Border props
57993
58398
  borderWidth: px,
@@ -58117,7 +58522,7 @@ function useInitialMotionValues(_a2, visualState, isStatic) {
58117
58522
  var state = createHtmlRenderState();
58118
58523
  buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);
58119
58524
  var vars = state.vars, style = state.style;
58120
- return __assign$4(__assign$4({}, vars), style);
58525
+ return __assign$3(__assign$3({}, vars), style);
58121
58526
  }, [visualState]);
58122
58527
  }
58123
58528
  function useStyle(props, visualState, isStatic) {
@@ -58275,18 +58680,18 @@ function buildSVGAttrs(state, _a2, options, transformTemplate) {
58275
58680
  }
58276
58681
  }
58277
58682
  var createSvgRenderState = function() {
58278
- return __assign$4(__assign$4({}, createHtmlRenderState()), { attrs: {} });
58683
+ return __assign$3(__assign$3({}, createHtmlRenderState()), { attrs: {} });
58279
58684
  };
58280
58685
  function useSVGProps(props, visualState) {
58281
58686
  var visualProps = useMemo(function() {
58282
58687
  var state = createSvgRenderState();
58283
58688
  buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);
58284
- return __assign$4(__assign$4({}, state.attrs), { style: __assign$4({}, state.style) });
58689
+ return __assign$3(__assign$3({}, state.attrs), { style: __assign$3({}, state.style) });
58285
58690
  }, [visualState]);
58286
58691
  if (props.style) {
58287
58692
  var rawStyles = {};
58288
58693
  copyRawValuesOnly(rawStyles, props.style, props);
58289
- visualProps.style = __assign$4(__assign$4({}, rawStyles), visualProps.style);
58694
+ visualProps.style = __assign$3(__assign$3({}, rawStyles), visualProps.style);
58290
58695
  }
58291
58696
  return visualProps;
58292
58697
  }
@@ -58299,7 +58704,7 @@ function createUseRender(forwardMotionProps) {
58299
58704
  var useVisualProps = isSVGComponent(Component2) ? useSVGProps : useHTMLProps;
58300
58705
  var visualProps = useVisualProps(props, latestValues, isStatic);
58301
58706
  var filteredProps = filterProps(props, typeof Component2 === "string", forwardMotionProps);
58302
- var elementProps = __assign$4(__assign$4(__assign$4({}, filteredProps), visualProps), { ref });
58707
+ var elementProps = __assign$3(__assign$3(__assign$3({}, filteredProps), visualProps), { ref });
58303
58708
  if (projectionId) {
58304
58709
  elementProps["data-projection-id"] = projectionId;
58305
58710
  }
@@ -58476,7 +58881,7 @@ var htmlMotionConfig = {
58476
58881
  function createDomMotionConfig(Component2, _a2, preloadedFeatures, createVisualElement, projectionNodeConstructor) {
58477
58882
  var _b = _a2.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;
58478
58883
  var baseConfig = isSVGComponent(Component2) ? svgMotionConfig : htmlMotionConfig;
58479
- return __assign$4(__assign$4({}, baseConfig), { preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement, projectionNodeConstructor, Component: Component2 });
58884
+ return __assign$3(__assign$3({}, baseConfig), { preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement, projectionNodeConstructor, Component: Component2 });
58480
58885
  }
58481
58886
  var AnimationType;
58482
58887
  (function(AnimationType2) {
@@ -59563,7 +59968,7 @@ function initIntersectionObserver(_a2) {
59563
59968
  var rootObservers = observers.get(lookupRoot);
59564
59969
  var key2 = JSON.stringify(options);
59565
59970
  if (!rootObservers[key2]) {
59566
- rootObservers[key2] = new IntersectionObserver(fireAllObserverCallbacks, __assign$4({ root: root2 }, options));
59971
+ rootObservers[key2] = new IntersectionObserver(fireAllObserverCallbacks, __assign$3({ root: root2 }, options));
59567
59972
  }
59568
59973
  return rootObservers[key2];
59569
59974
  }
@@ -59781,9 +60186,9 @@ var getDefaultTransition = function(valueKey, to2) {
59781
60186
  } else {
59782
60187
  transitionFactory = defaultTransitions[valueKey] || defaultTransitions.default;
59783
60188
  }
59784
- return __assign$4({ to: to2 }, transitionFactory(to2));
60189
+ return __assign$3({ to: to2 }, transitionFactory(to2));
59785
60190
  };
59786
- var defaultValueTypes = __assign$4(__assign$4({}, numberValueTypes), {
60191
+ var defaultValueTypes = __assign$3(__assign$3({}, numberValueTypes), {
59787
60192
  // Color props
59788
60193
  color,
59789
60194
  backgroundColor: color,
@@ -59825,7 +60230,7 @@ function isTransitionDefined(_a2) {
59825
60230
  var legacyRepeatWarning = false;
59826
60231
  function convertTransitionToAnimationOptions(_a2) {
59827
60232
  var ease = _a2.ease, times = _a2.times, yoyo = _a2.yoyo, flip = _a2.flip, loop = _a2.loop, transition = __rest$1(_a2, ["ease", "times", "yoyo", "flip", "loop"]);
59828
- var options = __assign$4({}, transition);
60233
+ var options = __assign$3({}, transition);
59829
60234
  if (times)
59830
60235
  options["offset"] = times;
59831
60236
  if (transition.duration)
@@ -59872,9 +60277,9 @@ function getPopmotionAnimationOptions(transition, options, key2) {
59872
60277
  }
59873
60278
  hydrateKeyframes(options);
59874
60279
  if (!isTransitionDefined(transition)) {
59875
- transition = __assign$4(__assign$4({}, transition), getDefaultTransition(key2, options.to));
60280
+ transition = __assign$3(__assign$3({}, transition), getDefaultTransition(key2, options.to));
59876
60281
  }
59877
- return __assign$4(__assign$4({}, options), convertTransitionToAnimationOptions(transition));
60282
+ return __assign$3(__assign$3({}, options), convertTransitionToAnimationOptions(transition));
59878
60283
  }
59879
60284
  function getAnimation(key2, value, target, transition, onComplete) {
59880
60285
  var _a2;
@@ -59900,7 +60305,7 @@ function getAnimation(key2, value, target, transition, onComplete) {
59900
60305
  return value.set(v2);
59901
60306
  }
59902
60307
  };
59903
- return valueTransition.type === "inertia" || valueTransition.type === "decay" ? inertia(__assign$4(__assign$4({}, options), valueTransition)) : animate$1(__assign$4(__assign$4({}, getPopmotionAnimationOptions(valueTransition, options, key2)), { onUpdate: function(v2) {
60308
+ return valueTransition.type === "inertia" || valueTransition.type === "decay" ? inertia(__assign$3(__assign$3({}, options), valueTransition)) : animate$1(__assign$3(__assign$3({}, getPopmotionAnimationOptions(valueTransition, options, key2)), { onUpdate: function(v2) {
59904
60309
  var _a3;
59905
60310
  options.onUpdate(v2);
59906
60311
  (_a3 = valueTransition.onUpdate) === null || _a3 === void 0 ? void 0 : _a3.call(valueTransition, v2);
@@ -60153,7 +60558,7 @@ function setTarget(visualElement2, definition) {
60153
60558
  var _a2 = resolved ? visualElement2.makeTargetAnimatable(resolved, false) : {}, _b = _a2.transitionEnd, transitionEnd = _b === void 0 ? {} : _b;
60154
60559
  _a2.transition;
60155
60560
  var target = __rest$1(_a2, ["transitionEnd", "transition"]);
60156
- target = __assign$4(__assign$4({}, target), transitionEnd);
60561
+ target = __assign$3(__assign$3({}, target), transitionEnd);
60157
60562
  for (var key2 in target) {
60158
60563
  var value = resolveFinalValueInKeyframes(target[key2]);
60159
60564
  setMotionValue(visualElement2, key2, value);
@@ -60271,9 +60676,9 @@ function animateTarget(visualElement2, definition, _a2) {
60271
60676
  if (!value || valueTarget === void 0 || animationTypeState && shouldBlockAnimation(animationTypeState, key2)) {
60272
60677
  continue;
60273
60678
  }
60274
- var valueTransition = __assign$4({ delay }, transition);
60679
+ var valueTransition = __assign$3({ delay }, transition);
60275
60680
  if (visualElement2.shouldReduceMotion && isTransformProp(key2)) {
60276
- valueTransition = __assign$4(__assign$4({}, valueTransition), { type: false, delay: 0 });
60681
+ valueTransition = __assign$3(__assign$3({}, valueTransition), { type: false, delay: 0 });
60277
60682
  }
60278
60683
  var animation = startAnimation(key2, value, valueTarget, valueTransition);
60279
60684
  animations2.push(animation);
@@ -60306,7 +60711,7 @@ function animateChildren(visualElement2, variant, delayChildren, staggerChildren
60306
60711
  return maxStaggerDuration - i * staggerChildren;
60307
60712
  };
60308
60713
  Array.from(visualElement2.variantChildren).sort(sortByTreeOrder).forEach(function(child, i) {
60309
- animations2.push(animateVariant(child, variant, __assign$4(__assign$4({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function() {
60714
+ animations2.push(animateVariant(child, variant, __assign$3(__assign$3({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function() {
60310
60715
  return child.notifyAnimationComplete(variant);
60311
60716
  }));
60312
60717
  });
@@ -60350,7 +60755,7 @@ function createAnimationState(visualElement2) {
60350
60755
  if (resolved) {
60351
60756
  resolved.transition;
60352
60757
  var transitionEnd = resolved.transitionEnd, target = __rest$1(resolved, ["transition", "transitionEnd"]);
60353
- acc = __assign$4(__assign$4(__assign$4({}, acc), target), transitionEnd);
60758
+ acc = __assign$3(__assign$3(__assign$3({}, acc), target), transitionEnd);
60354
60759
  }
60355
60760
  return acc;
60356
60761
  };
@@ -60380,7 +60785,7 @@ function createAnimationState(visualElement2) {
60380
60785
  if (isInherited && isInitialRender && visualElement2.manuallyAnimateOnMount) {
60381
60786
  isInherited = false;
60382
60787
  }
60383
- typeState.protectedKeys = __assign$4({}, encounteredKeys);
60788
+ typeState.protectedKeys = __assign$3({}, encounteredKeys);
60384
60789
  if (
60385
60790
  // If it isn't active and hasn't *just* been set as inactive
60386
60791
  !typeState.isActive && activeDelta === null || // If we didn't and don't have any defined prop for this animation type
@@ -60398,7 +60803,7 @@ function createAnimationState(visualElement2) {
60398
60803
  if (activeDelta === false)
60399
60804
  resolvedValues = {};
60400
60805
  var _b = typeState.prevResolvedValues, prevResolvedValues = _b === void 0 ? {} : _b;
60401
- var allKeys = __assign$4(__assign$4({}, prevResolvedValues), resolvedValues);
60806
+ var allKeys = __assign$3(__assign$3({}, prevResolvedValues), resolvedValues);
60402
60807
  var markToAnimate = function(key3) {
60403
60808
  shouldAnimateType = true;
60404
60809
  removedKeys.delete(key3);
@@ -60430,7 +60835,7 @@ function createAnimationState(visualElement2) {
60430
60835
  typeState.prevProp = prop;
60431
60836
  typeState.prevResolvedValues = resolvedValues;
60432
60837
  if (typeState.isActive) {
60433
- encounteredKeys = __assign$4(__assign$4({}, encounteredKeys), resolvedValues);
60838
+ encounteredKeys = __assign$3(__assign$3({}, encounteredKeys), resolvedValues);
60434
60839
  }
60435
60840
  if (isInitialRender && visualElement2.blockInitialAnimation) {
60436
60841
  shouldAnimateType = false;
@@ -60439,7 +60844,7 @@ function createAnimationState(visualElement2) {
60439
60844
  animations2.push.apply(animations2, __spreadArray$2([], __read(definitionList.map(function(animation) {
60440
60845
  return {
60441
60846
  animation,
60442
- options: __assign$4({ type }, options)
60847
+ options: __assign$3({ type }, options)
60443
60848
  };
60444
60849
  })), false));
60445
60850
  }
@@ -60447,7 +60852,7 @@ function createAnimationState(visualElement2) {
60447
60852
  for (var i = 0; i < numAnimationTypes; i++) {
60448
60853
  _loop_1(i);
60449
60854
  }
60450
- allAnimatedKeys = __assign$4({}, encounteredKeys);
60855
+ allAnimatedKeys = __assign$3({}, encounteredKeys);
60451
60856
  if (removedKeys.size) {
60452
60857
  var fallbackAnimation_1 = {};
60453
60858
  removedKeys.forEach(function(key2) {
@@ -60555,7 +60960,7 @@ var PanSession = (
60555
60960
  return;
60556
60961
  var point2 = info3.point;
60557
60962
  var timestamp2 = getFrameData().timestamp;
60558
- _this.history.push(__assign$4(__assign$4({}, point2), { timestamp: timestamp2 }));
60963
+ _this.history.push(__assign$3(__assign$3({}, point2), { timestamp: timestamp2 }));
60559
60964
  var _a3 = _this.handlers, onStart = _a3.onStart, onMove = _a3.onMove;
60560
60965
  if (!isPanStarted) {
60561
60966
  onStart && onStart(_this.lastMoveEvent, info3);
@@ -60589,7 +60994,7 @@ var PanSession = (
60589
60994
  var initialInfo = transformPoint(info2, this.transformPagePoint);
60590
60995
  var point = initialInfo.point;
60591
60996
  var timestamp = getFrameData().timestamp;
60592
- this.history = [__assign$4(__assign$4({}, point), { timestamp })];
60997
+ this.history = [__assign$3(__assign$3({}, point), { timestamp })];
60593
60998
  var onSessionStart = handlers2.onSessionStart;
60594
60999
  onSessionStart && onSessionStart(event, getPanInfo(initialInfo, this.history));
60595
61000
  this.removeListeners = pipe(addPointerEvent(window, "pointermove", this.handlePointerMove), addPointerEvent(window, "pointerup", this.handlePointerUp), addPointerEvent(window, "pointercancel", this.handlePointerUp));
@@ -61110,7 +61515,7 @@ var VisualElementDragControls = (
61110
61515
  transition = { min: 0, max: 0 };
61111
61516
  var bounceStiffness = dragElastic ? 200 : 1e6;
61112
61517
  var bounceDamping = dragElastic ? 40 : 1e7;
61113
- var inertia2 = __assign$4(__assign$4({ type: "inertia", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness, bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);
61518
+ var inertia2 = __assign$3(__assign$3({ type: "inertia", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness, bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);
61114
61519
  return _this.startAxisValueAnimation(axis, inertia2);
61115
61520
  });
61116
61521
  return Promise.all(momentumAnimations).then(onDragTransitionEnd);
@@ -61221,7 +61626,7 @@ var VisualElementDragControls = (
61221
61626
  VisualElementDragControls2.prototype.getProps = function() {
61222
61627
  var props = this.visualElement.getProps();
61223
61628
  var _a2 = props.drag, drag2 = _a2 === void 0 ? false : _a2, _b = props.dragDirectionLock, dragDirectionLock = _b === void 0 ? false : _b, _c = props.dragPropagation, dragPropagation = _c === void 0 ? false : _c, _d = props.dragConstraints, dragConstraints = _d === void 0 ? false : _d, _e2 = props.dragElastic, dragElastic = _e2 === void 0 ? defaultElastic : _e2, _f = props.dragMomentum, dragMomentum = _f === void 0 ? true : _f;
61224
- return __assign$4(__assign$4({}, props), { drag: drag2, dragDirectionLock, dragPropagation, dragConstraints, dragElastic, dragMomentum });
61629
+ return __assign$3(__assign$3({}, props), { drag: drag2, dragDirectionLock, dragPropagation, dragConstraints, dragElastic, dragMomentum });
61225
61630
  };
61226
61631
  return VisualElementDragControls2;
61227
61632
  }()
@@ -61378,7 +61783,7 @@ var visualElement = function(_a2) {
61378
61783
  var values2 = /* @__PURE__ */ new Map();
61379
61784
  var valueSubscriptions = /* @__PURE__ */ new Map();
61380
61785
  var prevMotionValues = {};
61381
- var baseTarget = __assign$4({}, latestValues);
61786
+ var baseTarget = __assign$3({}, latestValues);
61382
61787
  var removeFromVariantTree;
61383
61788
  function render2() {
61384
61789
  if (!instance || !isMounted)
@@ -61412,7 +61817,7 @@ var visualElement = function(_a2) {
61412
61817
  }
61413
61818
  var isControllingVariants = checkIfControllingVariants(props);
61414
61819
  var isVariantNode = checkIfVariantNode(props);
61415
- var element = __assign$4(__assign$4({
61820
+ var element = __assign$3(__assign$3({
61416
61821
  treeType,
61417
61822
  /**
61418
61823
  * This is a mirror of the internal instance prop, which keeps
@@ -61777,7 +62182,7 @@ function resolveCSSVariables(visualElement2, _a2, transitionEnd) {
61777
62182
  if (!(element instanceof Element))
61778
62183
  return { target, transitionEnd };
61779
62184
  if (transitionEnd) {
61780
- transitionEnd = __assign$4({}, transitionEnd);
62185
+ transitionEnd = __assign$3({}, transitionEnd);
61781
62186
  }
61782
62187
  visualElement2.forEachValue(function(value) {
61783
62188
  var current2 = value.get();
@@ -61932,8 +62337,8 @@ var checkAndConvertChangedValueTypes = function(visualElement2, target, origin,
61932
62337
  if (transitionEnd === void 0) {
61933
62338
  transitionEnd = {};
61934
62339
  }
61935
- target = __assign$4({}, target);
61936
- transitionEnd = __assign$4({}, transitionEnd);
62340
+ target = __assign$3({}, target);
62341
+ transitionEnd = __assign$3({}, transitionEnd);
61937
62342
  var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);
61938
62343
  var removedTransformValues = [];
61939
62344
  var hasAttemptedToRemoveTransformValues = false;
@@ -62086,7 +62491,7 @@ var htmlConfig = {
62086
62491
  transitionEnd = parsed.transitionEnd;
62087
62492
  target = parsed.target;
62088
62493
  }
62089
- return __assign$4({ transition, transitionEnd }, target);
62494
+ return __assign$3({ transition, transitionEnd }, target);
62090
62495
  },
62091
62496
  scrapeMotionValuesFromProps: scrapeMotionValuesFromProps$1,
62092
62497
  build: function(element, renderState, latestValues, options, props) {
@@ -62098,7 +62503,7 @@ var htmlConfig = {
62098
62503
  render: renderHTML
62099
62504
  };
62100
62505
  var htmlVisualElement = visualElement(htmlConfig);
62101
- var svgVisualElement = visualElement(__assign$4(__assign$4({}, htmlConfig), { getBaseTarget: function(props, key2) {
62506
+ var svgVisualElement = visualElement(__assign$3(__assign$3({}, htmlConfig), { getBaseTarget: function(props, key2) {
62102
62507
  return props[key2];
62103
62508
  }, readValueFromInstance: function(domElement, key2) {
62104
62509
  var _a2;
@@ -62176,7 +62581,7 @@ var correctBoxShadow = {
62176
62581
  var MeasureLayoutWithContext = (
62177
62582
  /** @class */
62178
62583
  function(_super) {
62179
- __extends$1(MeasureLayoutWithContext2, _super);
62584
+ __extends(MeasureLayoutWithContext2, _super);
62180
62585
  function MeasureLayoutWithContext2() {
62181
62586
  return _super !== null && _super.apply(this, arguments) || this;
62182
62587
  }
@@ -62195,7 +62600,7 @@ var MeasureLayoutWithContext = (
62195
62600
  projection.addEventListener("animationComplete", function() {
62196
62601
  _this.safeToRemove();
62197
62602
  });
62198
- projection.setOptions(__assign$4(__assign$4({}, projection.options), { onExitComplete: function() {
62603
+ projection.setOptions(__assign$3(__assign$3({}, projection.options), { onExitComplete: function() {
62199
62604
  return _this.safeToRemove();
62200
62605
  } }));
62201
62606
  }
@@ -62260,10 +62665,10 @@ var MeasureLayoutWithContext = (
62260
62665
  function MeasureLayout(props) {
62261
62666
  var _a2 = __read(usePresence(), 2), isPresent = _a2[0], safeToRemove = _a2[1];
62262
62667
  var layoutGroup = useContext(LayoutGroupContext);
62263
- return React__default.createElement(MeasureLayoutWithContext, __assign$4({}, props, { layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent, safeToRemove }));
62668
+ return React__default.createElement(MeasureLayoutWithContext, __assign$3({}, props, { layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent, safeToRemove }));
62264
62669
  }
62265
62670
  var defaultScaleCorrectors = {
62266
- borderRadius: __assign$4(__assign$4({}, correctBorderRadius), { applyTo: [
62671
+ borderRadius: __assign$3(__assign$3({}, correctBorderRadius), { applyTo: [
62267
62672
  "borderTopLeftRadius",
62268
62673
  "borderTopRightRadius",
62269
62674
  "borderBottomLeftRadius",
@@ -62686,7 +63091,7 @@ function createProjectionNode(_a2) {
62686
63091
  _this.resumingFrom.resumingFrom = void 0;
62687
63092
  }
62688
63093
  _this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);
62689
- var animationOptions = __assign$4(__assign$4({}, getValueTransition(layoutTransition, "layout")), { onPlay: onLayoutAnimationStart, onComplete: onLayoutAnimationComplete });
63094
+ var animationOptions = __assign$3(__assign$3({}, getValueTransition(layoutTransition, "layout")), { onPlay: onLayoutAnimationStart, onComplete: onLayoutAnimationComplete });
62690
63095
  if (visualElement2.shouldReduceMotion) {
62691
63096
  animationOptions.delay = 0;
62692
63097
  animationOptions.type = false;
@@ -62940,7 +63345,7 @@ function createProjectionNode(_a2) {
62940
63345
  };
62941
63346
  ProjectionNode.prototype.setOptions = function(options) {
62942
63347
  var _a3;
62943
- this.options = __assign$4(__assign$4(__assign$4({}, this.options), options), { crossfade: (_a3 = options.crossfade) !== null && _a3 !== void 0 ? _a3 : true });
63348
+ this.options = __assign$3(__assign$3(__assign$3({}, this.options), options), { crossfade: (_a3 = options.crossfade) !== null && _a3 !== void 0 ? _a3 : true });
62944
63349
  };
62945
63350
  ProjectionNode.prototype.clearMeasurements = function() {
62946
63351
  this.scroll = void 0;
@@ -63058,7 +63463,7 @@ function createProjectionNode(_a2) {
63058
63463
  }
63059
63464
  var snapshot = this.snapshot;
63060
63465
  var snapshotLatestValues = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.latestValues) || {};
63061
- var mixedValues = __assign$4({}, this.latestValues);
63466
+ var mixedValues = __assign$3({}, this.latestValues);
63062
63467
  var targetDelta = createDelta();
63063
63468
  this.relativeTarget = this.relativeTargetOrigin = void 0;
63064
63469
  this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;
@@ -63101,7 +63506,7 @@ function createProjectionNode(_a2) {
63101
63506
  }
63102
63507
  this.pendingAnimation = sync.update(function() {
63103
63508
  globalProjectionState.hasAnimatedSinceResize = true;
63104
- _this.currentAnimation = animate(0, animationTarget, __assign$4(__assign$4({}, options), { onUpdate: function(latest) {
63509
+ _this.currentAnimation = animate(0, animationTarget, __assign$3(__assign$3({}, options), { onUpdate: function(latest) {
63105
63510
  var _a4;
63106
63511
  _this.mixTargetDelta(latest);
63107
63512
  (_a4 = options.onUpdate) === null || _a4 === void 0 ? void 0 : _a4.call(options, latest);
@@ -63469,7 +63874,7 @@ var HTMLProjectionNode = createProjectionNode({
63469
63874
  return Boolean(window.getComputedStyle(instance).position === "fixed");
63470
63875
  }
63471
63876
  });
63472
- var featureBundle = __assign$4(__assign$4(__assign$4(__assign$4({}, animations), gestureAnimations), drag), layoutFeatures);
63877
+ var featureBundle = __assign$3(__assign$3(__assign$3(__assign$3({}, animations), gestureAnimations), drag), layoutFeatures);
63473
63878
  var motion = /* @__PURE__ */ createMotionProxy(function(Component2, config) {
63474
63879
  return createDomMotionConfig(Component2, config, featureBundle, createDomVisualElement, HTMLProjectionNode);
63475
63880
  });