@bacon-pos/ui 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/lib/commonjs/components/Alert/Alert.js +137 -0
  2. package/lib/commonjs/components/Alert/Alert.js.map +1 -0
  3. package/lib/commonjs/components/Alert/Alert.stories.js +104 -0
  4. package/lib/commonjs/components/Alert/Alert.stories.js.map +1 -0
  5. package/lib/commonjs/components/Alert/Alert.test.js +62 -0
  6. package/lib/commonjs/components/Alert/Alert.test.js.map +1 -0
  7. package/lib/commonjs/components/Alert/index.js +13 -0
  8. package/lib/commonjs/components/Alert/index.js.map +1 -0
  9. package/lib/commonjs/components/EmptyState/EmptyState.js +88 -0
  10. package/lib/commonjs/components/EmptyState/EmptyState.js.map +1 -0
  11. package/lib/commonjs/components/EmptyState/EmptyState.stories.js +46 -0
  12. package/lib/commonjs/components/EmptyState/EmptyState.stories.js.map +1 -0
  13. package/lib/commonjs/components/EmptyState/EmptyState.test.js +40 -0
  14. package/lib/commonjs/components/EmptyState/EmptyState.test.js.map +1 -0
  15. package/lib/commonjs/components/EmptyState/index.js +13 -0
  16. package/lib/commonjs/components/EmptyState/index.js.map +1 -0
  17. package/lib/commonjs/components/Sidebar/Sidebar.js +264 -0
  18. package/lib/commonjs/components/Sidebar/Sidebar.js.map +1 -0
  19. package/lib/commonjs/components/Sidebar/Sidebar.stories.js +229 -0
  20. package/lib/commonjs/components/Sidebar/Sidebar.stories.js.map +1 -0
  21. package/lib/commonjs/components/Sidebar/Sidebar.test.js +131 -0
  22. package/lib/commonjs/components/Sidebar/Sidebar.test.js.map +1 -0
  23. package/lib/commonjs/components/Sidebar/index.js +13 -0
  24. package/lib/commonjs/components/Sidebar/index.js.map +1 -0
  25. package/lib/commonjs/components/StatTile/StatTile.js +94 -0
  26. package/lib/commonjs/components/StatTile/StatTile.js.map +1 -0
  27. package/lib/commonjs/components/StatTile/StatTile.stories.js +100 -0
  28. package/lib/commonjs/components/StatTile/StatTile.stories.js.map +1 -0
  29. package/lib/commonjs/components/StatTile/StatTile.test.js +49 -0
  30. package/lib/commonjs/components/StatTile/StatTile.test.js.map +1 -0
  31. package/lib/commonjs/components/StatTile/index.js +13 -0
  32. package/lib/commonjs/components/StatTile/index.js.map +1 -0
  33. package/lib/commonjs/components/Table/DataTable.js +149 -0
  34. package/lib/commonjs/components/Table/DataTable.js.map +1 -0
  35. package/lib/commonjs/components/Table/DataTable.stories.js +214 -0
  36. package/lib/commonjs/components/Table/DataTable.stories.js.map +1 -0
  37. package/lib/commonjs/components/Table/DataTable.test.js +143 -0
  38. package/lib/commonjs/components/Table/DataTable.test.js.map +1 -0
  39. package/lib/commonjs/components/Table/Table.js +520 -0
  40. package/lib/commonjs/components/Table/Table.js.map +1 -0
  41. package/lib/commonjs/components/Table/Table.stories.js +385 -0
  42. package/lib/commonjs/components/Table/Table.stories.js.map +1 -0
  43. package/lib/commonjs/components/Table/Table.test.js +278 -0
  44. package/lib/commonjs/components/Table/Table.test.js.map +1 -0
  45. package/lib/commonjs/components/Table/index.js +20 -0
  46. package/lib/commonjs/components/Table/index.js.map +1 -0
  47. package/lib/commonjs/components/brand/BaconLogo.js +29 -0
  48. package/lib/commonjs/components/brand/BaconLogo.js.map +1 -0
  49. package/lib/commonjs/components/brand/index.js +7 -0
  50. package/lib/commonjs/components/brand/index.js.map +1 -1
  51. package/lib/commonjs/components/index.js +83 -28
  52. package/lib/commonjs/components/index.js.map +1 -1
  53. package/lib/module/components/Alert/Alert.js +133 -0
  54. package/lib/module/components/Alert/Alert.js.map +1 -0
  55. package/lib/module/components/Alert/Alert.stories.js +100 -0
  56. package/lib/module/components/Alert/Alert.stories.js.map +1 -0
  57. package/lib/module/components/Alert/Alert.test.js +62 -0
  58. package/lib/module/components/Alert/Alert.test.js.map +1 -0
  59. package/lib/module/components/Alert/index.js +4 -0
  60. package/lib/module/components/Alert/index.js.map +1 -0
  61. package/lib/module/components/EmptyState/EmptyState.js +84 -0
  62. package/lib/module/components/EmptyState/EmptyState.js.map +1 -0
  63. package/lib/module/components/EmptyState/EmptyState.stories.js +42 -0
  64. package/lib/module/components/EmptyState/EmptyState.stories.js.map +1 -0
  65. package/lib/module/components/EmptyState/EmptyState.test.js +40 -0
  66. package/lib/module/components/EmptyState/EmptyState.test.js.map +1 -0
  67. package/lib/module/components/EmptyState/index.js +4 -0
  68. package/lib/module/components/EmptyState/index.js.map +1 -0
  69. package/lib/module/components/Sidebar/Sidebar.js +260 -0
  70. package/lib/module/components/Sidebar/Sidebar.js.map +1 -0
  71. package/lib/module/components/Sidebar/Sidebar.stories.js +225 -0
  72. package/lib/module/components/Sidebar/Sidebar.stories.js.map +1 -0
  73. package/lib/module/components/Sidebar/Sidebar.test.js +131 -0
  74. package/lib/module/components/Sidebar/Sidebar.test.js.map +1 -0
  75. package/lib/module/components/Sidebar/index.js +4 -0
  76. package/lib/module/components/Sidebar/index.js.map +1 -0
  77. package/lib/module/components/StatTile/StatTile.js +90 -0
  78. package/lib/module/components/StatTile/StatTile.js.map +1 -0
  79. package/lib/module/components/StatTile/StatTile.stories.js +96 -0
  80. package/lib/module/components/StatTile/StatTile.stories.js.map +1 -0
  81. package/lib/module/components/StatTile/StatTile.test.js +49 -0
  82. package/lib/module/components/StatTile/StatTile.test.js.map +1 -0
  83. package/lib/module/components/StatTile/index.js +4 -0
  84. package/lib/module/components/StatTile/index.js.map +1 -0
  85. package/lib/module/components/Table/DataTable.js +145 -0
  86. package/lib/module/components/Table/DataTable.js.map +1 -0
  87. package/lib/module/components/Table/DataTable.stories.js +210 -0
  88. package/lib/module/components/Table/DataTable.stories.js.map +1 -0
  89. package/lib/module/components/Table/DataTable.test.js +143 -0
  90. package/lib/module/components/Table/DataTable.test.js.map +1 -0
  91. package/lib/module/components/Table/Table.js +516 -0
  92. package/lib/module/components/Table/Table.js.map +1 -0
  93. package/lib/module/components/Table/Table.stories.js +381 -0
  94. package/lib/module/components/Table/Table.stories.js.map +1 -0
  95. package/lib/module/components/Table/Table.test.js +278 -0
  96. package/lib/module/components/Table/Table.test.js.map +1 -0
  97. package/lib/module/components/Table/index.js +5 -0
  98. package/lib/module/components/Table/index.js.map +1 -0
  99. package/lib/module/components/brand/BaconLogo.js +25 -0
  100. package/lib/module/components/brand/BaconLogo.js.map +1 -0
  101. package/lib/module/components/brand/index.js +1 -0
  102. package/lib/module/components/brand/index.js.map +1 -1
  103. package/lib/module/components/index.js +5 -0
  104. package/lib/module/components/index.js.map +1 -1
  105. package/lib/typescript/commonjs/components/Alert/Alert.d.ts +41 -0
  106. package/lib/typescript/commonjs/components/Alert/Alert.d.ts.map +1 -0
  107. package/lib/typescript/commonjs/components/Alert/index.d.ts +3 -0
  108. package/lib/typescript/commonjs/components/Alert/index.d.ts.map +1 -0
  109. package/lib/typescript/commonjs/components/EmptyState/EmptyState.d.ts +30 -0
  110. package/lib/typescript/commonjs/components/EmptyState/EmptyState.d.ts.map +1 -0
  111. package/lib/typescript/commonjs/components/EmptyState/index.d.ts +3 -0
  112. package/lib/typescript/commonjs/components/EmptyState/index.d.ts.map +1 -0
  113. package/lib/typescript/commonjs/components/Sidebar/Sidebar.d.ts +57 -0
  114. package/lib/typescript/commonjs/components/Sidebar/Sidebar.d.ts.map +1 -0
  115. package/lib/typescript/commonjs/components/Sidebar/index.d.ts +3 -0
  116. package/lib/typescript/commonjs/components/Sidebar/index.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/components/StatTile/StatTile.d.ts +31 -0
  118. package/lib/typescript/commonjs/components/StatTile/StatTile.d.ts.map +1 -0
  119. package/lib/typescript/commonjs/components/StatTile/index.d.ts +3 -0
  120. package/lib/typescript/commonjs/components/StatTile/index.d.ts.map +1 -0
  121. package/lib/typescript/commonjs/components/Table/DataTable.d.ts +53 -0
  122. package/lib/typescript/commonjs/components/Table/DataTable.d.ts.map +1 -0
  123. package/lib/typescript/commonjs/components/Table/Table.d.ts +85 -0
  124. package/lib/typescript/commonjs/components/Table/Table.d.ts.map +1 -0
  125. package/lib/typescript/commonjs/components/Table/index.d.ts +5 -0
  126. package/lib/typescript/commonjs/components/Table/index.d.ts.map +1 -0
  127. package/lib/typescript/commonjs/components/brand/BaconLogo.d.ts +13 -0
  128. package/lib/typescript/commonjs/components/brand/BaconLogo.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/components/brand/index.d.ts +1 -0
  130. package/lib/typescript/commonjs/components/brand/index.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/components/index.d.ts +5 -0
  132. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  133. package/lib/typescript/module/components/Alert/Alert.d.ts +41 -0
  134. package/lib/typescript/module/components/Alert/Alert.d.ts.map +1 -0
  135. package/lib/typescript/module/components/Alert/index.d.ts +3 -0
  136. package/lib/typescript/module/components/Alert/index.d.ts.map +1 -0
  137. package/lib/typescript/module/components/EmptyState/EmptyState.d.ts +30 -0
  138. package/lib/typescript/module/components/EmptyState/EmptyState.d.ts.map +1 -0
  139. package/lib/typescript/module/components/EmptyState/index.d.ts +3 -0
  140. package/lib/typescript/module/components/EmptyState/index.d.ts.map +1 -0
  141. package/lib/typescript/module/components/Sidebar/Sidebar.d.ts +57 -0
  142. package/lib/typescript/module/components/Sidebar/Sidebar.d.ts.map +1 -0
  143. package/lib/typescript/module/components/Sidebar/index.d.ts +3 -0
  144. package/lib/typescript/module/components/Sidebar/index.d.ts.map +1 -0
  145. package/lib/typescript/module/components/StatTile/StatTile.d.ts +31 -0
  146. package/lib/typescript/module/components/StatTile/StatTile.d.ts.map +1 -0
  147. package/lib/typescript/module/components/StatTile/index.d.ts +3 -0
  148. package/lib/typescript/module/components/StatTile/index.d.ts.map +1 -0
  149. package/lib/typescript/module/components/Table/DataTable.d.ts +53 -0
  150. package/lib/typescript/module/components/Table/DataTable.d.ts.map +1 -0
  151. package/lib/typescript/module/components/Table/Table.d.ts +85 -0
  152. package/lib/typescript/module/components/Table/Table.d.ts.map +1 -0
  153. package/lib/typescript/module/components/Table/index.d.ts +5 -0
  154. package/lib/typescript/module/components/Table/index.d.ts.map +1 -0
  155. package/lib/typescript/module/components/brand/BaconLogo.d.ts +13 -0
  156. package/lib/typescript/module/components/brand/BaconLogo.d.ts.map +1 -0
  157. package/lib/typescript/module/components/brand/index.d.ts +1 -0
  158. package/lib/typescript/module/components/brand/index.d.ts.map +1 -1
  159. package/lib/typescript/module/components/index.d.ts +5 -0
  160. package/lib/typescript/module/components/index.d.ts.map +1 -1
  161. package/package.json +1 -1
  162. package/src/components/Alert/Alert.tsx +132 -0
  163. package/src/components/Alert/index.ts +2 -0
  164. package/src/components/EmptyState/EmptyState.tsx +91 -0
  165. package/src/components/EmptyState/index.ts +2 -0
  166. package/src/components/Sidebar/Sidebar.tsx +320 -0
  167. package/src/components/Sidebar/index.ts +2 -0
  168. package/src/components/StatTile/StatTile.tsx +98 -0
  169. package/src/components/StatTile/index.ts +2 -0
  170. package/src/components/Table/DataTable.tsx +173 -0
  171. package/src/components/Table/Table.tsx +556 -0
  172. package/src/components/Table/index.ts +10 -0
  173. package/src/components/brand/BaconLogo.tsx +25 -0
  174. package/src/components/brand/index.ts +1 -0
  175. package/src/components/index.ts +5 -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":[]}