@wordpress/dataviews 0.2.0 → 0.3.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 (87) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +30 -6
  4. package/build/add-filter.js +109 -49
  5. package/build/add-filter.js.map +1 -1
  6. package/build/constants.js +24 -2
  7. package/build/constants.js.map +1 -1
  8. package/build/dataviews.js +12 -9
  9. package/build/dataviews.js.map +1 -1
  10. package/build/dropdown-menu-helper.js +72 -0
  11. package/build/dropdown-menu-helper.js.map +1 -0
  12. package/build/filter-summary.js +43 -54
  13. package/build/filter-summary.js.map +1 -1
  14. package/build/filters.js +27 -17
  15. package/build/filters.js.map +1 -1
  16. package/build/index.js +13 -0
  17. package/build/index.js.map +1 -1
  18. package/build/item-actions.js +12 -12
  19. package/build/item-actions.js.map +1 -1
  20. package/build/pagination.js +31 -65
  21. package/build/pagination.js.map +1 -1
  22. package/build/reset-filters.js +8 -8
  23. package/build/reset-filters.js.map +1 -1
  24. package/build/search.js +8 -6
  25. package/build/search.js.map +1 -1
  26. package/build/utils.js +71 -0
  27. package/build/utils.js.map +1 -0
  28. package/build/view-actions.js +72 -95
  29. package/build/view-actions.js.map +1 -1
  30. package/build/view-grid.js +4 -6
  31. package/build/view-grid.js.map +1 -1
  32. package/build/view-list.js +26 -13
  33. package/build/view-list.js.map +1 -1
  34. package/build/view-table.js +153 -154
  35. package/build/view-table.js.map +1 -1
  36. package/build-module/add-filter.js +113 -53
  37. package/build-module/add-filter.js.map +1 -1
  38. package/build-module/constants.js +20 -0
  39. package/build-module/constants.js.map +1 -1
  40. package/build-module/dataviews.js +13 -10
  41. package/build-module/dataviews.js.map +1 -1
  42. package/build-module/dropdown-menu-helper.js +64 -0
  43. package/build-module/dropdown-menu-helper.js.map +1 -0
  44. package/build-module/filter-summary.js +45 -56
  45. package/build-module/filter-summary.js.map +1 -1
  46. package/build-module/filters.js +26 -17
  47. package/build-module/filters.js.map +1 -1
  48. package/build-module/index.js +1 -0
  49. package/build-module/index.js.map +1 -1
  50. package/build-module/item-actions.js +12 -12
  51. package/build-module/item-actions.js.map +1 -1
  52. package/build-module/pagination.js +35 -69
  53. package/build-module/pagination.js.map +1 -1
  54. package/build-module/reset-filters.js +6 -6
  55. package/build-module/reset-filters.js.map +1 -1
  56. package/build-module/search.js +7 -6
  57. package/build-module/search.js.map +1 -1
  58. package/build-module/utils.js +63 -0
  59. package/build-module/utils.js.map +1 -0
  60. package/build-module/view-actions.js +73 -97
  61. package/build-module/view-actions.js.map +1 -1
  62. package/build-module/view-grid.js +4 -6
  63. package/build-module/view-grid.js.map +1 -1
  64. package/build-module/view-list.js +27 -14
  65. package/build-module/view-list.js.map +1 -1
  66. package/build-module/view-table.js +156 -157
  67. package/build-module/view-table.js.map +1 -1
  68. package/build-style/style-rtl.css +180 -70
  69. package/build-style/style.css +180 -70
  70. package/package.json +11 -10
  71. package/src/add-filter.js +227 -68
  72. package/src/constants.js +16 -0
  73. package/src/dataviews.js +19 -12
  74. package/src/dropdown-menu-helper.js +61 -0
  75. package/src/filter-summary.js +70 -103
  76. package/src/filters.js +41 -24
  77. package/src/index.js +1 -0
  78. package/src/item-actions.js +30 -25
  79. package/src/pagination.js +75 -123
  80. package/src/reset-filters.js +5 -5
  81. package/src/search.js +8 -6
  82. package/src/style.scss +182 -48
  83. package/src/utils.js +51 -0
  84. package/src/view-actions.js +113 -114
  85. package/src/view-grid.js +4 -4
  86. package/src/view-list.js +42 -28
  87. package/src/view-table.js +280 -238
@@ -114,15 +114,43 @@
114
114
  min-height: 100%;
115
115
  }
116
116
 
117
- .dataviews__filters-view-actions {
117
+ .dataviews-filters__view-actions {
118
118
  padding: 12px 32px;
119
119
  }
120
+ .dataviews-filters__view-actions .components-search-control {
121
+ flex-grow: 1;
122
+ max-width: 240px;
123
+ }
124
+
125
+ .dataviews-filters-button {
126
+ position: relative;
127
+ }
128
+
129
+ .dataviews-filters-count {
130
+ position: absolute;
131
+ top: 0;
132
+ right: 0;
133
+ height: 16px;
134
+ color: var(--wp-components-color-accent-inverted, #fff);
135
+ background-color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
136
+ border-radius: 8px;
137
+ min-width: 16px;
138
+ padding: 0 4px;
139
+ transform: translateX(40%) translateY(-40%);
140
+ display: flex;
141
+ align-items: center;
142
+ justify-content: center;
143
+ font-size: 11px;
144
+ font-weight: 300;
145
+ }
120
146
 
121
147
  .dataviews-pagination {
122
148
  margin-top: auto;
123
149
  position: sticky;
124
150
  bottom: 0;
125
- background-color: #fff;
151
+ background-color: rgba(255, 255, 255, 0.8);
152
+ -webkit-backdrop-filter: blur(6px);
153
+ backdrop-filter: blur(6px);
126
154
  padding: 12px 32px;
127
155
  border-top: 1px solid #f0f0f0;
128
156
  color: #757575;
@@ -132,7 +160,7 @@
132
160
  margin: 32px 0 16px;
133
161
  }
134
162
 
135
- .dataviews-table-view {
163
+ .dataviews-view-table {
136
164
  width: 100%;
137
165
  text-indent: 0;
138
166
  border-color: inherit;
@@ -140,74 +168,117 @@
140
168
  position: relative;
141
169
  color: #757575;
142
170
  }
143
- .dataviews-table-view a {
171
+ .dataviews-view-table a {
144
172
  text-decoration: none;
145
173
  color: #1e1e1e;
146
174
  font-weight: 500;
147
175
  }
148
- .dataviews-table-view th {
176
+ .dataviews-view-table th {
149
177
  text-align: left;
150
178
  color: var(--wp-components-color-foreground, #1e1e1e);
151
179
  font-weight: normal;
152
180
  font-size: 13px;
153
181
  }
154
- .dataviews-table-view td,
155
- .dataviews-table-view th {
182
+ .dataviews-view-table td,
183
+ .dataviews-view-table th {
156
184
  padding: 12px;
157
185
  min-width: 160px;
158
186
  }
159
- .dataviews-table-view td[data-field-id=actions],
160
- .dataviews-table-view th[data-field-id=actions] {
187
+ .dataviews-view-table td[data-field-id=actions],
188
+ .dataviews-view-table th[data-field-id=actions] {
161
189
  text-align: right;
162
190
  }
163
- .dataviews-table-view tr {
191
+ .dataviews-view-table tr {
164
192
  border-bottom: 1px solid #f0f0f0;
165
193
  }
166
- .dataviews-table-view tr td:first-child,
167
- .dataviews-table-view tr th:first-child {
194
+ .dataviews-view-table tr .dataviews-view-table-header-button {
195
+ gap: 4px;
196
+ }
197
+ .dataviews-view-table tr td:first-child,
198
+ .dataviews-view-table tr th:first-child {
168
199
  padding-left: 32px;
169
200
  }
170
- .dataviews-table-view tr td:last-child,
171
- .dataviews-table-view tr th:last-child {
201
+ .dataviews-view-table tr td:first-child .dataviews-view-table-header-button,
202
+ .dataviews-view-table tr td:first-child .dataviews-view-table-header,
203
+ .dataviews-view-table tr th:first-child .dataviews-view-table-header-button,
204
+ .dataviews-view-table tr th:first-child .dataviews-view-table-header {
205
+ margin-left: -8px;
206
+ }
207
+ .dataviews-view-table tr td:last-child,
208
+ .dataviews-view-table tr th:last-child {
172
209
  padding-right: 32px;
173
210
  }
174
- .dataviews-table-view tr:last-child {
211
+ .dataviews-view-table tr:last-child {
175
212
  border-bottom: 0;
176
213
  }
177
- .dataviews-table-view thead tr {
214
+ .dataviews-view-table tr:hover td {
215
+ background-color: #f8f8f8;
216
+ }
217
+ .dataviews-view-table thead tr {
178
218
  border: 0;
179
219
  }
180
- .dataviews-table-view thead th {
220
+ .dataviews-view-table thead th {
181
221
  position: sticky;
182
222
  top: -1px;
183
- background-color: #fafafa;
223
+ background-color: #fff;
184
224
  box-shadow: inset 0 -1px 0 #f0f0f0;
185
- border-top: 1px solid #f0f0f0;
186
- padding-top: 4px;
187
- padding-bottom: 4px;
225
+ padding-top: 8px;
226
+ padding-bottom: 8px;
227
+ z-index: 1;
228
+ font-size: 11px;
229
+ text-transform: uppercase;
230
+ font-weight: 500;
231
+ padding-left: 4px;
232
+ }
233
+ .dataviews-view-table .dataviews-view-table-header-button {
234
+ padding: 4px 8px;
235
+ font-size: 11px;
236
+ text-transform: uppercase;
237
+ font-weight: 500;
238
+ }
239
+ .dataviews-view-table .dataviews-view-table-header-button:not(:hover) {
240
+ color: #1e1e1e;
241
+ }
242
+ .dataviews-view-table .dataviews-view-table-header-button span {
243
+ speak: none;
244
+ }
245
+ .dataviews-view-table .dataviews-view-table-header-button span:empty {
246
+ display: none;
247
+ }
248
+ .dataviews-view-table .dataviews-view-table-header {
249
+ padding-left: 4px;
188
250
  }
189
251
 
190
- .dataviews-grid-view {
252
+ .dataviews-view-grid {
191
253
  margin-bottom: 24px;
192
254
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
193
255
  padding: 0 32px;
194
256
  }
195
257
  @media (min-width: 1080px) {
196
- .dataviews-grid-view {
258
+ .dataviews-view-grid {
197
259
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
198
260
  }
199
261
  }
200
262
  @media (min-width: 1440px) {
201
- .dataviews-grid-view {
263
+ .dataviews-view-grid {
202
264
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
203
265
  }
204
266
  }
205
- .dataviews-grid-view .dataviews-view-grid__card h3 {
267
+ .dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field .dataviews-view-grid__title-field {
206
268
  white-space: nowrap;
207
269
  overflow: hidden;
208
270
  text-overflow: ellipsis;
271
+ display: block;
272
+ font-size: 13px;
273
+ width: 100%;
274
+ }
275
+ .dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field .dataviews-view-grid__title-field a,
276
+ .dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field button.dataviews-view-grid__title-field {
277
+ font-weight: 500;
278
+ color: #1e1e1e;
279
+ text-decoration: none;
209
280
  }
210
- .dataviews-grid-view .dataviews-view-grid__media {
281
+ .dataviews-view-grid .dataviews-view-grid__media {
211
282
  width: 100%;
212
283
  min-height: 200px;
213
284
  aspect-ratio: 1/1;
@@ -215,76 +286,98 @@
215
286
  border-radius: 4px;
216
287
  overflow: hidden;
217
288
  }
218
- .dataviews-grid-view .dataviews-view-grid__media > * {
289
+ .dataviews-view-grid .dataviews-view-grid__media > * {
219
290
  -o-object-fit: cover;
220
291
  object-fit: cover;
221
292
  width: 100%;
222
293
  height: 100%;
223
294
  }
224
- .dataviews-grid-view .dataviews-view-grid__primary-field {
295
+ .dataviews-view-grid .dataviews-view-grid__primary-field {
225
296
  min-height: 24px;
226
297
  }
227
- .dataviews-grid-view .dataviews-view-grid__primary-field a {
228
- color: #1e1e1e;
229
- text-decoration: none;
230
- font-weight: 500;
231
- }
232
- .dataviews-grid-view .dataviews-view-grid__fields {
298
+ .dataviews-view-grid .dataviews-view-grid__fields {
233
299
  position: relative;
234
300
  font-size: 12px;
235
301
  line-height: 16px;
236
302
  }
237
- .dataviews-grid-view .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-header {
303
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-header {
238
304
  color: #757575;
239
305
  }
240
- .dataviews-grid-view .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value {
306
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value {
241
307
  color: #1e1e1e;
242
308
  }
243
309
 
244
- .dataviews-list-view {
310
+ .dataviews-view-list {
245
311
  margin: 0;
312
+ padding: 8px;
246
313
  }
247
- .dataviews-list-view li {
248
- border-bottom: 1px solid #f0f0f0;
314
+ .dataviews-view-list li {
249
315
  margin: 0;
250
316
  }
251
- .dataviews-list-view li:first-child {
252
- border-top: 1px solid #f0f0f0;
253
- }
254
- .dataviews-list-view li:last-child {
255
- border-bottom: 0;
256
- }
257
- .dataviews-list-view .dataviews-list-view__item {
258
- padding: 12px 32px;
259
- cursor: default;
317
+ .dataviews-view-list li .dataviews-view-list__item-wrapper {
318
+ position: relative;
319
+ padding-right: 24px;
320
+ border-radius: 4px;
260
321
  }
261
- .dataviews-list-view .dataviews-list-view__item:focus, .dataviews-list-view .dataviews-list-view__item:hover {
262
- background-color: #f8f8f8;
322
+ .dataviews-view-list li .dataviews-view-list__item-wrapper::after {
323
+ position: absolute;
324
+ content: "";
325
+ top: 100%;
326
+ left: 24px;
327
+ right: 24px;
328
+ background: #f0f0f0;
329
+ height: 1px;
330
+ }
331
+ .dataviews-view-list li:not(.is-selected):hover {
332
+ color: var(--wp-admin-theme-color);
333
+ }
334
+ .dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields {
335
+ color: var(--wp-admin-theme-color);
336
+ }
337
+ .dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,
338
+ .dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper {
339
+ background-color: var(--wp-admin-theme-color);
340
+ color: #fff;
341
+ }
342
+ .dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__fields,
343
+ .dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .components-button,
344
+ .dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__fields,
345
+ .dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .components-button {
346
+ color: #fff;
347
+ }
348
+ .dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper::after,
349
+ .dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper::after {
350
+ background: transparent;
351
+ }
352
+ .dataviews-view-list .dataviews-view-list__item {
353
+ padding: 12px 0 12px 24px;
354
+ width: 100%;
355
+ cursor: pointer;
263
356
  }
264
- .dataviews-list-view .dataviews-list-view__item:focus {
265
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
357
+ .dataviews-view-list .dataviews-view-list__item:focus::before {
358
+ position: absolute;
359
+ content: "";
360
+ top: -1px;
361
+ right: -1px;
362
+ bottom: -1px;
363
+ left: -1px;
364
+ box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
365
+ z-index: -1;
366
+ border-radius: 4px;
266
367
  }
267
- .dataviews-list-view .dataviews-list-view__item h3 {
368
+ .dataviews-view-list .dataviews-view-list__item h3 {
268
369
  overflow: hidden;
269
370
  text-overflow: ellipsis;
270
371
  white-space: nowrap;
271
372
  }
272
- .dataviews-list-view .dataviews-list-view__item-selected,
273
- .dataviews-list-view .dataviews-list-view__item-selected:hover {
274
- background-color: #f0f0f0;
275
- }
276
- .dataviews-list-view .dataviews-list-view__item-selected:focus,
277
- .dataviews-list-view .dataviews-list-view__item-selected:hover:focus {
278
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
279
- }
280
- .dataviews-list-view .dataviews-list-view__media-wrapper {
373
+ .dataviews-view-list .dataviews-view-list__media-wrapper {
281
374
  min-width: 32px;
282
375
  height: 32px;
283
376
  border-radius: 4px;
284
377
  overflow: hidden;
285
378
  position: relative;
286
379
  }
287
- .dataviews-list-view .dataviews-list-view__media-wrapper::after {
380
+ .dataviews-view-list .dataviews-view-list__media-wrapper::after {
288
381
  content: "";
289
382
  position: absolute;
290
383
  top: 0;
@@ -294,26 +387,38 @@
294
387
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
295
388
  border-radius: 4px;
296
389
  }
297
- .dataviews-list-view .edit-site-page-pages__featured-image,
298
- .dataviews-list-view .dataviews-list-view__media-placeholder {
390
+ .dataviews-view-list .dataviews-view-list__media-placeholder {
299
391
  min-width: 32px;
300
392
  height: 32px;
301
- }
302
- .dataviews-list-view .dataviews-list-view__media-placeholder {
303
393
  background-color: #e0e0e0;
304
394
  }
305
- .dataviews-list-view .dataviews-list-view__fields {
395
+ .dataviews-view-list .dataviews-view-list__fields {
306
396
  color: #757575;
307
397
  overflow: hidden;
308
398
  text-overflow: ellipsis;
309
399
  white-space: nowrap;
310
400
  }
311
- .dataviews-list-view .dataviews-list-view__fields .dataviews-list-view__field {
401
+ .dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field {
312
402
  margin-right: 12px;
313
403
  }
314
- .dataviews-list-view .dataviews-list-view__fields .dataviews-list-view__field:last-child {
404
+ .dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:last-child {
315
405
  margin-right: 0;
316
406
  }
407
+ .dataviews-view-list + .dataviews-pagination {
408
+ justify-content: space-between;
409
+ }
410
+ .dataviews-view-list .dataviews-view-list__details-button {
411
+ align-self: center;
412
+ opacity: 0;
413
+ }
414
+ .dataviews-view-list li.is-selected .dataviews-view-list__details-button,
415
+ .dataviews-view-list li:hover .dataviews-view-list__details-button,
416
+ .dataviews-view-list li:focus-within .dataviews-view-list__details-button {
417
+ opacity: 1;
418
+ }
419
+ .dataviews-view-list li.is-selected .dataviews-view-list__details-button:focus {
420
+ box-shadow: 0 0 0 var(--wp-admin-border-width-focus) currentColor;
421
+ }
317
422
 
318
423
  .dataviews-action-modal {
319
424
  z-index: 1000001;
@@ -322,4 +427,9 @@
322
427
  .dataviews-no-results,
323
428
  .dataviews-loading {
324
429
  padding: 0 32px;
430
+ }
431
+
432
+ .dataviews-filters__custom-menu-radio-item-prefix {
433
+ display: block;
434
+ width: 24px;
325
435
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/dataviews",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -28,14 +28,15 @@
28
28
  "sideEffects": false,
29
29
  "dependencies": {
30
30
  "@babel/runtime": "^7.16.0",
31
- "@wordpress/a11y": "^3.48.0",
32
- "@wordpress/components": "^25.14.0",
33
- "@wordpress/compose": "^6.25.0",
34
- "@wordpress/element": "^5.25.0",
35
- "@wordpress/i18n": "^4.48.0",
36
- "@wordpress/icons": "^9.39.0",
37
- "@wordpress/keycodes": "^3.48.0",
38
- "@wordpress/private-apis": "^0.30.0",
31
+ "@wordpress/a11y": "^3.49.0",
32
+ "@wordpress/components": "^25.15.0",
33
+ "@wordpress/compose": "^6.26.0",
34
+ "@wordpress/element": "^5.26.0",
35
+ "@wordpress/i18n": "^4.49.0",
36
+ "@wordpress/icons": "^9.40.0",
37
+ "@wordpress/keycodes": "^3.49.0",
38
+ "@wordpress/primitives": "^3.47.0",
39
+ "@wordpress/private-apis": "^0.31.0",
39
40
  "classnames": "^2.3.1",
40
41
  "remove-accents": "^0.5.0"
41
42
  },
@@ -45,5 +46,5 @@
45
46
  "publishConfig": {
46
47
  "access": "public"
47
48
  },
48
- "gitHead": "fcf61b4beff747222c2c81d09d757ca1a0abd925"
49
+ "gitHead": "5e6f9caa205d3bfdbac131952b7bf9c6ec60569b"
49
50
  }