@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.
- package/lib/commonjs/components/CodeInput/CodeInput.js +28 -9
- package/lib/commonjs/components/CodeInput/CodeInput.js.map +1 -1
- package/lib/commonjs/components/CodeInput/CodeInput.stories.js +28 -1
- package/lib/commonjs/components/CodeInput/CodeInput.stories.js.map +1 -1
- package/lib/commonjs/components/CodeInput/CodeInput.test.js +16 -0
- package/lib/commonjs/components/CodeInput/CodeInput.test.js.map +1 -1
- package/lib/commonjs/components/Dialog/Dialog.js +116 -71
- package/lib/commonjs/components/Dialog/Dialog.js.map +1 -1
- package/lib/commonjs/components/Dialog/StepDialog.js +111 -0
- package/lib/commonjs/components/Dialog/StepDialog.js.map +1 -0
- package/lib/commonjs/components/Dialog/StepDialog.stories.js +157 -0
- package/lib/commonjs/components/Dialog/StepDialog.stories.js.map +1 -0
- package/lib/commonjs/components/Dialog/StepDialog.test.js +118 -0
- package/lib/commonjs/components/Dialog/StepDialog.test.js.map +1 -0
- package/lib/commonjs/components/Dialog/index.js +7 -0
- package/lib/commonjs/components/Dialog/index.js.map +1 -1
- package/lib/commonjs/components/Icon/icons.generated.js +9 -1
- package/lib/commonjs/components/Icon/icons.generated.js.map +1 -1
- package/lib/commonjs/components/List/List.js +45 -0
- package/lib/commonjs/components/List/List.js.map +1 -0
- package/lib/commonjs/components/List/List.stories.js +215 -0
- package/lib/commonjs/components/List/List.stories.js.map +1 -0
- package/lib/commonjs/components/List/List.test.js +94 -0
- package/lib/commonjs/components/List/List.test.js.map +1 -0
- package/lib/commonjs/components/List/ListItem.js +210 -0
- package/lib/commonjs/components/List/ListItem.js.map +1 -0
- package/lib/commonjs/components/List/index.js +20 -0
- package/lib/commonjs/components/List/index.js.map +1 -0
- package/lib/commonjs/components/Menu/Menu.js +11 -3
- package/lib/commonjs/components/Menu/Menu.js.map +1 -1
- package/lib/commonjs/components/ProgressBar/ProgressBar.js +4 -3
- package/lib/commonjs/components/ProgressBar/ProgressBar.js.map +1 -1
- package/lib/commonjs/components/Sidebar/Sidebar.js +20 -3
- package/lib/commonjs/components/Sidebar/Sidebar.js.map +1 -1
- package/lib/commonjs/components/Sidebar/Sidebar.stories.js +17 -1
- package/lib/commonjs/components/Sidebar/Sidebar.stories.js.map +1 -1
- package/lib/commonjs/components/Table/Table.js +69 -6
- package/lib/commonjs/components/Table/Table.js.map +1 -1
- package/lib/commonjs/components/Table/Table.stories.js +118 -1
- package/lib/commonjs/components/Table/Table.stories.js.map +1 -1
- package/lib/commonjs/components/Table/Table.test.js +58 -0
- package/lib/commonjs/components/Table/Table.test.js.map +1 -1
- package/lib/commonjs/components/_internal/ModalHostContext.js +21 -0
- package/lib/commonjs/components/_internal/ModalHostContext.js.map +1 -0
- package/lib/commonjs/components/index.js +26 -15
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/module/components/CodeInput/CodeInput.js +28 -9
- package/lib/module/components/CodeInput/CodeInput.js.map +1 -1
- package/lib/module/components/CodeInput/CodeInput.stories.js +27 -0
- package/lib/module/components/CodeInput/CodeInput.stories.js.map +1 -1
- package/lib/module/components/CodeInput/CodeInput.test.js +16 -0
- package/lib/module/components/CodeInput/CodeInput.test.js.map +1 -1
- package/lib/module/components/Dialog/Dialog.js +116 -71
- package/lib/module/components/Dialog/Dialog.js.map +1 -1
- package/lib/module/components/Dialog/StepDialog.js +107 -0
- package/lib/module/components/Dialog/StepDialog.js.map +1 -0
- package/lib/module/components/Dialog/StepDialog.stories.js +153 -0
- package/lib/module/components/Dialog/StepDialog.stories.js.map +1 -0
- package/lib/module/components/Dialog/StepDialog.test.js +117 -0
- package/lib/module/components/Dialog/StepDialog.test.js.map +1 -0
- package/lib/module/components/Dialog/index.js +1 -0
- package/lib/module/components/Dialog/index.js.map +1 -1
- package/lib/module/components/Icon/icons.generated.js +9 -1
- package/lib/module/components/Icon/icons.generated.js.map +1 -1
- package/lib/module/components/List/List.js +41 -0
- package/lib/module/components/List/List.js.map +1 -0
- package/lib/module/components/List/List.stories.js +211 -0
- package/lib/module/components/List/List.stories.js.map +1 -0
- package/lib/module/components/List/List.test.js +94 -0
- package/lib/module/components/List/List.test.js.map +1 -0
- package/lib/module/components/List/ListItem.js +206 -0
- package/lib/module/components/List/ListItem.js.map +1 -0
- package/lib/module/components/List/index.js +5 -0
- package/lib/module/components/List/index.js.map +1 -0
- package/lib/module/components/Menu/Menu.js +12 -4
- package/lib/module/components/Menu/Menu.js.map +1 -1
- package/lib/module/components/ProgressBar/ProgressBar.js +4 -3
- package/lib/module/components/ProgressBar/ProgressBar.js.map +1 -1
- package/lib/module/components/Sidebar/Sidebar.js +20 -3
- package/lib/module/components/Sidebar/Sidebar.js.map +1 -1
- package/lib/module/components/Sidebar/Sidebar.stories.js +16 -0
- package/lib/module/components/Sidebar/Sidebar.stories.js.map +1 -1
- package/lib/module/components/Table/Table.js +70 -7
- package/lib/module/components/Table/Table.js.map +1 -1
- package/lib/module/components/Table/Table.stories.js +117 -0
- package/lib/module/components/Table/Table.stories.js.map +1 -1
- package/lib/module/components/Table/Table.test.js +58 -0
- package/lib/module/components/Table/Table.test.js.map +1 -1
- package/lib/module/components/_internal/ModalHostContext.js +17 -0
- package/lib/module/components/_internal/ModalHostContext.js.map +1 -0
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/typescript/commonjs/components/CodeInput/CodeInput.d.ts +5 -1
- package/lib/typescript/commonjs/components/CodeInput/CodeInput.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +13 -1
- package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Dialog/StepDialog.d.ts +63 -0
- package/lib/typescript/commonjs/components/Dialog/StepDialog.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Dialog/index.d.ts +1 -0
- package/lib/typescript/commonjs/components/Dialog/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Icon/icons.generated.d.ts +8 -0
- package/lib/typescript/commonjs/components/Icon/icons.generated.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/List/List.d.ts +22 -0
- package/lib/typescript/commonjs/components/List/List.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/List/ListItem.d.ts +61 -0
- package/lib/typescript/commonjs/components/List/ListItem.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/List/index.d.ts +5 -0
- package/lib/typescript/commonjs/components/List/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Menu/Menu.d.ts +4 -2
- package/lib/typescript/commonjs/components/Menu/Menu.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts +3 -1
- package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Sidebar/Sidebar.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Table/Table.d.ts +25 -3
- package/lib/typescript/commonjs/components/Table/Table.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/_internal/ModalHostContext.d.ts +11 -0
- package/lib/typescript/commonjs/components/_internal/ModalHostContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/index.d.ts +1 -0
- package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
- package/lib/typescript/module/components/CodeInput/CodeInput.d.ts +5 -1
- package/lib/typescript/module/components/CodeInput/CodeInput.d.ts.map +1 -1
- package/lib/typescript/module/components/Dialog/Dialog.d.ts +13 -1
- package/lib/typescript/module/components/Dialog/Dialog.d.ts.map +1 -1
- package/lib/typescript/module/components/Dialog/StepDialog.d.ts +63 -0
- package/lib/typescript/module/components/Dialog/StepDialog.d.ts.map +1 -0
- package/lib/typescript/module/components/Dialog/index.d.ts +1 -0
- package/lib/typescript/module/components/Dialog/index.d.ts.map +1 -1
- package/lib/typescript/module/components/Icon/icons.generated.d.ts +8 -0
- package/lib/typescript/module/components/Icon/icons.generated.d.ts.map +1 -1
- package/lib/typescript/module/components/List/List.d.ts +22 -0
- package/lib/typescript/module/components/List/List.d.ts.map +1 -0
- package/lib/typescript/module/components/List/ListItem.d.ts +61 -0
- package/lib/typescript/module/components/List/ListItem.d.ts.map +1 -0
- package/lib/typescript/module/components/List/index.d.ts +5 -0
- package/lib/typescript/module/components/List/index.d.ts.map +1 -0
- package/lib/typescript/module/components/Menu/Menu.d.ts +4 -2
- package/lib/typescript/module/components/Menu/Menu.d.ts.map +1 -1
- package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts +3 -1
- package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/lib/typescript/module/components/Sidebar/Sidebar.d.ts.map +1 -1
- package/lib/typescript/module/components/Table/Table.d.ts +25 -3
- package/lib/typescript/module/components/Table/Table.d.ts.map +1 -1
- package/lib/typescript/module/components/_internal/ModalHostContext.d.ts +11 -0
- package/lib/typescript/module/components/_internal/ModalHostContext.d.ts.map +1 -0
- package/lib/typescript/module/components/index.d.ts +1 -0
- package/lib/typescript/module/components/index.d.ts.map +1 -1
- package/package.json +16 -14
- package/src/components/CodeInput/CodeInput.tsx +46 -14
- package/src/components/Dialog/Dialog.tsx +92 -31
- package/src/components/Dialog/StepDialog.tsx +173 -0
- package/src/components/Dialog/index.ts +1 -0
- package/src/components/Icon/icons.generated.ts +9 -1
- package/src/components/List/List.tsx +45 -0
- package/src/components/List/ListItem.tsx +214 -0
- package/src/components/List/index.ts +4 -0
- package/src/components/Menu/Menu.tsx +15 -6
- package/src/components/ProgressBar/ProgressBar.tsx +6 -3
- package/src/components/Sidebar/Sidebar.tsx +18 -10
- package/src/components/Table/Table.tsx +93 -8
- package/src/components/_internal/ModalHostContext.tsx +15 -0
- 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":";;AAAA,SAASA,QAAQ,QAAwB,OAAO;AAChD,SAASC,SAAS,EAAEC,IAAI,QAAwC,cAAc;AAC9E,SAASC,QAAQ,QAAQ,sBAAa;AAEtC,SAASC,IAAI,QAAQ,iBAAc;AAEnC,SAASC,IAAI,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAsDpC,MAAMC,KAGL,GAAG;EACFC,EAAE,EAAE;IAAEC,YAAY,EAAE,YAAY;IAAEC,WAAW,EAAE,QAAQ;IAAEC,EAAE,EAAE,EAAE;IAAEC,GAAG,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAE,CAAC;EACzFC,EAAE,EAAE;IAAEL,YAAY,EAAE,WAAW;IAAEC,WAAW,EAAE,QAAQ;IAAEC,EAAE,EAAE,EAAE;IAAEC,GAAG,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAE,CAAC;EACxFE,EAAE,EAAE;IAAEN,YAAY,EAAE,IAAI;IAAEC,WAAW,EAAE,UAAU;IAAEC,EAAE,EAAE,EAAE;IAAEC,GAAG,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAG;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,QAAQA,CAAC;EACvBC,KAAK;EACLC,QAAQ;EACRC,QAAQ;EACRC,IAAI;EACJC,OAAO;EACPC,QAAQ;EACRC,OAAO,GAAG,KAAK;EACfC,KAAK;EACLC,IAAI,GAAG,IAAI;EACXC,KAAK,GAAG,QAAQ;EAChBC,OAAO,GAAG,KAAK;EACfC,QAAQ,GAAG,KAAK;EAChBC,QAAQ,GAAG,KAAK;EAChBC,OAAO;EACPC,UAAU;EACVC,aAAa;EACbC,aAAa;EACbxB,YAAY;EACZC,WAAW;EACXwB,eAAe;EACfC,iBAAiB,GAAG,EAAE;EACtBvB,GAAG;EACHwB,KAAK;EACLC,SAAS,GAAG,IAAI;EAChBC,KAAK;EACLC;AACa,CAAC,EAAE;EAChB,MAAMC,KAAK,GAAG1C,QAAQ,CAAC,CAAC;EACxB,MAAM2C,GAAG,GAAGlC,KAAK,CAACkB,IAAI,CAAC;EACvB,MAAM,CAACiB,OAAO,EAAEC,UAAU,CAAC,GAAGhD,QAAQ,CAAC,KAAK,CAAC;EAE7C,MAAMiD,SAAS,GAAGb,UAAU,IAAIS,KAAK,CAACK,MAAM,CAACC,MAAM,CAACC,mBAAmB;EACvE,MAAMC,WAAW,GAAG,CAAC,CAAClB,OAAO;EAE7B,MAAMmB,eAAe,GAAGrB,QAAQ,GAC5BY,KAAK,CAACK,MAAM,CAACK,UAAU,CAACC,MAAM,GAC9BT,OAAO,IAAIM,WAAW,IAAI,CAACnB,QAAQ,GACjCW,KAAK,CAACK,MAAM,CAACK,UAAU,CAACE,KAAK,GAC7B,aAAa;EAEnB,MAAMC,cAAyB,GAAG;IAChCC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE7B,KAAK,KAAK,KAAK,GAAG,YAAY,GAAG,QAAQ;IACrDd,GAAG,EAAEA,GAAG,IAAI6B,GAAG,CAAC7B,GAAG;IACnBsB,eAAe,EAAEA,eAAe,IAAIO,GAAG,CAAC9B,EAAE;IAC1CwB,iBAAiB;IACjBc,eAAe;IACfO,OAAO,EAAE3B,QAAQ,GAAG,GAAG,GAAG,CAAC;IAC3B,IAAIF,OAAO,GAAG;MAAE8B,iBAAiB,EAAE,CAAC;MAAEC,iBAAiB,EAAElB,KAAK,CAACK,MAAM,CAACc,MAAM,CAACR;IAAO,CAAC,GAAG,IAAI,CAAC;IAC7F,IAAIf,KAAK,IAAI,IAAI,GAAG;MAAEA;IAAM,CAAC,GAAGC,SAAS,GAAG;MAAEuB,SAAS,EAAE;IAAU,CAAC,GAAG;MAAEA,SAAS,EAAE;IAAa,CAAC;EACpG,CAAC;EAED,MAAMC,OAAO,gBACXzD,KAAA,CAAAE,SAAA;IAAAwD,QAAA,GACGzC,OAAO,IAAI,IAAI,gBAAGnB,IAAA,CAACL,IAAI;MAACyC,KAAK,EAAE;QAAEyB,UAAU,EAAE;MAAE,CAAE;MAAAD,QAAA,EAAEzC;IAAO,CAAO,CAAC,GAAG,IAAI,eAE1EjB,KAAA,CAACP,IAAI;MAACyC,KAAK,EAAE;QAAE0B,IAAI,EAAE,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAErD,GAAG,EAAE6B,GAAG,CAAC5B;MAAW,CAAE;MAAAiD,QAAA,GACxD3C,QAAQ,gBACPjB,IAAA,CAACF,IAAI;QAACkE,OAAO,EAAC,YAAY;QAACC,KAAK,EAAElC,aAAa,IAAI,UAAW;QAACmC,aAAa,EAAE,CAAE;QAAAN,QAAA,EAC7E3C;MAAQ,CACL,CAAC,GACL,IAAI,eAERf,KAAA,CAACP,IAAI;QAACyC,KAAK,EAAE;UAAEgB,aAAa,EAAE,KAAK;UAAEC,UAAU,EAAE,QAAQ;UAAE3C,GAAG,EAAE;QAAG,CAAE;QAAAkD,QAAA,GAClE1C,IAAI,gBACHlB,IAAA,CAACL,IAAI;UAACyC,KAAK,EAAE;YAAEF,KAAK,EAAE,EAAE;YAAEiC,MAAM,EAAE,EAAE;YAAEN,UAAU,EAAE;UAAE,CAAE;UAAAD,QAAA,eACpD5D,IAAA,CAACH,IAAI;YAACuE,IAAI,EAAElD,IAAK;YAACK,IAAI,EAAE,EAAG;YAAC0C,KAAK,EAAEvB;UAAU,CAAE;QAAC,CAC5C,CAAC,GACL,IAAI,eACR1C,IAAA,CAACF,IAAI;UACHkE,OAAO,EAAEzD,YAAY,IAAIgC,GAAG,CAAChC,YAAa;UAC1C8D,MAAM,EAAE7D,WAAW,IAAI+B,GAAG,CAAC/B,WAAY;UACvCyD,KAAK,EAAEvB,SAAU;UACjBwB,aAAa,EAAE,CAAE;UACjB9B,KAAK,EAAE;YAAEyB,UAAU,EAAE,CAAC;YAAEE,QAAQ,EAAE;UAAE,CAAE;UAAAH,QAAA,EAErC7C;QAAK,CACF,CAAC;MAAA,CACH,CAAC,EAENC,QAAQ,IAAI,IAAI,IAAIM,KAAK,IAAI,IAAI,gBAChCpB,KAAA,CAACP,IAAI;QAACyC,KAAK,EAAE;UAAEgB,aAAa,EAAE,KAAK;UAAEC,UAAU,EAAE,QAAQ;UAAE3C,GAAG,EAAE;QAAG,CAAE;QAAAkD,QAAA,GAClE,OAAO5C,QAAQ,KAAK,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,gBAC3DhB,IAAA,CAACF,IAAI;UACHkE,OAAO,EAAC,YAAY;UACpBC,KAAK,EAAEnC,aAAa,IAAI,WAAY;UACpCoC,aAAa,EAAE,CAAE;UACjB9B,KAAK,EAAE;YAAEyB,UAAU,EAAE,CAAC;YAAEE,QAAQ,EAAE;UAAE,CAAE;UAAAH,QAAA,EAErCU,MAAM,CAACtD,QAAQ;QAAC,CACb,CAAC,GAEPA,QACD,EACAM,KAAK,IAAI,IAAI,gBAAGtB,IAAA,CAACL,IAAI;UAACyC,KAAK,EAAE;YAAEyB,UAAU,EAAE;UAAE,CAAE;UAAAD,QAAA,EAAEtC;QAAK,CAAO,CAAC,GAAG,IAAI;MAAA,CAClE,CAAC,GACL,IAAI;IAAA,CACJ,CAAC,EAENF,QAAQ,IAAI,IAAI,gBACfpB,IAAA,CAACL,IAAI;MAACyC,KAAK,EAAE;QAAEyB,UAAU,EAAE;MAAE,CAAE;MAAAD,QAAA,EAAExC;IAAQ,CAAO,CAAC,GAC/CC,OAAO,gBACTrB,IAAA,CAACL,IAAI;MAACyC,KAAK,EAAE;QAAEF,KAAK,EAAE,EAAE;QAAEiC,MAAM,EAAE,EAAE;QAAEN,UAAU,EAAE;MAAE,CAAE;MAAAD,QAAA,eACpD5D,IAAA,CAACH,IAAI;QAACuE,IAAI,EAAC,iBAAiB;QAAC7C,IAAI,EAAE,EAAG;QAAC0C,KAAK,EAAC;MAAU,CAAE;IAAC,CACtD,CAAC,GACL,IAAI;EAAA,CACR,CACH;EAED,IAAI,CAACnB,WAAW,EAAE;IAChB,oBACE9C,IAAA,CAACL,IAAI;MAAC0C,kBAAkB,EAAEA,kBAAmB;MAACD,KAAK,EAAE,CAACe,cAAc,EAAEf,KAAK,CAAE;MAAAwB,QAAA,EAC1ED;IAAO,CACJ,CAAC;EAEX;EAEA,oBACE3D,IAAA,CAACN,SAAS;IACRkC,OAAO,EAAED,QAAQ,GAAG4C,SAAS,GAAG3C,OAAQ;IACxC4C,SAAS,EAAE7C,QAAQ,GAAG4C,SAAS,GAAG,MAAM9B,UAAU,CAAC,IAAI,CAAE;IACzDgC,UAAU,EAAE9C,QAAQ,GAAG4C,SAAS,GAAG,MAAM9B,UAAU,CAAC,KAAK,CAAE;IAC3Dd,QAAQ,EAAEA,QAAS;IACnB+C,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE;MAAEjD,QAAQ;MAAEC;IAAS,CAAE;IAC3CU,kBAAkB,EAAEA,kBAAkB,IAAItB,KAAM;IAChDqB,KAAK,EAAEA,CAAC;MAAEwC;IAAQ,CAAC,KAAK,CACtBzB,cAAc,EACdyB,OAAO,IAAI,CAACjD,QAAQ,GAAG;MAAEoB,eAAe,EAAET,KAAK,CAACK,MAAM,CAACK,UAAU,CAACC;IAAO,CAAC,GAAG,IAAI,EACjFb,KAAK,CACL;IAAAwB,QAAA,EAEDD;EAAO,CACC,CAAC;AAEhB","ignoreList":[]}
|
|
@@ -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
|
|
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:
|
|
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":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAwB,OAAO;
|
|
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',
|