@xsolla/xui-cell 0.118.0 → 0.119.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.
@@ -2,11 +2,14 @@ import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import { BoxProps } from '@xsolla/xui-primitives-core';
4
4
 
5
+ type CellView = "default" | "stroke" | "surface";
5
6
  interface CellProps extends BoxProps {
6
7
  children?: ReactNode;
8
+ /** Visual variant of the cell container. */
9
+ view?: CellView;
7
10
  /**
8
- * If true, the cell will have a board-like container style
9
- * (background, border, padding) consistent with Xsolla patterns.
11
+ * @deprecated Use `view="stroke"` instead.
12
+ * If true, applies the "stroke" view style.
10
13
  */
11
14
  withBoard?: boolean;
12
15
  }
@@ -16,10 +19,25 @@ interface CellSlotProps extends BoxProps {
16
19
  interface CellContentProps extends BoxProps {
17
20
  children?: ReactNode;
18
21
  }
22
+ interface CellTextProps extends BoxProps {
23
+ /** Primary title on the left. */
24
+ title?: ReactNode;
25
+ /** Secondary text on the right of the title row. */
26
+ titleRight?: ReactNode;
27
+ /** Description text on the left (second row). */
28
+ description?: ReactNode;
29
+ /** Description text on the right (second row). */
30
+ descriptionRight?: ReactNode;
31
+ /** Caption text on the left (third row, tertiary color). */
32
+ caption?: ReactNode;
33
+ /** Caption text on the right (third row, tertiary color). */
34
+ captionRight?: ReactNode;
35
+ }
19
36
 
20
37
  declare const Cell: react.ForwardRefExoticComponent<CellProps & react.RefAttributes<any>> & {
21
38
  Slot: react.ForwardRefExoticComponent<CellSlotProps & react.RefAttributes<any>>;
22
39
  Content: react.ForwardRefExoticComponent<CellContentProps & react.RefAttributes<any>>;
40
+ Text: react.ForwardRefExoticComponent<CellTextProps & react.RefAttributes<any>>;
23
41
  };
24
42
 
25
- export { Cell, type CellContentProps, type CellProps, type CellSlotProps };
43
+ export { Cell, type CellContentProps, type CellProps, type CellSlotProps, type CellTextProps, type CellView };
package/native/index.d.ts CHANGED
@@ -2,11 +2,14 @@ import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import { BoxProps } from '@xsolla/xui-primitives-core';
4
4
 
5
+ type CellView = "default" | "stroke" | "surface";
5
6
  interface CellProps extends BoxProps {
6
7
  children?: ReactNode;
8
+ /** Visual variant of the cell container. */
9
+ view?: CellView;
7
10
  /**
8
- * If true, the cell will have a board-like container style
9
- * (background, border, padding) consistent with Xsolla patterns.
11
+ * @deprecated Use `view="stroke"` instead.
12
+ * If true, applies the "stroke" view style.
10
13
  */
11
14
  withBoard?: boolean;
12
15
  }
@@ -16,10 +19,25 @@ interface CellSlotProps extends BoxProps {
16
19
  interface CellContentProps extends BoxProps {
17
20
  children?: ReactNode;
18
21
  }
22
+ interface CellTextProps extends BoxProps {
23
+ /** Primary title on the left. */
24
+ title?: ReactNode;
25
+ /** Secondary text on the right of the title row. */
26
+ titleRight?: ReactNode;
27
+ /** Description text on the left (second row). */
28
+ description?: ReactNode;
29
+ /** Description text on the right (second row). */
30
+ descriptionRight?: ReactNode;
31
+ /** Caption text on the left (third row, tertiary color). */
32
+ caption?: ReactNode;
33
+ /** Caption text on the right (third row, tertiary color). */
34
+ captionRight?: ReactNode;
35
+ }
19
36
 
20
37
  declare const Cell: react.ForwardRefExoticComponent<CellProps & react.RefAttributes<any>> & {
21
38
  Slot: react.ForwardRefExoticComponent<CellSlotProps & react.RefAttributes<any>>;
22
39
  Content: react.ForwardRefExoticComponent<CellContentProps & react.RefAttributes<any>>;
40
+ Text: react.ForwardRefExoticComponent<CellTextProps & react.RefAttributes<any>>;
23
41
  };
24
42
 
25
- export { Cell, type CellContentProps, type CellProps, type CellSlotProps };
43
+ export { Cell, type CellContentProps, type CellProps, type CellSlotProps, type CellTextProps, type CellView };
package/native/index.js CHANGED
@@ -193,13 +193,103 @@ var Box = ({
193
193
  );
194
194
  };
195
195
 
196
+ // ../primitives-native/src/Text.tsx
197
+ var import_react_native2 = require("react-native");
198
+ var import_jsx_runtime2 = require("react/jsx-runtime");
199
+ var roleMap = {
200
+ alert: "alert",
201
+ heading: "header",
202
+ button: "button",
203
+ link: "link",
204
+ text: "text"
205
+ };
206
+ var parseNumericValue = (value) => {
207
+ if (value === void 0) return void 0;
208
+ if (typeof value === "number") return value;
209
+ const parsed = parseFloat(value);
210
+ return isNaN(parsed) ? void 0 : parsed;
211
+ };
212
+ var Text = ({
213
+ children,
214
+ color,
215
+ fontSize,
216
+ fontWeight,
217
+ fontFamily,
218
+ textAlign,
219
+ lineHeight,
220
+ numberOfLines,
221
+ id,
222
+ role,
223
+ style: styleProp,
224
+ ...props
225
+ }) => {
226
+ let resolvedFontFamily = fontFamily ? fontFamily.split(",")[0].replace(/['"]/g, "").trim() : void 0;
227
+ if (resolvedFontFamily === "Pilat Wide" || resolvedFontFamily === "Pilat Wide Bold" || resolvedFontFamily === "Aktiv Grotesk") {
228
+ resolvedFontFamily = void 0;
229
+ }
230
+ const incomingStyle = import_react_native2.StyleSheet.flatten(styleProp);
231
+ const baseStyle = {
232
+ color,
233
+ fontSize: typeof fontSize === "number" ? fontSize : void 0,
234
+ fontWeight,
235
+ fontFamily: resolvedFontFamily,
236
+ textDecorationLine: props.textDecoration,
237
+ textAlign: textAlign ?? incomingStyle?.textAlign,
238
+ lineHeight: parseNumericValue(lineHeight ?? incomingStyle?.lineHeight),
239
+ marginTop: parseNumericValue(
240
+ incomingStyle?.marginTop
241
+ ),
242
+ marginBottom: parseNumericValue(
243
+ incomingStyle?.marginBottom
244
+ )
245
+ };
246
+ const accessibilityRole = role ? roleMap[role] : void 0;
247
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
248
+ import_react_native2.Text,
249
+ {
250
+ style: baseStyle,
251
+ numberOfLines,
252
+ testID: id,
253
+ accessibilityRole,
254
+ children
255
+ }
256
+ );
257
+ };
258
+
196
259
  // src/Cell.tsx
197
260
  var import_xui_core = require("@xsolla/xui-core");
198
- var import_jsx_runtime2 = require("react/jsx-runtime");
261
+ var import_jsx_runtime3 = require("react/jsx-runtime");
199
262
  var CellRoot = (0, import_react.forwardRef)(
200
- ({ children, withBoard = false, ...props }, ref) => {
263
+ ({ children, view: viewProp, withBoard, style, ...props }, ref) => {
201
264
  const { theme } = (0, import_xui_core.useDesignSystem)();
202
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
265
+ const view = viewProp ?? (withBoard ? "stroke" : "default");
266
+ const viewStyles = (0, import_react.useMemo)(() => {
267
+ const hoverBg = theme.colors.background.secondary;
268
+ switch (view) {
269
+ case "stroke":
270
+ return {
271
+ borderRadius: 8,
272
+ borderWidth: 1,
273
+ borderColor: theme.colors.border.secondary,
274
+ padding: 12,
275
+ hoverStyle: { backgroundColor: hoverBg }
276
+ };
277
+ case "surface":
278
+ return {
279
+ backgroundColor: theme.colors.background.secondary,
280
+ borderRadius: 8,
281
+ padding: 12,
282
+ hoverStyle: { backgroundColor: hoverBg }
283
+ };
284
+ default:
285
+ return {
286
+ minHeight: 56,
287
+ hoverStyle: { backgroundColor: hoverBg }
288
+ };
289
+ }
290
+ }, [view, theme]);
291
+ const hasPress = props.onPress != null;
292
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
203
293
  Box,
204
294
  {
205
295
  ref,
@@ -207,18 +297,10 @@ var CellRoot = (0, import_react.forwardRef)(
207
297
  width: "100%",
208
298
  flexDirection: "row",
209
299
  gap: 12,
210
- paddingHorizontal: 16,
211
- minHeight: 56,
212
- ...withBoard ? {
213
- backgroundColor: theme.colors.background.secondary,
214
- borderRadius: 8,
215
- borderWidth: 1,
216
- borderColor: theme.colors.border.secondary,
217
- paddingVertical: 12
218
- } : {
219
- paddingVertical: 8
220
- },
300
+ cursor: hasPress ? "pointer" : void 0,
301
+ ...viewStyles,
221
302
  ...props,
303
+ style: { color: theme.colors.content.primary, ...style },
222
304
  children
223
305
  }
224
306
  );
@@ -227,7 +309,7 @@ var CellRoot = (0, import_react.forwardRef)(
227
309
  CellRoot.displayName = "Cell";
228
310
  var CellSlot = (0, import_react.forwardRef)(
229
311
  ({ children, ...props }, ref) => {
230
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
312
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
231
313
  Box,
232
314
  {
233
315
  ref,
@@ -244,7 +326,7 @@ var CellSlot = (0, import_react.forwardRef)(
244
326
  CellSlot.displayName = "Cell.Slot";
245
327
  var CellContent = (0, import_react.forwardRef)(
246
328
  ({ children, ...props }, ref) => {
247
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
329
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
248
330
  Box,
249
331
  {
250
332
  ref,
@@ -258,9 +340,123 @@ var CellContent = (0, import_react.forwardRef)(
258
340
  }
259
341
  );
260
342
  CellContent.displayName = "Cell.Content";
343
+ var CellTextRow = ({
344
+ left,
345
+ right,
346
+ leftProps,
347
+ rightProps
348
+ }) => {
349
+ if (!left && !right) return null;
350
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(Box, { flexDirection: "row", gap: 12, alignItems: "center", width: "100%", children: [
351
+ left != null && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
352
+ Box,
353
+ {
354
+ flexDirection: "row",
355
+ alignItems: "center",
356
+ gap: 2,
357
+ style: { flex: 1, minWidth: 0, minHeight: 1 },
358
+ children: typeof left === "string" ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Text, { ...leftProps, children: left }) : left
359
+ }
360
+ ),
361
+ right != null && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
362
+ Box,
363
+ {
364
+ flexDirection: "row",
365
+ alignItems: "center",
366
+ justifyContent: "flex-end",
367
+ gap: 2,
368
+ style: { flex: 1, minWidth: 0, minHeight: 1 },
369
+ children: typeof right === "string" ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Text, { ...rightProps, children: right }) : right
370
+ }
371
+ )
372
+ ] });
373
+ };
374
+ var CellText = (0, import_react.forwardRef)(
375
+ ({
376
+ title,
377
+ titleRight,
378
+ description,
379
+ descriptionRight,
380
+ caption,
381
+ captionRight,
382
+ ...props
383
+ }, ref) => {
384
+ const { theme } = (0, import_xui_core.useDesignSystem)();
385
+ const hasDescriptions = description != null || descriptionRight != null;
386
+ const hasCaptions = caption != null || captionRight != null;
387
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
388
+ Box,
389
+ {
390
+ ref,
391
+ flexDirection: "column",
392
+ justifyContent: "center",
393
+ gap: 2,
394
+ ...props,
395
+ style: { flex: 1, minWidth: 0, minHeight: 1, ...props.style },
396
+ children: [
397
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
398
+ CellTextRow,
399
+ {
400
+ left: title,
401
+ right: titleRight,
402
+ leftProps: {
403
+ fontWeight: "500",
404
+ fontSize: 16,
405
+ lineHeight: 20
406
+ },
407
+ rightProps: {
408
+ fontWeight: "400",
409
+ fontSize: 12,
410
+ lineHeight: 18
411
+ }
412
+ }
413
+ ),
414
+ hasDescriptions && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
415
+ CellTextRow,
416
+ {
417
+ left: description,
418
+ right: descriptionRight,
419
+ leftProps: {
420
+ fontWeight: "400",
421
+ fontSize: 12,
422
+ lineHeight: 18
423
+ },
424
+ rightProps: {
425
+ fontWeight: "400",
426
+ fontSize: 12,
427
+ lineHeight: 18
428
+ }
429
+ }
430
+ ),
431
+ hasCaptions && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
432
+ CellTextRow,
433
+ {
434
+ left: caption,
435
+ right: captionRight,
436
+ leftProps: {
437
+ fontWeight: "400",
438
+ fontSize: 12,
439
+ lineHeight: 18,
440
+ color: theme.colors.content.tertiary
441
+ },
442
+ rightProps: {
443
+ fontWeight: "400",
444
+ fontSize: 12,
445
+ lineHeight: 18,
446
+ color: theme.colors.content.tertiary
447
+ }
448
+ }
449
+ )
450
+ ]
451
+ }
452
+ );
453
+ }
454
+ );
455
+ CellText.displayName = "Cell.Text";
261
456
  var Cell = Object.assign(CellRoot, {
262
457
  Slot: CellSlot,
263
- Content: CellContent
458
+ Content: CellContent,
459
+ Text: CellText
264
460
  });
265
461
  // Annotate the CommonJS export names for ESM import in node:
266
462
  0 && (module.exports = {
@@ -8,12 +8,18 @@
8
8
  import * as react from "react";
9
9
  import { Node } from "react";
10
10
  import { BoxProps } from "@xsolla/xui-primitives-core";
11
+ declare type CellView = "default" | "stroke" | "surface";
11
12
  declare type CellProps = {
12
13
  children?: Node,
13
14
 
14
15
  /**
15
- * If true, the cell will have a board-like container style
16
- * (background, border, padding) consistent with Xsolla patterns.
16
+ * Visual variant of the cell container.
17
+ */
18
+ view?: CellView,
19
+
20
+ /**
21
+ * @deprecated Use `view="stroke"` instead.
22
+ * If true, applies the "stroke" view style.
17
23
  */
18
24
  withBoard?: boolean,
19
25
  ...
@@ -26,6 +32,38 @@ declare type CellContentProps = {
26
32
  children?: Node,
27
33
  ...
28
34
  } & BoxProps;
35
+ declare type CellTextProps = {
36
+ /**
37
+ * Primary title on the left.
38
+ */
39
+ title?: Node,
40
+
41
+ /**
42
+ * Secondary text on the right of the title row.
43
+ */
44
+ titleRight?: Node,
45
+
46
+ /**
47
+ * Description text on the left (second row).
48
+ */
49
+ description?: Node,
50
+
51
+ /**
52
+ * Description text on the right (second row).
53
+ */
54
+ descriptionRight?: Node,
55
+
56
+ /**
57
+ * Caption text on the left (third row, tertiary color).
58
+ */
59
+ caption?: Node,
60
+
61
+ /**
62
+ * Caption text on the right (third row, tertiary color).
63
+ */
64
+ captionRight?: Node,
65
+ ...
66
+ } & BoxProps;
29
67
  declare var Cell: {
30
68
  ...react.ForwardRefExoticComponent<{
31
69
  ...CellProps,
@@ -40,8 +78,18 @@ declare var Cell: {
40
78
  ...CellContentProps,
41
79
  ...react.RefAttributes<any>,
42
80
  }>,
81
+ Text: react.ForwardRefExoticComponent<{
82
+ ...CellTextProps,
83
+ ...react.RefAttributes<any>,
84
+ }>,
43
85
  ...
44
86
  },
45
87
  };
46
- export type { CellContentProps, CellProps, CellSlotProps };
88
+ export type {
89
+ CellContentProps,
90
+ CellProps,
91
+ CellSlotProps,
92
+ CellTextProps,
93
+ CellView,
94
+ };
47
95
  declare export { Cell };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.tsx","../../src/Cell.tsx","../../../primitives-native/src/Box.tsx"],"sourcesContent":["export * from \"./Cell\";\nexport * from \"./types\";\n","import { forwardRef } from \"react\";\n// @ts-expect-error - this will be resolved at build time\nimport { Box } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport { CellContentProps, CellProps, CellSlotProps } from \"./types\";\n\nconst CellRoot = forwardRef<any, CellProps>(\n ({ children, withBoard = false, ...props }, ref) => {\n const { theme } = useDesignSystem();\n\n return (\n <Box\n ref={ref}\n alignItems=\"center\"\n width=\"100%\"\n flexDirection=\"row\"\n gap={12}\n paddingHorizontal={16}\n minHeight={56}\n {...(withBoard\n ? {\n backgroundColor: theme.colors.background.secondary,\n borderRadius: 8,\n borderWidth: 1,\n borderColor: theme.colors.border.secondary,\n paddingVertical: 12,\n }\n : {\n paddingVertical: 8,\n })}\n {...props}\n >\n {children}\n </Box>\n );\n }\n);\n\nCellRoot.displayName = \"Cell\";\n\nconst CellSlot = forwardRef<any, CellSlotProps>(\n ({ children, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n alignItems=\"center\"\n justifyContent=\"center\"\n flexDirection=\"row\"\n {...props}\n style={{ flexShrink: 0, ...props.style }}\n >\n {children}\n </Box>\n );\n }\n);\n\nCellSlot.displayName = \"Cell.Slot\";\n\nconst CellContent = forwardRef<any, CellContentProps>(\n ({ children, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n flexDirection=\"column\"\n justifyContent=\"center\"\n {...props}\n style={{ flex: 1, ...props.style }}\n >\n {children}\n </Box>\n );\n }\n);\n\nCellContent.displayName = \"Cell.Content\";\n\nexport const Cell = Object.assign(CellRoot, {\n Slot: CellSlot,\n Content: CellContent,\n});\n","import React from \"react\";\nimport {\n View,\n Pressable,\n Image,\n ViewStyle,\n ImageStyle,\n DimensionValue,\n AnimatableNumericValue,\n} from \"react-native\";\nimport { BoxProps } from \"@xsolla/xui-primitives-core\";\n\nexport const Box: React.FC<BoxProps> = ({\n children,\n onPress,\n onLayout,\n onMoveShouldSetResponder,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n backgroundColor,\n borderColor,\n borderWidth,\n borderBottomWidth,\n borderBottomColor,\n borderTopWidth,\n borderTopColor,\n borderLeftWidth,\n borderLeftColor,\n borderRightWidth,\n borderRightColor,\n borderRadius,\n borderStyle,\n height,\n padding,\n paddingHorizontal,\n paddingVertical,\n margin,\n marginTop,\n marginBottom,\n marginLeft,\n marginRight,\n flexDirection,\n alignItems,\n justifyContent,\n position,\n top,\n bottom,\n left,\n right,\n width,\n flex,\n overflow,\n zIndex,\n hoverStyle,\n pressStyle,\n style,\n \"data-testid\": dataTestId,\n testID,\n as,\n src,\n alt,\n ...rest\n}) => {\n const getContainerStyle = (pressed?: boolean): ViewStyle => ({\n backgroundColor:\n pressed && pressStyle?.backgroundColor\n ? pressStyle.backgroundColor\n : backgroundColor,\n borderColor,\n borderWidth,\n borderBottomWidth,\n borderBottomColor,\n borderTopWidth,\n borderTopColor,\n borderLeftWidth,\n borderLeftColor,\n borderRightWidth,\n borderRightColor,\n borderRadius: borderRadius as AnimatableNumericValue,\n borderStyle: borderStyle as ViewStyle[\"borderStyle\"],\n overflow,\n zIndex,\n height: height as DimensionValue,\n width: width as DimensionValue,\n padding: padding as DimensionValue,\n paddingHorizontal: paddingHorizontal as DimensionValue,\n paddingVertical: paddingVertical as DimensionValue,\n margin: margin as DimensionValue,\n marginTop: marginTop as DimensionValue,\n marginBottom: marginBottom as DimensionValue,\n marginLeft: marginLeft as DimensionValue,\n marginRight: marginRight as DimensionValue,\n flexDirection,\n alignItems,\n justifyContent,\n position: position as ViewStyle[\"position\"],\n top: top as DimensionValue,\n bottom: bottom as DimensionValue,\n left: left as DimensionValue,\n right: right as DimensionValue,\n flex,\n ...(style as ViewStyle),\n });\n\n const finalTestID = dataTestId || testID;\n\n // Destructure and drop web-only props from rest before passing to RN components\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n role,\n tabIndex,\n onKeyDown,\n onKeyUp,\n \"aria-label\": _ariaLabel,\n \"aria-labelledby\": _ariaLabelledBy,\n \"aria-current\": _ariaCurrent,\n \"aria-disabled\": _ariaDisabled,\n \"aria-live\": _ariaLive,\n className,\n \"data-testid\": _dataTestId,\n ...nativeRest\n } = rest as Record<string, unknown>;\n\n // Handle as=\"img\" for React Native\n if (as === \"img\" && src) {\n const imageStyle: ImageStyle = {\n width: width as DimensionValue,\n height: height as DimensionValue,\n borderRadius: borderRadius as number,\n position: position as ImageStyle[\"position\"],\n top: top as DimensionValue,\n bottom: bottom as DimensionValue,\n left: left as DimensionValue,\n right: right as DimensionValue,\n ...(style as ImageStyle),\n };\n\n return (\n <Image\n source={{ uri: src }}\n style={imageStyle}\n testID={finalTestID}\n resizeMode=\"cover\"\n {...nativeRest}\n />\n );\n }\n\n if (onPress) {\n return (\n <Pressable\n onPress={onPress}\n onLayout={onLayout}\n onMoveShouldSetResponder={onMoveShouldSetResponder}\n onResponderGrant={onResponderGrant}\n onResponderMove={onResponderMove}\n onResponderRelease={onResponderRelease}\n onResponderTerminate={onResponderTerminate}\n style={({ pressed }) => getContainerStyle(pressed)}\n testID={finalTestID}\n {...nativeRest}\n >\n {children}\n </Pressable>\n );\n }\n\n return (\n <View\n style={getContainerStyle()}\n testID={finalTestID}\n onLayout={onLayout}\n onMoveShouldSetResponder={onMoveShouldSetResponder}\n onResponderGrant={onResponderGrant}\n onResponderMove={onResponderMove}\n onResponderRelease={onResponderRelease}\n onResponderTerminate={onResponderTerminate}\n {...nativeRest}\n >\n {children}\n </View>\n );\n};\n"],"mappings":"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","names":["import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../src/index.tsx","../../src/Cell.tsx","../../../primitives-native/src/Box.tsx","../../../primitives-native/src/Text.tsx"],"sourcesContent":["export * from \"./Cell\";\nexport * from \"./types\";\n","import { forwardRef, useMemo } from \"react\";\n// @ts-expect-error - this will be resolved at build time\nimport { Box, Text } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport {\n CellContentProps,\n CellProps,\n CellSlotProps,\n CellTextProps,\n CellView,\n} from \"./types\";\n\nconst CellRoot = forwardRef<any, CellProps>(\n ({ children, view: viewProp, withBoard, style, ...props }, ref) => {\n const { theme } = useDesignSystem();\n\n const view: CellView = viewProp ?? (withBoard ? \"stroke\" : \"default\");\n\n const viewStyles = useMemo(() => {\n const hoverBg = theme.colors.background.secondary;\n\n switch (view) {\n case \"stroke\":\n return {\n borderRadius: 8,\n borderWidth: 1,\n borderColor: theme.colors.border.secondary,\n padding: 12,\n hoverStyle: { backgroundColor: hoverBg },\n };\n case \"surface\":\n return {\n backgroundColor: theme.colors.background.secondary,\n borderRadius: 8,\n padding: 12,\n hoverStyle: { backgroundColor: hoverBg },\n };\n default:\n return {\n minHeight: 56,\n hoverStyle: { backgroundColor: hoverBg },\n };\n }\n }, [view, theme]);\n\n const hasPress = props.onPress != null;\n\n return (\n <Box\n ref={ref}\n alignItems=\"center\"\n width=\"100%\"\n flexDirection=\"row\"\n gap={12}\n cursor={hasPress ? \"pointer\" : undefined}\n {...viewStyles}\n {...props}\n style={{ color: theme.colors.content.primary, ...style }}\n >\n {children}\n </Box>\n );\n }\n);\n\nCellRoot.displayName = \"Cell\";\n\nconst CellSlot = forwardRef<any, CellSlotProps>(\n ({ children, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n alignItems=\"center\"\n justifyContent=\"center\"\n flexDirection=\"row\"\n {...props}\n style={{ flexShrink: 0, ...props.style }}\n >\n {children}\n </Box>\n );\n }\n);\n\nCellSlot.displayName = \"Cell.Slot\";\n\nconst CellContent = forwardRef<any, CellContentProps>(\n ({ children, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n flexDirection=\"column\"\n justifyContent=\"center\"\n {...props}\n style={{ flex: 1, ...props.style }}\n >\n {children}\n </Box>\n );\n }\n);\n\nCellContent.displayName = \"Cell.Content\";\n\nconst CellTextRow = ({\n left,\n right,\n leftProps,\n rightProps,\n}: {\n left?: React.ReactNode;\n right?: React.ReactNode;\n leftProps?: Record<string, unknown>;\n rightProps?: Record<string, unknown>;\n}) => {\n if (!left && !right) return null;\n return (\n <Box flexDirection=\"row\" gap={12} alignItems=\"center\" width=\"100%\">\n {left != null && (\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n gap={2}\n style={{ flex: 1, minWidth: 0, minHeight: 1 }}\n >\n {typeof left === \"string\" ? <Text {...leftProps}>{left}</Text> : left}\n </Box>\n )}\n {right != null && (\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n gap={2}\n style={{ flex: 1, minWidth: 0, minHeight: 1 }}\n >\n {typeof right === \"string\" ? (\n <Text {...rightProps}>{right}</Text>\n ) : (\n right\n )}\n </Box>\n )}\n </Box>\n );\n};\n\nconst CellText = forwardRef<any, CellTextProps>(\n (\n {\n title,\n titleRight,\n description,\n descriptionRight,\n caption,\n captionRight,\n ...props\n },\n ref\n ) => {\n const { theme } = useDesignSystem();\n\n const hasDescriptions = description != null || descriptionRight != null;\n const hasCaptions = caption != null || captionRight != null;\n\n return (\n <Box\n ref={ref}\n flexDirection=\"column\"\n justifyContent=\"center\"\n gap={2}\n {...props}\n style={{ flex: 1, minWidth: 0, minHeight: 1, ...props.style }}\n >\n <CellTextRow\n left={title}\n right={titleRight}\n leftProps={{\n fontWeight: \"500\",\n fontSize: 16,\n lineHeight: 20,\n }}\n rightProps={{\n fontWeight: \"400\",\n fontSize: 12,\n lineHeight: 18,\n }}\n />\n {hasDescriptions && (\n <CellTextRow\n left={description}\n right={descriptionRight}\n leftProps={{\n fontWeight: \"400\",\n fontSize: 12,\n lineHeight: 18,\n }}\n rightProps={{\n fontWeight: \"400\",\n fontSize: 12,\n lineHeight: 18,\n }}\n />\n )}\n {hasCaptions && (\n <CellTextRow\n left={caption}\n right={captionRight}\n leftProps={{\n fontWeight: \"400\",\n fontSize: 12,\n lineHeight: 18,\n color: theme.colors.content.tertiary,\n }}\n rightProps={{\n fontWeight: \"400\",\n fontSize: 12,\n lineHeight: 18,\n color: theme.colors.content.tertiary,\n }}\n />\n )}\n </Box>\n );\n }\n);\n\nCellText.displayName = \"Cell.Text\";\n\nexport const Cell = Object.assign(CellRoot, {\n Slot: CellSlot,\n Content: CellContent,\n Text: CellText,\n});\n","import React from \"react\";\nimport {\n View,\n Pressable,\n Image,\n ViewStyle,\n ImageStyle,\n DimensionValue,\n AnimatableNumericValue,\n} from \"react-native\";\nimport { BoxProps } from \"@xsolla/xui-primitives-core\";\n\nexport const Box: React.FC<BoxProps> = ({\n children,\n onPress,\n onLayout,\n onMoveShouldSetResponder,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n backgroundColor,\n borderColor,\n borderWidth,\n borderBottomWidth,\n borderBottomColor,\n borderTopWidth,\n borderTopColor,\n borderLeftWidth,\n borderLeftColor,\n borderRightWidth,\n borderRightColor,\n borderRadius,\n borderStyle,\n height,\n padding,\n paddingHorizontal,\n paddingVertical,\n margin,\n marginTop,\n marginBottom,\n marginLeft,\n marginRight,\n flexDirection,\n alignItems,\n justifyContent,\n position,\n top,\n bottom,\n left,\n right,\n width,\n flex,\n overflow,\n zIndex,\n hoverStyle,\n pressStyle,\n style,\n \"data-testid\": dataTestId,\n testID,\n as,\n src,\n alt,\n ...rest\n}) => {\n const getContainerStyle = (pressed?: boolean): ViewStyle => ({\n backgroundColor:\n pressed && pressStyle?.backgroundColor\n ? pressStyle.backgroundColor\n : backgroundColor,\n borderColor,\n borderWidth,\n borderBottomWidth,\n borderBottomColor,\n borderTopWidth,\n borderTopColor,\n borderLeftWidth,\n borderLeftColor,\n borderRightWidth,\n borderRightColor,\n borderRadius: borderRadius as AnimatableNumericValue,\n borderStyle: borderStyle as ViewStyle[\"borderStyle\"],\n overflow,\n zIndex,\n height: height as DimensionValue,\n width: width as DimensionValue,\n padding: padding as DimensionValue,\n paddingHorizontal: paddingHorizontal as DimensionValue,\n paddingVertical: paddingVertical as DimensionValue,\n margin: margin as DimensionValue,\n marginTop: marginTop as DimensionValue,\n marginBottom: marginBottom as DimensionValue,\n marginLeft: marginLeft as DimensionValue,\n marginRight: marginRight as DimensionValue,\n flexDirection,\n alignItems,\n justifyContent,\n position: position as ViewStyle[\"position\"],\n top: top as DimensionValue,\n bottom: bottom as DimensionValue,\n left: left as DimensionValue,\n right: right as DimensionValue,\n flex,\n ...(style as ViewStyle),\n });\n\n const finalTestID = dataTestId || testID;\n\n // Destructure and drop web-only props from rest before passing to RN components\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n role,\n tabIndex,\n onKeyDown,\n onKeyUp,\n \"aria-label\": _ariaLabel,\n \"aria-labelledby\": _ariaLabelledBy,\n \"aria-current\": _ariaCurrent,\n \"aria-disabled\": _ariaDisabled,\n \"aria-live\": _ariaLive,\n className,\n \"data-testid\": _dataTestId,\n ...nativeRest\n } = rest as Record<string, unknown>;\n\n // Handle as=\"img\" for React Native\n if (as === \"img\" && src) {\n const imageStyle: ImageStyle = {\n width: width as DimensionValue,\n height: height as DimensionValue,\n borderRadius: borderRadius as number,\n position: position as ImageStyle[\"position\"],\n top: top as DimensionValue,\n bottom: bottom as DimensionValue,\n left: left as DimensionValue,\n right: right as DimensionValue,\n ...(style as ImageStyle),\n };\n\n return (\n <Image\n source={{ uri: src }}\n style={imageStyle}\n testID={finalTestID}\n resizeMode=\"cover\"\n {...nativeRest}\n />\n );\n }\n\n if (onPress) {\n return (\n <Pressable\n onPress={onPress}\n onLayout={onLayout}\n onMoveShouldSetResponder={onMoveShouldSetResponder}\n onResponderGrant={onResponderGrant}\n onResponderMove={onResponderMove}\n onResponderRelease={onResponderRelease}\n onResponderTerminate={onResponderTerminate}\n style={({ pressed }) => getContainerStyle(pressed)}\n testID={finalTestID}\n {...nativeRest}\n >\n {children}\n </Pressable>\n );\n }\n\n return (\n <View\n style={getContainerStyle()}\n testID={finalTestID}\n onLayout={onLayout}\n onMoveShouldSetResponder={onMoveShouldSetResponder}\n onResponderGrant={onResponderGrant}\n onResponderMove={onResponderMove}\n onResponderRelease={onResponderRelease}\n onResponderTerminate={onResponderTerminate}\n {...nativeRest}\n >\n {children}\n </View>\n );\n};\n","import React from \"react\";\nimport {\n Text as RNText,\n TextStyle,\n AccessibilityRole,\n StyleSheet,\n} from \"react-native\";\nimport { TextProps } from \"@xsolla/xui-primitives-core\";\n\nconst roleMap: Record<string, AccessibilityRole> = {\n alert: \"alert\",\n heading: \"header\",\n button: \"button\",\n link: \"link\",\n text: \"text\",\n};\n\nconst parseNumericValue = (\n value: string | number | undefined\n): number | undefined => {\n if (value === undefined) return undefined;\n if (typeof value === \"number\") return value;\n const parsed = parseFloat(value);\n return isNaN(parsed) ? undefined : parsed;\n};\n\nexport const Text: React.FC<TextProps> = ({\n children,\n color,\n fontSize,\n fontWeight,\n fontFamily,\n textAlign,\n lineHeight,\n numberOfLines,\n id,\n role,\n style: styleProp,\n ...props\n}) => {\n let resolvedFontFamily = fontFamily\n ? fontFamily.split(\",\")[0].replace(/['\"]/g, \"\").trim()\n : undefined;\n\n if (\n resolvedFontFamily === \"Pilat Wide\" ||\n resolvedFontFamily === \"Pilat Wide Bold\" ||\n resolvedFontFamily === \"Aktiv Grotesk\"\n ) {\n resolvedFontFamily = undefined;\n }\n\n const incomingStyle = StyleSheet.flatten(styleProp) as TextStyle | undefined;\n\n const baseStyle: TextStyle = {\n color,\n fontSize: typeof fontSize === \"number\" ? fontSize : undefined,\n fontWeight: fontWeight as TextStyle[\"fontWeight\"],\n fontFamily: resolvedFontFamily,\n textDecorationLine: props.textDecoration as TextStyle[\"textDecorationLine\"],\n textAlign: textAlign ?? incomingStyle?.textAlign,\n lineHeight: parseNumericValue(lineHeight ?? incomingStyle?.lineHeight),\n marginTop: parseNumericValue(\n incomingStyle?.marginTop as number | string | undefined\n ),\n marginBottom: parseNumericValue(\n incomingStyle?.marginBottom as number | string | undefined\n ),\n };\n\n const accessibilityRole = role ? roleMap[role] : undefined;\n\n return (\n <RNText\n style={baseStyle}\n numberOfLines={numberOfLines}\n testID={id}\n accessibilityRole={accessibilityRole}\n >\n {children}\n </RNText>\n );\n};\n"],"mappings":"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","names":["import_react_native","import_jsx_runtime","RNText","import_jsx_runtime"]}