@linzjs/lui 21.26.2 → 21.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/lui.esm.js CHANGED
@@ -31462,7 +31462,11 @@ var renderSettings = {
31462
31462
  preserveAspectRatio: 'xMidYMid slice'
31463
31463
  };
31464
31464
  var LuiLoadingSpinnerBase = function (props) {
31465
- return (React__default.createElement("div", { className: "LuiLoadingSpinnerBase", "data-testid": "loading-spinner" },
31465
+ var testId = 'loading-spinner';
31466
+ if (props.dataTestId) {
31467
+ testId += "-".concat(props.dataTestId);
31468
+ }
31469
+ return (React__default.createElement("div", { className: "LuiLoadingSpinnerBase", "data-testid": testId },
31466
31470
  React__default.createElement(LuiLottieLight, { animationData: props.animationData, loop: true, autoplay: autoplay, rendererSettings: renderSettings, style: style })));
31467
31471
  };
31468
31472
  /**
@@ -31480,8 +31484,8 @@ var LuiMiniSpinner = function (props) {
31480
31484
  preserveAspectRatio: 'xMidYMid slice'
31481
31485
  }, style: { height: props.size, width: props.size } })));
31482
31486
  };
31483
- var LuiLoadingSpinner = function () {
31484
- return React__default.createElement(LuiLoadingSpinnerBase, { animationData: loaderData });
31487
+ var LuiLoadingSpinner = function (props) {
31488
+ return (React__default.createElement(LuiLoadingSpinnerBase, { animationData: loaderData, dataTestId: props.dataTestId }));
31485
31489
  };
31486
31490
  // this function was extracted from chromatic/isChromatic. It was causing TS issues for the consumer
31487
31491
  function isChromatic() {
@@ -58410,7 +58414,7 @@ var LuiPagination = function (_a) {
58410
58414
  React__default.createElement("div", { className: "pagination" }, renderPaginationNumbers())))));
58411
58415
  };
58412
58416
 
58413
- var css_248z$2 = "/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.Separator {\n background-color: #eaeaea;\n position: absolute;\n display: flex;\n justify-content: space-around;\n transition-property: background-color;\n transition-delay: 750ms;\n transition-duration: 300ms;\n}\n.Separator-arrows {\n align-self: center;\n position: relative;\n opacity: 0;\n transition-property: opacity;\n transition-delay: 750ms;\n transition-duration: 300ms;\n}\n.Separator:focus-within, .Separator:hover, .Separator:focus, .Separator:active {\n background-color: #73c8e1;\n transition-delay: 0ms;\n transition-duration: 0ms;\n}\n.Separator:focus-within .Separator-arrows, .Separator:hover .Separator-arrows, .Separator:focus .Separator-arrows, .Separator:active .Separator-arrows {\n opacity: 1;\n transition-delay: 0ms;\n transition-duration: 0ms;\n display: inline-block;\n}";
58417
+ var css_248z$2 = "/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.Separator {\n background-color: #eaeaea;\n position: absolute;\n display: flex;\n justify-content: space-around;\n transition-property: background-color;\n transition-delay: 750ms;\n transition-duration: 0ms;\n}\n.Separator-arrows {\n align-self: center;\n position: relative;\n opacity: 0;\n transition-property: opacity;\n transition-delay: 750ms;\n transition-duration: 0ms;\n}\n.Separator:focus-within, .Separator:hover, .Separator:focus, .Separator:active {\n background-color: #73c8e1;\n transition-delay: 0ms;\n transition-duration: 0ms;\n}\n.Separator:focus-within .Separator-arrows, .Separator:hover .Separator-arrows, .Separator:focus .Separator-arrows, .Separator:active .Separator-arrows {\n opacity: 1;\n transition-delay: 0ms;\n transition-duration: 0ms;\n display: inline-block;\n}";
58414
58418
  styleInject(css_248z$2);
58415
58419
 
58416
58420
  var css_248z$1 = ".Control {\n transition: opacity 0.2s ease;\n position: absolute;\n margin-left: 0 !important;\n display: flex;\n justify-content: space-around;\n align-items: center;\n}";
@@ -58652,29 +58656,6 @@ var getSeparatorPosition = function (separatorRef, drag) {
58652
58656
  return clampSeparator({ value: value });
58653
58657
  };
58654
58658
 
58655
- var transitionFactory = function (attrs, ms) {
58656
- return attrs.map(function (key) { return "".concat(key, " ").concat(ms, "ms"); }).join(', ');
58657
- };
58658
- var barTransition = function (ms) {
58659
- return transitionFactory(['left', 'top', 'right', 'bottom'], ms);
58660
- };
58661
- var gridTransition = function (ms) {
58662
- return transitionFactory(['grid-template-columns', 'grid-template-rows'], ms);
58663
- };
58664
- var transition = function (separator) {
58665
- var _a;
58666
- var splitter = (_a = separator.current) === null || _a === void 0 ? void 0 : _a.parentElement;
58667
- var delay = function (ms) {
58668
- if (splitter) {
58669
- separator.current.style.transition = barTransition(ms);
58670
- splitter.style.transition = gridTransition(ms);
58671
- }
58672
- };
58673
- var stop = function () { return delay(0); };
58674
- var resume = function () { return delay(300); };
58675
- return { stop: stop, resume: resume };
58676
- };
58677
-
58678
58659
  /**
58679
58660
  * It captures window events to report a new position.
58680
58661
  * Provides necessary handlers for separator.
@@ -58718,7 +58699,6 @@ var animateSeparator = function (separatorRef, animate) {
58718
58699
  var splitter = separator === null || separator === void 0 ? void 0 : separator.parentElement;
58719
58700
  if (separator && splitter) {
58720
58701
  if (animate === 'clear-transition') {
58721
- transition(separatorRef).stop();
58722
58702
  splitter.style.cursor =
58723
58703
  separator.getAttribute('aria-orientation') === 'vertical'
58724
58704
  ? 'col-resize'
@@ -58726,22 +58706,40 @@ var animateSeparator = function (separatorRef, animate) {
58726
58706
  splitter.classList.add('resizing');
58727
58707
  }
58728
58708
  else {
58729
- transition(separatorRef).resume();
58730
58709
  splitter.style.cursor = '';
58731
58710
  splitter.classList.remove('resizing');
58732
58711
  }
58733
58712
  }
58734
58713
  };
58735
58714
 
58736
- var useSetValueNow_static = function (setValueNow, separator) {
58737
- var _a = useState(0), count = _a[0], setCount = _a[1];
58738
- useEffect(function () { return transition(separator).resume(); }, [count]);
58739
- return useCallback(function (val, config) {
58740
- transition(separator).stop();
58741
- setValueNow(val, config);
58742
- setCount(function (p) { return p + 1; });
58743
- }, [setValueNow]);
58715
+ var transitionFactory = function (attrs, ms) {
58716
+ return attrs.map(function (key) { return "".concat(key, " ").concat(ms, "ms"); }).join(', ');
58717
+ };
58718
+ var barTransition = function (ms) {
58719
+ return transitionFactory(['left', 'top', 'right', 'bottom'], ms);
58744
58720
  };
58721
+ var gridTransition = function (ms) {
58722
+ return transitionFactory(['grid-template-columns', 'grid-template-rows'], ms);
58723
+ };
58724
+ var transition = function (props) {
58725
+ var _a;
58726
+ var separator = Object.hasOwn(props, 'current')
58727
+ ? props
58728
+ : { current: props };
58729
+ var splitter = (_a = separator.current) === null || _a === void 0 ? void 0 : _a.parentElement;
58730
+ var delay = function (ms) {
58731
+ if (splitter) {
58732
+ separator.current.style.transition = barTransition(ms);
58733
+ splitter.style.transition = gridTransition(ms);
58734
+ }
58735
+ };
58736
+ var stop = function () { return delay(0); };
58737
+ var resume = function () {
58738
+ return delay((splitter === null || splitter === void 0 ? void 0 : splitter.classList.contains('resizing')) ? 0 : 300);
58739
+ };
58740
+ return { stop: stop, resume: resume };
58741
+ };
58742
+
58745
58743
  /**
58746
58744
  * Moves separator as per ratio changes. Centers on first render if ratio is undefined.
58747
58745
  */
@@ -58750,6 +58748,9 @@ var useRatioEffect = function (setValueNow, separator, ratio, startAt) {
58750
58748
  var _a = getSeparatorAttributes({ ref: separator }), valueMax = _a.valueMax, valueMin = _a.valueMin;
58751
58749
  var isCalculating = valueMax === Infinity || valueMin === -Infinity;
58752
58750
  useEffect(function () {
58751
+ if (!firstRun.current && ratio !== undefined && !isCalculating) {
58752
+ transition(separator).resume();
58753
+ }
58753
58754
  if (firstRun.current || ratio !== undefined || isCalculating) {
58754
58755
  firstRun.current = false;
58755
58756
  // If ratio is undefined, setValueNow will place the separator in the middle as a starting point.
@@ -58762,7 +58763,6 @@ var useRatioEffect = function (setValueNow, separator, ratio, startAt) {
58762
58763
  * Re-arranges the splitter if the limits or orientation change.
58763
58764
  */
58764
58765
  var useConfigEffect = function (setValueNow, separator) {
58765
- var setValueNow_static = useSetValueNow_static(setValueNow, separator);
58766
58766
  useEffect(function () {
58767
58767
  var callback = function (attr) {
58768
58768
  return function (_a) {
@@ -58779,7 +58779,7 @@ var useConfigEffect = function (setValueNow, separator) {
58779
58779
  // In such case, the newValueNow is moved along with the delimiter.
58780
58780
  var newValueNow = !wasInBoundary ? valueNow : newValue;
58781
58781
  if (wasInBoundary || valueMax < valueNow || valueMin > valueNow) {
58782
- setValueNow_static(newValueNow, { min: valueMin, max: valueMax });
58782
+ setValueNow(newValueNow, { min: valueMin, max: valueMax });
58783
58783
  }
58784
58784
  else {
58785
58785
  var threshold = 0.01;
@@ -58798,7 +58798,7 @@ var useConfigEffect = function (setValueNow, separator) {
58798
58798
  }
58799
58799
  var newVal = ((primary + offset) / container) * 100;
58800
58800
  if (Math.abs(newVal - valueNow) >= threshold) {
58801
- setValueNow_static(newVal, { min: valueMin, max: valueMax });
58801
+ setValueNow(newVal, { min: valueMin, max: valueMax });
58802
58802
  }
58803
58803
  }
58804
58804
  };
@@ -58828,16 +58828,22 @@ var useConfigEffect = function (setValueNow, separator) {
58828
58828
  var useValueNowEffect = function (setValueNow, separator) {
58829
58829
  useEffect(function () {
58830
58830
  var observer = new MutationObserver(function (_a) {
58831
- var target = _a[0].target;
58831
+ var _b = _a[0], target = _b.target, oldValue = _b.oldValue;
58832
58832
  var el = target;
58833
58833
  var splitter = target.parentElement;
58834
58834
  var newValueNow = Number(el.getAttribute('aria-valuenow'));
58835
58835
  if (!splitter.classList.contains('resizing')) {
58836
- setValueNow(newValueNow);
58836
+ if (Number(oldValue) !== newValueNow) {
58837
+ transition(separator).resume();
58838
+ setValueNow(newValueNow);
58839
+ }
58837
58840
  }
58838
58841
  });
58839
58842
  var attributeFilter = ['aria-valuenow'];
58840
- observer.observe(separator.current, { attributeFilter: attributeFilter });
58843
+ observer.observe(separator.current, {
58844
+ attributeFilter: attributeFilter,
58845
+ attributeOldValue: true
58846
+ });
58841
58847
  return function () { return observer.disconnect(); };
58842
58848
  }, [separator, setValueNow]);
58843
58849
  };
@@ -59126,19 +59132,26 @@ var Separator = forwardRef$1(function (_a, forwardRef) {
59126
59132
  var _a;
59127
59133
  var newValueNow = keyDownHandler(e);
59128
59134
  if (values().valueNow !== newValueNow) {
59135
+ transition(separator).resume();
59129
59136
  setValueNow(newValueNow);
59130
59137
  e.preventDefault();
59131
59138
  }
59132
59139
  (_a = props === null || props === void 0 ? void 0 : props.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(props, e);
59133
- }, className: clsx('Separator', props.className) }),
59140
+ }, className: clsx('Separator', props.className), onTransitionEnd: function (e) {
59141
+ var _a;
59142
+ transition(separator).stop();
59143
+ (_a = props.onTransitionEnd) === null || _a === void 0 ? void 0 : _a.call(props, e);
59144
+ } }),
59134
59145
  React__default.createElement("span", __assign({}, parts === null || parts === void 0 ? void 0 : parts.container, { className: clsx('Separator-arrows', (_b = parts === null || parts === void 0 ? void 0 : parts.container) === null || _b === void 0 ? void 0 : _b.className), onMouseDown: cancelEvent, onTouchStart: cancelEvent }),
59135
59146
  React__default.createElement(Control, __assign({}, parts === null || parts === void 0 ? void 0 : parts.primary, { side: "primary", onClick: function (e) {
59136
59147
  var _a, _b;
59148
+ transition(separator).resume();
59137
59149
  setValueNow(controlClickHandler(e, 'primary'));
59138
59150
  (_b = (_a = parts === null || parts === void 0 ? void 0 : parts.primary) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
59139
59151
  } })),
59140
59152
  React__default.createElement(Control, __assign({}, parts === null || parts === void 0 ? void 0 : parts.secondary, { side: "secondary", onClick: function (e) {
59141
59153
  var _a, _b;
59154
+ transition(separator).resume();
59142
59155
  setValueNow(controlClickHandler(e, 'secondary'));
59143
59156
  (_b = (_a = parts === null || parts === void 0 ? void 0 : parts.secondary) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
59144
59157
  } })))));