@xsolla/xui-stepper 0.132.0 → 0.133.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 +134 -24
- package/web/index.js.map +1 -1
- package/web/index.mjs +117 -7
- 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.133.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.133.0",
|
|
18
|
+
"@xsolla/xui-icons": "0.133.0",
|
|
19
|
+
"@xsolla/xui-primitives-core": "0.133.0"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
22
|
"react": ">=16.8.0",
|
package/web/index.js
CHANGED
|
@@ -38,13 +38,120 @@ __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
|
+
var NON_HTML_PROPS = /* @__PURE__ */ new Set([
|
|
50
|
+
// BoxProps — layout & styling
|
|
51
|
+
"backgroundColor",
|
|
52
|
+
"borderColor",
|
|
53
|
+
"borderWidth",
|
|
54
|
+
"borderBottomWidth",
|
|
55
|
+
"borderBottomColor",
|
|
56
|
+
"borderTopWidth",
|
|
57
|
+
"borderTopColor",
|
|
58
|
+
"borderLeftWidth",
|
|
59
|
+
"borderLeftColor",
|
|
60
|
+
"borderRightWidth",
|
|
61
|
+
"borderRightColor",
|
|
62
|
+
"borderRadius",
|
|
63
|
+
"borderStyle",
|
|
64
|
+
"flexDirection",
|
|
65
|
+
"flexWrap",
|
|
66
|
+
"alignItems",
|
|
67
|
+
"justifyContent",
|
|
68
|
+
"alignSelf",
|
|
69
|
+
"flex",
|
|
70
|
+
"flexShrink",
|
|
71
|
+
"gap",
|
|
72
|
+
"position",
|
|
73
|
+
"top",
|
|
74
|
+
"bottom",
|
|
75
|
+
"left",
|
|
76
|
+
"right",
|
|
77
|
+
"outline",
|
|
78
|
+
"overflow",
|
|
79
|
+
"overflowX",
|
|
80
|
+
"overflowY",
|
|
81
|
+
"zIndex",
|
|
82
|
+
"cursor",
|
|
83
|
+
"padding",
|
|
84
|
+
"paddingHorizontal",
|
|
85
|
+
"paddingVertical",
|
|
86
|
+
"paddingTop",
|
|
87
|
+
"paddingBottom",
|
|
88
|
+
"paddingLeft",
|
|
89
|
+
"paddingRight",
|
|
90
|
+
"margin",
|
|
91
|
+
"marginTop",
|
|
92
|
+
"marginBottom",
|
|
93
|
+
"marginLeft",
|
|
94
|
+
"marginRight",
|
|
95
|
+
"minWidth",
|
|
96
|
+
"minHeight",
|
|
97
|
+
"maxWidth",
|
|
98
|
+
"maxHeight",
|
|
99
|
+
"hoverStyle",
|
|
100
|
+
"pressStyle",
|
|
101
|
+
"focusStyle",
|
|
102
|
+
"outlineColor",
|
|
103
|
+
"outlineWidth",
|
|
104
|
+
"outlineOffset",
|
|
105
|
+
"outlineStyle",
|
|
106
|
+
// BoxProps — RN-only
|
|
107
|
+
"onPress",
|
|
108
|
+
"onLayout",
|
|
109
|
+
"onMoveShouldSetResponder",
|
|
110
|
+
"onResponderGrant",
|
|
111
|
+
"onResponderMove",
|
|
112
|
+
"onResponderRelease",
|
|
113
|
+
"onResponderTerminate",
|
|
114
|
+
"testID",
|
|
115
|
+
// Box — custom element type
|
|
116
|
+
"elementType",
|
|
117
|
+
// TextProps
|
|
118
|
+
"fontSize",
|
|
119
|
+
"fontWeight",
|
|
120
|
+
"fontFamily",
|
|
121
|
+
"lineHeight",
|
|
122
|
+
"whiteSpace",
|
|
123
|
+
"textAlign",
|
|
124
|
+
"textDecoration",
|
|
125
|
+
"numberOfLines",
|
|
126
|
+
"letterSpacing",
|
|
127
|
+
"textTransform",
|
|
128
|
+
// SpinnerProps
|
|
129
|
+
"strokeWidth",
|
|
130
|
+
// DividerProps
|
|
131
|
+
"vertical",
|
|
132
|
+
"dashStroke"
|
|
133
|
+
]);
|
|
134
|
+
function createFilteredElement(defaultTag) {
|
|
135
|
+
const Component = import_react.default.forwardRef(
|
|
136
|
+
({ children, elementType, ...props }, ref) => {
|
|
137
|
+
const Tag = elementType || defaultTag;
|
|
138
|
+
const htmlProps = {};
|
|
139
|
+
for (const key of Object.keys(props)) {
|
|
140
|
+
if (!NON_HTML_PROPS.has(key)) {
|
|
141
|
+
htmlProps[key] = props[key];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return import_react.default.createElement(Tag, { ref, ...htmlProps }, children);
|
|
145
|
+
}
|
|
146
|
+
);
|
|
147
|
+
Component.displayName = `Filtered(${defaultTag})`;
|
|
148
|
+
return Component;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// ../primitives-web/src/Box.tsx
|
|
46
152
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
47
|
-
var
|
|
153
|
+
var FilteredDiv = createFilteredElement("div");
|
|
154
|
+
var StyledBox = (0, import_styled_components.default)(FilteredDiv)`
|
|
48
155
|
display: flex;
|
|
49
156
|
box-sizing: border-box;
|
|
50
157
|
background-color: ${(props) => props.backgroundColor || "transparent"};
|
|
@@ -131,7 +238,7 @@ var StyledBox = import_styled_components.default.div`
|
|
|
131
238
|
${(props) => props.pressStyle?.backgroundColor && `background-color: ${props.pressStyle.backgroundColor};`}
|
|
132
239
|
}
|
|
133
240
|
`;
|
|
134
|
-
var Box =
|
|
241
|
+
var Box = import_react2.default.forwardRef(
|
|
135
242
|
({
|
|
136
243
|
children,
|
|
137
244
|
onPress,
|
|
@@ -183,7 +290,7 @@ var Box = import_react.default.forwardRef(
|
|
|
183
290
|
StyledBox,
|
|
184
291
|
{
|
|
185
292
|
ref,
|
|
186
|
-
as,
|
|
293
|
+
elementType: as,
|
|
187
294
|
id,
|
|
188
295
|
type: as === "button" ? type || "button" : void 0,
|
|
189
296
|
disabled: as === "button" ? disabled : void 0,
|
|
@@ -214,7 +321,8 @@ Box.displayName = "Box";
|
|
|
214
321
|
// ../primitives-web/src/Text.tsx
|
|
215
322
|
var import_styled_components2 = __toESM(require("styled-components"));
|
|
216
323
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
217
|
-
var
|
|
324
|
+
var FilteredSpan = createFilteredElement("span");
|
|
325
|
+
var StyledText = (0, import_styled_components2.default)(FilteredSpan)`
|
|
218
326
|
color: ${(props) => props.color || "inherit"};
|
|
219
327
|
font-size: ${(props) => typeof props.fontSize === "number" ? `${props.fontSize}px` : props.fontSize || "inherit"};
|
|
220
328
|
font-weight: ${(props) => props.fontWeight || "normal"};
|
|
@@ -255,7 +363,8 @@ var rotate = import_styled_components3.keyframes`
|
|
|
255
363
|
transform: rotate(360deg);
|
|
256
364
|
}
|
|
257
365
|
`;
|
|
258
|
-
var
|
|
366
|
+
var FilteredDiv2 = createFilteredElement("div");
|
|
367
|
+
var StyledSpinner = (0, import_styled_components3.default)(FilteredDiv2)`
|
|
259
368
|
width: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
|
|
260
369
|
height: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
|
|
261
370
|
border: ${(props) => props.strokeWidth || 2}px solid
|
|
@@ -291,7 +400,8 @@ Spinner.displayName = "Spinner";
|
|
|
291
400
|
// ../primitives-web/src/Divider.tsx
|
|
292
401
|
var import_styled_components4 = __toESM(require("styled-components"));
|
|
293
402
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
294
|
-
var
|
|
403
|
+
var FilteredDiv3 = createFilteredElement("div");
|
|
404
|
+
var StyledDivider = (0, import_styled_components4.default)(FilteredDiv3)`
|
|
295
405
|
background-color: ${(props) => props.dashStroke ? "transparent" : props.color || "rgba(255, 255, 255, 0.15)"};
|
|
296
406
|
width: ${(props) => props.vertical ? typeof props.width === "number" ? `${props.width}px` : props.width || "1px" : "100%"};
|
|
297
407
|
height: ${(props) => props.vertical ? "100%" : typeof props.height === "number" ? `${props.height}px` : props.height || "1px"};
|
|
@@ -317,7 +427,7 @@ var Divider = (props) => {
|
|
|
317
427
|
var import_xui_core3 = require("@xsolla/xui-core");
|
|
318
428
|
|
|
319
429
|
// src/Step.tsx
|
|
320
|
-
var
|
|
430
|
+
var import_react4 = require("react");
|
|
321
431
|
var import_xui_core2 = require("@xsolla/xui-core");
|
|
322
432
|
var import_xui_icons = require("@xsolla/xui-icons");
|
|
323
433
|
|
|
@@ -481,9 +591,9 @@ var StepTail = ({
|
|
|
481
591
|
};
|
|
482
592
|
|
|
483
593
|
// src/hooks/useStepHoverStyles.ts
|
|
484
|
-
var
|
|
594
|
+
var import_react3 = require("react");
|
|
485
595
|
var useStepHoverStyles = (variantUI, state, className, theme, isLast, disabled, noClick, palette) => {
|
|
486
|
-
(0,
|
|
596
|
+
(0, import_react3.useEffect)(() => {
|
|
487
597
|
if (!isWeb()) {
|
|
488
598
|
return;
|
|
489
599
|
}
|
|
@@ -610,7 +720,7 @@ var StepState = ({
|
|
|
610
720
|
className
|
|
611
721
|
}) => {
|
|
612
722
|
const paletteColor = getPaletteColor(palette, theme, "active");
|
|
613
|
-
const iconStyles = (0,
|
|
723
|
+
const iconStyles = (0, import_react4.useMemo)(() => {
|
|
614
724
|
if (variantUI === "simple") {
|
|
615
725
|
switch (state) {
|
|
616
726
|
case "current":
|
|
@@ -760,7 +870,7 @@ var Step = ({
|
|
|
760
870
|
}) => {
|
|
761
871
|
const { theme, mode } = (0, import_xui_core2.useResolvedTheme)({ themeMode, themeProductContext });
|
|
762
872
|
const sizeStyles = theme.sizing.stepper(size);
|
|
763
|
-
const stepClassName = (0,
|
|
873
|
+
const stepClassName = (0, import_react4.useMemo)(
|
|
764
874
|
() => `step-${stepNumber}-${variantUI}-${direction}-${size}-${state}-${palette}`,
|
|
765
875
|
[stepNumber, variantUI, direction, size, state, palette]
|
|
766
876
|
);
|
|
@@ -774,7 +884,7 @@ var Step = ({
|
|
|
774
884
|
noClick,
|
|
775
885
|
palette
|
|
776
886
|
);
|
|
777
|
-
const stepClick = (0,
|
|
887
|
+
const stepClick = (0, import_react4.useCallback)(() => {
|
|
778
888
|
if (onClick && !disabled && !noClick) {
|
|
779
889
|
onClick({
|
|
780
890
|
number: stepNumber,
|
|
@@ -787,7 +897,7 @@ var Step = ({
|
|
|
787
897
|
});
|
|
788
898
|
}
|
|
789
899
|
}, [onClick, disabled, noClick, stepNumber, title, description, state]);
|
|
790
|
-
const stepAriaLabel = (0,
|
|
900
|
+
const stepAriaLabel = (0, import_react4.useMemo)(() => {
|
|
791
901
|
const stepNum = stepNumber + 1;
|
|
792
902
|
const titleText = typeof title === "string" ? title : "Step";
|
|
793
903
|
const descriptionText = description && typeof description === "string" ? description : "";
|
|
@@ -809,7 +919,7 @@ var Step = ({
|
|
|
809
919
|
}
|
|
810
920
|
return label;
|
|
811
921
|
}, [stepNumber, title, description, state, isLast]);
|
|
812
|
-
const handleKeyDown = (0,
|
|
922
|
+
const handleKeyDown = (0, import_react4.useCallback)(
|
|
813
923
|
(event) => {
|
|
814
924
|
if (event.key === "Enter" && !disabled && !noClick) {
|
|
815
925
|
event.preventDefault();
|
|
@@ -821,7 +931,7 @@ var Step = ({
|
|
|
821
931
|
},
|
|
822
932
|
[stepClick, disabled, noClick]
|
|
823
933
|
);
|
|
824
|
-
const handleKeyUp = (0,
|
|
934
|
+
const handleKeyUp = (0, import_react4.useCallback)(
|
|
825
935
|
(event) => {
|
|
826
936
|
if (event.key === " " && !disabled && !noClick) {
|
|
827
937
|
event.preventDefault();
|
|
@@ -832,7 +942,7 @@ var Step = ({
|
|
|
832
942
|
);
|
|
833
943
|
const isInteractive = !disabled && !noClick && !!onClick;
|
|
834
944
|
const isCurrent = state === "current";
|
|
835
|
-
const titleStyles = (0,
|
|
945
|
+
const titleStyles = (0, import_react4.useMemo)(() => {
|
|
836
946
|
if (variantUI === "simple") {
|
|
837
947
|
const sizeStylesMap = {
|
|
838
948
|
sm: {
|
|
@@ -890,7 +1000,7 @@ var Step = ({
|
|
|
890
1000
|
};
|
|
891
1001
|
}
|
|
892
1002
|
}, [variantUI, direction, size, state, theme, palette]);
|
|
893
|
-
const descriptionStyles = (0,
|
|
1003
|
+
const descriptionStyles = (0, import_react4.useMemo)(() => {
|
|
894
1004
|
const sizeStylesMap = {
|
|
895
1005
|
sm: {
|
|
896
1006
|
fontSize: 12,
|
|
@@ -913,7 +1023,7 @@ var Step = ({
|
|
|
913
1023
|
fontWeight: "400"
|
|
914
1024
|
};
|
|
915
1025
|
}, [size, variantUI, state, theme]);
|
|
916
|
-
const contentWrapperStyles = (0,
|
|
1026
|
+
const contentWrapperStyles = (0, import_react4.useMemo)(() => {
|
|
917
1027
|
if (variantUI === "simple") {
|
|
918
1028
|
if (direction === "horizontal") {
|
|
919
1029
|
return {
|
|
@@ -941,7 +1051,7 @@ var Step = ({
|
|
|
941
1051
|
return baseStyles;
|
|
942
1052
|
}
|
|
943
1053
|
}, [variantUI, direction, size]);
|
|
944
|
-
const stepWrapperStyles = (0,
|
|
1054
|
+
const stepWrapperStyles = (0, import_react4.useMemo)(() => {
|
|
945
1055
|
if (variantUI === "current") {
|
|
946
1056
|
if (direction === "horizontal") {
|
|
947
1057
|
return {
|
|
@@ -1350,8 +1460,8 @@ var Step = ({
|
|
|
1350
1460
|
|
|
1351
1461
|
// src/Stepper.tsx
|
|
1352
1462
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1353
|
-
var
|
|
1354
|
-
var Stepper = (0,
|
|
1463
|
+
var import_react6 = require("react");
|
|
1464
|
+
var Stepper = (0, import_react5.forwardRef)(
|
|
1355
1465
|
({
|
|
1356
1466
|
direction = "horizontal",
|
|
1357
1467
|
variantUI = "current",
|
|
@@ -1414,7 +1524,7 @@ var Stepper = (0, import_react4.forwardRef)(
|
|
|
1414
1524
|
const isLast = index === steps.length - 1;
|
|
1415
1525
|
const isFirstColoredTail = index === firstColoredTailIndex;
|
|
1416
1526
|
const isLastColoredTail = index === lastColoredTailIndex;
|
|
1417
|
-
return /* @__PURE__ */ (0,
|
|
1527
|
+
return /* @__PURE__ */ (0, import_react6.createElement)(
|
|
1418
1528
|
Step,
|
|
1419
1529
|
{
|
|
1420
1530
|
size,
|