@bacon-pos/ui 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/EmptyState/EmptyState.js +88 -0
- package/lib/commonjs/components/EmptyState/EmptyState.js.map +1 -0
- package/lib/commonjs/components/EmptyState/EmptyState.stories.js +46 -0
- package/lib/commonjs/components/EmptyState/EmptyState.stories.js.map +1 -0
- package/lib/commonjs/components/EmptyState/EmptyState.test.js +40 -0
- package/lib/commonjs/components/EmptyState/EmptyState.test.js.map +1 -0
- package/lib/commonjs/components/EmptyState/index.js +13 -0
- package/lib/commonjs/components/EmptyState/index.js.map +1 -0
- package/lib/commonjs/components/Sidebar/Sidebar.js +264 -0
- package/lib/commonjs/components/Sidebar/Sidebar.js.map +1 -0
- package/lib/commonjs/components/Sidebar/Sidebar.stories.js +229 -0
- package/lib/commonjs/components/Sidebar/Sidebar.stories.js.map +1 -0
- package/lib/commonjs/components/Sidebar/Sidebar.test.js +131 -0
- package/lib/commonjs/components/Sidebar/Sidebar.test.js.map +1 -0
- package/lib/commonjs/components/Sidebar/index.js +13 -0
- package/lib/commonjs/components/Sidebar/index.js.map +1 -0
- package/lib/commonjs/components/Table/DataTable.js +149 -0
- package/lib/commonjs/components/Table/DataTable.js.map +1 -0
- package/lib/commonjs/components/Table/DataTable.stories.js +214 -0
- package/lib/commonjs/components/Table/DataTable.stories.js.map +1 -0
- package/lib/commonjs/components/Table/DataTable.test.js +143 -0
- package/lib/commonjs/components/Table/DataTable.test.js.map +1 -0
- package/lib/commonjs/components/Table/Table.js +520 -0
- package/lib/commonjs/components/Table/Table.js.map +1 -0
- package/lib/commonjs/components/Table/Table.stories.js +385 -0
- package/lib/commonjs/components/Table/Table.stories.js.map +1 -0
- package/lib/commonjs/components/Table/Table.test.js +278 -0
- package/lib/commonjs/components/Table/Table.test.js.map +1 -0
- package/lib/commonjs/components/Table/index.js +20 -0
- package/lib/commonjs/components/Table/index.js.map +1 -0
- package/lib/commonjs/components/brand/BaconLogo.js +29 -0
- package/lib/commonjs/components/brand/BaconLogo.js.map +1 -0
- package/lib/commonjs/components/brand/index.js +7 -0
- package/lib/commonjs/components/brand/index.js.map +1 -1
- package/lib/commonjs/components/index.js +50 -17
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/module/components/EmptyState/EmptyState.js +84 -0
- package/lib/module/components/EmptyState/EmptyState.js.map +1 -0
- package/lib/module/components/EmptyState/EmptyState.stories.js +42 -0
- package/lib/module/components/EmptyState/EmptyState.stories.js.map +1 -0
- package/lib/module/components/EmptyState/EmptyState.test.js +40 -0
- package/lib/module/components/EmptyState/EmptyState.test.js.map +1 -0
- package/lib/module/components/EmptyState/index.js +4 -0
- package/lib/module/components/EmptyState/index.js.map +1 -0
- package/lib/module/components/Sidebar/Sidebar.js +260 -0
- package/lib/module/components/Sidebar/Sidebar.js.map +1 -0
- package/lib/module/components/Sidebar/Sidebar.stories.js +225 -0
- package/lib/module/components/Sidebar/Sidebar.stories.js.map +1 -0
- package/lib/module/components/Sidebar/Sidebar.test.js +131 -0
- package/lib/module/components/Sidebar/Sidebar.test.js.map +1 -0
- package/lib/module/components/Sidebar/index.js +4 -0
- package/lib/module/components/Sidebar/index.js.map +1 -0
- package/lib/module/components/Table/DataTable.js +145 -0
- package/lib/module/components/Table/DataTable.js.map +1 -0
- package/lib/module/components/Table/DataTable.stories.js +210 -0
- package/lib/module/components/Table/DataTable.stories.js.map +1 -0
- package/lib/module/components/Table/DataTable.test.js +143 -0
- package/lib/module/components/Table/DataTable.test.js.map +1 -0
- package/lib/module/components/Table/Table.js +516 -0
- package/lib/module/components/Table/Table.js.map +1 -0
- package/lib/module/components/Table/Table.stories.js +381 -0
- package/lib/module/components/Table/Table.stories.js.map +1 -0
- package/lib/module/components/Table/Table.test.js +278 -0
- package/lib/module/components/Table/Table.test.js.map +1 -0
- package/lib/module/components/Table/index.js +5 -0
- package/lib/module/components/Table/index.js.map +1 -0
- package/lib/module/components/brand/BaconLogo.js +25 -0
- package/lib/module/components/brand/BaconLogo.js.map +1 -0
- package/lib/module/components/brand/index.js +1 -0
- package/lib/module/components/brand/index.js.map +1 -1
- package/lib/module/components/index.js +3 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/typescript/commonjs/components/EmptyState/EmptyState.d.ts +30 -0
- package/lib/typescript/commonjs/components/EmptyState/EmptyState.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/EmptyState/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/EmptyState/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Sidebar/Sidebar.d.ts +57 -0
- package/lib/typescript/commonjs/components/Sidebar/Sidebar.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Sidebar/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/Sidebar/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Table/DataTable.d.ts +53 -0
- package/lib/typescript/commonjs/components/Table/DataTable.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Table/Table.d.ts +85 -0
- package/lib/typescript/commonjs/components/Table/Table.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Table/index.d.ts +5 -0
- package/lib/typescript/commonjs/components/Table/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/brand/BaconLogo.d.ts +13 -0
- package/lib/typescript/commonjs/components/brand/BaconLogo.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/brand/index.d.ts +1 -0
- package/lib/typescript/commonjs/components/brand/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
- package/lib/typescript/module/components/EmptyState/EmptyState.d.ts +30 -0
- package/lib/typescript/module/components/EmptyState/EmptyState.d.ts.map +1 -0
- package/lib/typescript/module/components/EmptyState/index.d.ts +3 -0
- package/lib/typescript/module/components/EmptyState/index.d.ts.map +1 -0
- package/lib/typescript/module/components/Sidebar/Sidebar.d.ts +57 -0
- package/lib/typescript/module/components/Sidebar/Sidebar.d.ts.map +1 -0
- package/lib/typescript/module/components/Sidebar/index.d.ts +3 -0
- package/lib/typescript/module/components/Sidebar/index.d.ts.map +1 -0
- package/lib/typescript/module/components/Table/DataTable.d.ts +53 -0
- package/lib/typescript/module/components/Table/DataTable.d.ts.map +1 -0
- package/lib/typescript/module/components/Table/Table.d.ts +85 -0
- package/lib/typescript/module/components/Table/Table.d.ts.map +1 -0
- package/lib/typescript/module/components/Table/index.d.ts +5 -0
- package/lib/typescript/module/components/Table/index.d.ts.map +1 -0
- package/lib/typescript/module/components/brand/BaconLogo.d.ts +13 -0
- package/lib/typescript/module/components/brand/BaconLogo.d.ts.map +1 -0
- package/lib/typescript/module/components/brand/index.d.ts +1 -0
- package/lib/typescript/module/components/brand/index.d.ts.map +1 -1
- package/lib/typescript/module/components/index.d.ts +3 -0
- package/lib/typescript/module/components/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/EmptyState/EmptyState.tsx +91 -0
- package/src/components/EmptyState/index.ts +2 -0
- package/src/components/Sidebar/Sidebar.tsx +320 -0
- package/src/components/Sidebar/index.ts +2 -0
- package/src/components/Table/DataTable.tsx +173 -0
- package/src/components/Table/Table.tsx +556 -0
- package/src/components/Table/index.ts +10 -0
- package/src/components/brand/BaconLogo.tsx +25 -0
- package/src/components/brand/index.ts +1 -0
- package/src/components/index.ts +3 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { Table } from "./Table.js";
|
|
6
|
+
import { Badge } from "../Badge/Badge.js";
|
|
7
|
+
import { EmptyState } from "../EmptyState/EmptyState.js";
|
|
8
|
+
import { IconButton } from "../IconButton/IconButton.js";
|
|
9
|
+
import { Text } from "../Text/Text.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
|
+
const meta = {
|
|
12
|
+
title: 'Components/Table',
|
|
13
|
+
component: Table
|
|
14
|
+
};
|
|
15
|
+
export default meta;
|
|
16
|
+
const SHIFTS = [{
|
|
17
|
+
id: '1',
|
|
18
|
+
date: 'Wed 07/29/26',
|
|
19
|
+
in: '06:30 AM',
|
|
20
|
+
breaks: 'No breaks',
|
|
21
|
+
out: '07:07 h.',
|
|
22
|
+
total: '7:07 h.',
|
|
23
|
+
active: true
|
|
24
|
+
}, {
|
|
25
|
+
id: '2',
|
|
26
|
+
date: 'Thu 07/30/26',
|
|
27
|
+
in: '07:15 AM',
|
|
28
|
+
breaks: '1 break',
|
|
29
|
+
out: '02:01 PM',
|
|
30
|
+
total: '6:45 h.'
|
|
31
|
+
}, {
|
|
32
|
+
id: '3',
|
|
33
|
+
date: 'Fri 07/31/26',
|
|
34
|
+
in: '06:45 AM',
|
|
35
|
+
breaks: '1 break',
|
|
36
|
+
out: '01:18 PM',
|
|
37
|
+
total: '5:30 h.'
|
|
38
|
+
}, {
|
|
39
|
+
id: '4',
|
|
40
|
+
date: 'Sat 08/01/26',
|
|
41
|
+
in: '08:00 AM',
|
|
42
|
+
breaks: '2 breaks',
|
|
43
|
+
out: '11:58 AM',
|
|
44
|
+
total: '4:50 h.'
|
|
45
|
+
}];
|
|
46
|
+
|
|
47
|
+
/** Base table (Figma) with a Badge cell. */
|
|
48
|
+
export const Base = {
|
|
49
|
+
render: () => {
|
|
50
|
+
const columns = [{
|
|
51
|
+
key: 'date',
|
|
52
|
+
header: 'Date'
|
|
53
|
+
}, {
|
|
54
|
+
key: 'in',
|
|
55
|
+
header: 'In'
|
|
56
|
+
}, {
|
|
57
|
+
key: 'breaks',
|
|
58
|
+
header: 'Breaks'
|
|
59
|
+
}, {
|
|
60
|
+
key: 'out',
|
|
61
|
+
header: 'Out',
|
|
62
|
+
render: r => r.active ? /*#__PURE__*/_jsx(Badge, {
|
|
63
|
+
label: "Active"
|
|
64
|
+
}) : /*#__PURE__*/_jsx(Text, {
|
|
65
|
+
variant: "bodyMedium",
|
|
66
|
+
children: r.out
|
|
67
|
+
})
|
|
68
|
+
}, {
|
|
69
|
+
key: 'total',
|
|
70
|
+
header: 'Total'
|
|
71
|
+
}];
|
|
72
|
+
return /*#__PURE__*/_jsx(View, {
|
|
73
|
+
style: {
|
|
74
|
+
padding: 24,
|
|
75
|
+
width: 900
|
|
76
|
+
},
|
|
77
|
+
children: /*#__PURE__*/_jsx(Table, {
|
|
78
|
+
columns: columns,
|
|
79
|
+
data: SHIFTS,
|
|
80
|
+
keyExtractor: r => r.id
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/** Expandable (accordion) rows — tap a row to reveal detail; single open at a time. */
|
|
87
|
+
export const Expandable = {
|
|
88
|
+
render: () => {
|
|
89
|
+
const columns = [{
|
|
90
|
+
key: 'date',
|
|
91
|
+
header: 'Date'
|
|
92
|
+
}, {
|
|
93
|
+
key: 'in',
|
|
94
|
+
header: 'In'
|
|
95
|
+
}, {
|
|
96
|
+
key: 'out',
|
|
97
|
+
header: 'Out'
|
|
98
|
+
}, {
|
|
99
|
+
key: 'total',
|
|
100
|
+
header: 'Total'
|
|
101
|
+
}];
|
|
102
|
+
return /*#__PURE__*/_jsx(View, {
|
|
103
|
+
style: {
|
|
104
|
+
padding: 24,
|
|
105
|
+
width: 900
|
|
106
|
+
},
|
|
107
|
+
children: /*#__PURE__*/_jsx(Table, {
|
|
108
|
+
columns: columns,
|
|
109
|
+
data: SHIFTS,
|
|
110
|
+
keyExtractor: r => r.id,
|
|
111
|
+
expandable: true,
|
|
112
|
+
renderExpanded: r => /*#__PURE__*/_jsxs(Text, {
|
|
113
|
+
variant: "bodyMedium",
|
|
114
|
+
color: "secondary",
|
|
115
|
+
children: ["Breaks: ", r.breaks, " \xB7 Clocked in at ", r.in, ", out at ", r.out, "."]
|
|
116
|
+
})
|
|
117
|
+
})
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
const ITEMS = [{
|
|
122
|
+
id: '1',
|
|
123
|
+
name: 'Spicy Mango Salsa',
|
|
124
|
+
category: 'Starter',
|
|
125
|
+
price: '$4.25'
|
|
126
|
+
}, {
|
|
127
|
+
id: '2',
|
|
128
|
+
name: 'Creamy Garlic Pasta',
|
|
129
|
+
category: 'Starter',
|
|
130
|
+
price: '$5.75'
|
|
131
|
+
}, {
|
|
132
|
+
id: '3',
|
|
133
|
+
name: 'Zesty Lemon Chicken',
|
|
134
|
+
category: 'Starter',
|
|
135
|
+
price: '$7.10'
|
|
136
|
+
}, {
|
|
137
|
+
id: '4',
|
|
138
|
+
name: 'Grilled Vegetable Skewers',
|
|
139
|
+
category: 'Main plates',
|
|
140
|
+
price: '$6.50'
|
|
141
|
+
}];
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Actions column (edit / delete). A whole-row press can coexist with the action
|
|
145
|
+
* buttons — tapping a button runs its own handler; tapping elsewhere runs the row
|
|
146
|
+
* action (here it opens detail; can be the same as an action button or different).
|
|
147
|
+
*/
|
|
148
|
+
export const WithActions = {
|
|
149
|
+
render: () => {
|
|
150
|
+
const [log, setLog] = useState('—');
|
|
151
|
+
const columns = [{
|
|
152
|
+
key: 'name',
|
|
153
|
+
header: 'Item name',
|
|
154
|
+
flex: 2
|
|
155
|
+
}, {
|
|
156
|
+
key: 'category',
|
|
157
|
+
header: 'Category'
|
|
158
|
+
}, {
|
|
159
|
+
key: 'price',
|
|
160
|
+
header: 'Price',
|
|
161
|
+
align: 'right'
|
|
162
|
+
}];
|
|
163
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
164
|
+
style: {
|
|
165
|
+
padding: 24,
|
|
166
|
+
width: 900,
|
|
167
|
+
gap: 8
|
|
168
|
+
},
|
|
169
|
+
children: [/*#__PURE__*/_jsx(Table, {
|
|
170
|
+
columns: columns,
|
|
171
|
+
data: ITEMS,
|
|
172
|
+
keyExtractor: r => r.id,
|
|
173
|
+
onRowPress: r => setLog(`row: ${r.name}`),
|
|
174
|
+
renderActions: r => /*#__PURE__*/_jsxs(_Fragment, {
|
|
175
|
+
children: [/*#__PURE__*/_jsx(IconButton, {
|
|
176
|
+
icon: "edit",
|
|
177
|
+
accessibilityLabel: "Edit",
|
|
178
|
+
variant: "ghost",
|
|
179
|
+
size: "sm",
|
|
180
|
+
onPress: () => setLog(`edit: ${r.name}`)
|
|
181
|
+
}), /*#__PURE__*/_jsx(IconButton, {
|
|
182
|
+
icon: "trash",
|
|
183
|
+
accessibilityLabel: "Delete",
|
|
184
|
+
variant: "ghost",
|
|
185
|
+
size: "sm",
|
|
186
|
+
onPress: () => setLog(`delete: ${r.name}`)
|
|
187
|
+
})]
|
|
188
|
+
})
|
|
189
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
190
|
+
variant: "caption",
|
|
191
|
+
color: "secondary",
|
|
192
|
+
children: ["last: ", log]
|
|
193
|
+
})]
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
/** Column alignment: left / center / right. */
|
|
199
|
+
export const Alignment = {
|
|
200
|
+
render: () => {
|
|
201
|
+
const columns = [{
|
|
202
|
+
key: 'name',
|
|
203
|
+
header: 'Left',
|
|
204
|
+
flex: 2,
|
|
205
|
+
align: 'left'
|
|
206
|
+
}, {
|
|
207
|
+
key: 'category',
|
|
208
|
+
header: 'Center',
|
|
209
|
+
align: 'center'
|
|
210
|
+
}, {
|
|
211
|
+
key: 'price',
|
|
212
|
+
header: 'Right',
|
|
213
|
+
align: 'right'
|
|
214
|
+
}];
|
|
215
|
+
return /*#__PURE__*/_jsx(View, {
|
|
216
|
+
style: {
|
|
217
|
+
padding: 24,
|
|
218
|
+
width: 900
|
|
219
|
+
},
|
|
220
|
+
children: /*#__PURE__*/_jsx(Table, {
|
|
221
|
+
columns: columns,
|
|
222
|
+
data: ITEMS,
|
|
223
|
+
keyExtractor: r => r.id
|
|
224
|
+
})
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
/** Sortable headers + row selection. */
|
|
230
|
+
export const SortableSelectable = {
|
|
231
|
+
render: () => {
|
|
232
|
+
const [selected, setSelected] = useState(['2']);
|
|
233
|
+
const columns = [{
|
|
234
|
+
key: 'name',
|
|
235
|
+
header: 'Item name',
|
|
236
|
+
flex: 2,
|
|
237
|
+
sortable: true,
|
|
238
|
+
sortAccessor: r => r.name
|
|
239
|
+
}, {
|
|
240
|
+
key: 'category',
|
|
241
|
+
header: 'Category',
|
|
242
|
+
sortable: true,
|
|
243
|
+
sortAccessor: r => r.category
|
|
244
|
+
}, {
|
|
245
|
+
key: 'price',
|
|
246
|
+
header: 'Price',
|
|
247
|
+
align: 'right',
|
|
248
|
+
sortable: true,
|
|
249
|
+
sortAccessor: r => Number(r.price.replace('$', ''))
|
|
250
|
+
}];
|
|
251
|
+
return /*#__PURE__*/_jsx(View, {
|
|
252
|
+
style: {
|
|
253
|
+
padding: 24,
|
|
254
|
+
width: 900
|
|
255
|
+
},
|
|
256
|
+
children: /*#__PURE__*/_jsx(Table, {
|
|
257
|
+
columns: columns,
|
|
258
|
+
data: ITEMS,
|
|
259
|
+
keyExtractor: r => r.id,
|
|
260
|
+
selectable: true,
|
|
261
|
+
selectedKeys: selected,
|
|
262
|
+
onSelectionChange: setSelected,
|
|
263
|
+
defaultSort: {
|
|
264
|
+
key: 'price',
|
|
265
|
+
direction: 'asc'
|
|
266
|
+
}
|
|
267
|
+
})
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
/** Long list — sticky header, body scrolls (elegant indicator). */
|
|
273
|
+
export const Scrollable = {
|
|
274
|
+
render: () => {
|
|
275
|
+
const many = Array.from({
|
|
276
|
+
length: 25
|
|
277
|
+
}).map((_, i) => ({
|
|
278
|
+
id: String(i),
|
|
279
|
+
name: `Menu item ${i + 1}`,
|
|
280
|
+
category: i % 2 ? 'Main plates' : 'Starter',
|
|
281
|
+
price: `$${(i + 1) * 1.5}`
|
|
282
|
+
}));
|
|
283
|
+
const columns = [{
|
|
284
|
+
key: 'name',
|
|
285
|
+
header: 'Item name',
|
|
286
|
+
flex: 2
|
|
287
|
+
}, {
|
|
288
|
+
key: 'category',
|
|
289
|
+
header: 'Category'
|
|
290
|
+
}, {
|
|
291
|
+
key: 'price',
|
|
292
|
+
header: 'Price',
|
|
293
|
+
align: 'right'
|
|
294
|
+
}];
|
|
295
|
+
return /*#__PURE__*/_jsx(View, {
|
|
296
|
+
style: {
|
|
297
|
+
padding: 24,
|
|
298
|
+
width: 900
|
|
299
|
+
},
|
|
300
|
+
children: /*#__PURE__*/_jsx(Table, {
|
|
301
|
+
columns: columns,
|
|
302
|
+
data: many,
|
|
303
|
+
keyExtractor: r => r.id,
|
|
304
|
+
maxHeight: 360
|
|
305
|
+
})
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
const LOADING_COLS = [{
|
|
310
|
+
key: 'name',
|
|
311
|
+
header: 'Item name',
|
|
312
|
+
flex: 2
|
|
313
|
+
}, {
|
|
314
|
+
key: 'category',
|
|
315
|
+
header: 'Category'
|
|
316
|
+
}, {
|
|
317
|
+
key: 'price',
|
|
318
|
+
header: 'Price',
|
|
319
|
+
align: 'right'
|
|
320
|
+
}];
|
|
321
|
+
|
|
322
|
+
/** Empty state. */
|
|
323
|
+
export const Empty = {
|
|
324
|
+
render: () => /*#__PURE__*/_jsx(View, {
|
|
325
|
+
style: {
|
|
326
|
+
padding: 24,
|
|
327
|
+
width: 900
|
|
328
|
+
},
|
|
329
|
+
children: /*#__PURE__*/_jsx(Table, {
|
|
330
|
+
columns: LOADING_COLS,
|
|
331
|
+
data: [],
|
|
332
|
+
keyExtractor: r => r.id,
|
|
333
|
+
empty: /*#__PURE__*/_jsx(EmptyState, {
|
|
334
|
+
icon: "dish",
|
|
335
|
+
title: "No items yet",
|
|
336
|
+
description: "Create your first one to get started.",
|
|
337
|
+
action: {
|
|
338
|
+
label: 'Create item',
|
|
339
|
+
icon: 'plus',
|
|
340
|
+
onPress: () => {}
|
|
341
|
+
}
|
|
342
|
+
})
|
|
343
|
+
})
|
|
344
|
+
})
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
/** Loading: spinner (with/without text) and skeleton. */
|
|
348
|
+
export const Loading = {
|
|
349
|
+
render: () => /*#__PURE__*/_jsxs(View, {
|
|
350
|
+
style: {
|
|
351
|
+
padding: 24,
|
|
352
|
+
width: 900,
|
|
353
|
+
gap: 24
|
|
354
|
+
},
|
|
355
|
+
children: [/*#__PURE__*/_jsx(Table, {
|
|
356
|
+
columns: LOADING_COLS,
|
|
357
|
+
data: [],
|
|
358
|
+
keyExtractor: r => r.id,
|
|
359
|
+
loading: true
|
|
360
|
+
}), /*#__PURE__*/_jsx(Table, {
|
|
361
|
+
columns: LOADING_COLS,
|
|
362
|
+
data: [],
|
|
363
|
+
keyExtractor: r => r.id,
|
|
364
|
+
loading: true,
|
|
365
|
+
loadingText: "Fetching menu\u2026"
|
|
366
|
+
}), /*#__PURE__*/_jsx(Table, {
|
|
367
|
+
columns: LOADING_COLS,
|
|
368
|
+
data: [],
|
|
369
|
+
keyExtractor: r => r.id,
|
|
370
|
+
loading: true,
|
|
371
|
+
loadingText: null
|
|
372
|
+
}), /*#__PURE__*/_jsx(Table, {
|
|
373
|
+
columns: LOADING_COLS,
|
|
374
|
+
data: [],
|
|
375
|
+
keyExtractor: r => r.id,
|
|
376
|
+
loading: true,
|
|
377
|
+
loadingVariant: "skeleton"
|
|
378
|
+
})]
|
|
379
|
+
})
|
|
380
|
+
};
|
|
381
|
+
//# sourceMappingURL=Table.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","View","Table","Badge","EmptyState","IconButton","Text","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","meta","title","component","SHIFTS","id","date","in","breaks","out","total","active","Base","render","columns","key","header","r","label","variant","children","style","padding","width","data","keyExtractor","Expandable","expandable","renderExpanded","color","ITEMS","name","category","price","WithActions","log","setLog","flex","align","gap","onRowPress","renderActions","icon","accessibilityLabel","size","onPress","Alignment","SortableSelectable","selected","setSelected","sortable","sortAccessor","Number","replace","selectable","selectedKeys","onSelectionChange","defaultSort","direction","Scrollable","many","Array","from","length","map","_","i","String","maxHeight","LOADING_COLS","Empty","empty","description","action","Loading","loading","loadingText","loadingVariant"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Table/Table.stories.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,278 @@
|
|
|
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 { IconButton } from "../IconButton/IconButton.js";
|
|
7
|
+
import { Table } from "./Table.js";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
function wrap(ui) {
|
|
10
|
+
return render(/*#__PURE__*/_jsx(ThemeProvider, {
|
|
11
|
+
children: ui
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
14
|
+
const DATA = [{
|
|
15
|
+
id: 'a',
|
|
16
|
+
name: 'Alpha',
|
|
17
|
+
price: '$3'
|
|
18
|
+
}, {
|
|
19
|
+
id: 'b',
|
|
20
|
+
name: 'Beta',
|
|
21
|
+
price: '$1'
|
|
22
|
+
}, {
|
|
23
|
+
id: 'c',
|
|
24
|
+
name: 'Gamma',
|
|
25
|
+
price: '$2'
|
|
26
|
+
}];
|
|
27
|
+
const COLS = [{
|
|
28
|
+
key: 'name',
|
|
29
|
+
header: 'Name'
|
|
30
|
+
}, {
|
|
31
|
+
key: 'price',
|
|
32
|
+
header: 'Price'
|
|
33
|
+
}];
|
|
34
|
+
// mobileBreakpoint={0} forces the desktop layout regardless of the test window.
|
|
35
|
+
const desktop = {
|
|
36
|
+
mobileBreakpoint: 0
|
|
37
|
+
};
|
|
38
|
+
describe('Table', () => {
|
|
39
|
+
it('renders headers and cell values', () => {
|
|
40
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
41
|
+
...desktop,
|
|
42
|
+
columns: COLS,
|
|
43
|
+
data: DATA,
|
|
44
|
+
keyExtractor: r => r.id
|
|
45
|
+
}));
|
|
46
|
+
expect(screen.getByText('Name')).toBeTruthy();
|
|
47
|
+
expect(screen.getByText('Alpha')).toBeTruthy();
|
|
48
|
+
expect(screen.getByText('$3')).toBeTruthy();
|
|
49
|
+
});
|
|
50
|
+
it('renders a custom cell node', () => {
|
|
51
|
+
const cols = [{
|
|
52
|
+
key: 'name',
|
|
53
|
+
header: 'Name'
|
|
54
|
+
}, {
|
|
55
|
+
key: 'price',
|
|
56
|
+
header: 'Price',
|
|
57
|
+
render: r => /*#__PURE__*/_jsx(Text, {
|
|
58
|
+
children: `price:${r.price}`
|
|
59
|
+
})
|
|
60
|
+
}];
|
|
61
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
62
|
+
...desktop,
|
|
63
|
+
columns: cols,
|
|
64
|
+
data: DATA,
|
|
65
|
+
keyExtractor: r => r.id
|
|
66
|
+
}));
|
|
67
|
+
expect(screen.getByText('price:$3')).toBeTruthy();
|
|
68
|
+
});
|
|
69
|
+
it('fires onRowPress', () => {
|
|
70
|
+
const onRowPress = jest.fn();
|
|
71
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
72
|
+
...desktop,
|
|
73
|
+
columns: COLS,
|
|
74
|
+
data: DATA,
|
|
75
|
+
keyExtractor: r => r.id,
|
|
76
|
+
onRowPress: onRowPress
|
|
77
|
+
}));
|
|
78
|
+
fireEvent.press(screen.getByText('Alpha'));
|
|
79
|
+
expect(onRowPress).toHaveBeenCalledWith(DATA[0], 0);
|
|
80
|
+
});
|
|
81
|
+
it('expands a row on press and collapses the previous one (single mode)', () => {
|
|
82
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
83
|
+
...desktop,
|
|
84
|
+
columns: COLS,
|
|
85
|
+
data: DATA,
|
|
86
|
+
keyExtractor: r => r.id,
|
|
87
|
+
expandable: true,
|
|
88
|
+
renderExpanded: r => /*#__PURE__*/_jsx(Text, {
|
|
89
|
+
children: `detail-${r.id}`
|
|
90
|
+
})
|
|
91
|
+
}));
|
|
92
|
+
expect(screen.queryByText('detail-a')).toBeNull();
|
|
93
|
+
fireEvent.press(screen.getByText('Alpha'));
|
|
94
|
+
expect(screen.getByText('detail-a')).toBeTruthy();
|
|
95
|
+
fireEvent.press(screen.getByText('Beta'));
|
|
96
|
+
expect(screen.queryByText('detail-a')).toBeNull();
|
|
97
|
+
expect(screen.getByText('detail-b')).toBeTruthy();
|
|
98
|
+
});
|
|
99
|
+
it('renders an actions column', () => {
|
|
100
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
101
|
+
...desktop,
|
|
102
|
+
columns: COLS,
|
|
103
|
+
data: DATA,
|
|
104
|
+
keyExtractor: r => r.id,
|
|
105
|
+
renderActions: () => /*#__PURE__*/_jsx(Text, {
|
|
106
|
+
children: "row-action"
|
|
107
|
+
})
|
|
108
|
+
}));
|
|
109
|
+
expect(screen.getAllByText('row-action').length).toBe(DATA.length);
|
|
110
|
+
});
|
|
111
|
+
it('row press coexists with the actions column (buttons keep their own handlers)', () => {
|
|
112
|
+
const onRowPress = jest.fn();
|
|
113
|
+
const onEdit = jest.fn();
|
|
114
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
115
|
+
...desktop,
|
|
116
|
+
columns: COLS,
|
|
117
|
+
data: DATA,
|
|
118
|
+
keyExtractor: r => r.id,
|
|
119
|
+
onRowPress: onRowPress,
|
|
120
|
+
renderActions: r => /*#__PURE__*/_jsx(IconButton, {
|
|
121
|
+
icon: "edit",
|
|
122
|
+
accessibilityLabel: `edit-${r.id}`,
|
|
123
|
+
variant: "ghost",
|
|
124
|
+
size: "sm",
|
|
125
|
+
onPress: () => onEdit(r.id)
|
|
126
|
+
})
|
|
127
|
+
}));
|
|
128
|
+
// Pressing the action button runs its handler, not the row's.
|
|
129
|
+
fireEvent.press(screen.getByLabelText('edit-a'));
|
|
130
|
+
expect(onEdit).toHaveBeenCalledWith('a');
|
|
131
|
+
expect(onRowPress).not.toHaveBeenCalled();
|
|
132
|
+
// Pressing a cell runs the row handler.
|
|
133
|
+
fireEvent.press(screen.getByText('Alpha'));
|
|
134
|
+
expect(onRowPress).toHaveBeenCalledWith(DATA[0], 0);
|
|
135
|
+
});
|
|
136
|
+
it('shows a spinner with default loading text, a custom text, or none', () => {
|
|
137
|
+
const {
|
|
138
|
+
rerender
|
|
139
|
+
} = wrap(/*#__PURE__*/_jsx(Table, {
|
|
140
|
+
...desktop,
|
|
141
|
+
columns: COLS,
|
|
142
|
+
data: [],
|
|
143
|
+
keyExtractor: r => r.id,
|
|
144
|
+
loading: true
|
|
145
|
+
}));
|
|
146
|
+
expect(screen.getByText('Loading data')).toBeTruthy();
|
|
147
|
+
rerender(/*#__PURE__*/_jsx(ThemeProvider, {
|
|
148
|
+
children: /*#__PURE__*/_jsx(Table, {
|
|
149
|
+
...desktop,
|
|
150
|
+
columns: COLS,
|
|
151
|
+
data: [],
|
|
152
|
+
keyExtractor: r => r.id,
|
|
153
|
+
loading: true,
|
|
154
|
+
loadingText: "Fetching\u2026"
|
|
155
|
+
})
|
|
156
|
+
}));
|
|
157
|
+
expect(screen.getByText('Fetching…')).toBeTruthy();
|
|
158
|
+
rerender(/*#__PURE__*/_jsx(ThemeProvider, {
|
|
159
|
+
children: /*#__PURE__*/_jsx(Table, {
|
|
160
|
+
...desktop,
|
|
161
|
+
columns: COLS,
|
|
162
|
+
data: [],
|
|
163
|
+
keyExtractor: r => r.id,
|
|
164
|
+
loading: true,
|
|
165
|
+
loadingText: null
|
|
166
|
+
})
|
|
167
|
+
}));
|
|
168
|
+
expect(screen.queryByText('Loading data')).toBeNull();
|
|
169
|
+
});
|
|
170
|
+
it('renders a skeleton without the loading text', () => {
|
|
171
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
172
|
+
...desktop,
|
|
173
|
+
columns: COLS,
|
|
174
|
+
data: [],
|
|
175
|
+
keyExtractor: r => r.id,
|
|
176
|
+
loading: true,
|
|
177
|
+
loadingVariant: "skeleton"
|
|
178
|
+
}));
|
|
179
|
+
expect(screen.queryByText('Loading data')).toBeNull();
|
|
180
|
+
// Header is still shown while skeleton loads.
|
|
181
|
+
expect(screen.getByText('Name')).toBeTruthy();
|
|
182
|
+
});
|
|
183
|
+
it('selects rows and select-all', () => {
|
|
184
|
+
const onSelectionChange = jest.fn();
|
|
185
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
186
|
+
...desktop,
|
|
187
|
+
columns: COLS,
|
|
188
|
+
data: DATA,
|
|
189
|
+
keyExtractor: r => r.id,
|
|
190
|
+
selectable: true,
|
|
191
|
+
selectedKeys: [],
|
|
192
|
+
onSelectionChange: onSelectionChange
|
|
193
|
+
}));
|
|
194
|
+
const checkboxes = screen.getAllByRole('checkbox');
|
|
195
|
+
// [0] = header select-all, [1..] = rows
|
|
196
|
+
fireEvent.press(checkboxes[1]);
|
|
197
|
+
expect(onSelectionChange).toHaveBeenCalledWith(['a']);
|
|
198
|
+
fireEvent.press(checkboxes[0]);
|
|
199
|
+
expect(onSelectionChange).toHaveBeenCalledWith(['a', 'b', 'c']);
|
|
200
|
+
});
|
|
201
|
+
it('emits sort changes from a sortable header (controlled)', () => {
|
|
202
|
+
const onSortChange = jest.fn();
|
|
203
|
+
const cols = [{
|
|
204
|
+
key: 'name',
|
|
205
|
+
header: 'Name',
|
|
206
|
+
sortable: true,
|
|
207
|
+
sortAccessor: r => r.name
|
|
208
|
+
}, {
|
|
209
|
+
key: 'price',
|
|
210
|
+
header: 'Price'
|
|
211
|
+
}];
|
|
212
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
213
|
+
...desktop,
|
|
214
|
+
columns: cols,
|
|
215
|
+
data: DATA,
|
|
216
|
+
keyExtractor: r => r.id,
|
|
217
|
+
sort: {
|
|
218
|
+
key: 'price',
|
|
219
|
+
direction: 'asc'
|
|
220
|
+
},
|
|
221
|
+
onSortChange: onSortChange
|
|
222
|
+
}));
|
|
223
|
+
fireEvent.press(screen.getByText('Name'));
|
|
224
|
+
expect(onSortChange).toHaveBeenCalledWith({
|
|
225
|
+
key: 'name',
|
|
226
|
+
direction: 'asc'
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
it('sorts internally by the column accessor', () => {
|
|
230
|
+
const cols = [{
|
|
231
|
+
key: 'name',
|
|
232
|
+
header: 'Name'
|
|
233
|
+
}, {
|
|
234
|
+
key: 'price',
|
|
235
|
+
header: 'Price',
|
|
236
|
+
sortable: true,
|
|
237
|
+
sortAccessor: r => Number(r.price.replace('$', ''))
|
|
238
|
+
}];
|
|
239
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
240
|
+
...desktop,
|
|
241
|
+
columns: cols,
|
|
242
|
+
data: DATA,
|
|
243
|
+
keyExtractor: r => r.id,
|
|
244
|
+
defaultSort: {
|
|
245
|
+
key: 'price',
|
|
246
|
+
direction: 'asc'
|
|
247
|
+
}
|
|
248
|
+
}));
|
|
249
|
+
// Ascending by price: Beta ($1), Gamma ($2), Alpha ($3)
|
|
250
|
+
const names = screen.getAllByText(/Alpha|Beta|Gamma/).map(n => n.props.children);
|
|
251
|
+
expect(names).toEqual(['Beta', 'Gamma', 'Alpha']);
|
|
252
|
+
});
|
|
253
|
+
it('shows the empty slot when there is no data', () => {
|
|
254
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
255
|
+
...desktop,
|
|
256
|
+
columns: COLS,
|
|
257
|
+
data: [],
|
|
258
|
+
keyExtractor: r => r.id,
|
|
259
|
+
empty: /*#__PURE__*/_jsx(Text, {
|
|
260
|
+
children: "Nothing here"
|
|
261
|
+
})
|
|
262
|
+
}));
|
|
263
|
+
expect(screen.getByText('Nothing here')).toBeTruthy();
|
|
264
|
+
});
|
|
265
|
+
it('renders a card layout below the mobile breakpoint (no header row)', () => {
|
|
266
|
+
wrap(/*#__PURE__*/_jsx(Table, {
|
|
267
|
+
mobileBreakpoint: 99999,
|
|
268
|
+
columns: COLS,
|
|
269
|
+
data: DATA,
|
|
270
|
+
keyExtractor: r => r.id
|
|
271
|
+
}));
|
|
272
|
+
// Values still render; header labels appear inside each card.
|
|
273
|
+
expect(screen.getByText('Alpha')).toBeTruthy();
|
|
274
|
+
// "Name" header label appears once per card (3), not once as a table header.
|
|
275
|
+
expect(screen.getAllByText('Name').length).toBe(DATA.length);
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
//# sourceMappingURL=Table.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["render","fireEvent","screen","Text","ThemeProvider","IconButton","Table","jsx","_jsx","wrap","ui","children","DATA","id","name","price","COLS","key","header","desktop","mobileBreakpoint","describe","it","columns","data","keyExtractor","r","expect","getByText","toBeTruthy","cols","onRowPress","jest","fn","press","toHaveBeenCalledWith","expandable","renderExpanded","queryByText","toBeNull","renderActions","getAllByText","length","toBe","onEdit","icon","accessibilityLabel","variant","size","onPress","getByLabelText","not","toHaveBeenCalled","rerender","loading","loadingText","loadingVariant","onSelectionChange","selectable","selectedKeys","checkboxes","getAllByRole","onSortChange","sortable","sortAccessor","sort","direction","Number","replace","defaultSort","names","map","n","props","toEqual","empty"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Table/Table.test.tsx"],"mappings":"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","ignoreList":[]}
|