@linzjs/lui 21.26.0 → 21.26.2

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
@@ -58733,6 +58733,15 @@ var animateSeparator = function (separatorRef, animate) {
58733
58733
  }
58734
58734
  };
58735
58735
 
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]);
58744
+ };
58736
58745
  /**
58737
58746
  * Moves separator as per ratio changes. Centers on first render if ratio is undefined.
58738
58747
  */
@@ -58753,8 +58762,7 @@ var useRatioEffect = function (setValueNow, separator, ratio, startAt) {
58753
58762
  * Re-arranges the splitter if the limits or orientation change.
58754
58763
  */
58755
58764
  var useConfigEffect = function (setValueNow, separator) {
58756
- var _a = useState(0), count = _a[0], setCount = _a[1];
58757
- useEffect(function () { return transition(separator).resume(); }, [count]);
58765
+ var setValueNow_static = useSetValueNow_static(setValueNow, separator);
58758
58766
  useEffect(function () {
58759
58767
  var callback = function (attr) {
58760
58768
  return function (_a) {
@@ -58771,20 +58779,26 @@ var useConfigEffect = function (setValueNow, separator) {
58771
58779
  // In such case, the newValueNow is moved along with the delimiter.
58772
58780
  var newValueNow = !wasInBoundary ? valueNow : newValue;
58773
58781
  if (wasInBoundary || valueMax < valueNow || valueMin > valueNow) {
58774
- transition(separator).stop();
58775
- setValueNow(newValueNow, { min: valueMin, max: valueMax });
58776
- setCount(function (p) { return p + 1; });
58782
+ setValueNow_static(newValueNow, { min: valueMin, max: valueMax });
58777
58783
  }
58778
58784
  else {
58785
+ var threshold = 0.01;
58779
58786
  var dim = values.orientation === 'vertical' ? 'width' : 'height';
58780
- var offset = target.getBoundingClientRect()[dim] / 2;
58781
- var splitter = target.parentElement;
58782
- var primary = splitter.childNodes[0];
58783
- var splitterRect = splitter.getBoundingClientRect();
58784
- var primaryRect = primary.getBoundingClientRect();
58785
- var newVal = ((primaryRect[dim] + offset) / splitterRect[dim]) * 100;
58786
- if (Math.abs(newVal - valueNow) >= 0.01) {
58787
- setValueNow(newVal, { min: valueMin, max: valueMax });
58787
+ var abs = values.orientation === 'vertical' ? 'left' : 'top';
58788
+ var separatorRect = target.getBoundingClientRect();
58789
+ var gap = separatorRect[dim];
58790
+ var offset = gap / 2;
58791
+ var splitterEl = target.parentElement;
58792
+ var splitterRect = splitterEl.getBoundingClientRect();
58793
+ var container = splitterRect[dim];
58794
+ var primary = Math.max(separatorRect[abs] - splitterRect[abs], 0);
58795
+ var secondary = Math.max(container - primary - gap, 0);
58796
+ if (primary < threshold || secondary < threshold) {
58797
+ return;
58798
+ }
58799
+ var newVal = ((primary + offset) / container) * 100;
58800
+ if (Math.abs(newVal - valueNow) >= threshold) {
58801
+ setValueNow_static(newVal, { min: valueMin, max: valueMax });
58788
58802
  }
58789
58803
  }
58790
58804
  };
@@ -58851,25 +58865,29 @@ var getGridTemplate = function (separator) {
58851
58865
  var dimension = orientation === 'horizontal' ? 'height' : 'width';
58852
58866
  var seperatorAbsolutePx = (rect[dimension] / 100) * valueNow;
58853
58867
  var offset = gap / 2;
58868
+ var clamp = function (val, type) {
58869
+ return "clamp(".concat(offset, "px, ").concat(val).concat(type, ", calc(100% - ").concat(offset, "px))");
58870
+ };
58854
58871
  if (boundary === 'keep-primary') {
58872
+ var grid = Math.max(seperatorAbsolutePx - offset, 0);
58855
58873
  return {
58856
- grid: "".concat(seperatorAbsolutePx - offset, "px 1fr"),
58857
- primary: "".concat(seperatorAbsolutePx, "px"),
58874
+ grid: "".concat(grid, "px 1fr"),
58875
+ primary: clamp(seperatorAbsolutePx, 'px'),
58858
58876
  secondary: ''
58859
58877
  };
58860
58878
  }
58861
58879
  if (boundary === 'keep-secondary') {
58880
+ var grid = Math.max(rect[dimension] - seperatorAbsolutePx - offset, 0);
58862
58881
  return {
58863
- grid: "1fr ".concat(rect[dimension] - seperatorAbsolutePx - offset, "px"),
58882
+ grid: "1fr ".concat(grid, "px"),
58864
58883
  primary: '',
58865
- secondary: "".concat(rect[dimension] - seperatorAbsolutePx, "px")
58884
+ secondary: clamp(rect[dimension] - seperatorAbsolutePx, 'px')
58866
58885
  };
58867
58886
  }
58868
- var primary = "clamp(".concat(offset, "px, ").concat(valueNow, "%, calc(100% - ").concat(offset, "px))");
58869
58887
  return {
58870
58888
  grid: "min(calc(".concat(valueNow, "% - ").concat(gap / 2, "px), calc(100% - ").concat(gap, "px)) 1fr"),
58871
- primary: primary,
58872
- secondary: "calc(100% - ".concat(primary, ")")
58889
+ primary: clamp(valueNow, '%'),
58890
+ secondary: "calc(100% - ".concat(clamp(valueNow, '%'), ")")
58873
58891
  };
58874
58892
  };
58875
58893
 
@@ -59084,7 +59102,7 @@ var useBoundary = function (separator, boundaries) {
59084
59102
  }
59085
59103
  };
59086
59104
 
59087
- var canceEvent = function (e) {
59105
+ var cancelEvent = function (e) {
59088
59106
  if (e.currentTarget !== e.target) {
59089
59107
  e.preventDefault();
59090
59108
  e.stopPropagation();
@@ -59113,7 +59131,7 @@ var Separator = forwardRef$1(function (_a, forwardRef) {
59113
59131
  }
59114
59132
  (_a = props === null || props === void 0 ? void 0 : props.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(props, e);
59115
59133
  }, className: clsx('Separator', props.className) }),
59116
- 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: canceEvent, onTouchStart: canceEvent }),
59134
+ 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 }),
59117
59135
  React__default.createElement(Control, __assign({}, parts === null || parts === void 0 ? void 0 : parts.primary, { side: "primary", onClick: function (e) {
59118
59136
  var _a, _b;
59119
59137
  setValueNow(controlClickHandler(e, 'primary'));