@xsolla/xui-stepper 0.136.0 → 0.138.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/package.json +4 -4
- package/web/index.js +112 -34
- package/web/index.js.map +1 -1
- package/web/index.mjs +95 -17
- package/web/index.mjs.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xsolla/xui-stepper",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.138.0",
|
|
4
4
|
"main": "./web/index.js",
|
|
5
5
|
"module": "./web/index.mjs",
|
|
6
6
|
"types": "./web/index.d.ts",
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"test:coverage": "vitest run --coverage"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@xsolla/xui-core": "0.
|
|
18
|
-
"@xsolla/xui-icons": "0.
|
|
19
|
-
"@xsolla/xui-primitives-core": "0.
|
|
17
|
+
"@xsolla/xui-core": "0.138.0",
|
|
18
|
+
"@xsolla/xui-icons": "0.138.0",
|
|
19
|
+
"@xsolla/xui-primitives-core": "0.138.0"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
22
|
"react": ">=16.8.0",
|
package/web/index.js
CHANGED
|
@@ -38,13 +38,85 @@ __export(index_exports, {
|
|
|
38
38
|
module.exports = __toCommonJS(index_exports);
|
|
39
39
|
|
|
40
40
|
// src/Stepper.tsx
|
|
41
|
-
var
|
|
41
|
+
var import_react5 = require("react");
|
|
42
42
|
|
|
43
43
|
// ../primitives-web/src/Box.tsx
|
|
44
|
-
var
|
|
44
|
+
var import_react2 = __toESM(require("react"));
|
|
45
45
|
var import_styled_components = __toESM(require("styled-components"));
|
|
46
|
+
|
|
47
|
+
// ../primitives-web/src/filterDOMProps.ts
|
|
48
|
+
var import_react = __toESM(require("react"));
|
|
49
|
+
|
|
50
|
+
// ../../node_modules/@emotion/memoize/dist/memoize.esm.js
|
|
51
|
+
function memoize(fn) {
|
|
52
|
+
var cache = {};
|
|
53
|
+
return function(arg) {
|
|
54
|
+
if (cache[arg] === void 0) cache[arg] = fn(arg);
|
|
55
|
+
return cache[arg];
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
var memoize_esm_default = memoize;
|
|
59
|
+
|
|
60
|
+
// ../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js
|
|
61
|
+
var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/;
|
|
62
|
+
var index = memoize_esm_default(
|
|
63
|
+
function(prop) {
|
|
64
|
+
return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110 && prop.charCodeAt(2) < 91;
|
|
65
|
+
}
|
|
66
|
+
/* Z+1 */
|
|
67
|
+
);
|
|
68
|
+
var is_prop_valid_esm_default = index;
|
|
69
|
+
|
|
70
|
+
// ../primitives-web/src/filterDOMProps.ts
|
|
71
|
+
var ADDITIONAL_BLOCKED_PROPS = /* @__PURE__ */ new Set([
|
|
72
|
+
// RN-only event handlers (pass isPropValid's on* pattern)
|
|
73
|
+
"onPress",
|
|
74
|
+
"onChangeText",
|
|
75
|
+
"onLayout",
|
|
76
|
+
"onMoveShouldSetResponder",
|
|
77
|
+
"onResponderGrant",
|
|
78
|
+
"onResponderMove",
|
|
79
|
+
"onResponderRelease",
|
|
80
|
+
"onResponderTerminate",
|
|
81
|
+
// SVG attributes that pass isPropValid
|
|
82
|
+
"strokeWidth",
|
|
83
|
+
// CSS properties that pass isPropValid but are used as component props
|
|
84
|
+
"overflow",
|
|
85
|
+
"cursor",
|
|
86
|
+
"fontSize",
|
|
87
|
+
"fontWeight",
|
|
88
|
+
"fontFamily",
|
|
89
|
+
"textDecoration"
|
|
90
|
+
]);
|
|
91
|
+
function shouldForwardProp(key) {
|
|
92
|
+
if (ADDITIONAL_BLOCKED_PROPS.has(key)) return false;
|
|
93
|
+
return is_prop_valid_esm_default(key);
|
|
94
|
+
}
|
|
95
|
+
function createFilteredElement(defaultTag) {
|
|
96
|
+
const Component = import_react.default.forwardRef(
|
|
97
|
+
({ children, elementType, ...props }, ref) => {
|
|
98
|
+
const Tag = elementType || defaultTag;
|
|
99
|
+
const htmlProps = {};
|
|
100
|
+
for (const key of Object.keys(props)) {
|
|
101
|
+
if (shouldForwardProp(key)) {
|
|
102
|
+
htmlProps[key] = props[key];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return import_react.default.createElement(
|
|
106
|
+
Tag,
|
|
107
|
+
{ ref, ...htmlProps },
|
|
108
|
+
children
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
);
|
|
112
|
+
Component.displayName = `Filtered(${defaultTag})`;
|
|
113
|
+
return Component;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// ../primitives-web/src/Box.tsx
|
|
46
117
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
47
|
-
var
|
|
118
|
+
var FilteredDiv = createFilteredElement("div");
|
|
119
|
+
var StyledBox = (0, import_styled_components.default)(FilteredDiv)`
|
|
48
120
|
display: flex;
|
|
49
121
|
box-sizing: border-box;
|
|
50
122
|
background-color: ${(props) => props.backgroundColor || "transparent"};
|
|
@@ -131,7 +203,7 @@ var StyledBox = import_styled_components.default.div`
|
|
|
131
203
|
${(props) => props.pressStyle?.backgroundColor && `background-color: ${props.pressStyle.backgroundColor};`}
|
|
132
204
|
}
|
|
133
205
|
`;
|
|
134
|
-
var Box =
|
|
206
|
+
var Box = import_react2.default.forwardRef(
|
|
135
207
|
({
|
|
136
208
|
children,
|
|
137
209
|
onPress,
|
|
@@ -156,6 +228,8 @@ var Box = import_react.default.forwardRef(
|
|
|
156
228
|
type,
|
|
157
229
|
disabled,
|
|
158
230
|
id,
|
|
231
|
+
testID,
|
|
232
|
+
"data-testid": dataTestId,
|
|
159
233
|
...props
|
|
160
234
|
}, ref) => {
|
|
161
235
|
if (as === "img" && src) {
|
|
@@ -183,7 +257,7 @@ var Box = import_react.default.forwardRef(
|
|
|
183
257
|
StyledBox,
|
|
184
258
|
{
|
|
185
259
|
ref,
|
|
186
|
-
as,
|
|
260
|
+
elementType: as,
|
|
187
261
|
id,
|
|
188
262
|
type: as === "button" ? type || "button" : void 0,
|
|
189
263
|
disabled: as === "button" ? disabled : void 0,
|
|
@@ -203,6 +277,7 @@ var Box = import_react.default.forwardRef(
|
|
|
203
277
|
"aria-controls": ariaControls,
|
|
204
278
|
"aria-live": ariaLive,
|
|
205
279
|
tabIndex: tabIndex !== void 0 ? tabIndex : void 0,
|
|
280
|
+
"data-testid": dataTestId || testID,
|
|
206
281
|
...props,
|
|
207
282
|
children
|
|
208
283
|
}
|
|
@@ -214,7 +289,8 @@ Box.displayName = "Box";
|
|
|
214
289
|
// ../primitives-web/src/Text.tsx
|
|
215
290
|
var import_styled_components2 = __toESM(require("styled-components"));
|
|
216
291
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
217
|
-
var
|
|
292
|
+
var FilteredSpan = createFilteredElement("span");
|
|
293
|
+
var StyledText = (0, import_styled_components2.default)(FilteredSpan)`
|
|
218
294
|
color: ${(props) => props.color || "inherit"};
|
|
219
295
|
font-size: ${(props) => typeof props.fontSize === "number" ? `${props.fontSize}px` : props.fontSize || "inherit"};
|
|
220
296
|
font-weight: ${(props) => props.fontWeight || "normal"};
|
|
@@ -255,7 +331,8 @@ var rotate = import_styled_components3.keyframes`
|
|
|
255
331
|
transform: rotate(360deg);
|
|
256
332
|
}
|
|
257
333
|
`;
|
|
258
|
-
var
|
|
334
|
+
var FilteredDiv2 = createFilteredElement("div");
|
|
335
|
+
var StyledSpinner = (0, import_styled_components3.default)(FilteredDiv2)`
|
|
259
336
|
width: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
|
|
260
337
|
height: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
|
|
261
338
|
border: ${(props) => props.strokeWidth || 2}px solid
|
|
@@ -291,7 +368,8 @@ Spinner.displayName = "Spinner";
|
|
|
291
368
|
// ../primitives-web/src/Divider.tsx
|
|
292
369
|
var import_styled_components4 = __toESM(require("styled-components"));
|
|
293
370
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
294
|
-
var
|
|
371
|
+
var FilteredDiv3 = createFilteredElement("div");
|
|
372
|
+
var StyledDivider = (0, import_styled_components4.default)(FilteredDiv3)`
|
|
295
373
|
background-color: ${(props) => props.dashStroke ? "transparent" : props.color || "rgba(255, 255, 255, 0.15)"};
|
|
296
374
|
width: ${(props) => props.vertical ? typeof props.width === "number" ? `${props.width}px` : props.width || "1px" : "100%"};
|
|
297
375
|
height: ${(props) => props.vertical ? "100%" : typeof props.height === "number" ? `${props.height}px` : props.height || "1px"};
|
|
@@ -317,7 +395,7 @@ var Divider = (props) => {
|
|
|
317
395
|
var import_xui_core3 = require("@xsolla/xui-core");
|
|
318
396
|
|
|
319
397
|
// src/Step.tsx
|
|
320
|
-
var
|
|
398
|
+
var import_react4 = require("react");
|
|
321
399
|
var import_xui_core2 = require("@xsolla/xui-core");
|
|
322
400
|
var import_xui_icons = require("@xsolla/xui-icons");
|
|
323
401
|
|
|
@@ -481,9 +559,9 @@ var StepTail = ({
|
|
|
481
559
|
};
|
|
482
560
|
|
|
483
561
|
// src/hooks/useStepHoverStyles.ts
|
|
484
|
-
var
|
|
562
|
+
var import_react3 = require("react");
|
|
485
563
|
var useStepHoverStyles = (variantUI, state, className, theme, isLast, disabled, noClick, palette) => {
|
|
486
|
-
(0,
|
|
564
|
+
(0, import_react3.useEffect)(() => {
|
|
487
565
|
if (!isWeb()) {
|
|
488
566
|
return;
|
|
489
567
|
}
|
|
@@ -610,7 +688,7 @@ var StepState = ({
|
|
|
610
688
|
className
|
|
611
689
|
}) => {
|
|
612
690
|
const paletteColor = getPaletteColor(palette, theme, "active");
|
|
613
|
-
const iconStyles = (0,
|
|
691
|
+
const iconStyles = (0, import_react4.useMemo)(() => {
|
|
614
692
|
if (variantUI === "simple") {
|
|
615
693
|
switch (state) {
|
|
616
694
|
case "current":
|
|
@@ -760,7 +838,7 @@ var Step = ({
|
|
|
760
838
|
}) => {
|
|
761
839
|
const { theme, mode } = (0, import_xui_core2.useResolvedTheme)({ themeMode, themeProductContext });
|
|
762
840
|
const sizeStyles = theme.sizing.stepper(size);
|
|
763
|
-
const stepClassName = (0,
|
|
841
|
+
const stepClassName = (0, import_react4.useMemo)(
|
|
764
842
|
() => `step-${stepNumber}-${variantUI}-${direction}-${size}-${state}-${palette}`,
|
|
765
843
|
[stepNumber, variantUI, direction, size, state, palette]
|
|
766
844
|
);
|
|
@@ -774,7 +852,7 @@ var Step = ({
|
|
|
774
852
|
noClick,
|
|
775
853
|
palette
|
|
776
854
|
);
|
|
777
|
-
const stepClick = (0,
|
|
855
|
+
const stepClick = (0, import_react4.useCallback)(() => {
|
|
778
856
|
if (onClick && !disabled && !noClick) {
|
|
779
857
|
onClick({
|
|
780
858
|
number: stepNumber,
|
|
@@ -787,7 +865,7 @@ var Step = ({
|
|
|
787
865
|
});
|
|
788
866
|
}
|
|
789
867
|
}, [onClick, disabled, noClick, stepNumber, title, description, state]);
|
|
790
|
-
const stepAriaLabel = (0,
|
|
868
|
+
const stepAriaLabel = (0, import_react4.useMemo)(() => {
|
|
791
869
|
const stepNum = stepNumber + 1;
|
|
792
870
|
const titleText = typeof title === "string" ? title : "Step";
|
|
793
871
|
const descriptionText = description && typeof description === "string" ? description : "";
|
|
@@ -809,7 +887,7 @@ var Step = ({
|
|
|
809
887
|
}
|
|
810
888
|
return label;
|
|
811
889
|
}, [stepNumber, title, description, state, isLast]);
|
|
812
|
-
const handleKeyDown = (0,
|
|
890
|
+
const handleKeyDown = (0, import_react4.useCallback)(
|
|
813
891
|
(event) => {
|
|
814
892
|
if (event.key === "Enter" && !disabled && !noClick) {
|
|
815
893
|
event.preventDefault();
|
|
@@ -821,7 +899,7 @@ var Step = ({
|
|
|
821
899
|
},
|
|
822
900
|
[stepClick, disabled, noClick]
|
|
823
901
|
);
|
|
824
|
-
const handleKeyUp = (0,
|
|
902
|
+
const handleKeyUp = (0, import_react4.useCallback)(
|
|
825
903
|
(event) => {
|
|
826
904
|
if (event.key === " " && !disabled && !noClick) {
|
|
827
905
|
event.preventDefault();
|
|
@@ -832,7 +910,7 @@ var Step = ({
|
|
|
832
910
|
);
|
|
833
911
|
const isInteractive = !disabled && !noClick && !!onClick;
|
|
834
912
|
const isCurrent = state === "current";
|
|
835
|
-
const titleStyles = (0,
|
|
913
|
+
const titleStyles = (0, import_react4.useMemo)(() => {
|
|
836
914
|
if (variantUI === "simple") {
|
|
837
915
|
const sizeStylesMap = {
|
|
838
916
|
sm: {
|
|
@@ -890,7 +968,7 @@ var Step = ({
|
|
|
890
968
|
};
|
|
891
969
|
}
|
|
892
970
|
}, [variantUI, direction, size, state, theme, palette]);
|
|
893
|
-
const descriptionStyles = (0,
|
|
971
|
+
const descriptionStyles = (0, import_react4.useMemo)(() => {
|
|
894
972
|
const sizeStylesMap = {
|
|
895
973
|
sm: {
|
|
896
974
|
fontSize: 12,
|
|
@@ -913,7 +991,7 @@ var Step = ({
|
|
|
913
991
|
fontWeight: "400"
|
|
914
992
|
};
|
|
915
993
|
}, [size, variantUI, state, theme]);
|
|
916
|
-
const contentWrapperStyles = (0,
|
|
994
|
+
const contentWrapperStyles = (0, import_react4.useMemo)(() => {
|
|
917
995
|
if (variantUI === "simple") {
|
|
918
996
|
if (direction === "horizontal") {
|
|
919
997
|
return {
|
|
@@ -941,7 +1019,7 @@ var Step = ({
|
|
|
941
1019
|
return baseStyles;
|
|
942
1020
|
}
|
|
943
1021
|
}, [variantUI, direction, size]);
|
|
944
|
-
const stepWrapperStyles = (0,
|
|
1022
|
+
const stepWrapperStyles = (0, import_react4.useMemo)(() => {
|
|
945
1023
|
if (variantUI === "current") {
|
|
946
1024
|
if (direction === "horizontal") {
|
|
947
1025
|
return {
|
|
@@ -1350,8 +1428,8 @@ var Step = ({
|
|
|
1350
1428
|
|
|
1351
1429
|
// src/Stepper.tsx
|
|
1352
1430
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1353
|
-
var
|
|
1354
|
-
var Stepper = (0,
|
|
1431
|
+
var import_react6 = require("react");
|
|
1432
|
+
var Stepper = (0, import_react5.forwardRef)(
|
|
1355
1433
|
({
|
|
1356
1434
|
direction = "horizontal",
|
|
1357
1435
|
variantUI = "current",
|
|
@@ -1402,26 +1480,26 @@ var Stepper = (0, import_react4.forwardRef)(
|
|
|
1402
1480
|
];
|
|
1403
1481
|
let firstColoredTailIndex = -1;
|
|
1404
1482
|
let lastColoredTailIndex = -1;
|
|
1405
|
-
steps.forEach((step,
|
|
1406
|
-
if (step.state && coloredTailStates.includes(step.state) &&
|
|
1483
|
+
steps.forEach((step, index2) => {
|
|
1484
|
+
if (step.state && coloredTailStates.includes(step.state) && index2 < steps.length - 1) {
|
|
1407
1485
|
if (firstColoredTailIndex === -1) {
|
|
1408
|
-
firstColoredTailIndex =
|
|
1486
|
+
firstColoredTailIndex = index2;
|
|
1409
1487
|
}
|
|
1410
|
-
lastColoredTailIndex =
|
|
1488
|
+
lastColoredTailIndex = index2;
|
|
1411
1489
|
}
|
|
1412
1490
|
});
|
|
1413
|
-
return steps.map((step,
|
|
1414
|
-
const isLast =
|
|
1415
|
-
const isFirstColoredTail =
|
|
1416
|
-
const isLastColoredTail =
|
|
1417
|
-
return /* @__PURE__ */ (0,
|
|
1491
|
+
return steps.map((step, index2) => {
|
|
1492
|
+
const isLast = index2 === steps.length - 1;
|
|
1493
|
+
const isFirstColoredTail = index2 === firstColoredTailIndex;
|
|
1494
|
+
const isLastColoredTail = index2 === lastColoredTailIndex;
|
|
1495
|
+
return /* @__PURE__ */ (0, import_react6.createElement)(
|
|
1418
1496
|
Step,
|
|
1419
1497
|
{
|
|
1420
1498
|
size,
|
|
1421
1499
|
...step,
|
|
1422
|
-
key: step.key || `stepper-${
|
|
1500
|
+
key: step.key || `stepper-${index2}`,
|
|
1423
1501
|
onClick,
|
|
1424
|
-
stepNumber:
|
|
1502
|
+
stepNumber: index2,
|
|
1425
1503
|
tail: tail && variantUI === "simple" && !isLast,
|
|
1426
1504
|
direction,
|
|
1427
1505
|
variantUI,
|