@xsolla/xui-button 0.133.0-pr226.1776244133 → 0.134.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-button",
3
- "version": "0.133.0-pr226.1776244133",
3
+ "version": "0.134.0",
4
4
  "main": "./web/index.js",
5
5
  "module": "./web/index.mjs",
6
6
  "types": "./web/index.d.ts",
@@ -13,9 +13,9 @@
13
13
  "test:coverage": "vitest run --coverage"
14
14
  },
15
15
  "dependencies": {
16
- "@xsolla/xui-core": "0.133.0-pr226.1776244133",
17
- "@xsolla/xui-icons": "0.133.0-pr226.1776244133",
18
- "@xsolla/xui-primitives-core": "0.133.0-pr226.1776244133"
16
+ "@xsolla/xui-core": "0.134.0",
17
+ "@xsolla/xui-icons": "0.134.0",
18
+ "@xsolla/xui-primitives-core": "0.134.0"
19
19
  },
20
20
  "peerDependencies": {
21
21
  "react": ">=16.8.0",
package/web/index.js CHANGED
@@ -39,120 +39,13 @@ __export(index_exports, {
39
39
  module.exports = __toCommonJS(index_exports);
40
40
 
41
41
  // src/Button.tsx
42
- var import_react3 = __toESM(require("react"));
43
-
44
- // ../primitives-web/src/Box.tsx
45
42
  var import_react2 = __toESM(require("react"));
46
- var import_styled_components = __toESM(require("styled-components"));
47
-
48
- // ../primitives-web/src/filterDOMProps.ts
49
- var import_react = __toESM(require("react"));
50
- var NON_HTML_PROPS = /* @__PURE__ */ new Set([
51
- // BoxProps — layout & styling
52
- "backgroundColor",
53
- "borderColor",
54
- "borderWidth",
55
- "borderBottomWidth",
56
- "borderBottomColor",
57
- "borderTopWidth",
58
- "borderTopColor",
59
- "borderLeftWidth",
60
- "borderLeftColor",
61
- "borderRightWidth",
62
- "borderRightColor",
63
- "borderRadius",
64
- "borderStyle",
65
- "flexDirection",
66
- "flexWrap",
67
- "alignItems",
68
- "justifyContent",
69
- "alignSelf",
70
- "flex",
71
- "flexShrink",
72
- "gap",
73
- "position",
74
- "top",
75
- "bottom",
76
- "left",
77
- "right",
78
- "outline",
79
- "overflow",
80
- "overflowX",
81
- "overflowY",
82
- "zIndex",
83
- "cursor",
84
- "padding",
85
- "paddingHorizontal",
86
- "paddingVertical",
87
- "paddingTop",
88
- "paddingBottom",
89
- "paddingLeft",
90
- "paddingRight",
91
- "margin",
92
- "marginTop",
93
- "marginBottom",
94
- "marginLeft",
95
- "marginRight",
96
- "minWidth",
97
- "minHeight",
98
- "maxWidth",
99
- "maxHeight",
100
- "hoverStyle",
101
- "pressStyle",
102
- "focusStyle",
103
- "outlineColor",
104
- "outlineWidth",
105
- "outlineOffset",
106
- "outlineStyle",
107
- // BoxProps — RN-only
108
- "onPress",
109
- "onLayout",
110
- "onMoveShouldSetResponder",
111
- "onResponderGrant",
112
- "onResponderMove",
113
- "onResponderRelease",
114
- "onResponderTerminate",
115
- "testID",
116
- // Box — custom element type
117
- "elementType",
118
- // TextProps
119
- "fontSize",
120
- "fontWeight",
121
- "fontFamily",
122
- "lineHeight",
123
- "whiteSpace",
124
- "textAlign",
125
- "textDecoration",
126
- "numberOfLines",
127
- "letterSpacing",
128
- "textTransform",
129
- // SpinnerProps
130
- "strokeWidth",
131
- // DividerProps
132
- "vertical",
133
- "dashStroke"
134
- ]);
135
- function createFilteredElement(defaultTag) {
136
- const Component = import_react.default.forwardRef(
137
- ({ children, elementType, ...props }, ref) => {
138
- const Tag = elementType || defaultTag;
139
- const htmlProps = {};
140
- for (const key of Object.keys(props)) {
141
- if (!NON_HTML_PROPS.has(key)) {
142
- htmlProps[key] = props[key];
143
- }
144
- }
145
- return import_react.default.createElement(Tag, { ref, ...htmlProps }, children);
146
- }
147
- );
148
- Component.displayName = `Filtered(${defaultTag})`;
149
- return Component;
150
- }
151
43
 
152
44
  // ../primitives-web/src/Box.tsx
45
+ var import_react = __toESM(require("react"));
46
+ var import_styled_components = __toESM(require("styled-components"));
153
47
  var import_jsx_runtime = require("react/jsx-runtime");
154
- var FilteredDiv = createFilteredElement("div");
155
- var StyledBox = (0, import_styled_components.default)(FilteredDiv)`
48
+ var StyledBox = import_styled_components.default.div`
156
49
  display: flex;
157
50
  box-sizing: border-box;
158
51
  background-color: ${(props) => props.backgroundColor || "transparent"};
@@ -239,7 +132,7 @@ var StyledBox = (0, import_styled_components.default)(FilteredDiv)`
239
132
  ${(props) => props.pressStyle?.backgroundColor && `background-color: ${props.pressStyle.backgroundColor};`}
240
133
  }
241
134
  `;
242
- var Box = import_react2.default.forwardRef(
135
+ var Box = import_react.default.forwardRef(
243
136
  ({
244
137
  children,
245
138
  onPress,
@@ -264,8 +157,6 @@ var Box = import_react2.default.forwardRef(
264
157
  type,
265
158
  disabled,
266
159
  id,
267
- testID,
268
- "data-testid": dataTestId,
269
160
  ...props
270
161
  }, ref) => {
271
162
  if (as === "img" && src) {
@@ -293,7 +184,7 @@ var Box = import_react2.default.forwardRef(
293
184
  StyledBox,
294
185
  {
295
186
  ref,
296
- elementType: as,
187
+ as,
297
188
  id,
298
189
  type: as === "button" ? type || "button" : void 0,
299
190
  disabled: as === "button" ? disabled : void 0,
@@ -313,7 +204,6 @@ var Box = import_react2.default.forwardRef(
313
204
  "aria-controls": ariaControls,
314
205
  "aria-live": ariaLive,
315
206
  tabIndex: tabIndex !== void 0 ? tabIndex : void 0,
316
- "data-testid": dataTestId || testID,
317
207
  ...props,
318
208
  children
319
209
  }
@@ -325,8 +215,7 @@ Box.displayName = "Box";
325
215
  // ../primitives-web/src/Text.tsx
326
216
  var import_styled_components2 = __toESM(require("styled-components"));
327
217
  var import_jsx_runtime2 = require("react/jsx-runtime");
328
- var FilteredSpan = createFilteredElement("span");
329
- var StyledText = (0, import_styled_components2.default)(FilteredSpan)`
218
+ var StyledText = import_styled_components2.default.span`
330
219
  color: ${(props) => props.color || "inherit"};
331
220
  font-size: ${(props) => typeof props.fontSize === "number" ? `${props.fontSize}px` : props.fontSize || "inherit"};
332
221
  font-weight: ${(props) => props.fontWeight || "normal"};
@@ -367,8 +256,7 @@ var rotate = import_styled_components3.keyframes`
367
256
  transform: rotate(360deg);
368
257
  }
369
258
  `;
370
- var FilteredDiv2 = createFilteredElement("div");
371
- var StyledSpinner = (0, import_styled_components3.default)(FilteredDiv2)`
259
+ var StyledSpinner = import_styled_components3.default.div`
372
260
  width: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
373
261
  height: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
374
262
  border: ${(props) => props.strokeWidth || 2}px solid
@@ -404,8 +292,7 @@ Spinner.displayName = "Spinner";
404
292
  // ../primitives-web/src/Icon.tsx
405
293
  var import_styled_components4 = __toESM(require("styled-components"));
406
294
  var import_jsx_runtime4 = require("react/jsx-runtime");
407
- var FilteredDiv3 = createFilteredElement("div");
408
- var StyledIcon = (0, import_styled_components4.default)(FilteredDiv3)`
295
+ var StyledIcon = import_styled_components4.default.div`
409
296
  display: flex;
410
297
  align-items: center;
411
298
  justify-content: center;
@@ -428,10 +315,10 @@ var Icon = ({ children, ...props }) => {
428
315
  var import_xui_core = require("@xsolla/xui-core");
429
316
  var import_jsx_runtime5 = require("react/jsx-runtime");
430
317
  var cloneIconWithDefaults = (icon, defaultSize, defaultColor) => {
431
- if (!import_react3.default.isValidElement(icon)) return icon;
318
+ if (!import_react2.default.isValidElement(icon)) return icon;
432
319
  const iconElement = icon;
433
320
  const existingProps = iconElement.props || {};
434
- return import_react3.default.cloneElement(iconElement, {
321
+ return import_react2.default.cloneElement(iconElement, {
435
322
  ...existingProps,
436
323
  // Preserve existing props (including accessibility attributes)
437
324
  size: existingProps.size ?? defaultSize,
@@ -466,7 +353,7 @@ var Button = ({
466
353
  themeProductContext
467
354
  }) => {
468
355
  const { theme } = (0, import_xui_core.useResolvedTheme)({ themeMode, themeProductContext });
469
- const [isKeyboardPressed, setIsKeyboardPressed] = (0, import_react3.useState)(false);
356
+ const [isKeyboardPressed, setIsKeyboardPressed] = (0, import_react2.useState)(false);
470
357
  const isDisabled = disabled || loading;
471
358
  const sizeStyles = theme.sizing.button(size);
472
359
  const controlTone = theme?.colors?.control?.[tone];
@@ -658,14 +545,14 @@ var Button = ({
658
545
  Button.displayName = "Button";
659
546
 
660
547
  // src/IconButton.tsx
661
- var import_react4 = __toESM(require("react"));
548
+ var import_react3 = __toESM(require("react"));
662
549
  var import_xui_core2 = require("@xsolla/xui-core");
663
550
  var import_jsx_runtime6 = require("react/jsx-runtime");
664
551
  var cloneIconWithDefaults2 = (icon, defaultSize, defaultColor) => {
665
- if (!import_react4.default.isValidElement(icon)) return icon;
552
+ if (!import_react3.default.isValidElement(icon)) return icon;
666
553
  const iconElement = icon;
667
554
  const existingProps = iconElement.props || {};
668
- return import_react4.default.cloneElement(iconElement, {
555
+ return import_react3.default.cloneElement(iconElement, {
669
556
  ...existingProps,
670
557
  // Preserve existing props (including accessibility attributes)
671
558
  size: existingProps.size ?? defaultSize,
@@ -694,7 +581,7 @@ var IconButton = ({
694
581
  hoverBackground
695
582
  }) => {
696
583
  const { theme } = (0, import_xui_core2.useResolvedTheme)({ themeMode, themeProductContext });
697
- const [isKeyboardPressed, setIsKeyboardPressed] = (0, import_react4.useState)(false);
584
+ const [isKeyboardPressed, setIsKeyboardPressed] = (0, import_react3.useState)(false);
698
585
  const isDisabled = disabled || loading;
699
586
  const sizeStyles = theme.sizing.button(size);
700
587
  const controlTone = theme?.colors?.control?.[tone];
@@ -829,7 +716,7 @@ var IconButton = ({
829
716
  IconButton.displayName = "IconButton";
830
717
 
831
718
  // src/FlexButton.tsx
832
- var import_react5 = require("react");
719
+ var import_react4 = require("react");
833
720
  var import_xui_core3 = require("@xsolla/xui-core");
834
721
  var import_jsx_runtime7 = require("react/jsx-runtime");
835
722
  var ICON_SIZES = {
@@ -893,9 +780,9 @@ var FlexButton = ({
893
780
  ...buttonProps
894
781
  }) => {
895
782
  const { theme } = (0, import_xui_core3.useResolvedTheme)({ themeMode, themeProductContext });
896
- const [state, setState] = (0, import_react5.useState)("default");
897
- const [isFocused, setIsFocused] = (0, import_react5.useState)(false);
898
- const isMouseOverRef = (0, import_react5.useRef)(false);
783
+ const [state, setState] = (0, import_react4.useState)("default");
784
+ const [isFocused, setIsFocused] = (0, import_react4.useState)(false);
785
+ const isMouseOverRef = (0, import_react4.useRef)(false);
899
786
  const isDisabled = disabled || loading;
900
787
  const getVariantColors = (currentState) => {
901
788
  if (isDisabled) {
@@ -1166,14 +1053,14 @@ var FlexButton = ({
1166
1053
  FlexButton.displayName = "FlexButton";
1167
1054
 
1168
1055
  // src/AppButton.tsx
1169
- var import_react6 = __toESM(require("react"));
1056
+ var import_react5 = __toESM(require("react"));
1170
1057
  var import_xui_core4 = require("@xsolla/xui-core");
1171
1058
  var import_jsx_runtime8 = require("react/jsx-runtime");
1172
1059
  var cloneIconWithDefaults3 = (icon, defaultSize, defaultColor) => {
1173
- if (!import_react6.default.isValidElement(icon)) return icon;
1060
+ if (!import_react5.default.isValidElement(icon)) return icon;
1174
1061
  const iconElement = icon;
1175
1062
  const existingProps = iconElement.props || {};
1176
- return import_react6.default.cloneElement(iconElement, {
1063
+ return import_react5.default.cloneElement(iconElement, {
1177
1064
  ...existingProps,
1178
1065
  size: existingProps.size ?? defaultSize,
1179
1066
  color: existingProps.color ?? defaultColor
@@ -1205,7 +1092,7 @@ var AppButton = ({
1205
1092
  themeProductContext
1206
1093
  }) => {
1207
1094
  const { theme } = (0, import_xui_core4.useResolvedTheme)({ themeMode, themeProductContext });
1208
- const [isKeyboardPressed, setIsKeyboardPressed] = (0, import_react6.useState)(false);
1095
+ const [isKeyboardPressed, setIsKeyboardPressed] = (0, import_react5.useState)(false);
1209
1096
  const isDisabled = disabled || loading;
1210
1097
  const sizeStyles = theme.sizing.button(size);
1211
1098
  const tokens = theme?.colors?.control?.appButton || {
@@ -1389,7 +1276,7 @@ var AppButton = ({
1389
1276
  AppButton.displayName = "AppButton";
1390
1277
 
1391
1278
  // src/ButtonGroup.tsx
1392
- var import_react7 = __toESM(require("react"));
1279
+ var import_react6 = __toESM(require("react"));
1393
1280
  var import_xui_core5 = require("@xsolla/xui-core");
1394
1281
  var import_jsx_runtime9 = require("react/jsx-runtime");
1395
1282
  var ButtonGroup = ({
@@ -1410,8 +1297,8 @@ var ButtonGroup = ({
1410
1297
  const { theme } = (0, import_xui_core5.useResolvedTheme)({ themeMode, themeProductContext });
1411
1298
  const flattenChildren = (children2) => {
1412
1299
  const result = [];
1413
- import_react7.default.Children.forEach(children2, (child) => {
1414
- if (import_react7.default.isValidElement(child) && child.type === import_react7.default.Fragment) {
1300
+ import_react6.default.Children.forEach(children2, (child) => {
1301
+ if (import_react6.default.isValidElement(child) && child.type === import_react6.default.Fragment) {
1415
1302
  result.push(...flattenChildren(child.props.children));
1416
1303
  } else if (child !== null && child !== void 0) {
1417
1304
  result.push(child);
@@ -1447,8 +1334,8 @@ var ButtonGroup = ({
1447
1334
  const processChildren = (childrenToProcess) => {
1448
1335
  if (orientation === "vertical") {
1449
1336
  return childrenToProcess.map((child, index) => {
1450
- if (import_react7.default.isValidElement(child)) {
1451
- return import_react7.default.cloneElement(child, {
1337
+ if (import_react6.default.isValidElement(child)) {
1338
+ return import_react6.default.cloneElement(child, {
1452
1339
  ...child.props,
1453
1340
  fullWidth: true,
1454
1341
  key: child.key ?? index