@oliasoft-open-source/react-ui-library 4.17.0-beta-3 → 4.17.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,12 +11,12 @@ 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, memo as memo$1, 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, Component as Component$1, memo, 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, 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
- 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";
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";
19
+ import { toString as toString$1, isScientificStringNum, roundToPrecision, toNum, validateNumber, cleanNumStr, stripLeadingZeros, roundToFixed, roundByMagnitude, unitFromQuantity, getUnit, KNOWN_UNITS, ALT_UNITS, isValueWithUnit, getValue, withUnit, convertSamePrecision, convertAndGetValue, split as split$1, label as label$b, isValidNum, getAltUnitsListByQuantity, altUnitsList, withPrettyUnitLabel, getUnitsForQuantity, roundByMagnitudeToFixed } from "@oliasoft-open-source/units";
20
20
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
21
21
  function getDefaultExportFromCjs(x2) {
22
22
  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : 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 = function(d2, b2) {
226
- extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b3) {
225
+ var extendStatics$1 = function(d2, b2) {
226
+ extendStatics$1 = 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(d2, b2);
231
+ return extendStatics$1(d2, b2);
232
232
  };
233
- function __extends(d2, b2) {
233
+ function __extends$1(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(d2, b2);
236
+ extendStatics$1(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$3 = function() {
243
- __assign$3 = Object.assign || function __assign2(t) {
242
+ var __assign$4 = function() {
243
+ __assign$4 = 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$3.apply(this, arguments);
250
+ return __assign$4.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$2 = function() {
887
- __assign$2 = Object.assign || function(t) {
886
+ var __assign$3 = function() {
887
+ __assign$3 = 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$2.apply(this, arguments);
894
+ return __assign$3.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$2({
906
+ return React__default.createElement(node2.tag, __assign$3({
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$2({
914
- attr: __assign$2({}, data.attr)
913
+ return React__default.createElement(IconBase, __assign$3({
914
+ attr: __assign$3({}, 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$2({
925
+ return React__default.createElement("svg", __assign$3({
926
926
  stroke: "currentColor",
927
927
  fill: "currentColor",
928
928
  strokeWidth: "0"
929
929
  }, conf.attr, attr, svgProps, {
930
930
  className,
931
- style: __assign$2(__assign$2({
931
+ style: __assign$3(__assign$3({
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$1(callback, delay) {
1811
+ function throttle$2(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$1(this.refresh.bind(this), REFRESH_DELAY);
1853
+ this.refresh = throttle$2(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$6 = typeof window !== "undefined" ? useLayoutEffect$1 : useEffect;
2357
+ var useIsomorphicLayoutEffect$5 = 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$6(function() {
2605
+ useIsomorphicLayoutEffect$5(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$6(function() {
2615
+ useIsomorphicLayoutEffect$5(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$6(function() {
2627
+ useIsomorphicLayoutEffect$5(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$1 = function() {
5312
- __assign$1 = Object.assign || function __assign2(t) {
5311
+ var __assign$2 = function() {
5312
+ __assign$2 = 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$1.apply(this, arguments);
5319
+ return __assign$2.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$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() {
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() {
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$1(__assign$1({}, this.options), n2), this.gs, o && this.names || void 0);
6175
+ return void 0 === o && (o = true), new e2(__assign$2(__assign$2({}, 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$1(__assign$1({}, n2), { className: void 0, theme: o }), i3 = 0; i3 < e5.length; i3 += 1) {
6348
+ for (var r5, s3 = __assign$2(__assign$2({}, 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$1(__assign$1({}, 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$2(__assign$2({}, 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$1(__assign$1({}, r2), { attrs: Array.prototype.concat(r2.attrs, e2).filter(Boolean) }));
6406
+ return ut(n2, o, __assign$2(__assign$2({}, r2), { attrs: Array.prototype.concat(r2.attrs, e2).filter(Boolean) }));
6407
6407
  }, s.withConfig = function(e2) {
6408
- return ut(n2, o, __assign$1(__assign$1({}, r2), e2));
6408
+ return ut(n2, o, __assign$2(__assign$2({}, r2), e2));
6409
6409
  }, s;
6410
6410
  }
6411
6411
  var pt$1 = function(e2) {
@@ -9501,803 +9501,383 @@ 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
- 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;
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];
9545
9523
  };
9546
- }
9547
- function notUndefined(value, msg2) {
9548
- if (value === void 0) {
9549
- throw new Error(`Unexpected undefined${""}`);
9550
- } else {
9551
- return value;
9524
+ return extendStatics(d2, b2);
9525
+ };
9526
+ function __extends(d2, b2) {
9527
+ extendStatics(d2, b2);
9528
+ function __() {
9529
+ this.constructor = d2;
9552
9530
  }
9531
+ d2.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
9553
9532
  }
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);
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;
9560
9540
  };
9541
+ return __assign$1.apply(this, arguments);
9561
9542
  };
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);
9569
- }
9570
- return arr;
9571
- };
9572
- const observeElementRect = (instance, cb2) => {
9573
- const element = instance.scrollElement;
9574
- if (!element) {
9575
- return;
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
+ }
9576
9551
  }
9577
- const targetWindow = instance.targetWindow;
9578
- if (!targetWindow) {
9579
- return;
9552
+ function cancel() {
9553
+ clearExistingTimeout();
9554
+ cancelled = true;
9580
9555
  }
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
- };
9556
+ if (typeof noTrailing !== "boolean") {
9557
+ debounceMode = callback;
9558
+ callback = noTrailing;
9559
+ noTrailing = void 0;
9589
9560
  }
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
- }
9561
+ function wrapper2() {
9562
+ var self2 = this;
9563
+ var elapsed = Date.now() - lastExec;
9564
+ var args = arguments;
9565
+ if (cancelled) {
9566
+ return;
9598
9567
  }
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;
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();
9577
+ }
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);
9651
9583
  }
9652
9584
  }
9653
- return Math.round(
9654
- element.getBoundingClientRect()[instance.options.horizontal ? "width" : "height"]
9655
- );
9585
+ wrapper2.cancel = cancel;
9586
+ return wrapper2;
9587
+ }
9588
+ var ThresholdUnits = {
9589
+ Pixel: "Pixel",
9590
+ Percent: "Percent"
9656
9591
  };
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
- });
9592
+ var defaultThreshold$1 = {
9593
+ unit: ThresholdUnits.Percent,
9594
+ value: 0.8
9667
9595
  };
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
- });
9697
- };
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$/)) {
9698
9605
  return {
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);
9711
- }
9606
+ unit: ThresholdUnits.Pixel,
9607
+ value: parseFloat(scrollThreshold)
9712
9608
  };
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
9609
+ }
9610
+ if (scrollThreshold.match(/^(\d*(\.\d+)?)%$/)) {
9611
+ return {
9612
+ unit: ThresholdUnits.Percent,
9613
+ value: parseFloat(scrollThreshold)
9744
9614
  };
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();
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 ");
9642
+ }
9643
+ return null;
9782
9644
  };
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();
9645
+ _this.onStart = function(evt) {
9646
+ if (_this.lastScrollTop)
9791
9647
  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;
9792
9653
  }
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;
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)";
9798
9658
  }
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;
9846
- }
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);
9854
- }
9855
- if (furthestMeasurementsFound.size === this.options.lanes) {
9856
- break;
9857
- }
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;
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;
9862
9667
  }
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);
9668
+ if (_this.currentY < _this.startY)
9669
+ return;
9670
+ if (_this.currentY - _this.startY >= Number(_this.props.pullDownToRefreshThreshold)) {
9671
+ _this.setState({
9672
+ pullToRefreshThresholdBreached: true
9900
9673
  });
9901
9674
  }
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
- };
9921
- }
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);
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)";
9986
9680
  }
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));
9992
- }
9993
- };
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
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
10009
9690
  });
10010
9691
  }
10011
- this.pendingMeasuredCacheIndexes.push(item2.index);
10012
- this.itemSizeCache = new Map(this.itemSizeCache.set(item2.key, size2));
10013
- this.notify(false);
10014
- }
10015
- };
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);
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";
10022
9697
  }
10023
9698
  });
10024
- return;
10025
- }
10026
- this._measureElement(node2, void 0);
10027
- };
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
10042
- }
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
- );
10057
- };
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";
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);
9705
+ }
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();
9714
+ }
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'`);
10068
9753
  }
10069
9754
  }
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;
10076
- }
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);
10081
9755
  };
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;
10087
- }
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];
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);
10097
9766
  }
10098
9767
  }
10099
- const toOffset = align === "end" ? item2.end + this.options.scrollPaddingEnd : item2.start - this.options.scrollPaddingStart;
10100
- return [this.getOffsetForAlignment(toOffset, align), align];
10101
9768
  };
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
- }
9769
+ InfiniteScroll2.prototype.componentDidUpdate = function(prevProps) {
9770
+ if (this.props.dataLength === prevProps.dataLength)
9771
+ return;
9772
+ this.actionTriggered = false;
9773
+ this.setState({
9774
+ showLoader: false
9775
+ });
10108
9776
  };
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
- );
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 });
10115
9781
  }
10116
- this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {
10117
- adjustments: void 0,
10118
- behavior
10119
- });
9782
+ return null;
10120
9783
  };
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
- );
9784
+ InfiniteScroll2.prototype.isElementAtTop = function(target, scrollThreshold) {
9785
+ if (scrollThreshold === void 0) {
9786
+ scrollThreshold = 0.8;
10128
9787
  }
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
- });
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;
10150
9792
  }
9793
+ return target.scrollTop <= threshold.value / 100 + clientHeight - target.scrollHeight + 1;
10151
9794
  };
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
- );
9795
+ InfiniteScroll2.prototype.isElementAtBottom = function(target, scrollThreshold) {
9796
+ if (scrollThreshold === void 0) {
9797
+ scrollThreshold = 0.8;
10158
9798
  }
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
- );
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;
10174
9803
  }
10175
- return Math.max(
10176
- end - this.options.scrollMargin + this.options.paddingEnd,
10177
- 0
10178
- );
10179
- };
10180
- this._scrollToOffset = (offset, {
10181
- adjustments,
10182
- behavior
10183
- }) => {
10184
- this.options.scrollToFn(offset, { behavior, adjustments }, this);
9804
+ return target.scrollTop + clientHeight >= threshold.value / 100 * target.scrollHeight;
10185
9805
  };
10186
- this.measure = () => {
10187
- this.itemSizeCache = /* @__PURE__ */ new Map();
10188
- this.notify(false);
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
+ )
9836
+ );
10189
9837
  };
10190
- this.setOptions(opts);
10191
- }
10192
- }
10193
- const findNearestBinarySearch = (low, high, getCurrentValue, value) => {
10194
- while (low <= high) {
10195
- const middle = (low + high) / 2 | 0;
10196
- const currentValue = getCurrentValue(middle);
10197
- if (currentValue < value) {
10198
- low = middle + 1;
10199
- } else if (currentValue > value) {
10200
- high = middle - 1;
10201
- } else {
10202
- return middle;
10203
- }
10204
- }
10205
- if (low > 0) {
10206
- return low - 1;
10207
- } else {
10208
- return 0;
10209
- }
10210
- };
10211
- function calculateRange({
10212
- measurements,
10213
- outerSize,
10214
- scrollOffset
10215
- }) {
10216
- const count = measurements.length - 1;
10217
- const getOffset2 = (index2) => measurements[index2].start;
10218
- const startIndex = findNearestBinarySearch(0, count, getOffset2, scrollOffset);
10219
- let endIndex = startIndex;
10220
- while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {
10221
- endIndex++;
10222
- }
10223
- return { startIndex, endIndex };
10224
- }
10225
- const useIsomorphicLayoutEffect$5 = typeof document !== "undefined" ? React$4.useLayoutEffect : React$4.useEffect;
10226
- function useVirtualizerBase(options) {
10227
- const rerender = React$4.useReducer(() => ({}), {})[1];
10228
- const resolvedOptions = {
10229
- ...options,
10230
- onChange: (instance2, sync2) => {
10231
- var _a2;
10232
- if (sync2) {
10233
- flushSync$1(rerender);
10234
- } else {
10235
- rerender();
10236
- }
10237
- (_a2 = options.onChange) == null ? void 0 : _a2.call(options, instance2, sync2);
10238
- }
10239
- };
10240
- const [instance] = React$4.useState(
10241
- () => new Virtualizer(resolvedOptions)
10242
- );
10243
- instance.setOptions(resolvedOptions);
10244
- React$4.useEffect(() => {
10245
- return instance._didMount();
10246
- }, []);
10247
- useIsomorphicLayoutEffect$5(() => {
10248
- return instance._willUpdate();
10249
- });
10250
- return instance;
10251
- }
10252
- function useVirtualizer(options) {
10253
- return useVirtualizerBase({
10254
- observeElementRect,
10255
- observeElementOffset,
10256
- scrollToFn: elementScroll,
10257
- ...options
10258
- });
10259
- }
10260
- const inputInTable$8 = "_inputInTable_snjei_1";
10261
- const inputHover$8 = "_inputHover_snjei_13";
10262
- const inputFocus$8 = "_inputFocus_snjei_18";
10263
- const inputError$8 = "_inputError_snjei_25";
10264
- const inputWarning$8 = "_inputWarning_snjei_26";
10265
- const inputDisabled$8 = "_inputDisabled_snjei_61";
10266
- const hideScrollbars$8 = "_hideScrollbars_snjei_67";
10267
- const list$1 = "_list_snjei_77";
10268
- const bordered$1 = "_bordered_snjei_83";
10269
- const virtualRow = "_virtualRow_snjei_87";
10270
- const item$4 = "_item_snjei_87";
10271
- const header$1 = "_header_snjei_90";
10272
- const headerTitle = "_headerTitle_snjei_90";
10273
- const heading$3 = "_heading_snjei_91";
10274
- const itemHeader = "_itemHeader_snjei_91";
10275
- const narrow = "_narrow_snjei_94";
10276
- const stickyHeader = "_stickyHeader_snjei_98";
10277
- const title$3 = "_title_snjei_109";
10278
- const name = "_name_snjei_115";
10279
- const iconTooltipMargin = "_iconTooltipMargin_snjei_118";
10280
- const bold = "_bold_snjei_121";
10281
- const toggleNarrow = "_toggleNarrow_snjei_132";
10282
- const drag$1 = "_drag_snjei_150";
10283
- const dragOverlay$1 = "_dragOverlay_snjei_171";
10284
- const listContent = "_listContent_snjei_176";
10285
- const action = "_action_snjei_203";
10286
- const active$3 = "_active_snjei_206";
10287
- const indented = "_indented_snjei_213";
10288
- const disabled$5 = "_disabled_snjei_226";
10289
- const label$6 = "_label_snjei_237";
10290
- const details$2 = "_details_snjei_248";
10291
- const metadata = "_metadata_snjei_249";
10292
- const itemContent = "_itemContent_snjei_257";
10293
- const indentIcon = "_indentIcon_snjei_264";
10294
- const expandIcon = "_expandIcon_snjei_269";
10295
- const expanded = "_expanded_snjei_276";
10296
- const right$4 = "_right_snjei_279";
10297
- const actions = "_actions_snjei_287";
10298
- const hideScrollbar = "_hideScrollbar_snjei_67";
10299
- const noPointerEvents = "_noPointerEvents_snjei_302";
10300
- const virtualRows = "_virtualRows_snjei_305";
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";
10301
9881
  const listStyles = {
10302
9882
  inputInTable: inputInTable$8,
10303
9883
  inputHover: inputHover$8,
@@ -10306,10 +9886,6 @@ const listStyles = {
10306
9886
  inputWarning: inputWarning$8,
10307
9887
  inputDisabled: inputDisabled$8,
10308
9888
  hideScrollbars: hideScrollbars$8,
10309
- list: list$1,
10310
- bordered: bordered$1,
10311
- virtualRow,
10312
- item: item$4,
10313
9889
  header: header$1,
10314
9890
  headerTitle,
10315
9891
  heading: heading$3,
@@ -10323,7 +9899,9 @@ const listStyles = {
10323
9899
  toggleNarrow,
10324
9900
  drag: drag$1,
10325
9901
  dragOverlay: dragOverlay$1,
10326
- listContent,
9902
+ list: list$1,
9903
+ bordered: bordered$1,
9904
+ item: item$4,
10327
9905
  action,
10328
9906
  active: active$3,
10329
9907
  indented,
@@ -10337,9 +9915,10 @@ const listStyles = {
10337
9915
  expanded,
10338
9916
  right: right$4,
10339
9917
  actions,
9918
+ scrollableList,
9919
+ infiniteScrollContainer,
10340
9920
  hideScrollbar,
10341
- noPointerEvents,
10342
- virtualRows
9921
+ noPointerEvents
10343
9922
  };
10344
9923
  const ToggleNarrow = ({
10345
9924
  toggleNarrow: toggleNarrow2,
@@ -10564,9 +10143,9 @@ function isTouchEvent$2(event) {
10564
10143
  return false;
10565
10144
  }
10566
10145
  const {
10567
- TouchEvent
10146
+ TouchEvent: TouchEvent2
10568
10147
  } = getWindow(event.target);
10569
- return TouchEvent && event instanceof TouchEvent;
10148
+ return TouchEvent2 && event instanceof TouchEvent2;
10570
10149
  }
10571
10150
  function getEventCoordinates(event) {
10572
10151
  if (isTouchEvent$2(event)) {
@@ -12984,7 +12563,7 @@ var Status;
12984
12563
  Status2[Status2["Initializing"] = 1] = "Initializing";
12985
12564
  Status2[Status2["Initialized"] = 2] = "Initialized";
12986
12565
  })(Status || (Status = {}));
12987
- const DndContext$1 = /* @__PURE__ */ memo$1(function DndContext(_ref) {
12566
+ const DndContext$1 = /* @__PURE__ */ memo(function DndContext(_ref) {
12988
12567
  var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;
12989
12568
  let {
12990
12569
  id: id2,
@@ -14622,6 +14201,72 @@ const ListRow = forwardRef(
14622
14201
  return isSubheading ? /* @__PURE__ */ jsx(ListSubheading, { ref: listRowRefs, item: item2, index: index2 }, index2) : draggable ? listElementWithDrag(index2, item2) : listElement(index2, item2);
14623
14202
  }
14624
14203
  );
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
+ };
14625
14270
  const ListDragWrapper = ({
14626
14271
  children,
14627
14272
  draggable,
@@ -14636,14 +14281,15 @@ const ListDragWrapper = ({
14636
14281
  setDragIndex(event.active.id);
14637
14282
  };
14638
14283
  const handleDragEnd = (event) => {
14284
+ var _a2, _b, _c, _d, _e2, _f, _g, _h;
14639
14285
  setDragIndex(null);
14640
14286
  const { active: active2, over } = event;
14641
- const from3 = active2 == null ? void 0 : active2.id;
14642
- const to2 = over == null ? void 0 : over.id;
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;
14643
14289
  if (from3 !== to2) {
14644
14290
  onListReorder({
14645
- from: Number(from3),
14646
- to: Number(to2)
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
14647
14293
  });
14648
14294
  }
14649
14295
  };
@@ -14692,26 +14338,58 @@ const List = ({
14692
14338
  height: height2,
14693
14339
  testId,
14694
14340
  scrollDetails = {
14341
+ scrollable: false,
14695
14342
  hideScrollbar: false,
14696
- triggerScrollToActiveItem: false
14343
+ triggerScrollToActiveItem: false,
14344
+ infiniteScroll: false,
14345
+ limit: 10,
14346
+ infiniteScrollTarget: void 0
14697
14347
  }
14698
14348
  }) => {
14699
- const { hideScrollbar: hideScrollbar2, triggerScrollToActiveItem } = scrollDetails;
14349
+ const {
14350
+ scrollable,
14351
+ hideScrollbar: hideScrollbar2,
14352
+ triggerScrollToActiveItem,
14353
+ infiniteScroll,
14354
+ infiniteScrollTarget
14355
+ } = scrollDetails;
14356
+ const listHeadingRef = useRef(null);
14357
+ const listRowRefs = useRef([]);
14700
14358
  const listContainerRef = useRef(null);
14701
- const MIN_ITEM_HEIGHT = 37;
14702
- const virtualizer = useVirtualizer({
14703
- count: list2.items.length,
14704
- getScrollElement: () => listContainerRef.current,
14705
- estimateSize: () => MIN_ITEM_HEIGHT,
14706
- overscan: 5
14707
- });
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
+ };
14708
14374
  const findFirstActiveItemIndex = (items) => items.findIndex((item2) => item2.active === true);
14709
14375
  const setScrollToActiveItem = (activeItemIndex) => {
14710
- if (activeItemIndex >= 0) {
14711
- virtualizer.scrollToIndex(activeItemIndex, {
14712
- align: "center",
14713
- behavior: "smooth"
14714
- });
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;
14715
14393
  }
14716
14394
  };
14717
14395
  useEffect(() => {
@@ -14719,18 +14397,24 @@ const List = ({
14719
14397
  const activeItemIndex = findFirstActiveItemIndex(list2 == null ? void 0 : list2.items);
14720
14398
  setScrollToActiveItem(activeItemIndex);
14721
14399
  }
14722
- }, [triggerScrollToActiveItem]);
14723
- return /* @__PURE__ */ jsxs(
14400
+ }, [
14401
+ listContainerRef.current,
14402
+ listHeadingRef.current,
14403
+ triggerScrollToActiveItem
14404
+ ]);
14405
+ return /* @__PURE__ */ jsx(
14724
14406
  "div",
14725
14407
  {
14726
14408
  className: cx$2(
14727
- listStyles.list,
14728
14409
  narrow2 ? listStyles.narrow : "",
14729
- bordered2 ? listStyles.bordered : ""
14410
+ scrollable ? listStyles.scrollableList : "",
14411
+ hideScrollbar2 ? listStyles.hideScrollbar : ""
14730
14412
  ),
14731
14413
  "data-testid": testId,
14414
+ id: "scrollableDiv",
14732
14415
  style: { height: height2, marginBottom },
14733
- children: [
14416
+ ref: listContainerRef,
14417
+ children: /* @__PURE__ */ jsxs(Card, { bordered: bordered2, padding: false, children: [
14734
14418
  !noHeader && /* @__PURE__ */ jsx(
14735
14419
  ListHeading,
14736
14420
  {
@@ -14738,123 +14422,53 @@ const List = ({
14738
14422
  actions: list2.actions,
14739
14423
  toggleNarrow: toggleNarrow2,
14740
14424
  onToggleNarrow,
14741
- stickyHeader: stickyHeader2
14425
+ stickyHeader: stickyHeader2,
14426
+ ref: listHeadingRef
14742
14427
  }
14743
14428
  ),
14744
- /* @__PURE__ */ jsx(
14429
+ /* @__PURE__ */ jsx("div", { className: cx$2(listStyles.list, bordered2 ? listStyles.bordered : ""), children: /* @__PURE__ */ jsx(
14745
14430
  ListDragWrapper,
14746
14431
  {
14747
14432
  draggable,
14748
14433
  list: list2,
14749
14434
  onListReorder,
14750
- children: /* @__PURE__ */ jsx(
14751
- "div",
14435
+ children: infiniteScroll ? /* @__PURE__ */ jsx(
14436
+ InfiniteScroll,
14752
14437
  {
14753
- className: cx$2(
14754
- listStyles.listContent,
14755
- hideScrollbar2 ? listStyles.hideScrollbar : ""
14756
- ),
14757
- ref: listContainerRef,
14758
- children: /* @__PURE__ */ jsx(
14759
- "div",
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,
14760
14446
  {
14761
- className: listStyles.virtualRows,
14762
- style: { height: `${virtualizer.getTotalSize()}px` },
14763
- children: virtualizer.getVirtualItems().map((virtualRow2) => /* @__PURE__ */ jsx(
14764
- "div",
14765
- {
14766
- "data-index": virtualRow2.index,
14767
- className: listStyles.virtualRow,
14768
- style: {
14769
- transform: `translateY(${virtualRow2.start}px)`
14770
- },
14771
- ref: virtualizer.measureElement,
14772
- children: /* @__PURE__ */ jsx(
14773
- ListRow,
14774
- {
14775
- index: virtualRow2.index,
14776
- draggable,
14777
- item: list2.items[virtualRow2.index],
14778
- expanding,
14779
- invokeEditOnRowClick
14780
- }
14781
- )
14782
- },
14783
- virtualRow2.key
14784
- ))
14785
- }
14786
- )
14787
- }
14788
- )
14789
- }
14790
- )
14791
- ]
14792
- }
14793
- );
14794
- };
14795
- const loader = "_loader_477i5_1";
14796
- const fullViewPortSize = "_fullViewPortSize_477i5_7";
14797
- const cover = "_cover_477i5_14";
14798
- const dimmer = "_dimmer_477i5_21";
14799
- const content$2 = "_content_477i5_44";
14800
- const text$1 = "_text_477i5_49";
14801
- const details$1 = "_details_477i5_53";
14802
- const styles$t = {
14803
- loader,
14804
- fullViewPortSize,
14805
- cover,
14806
- dimmer,
14807
- content: content$2,
14808
- text: text$1,
14809
- details: details$1
14810
- };
14811
- const Loader = ({
14812
- width: width2,
14813
- height: height2,
14814
- text: text2 = "",
14815
- details: details2 = "",
14816
- fullViewPortSize: fullViewPortSize2 = false,
14817
- cover: cover2 = false,
14818
- children = null,
14819
- theme = Theme.DARK,
14820
- testId = null
14821
- }) => {
14822
- const color2 = theme === Theme.DARK ? Theme.WHITE : Theme.INHERIT;
14823
- const background2 = theme === "white" ? "var(--color-background-raised)" : theme === "light" ? "var(--color-background)" : "black";
14824
- return /* @__PURE__ */ jsx(
14825
- "div",
14826
- {
14827
- className: cx$2(styles$t.loader, cover2 ? styles$t.cover : "", {
14828
- [styles$t.fullViewPortSize]: fullViewPortSize2
14829
- }),
14830
- style: { width: width2, height: height2 },
14831
- "data-testid": testId,
14832
- children: /* @__PURE__ */ jsx("div", { className: styles$t.dimmer, style: { background: background2, color: color2 }, children: /* @__PURE__ */ jsxs(
14833
- "div",
14834
- {
14835
- className: styles$t.content,
14836
- "data-testid": testId && `${testId}-content`,
14837
- children: [
14838
- children,
14839
- text2 && /* @__PURE__ */ jsx(
14840
- "div",
14841
- {
14842
- className: styles$t.text,
14843
- "data-testid": testId && `${testId}-text`,
14844
- children: text2
14447
+ index: index2,
14448
+ draggable,
14449
+ item: item2,
14450
+ expanding,
14451
+ invokeEditOnRowClick,
14452
+ ref: listRowRefs
14453
+ },
14454
+ index2
14455
+ ))
14845
14456
  }
14846
- ),
14847
- details2 && /* @__PURE__ */ jsx(
14848
- "div",
14457
+ ) : list2.items.map((item2, index2) => /* @__PURE__ */ jsx(
14458
+ ListRow,
14849
14459
  {
14850
- className: styles$t.details,
14851
- "data-testid": testId && `${testId}-details`,
14852
- children: details2
14853
- }
14854
- )
14855
- ]
14856
- }
14857
- ) })
14460
+ index: index2,
14461
+ draggable,
14462
+ item: item2,
14463
+ expanding,
14464
+ invokeEditOnRowClick,
14465
+ ref: listRowRefs
14466
+ },
14467
+ index2
14468
+ ))
14469
+ }
14470
+ ) })
14471
+ ] })
14858
14472
  }
14859
14473
  );
14860
14474
  };
@@ -15628,7 +15242,7 @@ const useFontsReady = () => {
15628
15242
  const getWidth = () => window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
15629
15243
  const useWindowWidth = () => {
15630
15244
  const [width2, setWidth] = useState(getWidth());
15631
- const resizeListener = debounce$3(() => setWidth(getWidth()), 150);
15245
+ const resizeListener = debounce$2(() => setWidth(getWidth()), 150);
15632
15246
  useEffect(() => {
15633
15247
  window.addEventListener("resize", resizeListener);
15634
15248
  return () => {
@@ -48390,7 +48004,7 @@ const styles$d = {
48390
48004
  active: active$2,
48391
48005
  icon: icon$1
48392
48006
  };
48393
- const TooltipIcon = memo$1(
48007
+ const TooltipIcon = memo(
48394
48008
  ({ isOpen: isOpen2, label: label2, icon: icon2, invalid }) => {
48395
48009
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
48396
48010
  /* @__PURE__ */ jsx(
@@ -48465,7 +48079,7 @@ const Sections = ({
48465
48079
  )
48466
48080
  ] }, i)) });
48467
48081
  };
48468
- const SideBar = memo$1(
48082
+ const SideBar = memo(
48469
48083
  ({
48470
48084
  options,
48471
48085
  startOpen = false,
@@ -51091,19 +50705,19 @@ const Spacer = ({
51091
50705
  }
51092
50706
  }
51093
50707
  );
51094
- const inputInTable$2 = "_inputInTable_xkoxm_1";
51095
- const inputHover$2 = "_inputHover_xkoxm_13";
51096
- const inputFocus$2 = "_inputFocus_xkoxm_18";
51097
- const inputError$2 = "_inputError_xkoxm_25";
51098
- const inputWarning$2 = "_inputWarning_xkoxm_26";
51099
- const inputDisabled$2 = "_inputDisabled_xkoxm_61";
51100
- const hideScrollbars$2 = "_hideScrollbars_xkoxm_67";
51101
- const wrapper = "_wrapper_xkoxm_85";
51102
- const bordered = "_bordered_xkoxm_93";
51103
- const scroll = "_scroll_xkoxm_98";
51104
- const table = "_table_xkoxm_109";
51105
- const dragOverlay = "_dragOverlay_xkoxm_145";
51106
- const striped = "_striped_xkoxm_194";
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";
51107
50721
  const styles$b = {
51108
50722
  inputInTable: inputInTable$2,
51109
50723
  inputHover: inputHover$2,
@@ -51209,6 +50823,36 @@ const hasActions = (rows) => rows.reduce(
51209
50823
  const hasRowActions = (rows, headers) => {
51210
50824
  return hasActions(headers) > 0 || hasActions(rows) > 0;
51211
50825
  };
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
+ };
51212
50856
  const clickableRow = "_clickableRow_10f34_1";
51213
50857
  const hoverableRow = "_hoverableRow_10f34_4";
51214
50858
  const rowActive = "_rowActive_10f34_4";
@@ -51978,7 +51622,7 @@ const Row = ({
51978
51622
  animateLayoutChanges: () => false
51979
51623
  });
51980
51624
  const style = {
51981
- transform: CSS.Transform.toString(transform),
51625
+ transform: CSS.Translate.toString(transform),
51982
51626
  transition,
51983
51627
  opacity: isDragging ? 0 : void 0
51984
51628
  };
@@ -52036,8 +51680,6 @@ const Row = ({
52036
51680
  ),
52037
51681
  "data-error": error2 || null,
52038
51682
  "data-warning": warning2 || null,
52039
- "data-index": rowIndex,
52040
- "data-even": rowIndex % 2 === 0,
52041
51683
  style,
52042
51684
  children: [
52043
51685
  draggableTable ? getDragItem() : null,
@@ -52129,35 +51771,6 @@ const TableDragWrapper = (props) => {
52129
51771
  }
52130
51772
  );
52131
51773
  };
52132
- const TableScrollWrapper = ({
52133
- table: table2,
52134
- theadRef,
52135
- children
52136
- }) => {
52137
- var _a2, _b;
52138
- if (!table2.infiniteScroll) {
52139
- return /* @__PURE__ */ jsx("div", { id: "scrollWrapper", className: styles$b.scroll, children: children({}) });
52140
- }
52141
- const containerRef = useRef(null);
52142
- const MIN_ITEM_HEIGHT = 31;
52143
- const virtualizer = useVirtualizer({
52144
- count: ((_a2 = table2.rows) == null ? void 0 : _a2.length) ?? 0,
52145
- getScrollElement: () => containerRef.current,
52146
- estimateSize: () => MIN_ITEM_HEIGHT,
52147
- overscan: 10
52148
- });
52149
- const theadHeight = ((_b = theadRef.current) == null ? void 0 : _b.clientHeight) ?? 0;
52150
- const totalHeight = virtualizer.getTotalSize() + theadHeight;
52151
- const items = virtualizer.getVirtualItems();
52152
- const paddingTop = items.length > 0 ? items[0].start : 0;
52153
- const paddingBottom = items.length > 0 ? virtualizer.getTotalSize() - items[items.length - 1].end : 0;
52154
- const tableStyle = {
52155
- "--virtualPaddingTop": paddingTop + "px",
52156
- "--virtualPaddingBottom": paddingBottom + "px",
52157
- height: totalHeight
52158
- };
52159
- return /* @__PURE__ */ jsx("div", { id: "scrollWrapper", className: styles$b.scroll, ref: containerRef, children: children({ virtualizer, tableStyle }) });
52160
- };
52161
51774
  const Table = (props) => {
52162
51775
  var _a2, _b, _c, _d, _e2, _f, _g;
52163
51776
  const { onListReorder = () => {
@@ -52180,7 +51793,6 @@ const Table = (props) => {
52180
51793
  maxHeight,
52181
51794
  fixedWidth: width2
52182
51795
  } = propTable;
52183
- const theadRef = useRef(null);
52184
51796
  const tbodyRef = useRef(null);
52185
51797
  const headers = get$2(props, "table.headers", []);
52186
51798
  const columnCount = getColumnCount(propRows, headers);
@@ -52242,7 +51854,7 @@ const Table = (props) => {
52242
51854
  testId: testId && `${testId}-title`
52243
51855
  }
52244
51856
  ),
52245
- /* @__PURE__ */ jsx(
51857
+ /* @__PURE__ */ jsx(TableScrollWrapper, { table: table2, children: ({ visibleRows }) => /* @__PURE__ */ jsx(
52246
51858
  TableDragWrapper,
52247
51859
  {
52248
51860
  colSpan,
@@ -52253,65 +51865,49 @@ const Table = (props) => {
52253
51865
  rowActions,
52254
51866
  rows,
52255
51867
  tbodyRef,
52256
- children: /* @__PURE__ */ jsx(TableScrollWrapper, { table: table2, theadRef, children: ({ virtualizer, tableStyle }) => {
52257
- return /* @__PURE__ */ jsxs(
52258
- "table",
52259
- {
52260
- className: cx$2(styles$b.table, striped2 ? styles$b.striped : ""),
52261
- "data-testid": testId,
52262
- style: tableStyle,
52263
- children: [
52264
- /* @__PURE__ */ jsx("thead", { ref: theadRef, children: headers.map((row2, rowIndex) => {
52265
- return /* @__PURE__ */ jsx(
52266
- Row,
52267
- {
52268
- rowIndex,
52269
- isHeader: true,
52270
- row: row2,
52271
- columnCount,
52272
- columnWidths,
52273
- colSpan,
52274
- hasRowActions: rowActions,
52275
- columnAlignment,
52276
- columnHeaderAlignments,
52277
- draggableTable: draggable
52278
- },
52279
- `0_${rowIndex}`
52280
- );
52281
- }) }),
52282
- /* @__PURE__ */ jsx("tbody", { ref: tbodyRef, children: virtualizer ? virtualizer.getVirtualItems().map((virtualRow2) => /* @__PURE__ */ jsx(
52283
- Row,
52284
- {
52285
- rowIndex: virtualRow2.index,
52286
- row: rows[virtualRow2.index],
52287
- columnCount,
52288
- columnWidths,
52289
- colSpan,
52290
- hasRowActions: rowActions,
52291
- columnAlignment,
52292
- draggableTable: draggable
52293
- },
52294
- `1_${virtualRow2.index}`
52295
- )) : rows.map((row2, index2) => /* @__PURE__ */ jsx(
51868
+ children: /* @__PURE__ */ jsxs(
51869
+ "table",
51870
+ {
51871
+ className: cx$2(styles$b.table, striped2 ? styles$b.striped : ""),
51872
+ "data-testid": testId,
51873
+ children: [
51874
+ /* @__PURE__ */ jsx("thead", { children: headers.map((row2, rowIndex) => {
51875
+ return /* @__PURE__ */ jsx(
52296
51876
  Row,
52297
51877
  {
52298
- rowIndex: index2,
51878
+ rowIndex,
51879
+ isHeader: true,
52299
51880
  row: row2,
52300
51881
  columnCount,
52301
51882
  columnWidths,
52302
51883
  colSpan,
52303
51884
  hasRowActions: rowActions,
52304
51885
  columnAlignment,
51886
+ columnHeaderAlignments,
52305
51887
  draggableTable: draggable
52306
51888
  },
52307
- `1_${index2}`
52308
- )) })
52309
- ]
52310
- }
52311
- );
52312
- } })
51889
+ `0_${rowIndex}`
51890
+ );
51891
+ }) }),
51892
+ /* @__PURE__ */ jsx("tbody", { ref: tbodyRef, children: rows.slice(0, visibleRows).map((row2, rowIndex) => /* @__PURE__ */ jsx(
51893
+ Row,
51894
+ {
51895
+ rowIndex,
51896
+ row: row2,
51897
+ columnCount,
51898
+ columnWidths,
51899
+ colSpan,
51900
+ hasRowActions: rowActions,
51901
+ columnAlignment,
51902
+ draggableTable: draggable
51903
+ },
51904
+ `1_${rowIndex}`
51905
+ )) })
51906
+ ]
51907
+ }
51908
+ )
52313
51909
  }
52314
- ),
51910
+ ) }),
52315
51911
  footer2 && /* @__PURE__ */ jsx(
52316
51912
  Footer,
52317
51913
  {
@@ -55424,7 +55020,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
55424
55020
  }
55425
55021
  let refCount = 0;
55426
55022
  const INSTANCE_SYM = Symbol.for("__REACT_DND_CONTEXT_INSTANCE__");
55427
- var DndProvider = /* @__PURE__ */ memo$1(function DndProvider2(_param) {
55023
+ var DndProvider = /* @__PURE__ */ memo(function DndProvider2(_param) {
55428
55024
  var { children } = _param, props = _objectWithoutProperties(_param, [
55429
55025
  "children"
55430
55026
  ]);
@@ -57785,7 +57381,7 @@ function useFeatures(props, visualElement2, preloadedFeatures) {
57785
57381
  var name_1 = featureNames[i];
57786
57382
  var _a2 = featureDefinitions[name_1], isEnabled = _a2.isEnabled, Component2 = _a2.Component;
57787
57383
  if (isEnabled(props) && Component2) {
57788
- features.push(React$4.createElement(Component2, __assign$3({ key: name_1 }, props, { visualElement: visualElement2 })));
57384
+ features.push(React$4.createElement(Component2, __assign$4({ key: name_1 }, props, { visualElement: visualElement2 })));
57789
57385
  }
57790
57386
  }
57791
57387
  return features;
@@ -58026,7 +57622,7 @@ function useProjection(projectionId, _a2, visualElement2, ProjectionNodeConstruc
58026
57622
  var VisualElementHandler = (
58027
57623
  /** @class */
58028
57624
  function(_super) {
58029
- __extends(VisualElementHandler2, _super);
57625
+ __extends$1(VisualElementHandler2, _super);
58030
57626
  function VisualElementHandler2() {
58031
57627
  return _super !== null && _super.apply(this, arguments) || this;
58032
57628
  }
@@ -58052,20 +57648,20 @@ function createMotionComponent(_a2) {
58052
57648
  preloadedFeatures && loadFeatures(preloadedFeatures);
58053
57649
  function MotionComponent(props, externalRef) {
58054
57650
  var layoutId = useLayoutId(props);
58055
- props = __assign$3(__assign$3({}, props), { layoutId });
57651
+ props = __assign$4(__assign$4({}, props), { layoutId });
58056
57652
  var config = useContext(MotionConfigContext);
58057
57653
  var features = null;
58058
57654
  var context2 = useCreateMotionContext(props);
58059
57655
  var projectionId = config.isStatic ? void 0 : useProjectionId();
58060
57656
  var visualState = useVisualState(props, config.isStatic);
58061
57657
  if (!config.isStatic && isBrowser) {
58062
- context2.visualElement = useVisualElement(Component2, visualState, __assign$3(__assign$3({}, config), props), createVisualElement);
57658
+ context2.visualElement = useVisualElement(Component2, visualState, __assign$4(__assign$4({}, config), props), createVisualElement);
58063
57659
  useProjection(projectionId, props, context2.visualElement, projectionNodeConstructor || featureDefinitions.projectionNodeConstructor);
58064
57660
  features = useFeatures(props, context2.visualElement, preloadedFeatures);
58065
57661
  }
58066
57662
  return React$4.createElement(
58067
57663
  VisualElementHandler,
58068
- { visualElement: context2.visualElement, props: __assign$3(__assign$3({}, config), props) },
57664
+ { visualElement: context2.visualElement, props: __assign$4(__assign$4({}, config), props) },
58069
57665
  features,
58070
57666
  React$4.createElement(MotionContext.Provider, { value: context2 }, useRender(Component2, props, projectionId, useMotionRef(visualState, context2.visualElement, externalRef), visualState, config.isStatic, context2.visualElement))
58071
57667
  );
@@ -58391,7 +57987,7 @@ const filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v
58391
57987
  const functions = v2.match(functionRegex);
58392
57988
  return functions ? functions.map(applyDefaultFilter).join(" ") : v2;
58393
57989
  } });
58394
- var int = __assign$3(__assign$3({}, number), { transform: Math.round });
57990
+ var int = __assign$4(__assign$4({}, number), { transform: Math.round });
58395
57991
  var numberValueTypes = {
58396
57992
  // Border props
58397
57993
  borderWidth: px,
@@ -58521,7 +58117,7 @@ function useInitialMotionValues(_a2, visualState, isStatic) {
58521
58117
  var state = createHtmlRenderState();
58522
58118
  buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);
58523
58119
  var vars = state.vars, style = state.style;
58524
- return __assign$3(__assign$3({}, vars), style);
58120
+ return __assign$4(__assign$4({}, vars), style);
58525
58121
  }, [visualState]);
58526
58122
  }
58527
58123
  function useStyle(props, visualState, isStatic) {
@@ -58679,18 +58275,18 @@ function buildSVGAttrs(state, _a2, options, transformTemplate) {
58679
58275
  }
58680
58276
  }
58681
58277
  var createSvgRenderState = function() {
58682
- return __assign$3(__assign$3({}, createHtmlRenderState()), { attrs: {} });
58278
+ return __assign$4(__assign$4({}, createHtmlRenderState()), { attrs: {} });
58683
58279
  };
58684
58280
  function useSVGProps(props, visualState) {
58685
58281
  var visualProps = useMemo(function() {
58686
58282
  var state = createSvgRenderState();
58687
58283
  buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);
58688
- return __assign$3(__assign$3({}, state.attrs), { style: __assign$3({}, state.style) });
58284
+ return __assign$4(__assign$4({}, state.attrs), { style: __assign$4({}, state.style) });
58689
58285
  }, [visualState]);
58690
58286
  if (props.style) {
58691
58287
  var rawStyles = {};
58692
58288
  copyRawValuesOnly(rawStyles, props.style, props);
58693
- visualProps.style = __assign$3(__assign$3({}, rawStyles), visualProps.style);
58289
+ visualProps.style = __assign$4(__assign$4({}, rawStyles), visualProps.style);
58694
58290
  }
58695
58291
  return visualProps;
58696
58292
  }
@@ -58703,7 +58299,7 @@ function createUseRender(forwardMotionProps) {
58703
58299
  var useVisualProps = isSVGComponent(Component2) ? useSVGProps : useHTMLProps;
58704
58300
  var visualProps = useVisualProps(props, latestValues, isStatic);
58705
58301
  var filteredProps = filterProps(props, typeof Component2 === "string", forwardMotionProps);
58706
- var elementProps = __assign$3(__assign$3(__assign$3({}, filteredProps), visualProps), { ref });
58302
+ var elementProps = __assign$4(__assign$4(__assign$4({}, filteredProps), visualProps), { ref });
58707
58303
  if (projectionId) {
58708
58304
  elementProps["data-projection-id"] = projectionId;
58709
58305
  }
@@ -58880,7 +58476,7 @@ var htmlMotionConfig = {
58880
58476
  function createDomMotionConfig(Component2, _a2, preloadedFeatures, createVisualElement, projectionNodeConstructor) {
58881
58477
  var _b = _a2.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;
58882
58478
  var baseConfig = isSVGComponent(Component2) ? svgMotionConfig : htmlMotionConfig;
58883
- return __assign$3(__assign$3({}, baseConfig), { preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement, projectionNodeConstructor, Component: Component2 });
58479
+ return __assign$4(__assign$4({}, baseConfig), { preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement, projectionNodeConstructor, Component: Component2 });
58884
58480
  }
58885
58481
  var AnimationType;
58886
58482
  (function(AnimationType2) {
@@ -59967,7 +59563,7 @@ function initIntersectionObserver(_a2) {
59967
59563
  var rootObservers = observers.get(lookupRoot);
59968
59564
  var key2 = JSON.stringify(options);
59969
59565
  if (!rootObservers[key2]) {
59970
- rootObservers[key2] = new IntersectionObserver(fireAllObserverCallbacks, __assign$3({ root: root2 }, options));
59566
+ rootObservers[key2] = new IntersectionObserver(fireAllObserverCallbacks, __assign$4({ root: root2 }, options));
59971
59567
  }
59972
59568
  return rootObservers[key2];
59973
59569
  }
@@ -60185,9 +59781,9 @@ var getDefaultTransition = function(valueKey, to2) {
60185
59781
  } else {
60186
59782
  transitionFactory = defaultTransitions[valueKey] || defaultTransitions.default;
60187
59783
  }
60188
- return __assign$3({ to: to2 }, transitionFactory(to2));
59784
+ return __assign$4({ to: to2 }, transitionFactory(to2));
60189
59785
  };
60190
- var defaultValueTypes = __assign$3(__assign$3({}, numberValueTypes), {
59786
+ var defaultValueTypes = __assign$4(__assign$4({}, numberValueTypes), {
60191
59787
  // Color props
60192
59788
  color,
60193
59789
  backgroundColor: color,
@@ -60229,7 +59825,7 @@ function isTransitionDefined(_a2) {
60229
59825
  var legacyRepeatWarning = false;
60230
59826
  function convertTransitionToAnimationOptions(_a2) {
60231
59827
  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"]);
60232
- var options = __assign$3({}, transition);
59828
+ var options = __assign$4({}, transition);
60233
59829
  if (times)
60234
59830
  options["offset"] = times;
60235
59831
  if (transition.duration)
@@ -60276,9 +59872,9 @@ function getPopmotionAnimationOptions(transition, options, key2) {
60276
59872
  }
60277
59873
  hydrateKeyframes(options);
60278
59874
  if (!isTransitionDefined(transition)) {
60279
- transition = __assign$3(__assign$3({}, transition), getDefaultTransition(key2, options.to));
59875
+ transition = __assign$4(__assign$4({}, transition), getDefaultTransition(key2, options.to));
60280
59876
  }
60281
- return __assign$3(__assign$3({}, options), convertTransitionToAnimationOptions(transition));
59877
+ return __assign$4(__assign$4({}, options), convertTransitionToAnimationOptions(transition));
60282
59878
  }
60283
59879
  function getAnimation(key2, value, target, transition, onComplete) {
60284
59880
  var _a2;
@@ -60304,7 +59900,7 @@ function getAnimation(key2, value, target, transition, onComplete) {
60304
59900
  return value.set(v2);
60305
59901
  }
60306
59902
  };
60307
- 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) {
59903
+ return valueTransition.type === "inertia" || valueTransition.type === "decay" ? inertia(__assign$4(__assign$4({}, options), valueTransition)) : animate$1(__assign$4(__assign$4({}, getPopmotionAnimationOptions(valueTransition, options, key2)), { onUpdate: function(v2) {
60308
59904
  var _a3;
60309
59905
  options.onUpdate(v2);
60310
59906
  (_a3 = valueTransition.onUpdate) === null || _a3 === void 0 ? void 0 : _a3.call(valueTransition, v2);
@@ -60557,7 +60153,7 @@ function setTarget(visualElement2, definition) {
60557
60153
  var _a2 = resolved ? visualElement2.makeTargetAnimatable(resolved, false) : {}, _b = _a2.transitionEnd, transitionEnd = _b === void 0 ? {} : _b;
60558
60154
  _a2.transition;
60559
60155
  var target = __rest$1(_a2, ["transitionEnd", "transition"]);
60560
- target = __assign$3(__assign$3({}, target), transitionEnd);
60156
+ target = __assign$4(__assign$4({}, target), transitionEnd);
60561
60157
  for (var key2 in target) {
60562
60158
  var value = resolveFinalValueInKeyframes(target[key2]);
60563
60159
  setMotionValue(visualElement2, key2, value);
@@ -60675,9 +60271,9 @@ function animateTarget(visualElement2, definition, _a2) {
60675
60271
  if (!value || valueTarget === void 0 || animationTypeState && shouldBlockAnimation(animationTypeState, key2)) {
60676
60272
  continue;
60677
60273
  }
60678
- var valueTransition = __assign$3({ delay }, transition);
60274
+ var valueTransition = __assign$4({ delay }, transition);
60679
60275
  if (visualElement2.shouldReduceMotion && isTransformProp(key2)) {
60680
- valueTransition = __assign$3(__assign$3({}, valueTransition), { type: false, delay: 0 });
60276
+ valueTransition = __assign$4(__assign$4({}, valueTransition), { type: false, delay: 0 });
60681
60277
  }
60682
60278
  var animation = startAnimation(key2, value, valueTarget, valueTransition);
60683
60279
  animations2.push(animation);
@@ -60710,7 +60306,7 @@ function animateChildren(visualElement2, variant, delayChildren, staggerChildren
60710
60306
  return maxStaggerDuration - i * staggerChildren;
60711
60307
  };
60712
60308
  Array.from(visualElement2.variantChildren).sort(sortByTreeOrder).forEach(function(child, i) {
60713
- animations2.push(animateVariant(child, variant, __assign$3(__assign$3({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function() {
60309
+ animations2.push(animateVariant(child, variant, __assign$4(__assign$4({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function() {
60714
60310
  return child.notifyAnimationComplete(variant);
60715
60311
  }));
60716
60312
  });
@@ -60754,7 +60350,7 @@ function createAnimationState(visualElement2) {
60754
60350
  if (resolved) {
60755
60351
  resolved.transition;
60756
60352
  var transitionEnd = resolved.transitionEnd, target = __rest$1(resolved, ["transition", "transitionEnd"]);
60757
- acc = __assign$3(__assign$3(__assign$3({}, acc), target), transitionEnd);
60353
+ acc = __assign$4(__assign$4(__assign$4({}, acc), target), transitionEnd);
60758
60354
  }
60759
60355
  return acc;
60760
60356
  };
@@ -60784,7 +60380,7 @@ function createAnimationState(visualElement2) {
60784
60380
  if (isInherited && isInitialRender && visualElement2.manuallyAnimateOnMount) {
60785
60381
  isInherited = false;
60786
60382
  }
60787
- typeState.protectedKeys = __assign$3({}, encounteredKeys);
60383
+ typeState.protectedKeys = __assign$4({}, encounteredKeys);
60788
60384
  if (
60789
60385
  // If it isn't active and hasn't *just* been set as inactive
60790
60386
  !typeState.isActive && activeDelta === null || // If we didn't and don't have any defined prop for this animation type
@@ -60802,7 +60398,7 @@ function createAnimationState(visualElement2) {
60802
60398
  if (activeDelta === false)
60803
60399
  resolvedValues = {};
60804
60400
  var _b = typeState.prevResolvedValues, prevResolvedValues = _b === void 0 ? {} : _b;
60805
- var allKeys = __assign$3(__assign$3({}, prevResolvedValues), resolvedValues);
60401
+ var allKeys = __assign$4(__assign$4({}, prevResolvedValues), resolvedValues);
60806
60402
  var markToAnimate = function(key3) {
60807
60403
  shouldAnimateType = true;
60808
60404
  removedKeys.delete(key3);
@@ -60834,7 +60430,7 @@ function createAnimationState(visualElement2) {
60834
60430
  typeState.prevProp = prop;
60835
60431
  typeState.prevResolvedValues = resolvedValues;
60836
60432
  if (typeState.isActive) {
60837
- encounteredKeys = __assign$3(__assign$3({}, encounteredKeys), resolvedValues);
60433
+ encounteredKeys = __assign$4(__assign$4({}, encounteredKeys), resolvedValues);
60838
60434
  }
60839
60435
  if (isInitialRender && visualElement2.blockInitialAnimation) {
60840
60436
  shouldAnimateType = false;
@@ -60843,7 +60439,7 @@ function createAnimationState(visualElement2) {
60843
60439
  animations2.push.apply(animations2, __spreadArray$2([], __read(definitionList.map(function(animation) {
60844
60440
  return {
60845
60441
  animation,
60846
- options: __assign$3({ type }, options)
60442
+ options: __assign$4({ type }, options)
60847
60443
  };
60848
60444
  })), false));
60849
60445
  }
@@ -60851,7 +60447,7 @@ function createAnimationState(visualElement2) {
60851
60447
  for (var i = 0; i < numAnimationTypes; i++) {
60852
60448
  _loop_1(i);
60853
60449
  }
60854
- allAnimatedKeys = __assign$3({}, encounteredKeys);
60450
+ allAnimatedKeys = __assign$4({}, encounteredKeys);
60855
60451
  if (removedKeys.size) {
60856
60452
  var fallbackAnimation_1 = {};
60857
60453
  removedKeys.forEach(function(key2) {
@@ -60959,7 +60555,7 @@ var PanSession = (
60959
60555
  return;
60960
60556
  var point2 = info3.point;
60961
60557
  var timestamp2 = getFrameData().timestamp;
60962
- _this.history.push(__assign$3(__assign$3({}, point2), { timestamp: timestamp2 }));
60558
+ _this.history.push(__assign$4(__assign$4({}, point2), { timestamp: timestamp2 }));
60963
60559
  var _a3 = _this.handlers, onStart = _a3.onStart, onMove = _a3.onMove;
60964
60560
  if (!isPanStarted) {
60965
60561
  onStart && onStart(_this.lastMoveEvent, info3);
@@ -60993,7 +60589,7 @@ var PanSession = (
60993
60589
  var initialInfo = transformPoint(info2, this.transformPagePoint);
60994
60590
  var point = initialInfo.point;
60995
60591
  var timestamp = getFrameData().timestamp;
60996
- this.history = [__assign$3(__assign$3({}, point), { timestamp })];
60592
+ this.history = [__assign$4(__assign$4({}, point), { timestamp })];
60997
60593
  var onSessionStart = handlers2.onSessionStart;
60998
60594
  onSessionStart && onSessionStart(event, getPanInfo(initialInfo, this.history));
60999
60595
  this.removeListeners = pipe(addPointerEvent(window, "pointermove", this.handlePointerMove), addPointerEvent(window, "pointerup", this.handlePointerUp), addPointerEvent(window, "pointercancel", this.handlePointerUp));
@@ -61514,7 +61110,7 @@ var VisualElementDragControls = (
61514
61110
  transition = { min: 0, max: 0 };
61515
61111
  var bounceStiffness = dragElastic ? 200 : 1e6;
61516
61112
  var bounceDamping = dragElastic ? 40 : 1e7;
61517
- var inertia2 = __assign$3(__assign$3({ type: "inertia", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness, bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);
61113
+ var inertia2 = __assign$4(__assign$4({ type: "inertia", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness, bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);
61518
61114
  return _this.startAxisValueAnimation(axis, inertia2);
61519
61115
  });
61520
61116
  return Promise.all(momentumAnimations).then(onDragTransitionEnd);
@@ -61625,7 +61221,7 @@ var VisualElementDragControls = (
61625
61221
  VisualElementDragControls2.prototype.getProps = function() {
61626
61222
  var props = this.visualElement.getProps();
61627
61223
  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;
61628
- return __assign$3(__assign$3({}, props), { drag: drag2, dragDirectionLock, dragPropagation, dragConstraints, dragElastic, dragMomentum });
61224
+ return __assign$4(__assign$4({}, props), { drag: drag2, dragDirectionLock, dragPropagation, dragConstraints, dragElastic, dragMomentum });
61629
61225
  };
61630
61226
  return VisualElementDragControls2;
61631
61227
  }()
@@ -61782,7 +61378,7 @@ var visualElement = function(_a2) {
61782
61378
  var values2 = /* @__PURE__ */ new Map();
61783
61379
  var valueSubscriptions = /* @__PURE__ */ new Map();
61784
61380
  var prevMotionValues = {};
61785
- var baseTarget = __assign$3({}, latestValues);
61381
+ var baseTarget = __assign$4({}, latestValues);
61786
61382
  var removeFromVariantTree;
61787
61383
  function render2() {
61788
61384
  if (!instance || !isMounted)
@@ -61816,7 +61412,7 @@ var visualElement = function(_a2) {
61816
61412
  }
61817
61413
  var isControllingVariants = checkIfControllingVariants(props);
61818
61414
  var isVariantNode = checkIfVariantNode(props);
61819
- var element = __assign$3(__assign$3({
61415
+ var element = __assign$4(__assign$4({
61820
61416
  treeType,
61821
61417
  /**
61822
61418
  * This is a mirror of the internal instance prop, which keeps
@@ -62181,7 +61777,7 @@ function resolveCSSVariables(visualElement2, _a2, transitionEnd) {
62181
61777
  if (!(element instanceof Element))
62182
61778
  return { target, transitionEnd };
62183
61779
  if (transitionEnd) {
62184
- transitionEnd = __assign$3({}, transitionEnd);
61780
+ transitionEnd = __assign$4({}, transitionEnd);
62185
61781
  }
62186
61782
  visualElement2.forEachValue(function(value) {
62187
61783
  var current2 = value.get();
@@ -62336,8 +61932,8 @@ var checkAndConvertChangedValueTypes = function(visualElement2, target, origin,
62336
61932
  if (transitionEnd === void 0) {
62337
61933
  transitionEnd = {};
62338
61934
  }
62339
- target = __assign$3({}, target);
62340
- transitionEnd = __assign$3({}, transitionEnd);
61935
+ target = __assign$4({}, target);
61936
+ transitionEnd = __assign$4({}, transitionEnd);
62341
61937
  var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);
62342
61938
  var removedTransformValues = [];
62343
61939
  var hasAttemptedToRemoveTransformValues = false;
@@ -62490,7 +62086,7 @@ var htmlConfig = {
62490
62086
  transitionEnd = parsed.transitionEnd;
62491
62087
  target = parsed.target;
62492
62088
  }
62493
- return __assign$3({ transition, transitionEnd }, target);
62089
+ return __assign$4({ transition, transitionEnd }, target);
62494
62090
  },
62495
62091
  scrapeMotionValuesFromProps: scrapeMotionValuesFromProps$1,
62496
62092
  build: function(element, renderState, latestValues, options, props) {
@@ -62502,7 +62098,7 @@ var htmlConfig = {
62502
62098
  render: renderHTML
62503
62099
  };
62504
62100
  var htmlVisualElement = visualElement(htmlConfig);
62505
- var svgVisualElement = visualElement(__assign$3(__assign$3({}, htmlConfig), { getBaseTarget: function(props, key2) {
62101
+ var svgVisualElement = visualElement(__assign$4(__assign$4({}, htmlConfig), { getBaseTarget: function(props, key2) {
62506
62102
  return props[key2];
62507
62103
  }, readValueFromInstance: function(domElement, key2) {
62508
62104
  var _a2;
@@ -62580,7 +62176,7 @@ var correctBoxShadow = {
62580
62176
  var MeasureLayoutWithContext = (
62581
62177
  /** @class */
62582
62178
  function(_super) {
62583
- __extends(MeasureLayoutWithContext2, _super);
62179
+ __extends$1(MeasureLayoutWithContext2, _super);
62584
62180
  function MeasureLayoutWithContext2() {
62585
62181
  return _super !== null && _super.apply(this, arguments) || this;
62586
62182
  }
@@ -62599,7 +62195,7 @@ var MeasureLayoutWithContext = (
62599
62195
  projection.addEventListener("animationComplete", function() {
62600
62196
  _this.safeToRemove();
62601
62197
  });
62602
- projection.setOptions(__assign$3(__assign$3({}, projection.options), { onExitComplete: function() {
62198
+ projection.setOptions(__assign$4(__assign$4({}, projection.options), { onExitComplete: function() {
62603
62199
  return _this.safeToRemove();
62604
62200
  } }));
62605
62201
  }
@@ -62664,10 +62260,10 @@ var MeasureLayoutWithContext = (
62664
62260
  function MeasureLayout(props) {
62665
62261
  var _a2 = __read(usePresence(), 2), isPresent = _a2[0], safeToRemove = _a2[1];
62666
62262
  var layoutGroup = useContext(LayoutGroupContext);
62667
- return React__default.createElement(MeasureLayoutWithContext, __assign$3({}, props, { layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent, safeToRemove }));
62263
+ return React__default.createElement(MeasureLayoutWithContext, __assign$4({}, props, { layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent, safeToRemove }));
62668
62264
  }
62669
62265
  var defaultScaleCorrectors = {
62670
- borderRadius: __assign$3(__assign$3({}, correctBorderRadius), { applyTo: [
62266
+ borderRadius: __assign$4(__assign$4({}, correctBorderRadius), { applyTo: [
62671
62267
  "borderTopLeftRadius",
62672
62268
  "borderTopRightRadius",
62673
62269
  "borderBottomLeftRadius",
@@ -63090,7 +62686,7 @@ function createProjectionNode(_a2) {
63090
62686
  _this.resumingFrom.resumingFrom = void 0;
63091
62687
  }
63092
62688
  _this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);
63093
- var animationOptions = __assign$3(__assign$3({}, getValueTransition(layoutTransition, "layout")), { onPlay: onLayoutAnimationStart, onComplete: onLayoutAnimationComplete });
62689
+ var animationOptions = __assign$4(__assign$4({}, getValueTransition(layoutTransition, "layout")), { onPlay: onLayoutAnimationStart, onComplete: onLayoutAnimationComplete });
63094
62690
  if (visualElement2.shouldReduceMotion) {
63095
62691
  animationOptions.delay = 0;
63096
62692
  animationOptions.type = false;
@@ -63344,7 +62940,7 @@ function createProjectionNode(_a2) {
63344
62940
  };
63345
62941
  ProjectionNode.prototype.setOptions = function(options) {
63346
62942
  var _a3;
63347
- this.options = __assign$3(__assign$3(__assign$3({}, this.options), options), { crossfade: (_a3 = options.crossfade) !== null && _a3 !== void 0 ? _a3 : true });
62943
+ this.options = __assign$4(__assign$4(__assign$4({}, this.options), options), { crossfade: (_a3 = options.crossfade) !== null && _a3 !== void 0 ? _a3 : true });
63348
62944
  };
63349
62945
  ProjectionNode.prototype.clearMeasurements = function() {
63350
62946
  this.scroll = void 0;
@@ -63462,7 +63058,7 @@ function createProjectionNode(_a2) {
63462
63058
  }
63463
63059
  var snapshot = this.snapshot;
63464
63060
  var snapshotLatestValues = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.latestValues) || {};
63465
- var mixedValues = __assign$3({}, this.latestValues);
63061
+ var mixedValues = __assign$4({}, this.latestValues);
63466
63062
  var targetDelta = createDelta();
63467
63063
  this.relativeTarget = this.relativeTargetOrigin = void 0;
63468
63064
  this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;
@@ -63505,7 +63101,7 @@ function createProjectionNode(_a2) {
63505
63101
  }
63506
63102
  this.pendingAnimation = sync.update(function() {
63507
63103
  globalProjectionState.hasAnimatedSinceResize = true;
63508
- _this.currentAnimation = animate(0, animationTarget, __assign$3(__assign$3({}, options), { onUpdate: function(latest) {
63104
+ _this.currentAnimation = animate(0, animationTarget, __assign$4(__assign$4({}, options), { onUpdate: function(latest) {
63509
63105
  var _a4;
63510
63106
  _this.mixTargetDelta(latest);
63511
63107
  (_a4 = options.onUpdate) === null || _a4 === void 0 ? void 0 : _a4.call(options, latest);
@@ -63873,7 +63469,7 @@ var HTMLProjectionNode = createProjectionNode({
63873
63469
  return Boolean(window.getComputedStyle(instance).position === "fixed");
63874
63470
  }
63875
63471
  });
63876
- var featureBundle = __assign$3(__assign$3(__assign$3(__assign$3({}, animations), gestureAnimations), drag), layoutFeatures);
63472
+ var featureBundle = __assign$4(__assign$4(__assign$4(__assign$4({}, animations), gestureAnimations), drag), layoutFeatures);
63877
63473
  var motion = /* @__PURE__ */ createMotionProxy(function(Component2, config) {
63878
63474
  return createDomMotionConfig(Component2, config, featureBundle, createDomVisualElement, HTMLProjectionNode);
63879
63475
  });
@@ -66179,6 +65775,10 @@ const checkConversion = ({
66179
65775
  if (!availableUnits.includes(toUnit)) {
66180
65776
  return false;
66181
65777
  }
65778
+ const valueUnit = getUnit(String(value));
65779
+ if (valueUnit && !availableUnits.includes(valueUnit)) {
65780
+ return false;
65781
+ }
66182
65782
  return true;
66183
65783
  };
66184
65784
  const convertUnit = ({
@@ -66231,6 +65831,14 @@ const safeConvertValue = ({
66231
65831
  }) => {
66232
65832
  const rawValue = getValue(value);
66233
65833
  const isInvalidInput = isWrongValue(rawValue);
65834
+ const shouldConvert = checkConversion({
65835
+ value,
65836
+ unitkey,
65837
+ toUnit
65838
+ });
65839
+ if (!shouldConvert) {
65840
+ return { value: rawValue };
65841
+ }
66234
65842
  if (isValueWithUnknownUnit(value)) {
66235
65843
  return { value: rawValue };
66236
65844
  }
@@ -66452,6 +66060,22 @@ const UnitInput = ({
66452
66060
  const createPredefinedOption = (el2) => {
66453
66061
  const elementValue = (el2 == null ? void 0 : el2.value) ? el2.value : "";
66454
66062
  const [value2 = "", unit2 = ""] = isValueWithUnit(elementValue) ? split$1(elementValue) : [elementValue];
66063
+ let description2 = withPrettyUnitLabel(elementValue);
66064
+ const shouldConvert = checkConversion({
66065
+ value: elementValue,
66066
+ unitkey,
66067
+ toUnit: unit2
66068
+ });
66069
+ if (shouldConvert) {
66070
+ const { value: value3 = "" } = safeConvertValue({
66071
+ value: elementValue,
66072
+ toUnit: preferredUnit,
66073
+ unitkey,
66074
+ defaultFromUnit: unit2,
66075
+ doNotConvertValue: noConversion
66076
+ });
66077
+ description2 = withPrettyUnitLabel(withUnit(value3, preferredUnit));
66078
+ }
66455
66079
  return {
66456
66080
  type: MenuType.OPTION,
66457
66081
  inline: true,
@@ -66473,7 +66097,7 @@ const UnitInput = ({
66473
66097
  /* @__PURE__ */ jsx(Text, { children: el2.label }),
66474
66098
  /* @__PURE__ */ jsx(Spacer, { width: "20px", height: "0" })
66475
66099
  ] }),
66476
- description: isValueWithUnit(elementValue) ? `${value2} ${unit2}` : elementValue,
66100
+ description: description2,
66477
66101
  selected: foundPredefinedMenuOption === el2 && predefinedOptionsMenuState === PredefinedOptionsMenuState.PREDEFINED
66478
66102
  };
66479
66103
  };
@@ -66664,7 +66288,7 @@ const convertVisibleRows = ({
66664
66288
  fromUnit: storageUnit
66665
66289
  });
66666
66290
  const convertedValue = unitChanged ? resultValue : cell2.value;
66667
- const formattedDisplayValue = formatDisplayValue ? formatDisplayValue(convertedValue) : convertedValue;
66291
+ const formattedDisplayValue = formatDisplayValue ? formatDisplayValue(convertedValue, selectedUnit) : convertedValue;
66668
66292
  return {
66669
66293
  ...cell2,
66670
66294
  value: formattedDisplayValue,