@xsolla/xui-stepper 0.131.0 → 0.132.0-pr226.1776242322

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsolla/xui-stepper",
3
- "version": "0.131.0",
3
+ "version": "0.132.0-pr226.1776242322",
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.131.0",
18
- "@xsolla/xui-icons": "0.131.0",
19
- "@xsolla/xui-primitives-core": "0.131.0"
17
+ "@xsolla/xui-core": "0.132.0-pr226.1776242322",
18
+ "@xsolla/xui-icons": "0.132.0-pr226.1776242322",
19
+ "@xsolla/xui-primitives-core": "0.132.0-pr226.1776242322"
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 import_react4 = require("react");
41
+ var import_react5 = require("react");
42
42
 
43
43
  // ../primitives-web/src/Box.tsx
44
- var import_react = __toESM(require("react"));
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 StyledBox = import_styled_components.default.div`
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 = import_react.default.forwardRef(
241
+ var Box = import_react2.default.forwardRef(
135
242
  ({
136
243
  children,
137
244
  onPress,
@@ -156,6 +263,8 @@ var Box = import_react.default.forwardRef(
156
263
  type,
157
264
  disabled,
158
265
  id,
266
+ testID,
267
+ "data-testid": dataTestId,
159
268
  ...props
160
269
  }, ref) => {
161
270
  if (as === "img" && src) {
@@ -183,7 +292,7 @@ var Box = import_react.default.forwardRef(
183
292
  StyledBox,
184
293
  {
185
294
  ref,
186
- as,
295
+ elementType: as,
187
296
  id,
188
297
  type: as === "button" ? type || "button" : void 0,
189
298
  disabled: as === "button" ? disabled : void 0,
@@ -203,6 +312,7 @@ var Box = import_react.default.forwardRef(
203
312
  "aria-controls": ariaControls,
204
313
  "aria-live": ariaLive,
205
314
  tabIndex: tabIndex !== void 0 ? tabIndex : void 0,
315
+ "data-testid": dataTestId || testID,
206
316
  ...props,
207
317
  children
208
318
  }
@@ -214,7 +324,8 @@ Box.displayName = "Box";
214
324
  // ../primitives-web/src/Text.tsx
215
325
  var import_styled_components2 = __toESM(require("styled-components"));
216
326
  var import_jsx_runtime2 = require("react/jsx-runtime");
217
- var StyledText = import_styled_components2.default.span`
327
+ var FilteredSpan = createFilteredElement("span");
328
+ var StyledText = (0, import_styled_components2.default)(FilteredSpan)`
218
329
  color: ${(props) => props.color || "inherit"};
219
330
  font-size: ${(props) => typeof props.fontSize === "number" ? `${props.fontSize}px` : props.fontSize || "inherit"};
220
331
  font-weight: ${(props) => props.fontWeight || "normal"};
@@ -255,7 +366,8 @@ var rotate = import_styled_components3.keyframes`
255
366
  transform: rotate(360deg);
256
367
  }
257
368
  `;
258
- var StyledSpinner = import_styled_components3.default.div`
369
+ var FilteredDiv2 = createFilteredElement("div");
370
+ var StyledSpinner = (0, import_styled_components3.default)(FilteredDiv2)`
259
371
  width: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
260
372
  height: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
261
373
  border: ${(props) => props.strokeWidth || 2}px solid
@@ -291,7 +403,8 @@ Spinner.displayName = "Spinner";
291
403
  // ../primitives-web/src/Divider.tsx
292
404
  var import_styled_components4 = __toESM(require("styled-components"));
293
405
  var import_jsx_runtime4 = require("react/jsx-runtime");
294
- var StyledDivider = import_styled_components4.default.div`
406
+ var FilteredDiv3 = createFilteredElement("div");
407
+ var StyledDivider = (0, import_styled_components4.default)(FilteredDiv3)`
295
408
  background-color: ${(props) => props.dashStroke ? "transparent" : props.color || "rgba(255, 255, 255, 0.15)"};
296
409
  width: ${(props) => props.vertical ? typeof props.width === "number" ? `${props.width}px` : props.width || "1px" : "100%"};
297
410
  height: ${(props) => props.vertical ? "100%" : typeof props.height === "number" ? `${props.height}px` : props.height || "1px"};
@@ -317,7 +430,7 @@ var Divider = (props) => {
317
430
  var import_xui_core3 = require("@xsolla/xui-core");
318
431
 
319
432
  // src/Step.tsx
320
- var import_react3 = require("react");
433
+ var import_react4 = require("react");
321
434
  var import_xui_core2 = require("@xsolla/xui-core");
322
435
  var import_xui_icons = require("@xsolla/xui-icons");
323
436
 
@@ -481,9 +594,9 @@ var StepTail = ({
481
594
  };
482
595
 
483
596
  // src/hooks/useStepHoverStyles.ts
484
- var import_react2 = require("react");
597
+ var import_react3 = require("react");
485
598
  var useStepHoverStyles = (variantUI, state, className, theme, isLast, disabled, noClick, palette) => {
486
- (0, import_react2.useEffect)(() => {
599
+ (0, import_react3.useEffect)(() => {
487
600
  if (!isWeb()) {
488
601
  return;
489
602
  }
@@ -610,7 +723,7 @@ var StepState = ({
610
723
  className
611
724
  }) => {
612
725
  const paletteColor = getPaletteColor(palette, theme, "active");
613
- const iconStyles = (0, import_react3.useMemo)(() => {
726
+ const iconStyles = (0, import_react4.useMemo)(() => {
614
727
  if (variantUI === "simple") {
615
728
  switch (state) {
616
729
  case "current":
@@ -760,7 +873,7 @@ var Step = ({
760
873
  }) => {
761
874
  const { theme, mode } = (0, import_xui_core2.useResolvedTheme)({ themeMode, themeProductContext });
762
875
  const sizeStyles = theme.sizing.stepper(size);
763
- const stepClassName = (0, import_react3.useMemo)(
876
+ const stepClassName = (0, import_react4.useMemo)(
764
877
  () => `step-${stepNumber}-${variantUI}-${direction}-${size}-${state}-${palette}`,
765
878
  [stepNumber, variantUI, direction, size, state, palette]
766
879
  );
@@ -774,7 +887,7 @@ var Step = ({
774
887
  noClick,
775
888
  palette
776
889
  );
777
- const stepClick = (0, import_react3.useCallback)(() => {
890
+ const stepClick = (0, import_react4.useCallback)(() => {
778
891
  if (onClick && !disabled && !noClick) {
779
892
  onClick({
780
893
  number: stepNumber,
@@ -787,7 +900,7 @@ var Step = ({
787
900
  });
788
901
  }
789
902
  }, [onClick, disabled, noClick, stepNumber, title, description, state]);
790
- const stepAriaLabel = (0, import_react3.useMemo)(() => {
903
+ const stepAriaLabel = (0, import_react4.useMemo)(() => {
791
904
  const stepNum = stepNumber + 1;
792
905
  const titleText = typeof title === "string" ? title : "Step";
793
906
  const descriptionText = description && typeof description === "string" ? description : "";
@@ -809,7 +922,7 @@ var Step = ({
809
922
  }
810
923
  return label;
811
924
  }, [stepNumber, title, description, state, isLast]);
812
- const handleKeyDown = (0, import_react3.useCallback)(
925
+ const handleKeyDown = (0, import_react4.useCallback)(
813
926
  (event) => {
814
927
  if (event.key === "Enter" && !disabled && !noClick) {
815
928
  event.preventDefault();
@@ -821,7 +934,7 @@ var Step = ({
821
934
  },
822
935
  [stepClick, disabled, noClick]
823
936
  );
824
- const handleKeyUp = (0, import_react3.useCallback)(
937
+ const handleKeyUp = (0, import_react4.useCallback)(
825
938
  (event) => {
826
939
  if (event.key === " " && !disabled && !noClick) {
827
940
  event.preventDefault();
@@ -832,7 +945,7 @@ var Step = ({
832
945
  );
833
946
  const isInteractive = !disabled && !noClick && !!onClick;
834
947
  const isCurrent = state === "current";
835
- const titleStyles = (0, import_react3.useMemo)(() => {
948
+ const titleStyles = (0, import_react4.useMemo)(() => {
836
949
  if (variantUI === "simple") {
837
950
  const sizeStylesMap = {
838
951
  sm: {
@@ -890,7 +1003,7 @@ var Step = ({
890
1003
  };
891
1004
  }
892
1005
  }, [variantUI, direction, size, state, theme, palette]);
893
- const descriptionStyles = (0, import_react3.useMemo)(() => {
1006
+ const descriptionStyles = (0, import_react4.useMemo)(() => {
894
1007
  const sizeStylesMap = {
895
1008
  sm: {
896
1009
  fontSize: 12,
@@ -913,7 +1026,7 @@ var Step = ({
913
1026
  fontWeight: "400"
914
1027
  };
915
1028
  }, [size, variantUI, state, theme]);
916
- const contentWrapperStyles = (0, import_react3.useMemo)(() => {
1029
+ const contentWrapperStyles = (0, import_react4.useMemo)(() => {
917
1030
  if (variantUI === "simple") {
918
1031
  if (direction === "horizontal") {
919
1032
  return {
@@ -941,7 +1054,7 @@ var Step = ({
941
1054
  return baseStyles;
942
1055
  }
943
1056
  }, [variantUI, direction, size]);
944
- const stepWrapperStyles = (0, import_react3.useMemo)(() => {
1057
+ const stepWrapperStyles = (0, import_react4.useMemo)(() => {
945
1058
  if (variantUI === "current") {
946
1059
  if (direction === "horizontal") {
947
1060
  return {
@@ -1350,8 +1463,8 @@ var Step = ({
1350
1463
 
1351
1464
  // src/Stepper.tsx
1352
1465
  var import_jsx_runtime7 = require("react/jsx-runtime");
1353
- var import_react5 = require("react");
1354
- var Stepper = (0, import_react4.forwardRef)(
1466
+ var import_react6 = require("react");
1467
+ var Stepper = (0, import_react5.forwardRef)(
1355
1468
  ({
1356
1469
  direction = "horizontal",
1357
1470
  variantUI = "current",
@@ -1414,7 +1527,7 @@ var Stepper = (0, import_react4.forwardRef)(
1414
1527
  const isLast = index === steps.length - 1;
1415
1528
  const isFirstColoredTail = index === firstColoredTailIndex;
1416
1529
  const isLastColoredTail = index === lastColoredTailIndex;
1417
- return /* @__PURE__ */ (0, import_react5.createElement)(
1530
+ return /* @__PURE__ */ (0, import_react6.createElement)(
1418
1531
  Step,
1419
1532
  {
1420
1533
  size,