@oliasoft-open-source/react-ui-library 4.16.1 → 4.16.2-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, 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,805 @@ 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_nnoig_1";
10261
+ const inputHover$8 = "_inputHover_nnoig_13";
10262
+ const inputFocus$8 = "_inputFocus_nnoig_18";
10263
+ const inputError$8 = "_inputError_nnoig_25";
10264
+ const inputWarning$8 = "_inputWarning_nnoig_26";
10265
+ const inputDisabled$8 = "_inputDisabled_nnoig_61";
10266
+ const hideScrollbars$8 = "_hideScrollbars_nnoig_67";
10267
+ const list$1 = "_list_nnoig_77";
10268
+ const bordered$1 = "_bordered_nnoig_83";
10269
+ const header$1 = "_header_nnoig_87";
10270
+ const headerTitle = "_headerTitle_nnoig_87";
10271
+ const heading$3 = "_heading_nnoig_88";
10272
+ const itemHeader = "_itemHeader_nnoig_88";
10273
+ const narrow = "_narrow_nnoig_91";
10274
+ const stickyHeader = "_stickyHeader_nnoig_95";
10275
+ const title$3 = "_title_nnoig_106";
10276
+ const name = "_name_nnoig_112";
10277
+ const iconTooltipMargin = "_iconTooltipMargin_nnoig_115";
10278
+ const bold = "_bold_nnoig_118";
10279
+ const toggleNarrow = "_toggleNarrow_nnoig_129";
10280
+ const drag$1 = "_drag_nnoig_147";
10281
+ const dragOverlay$1 = "_dragOverlay_nnoig_168";
10282
+ const listContent = "_listContent_nnoig_173";
10283
+ const item$4 = "_item_nnoig_88";
10284
+ const action = "_action_nnoig_200";
10285
+ const active$3 = "_active_nnoig_203";
10286
+ const indented = "_indented_nnoig_210";
10287
+ const disabled$5 = "_disabled_nnoig_223";
10288
+ const label$6 = "_label_nnoig_234";
10289
+ const details$2 = "_details_nnoig_245";
10290
+ const metadata = "_metadata_nnoig_246";
10291
+ const itemContent = "_itemContent_nnoig_254";
10292
+ const indentIcon = "_indentIcon_nnoig_261";
10293
+ const expandIcon = "_expandIcon_nnoig_266";
10294
+ const expanded = "_expanded_nnoig_273";
10295
+ const right$4 = "_right_nnoig_276";
10296
+ const actions = "_actions_nnoig_284";
10297
+ const scrollableList = "_scrollableList_nnoig_289";
10298
+ const infiniteScrollContainer = "_infiniteScrollContainer_nnoig_294";
10299
+ const hideScrollbar = "_hideScrollbar_nnoig_67";
10300
+ const noPointerEvents = "_noPointerEvents_nnoig_307";
10301
+ const virtualRows = "_virtualRows_nnoig_310";
10302
+ const virtualRow = "_virtualRow_nnoig_310";
9881
10303
  const listStyles = {
9882
10304
  inputInTable: inputInTable$8,
9883
10305
  inputHover: inputHover$8,
@@ -9886,6 +10308,8 @@ const listStyles = {
9886
10308
  inputWarning: inputWarning$8,
9887
10309
  inputDisabled: inputDisabled$8,
9888
10310
  hideScrollbars: hideScrollbars$8,
10311
+ list: list$1,
10312
+ bordered: bordered$1,
9889
10313
  header: header$1,
9890
10314
  headerTitle,
9891
10315
  heading: heading$3,
@@ -9899,8 +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,
10326
+ listContent,
9904
10327
  item: item$4,
9905
10328
  action,
9906
10329
  active: active$3,
@@ -9918,7 +10341,9 @@ const listStyles = {
9918
10341
  scrollableList,
9919
10342
  infiniteScrollContainer,
9920
10343
  hideScrollbar,
9921
- noPointerEvents
10344
+ noPointerEvents,
10345
+ virtualRows,
10346
+ virtualRow
9922
10347
  };
9923
10348
  const ToggleNarrow = ({
9924
10349
  toggleNarrow: toggleNarrow2,
@@ -10143,9 +10568,9 @@ function isTouchEvent$2(event) {
10143
10568
  return false;
10144
10569
  }
10145
10570
  const {
10146
- TouchEvent: TouchEvent2
10571
+ TouchEvent
10147
10572
  } = getWindow(event.target);
10148
- return TouchEvent2 && event instanceof TouchEvent2;
10573
+ return TouchEvent && event instanceof TouchEvent;
10149
10574
  }
10150
10575
  function getEventCoordinates(event) {
10151
10576
  if (isTouchEvent$2(event)) {
@@ -12563,7 +12988,7 @@ var Status;
12563
12988
  Status2[Status2["Initializing"] = 1] = "Initializing";
12564
12989
  Status2[Status2["Initialized"] = 2] = "Initialized";
12565
12990
  })(Status || (Status = {}));
12566
- const DndContext$1 = /* @__PURE__ */ memo(function DndContext(_ref) {
12991
+ const DndContext$1 = /* @__PURE__ */ memo$1(function DndContext(_ref) {
12567
12992
  var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;
12568
12993
  let {
12569
12994
  id: id2,
@@ -14201,72 +14626,6 @@ const ListRow = forwardRef(
14201
14626
  return isSubheading ? /* @__PURE__ */ jsx(ListSubheading, { ref: listRowRefs, item: item2, index: index2 }, index2) : draggable ? listElementWithDrag(index2, item2) : listElement(index2, item2);
14202
14627
  }
14203
14628
  );
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
14629
  const ListDragWrapper = ({
14271
14630
  children,
14272
14631
  draggable,
@@ -14281,15 +14640,14 @@ const ListDragWrapper = ({
14281
14640
  setDragIndex(event.active.id);
14282
14641
  };
14283
14642
  const handleDragEnd = (event) => {
14284
- var _a2, _b, _c, _d, _e2, _f, _g, _h;
14285
14643
  setDragIndex(null);
14286
14644
  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;
14645
+ const from3 = active2 == null ? void 0 : active2.id;
14646
+ const to2 = over == null ? void 0 : over.id;
14289
14647
  if (from3 !== to2) {
14290
14648
  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
14649
+ from: Number(from3),
14650
+ to: Number(to2)
14293
14651
  });
14294
14652
  }
14295
14653
  };
@@ -14353,43 +14711,20 @@ const List = ({
14353
14711
  infiniteScroll,
14354
14712
  infiniteScrollTarget
14355
14713
  } = scrollDetails;
14356
- const listHeadingRef = useRef(null);
14357
- const listRowRefs = useRef([]);
14358
14714
  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
- };
14715
+ const MIN_ITEM_HEIGHT = 37;
14716
+ const virtualizer = useVirtualizer({
14717
+ count: list2.items.length,
14718
+ getScrollElement: () => listContainerRef.current,
14719
+ estimateSize: () => MIN_ITEM_HEIGHT,
14720
+ overscan: 5
14721
+ });
14374
14722
  const findFirstActiveItemIndex = (items) => items.findIndex((item2) => item2.active === true);
14375
14723
  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;
14724
+ if (activeItemIndex >= 0) {
14725
+ virtualizer.scrollToIndex(activeItemIndex, {
14726
+ align: "center"
14727
+ });
14393
14728
  }
14394
14729
  };
14395
14730
  useEffect(() => {
@@ -14397,24 +14732,18 @@ const List = ({
14397
14732
  const activeItemIndex = findFirstActiveItemIndex(list2 == null ? void 0 : list2.items);
14398
14733
  setScrollToActiveItem(activeItemIndex);
14399
14734
  }
14400
- }, [
14401
- listContainerRef.current,
14402
- listHeadingRef.current,
14403
- triggerScrollToActiveItem
14404
- ]);
14405
- return /* @__PURE__ */ jsx(
14735
+ }, [triggerScrollToActiveItem]);
14736
+ return /* @__PURE__ */ jsxs(
14406
14737
  "div",
14407
14738
  {
14408
14739
  className: cx$2(
14740
+ listStyles.list,
14409
14741
  narrow2 ? listStyles.narrow : "",
14410
- scrollable ? listStyles.scrollableList : "",
14411
- hideScrollbar2 ? listStyles.hideScrollbar : ""
14742
+ bordered2 ? listStyles.bordered : ""
14412
14743
  ),
14413
14744
  "data-testid": testId,
14414
- id: "scrollableDiv",
14415
14745
  style: { height: height2, marginBottom },
14416
- ref: listContainerRef,
14417
- children: /* @__PURE__ */ jsxs(Card, { bordered: bordered2, padding: false, children: [
14746
+ children: [
14418
14747
  !noHeader && /* @__PURE__ */ jsx(
14419
14748
  ListHeading,
14420
14749
  {
@@ -14422,53 +14751,124 @@ const List = ({
14422
14751
  actions: list2.actions,
14423
14752
  toggleNarrow: toggleNarrow2,
14424
14753
  onToggleNarrow,
14425
- stickyHeader: stickyHeader2,
14426
- ref: listHeadingRef
14754
+ stickyHeader: stickyHeader2
14427
14755
  }
14428
14756
  ),
14429
- /* @__PURE__ */ jsx("div", { className: cx$2(listStyles.list, bordered2 ? listStyles.bordered : ""), children: /* @__PURE__ */ jsx(
14757
+ /* @__PURE__ */ jsx(
14430
14758
  ListDragWrapper,
14431
14759
  {
14432
14760
  draggable,
14433
14761
  list: list2,
14434
14762
  onListReorder,
14435
- children: infiniteScroll ? /* @__PURE__ */ jsx(
14436
- InfiniteScroll,
14763
+ children: /* @__PURE__ */ jsx(
14764
+ "div",
14437
14765
  {
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,
14766
+ className: cx$2(
14767
+ listStyles.listContent,
14768
+ scrollable ? listStyles.scrollableList : "",
14769
+ hideScrollbar2 ? listStyles.hideScrollbar : ""
14770
+ ),
14771
+ ref: listContainerRef,
14772
+ children: /* @__PURE__ */ jsx(
14773
+ "div",
14446
14774
  {
14447
- index: index2,
14448
- draggable,
14449
- item: item2,
14450
- expanding,
14451
- invokeEditOnRowClick,
14452
- ref: listRowRefs
14453
- },
14454
- index2
14455
- ))
14775
+ className: listStyles.virtualRows,
14776
+ style: { height: `${virtualizer.getTotalSize()}px` },
14777
+ children: virtualizer.getVirtualItems().map((virtualRow2) => {
14778
+ return /* @__PURE__ */ jsx(
14779
+ "div",
14780
+ {
14781
+ "data-index": virtualRow2.index,
14782
+ className: listStyles.virtualRow,
14783
+ style: { transform: `translateY(${virtualRow2.start}px)` },
14784
+ ref: virtualizer.measureElement,
14785
+ children: /* @__PURE__ */ jsx(
14786
+ ListRow,
14787
+ {
14788
+ index: virtualRow2.index,
14789
+ draggable,
14790
+ item: list2.items[virtualRow2.index],
14791
+ expanding,
14792
+ invokeEditOnRowClick
14793
+ }
14794
+ )
14795
+ },
14796
+ virtualRow2.key
14797
+ );
14798
+ })
14799
+ }
14800
+ )
14456
14801
  }
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
- ))
14802
+ )
14469
14803
  }
14470
- ) })
14471
- ] })
14804
+ )
14805
+ ]
14806
+ }
14807
+ );
14808
+ };
14809
+ const loader = "_loader_477i5_1";
14810
+ const fullViewPortSize = "_fullViewPortSize_477i5_7";
14811
+ const cover = "_cover_477i5_14";
14812
+ const dimmer = "_dimmer_477i5_21";
14813
+ const content$2 = "_content_477i5_44";
14814
+ const text$1 = "_text_477i5_49";
14815
+ const details$1 = "_details_477i5_53";
14816
+ const styles$t = {
14817
+ loader,
14818
+ fullViewPortSize,
14819
+ cover,
14820
+ dimmer,
14821
+ content: content$2,
14822
+ text: text$1,
14823
+ details: details$1
14824
+ };
14825
+ const Loader = ({
14826
+ width: width2,
14827
+ height: height2,
14828
+ text: text2 = "",
14829
+ details: details2 = "",
14830
+ fullViewPortSize: fullViewPortSize2 = false,
14831
+ cover: cover2 = false,
14832
+ children = null,
14833
+ theme = Theme.DARK,
14834
+ testId = null
14835
+ }) => {
14836
+ const color2 = theme === Theme.DARK ? Theme.WHITE : Theme.INHERIT;
14837
+ const background2 = theme === "white" ? "var(--color-background-raised)" : theme === "light" ? "var(--color-background)" : "black";
14838
+ return /* @__PURE__ */ jsx(
14839
+ "div",
14840
+ {
14841
+ className: cx$2(styles$t.loader, cover2 ? styles$t.cover : "", {
14842
+ [styles$t.fullViewPortSize]: fullViewPortSize2
14843
+ }),
14844
+ style: { width: width2, height: height2 },
14845
+ "data-testid": testId,
14846
+ children: /* @__PURE__ */ jsx("div", { className: styles$t.dimmer, style: { background: background2, color: color2 }, children: /* @__PURE__ */ jsxs(
14847
+ "div",
14848
+ {
14849
+ className: styles$t.content,
14850
+ "data-testid": testId && `${testId}-content`,
14851
+ children: [
14852
+ children,
14853
+ text2 && /* @__PURE__ */ jsx(
14854
+ "div",
14855
+ {
14856
+ className: styles$t.text,
14857
+ "data-testid": testId && `${testId}-text`,
14858
+ children: text2
14859
+ }
14860
+ ),
14861
+ details2 && /* @__PURE__ */ jsx(
14862
+ "div",
14863
+ {
14864
+ className: styles$t.details,
14865
+ "data-testid": testId && `${testId}-details`,
14866
+ children: details2
14867
+ }
14868
+ )
14869
+ ]
14870
+ }
14871
+ ) })
14472
14872
  }
14473
14873
  );
14474
14874
  };
@@ -15242,7 +15642,7 @@ const useFontsReady = () => {
15242
15642
  const getWidth = () => window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
15243
15643
  const useWindowWidth = () => {
15244
15644
  const [width2, setWidth] = useState(getWidth());
15245
- const resizeListener = debounce$2(() => setWidth(getWidth()), 150);
15645
+ const resizeListener = debounce$3(() => setWidth(getWidth()), 150);
15246
15646
  useEffect(() => {
15247
15647
  window.addEventListener("resize", resizeListener);
15248
15648
  return () => {
@@ -48004,7 +48404,7 @@ const styles$d = {
48004
48404
  active: active$2,
48005
48405
  icon: icon$1
48006
48406
  };
48007
- const TooltipIcon = memo(
48407
+ const TooltipIcon = memo$1(
48008
48408
  ({ isOpen: isOpen2, label: label2, icon: icon2, invalid }) => {
48009
48409
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
48010
48410
  /* @__PURE__ */ jsx(
@@ -48079,7 +48479,7 @@ const Sections = ({
48079
48479
  )
48080
48480
  ] }, i)) });
48081
48481
  };
48082
- const SideBar = memo(
48482
+ const SideBar = memo$1(
48083
48483
  ({
48084
48484
  options,
48085
48485
  startOpen = false,
@@ -50705,19 +51105,19 @@ const Spacer = ({
50705
51105
  }
50706
51106
  }
50707
51107
  );
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";
51108
+ const inputInTable$2 = "_inputInTable_1p5u4_1";
51109
+ const inputHover$2 = "_inputHover_1p5u4_13";
51110
+ const inputFocus$2 = "_inputFocus_1p5u4_18";
51111
+ const inputError$2 = "_inputError_1p5u4_25";
51112
+ const inputWarning$2 = "_inputWarning_1p5u4_26";
51113
+ const inputDisabled$2 = "_inputDisabled_1p5u4_61";
51114
+ const hideScrollbars$2 = "_hideScrollbars_1p5u4_67";
51115
+ const wrapper = "_wrapper_1p5u4_85";
51116
+ const bordered = "_bordered_1p5u4_93";
51117
+ const scroll = "_scroll_1p5u4_98";
51118
+ const table = "_table_1p5u4_109";
51119
+ const dragOverlay = "_dragOverlay_1p5u4_145";
51120
+ const striped = "_striped_1p5u4_194";
50721
51121
  const styles$b = {
50722
51122
  inputInTable: inputInTable$2,
50723
51123
  inputHover: inputHover$2,
@@ -50823,36 +51223,6 @@ const hasActions = (rows) => rows.reduce(
50823
51223
  const hasRowActions = (rows, headers) => {
50824
51224
  return hasActions(headers) > 0 || hasActions(rows) > 0;
50825
51225
  };
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
51226
  const clickableRow = "_clickableRow_10f34_1";
50857
51227
  const hoverableRow = "_hoverableRow_10f34_4";
50858
51228
  const rowActive = "_rowActive_10f34_4";
@@ -51566,6 +51936,8 @@ const Row = ({
51566
51936
  hasRowActions: hasRowActions2,
51567
51937
  draggableTable = false,
51568
51938
  columnWidths,
51939
+ height: height2,
51940
+ translateY,
51569
51941
  testId
51570
51942
  //TODO: add testId
51571
51943
  }) => {
@@ -51622,7 +51994,9 @@ const Row = ({
51622
51994
  animateLayoutChanges: () => false
51623
51995
  });
51624
51996
  const style = {
51625
- transform: CSS.Translate.toString(transform),
51997
+ height: `${height2}px`,
51998
+ // Combine 1. offset from virtualized list + 2. drag and drop offset
51999
+ transform: `translateY(${(translateY ?? 0) + ((transform == null ? void 0 : transform.y) ?? 0)}px)`,
51626
52000
  transition,
51627
52001
  opacity: isDragging ? 0 : void 0
51628
52002
  };
@@ -51680,6 +52054,8 @@ const Row = ({
51680
52054
  ),
51681
52055
  "data-error": error2 || null,
51682
52056
  "data-warning": warning2 || null,
52057
+ "data-index": rowIndex,
52058
+ "data-even": rowIndex % 2 === 0,
51683
52059
  style,
51684
52060
  children: [
51685
52061
  draggableTable ? getDragItem() : null,
@@ -51771,6 +52147,27 @@ const TableDragWrapper = (props) => {
51771
52147
  }
51772
52148
  );
51773
52149
  };
52150
+ const TableScrollWrapper = ({
52151
+ table: table2,
52152
+ theadRef,
52153
+ children
52154
+ }) => {
52155
+ var _a2;
52156
+ if (!table2.infiniteScroll) {
52157
+ return /* @__PURE__ */ jsx("div", { id: "scrollWrapper", className: styles$b.scroll, children: /* @__PURE__ */ jsx("div", { className: styles$b.virtualRows, children: children({}) }) });
52158
+ }
52159
+ const containerRef = useRef(null);
52160
+ const MIN_ITEM_HEIGHT = 31;
52161
+ const virtualizer = useVirtualizer({
52162
+ count: table2.rows.length,
52163
+ getScrollElement: () => containerRef.current,
52164
+ estimateSize: () => MIN_ITEM_HEIGHT,
52165
+ overscan: 10
52166
+ });
52167
+ const theadHeight = ((_a2 = theadRef.current) == null ? void 0 : _a2.clientHeight) ?? 0;
52168
+ const totalHeight = virtualizer.getTotalSize() + theadHeight;
52169
+ return /* @__PURE__ */ jsx("div", { id: "scrollWrapper", className: styles$b.scroll, ref: containerRef, children: /* @__PURE__ */ jsx("div", { className: styles$b.virtualRows, style: { height: totalHeight }, children: children({ virtualizer }) }) });
52170
+ };
51774
52171
  const Table = (props) => {
51775
52172
  var _a2, _b, _c, _d, _e2, _f, _g;
51776
52173
  const { onListReorder = () => {
@@ -51793,6 +52190,7 @@ const Table = (props) => {
51793
52190
  maxHeight,
51794
52191
  fixedWidth: width2
51795
52192
  } = propTable;
52193
+ const theadRef = useRef(null);
51796
52194
  const tbodyRef = useRef(null);
51797
52195
  const headers = get$2(props, "table.headers", []);
51798
52196
  const columnCount = getColumnCount(propRows, headers);
@@ -51854,7 +52252,7 @@ const Table = (props) => {
51854
52252
  testId: testId && `${testId}-title`
51855
52253
  }
51856
52254
  ),
51857
- /* @__PURE__ */ jsx(TableScrollWrapper, { table: table2, children: ({ visibleRows }) => /* @__PURE__ */ jsx(
52255
+ /* @__PURE__ */ jsx(
51858
52256
  TableDragWrapper,
51859
52257
  {
51860
52258
  colSpan,
@@ -51865,34 +52263,60 @@ const Table = (props) => {
51865
52263
  rowActions,
51866
52264
  rows,
51867
52265
  tbodyRef,
51868
- children: /* @__PURE__ */ jsxs(
52266
+ children: /* @__PURE__ */ jsx(TableScrollWrapper, { table: table2, theadRef, children: ({ virtualizer }) => /* @__PURE__ */ jsxs(
51869
52267
  "table",
51870
52268
  {
51871
52269
  className: cx$2(styles$b.table, striped2 ? styles$b.striped : ""),
51872
52270
  "data-testid": testId,
51873
52271
  children: [
51874
- /* @__PURE__ */ jsx("thead", { children: headers.map((row2, rowIndex) => {
51875
- return /* @__PURE__ */ jsx(
51876
- Row,
51877
- {
51878
- rowIndex,
51879
- isHeader: true,
51880
- row: row2,
51881
- columnCount,
51882
- columnWidths,
51883
- colSpan,
51884
- hasRowActions: rowActions,
51885
- columnAlignment,
51886
- columnHeaderAlignments,
51887
- draggableTable: draggable
51888
- },
51889
- `0_${rowIndex}`
51890
- );
51891
- }) }),
51892
- /* @__PURE__ */ jsx("tbody", { ref: tbodyRef, children: rows.slice(0, visibleRows).map((row2, rowIndex) => /* @__PURE__ */ jsx(
52272
+ /* @__PURE__ */ jsx(
52273
+ "thead",
52274
+ {
52275
+ ref: theadRef,
52276
+ style: virtualizer ? {
52277
+ position: "relative",
52278
+ transition: "transform 0.2s",
52279
+ transform: `translateY(${!virtualizer.isScrolling ? virtualizer.scrollOffset : 0}px)`
52280
+ } : {},
52281
+ children: headers.map((row2, rowIndex) => {
52282
+ return /* @__PURE__ */ jsx(
52283
+ Row,
52284
+ {
52285
+ rowIndex,
52286
+ isHeader: true,
52287
+ row: row2,
52288
+ columnCount,
52289
+ columnWidths,
52290
+ colSpan,
52291
+ hasRowActions: rowActions,
52292
+ columnAlignment,
52293
+ columnHeaderAlignments,
52294
+ draggableTable: draggable
52295
+ },
52296
+ `0_${rowIndex}`
52297
+ );
52298
+ })
52299
+ }
52300
+ ),
52301
+ /* @__PURE__ */ jsx("tbody", { ref: tbodyRef, children: virtualizer ? virtualizer.getVirtualItems().map((virtualRow2, rowIndex) => /* @__PURE__ */ jsx(
51893
52302
  Row,
51894
52303
  {
51895
- rowIndex,
52304
+ rowIndex: virtualRow2.index,
52305
+ row: rows[virtualRow2.index],
52306
+ columnCount,
52307
+ columnWidths,
52308
+ colSpan,
52309
+ hasRowActions: rowActions,
52310
+ columnAlignment,
52311
+ draggableTable: draggable,
52312
+ height: virtualRow2.size,
52313
+ translateY: virtualRow2.start - rowIndex * virtualRow2.size
52314
+ },
52315
+ `1_${rowIndex}`
52316
+ )) : rows.map((row2, index2) => /* @__PURE__ */ jsx(
52317
+ Row,
52318
+ {
52319
+ rowIndex: index2,
51896
52320
  row: row2,
51897
52321
  columnCount,
51898
52322
  columnWidths,
@@ -51901,13 +52325,13 @@ const Table = (props) => {
51901
52325
  columnAlignment,
51902
52326
  draggableTable: draggable
51903
52327
  },
51904
- `1_${rowIndex}`
52328
+ `1_${index2}`
51905
52329
  )) })
51906
52330
  ]
51907
52331
  }
51908
- )
52332
+ ) })
51909
52333
  }
51910
- ) }),
52334
+ ),
51911
52335
  footer2 && /* @__PURE__ */ jsx(
51912
52336
  Footer,
51913
52337
  {
@@ -55020,7 +55444,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
55020
55444
  }
55021
55445
  let refCount = 0;
55022
55446
  const INSTANCE_SYM = Symbol.for("__REACT_DND_CONTEXT_INSTANCE__");
55023
- var DndProvider = /* @__PURE__ */ memo(function DndProvider2(_param) {
55447
+ var DndProvider = /* @__PURE__ */ memo$1(function DndProvider2(_param) {
55024
55448
  var { children } = _param, props = _objectWithoutProperties(_param, [
55025
55449
  "children"
55026
55450
  ]);
@@ -57381,7 +57805,7 @@ function useFeatures(props, visualElement2, preloadedFeatures) {
57381
57805
  var name_1 = featureNames[i];
57382
57806
  var _a2 = featureDefinitions[name_1], isEnabled = _a2.isEnabled, Component2 = _a2.Component;
57383
57807
  if (isEnabled(props) && Component2) {
57384
- features.push(React$4.createElement(Component2, __assign$4({ key: name_1 }, props, { visualElement: visualElement2 })));
57808
+ features.push(React$4.createElement(Component2, __assign$3({ key: name_1 }, props, { visualElement: visualElement2 })));
57385
57809
  }
57386
57810
  }
57387
57811
  return features;
@@ -57622,7 +58046,7 @@ function useProjection(projectionId, _a2, visualElement2, ProjectionNodeConstruc
57622
58046
  var VisualElementHandler = (
57623
58047
  /** @class */
57624
58048
  function(_super) {
57625
- __extends$1(VisualElementHandler2, _super);
58049
+ __extends(VisualElementHandler2, _super);
57626
58050
  function VisualElementHandler2() {
57627
58051
  return _super !== null && _super.apply(this, arguments) || this;
57628
58052
  }
@@ -57648,20 +58072,20 @@ function createMotionComponent(_a2) {
57648
58072
  preloadedFeatures && loadFeatures(preloadedFeatures);
57649
58073
  function MotionComponent(props, externalRef) {
57650
58074
  var layoutId = useLayoutId(props);
57651
- props = __assign$4(__assign$4({}, props), { layoutId });
58075
+ props = __assign$3(__assign$3({}, props), { layoutId });
57652
58076
  var config = useContext(MotionConfigContext);
57653
58077
  var features = null;
57654
58078
  var context2 = useCreateMotionContext(props);
57655
58079
  var projectionId = config.isStatic ? void 0 : useProjectionId();
57656
58080
  var visualState = useVisualState(props, config.isStatic);
57657
58081
  if (!config.isStatic && isBrowser) {
57658
- context2.visualElement = useVisualElement(Component2, visualState, __assign$4(__assign$4({}, config), props), createVisualElement);
58082
+ context2.visualElement = useVisualElement(Component2, visualState, __assign$3(__assign$3({}, config), props), createVisualElement);
57659
58083
  useProjection(projectionId, props, context2.visualElement, projectionNodeConstructor || featureDefinitions.projectionNodeConstructor);
57660
58084
  features = useFeatures(props, context2.visualElement, preloadedFeatures);
57661
58085
  }
57662
58086
  return React$4.createElement(
57663
58087
  VisualElementHandler,
57664
- { visualElement: context2.visualElement, props: __assign$4(__assign$4({}, config), props) },
58088
+ { visualElement: context2.visualElement, props: __assign$3(__assign$3({}, config), props) },
57665
58089
  features,
57666
58090
  React$4.createElement(MotionContext.Provider, { value: context2 }, useRender(Component2, props, projectionId, useMotionRef(visualState, context2.visualElement, externalRef), visualState, config.isStatic, context2.visualElement))
57667
58091
  );
@@ -57987,7 +58411,7 @@ const filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v
57987
58411
  const functions = v2.match(functionRegex);
57988
58412
  return functions ? functions.map(applyDefaultFilter).join(" ") : v2;
57989
58413
  } });
57990
- var int = __assign$4(__assign$4({}, number), { transform: Math.round });
58414
+ var int = __assign$3(__assign$3({}, number), { transform: Math.round });
57991
58415
  var numberValueTypes = {
57992
58416
  // Border props
57993
58417
  borderWidth: px,
@@ -58117,7 +58541,7 @@ function useInitialMotionValues(_a2, visualState, isStatic) {
58117
58541
  var state = createHtmlRenderState();
58118
58542
  buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);
58119
58543
  var vars = state.vars, style = state.style;
58120
- return __assign$4(__assign$4({}, vars), style);
58544
+ return __assign$3(__assign$3({}, vars), style);
58121
58545
  }, [visualState]);
58122
58546
  }
58123
58547
  function useStyle(props, visualState, isStatic) {
@@ -58275,18 +58699,18 @@ function buildSVGAttrs(state, _a2, options, transformTemplate) {
58275
58699
  }
58276
58700
  }
58277
58701
  var createSvgRenderState = function() {
58278
- return __assign$4(__assign$4({}, createHtmlRenderState()), { attrs: {} });
58702
+ return __assign$3(__assign$3({}, createHtmlRenderState()), { attrs: {} });
58279
58703
  };
58280
58704
  function useSVGProps(props, visualState) {
58281
58705
  var visualProps = useMemo(function() {
58282
58706
  var state = createSvgRenderState();
58283
58707
  buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);
58284
- return __assign$4(__assign$4({}, state.attrs), { style: __assign$4({}, state.style) });
58708
+ return __assign$3(__assign$3({}, state.attrs), { style: __assign$3({}, state.style) });
58285
58709
  }, [visualState]);
58286
58710
  if (props.style) {
58287
58711
  var rawStyles = {};
58288
58712
  copyRawValuesOnly(rawStyles, props.style, props);
58289
- visualProps.style = __assign$4(__assign$4({}, rawStyles), visualProps.style);
58713
+ visualProps.style = __assign$3(__assign$3({}, rawStyles), visualProps.style);
58290
58714
  }
58291
58715
  return visualProps;
58292
58716
  }
@@ -58299,7 +58723,7 @@ function createUseRender(forwardMotionProps) {
58299
58723
  var useVisualProps = isSVGComponent(Component2) ? useSVGProps : useHTMLProps;
58300
58724
  var visualProps = useVisualProps(props, latestValues, isStatic);
58301
58725
  var filteredProps = filterProps(props, typeof Component2 === "string", forwardMotionProps);
58302
- var elementProps = __assign$4(__assign$4(__assign$4({}, filteredProps), visualProps), { ref });
58726
+ var elementProps = __assign$3(__assign$3(__assign$3({}, filteredProps), visualProps), { ref });
58303
58727
  if (projectionId) {
58304
58728
  elementProps["data-projection-id"] = projectionId;
58305
58729
  }
@@ -58476,7 +58900,7 @@ var htmlMotionConfig = {
58476
58900
  function createDomMotionConfig(Component2, _a2, preloadedFeatures, createVisualElement, projectionNodeConstructor) {
58477
58901
  var _b = _a2.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;
58478
58902
  var baseConfig = isSVGComponent(Component2) ? svgMotionConfig : htmlMotionConfig;
58479
- return __assign$4(__assign$4({}, baseConfig), { preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement, projectionNodeConstructor, Component: Component2 });
58903
+ return __assign$3(__assign$3({}, baseConfig), { preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement, projectionNodeConstructor, Component: Component2 });
58480
58904
  }
58481
58905
  var AnimationType;
58482
58906
  (function(AnimationType2) {
@@ -59563,7 +59987,7 @@ function initIntersectionObserver(_a2) {
59563
59987
  var rootObservers = observers.get(lookupRoot);
59564
59988
  var key2 = JSON.stringify(options);
59565
59989
  if (!rootObservers[key2]) {
59566
- rootObservers[key2] = new IntersectionObserver(fireAllObserverCallbacks, __assign$4({ root: root2 }, options));
59990
+ rootObservers[key2] = new IntersectionObserver(fireAllObserverCallbacks, __assign$3({ root: root2 }, options));
59567
59991
  }
59568
59992
  return rootObservers[key2];
59569
59993
  }
@@ -59781,9 +60205,9 @@ var getDefaultTransition = function(valueKey, to2) {
59781
60205
  } else {
59782
60206
  transitionFactory = defaultTransitions[valueKey] || defaultTransitions.default;
59783
60207
  }
59784
- return __assign$4({ to: to2 }, transitionFactory(to2));
60208
+ return __assign$3({ to: to2 }, transitionFactory(to2));
59785
60209
  };
59786
- var defaultValueTypes = __assign$4(__assign$4({}, numberValueTypes), {
60210
+ var defaultValueTypes = __assign$3(__assign$3({}, numberValueTypes), {
59787
60211
  // Color props
59788
60212
  color,
59789
60213
  backgroundColor: color,
@@ -59825,7 +60249,7 @@ function isTransitionDefined(_a2) {
59825
60249
  var legacyRepeatWarning = false;
59826
60250
  function convertTransitionToAnimationOptions(_a2) {
59827
60251
  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);
60252
+ var options = __assign$3({}, transition);
59829
60253
  if (times)
59830
60254
  options["offset"] = times;
59831
60255
  if (transition.duration)
@@ -59872,9 +60296,9 @@ function getPopmotionAnimationOptions(transition, options, key2) {
59872
60296
  }
59873
60297
  hydrateKeyframes(options);
59874
60298
  if (!isTransitionDefined(transition)) {
59875
- transition = __assign$4(__assign$4({}, transition), getDefaultTransition(key2, options.to));
60299
+ transition = __assign$3(__assign$3({}, transition), getDefaultTransition(key2, options.to));
59876
60300
  }
59877
- return __assign$4(__assign$4({}, options), convertTransitionToAnimationOptions(transition));
60301
+ return __assign$3(__assign$3({}, options), convertTransitionToAnimationOptions(transition));
59878
60302
  }
59879
60303
  function getAnimation(key2, value, target, transition, onComplete) {
59880
60304
  var _a2;
@@ -59900,7 +60324,7 @@ function getAnimation(key2, value, target, transition, onComplete) {
59900
60324
  return value.set(v2);
59901
60325
  }
59902
60326
  };
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) {
60327
+ 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
60328
  var _a3;
59905
60329
  options.onUpdate(v2);
59906
60330
  (_a3 = valueTransition.onUpdate) === null || _a3 === void 0 ? void 0 : _a3.call(valueTransition, v2);
@@ -60153,7 +60577,7 @@ function setTarget(visualElement2, definition) {
60153
60577
  var _a2 = resolved ? visualElement2.makeTargetAnimatable(resolved, false) : {}, _b = _a2.transitionEnd, transitionEnd = _b === void 0 ? {} : _b;
60154
60578
  _a2.transition;
60155
60579
  var target = __rest$1(_a2, ["transitionEnd", "transition"]);
60156
- target = __assign$4(__assign$4({}, target), transitionEnd);
60580
+ target = __assign$3(__assign$3({}, target), transitionEnd);
60157
60581
  for (var key2 in target) {
60158
60582
  var value = resolveFinalValueInKeyframes(target[key2]);
60159
60583
  setMotionValue(visualElement2, key2, value);
@@ -60271,9 +60695,9 @@ function animateTarget(visualElement2, definition, _a2) {
60271
60695
  if (!value || valueTarget === void 0 || animationTypeState && shouldBlockAnimation(animationTypeState, key2)) {
60272
60696
  continue;
60273
60697
  }
60274
- var valueTransition = __assign$4({ delay }, transition);
60698
+ var valueTransition = __assign$3({ delay }, transition);
60275
60699
  if (visualElement2.shouldReduceMotion && isTransformProp(key2)) {
60276
- valueTransition = __assign$4(__assign$4({}, valueTransition), { type: false, delay: 0 });
60700
+ valueTransition = __assign$3(__assign$3({}, valueTransition), { type: false, delay: 0 });
60277
60701
  }
60278
60702
  var animation = startAnimation(key2, value, valueTarget, valueTransition);
60279
60703
  animations2.push(animation);
@@ -60306,7 +60730,7 @@ function animateChildren(visualElement2, variant, delayChildren, staggerChildren
60306
60730
  return maxStaggerDuration - i * staggerChildren;
60307
60731
  };
60308
60732
  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() {
60733
+ animations2.push(animateVariant(child, variant, __assign$3(__assign$3({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function() {
60310
60734
  return child.notifyAnimationComplete(variant);
60311
60735
  }));
60312
60736
  });
@@ -60350,7 +60774,7 @@ function createAnimationState(visualElement2) {
60350
60774
  if (resolved) {
60351
60775
  resolved.transition;
60352
60776
  var transitionEnd = resolved.transitionEnd, target = __rest$1(resolved, ["transition", "transitionEnd"]);
60353
- acc = __assign$4(__assign$4(__assign$4({}, acc), target), transitionEnd);
60777
+ acc = __assign$3(__assign$3(__assign$3({}, acc), target), transitionEnd);
60354
60778
  }
60355
60779
  return acc;
60356
60780
  };
@@ -60380,7 +60804,7 @@ function createAnimationState(visualElement2) {
60380
60804
  if (isInherited && isInitialRender && visualElement2.manuallyAnimateOnMount) {
60381
60805
  isInherited = false;
60382
60806
  }
60383
- typeState.protectedKeys = __assign$4({}, encounteredKeys);
60807
+ typeState.protectedKeys = __assign$3({}, encounteredKeys);
60384
60808
  if (
60385
60809
  // If it isn't active and hasn't *just* been set as inactive
60386
60810
  !typeState.isActive && activeDelta === null || // If we didn't and don't have any defined prop for this animation type
@@ -60398,7 +60822,7 @@ function createAnimationState(visualElement2) {
60398
60822
  if (activeDelta === false)
60399
60823
  resolvedValues = {};
60400
60824
  var _b = typeState.prevResolvedValues, prevResolvedValues = _b === void 0 ? {} : _b;
60401
- var allKeys = __assign$4(__assign$4({}, prevResolvedValues), resolvedValues);
60825
+ var allKeys = __assign$3(__assign$3({}, prevResolvedValues), resolvedValues);
60402
60826
  var markToAnimate = function(key3) {
60403
60827
  shouldAnimateType = true;
60404
60828
  removedKeys.delete(key3);
@@ -60430,7 +60854,7 @@ function createAnimationState(visualElement2) {
60430
60854
  typeState.prevProp = prop;
60431
60855
  typeState.prevResolvedValues = resolvedValues;
60432
60856
  if (typeState.isActive) {
60433
- encounteredKeys = __assign$4(__assign$4({}, encounteredKeys), resolvedValues);
60857
+ encounteredKeys = __assign$3(__assign$3({}, encounteredKeys), resolvedValues);
60434
60858
  }
60435
60859
  if (isInitialRender && visualElement2.blockInitialAnimation) {
60436
60860
  shouldAnimateType = false;
@@ -60439,7 +60863,7 @@ function createAnimationState(visualElement2) {
60439
60863
  animations2.push.apply(animations2, __spreadArray$2([], __read(definitionList.map(function(animation) {
60440
60864
  return {
60441
60865
  animation,
60442
- options: __assign$4({ type }, options)
60866
+ options: __assign$3({ type }, options)
60443
60867
  };
60444
60868
  })), false));
60445
60869
  }
@@ -60447,7 +60871,7 @@ function createAnimationState(visualElement2) {
60447
60871
  for (var i = 0; i < numAnimationTypes; i++) {
60448
60872
  _loop_1(i);
60449
60873
  }
60450
- allAnimatedKeys = __assign$4({}, encounteredKeys);
60874
+ allAnimatedKeys = __assign$3({}, encounteredKeys);
60451
60875
  if (removedKeys.size) {
60452
60876
  var fallbackAnimation_1 = {};
60453
60877
  removedKeys.forEach(function(key2) {
@@ -60555,7 +60979,7 @@ var PanSession = (
60555
60979
  return;
60556
60980
  var point2 = info3.point;
60557
60981
  var timestamp2 = getFrameData().timestamp;
60558
- _this.history.push(__assign$4(__assign$4({}, point2), { timestamp: timestamp2 }));
60982
+ _this.history.push(__assign$3(__assign$3({}, point2), { timestamp: timestamp2 }));
60559
60983
  var _a3 = _this.handlers, onStart = _a3.onStart, onMove = _a3.onMove;
60560
60984
  if (!isPanStarted) {
60561
60985
  onStart && onStart(_this.lastMoveEvent, info3);
@@ -60589,7 +61013,7 @@ var PanSession = (
60589
61013
  var initialInfo = transformPoint(info2, this.transformPagePoint);
60590
61014
  var point = initialInfo.point;
60591
61015
  var timestamp = getFrameData().timestamp;
60592
- this.history = [__assign$4(__assign$4({}, point), { timestamp })];
61016
+ this.history = [__assign$3(__assign$3({}, point), { timestamp })];
60593
61017
  var onSessionStart = handlers2.onSessionStart;
60594
61018
  onSessionStart && onSessionStart(event, getPanInfo(initialInfo, this.history));
60595
61019
  this.removeListeners = pipe(addPointerEvent(window, "pointermove", this.handlePointerMove), addPointerEvent(window, "pointerup", this.handlePointerUp), addPointerEvent(window, "pointercancel", this.handlePointerUp));
@@ -61110,7 +61534,7 @@ var VisualElementDragControls = (
61110
61534
  transition = { min: 0, max: 0 };
61111
61535
  var bounceStiffness = dragElastic ? 200 : 1e6;
61112
61536
  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);
61537
+ var inertia2 = __assign$3(__assign$3({ type: "inertia", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness, bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);
61114
61538
  return _this.startAxisValueAnimation(axis, inertia2);
61115
61539
  });
61116
61540
  return Promise.all(momentumAnimations).then(onDragTransitionEnd);
@@ -61221,7 +61645,7 @@ var VisualElementDragControls = (
61221
61645
  VisualElementDragControls2.prototype.getProps = function() {
61222
61646
  var props = this.visualElement.getProps();
61223
61647
  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 });
61648
+ return __assign$3(__assign$3({}, props), { drag: drag2, dragDirectionLock, dragPropagation, dragConstraints, dragElastic, dragMomentum });
61225
61649
  };
61226
61650
  return VisualElementDragControls2;
61227
61651
  }()
@@ -61378,7 +61802,7 @@ var visualElement = function(_a2) {
61378
61802
  var values2 = /* @__PURE__ */ new Map();
61379
61803
  var valueSubscriptions = /* @__PURE__ */ new Map();
61380
61804
  var prevMotionValues = {};
61381
- var baseTarget = __assign$4({}, latestValues);
61805
+ var baseTarget = __assign$3({}, latestValues);
61382
61806
  var removeFromVariantTree;
61383
61807
  function render2() {
61384
61808
  if (!instance || !isMounted)
@@ -61412,7 +61836,7 @@ var visualElement = function(_a2) {
61412
61836
  }
61413
61837
  var isControllingVariants = checkIfControllingVariants(props);
61414
61838
  var isVariantNode = checkIfVariantNode(props);
61415
- var element = __assign$4(__assign$4({
61839
+ var element = __assign$3(__assign$3({
61416
61840
  treeType,
61417
61841
  /**
61418
61842
  * This is a mirror of the internal instance prop, which keeps
@@ -61777,7 +62201,7 @@ function resolveCSSVariables(visualElement2, _a2, transitionEnd) {
61777
62201
  if (!(element instanceof Element))
61778
62202
  return { target, transitionEnd };
61779
62203
  if (transitionEnd) {
61780
- transitionEnd = __assign$4({}, transitionEnd);
62204
+ transitionEnd = __assign$3({}, transitionEnd);
61781
62205
  }
61782
62206
  visualElement2.forEachValue(function(value) {
61783
62207
  var current2 = value.get();
@@ -61932,8 +62356,8 @@ var checkAndConvertChangedValueTypes = function(visualElement2, target, origin,
61932
62356
  if (transitionEnd === void 0) {
61933
62357
  transitionEnd = {};
61934
62358
  }
61935
- target = __assign$4({}, target);
61936
- transitionEnd = __assign$4({}, transitionEnd);
62359
+ target = __assign$3({}, target);
62360
+ transitionEnd = __assign$3({}, transitionEnd);
61937
62361
  var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);
61938
62362
  var removedTransformValues = [];
61939
62363
  var hasAttemptedToRemoveTransformValues = false;
@@ -62086,7 +62510,7 @@ var htmlConfig = {
62086
62510
  transitionEnd = parsed.transitionEnd;
62087
62511
  target = parsed.target;
62088
62512
  }
62089
- return __assign$4({ transition, transitionEnd }, target);
62513
+ return __assign$3({ transition, transitionEnd }, target);
62090
62514
  },
62091
62515
  scrapeMotionValuesFromProps: scrapeMotionValuesFromProps$1,
62092
62516
  build: function(element, renderState, latestValues, options, props) {
@@ -62098,7 +62522,7 @@ var htmlConfig = {
62098
62522
  render: renderHTML
62099
62523
  };
62100
62524
  var htmlVisualElement = visualElement(htmlConfig);
62101
- var svgVisualElement = visualElement(__assign$4(__assign$4({}, htmlConfig), { getBaseTarget: function(props, key2) {
62525
+ var svgVisualElement = visualElement(__assign$3(__assign$3({}, htmlConfig), { getBaseTarget: function(props, key2) {
62102
62526
  return props[key2];
62103
62527
  }, readValueFromInstance: function(domElement, key2) {
62104
62528
  var _a2;
@@ -62176,7 +62600,7 @@ var correctBoxShadow = {
62176
62600
  var MeasureLayoutWithContext = (
62177
62601
  /** @class */
62178
62602
  function(_super) {
62179
- __extends$1(MeasureLayoutWithContext2, _super);
62603
+ __extends(MeasureLayoutWithContext2, _super);
62180
62604
  function MeasureLayoutWithContext2() {
62181
62605
  return _super !== null && _super.apply(this, arguments) || this;
62182
62606
  }
@@ -62195,7 +62619,7 @@ var MeasureLayoutWithContext = (
62195
62619
  projection.addEventListener("animationComplete", function() {
62196
62620
  _this.safeToRemove();
62197
62621
  });
62198
- projection.setOptions(__assign$4(__assign$4({}, projection.options), { onExitComplete: function() {
62622
+ projection.setOptions(__assign$3(__assign$3({}, projection.options), { onExitComplete: function() {
62199
62623
  return _this.safeToRemove();
62200
62624
  } }));
62201
62625
  }
@@ -62260,10 +62684,10 @@ var MeasureLayoutWithContext = (
62260
62684
  function MeasureLayout(props) {
62261
62685
  var _a2 = __read(usePresence(), 2), isPresent = _a2[0], safeToRemove = _a2[1];
62262
62686
  var layoutGroup = useContext(LayoutGroupContext);
62263
- return React__default.createElement(MeasureLayoutWithContext, __assign$4({}, props, { layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent, safeToRemove }));
62687
+ return React__default.createElement(MeasureLayoutWithContext, __assign$3({}, props, { layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent, safeToRemove }));
62264
62688
  }
62265
62689
  var defaultScaleCorrectors = {
62266
- borderRadius: __assign$4(__assign$4({}, correctBorderRadius), { applyTo: [
62690
+ borderRadius: __assign$3(__assign$3({}, correctBorderRadius), { applyTo: [
62267
62691
  "borderTopLeftRadius",
62268
62692
  "borderTopRightRadius",
62269
62693
  "borderBottomLeftRadius",
@@ -62686,7 +63110,7 @@ function createProjectionNode(_a2) {
62686
63110
  _this.resumingFrom.resumingFrom = void 0;
62687
63111
  }
62688
63112
  _this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);
62689
- var animationOptions = __assign$4(__assign$4({}, getValueTransition(layoutTransition, "layout")), { onPlay: onLayoutAnimationStart, onComplete: onLayoutAnimationComplete });
63113
+ var animationOptions = __assign$3(__assign$3({}, getValueTransition(layoutTransition, "layout")), { onPlay: onLayoutAnimationStart, onComplete: onLayoutAnimationComplete });
62690
63114
  if (visualElement2.shouldReduceMotion) {
62691
63115
  animationOptions.delay = 0;
62692
63116
  animationOptions.type = false;
@@ -62940,7 +63364,7 @@ function createProjectionNode(_a2) {
62940
63364
  };
62941
63365
  ProjectionNode.prototype.setOptions = function(options) {
62942
63366
  var _a3;
62943
- this.options = __assign$4(__assign$4(__assign$4({}, this.options), options), { crossfade: (_a3 = options.crossfade) !== null && _a3 !== void 0 ? _a3 : true });
63367
+ this.options = __assign$3(__assign$3(__assign$3({}, this.options), options), { crossfade: (_a3 = options.crossfade) !== null && _a3 !== void 0 ? _a3 : true });
62944
63368
  };
62945
63369
  ProjectionNode.prototype.clearMeasurements = function() {
62946
63370
  this.scroll = void 0;
@@ -63058,7 +63482,7 @@ function createProjectionNode(_a2) {
63058
63482
  }
63059
63483
  var snapshot = this.snapshot;
63060
63484
  var snapshotLatestValues = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.latestValues) || {};
63061
- var mixedValues = __assign$4({}, this.latestValues);
63485
+ var mixedValues = __assign$3({}, this.latestValues);
63062
63486
  var targetDelta = createDelta();
63063
63487
  this.relativeTarget = this.relativeTargetOrigin = void 0;
63064
63488
  this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;
@@ -63101,7 +63525,7 @@ function createProjectionNode(_a2) {
63101
63525
  }
63102
63526
  this.pendingAnimation = sync.update(function() {
63103
63527
  globalProjectionState.hasAnimatedSinceResize = true;
63104
- _this.currentAnimation = animate(0, animationTarget, __assign$4(__assign$4({}, options), { onUpdate: function(latest) {
63528
+ _this.currentAnimation = animate(0, animationTarget, __assign$3(__assign$3({}, options), { onUpdate: function(latest) {
63105
63529
  var _a4;
63106
63530
  _this.mixTargetDelta(latest);
63107
63531
  (_a4 = options.onUpdate) === null || _a4 === void 0 ? void 0 : _a4.call(options, latest);
@@ -63469,7 +63893,7 @@ var HTMLProjectionNode = createProjectionNode({
63469
63893
  return Boolean(window.getComputedStyle(instance).position === "fixed");
63470
63894
  }
63471
63895
  });
63472
- var featureBundle = __assign$4(__assign$4(__assign$4(__assign$4({}, animations), gestureAnimations), drag), layoutFeatures);
63896
+ var featureBundle = __assign$3(__assign$3(__assign$3(__assign$3({}, animations), gestureAnimations), drag), layoutFeatures);
63473
63897
  var motion = /* @__PURE__ */ createMotionProxy(function(Component2, config) {
63474
63898
  return createDomMotionConfig(Component2, config, featureBundle, createDomVisualElement, HTMLProjectionNode);
63475
63899
  });