@bacon-pos/ui 0.10.0 → 0.11.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.
Files changed (62) hide show
  1. package/lib/commonjs/components/Alert/Alert.js +137 -0
  2. package/lib/commonjs/components/Alert/Alert.js.map +1 -0
  3. package/lib/commonjs/components/Alert/Alert.stories.js +104 -0
  4. package/lib/commonjs/components/Alert/Alert.stories.js.map +1 -0
  5. package/lib/commonjs/components/Alert/Alert.test.js +62 -0
  6. package/lib/commonjs/components/Alert/Alert.test.js.map +1 -0
  7. package/lib/commonjs/components/Alert/index.js +13 -0
  8. package/lib/commonjs/components/Alert/index.js.map +1 -0
  9. package/lib/commonjs/components/StatTile/StatTile.js +94 -0
  10. package/lib/commonjs/components/StatTile/StatTile.js.map +1 -0
  11. package/lib/commonjs/components/StatTile/StatTile.stories.js +100 -0
  12. package/lib/commonjs/components/StatTile/StatTile.stories.js.map +1 -0
  13. package/lib/commonjs/components/StatTile/StatTile.test.js +49 -0
  14. package/lib/commonjs/components/StatTile/StatTile.test.js.map +1 -0
  15. package/lib/commonjs/components/StatTile/index.js +13 -0
  16. package/lib/commonjs/components/StatTile/index.js.map +1 -0
  17. package/lib/commonjs/components/index.js +53 -31
  18. package/lib/commonjs/components/index.js.map +1 -1
  19. package/lib/module/components/Alert/Alert.js +133 -0
  20. package/lib/module/components/Alert/Alert.js.map +1 -0
  21. package/lib/module/components/Alert/Alert.stories.js +100 -0
  22. package/lib/module/components/Alert/Alert.stories.js.map +1 -0
  23. package/lib/module/components/Alert/Alert.test.js +62 -0
  24. package/lib/module/components/Alert/Alert.test.js.map +1 -0
  25. package/lib/module/components/Alert/index.js +4 -0
  26. package/lib/module/components/Alert/index.js.map +1 -0
  27. package/lib/module/components/StatTile/StatTile.js +90 -0
  28. package/lib/module/components/StatTile/StatTile.js.map +1 -0
  29. package/lib/module/components/StatTile/StatTile.stories.js +96 -0
  30. package/lib/module/components/StatTile/StatTile.stories.js.map +1 -0
  31. package/lib/module/components/StatTile/StatTile.test.js +49 -0
  32. package/lib/module/components/StatTile/StatTile.test.js.map +1 -0
  33. package/lib/module/components/StatTile/index.js +4 -0
  34. package/lib/module/components/StatTile/index.js.map +1 -0
  35. package/lib/module/components/index.js +2 -0
  36. package/lib/module/components/index.js.map +1 -1
  37. package/lib/typescript/commonjs/components/Alert/Alert.d.ts +41 -0
  38. package/lib/typescript/commonjs/components/Alert/Alert.d.ts.map +1 -0
  39. package/lib/typescript/commonjs/components/Alert/index.d.ts +3 -0
  40. package/lib/typescript/commonjs/components/Alert/index.d.ts.map +1 -0
  41. package/lib/typescript/commonjs/components/StatTile/StatTile.d.ts +31 -0
  42. package/lib/typescript/commonjs/components/StatTile/StatTile.d.ts.map +1 -0
  43. package/lib/typescript/commonjs/components/StatTile/index.d.ts +3 -0
  44. package/lib/typescript/commonjs/components/StatTile/index.d.ts.map +1 -0
  45. package/lib/typescript/commonjs/components/index.d.ts +2 -0
  46. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  47. package/lib/typescript/module/components/Alert/Alert.d.ts +41 -0
  48. package/lib/typescript/module/components/Alert/Alert.d.ts.map +1 -0
  49. package/lib/typescript/module/components/Alert/index.d.ts +3 -0
  50. package/lib/typescript/module/components/Alert/index.d.ts.map +1 -0
  51. package/lib/typescript/module/components/StatTile/StatTile.d.ts +31 -0
  52. package/lib/typescript/module/components/StatTile/StatTile.d.ts.map +1 -0
  53. package/lib/typescript/module/components/StatTile/index.d.ts +3 -0
  54. package/lib/typescript/module/components/StatTile/index.d.ts.map +1 -0
  55. package/lib/typescript/module/components/index.d.ts +2 -0
  56. package/lib/typescript/module/components/index.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/src/components/Alert/Alert.tsx +132 -0
  59. package/src/components/Alert/index.ts +2 -0
  60. package/src/components/StatTile/StatTile.tsx +98 -0
  61. package/src/components/StatTile/index.ts +2 -0
  62. package/src/components/index.ts +2 -0
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Alert = Alert;
7
+ var _reactNative = require("react-native");
8
+ var _index = require("../../theme/index.js");
9
+ var _palette = require("../../theme/palette.js");
10
+ var _Icon = require("../Icon/Icon.js");
11
+ var _Text = require("../Text/Text.js");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function statusColors(theme, status) {
14
+ switch (status) {
15
+ case 'warning':
16
+ return {
17
+ bg: theme.colors.feedback.warningSubtle,
18
+ fg: _palette.palette.warning[600]
19
+ };
20
+ case 'success':
21
+ return {
22
+ bg: theme.colors.feedback.successSubtle,
23
+ fg: theme.colors.feedback.success
24
+ };
25
+ case 'destructive':
26
+ return {
27
+ bg: theme.colors.feedback.errorSubtle,
28
+ fg: theme.colors.feedback.error
29
+ };
30
+ case 'info':
31
+ default:
32
+ return {
33
+ bg: theme.colors.background.subtle,
34
+ fg: _palette.palette.neutral[500]
35
+ };
36
+ }
37
+ }
38
+
39
+ /**
40
+ * Alert — an inline banner in four statuses (info / warning / success /
41
+ * destructive), each a subtle tinted surface with a matching icon and text
42
+ * (Figma "Alert"). Fills its parent by default (text wraps to any width) or takes
43
+ * a fixed `width`. Supports an optional title, a trailing action and a close
44
+ * button; colors are overridable for custom statuses.
45
+ */
46
+ function Alert({
47
+ status = 'info',
48
+ title,
49
+ message,
50
+ children,
51
+ icon = 'info',
52
+ showIcon = true,
53
+ iconAlign = 'center',
54
+ action,
55
+ onClose,
56
+ backgroundColor,
57
+ color,
58
+ width,
59
+ style
60
+ }) {
61
+ const theme = (0, _index.useTheme)();
62
+ const {
63
+ bg,
64
+ fg
65
+ } = statusColors(theme, status);
66
+ const foreground = color ?? fg;
67
+ const background = backgroundColor ?? bg;
68
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
69
+ accessibilityRole: "alert",
70
+ style: [{
71
+ flexDirection: 'row',
72
+ alignItems: 'flex-start',
73
+ gap: 16,
74
+ paddingVertical: 20,
75
+ paddingHorizontal: 16,
76
+ borderRadius: theme.radii.lg,
77
+ backgroundColor: background,
78
+ ...(width != null ? {
79
+ width
80
+ } : {
81
+ alignSelf: 'stretch'
82
+ })
83
+ }, style],
84
+ children: [showIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
85
+ style: {
86
+ width: 24,
87
+ height: 24,
88
+ flexShrink: 0,
89
+ alignSelf: iconAlign === 'center' ? 'center' : 'flex-start'
90
+ },
91
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
92
+ name: icon,
93
+ size: 24,
94
+ color: foreground
95
+ })
96
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
97
+ style: {
98
+ flex: 1,
99
+ minWidth: 0,
100
+ gap: 2
101
+ },
102
+ children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
103
+ variant: "bodyLarge",
104
+ weight: "semibold",
105
+ color: foreground,
106
+ children: title
107
+ }) : null, children ?? (message ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
108
+ variant: "bodyLarge",
109
+ color: foreground,
110
+ children: message
111
+ }) : null)]
112
+ }), action ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
113
+ style: {
114
+ flexShrink: 0
115
+ },
116
+ children: action
117
+ }) : null, onClose ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
118
+ onPress: onClose,
119
+ hitSlop: 8,
120
+ accessibilityRole: "button",
121
+ accessibilityLabel: "Dismiss",
122
+ style: {
123
+ width: 24,
124
+ height: 24,
125
+ flexShrink: 0,
126
+ alignItems: 'center',
127
+ justifyContent: 'center'
128
+ },
129
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
130
+ name: "close",
131
+ size: 20,
132
+ color: foreground
133
+ })
134
+ }) : null]
135
+ });
136
+ }
137
+ //# sourceMappingURL=Alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_index","_palette","_Icon","_Text","_jsxRuntime","statusColors","theme","status","bg","colors","feedback","warningSubtle","fg","palette","warning","successSubtle","success","errorSubtle","error","background","subtle","neutral","Alert","title","message","children","icon","showIcon","iconAlign","action","onClose","backgroundColor","color","width","style","useTheme","foreground","jsxs","View","accessibilityRole","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","borderRadius","radii","lg","alignSelf","jsx","height","flexShrink","Icon","name","size","flex","minWidth","Text","variant","weight","Pressable","onPress","hitSlop","accessibilityLabel","justifyContent"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Alert/Alert.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.WithTitle = exports.WithActionAndClose = exports.Statuses = exports.NoIcon = exports.Narrow = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _Alert = require("./Alert.js");
9
+ var _LinkButton = require("../LinkButton/LinkButton.js");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ const meta = {
12
+ title: 'Components/Alert',
13
+ component: _Alert.Alert
14
+ };
15
+ var _default = exports.default = meta;
16
+ const MSG = 'No activity for 8h 10m — this shift was likely left open. Ending it resolves the 2 open checks, then counts the drawer.';
17
+
18
+ /** The four Figma statuses. */
19
+ const Statuses = exports.Statuses = {
20
+ render: () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
21
+ style: {
22
+ padding: 24,
23
+ width: 820,
24
+ gap: 16
25
+ },
26
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
27
+ status: "info",
28
+ message: MSG
29
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
30
+ status: "warning",
31
+ message: MSG
32
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
33
+ status: "success",
34
+ message: MSG
35
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
36
+ status: "destructive",
37
+ message: MSG
38
+ })]
39
+ })
40
+ };
41
+
42
+ /** With a title. */
43
+ const WithTitle = exports.WithTitle = {
44
+ render: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
45
+ style: {
46
+ padding: 24,
47
+ width: 820
48
+ },
49
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
50
+ status: "warning",
51
+ title: "Shift left open",
52
+ message: MSG
53
+ })
54
+ })
55
+ };
56
+
57
+ /** Short message, narrow container — width accommodates. */
58
+ const Narrow = exports.Narrow = {
59
+ render: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
60
+ style: {
61
+ padding: 24,
62
+ width: 320
63
+ },
64
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
65
+ status: "success",
66
+ message: "Drawer counted successfully."
67
+ })
68
+ })
69
+ };
70
+
71
+ /** With a trailing action and a close button. */
72
+ const WithActionAndClose = exports.WithActionAndClose = {
73
+ render: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
74
+ style: {
75
+ padding: 24,
76
+ width: 820
77
+ },
78
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
79
+ status: "destructive",
80
+ message: "Payment failed for order #02304.",
81
+ action: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinkButton.LinkButton, {
82
+ label: "Retry",
83
+ onPress: () => {}
84
+ }),
85
+ onClose: () => {}
86
+ })
87
+ })
88
+ };
89
+
90
+ /** Icon hidden. */
91
+ const NoIcon = exports.NoIcon = {
92
+ render: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
93
+ style: {
94
+ padding: 24,
95
+ width: 820
96
+ },
97
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
98
+ status: "info",
99
+ message: MSG,
100
+ showIcon: false
101
+ })
102
+ })
103
+ };
104
+ //# sourceMappingURL=Alert.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_Alert","_LinkButton","_jsxRuntime","meta","title","component","Alert","_default","exports","default","MSG","Statuses","render","jsxs","View","style","padding","width","gap","children","jsx","status","message","WithTitle","Narrow","WithActionAndClose","action","LinkButton","label","onPress","onClose","NoIcon","showIcon"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Alert/Alert.stories.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _reactNative = require("@testing-library/react-native");
4
+ var _reactNative2 = require("react-native");
5
+ var _index = require("../../theme/index.js");
6
+ var _Alert = require("./Alert.js");
7
+ var _jsxRuntime = require("react/jsx-runtime");
8
+ function wrap(ui) {
9
+ return (0, _reactNative.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ThemeProvider, {
10
+ children: ui
11
+ }));
12
+ }
13
+ describe('Alert', () => {
14
+ it('renders the message', () => {
15
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
16
+ message: "Something happened"
17
+ }));
18
+ expect(_reactNative.screen.getByText('Something happened')).toBeTruthy();
19
+ });
20
+ it('renders a title and children', () => {
21
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
22
+ status: "warning",
23
+ title: "Heads up",
24
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative2.Text, {
25
+ children: "Custom body"
26
+ })
27
+ }));
28
+ expect(_reactNative.screen.getByText('Heads up')).toBeTruthy();
29
+ expect(_reactNative.screen.getByText('Custom body')).toBeTruthy();
30
+ });
31
+ it('renders each status without crashing', () => {
32
+ for (const status of ['info', 'warning', 'success', 'destructive']) {
33
+ const {
34
+ unmount
35
+ } = wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
36
+ status: status,
37
+ message: `msg-${status}`
38
+ }));
39
+ expect(_reactNative.screen.getByText(`msg-${status}`)).toBeTruthy();
40
+ unmount();
41
+ }
42
+ });
43
+ it('fires onClose', () => {
44
+ const onClose = jest.fn();
45
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
46
+ message: "x",
47
+ onClose: onClose
48
+ }));
49
+ _reactNative.fireEvent.press(_reactNative.screen.getByLabelText('Dismiss'));
50
+ expect(onClose).toHaveBeenCalledTimes(1);
51
+ });
52
+ it('renders a trailing action', () => {
53
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
54
+ message: "x",
55
+ action: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative2.Text, {
56
+ children: "Retry"
57
+ })
58
+ }));
59
+ expect(_reactNative.screen.getByText('Retry')).toBeTruthy();
60
+ });
61
+ });
62
+ //# sourceMappingURL=Alert.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_reactNative2","_index","_Alert","_jsxRuntime","wrap","ui","render","jsx","ThemeProvider","children","describe","it","Alert","message","expect","screen","getByText","toBeTruthy","status","title","Text","unmount","onClose","jest","fn","fireEvent","press","getByLabelText","toHaveBeenCalledTimes","action"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Alert/Alert.test.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Alert", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Alert.Alert;
10
+ }
11
+ });
12
+ var _Alert = require("./Alert.js");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Alert","require"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Alert/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StatTile = StatTile;
7
+ var _reactNative = require("react-native");
8
+ var _index = require("../../theme/index.js");
9
+ var _Icon = require("../Icon/Icon.js");
10
+ var _Text = require("../Text/Text.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ /**
13
+ * StatTile — a compact KPI card: a small label over a prominent value (Figma
14
+ * "info card"). Fills its parent by default (so a row/grid of tiles sizes evenly)
15
+ * or takes a fixed `width`. `value` accepts a node for custom color/formatting.
16
+ */
17
+ function StatTile({
18
+ label,
19
+ value,
20
+ icon,
21
+ width,
22
+ onPress,
23
+ backgroundColor,
24
+ labelColor,
25
+ valueColor,
26
+ style,
27
+ accessibilityLabel
28
+ }) {
29
+ const theme = (0, _index.useTheme)();
30
+ const content = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
31
+ children: [icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
32
+ style: {
33
+ width: 24,
34
+ height: 24,
35
+ flexShrink: 0
36
+ },
37
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
38
+ name: icon,
39
+ size: 24,
40
+ color: "secondary"
41
+ })
42
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
43
+ style: {
44
+ flex: 1,
45
+ minWidth: 0,
46
+ gap: 4
47
+ },
48
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
49
+ variant: "bodySmall",
50
+ color: labelColor ?? 'secondary',
51
+ numberOfLines: 1,
52
+ children: label
53
+ }), typeof value === 'string' || typeof value === 'number' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
54
+ variant: "bodyLarge",
55
+ weight: "semibold",
56
+ color: valueColor ?? 'primary',
57
+ numberOfLines: 1,
58
+ children: String(value)
59
+ }) : value]
60
+ })]
61
+ });
62
+ const containerStyle = {
63
+ flexDirection: 'row',
64
+ alignItems: 'center',
65
+ gap: 12,
66
+ padding: 12,
67
+ borderRadius: theme.radii.lg,
68
+ backgroundColor: backgroundColor ?? theme.colors.background.subtle,
69
+ ...(width != null ? {
70
+ width
71
+ } : {
72
+ alignSelf: 'stretch'
73
+ })
74
+ };
75
+ if (!onPress) {
76
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
77
+ accessibilityLabel: accessibilityLabel,
78
+ style: [containerStyle, style],
79
+ children: content
80
+ });
81
+ }
82
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
83
+ onPress: onPress,
84
+ accessibilityRole: "button",
85
+ accessibilityLabel: accessibilityLabel ?? label,
86
+ style: ({
87
+ pressed
88
+ }) => [containerStyle, {
89
+ opacity: pressed ? 0.96 : 1
90
+ }, style],
91
+ children: content
92
+ });
93
+ }
94
+ //# sourceMappingURL=StatTile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_index","_Icon","_Text","_jsxRuntime","StatTile","label","value","icon","width","onPress","backgroundColor","labelColor","valueColor","style","accessibilityLabel","theme","useTheme","content","jsxs","Fragment","children","jsx","View","height","flexShrink","Icon","name","size","color","flex","minWidth","gap","Text","variant","numberOfLines","weight","String","containerStyle","flexDirection","alignItems","padding","borderRadius","radii","lg","colors","background","subtle","alignSelf","Pressable","accessibilityRole","pressed","opacity"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/StatTile/StatTile.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAH,OAAA;AAAoC,IAAAI,WAAA,GAAAJ,OAAA;AAwBpC;AACA;AACA;AACA;AACA;AACO,SAASK,QAAQA,CAAC;EACvBC,KAAK;EACLC,KAAK;EACLC,IAAI;EACJC,KAAK;EACLC,OAAO;EACPC,eAAe;EACfC,UAAU;EACVC,UAAU;EACVC,KAAK;EACLC;AACa,CAAC,EAAE;EAChB,MAAMC,KAAK,GAAG,IAAAC,eAAQ,EAAC,CAAC;EAExB,MAAMC,OAAO,gBACX,IAAAd,WAAA,CAAAe,IAAA,EAAAf,WAAA,CAAAgB,QAAA;IAAAC,QAAA,GACGb,IAAI,gBACH,IAAAJ,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;MAACT,KAAK,EAAE;QAAEL,KAAK,EAAE,EAAE;QAAEe,MAAM,EAAE,EAAE;QAAEC,UAAU,EAAE;MAAE,CAAE;MAAAJ,QAAA,eACpD,IAAAjB,WAAA,CAAAkB,GAAA,EAACpB,KAAA,CAAAwB,IAAI;QAACC,IAAI,EAAEnB,IAAK;QAACoB,IAAI,EAAE,EAAG;QAACC,KAAK,EAAC;MAAW,CAAE;IAAC,CAC5C,CAAC,GACL,IAAI,eACR,IAAAzB,WAAA,CAAAe,IAAA,EAACpB,YAAA,CAAAwB,IAAI;MAACT,KAAK,EAAE;QAAEgB,IAAI,EAAE,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAE,CAAE;MAAAX,QAAA,gBAC5C,IAAAjB,WAAA,CAAAkB,GAAA,EAACnB,KAAA,CAAA8B,IAAI;QAACC,OAAO,EAAC,WAAW;QAACL,KAAK,EAAEjB,UAAU,IAAI,WAAY;QAACuB,aAAa,EAAE,CAAE;QAAAd,QAAA,EAC1Ef;MAAK,CACF,CAAC,EACN,OAAOC,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,gBACrD,IAAAH,WAAA,CAAAkB,GAAA,EAACnB,KAAA,CAAA8B,IAAI;QAACC,OAAO,EAAC,WAAW;QAACE,MAAM,EAAC,UAAU;QAACP,KAAK,EAAEhB,UAAU,IAAI,SAAU;QAACsB,aAAa,EAAE,CAAE;QAAAd,QAAA,EAC1FgB,MAAM,CAAC9B,KAAK;MAAC,CACV,CAAC,GAEPA,KACD;IAAA,CACG,CAAC;EAAA,CACP,CACH;EAED,MAAM+B,cAAyB,GAAG;IAChCC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBR,GAAG,EAAE,EAAE;IACPS,OAAO,EAAE,EAAE;IACXC,YAAY,EAAE1B,KAAK,CAAC2B,KAAK,CAACC,EAAE;IAC5BjC,eAAe,EAAEA,eAAe,IAAIK,KAAK,CAAC6B,MAAM,CAACC,UAAU,CAACC,MAAM;IAClE,IAAItC,KAAK,IAAI,IAAI,GAAG;MAAEA;IAAM,CAAC,GAAG;MAAEuC,SAAS,EAAE;IAAU,CAAC;EAC1D,CAAC;EAED,IAAI,CAACtC,OAAO,EAAE;IACZ,oBACE,IAAAN,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;MAACR,kBAAkB,EAAEA,kBAAmB;MAACD,KAAK,EAAE,CAACwB,cAAc,EAAExB,KAAK,CAAE;MAAAO,QAAA,EAC1EH;IAAO,CACJ,CAAC;EAEX;EACA,oBACE,IAAAd,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAkD,SAAS;IACRvC,OAAO,EAAEA,OAAQ;IACjBwC,iBAAiB,EAAC,QAAQ;IAC1BnC,kBAAkB,EAAEA,kBAAkB,IAAIT,KAAM;IAChDQ,KAAK,EAAEA,CAAC;MAAEqC;IAAQ,CAAC,KAAK,CAACb,cAAc,EAAE;MAAEc,OAAO,EAAED,OAAO,GAAG,IAAI,GAAG;IAAE,CAAC,EAAErC,KAAK,CAAE;IAAAO,QAAA,EAEhFH;EAAO,CACC,CAAC;AAEhB","ignoreList":[]}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.WithIcon = exports.Row = exports.Default = exports.CustomValue = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _StatTile = require("./StatTile.js");
9
+ var _Text = require("../Text/Text.js");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ const meta = {
12
+ title: 'Components/StatTile',
13
+ component: _StatTile.StatTile
14
+ };
15
+ var _default = exports.default = meta;
16
+ /** Figma "info card". */
17
+ const Default = exports.Default = {
18
+ render: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
19
+ style: {
20
+ padding: 24,
21
+ width: 420
22
+ },
23
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
24
+ label: "Starting cash",
25
+ value: "$1,250.25"
26
+ })
27
+ })
28
+ };
29
+
30
+ /** A row of tiles sizing evenly (each fills its flex cell). */
31
+ const Row = exports.Row = {
32
+ render: () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
33
+ style: {
34
+ padding: 24,
35
+ flexDirection: 'row',
36
+ gap: 12,
37
+ width: 720
38
+ },
39
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
40
+ style: {
41
+ flex: 1
42
+ },
43
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
44
+ label: "Sales",
45
+ value: "$4,820"
46
+ })
47
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
48
+ style: {
49
+ flex: 1
50
+ },
51
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
52
+ label: "Orders",
53
+ value: "128"
54
+ })
55
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
56
+ style: {
57
+ flex: 1
58
+ },
59
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
60
+ label: "Avg. ticket",
61
+ value: "$37.60"
62
+ })
63
+ })]
64
+ })
65
+ };
66
+
67
+ /** With a leading icon. */
68
+ const WithIcon = exports.WithIcon = {
69
+ render: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
70
+ style: {
71
+ padding: 24,
72
+ width: 420
73
+ },
74
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
75
+ label: "Starting cash",
76
+ value: "$1,250.25",
77
+ icon: "dollar-circle"
78
+ })
79
+ })
80
+ };
81
+
82
+ /** Custom value node (e.g. a colored delta). */
83
+ const CustomValue = exports.CustomValue = {
84
+ render: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
85
+ style: {
86
+ padding: 24,
87
+ width: 420
88
+ },
89
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
90
+ label: "Net change",
91
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Text, {
92
+ variant: "bodyLarge",
93
+ weight: "semibold",
94
+ color: "#008C57",
95
+ children: "+$320.10"
96
+ })
97
+ })
98
+ })
99
+ };
100
+ //# sourceMappingURL=StatTile.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_StatTile","_Text","_jsxRuntime","meta","title","component","StatTile","_default","exports","default","Default","render","jsx","View","style","padding","width","children","label","value","Row","jsxs","flexDirection","gap","flex","WithIcon","icon","CustomValue","Text","variant","weight","color"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/StatTile/StatTile.stories.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _reactNative = require("@testing-library/react-native");
4
+ var _reactNative2 = require("react-native");
5
+ var _index = require("../../theme/index.js");
6
+ var _StatTile = require("./StatTile.js");
7
+ var _jsxRuntime = require("react/jsx-runtime");
8
+ function wrap(ui) {
9
+ return (0, _reactNative.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ThemeProvider, {
10
+ children: ui
11
+ }));
12
+ }
13
+ describe('StatTile', () => {
14
+ it('renders label and value', () => {
15
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
16
+ label: "Starting cash",
17
+ value: "$1,250.25"
18
+ }));
19
+ expect(_reactNative.screen.getByText('Starting cash')).toBeTruthy();
20
+ expect(_reactNative.screen.getByText('$1,250.25')).toBeTruthy();
21
+ });
22
+ it('renders a numeric value', () => {
23
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
24
+ label: "Orders",
25
+ value: 128
26
+ }));
27
+ expect(_reactNative.screen.getByText('128')).toBeTruthy();
28
+ });
29
+ it('renders a custom value node', () => {
30
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
31
+ label: "Delta",
32
+ value: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative2.Text, {
33
+ children: "+3.2%"
34
+ })
35
+ }));
36
+ expect(_reactNative.screen.getByText('+3.2%')).toBeTruthy();
37
+ });
38
+ it('fires onPress', () => {
39
+ const onPress = jest.fn();
40
+ wrap(/*#__PURE__*/(0, _jsxRuntime.jsx)(_StatTile.StatTile, {
41
+ label: "Sales",
42
+ value: "$10",
43
+ onPress: onPress
44
+ }));
45
+ _reactNative.fireEvent.press(_reactNative.screen.getByText('Sales'));
46
+ expect(onPress).toHaveBeenCalledTimes(1);
47
+ });
48
+ });
49
+ //# sourceMappingURL=StatTile.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_reactNative2","_index","_StatTile","_jsxRuntime","wrap","ui","render","jsx","ThemeProvider","children","describe","it","StatTile","label","value","expect","screen","getByText","toBeTruthy","Text","onPress","jest","fn","fireEvent","press","toHaveBeenCalledTimes"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/StatTile/StatTile.test.tsx"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAAsC,IAAAI,WAAA,GAAAJ,OAAA;AAEtC,SAASK,IAAIA,CAACC,EAAsB,EAAE;EACpC,OAAO,IAAAC,mBAAM,eAAC,IAAAH,WAAA,CAAAI,GAAA,EAACN,MAAA,CAAAO,aAAa;IAAAC,QAAA,EAAEJ;EAAE,CAAgB,CAAC,CAAC;AACpD;AAEAK,QAAQ,CAAC,UAAU,EAAE,MAAM;EACzBC,EAAE,CAAC,yBAAyB,EAAE,MAAM;IAClCP,IAAI,cAAC,IAAAD,WAAA,CAAAI,GAAA,EAACL,SAAA,CAAAU,QAAQ;MAACC,KAAK,EAAC,eAAe;MAACC,KAAK,EAAC;IAAW,CAAE,CAAC,CAAC;IAC1DC,MAAM,CAACC,mBAAM,CAACC,SAAS,CAAC,eAAe,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;IACtDH,MAAM,CAACC,mBAAM,CAACC,SAAS,CAAC,WAAW,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;EACpD,CAAC,CAAC;EAEFP,EAAE,CAAC,yBAAyB,EAAE,MAAM;IAClCP,IAAI,cAAC,IAAAD,WAAA,CAAAI,GAAA,EAACL,SAAA,CAAAU,QAAQ;MAACC,KAAK,EAAC,QAAQ;MAACC,KAAK,EAAE;IAAI,CAAE,CAAC,CAAC;IAC7CC,MAAM,CAACC,mBAAM,CAACC,SAAS,CAAC,KAAK,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEFP,EAAE,CAAC,6BAA6B,EAAE,MAAM;IACtCP,IAAI,cAAC,IAAAD,WAAA,CAAAI,GAAA,EAACL,SAAA,CAAAU,QAAQ;MAACC,KAAK,EAAC,OAAO;MAACC,KAAK,eAAE,IAAAX,WAAA,CAAAI,GAAA,EAACP,aAAA,CAAAmB,IAAI;QAAAV,QAAA,EAAC;MAAK,CAAM;IAAE,CAAE,CAAC,CAAC;IAC3DM,MAAM,CAACC,mBAAM,CAACC,SAAS,CAAC,OAAO,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;EAChD,CAAC,CAAC;EAEFP,EAAE,CAAC,eAAe,EAAE,MAAM;IACxB,MAAMS,OAAO,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IACzBlB,IAAI,cAAC,IAAAD,WAAA,CAAAI,GAAA,EAACL,SAAA,CAAAU,QAAQ;MAACC,KAAK,EAAC,OAAO;MAACC,KAAK,EAAC,KAAK;MAACM,OAAO,EAAEA;IAAQ,CAAE,CAAC,CAAC;IAC9DG,sBAAS,CAACC,KAAK,CAACR,mBAAM,CAACC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1CF,MAAM,CAACK,OAAO,CAAC,CAACK,qBAAqB,CAAC,CAAC,CAAC;EAC1C,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "StatTile", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _StatTile.StatTile;
10
+ }
11
+ });
12
+ var _StatTile = require("./StatTile.js");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_StatTile","require"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/StatTile/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA","ignoreList":[]}