@bacon-pos/ui 0.11.0 → 0.15.1

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 (161) hide show
  1. package/lib/commonjs/components/CodeInput/CodeInput.js +28 -9
  2. package/lib/commonjs/components/CodeInput/CodeInput.js.map +1 -1
  3. package/lib/commonjs/components/CodeInput/CodeInput.stories.js +28 -1
  4. package/lib/commonjs/components/CodeInput/CodeInput.stories.js.map +1 -1
  5. package/lib/commonjs/components/CodeInput/CodeInput.test.js +16 -0
  6. package/lib/commonjs/components/CodeInput/CodeInput.test.js.map +1 -1
  7. package/lib/commonjs/components/Dialog/Dialog.js +116 -71
  8. package/lib/commonjs/components/Dialog/Dialog.js.map +1 -1
  9. package/lib/commonjs/components/Dialog/StepDialog.js +111 -0
  10. package/lib/commonjs/components/Dialog/StepDialog.js.map +1 -0
  11. package/lib/commonjs/components/Dialog/StepDialog.stories.js +157 -0
  12. package/lib/commonjs/components/Dialog/StepDialog.stories.js.map +1 -0
  13. package/lib/commonjs/components/Dialog/StepDialog.test.js +118 -0
  14. package/lib/commonjs/components/Dialog/StepDialog.test.js.map +1 -0
  15. package/lib/commonjs/components/Dialog/index.js +7 -0
  16. package/lib/commonjs/components/Dialog/index.js.map +1 -1
  17. package/lib/commonjs/components/Icon/icons.generated.js +9 -1
  18. package/lib/commonjs/components/Icon/icons.generated.js.map +1 -1
  19. package/lib/commonjs/components/List/List.js +45 -0
  20. package/lib/commonjs/components/List/List.js.map +1 -0
  21. package/lib/commonjs/components/List/List.stories.js +215 -0
  22. package/lib/commonjs/components/List/List.stories.js.map +1 -0
  23. package/lib/commonjs/components/List/List.test.js +94 -0
  24. package/lib/commonjs/components/List/List.test.js.map +1 -0
  25. package/lib/commonjs/components/List/ListItem.js +210 -0
  26. package/lib/commonjs/components/List/ListItem.js.map +1 -0
  27. package/lib/commonjs/components/List/index.js +20 -0
  28. package/lib/commonjs/components/List/index.js.map +1 -0
  29. package/lib/commonjs/components/Menu/Menu.js +11 -3
  30. package/lib/commonjs/components/Menu/Menu.js.map +1 -1
  31. package/lib/commonjs/components/ProgressBar/ProgressBar.js +4 -3
  32. package/lib/commonjs/components/ProgressBar/ProgressBar.js.map +1 -1
  33. package/lib/commonjs/components/Sidebar/Sidebar.js +20 -3
  34. package/lib/commonjs/components/Sidebar/Sidebar.js.map +1 -1
  35. package/lib/commonjs/components/Sidebar/Sidebar.stories.js +17 -1
  36. package/lib/commonjs/components/Sidebar/Sidebar.stories.js.map +1 -1
  37. package/lib/commonjs/components/Table/Table.js +69 -6
  38. package/lib/commonjs/components/Table/Table.js.map +1 -1
  39. package/lib/commonjs/components/Table/Table.stories.js +118 -1
  40. package/lib/commonjs/components/Table/Table.stories.js.map +1 -1
  41. package/lib/commonjs/components/Table/Table.test.js +58 -0
  42. package/lib/commonjs/components/Table/Table.test.js.map +1 -1
  43. package/lib/commonjs/components/_internal/ModalHostContext.js +21 -0
  44. package/lib/commonjs/components/_internal/ModalHostContext.js.map +1 -0
  45. package/lib/commonjs/components/index.js +26 -15
  46. package/lib/commonjs/components/index.js.map +1 -1
  47. package/lib/module/components/CodeInput/CodeInput.js +28 -9
  48. package/lib/module/components/CodeInput/CodeInput.js.map +1 -1
  49. package/lib/module/components/CodeInput/CodeInput.stories.js +27 -0
  50. package/lib/module/components/CodeInput/CodeInput.stories.js.map +1 -1
  51. package/lib/module/components/CodeInput/CodeInput.test.js +16 -0
  52. package/lib/module/components/CodeInput/CodeInput.test.js.map +1 -1
  53. package/lib/module/components/Dialog/Dialog.js +116 -71
  54. package/lib/module/components/Dialog/Dialog.js.map +1 -1
  55. package/lib/module/components/Dialog/StepDialog.js +107 -0
  56. package/lib/module/components/Dialog/StepDialog.js.map +1 -0
  57. package/lib/module/components/Dialog/StepDialog.stories.js +153 -0
  58. package/lib/module/components/Dialog/StepDialog.stories.js.map +1 -0
  59. package/lib/module/components/Dialog/StepDialog.test.js +117 -0
  60. package/lib/module/components/Dialog/StepDialog.test.js.map +1 -0
  61. package/lib/module/components/Dialog/index.js +1 -0
  62. package/lib/module/components/Dialog/index.js.map +1 -1
  63. package/lib/module/components/Icon/icons.generated.js +9 -1
  64. package/lib/module/components/Icon/icons.generated.js.map +1 -1
  65. package/lib/module/components/List/List.js +41 -0
  66. package/lib/module/components/List/List.js.map +1 -0
  67. package/lib/module/components/List/List.stories.js +211 -0
  68. package/lib/module/components/List/List.stories.js.map +1 -0
  69. package/lib/module/components/List/List.test.js +94 -0
  70. package/lib/module/components/List/List.test.js.map +1 -0
  71. package/lib/module/components/List/ListItem.js +206 -0
  72. package/lib/module/components/List/ListItem.js.map +1 -0
  73. package/lib/module/components/List/index.js +5 -0
  74. package/lib/module/components/List/index.js.map +1 -0
  75. package/lib/module/components/Menu/Menu.js +12 -4
  76. package/lib/module/components/Menu/Menu.js.map +1 -1
  77. package/lib/module/components/ProgressBar/ProgressBar.js +4 -3
  78. package/lib/module/components/ProgressBar/ProgressBar.js.map +1 -1
  79. package/lib/module/components/Sidebar/Sidebar.js +20 -3
  80. package/lib/module/components/Sidebar/Sidebar.js.map +1 -1
  81. package/lib/module/components/Sidebar/Sidebar.stories.js +16 -0
  82. package/lib/module/components/Sidebar/Sidebar.stories.js.map +1 -1
  83. package/lib/module/components/Table/Table.js +70 -7
  84. package/lib/module/components/Table/Table.js.map +1 -1
  85. package/lib/module/components/Table/Table.stories.js +117 -0
  86. package/lib/module/components/Table/Table.stories.js.map +1 -1
  87. package/lib/module/components/Table/Table.test.js +58 -0
  88. package/lib/module/components/Table/Table.test.js.map +1 -1
  89. package/lib/module/components/_internal/ModalHostContext.js +17 -0
  90. package/lib/module/components/_internal/ModalHostContext.js.map +1 -0
  91. package/lib/module/components/index.js +1 -0
  92. package/lib/module/components/index.js.map +1 -1
  93. package/lib/typescript/commonjs/components/CodeInput/CodeInput.d.ts +5 -1
  94. package/lib/typescript/commonjs/components/CodeInput/CodeInput.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +13 -1
  96. package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/components/Dialog/StepDialog.d.ts +63 -0
  98. package/lib/typescript/commonjs/components/Dialog/StepDialog.d.ts.map +1 -0
  99. package/lib/typescript/commonjs/components/Dialog/index.d.ts +1 -0
  100. package/lib/typescript/commonjs/components/Dialog/index.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/components/Icon/icons.generated.d.ts +8 -0
  102. package/lib/typescript/commonjs/components/Icon/icons.generated.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/components/List/List.d.ts +22 -0
  104. package/lib/typescript/commonjs/components/List/List.d.ts.map +1 -0
  105. package/lib/typescript/commonjs/components/List/ListItem.d.ts +61 -0
  106. package/lib/typescript/commonjs/components/List/ListItem.d.ts.map +1 -0
  107. package/lib/typescript/commonjs/components/List/index.d.ts +5 -0
  108. package/lib/typescript/commonjs/components/List/index.d.ts.map +1 -0
  109. package/lib/typescript/commonjs/components/Menu/Menu.d.ts +4 -2
  110. package/lib/typescript/commonjs/components/Menu/Menu.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts +3 -1
  112. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/components/Sidebar/Sidebar.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/components/Table/Table.d.ts +25 -3
  115. package/lib/typescript/commonjs/components/Table/Table.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/components/_internal/ModalHostContext.d.ts +11 -0
  117. package/lib/typescript/commonjs/components/_internal/ModalHostContext.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/components/index.d.ts +1 -0
  119. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  120. package/lib/typescript/module/components/CodeInput/CodeInput.d.ts +5 -1
  121. package/lib/typescript/module/components/CodeInput/CodeInput.d.ts.map +1 -1
  122. package/lib/typescript/module/components/Dialog/Dialog.d.ts +13 -1
  123. package/lib/typescript/module/components/Dialog/Dialog.d.ts.map +1 -1
  124. package/lib/typescript/module/components/Dialog/StepDialog.d.ts +63 -0
  125. package/lib/typescript/module/components/Dialog/StepDialog.d.ts.map +1 -0
  126. package/lib/typescript/module/components/Dialog/index.d.ts +1 -0
  127. package/lib/typescript/module/components/Dialog/index.d.ts.map +1 -1
  128. package/lib/typescript/module/components/Icon/icons.generated.d.ts +8 -0
  129. package/lib/typescript/module/components/Icon/icons.generated.d.ts.map +1 -1
  130. package/lib/typescript/module/components/List/List.d.ts +22 -0
  131. package/lib/typescript/module/components/List/List.d.ts.map +1 -0
  132. package/lib/typescript/module/components/List/ListItem.d.ts +61 -0
  133. package/lib/typescript/module/components/List/ListItem.d.ts.map +1 -0
  134. package/lib/typescript/module/components/List/index.d.ts +5 -0
  135. package/lib/typescript/module/components/List/index.d.ts.map +1 -0
  136. package/lib/typescript/module/components/Menu/Menu.d.ts +4 -2
  137. package/lib/typescript/module/components/Menu/Menu.d.ts.map +1 -1
  138. package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts +3 -1
  139. package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts.map +1 -1
  140. package/lib/typescript/module/components/Sidebar/Sidebar.d.ts.map +1 -1
  141. package/lib/typescript/module/components/Table/Table.d.ts +25 -3
  142. package/lib/typescript/module/components/Table/Table.d.ts.map +1 -1
  143. package/lib/typescript/module/components/_internal/ModalHostContext.d.ts +11 -0
  144. package/lib/typescript/module/components/_internal/ModalHostContext.d.ts.map +1 -0
  145. package/lib/typescript/module/components/index.d.ts +1 -0
  146. package/lib/typescript/module/components/index.d.ts.map +1 -1
  147. package/package.json +16 -14
  148. package/src/components/CodeInput/CodeInput.tsx +46 -14
  149. package/src/components/Dialog/Dialog.tsx +92 -31
  150. package/src/components/Dialog/StepDialog.tsx +173 -0
  151. package/src/components/Dialog/index.ts +1 -0
  152. package/src/components/Icon/icons.generated.ts +9 -1
  153. package/src/components/List/List.tsx +45 -0
  154. package/src/components/List/ListItem.tsx +214 -0
  155. package/src/components/List/index.ts +4 -0
  156. package/src/components/Menu/Menu.tsx +15 -6
  157. package/src/components/ProgressBar/ProgressBar.tsx +6 -3
  158. package/src/components/Sidebar/Sidebar.tsx +18 -10
  159. package/src/components/Table/Table.tsx +93 -8
  160. package/src/components/_internal/ModalHostContext.tsx +15 -0
  161. package/src/components/index.ts +1 -0
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+
3
+ import { useState } from 'react';
4
+ import { View } from 'react-native';
5
+ import { List } from "./List.js";
6
+ import { ListItem } from "./ListItem.js";
7
+ import { Avatar } from "../Avatar/Avatar.js";
8
+ import { Badge } from "../Badge/Badge.js";
9
+ import { Switch } from "../Switch/Switch.js";
10
+ import { Text } from "../Text/Text.js";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ const meta = {
13
+ title: 'Components/List',
14
+ component: List
15
+ };
16
+ export default meta;
17
+ const PHOTO = {
18
+ uri: 'https://i.pravatar.cc/150?img=47'
19
+ };
20
+ const PHOTO2 = {
21
+ uri: 'https://i.pravatar.cc/150?img=32'
22
+ };
23
+
24
+ /** The three Figma types in one list. */
25
+ export const Types = {
26
+ render: () => /*#__PURE__*/_jsx(View, {
27
+ style: {
28
+ padding: 24,
29
+ width: 720
30
+ },
31
+ children: /*#__PURE__*/_jsxs(List, {
32
+ children: [/*#__PURE__*/_jsx(ListItem, {
33
+ size: "md",
34
+ icon: "taxes",
35
+ title: "Taxes",
36
+ subtitle: "Rates and rules for accurate totals",
37
+ subtitleColor: "tertiary",
38
+ chevron: true,
39
+ onPress: () => {}
40
+ }), /*#__PURE__*/_jsx(ListItem, {
41
+ size: "lg",
42
+ align: "top",
43
+ leading: /*#__PURE__*/_jsx(Avatar, {
44
+ name: "Juana Gomez",
45
+ source: PHOTO,
46
+ diameter: 72
47
+ }),
48
+ title: "Juana Gomez",
49
+ subtitle: "Cashier \xB7 4 open checks",
50
+ badge: /*#__PURE__*/_jsx(Badge, {
51
+ label: "On shift"
52
+ }),
53
+ onPress: () => {}
54
+ }), /*#__PURE__*/_jsx(ListItem, {
55
+ size: "sm",
56
+ leading: /*#__PURE__*/_jsx(Avatar, {
57
+ name: "Marie Johnson",
58
+ source: PHOTO2,
59
+ diameter: 58
60
+ }),
61
+ overline: "mariejohnson@gmail.com",
62
+ title: "Marie Johnson Smith",
63
+ onPress: () => {}
64
+ })]
65
+ })
66
+ })
67
+ };
68
+
69
+ /** Settings-style list (icon + title + subtitle + chevron). */
70
+ export const Settings = {
71
+ render: () => /*#__PURE__*/_jsx(View, {
72
+ style: {
73
+ padding: 24,
74
+ width: 640
75
+ },
76
+ children: /*#__PURE__*/_jsxs(List, {
77
+ children: [/*#__PURE__*/_jsx(ListItem, {
78
+ icon: "taxes",
79
+ title: "Taxes",
80
+ subtitle: "Rates and rules for accurate totals",
81
+ subtitleColor: "tertiary",
82
+ chevron: true,
83
+ onPress: () => {}
84
+ }), /*#__PURE__*/_jsx(ListItem, {
85
+ icon: "settings",
86
+ title: "General",
87
+ subtitle: "Business name, timezone, currency",
88
+ subtitleColor: "tertiary",
89
+ chevron: true,
90
+ onPress: () => {}
91
+ }), /*#__PURE__*/_jsx(ListItem, {
92
+ icon: "user",
93
+ title: "Team",
94
+ subtitle: "Manage staff and roles",
95
+ subtitleColor: "tertiary",
96
+ chevron: true,
97
+ onPress: () => {}
98
+ })]
99
+ })
100
+ })
101
+ };
102
+
103
+ /** Trailing controls (e.g. a Switch) instead of a chevron. */
104
+ export const WithSwitch = {
105
+ render: () => {
106
+ const [on, setOn] = useState(true);
107
+ return /*#__PURE__*/_jsx(View, {
108
+ style: {
109
+ padding: 24,
110
+ width: 640
111
+ },
112
+ children: /*#__PURE__*/_jsxs(List, {
113
+ children: [/*#__PURE__*/_jsx(ListItem, {
114
+ icon: "dish",
115
+ title: "Show product photos",
116
+ subtitle: "Display item images on the POS grid",
117
+ subtitleColor: "tertiary",
118
+ trailing: /*#__PURE__*/_jsx(Switch, {
119
+ value: on,
120
+ onValueChange: setOn
121
+ })
122
+ }), /*#__PURE__*/_jsx(ListItem, {
123
+ icon: "settings",
124
+ title: "Auto-print receipts",
125
+ trailing: /*#__PURE__*/_jsx(Switch, {
126
+ value: false,
127
+ onValueChange: () => {}
128
+ })
129
+ })]
130
+ })
131
+ });
132
+ }
133
+ };
134
+
135
+ /** Selected + disabled states. */
136
+ export const States = {
137
+ render: () => /*#__PURE__*/_jsx(View, {
138
+ style: {
139
+ padding: 24,
140
+ width: 640
141
+ },
142
+ children: /*#__PURE__*/_jsxs(List, {
143
+ children: [/*#__PURE__*/_jsx(ListItem, {
144
+ icon: "taxes",
145
+ title: "Selected row",
146
+ subtitle: "Highlighted",
147
+ selected: true,
148
+ onPress: () => {}
149
+ }), /*#__PURE__*/_jsx(ListItem, {
150
+ icon: "settings",
151
+ title: "Normal row",
152
+ subtitle: "Press me",
153
+ onPress: () => {}
154
+ }), /*#__PURE__*/_jsx(ListItem, {
155
+ icon: "user",
156
+ title: "Disabled row",
157
+ subtitle: "Not pressable",
158
+ disabled: true,
159
+ onPress: () => {}
160
+ })]
161
+ })
162
+ })
163
+ };
164
+
165
+ /** No dividers, fixed width. */
166
+ export const NoDividers = {
167
+ render: () => /*#__PURE__*/_jsx(View, {
168
+ style: {
169
+ padding: 24
170
+ },
171
+ children: /*#__PURE__*/_jsxs(List, {
172
+ showDividers: false,
173
+ width: 360,
174
+ children: [/*#__PURE__*/_jsx(ListItem, {
175
+ title: "One",
176
+ subtitle: "Sub one",
177
+ onPress: () => {}
178
+ }), /*#__PURE__*/_jsx(ListItem, {
179
+ title: "Two",
180
+ subtitle: "Sub two",
181
+ onPress: () => {}
182
+ })]
183
+ })
184
+ })
185
+ };
186
+
187
+ /** Standalone ListItem (its own divider). */
188
+ export const Standalone = {
189
+ render: () => /*#__PURE__*/_jsxs(View, {
190
+ style: {
191
+ padding: 24,
192
+ width: 520
193
+ },
194
+ children: [/*#__PURE__*/_jsx(ListItem, {
195
+ icon: "taxes",
196
+ title: "Standalone item",
197
+ subtitle: "With its own divider",
198
+ divider: true,
199
+ chevron: true,
200
+ onPress: () => {}
201
+ }), /*#__PURE__*/_jsx(Text, {
202
+ variant: "caption",
203
+ color: "secondary",
204
+ style: {
205
+ marginTop: 8
206
+ },
207
+ children: "Below the divider"
208
+ })]
209
+ })
210
+ };
211
+ //# sourceMappingURL=List.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","View","List","ListItem","Avatar","Badge","Switch","Text","jsx","_jsx","jsxs","_jsxs","meta","title","component","PHOTO","uri","PHOTO2","Types","render","style","padding","width","children","size","icon","subtitle","subtitleColor","chevron","onPress","align","leading","name","source","diameter","badge","label","overline","Settings","WithSwitch","on","setOn","trailing","value","onValueChange","States","selected","disabled","NoDividers","showDividers","Standalone","divider","variant","color","marginTop"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/List/List.stories.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ import { render, fireEvent, screen } from '@testing-library/react-native';
4
+ import { Text } from 'react-native';
5
+ import { ThemeProvider } from "../../theme/index.js";
6
+ import { List } from "./List.js";
7
+ import { ListItem } from "./ListItem.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ function wrap(ui) {
10
+ return render(/*#__PURE__*/_jsx(ThemeProvider, {
11
+ children: ui
12
+ }));
13
+ }
14
+ describe('ListItem', () => {
15
+ it('renders title, subtitle and overline', () => {
16
+ wrap(/*#__PURE__*/_jsx(ListItem, {
17
+ overline: "email@x.com",
18
+ title: "Marie",
19
+ subtitle: "Cashier"
20
+ }));
21
+ expect(screen.getByText('email@x.com')).toBeTruthy();
22
+ expect(screen.getByText('Marie')).toBeTruthy();
23
+ expect(screen.getByText('Cashier')).toBeTruthy();
24
+ });
25
+ it('renders a badge and a subtitle node', () => {
26
+ wrap(/*#__PURE__*/_jsx(ListItem, {
27
+ title: "Juana",
28
+ subtitle: "Cashier",
29
+ badge: /*#__PURE__*/_jsx(Text, {
30
+ children: "On shift"
31
+ })
32
+ }));
33
+ expect(screen.getByText('On shift')).toBeTruthy();
34
+ });
35
+ it('renders a leading node and a custom trailing node', () => {
36
+ wrap(/*#__PURE__*/_jsx(ListItem, {
37
+ title: "Item",
38
+ leading: /*#__PURE__*/_jsx(Text, {
39
+ children: "AV"
40
+ }),
41
+ trailing: /*#__PURE__*/_jsx(Text, {
42
+ children: "\u203A"
43
+ })
44
+ }));
45
+ expect(screen.getByText('AV')).toBeTruthy();
46
+ expect(screen.getByText('›')).toBeTruthy();
47
+ });
48
+ it('fires onPress when pressable', () => {
49
+ const onPress = jest.fn();
50
+ wrap(/*#__PURE__*/_jsx(ListItem, {
51
+ title: "Taxes",
52
+ onPress: onPress
53
+ }));
54
+ fireEvent.press(screen.getByText('Taxes'));
55
+ expect(onPress).toHaveBeenCalledTimes(1);
56
+ });
57
+ it('is not pressable when disabled', () => {
58
+ const onPress = jest.fn();
59
+ wrap(/*#__PURE__*/_jsx(ListItem, {
60
+ title: "Taxes",
61
+ onPress: onPress,
62
+ disabled: true
63
+ }));
64
+ fireEvent.press(screen.getByText('Taxes'));
65
+ expect(onPress).not.toHaveBeenCalled();
66
+ });
67
+ it('marks selected state', () => {
68
+ wrap(/*#__PURE__*/_jsx(ListItem, {
69
+ title: "Taxes",
70
+ selected: true,
71
+ onPress: () => {}
72
+ }));
73
+ expect(screen.getByLabelText('Taxes').props.accessibilityState).toMatchObject({
74
+ selected: true
75
+ });
76
+ });
77
+ });
78
+ describe('List', () => {
79
+ it('renders its items', () => {
80
+ wrap(/*#__PURE__*/_jsxs(List, {
81
+ children: [/*#__PURE__*/_jsx(ListItem, {
82
+ title: "One"
83
+ }), /*#__PURE__*/_jsx(ListItem, {
84
+ title: "Two"
85
+ }), /*#__PURE__*/_jsx(ListItem, {
86
+ title: "Three"
87
+ })]
88
+ }));
89
+ expect(screen.getByText('One')).toBeTruthy();
90
+ expect(screen.getByText('Two')).toBeTruthy();
91
+ expect(screen.getByText('Three')).toBeTruthy();
92
+ });
93
+ });
94
+ //# sourceMappingURL=List.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["render","fireEvent","screen","Text","ThemeProvider","List","ListItem","jsx","_jsx","jsxs","_jsxs","wrap","ui","children","describe","it","overline","title","subtitle","expect","getByText","toBeTruthy","badge","leading","trailing","onPress","jest","fn","press","toHaveBeenCalledTimes","disabled","not","toHaveBeenCalled","selected","getByLabelText","props","accessibilityState","toMatchObject"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/List/List.test.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+
3
+ import { useState } from 'react';
4
+ import { Pressable, View } from 'react-native';
5
+ import { useTheme } from "../../theme/index.js";
6
+ import { Icon } from "../Icon/Icon.js";
7
+ import { Text } from "../Text/Text.js";
8
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
+ const SIZES = {
10
+ sm: {
11
+ titleVariant: 'bodyMedium',
12
+ titleWeight: 'medium',
13
+ pv: 12,
14
+ gap: 16,
15
+ contentGap: 4
16
+ },
17
+ md: {
18
+ titleVariant: 'bodyLarge',
19
+ titleWeight: 'medium',
20
+ pv: 16,
21
+ gap: 16,
22
+ contentGap: 8
23
+ },
24
+ lg: {
25
+ titleVariant: 'h3',
26
+ titleWeight: 'semibold',
27
+ pv: 20,
28
+ gap: 20,
29
+ contentGap: 12
30
+ }
31
+ };
32
+
33
+ /**
34
+ * ListItem — a flexible list row (Figma "List items"). Anatomy: an optional
35
+ * leading column (avatar/custom) or an inline title `icon`, an overline / title /
36
+ * subtitle text block, an inline `badge`, and a trailing slot or forward
37
+ * `chevron`. `size` (sm/md/lg) scales the title and spacing; press adds
38
+ * hover/active states. Fills its parent by default or takes a fixed `width`.
39
+ * Usually wrapped in `List`, which manages the dividers.
40
+ */
41
+ export function ListItem({
42
+ title,
43
+ subtitle,
44
+ overline,
45
+ icon,
46
+ leading,
47
+ trailing,
48
+ chevron = false,
49
+ badge,
50
+ size = 'md',
51
+ align = 'center',
52
+ divider = false,
53
+ selected = false,
54
+ disabled = false,
55
+ onPress,
56
+ titleColor,
57
+ subtitleColor,
58
+ overlineColor,
59
+ titleVariant,
60
+ titleWeight,
61
+ paddingVertical,
62
+ paddingHorizontal = 12,
63
+ gap,
64
+ width,
65
+ fullWidth = true,
66
+ style,
67
+ accessibilityLabel
68
+ }) {
69
+ const theme = useTheme();
70
+ const cfg = SIZES[size];
71
+ const [hovered, setHovered] = useState(false);
72
+ const titleTint = titleColor ?? theme.colors.action.secondaryForeground;
73
+ const interactive = !!onPress;
74
+ const backgroundColor = selected ? theme.colors.background.subtle : hovered && interactive && !disabled ? theme.colors.background.muted : 'transparent';
75
+ const containerStyle = {
76
+ flexDirection: 'row',
77
+ alignItems: align === 'top' ? 'flex-start' : 'center',
78
+ gap: gap ?? cfg.gap,
79
+ paddingVertical: paddingVertical ?? cfg.pv,
80
+ paddingHorizontal,
81
+ backgroundColor,
82
+ opacity: disabled ? 0.5 : 1,
83
+ ...(divider ? {
84
+ borderBottomWidth: 1,
85
+ borderBottomColor: theme.colors.border.subtle
86
+ } : null),
87
+ ...(width != null ? {
88
+ width
89
+ } : fullWidth ? {
90
+ alignSelf: 'stretch'
91
+ } : {
92
+ alignSelf: 'flex-start'
93
+ })
94
+ };
95
+ const content = /*#__PURE__*/_jsxs(_Fragment, {
96
+ children: [leading != null ? /*#__PURE__*/_jsx(View, {
97
+ style: {
98
+ flexShrink: 0
99
+ },
100
+ children: leading
101
+ }) : null, /*#__PURE__*/_jsxs(View, {
102
+ style: {
103
+ flex: 1,
104
+ minWidth: 0,
105
+ gap: cfg.contentGap
106
+ },
107
+ children: [overline ? /*#__PURE__*/_jsx(Text, {
108
+ variant: "bodyMedium",
109
+ color: overlineColor ?? 'tertiary',
110
+ numberOfLines: 1,
111
+ children: overline
112
+ }) : null, /*#__PURE__*/_jsxs(View, {
113
+ style: {
114
+ flexDirection: 'row',
115
+ alignItems: 'center',
116
+ gap: 16
117
+ },
118
+ children: [icon ? /*#__PURE__*/_jsx(View, {
119
+ style: {
120
+ width: 24,
121
+ height: 24,
122
+ flexShrink: 0
123
+ },
124
+ children: /*#__PURE__*/_jsx(Icon, {
125
+ name: icon,
126
+ size: 24,
127
+ color: titleTint
128
+ })
129
+ }) : null, /*#__PURE__*/_jsx(Text, {
130
+ variant: titleVariant ?? cfg.titleVariant,
131
+ weight: titleWeight ?? cfg.titleWeight,
132
+ color: titleTint,
133
+ numberOfLines: 1,
134
+ style: {
135
+ flexShrink: 1,
136
+ minWidth: 0
137
+ },
138
+ children: title
139
+ })]
140
+ }), subtitle != null || badge != null ? /*#__PURE__*/_jsxs(View, {
141
+ style: {
142
+ flexDirection: 'row',
143
+ alignItems: 'center',
144
+ gap: 12
145
+ },
146
+ children: [typeof subtitle === 'string' || typeof subtitle === 'number' ? /*#__PURE__*/_jsx(Text, {
147
+ variant: "bodyMedium",
148
+ color: subtitleColor ?? 'secondary',
149
+ numberOfLines: 1,
150
+ style: {
151
+ flexShrink: 1,
152
+ minWidth: 0
153
+ },
154
+ children: String(subtitle)
155
+ }) : subtitle, badge != null ? /*#__PURE__*/_jsx(View, {
156
+ style: {
157
+ flexShrink: 0
158
+ },
159
+ children: badge
160
+ }) : null]
161
+ }) : null]
162
+ }), trailing != null ? /*#__PURE__*/_jsx(View, {
163
+ style: {
164
+ flexShrink: 0
165
+ },
166
+ children: trailing
167
+ }) : chevron ? /*#__PURE__*/_jsx(View, {
168
+ style: {
169
+ width: 24,
170
+ height: 24,
171
+ flexShrink: 0
172
+ },
173
+ children: /*#__PURE__*/_jsx(Icon, {
174
+ name: "chevron-forward",
175
+ size: 24,
176
+ color: "tertiary"
177
+ })
178
+ }) : null]
179
+ });
180
+ if (!interactive) {
181
+ return /*#__PURE__*/_jsx(View, {
182
+ accessibilityLabel: accessibilityLabel,
183
+ style: [containerStyle, style],
184
+ children: content
185
+ });
186
+ }
187
+ return /*#__PURE__*/_jsx(Pressable, {
188
+ onPress: disabled ? undefined : onPress,
189
+ onHoverIn: disabled ? undefined : () => setHovered(true),
190
+ onHoverOut: disabled ? undefined : () => setHovered(false),
191
+ disabled: disabled,
192
+ accessibilityRole: "button",
193
+ accessibilityState: {
194
+ selected,
195
+ disabled
196
+ },
197
+ accessibilityLabel: accessibilityLabel ?? title,
198
+ style: ({
199
+ pressed
200
+ }) => [containerStyle, pressed && !disabled ? {
201
+ backgroundColor: theme.colors.background.subtle
202
+ } : null, style],
203
+ children: content
204
+ });
205
+ }
206
+ //# sourceMappingURL=ListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","Pressable","View","useTheme","Icon","Text","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SIZES","sm","titleVariant","titleWeight","pv","gap","contentGap","md","lg","ListItem","title","subtitle","overline","icon","leading","trailing","chevron","badge","size","align","divider","selected","disabled","onPress","titleColor","subtitleColor","overlineColor","paddingVertical","paddingHorizontal","width","fullWidth","style","accessibilityLabel","theme","cfg","hovered","setHovered","titleTint","colors","action","secondaryForeground","interactive","backgroundColor","background","subtle","muted","containerStyle","flexDirection","alignItems","opacity","borderBottomWidth","borderBottomColor","border","alignSelf","content","children","flexShrink","flex","minWidth","variant","color","numberOfLines","height","name","weight","String","undefined","onHoverIn","onHoverOut","accessibilityRole","accessibilityState","pressed"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/List/ListItem.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export { List } from "./List.js";
4
+ export { ListItem } from "./ListItem.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["List","ListItem"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/List/index.ts"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,WAAQ;AAE7B,SAASC,QAAQ,QAAQ,eAAY","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect, useRef, useState } from 'react';
3
+ import { useContext, useEffect, useRef, useState } from 'react';
4
4
  import { Animated, Dimensions, Easing, Modal, Platform, Pressable, StatusBar, View } from 'react-native';
5
+ import { ModalHostContext } from "../_internal/ModalHostContext.js";
5
6
  import { computeMenuPlacement } from "./placement.js";
6
7
 
7
8
  /** A point on a box: a vertical and a horizontal edge/center. */
@@ -38,13 +39,17 @@ export function Menu({
38
39
  offset = 8,
39
40
  autoFit = true,
40
41
  insets = ZERO_INSETS,
41
- statusBarHeight = DEFAULT_STATUS_BAR_HEIGHT,
42
+ statusBarHeight,
42
43
  open: openProp,
43
44
  onOpenChange,
44
45
  screenPadding = 8,
45
46
  triggerStyle
46
47
  }) {
47
48
  const triggerRef = useRef(null);
49
+ // Inside a full-screen Modal host (e.g. Dialog) the trigger is already measured
50
+ // in full-screen coordinates, so no status-bar compensation is needed there.
51
+ const insideModalHost = useContext(ModalHostContext);
52
+ const effectiveStatusBarHeight = statusBarHeight ?? (insideModalHost ? 0 : DEFAULT_STATUS_BAR_HEIGHT);
48
53
  const [uncontrolledOpen, setUncontrolledOpen] = useState(false);
49
54
  const isControlled = openProp !== undefined;
50
55
  const open = isControlled ? openProp : uncontrolledOpen;
@@ -121,7 +126,7 @@ export function Menu({
121
126
  insets,
122
127
  screenWidth: screen.width,
123
128
  screenHeight: screen.height,
124
- statusBarHeight,
129
+ statusBarHeight: effectiveStatusBarHeight,
125
130
  autoFit
126
131
  }) : null;
127
132
  const top = placement?.top ?? 0;
@@ -174,7 +179,10 @@ export function Menu({
174
179
  }) : 1
175
180
  }]
176
181
  },
177
- children: content
182
+ children: /*#__PURE__*/_jsx(ModalHostContext.Provider, {
183
+ value: true,
184
+ children: content
185
+ })
178
186
  })
179
187
  })
180
188
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","Animated","Dimensions","Easing","Modal","Platform","Pressable","StatusBar","View","computeMenuPlacement","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ZERO_INSETS","top","right","bottom","left","DEFAULT_STATUS_BAR_HEIGHT","OS","currentHeight","Menu","renderTrigger","children","anchorOrigin","vertical","horizontal","menuOrigin","offset","autoFit","insets","statusBarHeight","open","openProp","onOpenChange","screenPadding","triggerStyle","triggerRef","uncontrolledOpen","setUncontrolledOpen","isControlled","undefined","rect","setRect","menuSize","setMenuSize","naturalHeight","setNaturalHeight","anim","Value","current","setOpen","next","close","toggle","setValue","measureInWindow","x","y","width","height","timing","toValue","duration","easing","out","ease","useNativeDriver","start","onMenuLayout","e","nativeEvent","layout","screen","get","placement","menuWidth","menuHeight","screenWidth","screenHeight","autoMaxHeight","maxHeight","placed","Boolean","content","triggerWidth","ref","collapsable","style","alignSelf","visible","transparent","animationType","onRequestClose","statusBarTranslucent","accessibilityLabel","onPress","flex","onLayout","onStartShouldSetResponder","position","opacity","transform","scale","interpolate","inputRange","outputRange"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/Menu.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useContext","useEffect","useRef","useState","Animated","Dimensions","Easing","Modal","Platform","Pressable","StatusBar","View","ModalHostContext","computeMenuPlacement","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ZERO_INSETS","top","right","bottom","left","DEFAULT_STATUS_BAR_HEIGHT","OS","currentHeight","Menu","renderTrigger","children","anchorOrigin","vertical","horizontal","menuOrigin","offset","autoFit","insets","statusBarHeight","open","openProp","onOpenChange","screenPadding","triggerStyle","triggerRef","insideModalHost","effectiveStatusBarHeight","uncontrolledOpen","setUncontrolledOpen","isControlled","undefined","rect","setRect","menuSize","setMenuSize","naturalHeight","setNaturalHeight","anim","Value","current","setOpen","next","close","toggle","setValue","measureInWindow","x","y","width","height","timing","toValue","duration","easing","out","ease","useNativeDriver","start","onMenuLayout","e","nativeEvent","layout","screen","get","placement","menuWidth","menuHeight","screenWidth","screenHeight","autoMaxHeight","maxHeight","placed","Boolean","content","triggerWidth","ref","collapsable","style","alignSelf","visible","transparent","animationType","onRequestClose","statusBarTranslucent","accessibilityLabel","onPress","flex","onLayout","onStartShouldSetResponder","position","opacity","transform","scale","interpolate","inputRange","outputRange","Provider","value"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Menu/Menu.tsx"],"mappings":"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","ignoreList":[]}
@@ -24,6 +24,7 @@ export function ProgressBar({
24
24
  color,
25
25
  trackColor,
26
26
  borderColor,
27
+ bordered = true,
27
28
  animated = true,
28
29
  style,
29
30
  accessibilityLabel
@@ -49,7 +50,7 @@ export function ProgressBar({
49
50
  outputRange: ['0%', '100%'],
50
51
  extrapolate: 'clamp'
51
52
  });
52
- const inset = 2.5;
53
+ const inset = bordered ? 2.5 : 0;
53
54
  return /*#__PURE__*/_jsxs(View, {
54
55
  style: [{
55
56
  gap: 12,
@@ -67,8 +68,8 @@ export function ProgressBar({
67
68
  style: {
68
69
  height,
69
70
  borderRadius: height / 2,
70
- borderWidth: 1.5,
71
- borderColor: borderColor ?? theme.colors.border.default,
71
+ borderWidth: bordered ? 1.5 : 0,
72
+ borderColor: bordered ? borderColor ?? theme.colors.border.default : 'transparent',
72
73
  backgroundColor: trackColor ?? theme.colors.background.subtle,
73
74
  padding: inset,
74
75
  justifyContent: 'center',