@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/CHANGELOG.md +14 -0
- package/dist/components/LuiLoadingSpinner/LuiLoadingSpinner.d.ts +3 -1
- package/dist/components/Splitter/helpers/transition.d.ts +1 -1
- package/dist/index.js +57 -44
- package/dist/index.js.map +1 -1
- package/dist/lui.esm.js +57 -44
- package/dist/lui.esm.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [21.27.0](https://github.com/linz/lui/compare/v21.26.3...v21.27.0) (2024-04-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* adds optional dataTestId to LuiLoadingSpinner ([#1113](https://github.com/linz/lui/issues/1113)) ([dbad239](https://github.com/linz/lui/commit/dbad239e66b27300220c08b9cd8d094564724ed1))
|
|
7
|
+
|
|
8
|
+
## [21.26.3](https://github.com/linz/lui/compare/v21.26.2...v21.26.3) (2024-04-22)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **Splitter:** make transition be triggered manually ([#1112](https://github.com/linz/lui/issues/1112)) ([f07a612](https://github.com/linz/lui/commit/f07a612e9c28d8f88186d3d038b1a3334c7cb065))
|
|
14
|
+
|
|
1
15
|
## [21.26.2](https://github.com/linz/lui/compare/v21.26.1...v21.26.2) (2024-04-18)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -8,6 +8,8 @@ interface LuiMiniSpinnerProps {
|
|
|
8
8
|
divProps?: any;
|
|
9
9
|
}
|
|
10
10
|
export declare const LuiMiniSpinner: (props: LuiMiniSpinnerProps) => JSX.Element;
|
|
11
|
-
export declare const LuiLoadingSpinner: (
|
|
11
|
+
export declare const LuiLoadingSpinner: (props: {
|
|
12
|
+
dataTestId?: string;
|
|
13
|
+
}) => JSX.Element;
|
|
12
14
|
export declare function isChromatic(): boolean;
|
|
13
15
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -31491,7 +31491,11 @@ var renderSettings = {
|
|
|
31491
31491
|
preserveAspectRatio: 'xMidYMid slice'
|
|
31492
31492
|
};
|
|
31493
31493
|
var LuiLoadingSpinnerBase = function (props) {
|
|
31494
|
-
|
|
31494
|
+
var testId = 'loading-spinner';
|
|
31495
|
+
if (props.dataTestId) {
|
|
31496
|
+
testId += "-".concat(props.dataTestId);
|
|
31497
|
+
}
|
|
31498
|
+
return (React__default["default"].createElement("div", { className: "LuiLoadingSpinnerBase", "data-testid": testId },
|
|
31495
31499
|
React__default["default"].createElement(LuiLottieLight, { animationData: props.animationData, loop: true, autoplay: autoplay, rendererSettings: renderSettings, style: style })));
|
|
31496
31500
|
};
|
|
31497
31501
|
/**
|
|
@@ -31509,8 +31513,8 @@ var LuiMiniSpinner = function (props) {
|
|
|
31509
31513
|
preserveAspectRatio: 'xMidYMid slice'
|
|
31510
31514
|
}, style: { height: props.size, width: props.size } })));
|
|
31511
31515
|
};
|
|
31512
|
-
var LuiLoadingSpinner = function () {
|
|
31513
|
-
return React__default["default"].createElement(LuiLoadingSpinnerBase, { animationData: loaderData });
|
|
31516
|
+
var LuiLoadingSpinner = function (props) {
|
|
31517
|
+
return (React__default["default"].createElement(LuiLoadingSpinnerBase, { animationData: loaderData, dataTestId: props.dataTestId }));
|
|
31514
31518
|
};
|
|
31515
31519
|
// this function was extracted from chromatic/isChromatic. It was causing TS issues for the consumer
|
|
31516
31520
|
function isChromatic() {
|
|
@@ -58439,7 +58443,7 @@ var LuiPagination = function (_a) {
|
|
|
58439
58443
|
React__default["default"].createElement("div", { className: "pagination" }, renderPaginationNumbers())))));
|
|
58440
58444
|
};
|
|
58441
58445
|
|
|
58442
|
-
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:
|
|
58446
|
+
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}";
|
|
58443
58447
|
styleInject(css_248z$2);
|
|
58444
58448
|
|
|
58445
58449
|
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}";
|
|
@@ -58681,29 +58685,6 @@ var getSeparatorPosition = function (separatorRef, drag) {
|
|
|
58681
58685
|
return clampSeparator({ value: value });
|
|
58682
58686
|
};
|
|
58683
58687
|
|
|
58684
|
-
var transitionFactory = function (attrs, ms) {
|
|
58685
|
-
return attrs.map(function (key) { return "".concat(key, " ").concat(ms, "ms"); }).join(', ');
|
|
58686
|
-
};
|
|
58687
|
-
var barTransition = function (ms) {
|
|
58688
|
-
return transitionFactory(['left', 'top', 'right', 'bottom'], ms);
|
|
58689
|
-
};
|
|
58690
|
-
var gridTransition = function (ms) {
|
|
58691
|
-
return transitionFactory(['grid-template-columns', 'grid-template-rows'], ms);
|
|
58692
|
-
};
|
|
58693
|
-
var transition = function (separator) {
|
|
58694
|
-
var _a;
|
|
58695
|
-
var splitter = (_a = separator.current) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
58696
|
-
var delay = function (ms) {
|
|
58697
|
-
if (splitter) {
|
|
58698
|
-
separator.current.style.transition = barTransition(ms);
|
|
58699
|
-
splitter.style.transition = gridTransition(ms);
|
|
58700
|
-
}
|
|
58701
|
-
};
|
|
58702
|
-
var stop = function () { return delay(0); };
|
|
58703
|
-
var resume = function () { return delay(300); };
|
|
58704
|
-
return { stop: stop, resume: resume };
|
|
58705
|
-
};
|
|
58706
|
-
|
|
58707
58688
|
/**
|
|
58708
58689
|
* It captures window events to report a new position.
|
|
58709
58690
|
* Provides necessary handlers for separator.
|
|
@@ -58747,7 +58728,6 @@ var animateSeparator = function (separatorRef, animate) {
|
|
|
58747
58728
|
var splitter = separator === null || separator === void 0 ? void 0 : separator.parentElement;
|
|
58748
58729
|
if (separator && splitter) {
|
|
58749
58730
|
if (animate === 'clear-transition') {
|
|
58750
|
-
transition(separatorRef).stop();
|
|
58751
58731
|
splitter.style.cursor =
|
|
58752
58732
|
separator.getAttribute('aria-orientation') === 'vertical'
|
|
58753
58733
|
? 'col-resize'
|
|
@@ -58755,22 +58735,40 @@ var animateSeparator = function (separatorRef, animate) {
|
|
|
58755
58735
|
splitter.classList.add('resizing');
|
|
58756
58736
|
}
|
|
58757
58737
|
else {
|
|
58758
|
-
transition(separatorRef).resume();
|
|
58759
58738
|
splitter.style.cursor = '';
|
|
58760
58739
|
splitter.classList.remove('resizing');
|
|
58761
58740
|
}
|
|
58762
58741
|
}
|
|
58763
58742
|
};
|
|
58764
58743
|
|
|
58765
|
-
var
|
|
58766
|
-
|
|
58767
|
-
|
|
58768
|
-
|
|
58769
|
-
|
|
58770
|
-
setValueNow(val, config);
|
|
58771
|
-
setCount(function (p) { return p + 1; });
|
|
58772
|
-
}, [setValueNow]);
|
|
58744
|
+
var transitionFactory = function (attrs, ms) {
|
|
58745
|
+
return attrs.map(function (key) { return "".concat(key, " ").concat(ms, "ms"); }).join(', ');
|
|
58746
|
+
};
|
|
58747
|
+
var barTransition = function (ms) {
|
|
58748
|
+
return transitionFactory(['left', 'top', 'right', 'bottom'], ms);
|
|
58773
58749
|
};
|
|
58750
|
+
var gridTransition = function (ms) {
|
|
58751
|
+
return transitionFactory(['grid-template-columns', 'grid-template-rows'], ms);
|
|
58752
|
+
};
|
|
58753
|
+
var transition = function (props) {
|
|
58754
|
+
var _a;
|
|
58755
|
+
var separator = Object.hasOwn(props, 'current')
|
|
58756
|
+
? props
|
|
58757
|
+
: { current: props };
|
|
58758
|
+
var splitter = (_a = separator.current) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
58759
|
+
var delay = function (ms) {
|
|
58760
|
+
if (splitter) {
|
|
58761
|
+
separator.current.style.transition = barTransition(ms);
|
|
58762
|
+
splitter.style.transition = gridTransition(ms);
|
|
58763
|
+
}
|
|
58764
|
+
};
|
|
58765
|
+
var stop = function () { return delay(0); };
|
|
58766
|
+
var resume = function () {
|
|
58767
|
+
return delay((splitter === null || splitter === void 0 ? void 0 : splitter.classList.contains('resizing')) ? 0 : 300);
|
|
58768
|
+
};
|
|
58769
|
+
return { stop: stop, resume: resume };
|
|
58770
|
+
};
|
|
58771
|
+
|
|
58774
58772
|
/**
|
|
58775
58773
|
* Moves separator as per ratio changes. Centers on first render if ratio is undefined.
|
|
58776
58774
|
*/
|
|
@@ -58779,6 +58777,9 @@ var useRatioEffect = function (setValueNow, separator, ratio, startAt) {
|
|
|
58779
58777
|
var _a = getSeparatorAttributes({ ref: separator }), valueMax = _a.valueMax, valueMin = _a.valueMin;
|
|
58780
58778
|
var isCalculating = valueMax === Infinity || valueMin === -Infinity;
|
|
58781
58779
|
React.useEffect(function () {
|
|
58780
|
+
if (!firstRun.current && ratio !== undefined && !isCalculating) {
|
|
58781
|
+
transition(separator).resume();
|
|
58782
|
+
}
|
|
58782
58783
|
if (firstRun.current || ratio !== undefined || isCalculating) {
|
|
58783
58784
|
firstRun.current = false;
|
|
58784
58785
|
// If ratio is undefined, setValueNow will place the separator in the middle as a starting point.
|
|
@@ -58791,7 +58792,6 @@ var useRatioEffect = function (setValueNow, separator, ratio, startAt) {
|
|
|
58791
58792
|
* Re-arranges the splitter if the limits or orientation change.
|
|
58792
58793
|
*/
|
|
58793
58794
|
var useConfigEffect = function (setValueNow, separator) {
|
|
58794
|
-
var setValueNow_static = useSetValueNow_static(setValueNow, separator);
|
|
58795
58795
|
React.useEffect(function () {
|
|
58796
58796
|
var callback = function (attr) {
|
|
58797
58797
|
return function (_a) {
|
|
@@ -58808,7 +58808,7 @@ var useConfigEffect = function (setValueNow, separator) {
|
|
|
58808
58808
|
// In such case, the newValueNow is moved along with the delimiter.
|
|
58809
58809
|
var newValueNow = !wasInBoundary ? valueNow : newValue;
|
|
58810
58810
|
if (wasInBoundary || valueMax < valueNow || valueMin > valueNow) {
|
|
58811
|
-
|
|
58811
|
+
setValueNow(newValueNow, { min: valueMin, max: valueMax });
|
|
58812
58812
|
}
|
|
58813
58813
|
else {
|
|
58814
58814
|
var threshold = 0.01;
|
|
@@ -58827,7 +58827,7 @@ var useConfigEffect = function (setValueNow, separator) {
|
|
|
58827
58827
|
}
|
|
58828
58828
|
var newVal = ((primary + offset) / container) * 100;
|
|
58829
58829
|
if (Math.abs(newVal - valueNow) >= threshold) {
|
|
58830
|
-
|
|
58830
|
+
setValueNow(newVal, { min: valueMin, max: valueMax });
|
|
58831
58831
|
}
|
|
58832
58832
|
}
|
|
58833
58833
|
};
|
|
@@ -58857,16 +58857,22 @@ var useConfigEffect = function (setValueNow, separator) {
|
|
|
58857
58857
|
var useValueNowEffect = function (setValueNow, separator) {
|
|
58858
58858
|
React.useEffect(function () {
|
|
58859
58859
|
var observer = new MutationObserver(function (_a) {
|
|
58860
|
-
var
|
|
58860
|
+
var _b = _a[0], target = _b.target, oldValue = _b.oldValue;
|
|
58861
58861
|
var el = target;
|
|
58862
58862
|
var splitter = target.parentElement;
|
|
58863
58863
|
var newValueNow = Number(el.getAttribute('aria-valuenow'));
|
|
58864
58864
|
if (!splitter.classList.contains('resizing')) {
|
|
58865
|
-
|
|
58865
|
+
if (Number(oldValue) !== newValueNow) {
|
|
58866
|
+
transition(separator).resume();
|
|
58867
|
+
setValueNow(newValueNow);
|
|
58868
|
+
}
|
|
58866
58869
|
}
|
|
58867
58870
|
});
|
|
58868
58871
|
var attributeFilter = ['aria-valuenow'];
|
|
58869
|
-
observer.observe(separator.current, {
|
|
58872
|
+
observer.observe(separator.current, {
|
|
58873
|
+
attributeFilter: attributeFilter,
|
|
58874
|
+
attributeOldValue: true
|
|
58875
|
+
});
|
|
58870
58876
|
return function () { return observer.disconnect(); };
|
|
58871
58877
|
}, [separator, setValueNow]);
|
|
58872
58878
|
};
|
|
@@ -59155,19 +59161,26 @@ var Separator = React.forwardRef(function (_a, forwardRef) {
|
|
|
59155
59161
|
var _a;
|
|
59156
59162
|
var newValueNow = keyDownHandler(e);
|
|
59157
59163
|
if (values().valueNow !== newValueNow) {
|
|
59164
|
+
transition(separator).resume();
|
|
59158
59165
|
setValueNow(newValueNow);
|
|
59159
59166
|
e.preventDefault();
|
|
59160
59167
|
}
|
|
59161
59168
|
(_a = props === null || props === void 0 ? void 0 : props.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
59162
|
-
}, className: clsx('Separator', props.className)
|
|
59169
|
+
}, className: clsx('Separator', props.className), onTransitionEnd: function (e) {
|
|
59170
|
+
var _a;
|
|
59171
|
+
transition(separator).stop();
|
|
59172
|
+
(_a = props.onTransitionEnd) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
59173
|
+
} }),
|
|
59163
59174
|
React__default["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 }),
|
|
59164
59175
|
React__default["default"].createElement(Control, __assign({}, parts === null || parts === void 0 ? void 0 : parts.primary, { side: "primary", onClick: function (e) {
|
|
59165
59176
|
var _a, _b;
|
|
59177
|
+
transition(separator).resume();
|
|
59166
59178
|
setValueNow(controlClickHandler(e, 'primary'));
|
|
59167
59179
|
(_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);
|
|
59168
59180
|
} })),
|
|
59169
59181
|
React__default["default"].createElement(Control, __assign({}, parts === null || parts === void 0 ? void 0 : parts.secondary, { side: "secondary", onClick: function (e) {
|
|
59170
59182
|
var _a, _b;
|
|
59183
|
+
transition(separator).resume();
|
|
59171
59184
|
setValueNow(controlClickHandler(e, 'secondary'));
|
|
59172
59185
|
(_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);
|
|
59173
59186
|
} })))));
|