@xsolla/xui-stepper 0.131.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsolla/xui-stepper",
3
- "version": "0.131.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.131.0",
18
- "@xsolla/xui-icons": "0.131.0",
19
- "@xsolla/xui-primitives-core": "0.131.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 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,
@@ -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 StyledText = import_styled_components2.default.span`
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 StyledSpinner = import_styled_components3.default.div`
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 StyledDivider = import_styled_components4.default.div`
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 import_react3 = require("react");
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 import_react2 = require("react");
594
+ var import_react3 = require("react");
485
595
  var useStepHoverStyles = (variantUI, state, className, theme, isLast, disabled, noClick, palette) => {
486
- (0, import_react2.useEffect)(() => {
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, import_react3.useMemo)(() => {
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, import_react3.useMemo)(
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, import_react3.useCallback)(() => {
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, import_react3.useMemo)(() => {
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, import_react3.useCallback)(
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, import_react3.useCallback)(
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, import_react3.useMemo)(() => {
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, import_react3.useMemo)(() => {
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, import_react3.useMemo)(() => {
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, import_react3.useMemo)(() => {
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 import_react5 = require("react");
1354
- var Stepper = (0, import_react4.forwardRef)(
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, import_react5.createElement)(
1527
+ return /* @__PURE__ */ (0, import_react6.createElement)(
1418
1528
  Step,
1419
1529
  {
1420
1530
  size,