@zywave/zui-table 4.0.0-pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +27 -0
  2. package/demo/index.html +435 -0
  3. package/dist/css/zui-table.fouc.css +1 -0
  4. package/dist/custom-elements.json +405 -0
  5. package/dist/index.d.ts +5 -0
  6. package/dist/index.js +6 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/zui-table-cell-css.d.ts +1 -0
  9. package/dist/zui-table-cell-css.js +3 -0
  10. package/dist/zui-table-cell-css.js.map +1 -0
  11. package/dist/zui-table-cell.d.ts +21 -0
  12. package/dist/zui-table-cell.js +43 -0
  13. package/dist/zui-table-cell.js.map +1 -0
  14. package/dist/zui-table-css.d.ts +1 -0
  15. package/dist/zui-table-css.js +3 -0
  16. package/dist/zui-table-css.js.map +1 -0
  17. package/dist/zui-table-footer-css.d.ts +1 -0
  18. package/dist/zui-table-footer-css.js +3 -0
  19. package/dist/zui-table-footer-css.js.map +1 -0
  20. package/dist/zui-table-footer.d.ts +17 -0
  21. package/dist/zui-table-footer.js +22 -0
  22. package/dist/zui-table-footer.js.map +1 -0
  23. package/dist/zui-table-row-css.d.ts +1 -0
  24. package/dist/zui-table-row-css.js +3 -0
  25. package/dist/zui-table-row-css.js.map +1 -0
  26. package/dist/zui-table-row.d.ts +31 -0
  27. package/dist/zui-table-row.js +52 -0
  28. package/dist/zui-table-row.js.map +1 -0
  29. package/dist/zui-table-topbar-css.d.ts +1 -0
  30. package/dist/zui-table-topbar-css.js +3 -0
  31. package/dist/zui-table-topbar-css.js.map +1 -0
  32. package/dist/zui-table-topbar.d.ts +17 -0
  33. package/dist/zui-table-topbar.js +24 -0
  34. package/dist/zui-table-topbar.js.map +1 -0
  35. package/dist/zui-table.d.ts +45 -0
  36. package/dist/zui-table.js +96 -0
  37. package/dist/zui-table.js.map +1 -0
  38. package/lab.html +467 -0
  39. package/package.json +37 -0
  40. package/src/css/zui-table.fouc.scss +137 -0
  41. package/src/index.ts +5 -0
  42. package/src/zui-table-cell-css.js +3 -0
  43. package/src/zui-table-cell.scss +5 -0
  44. package/src/zui-table-cell.ts +41 -0
  45. package/src/zui-table-css.js +3 -0
  46. package/src/zui-table-footer-css.js +3 -0
  47. package/src/zui-table-footer.scss +12 -0
  48. package/src/zui-table-footer.ts +30 -0
  49. package/src/zui-table-row-css.js +3 -0
  50. package/src/zui-table-row.scss +25 -0
  51. package/src/zui-table-row.ts +49 -0
  52. package/src/zui-table-topbar-css.js +3 -0
  53. package/src/zui-table-topbar.scss +40 -0
  54. package/src/zui-table-topbar.ts +32 -0
  55. package/src/zui-table.scss +39 -0
  56. package/src/zui-table.ts +93 -0
  57. package/test/zui-table.test.ts +129 -0
  58. package/tsconfig.build.json +10 -0
package/lab.html ADDED
@@ -0,0 +1,467 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <meta name="description" content="ZUI Web Component Skeleton" />
7
+ <meta http-equiv="X-UA-Compatible" content="ie=edge" />
8
+ <meta name="theme-color" content="#fff" />
9
+ <title>ZuiTable Demo</title>
10
+
11
+ <link rel="stylesheet" href="../../../node_modules/@zywave/zui-app-styles/dist/zui-app-styles.css" />
12
+ <link rel="stylesheet" href="../../../node_modules/@zywave/zui-base-styles/dist/zui-base-styles.css" />
13
+ <link rel="stylesheet" href="./dist/css/zui-table.fouc.css" />
14
+ <link rel="stylesheet" href="../../../node_modules/@zywave/zui-button/dist/css/zui-button.fouc.css" />
15
+ <link rel="stylesheet" href="../../../node_modules/@zywave/zui-pager/dist/css/zui-pager.fouc.css" />
16
+ <link rel="stylesheet" href="../../../node_modules/@zywave/zui-search/dist/css/zui-search.fouc.css" />
17
+ <script src="./dist/index.js" type="module" async></script>
18
+ <script src="../../../node_modules/@zywave/zui-button/dist/index.js" type="module"></script>
19
+ <script src="../../../node_modules/@zywave/zui-pager/dist/index.js" type="module"></script>
20
+ <script src="../../../node_modules/@zywave/zui-search/dist/index.js" type="module"></script>
21
+
22
+ <style>
23
+ body {
24
+ padding: 2em;
25
+ }
26
+
27
+ h2 {
28
+ margin-top: 4rem;
29
+ }
30
+ </style>
31
+ </head>
32
+
33
+ <body>
34
+ <h1>zui-table</h1>
35
+
36
+ <h2>Table with 5 columns</h2>
37
+
38
+ <zui-table columns="5">
39
+ <zui-table-row>
40
+ <zui-table-cell>Paulus Atreides</zui-table-cell>
41
+ <zui-table-cell>Old Duke</zui-table-cell>
42
+ <zui-table-cell>10,089 A.G.</zui-table-cell>
43
+ <zui-table-cell>10,156 A.G.</zui-table-cell>
44
+ <zui-table-cell>67 years old</zui-table-cell>
45
+ </zui-table-row>
46
+ <zui-table-row>
47
+ <zui-table-cell>Leto Atreides I</zui-table-cell>
48
+ <zui-table-cell>Red Duke</zui-table-cell>
49
+ <zui-table-cell>10,140 A.G.</zui-table-cell>
50
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
51
+ <zui-table-cell>51 years old</zui-table-cell>
52
+ </zui-table-row>
53
+ <zui-table-row>
54
+ <zui-table-cell>Paul Atreides</zui-table-cell>
55
+ <zui-table-cell>Padishah Emperor</zui-table-cell>
56
+ <zui-table-cell>10,176 A.G.</zui-table-cell>
57
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
58
+ <zui-table-cell>43 years old</zui-table-cell>
59
+ </zui-table-row>
60
+ <zui-table-row>
61
+ <zui-table-cell>Alia Atreides</zui-table-cell>
62
+ <zui-table-cell>Imperial Regent</zui-table-cell>
63
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
64
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
65
+ <zui-table-cell>28 years old</zui-table-cell>
66
+ </zui-table-row>
67
+ <zui-table-row>
68
+ <zui-table-cell>Leto Atreides II</zui-table-cell>
69
+ <zui-table-cell>God Emperor</zui-table-cell>
70
+ <zui-table-cell>10,207 A.G.</zui-table-cell>
71
+ <zui-table-cell>13,728 A.G.</zui-table-cell>
72
+ <zui-table-cell>3,521 years old</zui-table-cell>
73
+ </zui-table-row>
74
+ </zui-table>
75
+
76
+ <h2>Table with row headers</h2>
77
+
78
+ <zui-table columns="5">
79
+ <zui-table-row header>
80
+ <zui-table-cell>Name</zui-table-cell>
81
+ <zui-table-cell>Title</zui-table-cell>
82
+ <zui-table-cell>Born</zui-table-cell>
83
+ <zui-table-cell>Died</zui-table-cell>
84
+ <zui-table-cell>Age</zui-table-cell>
85
+ </zui-table-row>
86
+ <zui-table-row>
87
+ <zui-table-cell>Paulus Atreides</zui-table-cell>
88
+ <zui-table-cell>Old Duke</zui-table-cell>
89
+ <zui-table-cell>10,089 A.G.</zui-table-cell>
90
+ <zui-table-cell>10,156 A.G.</zui-table-cell>
91
+ <zui-table-cell>67 years old</zui-table-cell>
92
+ </zui-table-row>
93
+ <zui-table-row>
94
+ <zui-table-cell>Leto Atreides I</zui-table-cell>
95
+ <zui-table-cell>Red Duke</zui-table-cell>
96
+ <zui-table-cell>10,140 A.G.</zui-table-cell>
97
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
98
+ <zui-table-cell>51 years old</zui-table-cell>
99
+ </zui-table-row>
100
+ <zui-table-row>
101
+ <zui-table-cell>Paul Atreides</zui-table-cell>
102
+ <zui-table-cell>Padishah Emperor</zui-table-cell>
103
+ <zui-table-cell>10,176 A.G.</zui-table-cell>
104
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
105
+ <zui-table-cell>43 years old</zui-table-cell>
106
+ </zui-table-row>
107
+ <zui-table-row>
108
+ <zui-table-cell>Alia Atreides</zui-table-cell>
109
+ <zui-table-cell>Imperial Regent</zui-table-cell>
110
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
111
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
112
+ <zui-table-cell>28 years old</zui-table-cell>
113
+ </zui-table-row>
114
+ <zui-table-row>
115
+ <zui-table-cell>Leto Atreides II</zui-table-cell>
116
+ <zui-table-cell>God Emperor</zui-table-cell>
117
+ <zui-table-cell>10,207 A.G.</zui-table-cell>
118
+ <zui-table-cell>13,728 A.G.</zui-table-cell>
119
+ <zui-table-cell>3,521 years old</zui-table-cell>
120
+ </zui-table-row>
121
+ </zui-table>
122
+
123
+ <h2>Table with summary row</h2>
124
+
125
+ <zui-table columns="5">
126
+ <zui-table-row header>
127
+ <zui-table-cell>Name</zui-table-cell>
128
+ <zui-table-cell>Title</zui-table-cell>
129
+ <zui-table-cell>Born</zui-table-cell>
130
+ <zui-table-cell>Died</zui-table-cell>
131
+ <zui-table-cell>Age</zui-table-cell>
132
+ </zui-table-row>
133
+ <zui-table-row>
134
+ <zui-table-cell>Paulus Atreides</zui-table-cell>
135
+ <zui-table-cell>Old Duke</zui-table-cell>
136
+ <zui-table-cell>10,089 A.G.</zui-table-cell>
137
+ <zui-table-cell>10,156 A.G.</zui-table-cell>
138
+ <zui-table-cell>67 years old</zui-table-cell>
139
+ </zui-table-row>
140
+ <zui-table-row>
141
+ <zui-table-cell>Leto Atreides I</zui-table-cell>
142
+ <zui-table-cell>Red Duke</zui-table-cell>
143
+ <zui-table-cell>10,140 A.G.</zui-table-cell>
144
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
145
+ <zui-table-cell>51 years old</zui-table-cell>
146
+ </zui-table-row>
147
+ <zui-table-row>
148
+ <zui-table-cell>Paul Atreides</zui-table-cell>
149
+ <zui-table-cell>Padishah Emperor</zui-table-cell>
150
+ <zui-table-cell>10,176 A.G.</zui-table-cell>
151
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
152
+ <zui-table-cell>43 years old</zui-table-cell>
153
+ </zui-table-row>
154
+ <zui-table-row>
155
+ <zui-table-cell>Alia Atreides</zui-table-cell>
156
+ <zui-table-cell>Imperial Regent</zui-table-cell>
157
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
158
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
159
+ <zui-table-cell>28 years old</zui-table-cell>
160
+ </zui-table-row>
161
+ <zui-table-row>
162
+ <zui-table-cell>Leto Atreides II</zui-table-cell>
163
+ <zui-table-cell>God Emperor</zui-table-cell>
164
+ <zui-table-cell>10,207 A.G.</zui-table-cell>
165
+ <zui-table-cell>13,728 A.G.</zui-table-cell>
166
+ <zui-table-cell>3,521 years old</zui-table-cell>
167
+ </zui-table-row>
168
+ <zui-table-row summary>
169
+ <zui-table-cell span="5" style="text-align: right;">
170
+ Average lifespan: 742 years
171
+ </zui-table-cell>
172
+ </zui-table-row>
173
+ </zui-table>
174
+
175
+ <h2>Table topbar with search and counter</h2>
176
+
177
+ <zui-table columns="5">
178
+ <zui-table-topbar>
179
+ <zui-search placeholder="Search for a family member" no-submit></zui-search>
180
+ <div slot="counter">5 family members</div>
181
+ </zui-table-topbar>
182
+ <zui-table-row header>
183
+ <zui-table-cell>Name</zui-table-cell>
184
+ <zui-table-cell>Title</zui-table-cell>
185
+ <zui-table-cell>Born</zui-table-cell>
186
+ <zui-table-cell>Died</zui-table-cell>
187
+ <zui-table-cell>Age</zui-table-cell>
188
+ </zui-table-row>
189
+ <zui-table-row>
190
+ <zui-table-cell>Paulus Atreides</zui-table-cell>
191
+ <zui-table-cell>Old Duke</zui-table-cell>
192
+ <zui-table-cell>10,089 A.G.</zui-table-cell>
193
+ <zui-table-cell>10,156 A.G.</zui-table-cell>
194
+ <zui-table-cell>67 years old</zui-table-cell>
195
+ </zui-table-row>
196
+ <zui-table-row>
197
+ <zui-table-cell>Leto Atreides I</zui-table-cell>
198
+ <zui-table-cell>Red Duke</zui-table-cell>
199
+ <zui-table-cell>10,140 A.G.</zui-table-cell>
200
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
201
+ <zui-table-cell>51 years old</zui-table-cell>
202
+ </zui-table-row>
203
+ <zui-table-row>
204
+ <zui-table-cell>Paul Atreides</zui-table-cell>
205
+ <zui-table-cell>Padishah Emperor</zui-table-cell>
206
+ <zui-table-cell>10,176 A.G.</zui-table-cell>
207
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
208
+ <zui-table-cell>43 years old</zui-table-cell>
209
+ </zui-table-row>
210
+ <zui-table-row>
211
+ <zui-table-cell>Alia Atreides</zui-table-cell>
212
+ <zui-table-cell>Imperial Regent</zui-table-cell>
213
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
214
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
215
+ <zui-table-cell>28 years old</zui-table-cell>
216
+ </zui-table-row>
217
+ <zui-table-row>
218
+ <zui-table-cell>Leto Atreides II</zui-table-cell>
219
+ <zui-table-cell>God Emperor</zui-table-cell>
220
+ <zui-table-cell>10,207 A.G.</zui-table-cell>
221
+ <zui-table-cell>13,728 A.G.</zui-table-cell>
222
+ <zui-table-cell>3,521 years old</zui-table-cell>
223
+ </zui-table-row>
224
+ <zui-table-row summary>
225
+ <zui-table-cell span="5" style="text-align: right;">
226
+ Average lifespan: 742 years
227
+ </zui-table-cell>
228
+ </zui-table-row>
229
+ </zui-table>
230
+
231
+ <h2>Table topbar with search, counter, and actions</h2>
232
+
233
+ <zui-table columns="5">
234
+ <zui-table-topbar>
235
+ <zui-search placeholder="Search for a family member" no-submit></zui-search>
236
+ <div slot="counter">5 family members</div>
237
+ <zui-button slot="action" class="secondary">Whisper</zui-button>
238
+ <zui-button slot="action">Add a family member</zui-button>
239
+ </zui-table-topbar>
240
+ <zui-table-row header>
241
+ <zui-table-cell>Name</zui-table-cell>
242
+ <zui-table-cell>Title</zui-table-cell>
243
+ <zui-table-cell>Born</zui-table-cell>
244
+ <zui-table-cell>Died</zui-table-cell>
245
+ <zui-table-cell>Age</zui-table-cell>
246
+ </zui-table-row>
247
+ <zui-table-row>
248
+ <zui-table-cell>Paulus Atreides</zui-table-cell>
249
+ <zui-table-cell>Old Duke</zui-table-cell>
250
+ <zui-table-cell>10,089 A.G.</zui-table-cell>
251
+ <zui-table-cell>10,156 A.G.</zui-table-cell>
252
+ <zui-table-cell>67 years old</zui-table-cell>
253
+ </zui-table-row>
254
+ <zui-table-row>
255
+ <zui-table-cell>Leto Atreides I</zui-table-cell>
256
+ <zui-table-cell>Red Duke</zui-table-cell>
257
+ <zui-table-cell>10,140 A.G.</zui-table-cell>
258
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
259
+ <zui-table-cell>51 years old</zui-table-cell>
260
+ </zui-table-row>
261
+ <zui-table-row>
262
+ <zui-table-cell>Paul Atreides</zui-table-cell>
263
+ <zui-table-cell>Padishah Emperor</zui-table-cell>
264
+ <zui-table-cell>10,176 A.G.</zui-table-cell>
265
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
266
+ <zui-table-cell>43 years old</zui-table-cell>
267
+ </zui-table-row>
268
+ <zui-table-row>
269
+ <zui-table-cell>Alia Atreides</zui-table-cell>
270
+ <zui-table-cell>Imperial Regent</zui-table-cell>
271
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
272
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
273
+ <zui-table-cell>28 years old</zui-table-cell>
274
+ </zui-table-row>
275
+ <zui-table-row>
276
+ <zui-table-cell>Leto Atreides II</zui-table-cell>
277
+ <zui-table-cell>God Emperor</zui-table-cell>
278
+ <zui-table-cell>10,207 A.G.</zui-table-cell>
279
+ <zui-table-cell>13,728 A.G.</zui-table-cell>
280
+ <zui-table-cell>3,521 years old</zui-table-cell>
281
+ </zui-table-row>
282
+ <zui-table-row summary>
283
+ <zui-table-cell span="5" style="text-align: right;">
284
+ Average lifespan: 742 years
285
+ </zui-table-cell>
286
+ </zui-table-row>
287
+ </zui-table>
288
+
289
+ <h2>Table with footer</h2>
290
+
291
+ <zui-table columns="5">
292
+ <zui-table-topbar>
293
+ <zui-search placeholder="Search for a family member" no-submit></zui-search>
294
+ <div slot="counter">5 family members</div>
295
+ <zui-button slot="action" class="secondary">Whisper</zui-button>
296
+ <zui-button slot="action">Add a family member</zui-button>
297
+ </zui-table-topbar>
298
+ <zui-table-row header>
299
+ <zui-table-cell>Name</zui-table-cell>
300
+ <zui-table-cell>Title</zui-table-cell>
301
+ <zui-table-cell>Born</zui-table-cell>
302
+ <zui-table-cell>Died</zui-table-cell>
303
+ <zui-table-cell>Age</zui-table-cell>
304
+ </zui-table-row>
305
+ <zui-table-row>
306
+ <zui-table-cell>Paulus Atreides</zui-table-cell>
307
+ <zui-table-cell>Old Duke</zui-table-cell>
308
+ <zui-table-cell>10,089 A.G.</zui-table-cell>
309
+ <zui-table-cell>10,156 A.G.</zui-table-cell>
310
+ <zui-table-cell>67 years old</zui-table-cell>
311
+ </zui-table-row>
312
+ <zui-table-row>
313
+ <zui-table-cell>Leto Atreides I</zui-table-cell>
314
+ <zui-table-cell>Red Duke</zui-table-cell>
315
+ <zui-table-cell>10,140 A.G.</zui-table-cell>
316
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
317
+ <zui-table-cell>51 years old</zui-table-cell>
318
+ </zui-table-row>
319
+ <zui-table-row>
320
+ <zui-table-cell>Paul Atreides</zui-table-cell>
321
+ <zui-table-cell>Padishah Emperor</zui-table-cell>
322
+ <zui-table-cell>10,176 A.G.</zui-table-cell>
323
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
324
+ <zui-table-cell>43 years old</zui-table-cell>
325
+ </zui-table-row>
326
+ <zui-table-row>
327
+ <zui-table-cell>Alia Atreides</zui-table-cell>
328
+ <zui-table-cell>Imperial Regent</zui-table-cell>
329
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
330
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
331
+ <zui-table-cell>28 years old</zui-table-cell>
332
+ </zui-table-row>
333
+ <zui-table-row>
334
+ <zui-table-cell>Leto Atreides II</zui-table-cell>
335
+ <zui-table-cell>God Emperor</zui-table-cell>
336
+ <zui-table-cell>10,207 A.G.</zui-table-cell>
337
+ <zui-table-cell>13,728 A.G.</zui-table-cell>
338
+ <zui-table-cell>3,521 years old</zui-table-cell>
339
+ </zui-table-row>
340
+ <zui-table-row summary>
341
+ <zui-table-cell span="5" style="text-align: right;">
342
+ Average lifespan: 742 years
343
+ </zui-table-cell>
344
+ </zui-table-row>
345
+ <zui-table-footer>
346
+ <zui-pager current-page="1" total-pages="10"></zui-pager>
347
+ </zui-table-footer>
348
+ </zui-table>
349
+
350
+ <h2>No results table with simple custom message</h2>
351
+
352
+ <zui-table columns="5" no-results>
353
+ <zui-table-topbar>
354
+ <zui-search placeholder="Search for a family member" value="Spongebob Squarepants" no-submit></zui-search>
355
+ <div slot="counter">0 family members</div>
356
+ <zui-button slot="action" class="secondary">Whisper</zui-button>
357
+ <zui-button slot="action">Add a family member</zui-button>
358
+ </zui-table-topbar>
359
+ <zui-table-row header>
360
+ <zui-table-cell>Name</zui-table-cell>
361
+ <zui-table-cell>Title</zui-table-cell>
362
+ <zui-table-cell>Born</zui-table-cell>
363
+ <zui-table-cell>Died</zui-table-cell>
364
+ <zui-table-cell>Age</zui-table-cell>
365
+ </zui-table-row>
366
+ <div slot="no-results-message" class="zui font-weight-semibold">No results found for "Spongebob Squarepants"</div>
367
+ <zui-table-footer>
368
+ <zui-pager current-page="1" total-pages="10"></zui-pager>
369
+ </zui-table-footer>
370
+ </zui-table>
371
+
372
+ <h2>No results table with elaborate custom message</h2>
373
+
374
+ <zui-table columns="5" no-results>
375
+ <zui-table-topbar>
376
+ <zui-search placeholder="Search for a family member" value="Spongebob Squarepants" no-submit></zui-search>
377
+ <div slot="counter">0 family members</div>
378
+ <zui-button slot="action" class="secondary">Whisper</zui-button>
379
+ <zui-button slot="action">Add a family member</zui-button>
380
+ </zui-table-topbar>
381
+ <zui-table-row header>
382
+ <zui-table-cell>Name</zui-table-cell>
383
+ <zui-table-cell>Title</zui-table-cell>
384
+ <zui-table-cell>Born</zui-table-cell>
385
+ <zui-table-cell>Died</zui-table-cell>
386
+ <zui-table-cell>Age</zui-table-cell>
387
+ </zui-table-row>
388
+ <div slot="no-results-message" style="text-align: center;">
389
+ <div style="font-size: 2rem; margin-bottom: 0.5em;">¯\_(ツ)_/¯</div>
390
+ <p class="zui font-weight-semibold">No results for "Spongebob Squarepants"</p>
391
+ <p>Searching through all the Dune lore yielded no results.</p>
392
+ </div>
393
+ <zui-table-footer>
394
+ <zui-pager current-page="1" total-pages="10"></zui-pager>
395
+ </zui-table-footer>
396
+ </zui-table>
397
+
398
+ <h2>Table with banded rows</h2>
399
+
400
+ <zui-table columns="5" banded>
401
+ <zui-table-topbar>
402
+ <zui-search placeholder="Search for a family member" no-submit></zui-search>
403
+ <div slot="counter">5 family members</div>
404
+ <zui-button slot="action" class="secondary">Whisper</zui-button>
405
+ <zui-button slot="action">Add a family member</zui-button>
406
+ </zui-table-topbar>
407
+ <zui-table-row header>
408
+ <zui-table-cell>Name</zui-table-cell>
409
+ <zui-table-cell>Title</zui-table-cell>
410
+ <zui-table-cell>Born</zui-table-cell>
411
+ <zui-table-cell>Died</zui-table-cell>
412
+ <zui-table-cell>Age</zui-table-cell>
413
+ </zui-table-row>
414
+ <zui-table-row>
415
+ <zui-table-cell>Paulus Atreides</zui-table-cell>
416
+ <zui-table-cell>Old Duke</zui-table-cell>
417
+ <zui-table-cell>10,089 A.G.</zui-table-cell>
418
+ <zui-table-cell>10,156 A.G.</zui-table-cell>
419
+ <zui-table-cell>67 years old</zui-table-cell>
420
+ </zui-table-row>
421
+ <zui-table-row>
422
+ <zui-table-cell>Leto Atreides I</zui-table-cell>
423
+ <zui-table-cell>Red Duke</zui-table-cell>
424
+ <zui-table-cell>10,140 A.G.</zui-table-cell>
425
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
426
+ <zui-table-cell>51 years old</zui-table-cell>
427
+ </zui-table-row>
428
+ <zui-table-row>
429
+ <zui-table-cell>Paul Atreides</zui-table-cell>
430
+ <zui-table-cell>Padishah Emperor</zui-table-cell>
431
+ <zui-table-cell>10,176 A.G.</zui-table-cell>
432
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
433
+ <zui-table-cell>43 years old</zui-table-cell>
434
+ </zui-table-row>
435
+ <zui-table-row>
436
+ <zui-table-cell>Alia Atreides</zui-table-cell>
437
+ <zui-table-cell>Imperial Regent</zui-table-cell>
438
+ <zui-table-cell>10,191 A.G.</zui-table-cell>
439
+ <zui-table-cell>10,219 A.G.</zui-table-cell>
440
+ <zui-table-cell>28 years old</zui-table-cell>
441
+ </zui-table-row>
442
+ <zui-table-row>
443
+ <zui-table-cell>Leto Atreides II</zui-table-cell>
444
+ <zui-table-cell>God Emperor</zui-table-cell>
445
+ <zui-table-cell>10,207 A.G.</zui-table-cell>
446
+ <zui-table-cell>13,728 A.G.</zui-table-cell>
447
+ <zui-table-cell>3,521 years old</zui-table-cell>
448
+ </zui-table-row>
449
+ <zui-table-row summary>
450
+ <zui-table-cell span="5" style="text-align: right;">
451
+ Average lifespan: 742 years
452
+ </zui-table-cell>
453
+ </zui-table-row>
454
+ <zui-table-footer>
455
+ <zui-pager current-page="1" total-pages="10"></zui-pager>
456
+ </zui-table-footer>
457
+ </zui-table>
458
+
459
+ <script>
460
+ // zui-base-styles needs this for dumb IE11 if you add rel="zui-stylesheet"
461
+ // window.zui.importCustomStyles();
462
+
463
+ // Uncomment to test FOUC styling
464
+ // customElements.define = function () { };
465
+ </script>
466
+ </body>
467
+ </html>
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@zywave/zui-table",
3
+ "version": "4.0.0-pre.1",
4
+ "main": "dist/index.js",
5
+ "module": "dist/index.js",
6
+ "license": "UNLICENSED",
7
+ "scripts": {
8
+ "build": "yarn run build:scss && yarn run build:ts",
9
+ "build:clean": "node ../../../scripts/node/remove-build-files.mjs && yarn run build",
10
+ "build:scss": "node ../../../scripts/node/sass.mjs",
11
+ "build:ts": "tsc -p tsconfig.build.json",
12
+ "launch-server:demo": "es-dev-server --root-dir ../../../ --app-index packages/components/zui-table/demo/index.html --open --node-resolve --watch",
13
+ "launch-server:lab": "es-dev-server --root-dir ../../../ --app-index packages/components/zui-table/lab.html --open --node-resolve --watch",
14
+ "demo": "npm-run-all build --parallel watcher:start launch-server:demo",
15
+ "watch": "npm-run-all build --parallel watcher:start launch-server:lab",
16
+ "watcher:start": "node ../../../scripts/node/watcher.mjs",
17
+ "analyze": "cem analyze --globs src/zui-*.ts --litelement --outdir dist"
18
+ },
19
+ "devDependencies": {
20
+ "autoprefixer": "^9.7.6",
21
+ "browser-sync": "^2.23.7",
22
+ "cssnano": "^4.1.10",
23
+ "del": "^5.1.0",
24
+ "polyserve": "^0.27.8",
25
+ "postcss": "^7.0.27",
26
+ "rollup": "^2.6.1",
27
+ "rollup-plugin-babel": "^4.4.0"
28
+ },
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "customElements": "dist/custom-elements.json",
33
+ "dependencies": {
34
+ "@zywave/zui-base": "^4.1.18-pre.0"
35
+ },
36
+ "gitHead": "94482dca5e86ed4d0b0850b10341d0de96700230"
37
+ }
@@ -0,0 +1,137 @@
1
+ @use '@zywave/zui-sass-scripts' as *;
2
+
3
+ zui-table {
4
+ @include undefined-element {
5
+ display: block;
6
+ width: 100%;
7
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.29);
8
+ border-collapse: collapse;
9
+ border-spacing: 0;
10
+
11
+ [slot='topbar'] {
12
+ display: flex;
13
+ min-height: rem(60);
14
+ align-items: center;
15
+ padding: rem(10) rem(20);
16
+ background-color: var(--zui-gray-25);
17
+ }
18
+
19
+ [slot='footer'] {
20
+ margin-top: rem(10);
21
+ }
22
+
23
+ [slot='no-results-message'] {
24
+ display: none;
25
+ }
26
+ }
27
+ }
28
+
29
+ zui-table[banded] {
30
+ @include undefined-element {
31
+ zui-table-row:not([header]):nth-child(even) {
32
+ background-color: var(--zui-gray-25);
33
+ }
34
+
35
+ zui-table-row:not([header]) {
36
+ border: 0;
37
+ }
38
+ }
39
+ }
40
+
41
+ zui-table[no-results] {
42
+ @include undefined-element {
43
+ [slot='no-results-message'] {
44
+ display: block;
45
+ padding: rem(12) rem(20);
46
+ }
47
+ }
48
+ }
49
+
50
+ zui-table-topbar {
51
+ @include undefined-element {
52
+ display: flex;
53
+ width: 100%;
54
+ min-height: rem(60);
55
+ align-items: center;
56
+ padding: rem(10) rem(20);
57
+ background-color: var(--zui-gray-25);
58
+
59
+ [slot='counter'] {
60
+ flex-shrink: 0;
61
+ margin-left: auto;
62
+ padding-left: rem(10);
63
+ font-size: rem(12);
64
+ color: var(--zui-gray-400);
65
+ }
66
+
67
+ [slot='action'] {
68
+ margin-left: rem(10);
69
+
70
+ zui-button:not(:first-of-type) {
71
+ margin-left: rem(10);
72
+ }
73
+ }
74
+ }
75
+ }
76
+
77
+ zui-table-row {
78
+ @include undefined-element {
79
+ display: flex;
80
+ background-color: #fff;
81
+ }
82
+ }
83
+
84
+ zui-table-row[header] {
85
+ @include undefined-element {
86
+ background-color: #fff;
87
+ border-bottom: 1px solid var(--zui-gray-200);
88
+
89
+ zui-table-cell {
90
+ font-weight: 600;
91
+ }
92
+ }
93
+ }
94
+
95
+ zui-table-row:not([header]) {
96
+ @include undefined-element {
97
+ border-bottom: 1px solid var(--zui-gray-100);
98
+ }
99
+ }
100
+
101
+ zui-table-row:not([header]):last-of-type {
102
+ @include undefined-element {
103
+ border-bottom: 0;
104
+ }
105
+ }
106
+
107
+ zui-table-row[summary] {
108
+ @include undefined-element {
109
+ background-color: var(--zui-table-summary-background-color, var(--zui-gray-600)) !important;
110
+
111
+ zui-table-cell {
112
+ font-weight: 600;
113
+ color: var(--zui-table-summary-text-color, #fff);
114
+ }
115
+ }
116
+ }
117
+
118
+ zui-table-cell {
119
+ @include undefined-element {
120
+ flex-grow: 1;
121
+ flex-basis: 0;
122
+ padding: var(--zui-table-cell-padding, #{rem(13)} #{rem(20)});
123
+ }
124
+ }
125
+
126
+ zui-table-footer {
127
+ @include undefined-element {
128
+ display: flex;
129
+ justify-content: center;
130
+ align-items: center;
131
+ margin-top: var(--zui-table-footer-margin, #{rem(10)});
132
+
133
+ zui-pager {
134
+ width: 100%;
135
+ }
136
+ }
137
+ }
package/src/index.ts ADDED
@@ -0,0 +1,5 @@
1
+ export * from './zui-table.js';
2
+ export * from './zui-table-topbar.js';
3
+ export * from './zui-table-footer.js';
4
+ export * from './zui-table-row.js';
5
+ export * from './zui-table-cell.js';
@@ -0,0 +1,3 @@
1
+ import { css } from 'lit';
2
+
3
+ export const style = css`div{padding:var(--zui-table-cell-padding, 0.8125rem 1.25rem)}`;
@@ -0,0 +1,5 @@
1
+ @use '@zywave/zui-sass-scripts' as *;
2
+
3
+ div {
4
+ padding: var(--zui-table-cell-padding, #{rem(13)} #{rem(20)});
5
+ }