@wordpress/dataviews 0.8.0 → 1.0.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 (92) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +3 -13
  3. package/build/add-filter.js.map +1 -1
  4. package/build/bulk-actions.js.map +1 -1
  5. package/build/constants.js +1 -4
  6. package/build/constants.js.map +1 -1
  7. package/build/dataviews.js +3 -17
  8. package/build/dataviews.js.map +1 -1
  9. package/build/dropdown-menu-helper.js.map +1 -1
  10. package/build/filter-and-sort-data-view.js +147 -0
  11. package/build/filter-and-sort-data-view.js.map +1 -0
  12. package/build/filter-summary.js +4 -2
  13. package/build/filter-summary.js.map +1 -1
  14. package/build/filters.js +11 -17
  15. package/build/filters.js.map +1 -1
  16. package/build/index.js +3 -9
  17. package/build/index.js.map +1 -1
  18. package/build/item-actions.js.map +1 -1
  19. package/build/lock-unlock.js.map +1 -1
  20. package/build/normalize-fields.js +25 -0
  21. package/build/normalize-fields.js.map +1 -0
  22. package/build/pagination.js.map +1 -1
  23. package/build/reset-filters.js.map +1 -1
  24. package/build/search-widget.js +5 -4
  25. package/build/search-widget.js.map +1 -1
  26. package/build/search.js.map +1 -1
  27. package/build/single-selection-checkbox.js +1 -1
  28. package/build/single-selection-checkbox.js.map +1 -1
  29. package/build/utils.js +1 -65
  30. package/build/utils.js.map +1 -1
  31. package/build/view-actions.js.map +1 -1
  32. package/build/view-grid.js +57 -19
  33. package/build/view-grid.js.map +1 -1
  34. package/build/view-list.js +112 -66
  35. package/build/view-list.js.map +1 -1
  36. package/build/view-table.js +32 -24
  37. package/build/view-table.js.map +1 -1
  38. package/build-module/add-filter.js.map +1 -1
  39. package/build-module/bulk-actions.js.map +1 -1
  40. package/build-module/constants.js +0 -3
  41. package/build-module/constants.js.map +1 -1
  42. package/build-module/dataviews.js +3 -17
  43. package/build-module/dataviews.js.map +1 -1
  44. package/build-module/dropdown-menu-helper.js.map +1 -1
  45. package/build-module/filter-and-sort-data-view.js +139 -0
  46. package/build-module/filter-and-sort-data-view.js.map +1 -0
  47. package/build-module/filter-summary.js +3 -2
  48. package/build-module/filter-summary.js.map +1 -1
  49. package/build-module/filters.js +12 -18
  50. package/build-module/filters.js.map +1 -1
  51. package/build-module/index.js +1 -1
  52. package/build-module/index.js.map +1 -1
  53. package/build-module/item-actions.js.map +1 -1
  54. package/build-module/lock-unlock.js.map +1 -1
  55. package/build-module/normalize-fields.js +19 -0
  56. package/build-module/normalize-fields.js.map +1 -0
  57. package/build-module/pagination.js.map +1 -1
  58. package/build-module/reset-filters.js.map +1 -1
  59. package/build-module/search-widget.js +4 -3
  60. package/build-module/search-widget.js.map +1 -1
  61. package/build-module/search.js.map +1 -1
  62. package/build-module/single-selection-checkbox.js +1 -1
  63. package/build-module/single-selection-checkbox.js.map +1 -1
  64. package/build-module/utils.js +0 -63
  65. package/build-module/utils.js.map +1 -1
  66. package/build-module/view-actions.js.map +1 -1
  67. package/build-module/view-grid.js +58 -20
  68. package/build-module/view-grid.js.map +1 -1
  69. package/build-module/view-list.js +114 -68
  70. package/build-module/view-list.js.map +1 -1
  71. package/build-module/view-table.js +33 -25
  72. package/build-module/view-table.js.map +1 -1
  73. package/build-style/style-rtl.css +75 -39
  74. package/build-style/style.css +75 -39
  75. package/package.json +11 -11
  76. package/src/constants.js +0 -3
  77. package/src/dataviews.js +2 -16
  78. package/src/filter-and-sort-data-view.js +154 -0
  79. package/src/filter-summary.js +4 -4
  80. package/src/filters.js +20 -32
  81. package/src/index.js +1 -1
  82. package/src/normalize-fields.js +17 -0
  83. package/src/search-widget.js +4 -3
  84. package/src/single-selection-checkbox.js +1 -1
  85. package/src/stories/fixtures.js +75 -1
  86. package/src/stories/index.story.js +5 -113
  87. package/src/style.scss +89 -49
  88. package/src/test/filter-and-sort-data-view.js +276 -0
  89. package/src/utils.js +0 -52
  90. package/src/view-grid.js +97 -36
  91. package/src/view-list.js +147 -77
  92. package/src/view-table.js +36 -24
@@ -96,7 +96,7 @@
96
96
  --wp-admin-border-width-focus: 2px;
97
97
  --wp-block-synced-color: #7a00df;
98
98
  --wp-block-synced-color--rgb: 122, 0, 223;
99
- --wp-bound-block-color: #9747ff;
99
+ --wp-bound-block-color: var(--wp-block-synced-color);
100
100
  }
101
101
  @media (min-resolution: 192dpi) {
102
102
  :root {
@@ -191,10 +191,6 @@
191
191
  .dataviews-view-table th.dataviews-view-table__checkbox-column {
192
192
  padding-left: 0;
193
193
  }
194
- .dataviews-view-table td .components-checkbox-control__input-container,
195
- .dataviews-view-table th .components-checkbox-control__input-container {
196
- margin: 4px;
197
- }
198
194
  .dataviews-view-table tr {
199
195
  border-bottom: 1px solid #f0f0f0;
200
196
  }
@@ -236,6 +232,12 @@
236
232
  .dataviews-view-table tr:hover .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {
237
233
  opacity: 1;
238
234
  }
235
+ @media (hover: none) {
236
+ .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input,
237
+ .dataviews-view-table tr .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {
238
+ opacity: 1;
239
+ }
240
+ }
239
241
  .dataviews-view-table tr.is-selected {
240
242
  background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04);
241
243
  color: #757575;
@@ -272,6 +274,9 @@
272
274
  .dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper > * {
273
275
  flex-grow: 1;
274
276
  }
277
+ .dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper.dataviews-view-table__primary-field a {
278
+ flex-grow: 0;
279
+ }
275
280
  .dataviews-view-table .dataviews-view-table-header-button {
276
281
  padding: 4px 8px;
277
282
  font-size: 11px;
@@ -302,7 +307,7 @@
302
307
  .dataviews-view-table__primary-field {
303
308
  font-size: 13px;
304
309
  font-weight: 500;
305
- color: #1e1e1e;
310
+ color: #757575;
306
311
  text-overflow: ellipsis;
307
312
  white-space: nowrap;
308
313
  display: block;
@@ -312,17 +317,17 @@
312
317
  .dataviews-view-grid__primary-field a,
313
318
  .dataviews-view-table__primary-field a {
314
319
  text-decoration: none;
315
- color: inherit;
316
320
  text-overflow: ellipsis;
317
321
  white-space: nowrap;
318
322
  overflow: hidden;
319
323
  display: block;
320
- width: 100%;
324
+ flex-grow: 0;
325
+ color: #1e1e1e;
321
326
  }
322
327
  .dataviews-view-list__primary-field a:hover,
323
328
  .dataviews-view-grid__primary-field a:hover,
324
329
  .dataviews-view-table__primary-field a:hover {
325
- color: #1e1e1e;
330
+ color: var(--wp-admin-theme-color);
326
331
  }
327
332
  .dataviews-view-list__primary-field a:focus,
328
333
  .dataviews-view-grid__primary-field a:focus,
@@ -335,13 +340,18 @@
335
340
  .dataviews-view-grid__primary-field button.components-button.is-link,
336
341
  .dataviews-view-table__primary-field button.components-button.is-link {
337
342
  text-decoration: none;
338
- color: inherit;
339
343
  font-weight: inherit;
340
344
  text-overflow: ellipsis;
341
345
  white-space: nowrap;
342
346
  overflow: hidden;
343
347
  display: block;
344
348
  width: 100%;
349
+ color: #1e1e1e;
350
+ }
351
+ .dataviews-view-list__primary-field button.components-button.is-link:hover,
352
+ .dataviews-view-grid__primary-field button.components-button.is-link:hover,
353
+ .dataviews-view-table__primary-field button.components-button.is-link:hover {
354
+ color: var(--wp-admin-theme-color);
345
355
  }
346
356
 
347
357
  .dataviews-view-grid {
@@ -398,12 +408,43 @@
398
408
  line-height: 16px;
399
409
  }
400
410
  .dataviews-view-grid .dataviews-view-grid__fields:not(:empty) {
401
- padding: 12px;
411
+ padding: 12px 0;
402
412
  padding-top: 0;
413
+ margin: 0 12px;
414
+ }
415
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field {
416
+ align-items: flex-start;
417
+ }
418
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) {
419
+ align-items: center;
403
420
  }
404
- .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value {
421
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-name {
422
+ width: 35%;
423
+ }
424
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-value {
425
+ width: 65%;
426
+ overflow: hidden;
427
+ text-overflow: ellipsis;
428
+ white-space: nowrap;
429
+ }
430
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-name {
405
431
  color: #757575;
406
432
  }
433
+ .dataviews-view-grid .dataviews-view-grid__badge-fields:not(:empty) {
434
+ padding: 12px;
435
+ padding-top: 0;
436
+ }
437
+ .dataviews-view-grid .dataviews-view-grid__badge-fields .dataviews-view-grid__field-value {
438
+ width: -moz-fit-content;
439
+ width: fit-content;
440
+ background: #f0f0f0;
441
+ padding: 0 8px;
442
+ min-height: 24px;
443
+ border-radius: 2px;
444
+ display: flex;
445
+ align-items: center;
446
+ font-size: 12px;
447
+ }
407
448
 
408
449
  .dataviews-view-list {
409
450
  margin: 0;
@@ -411,6 +452,7 @@
411
452
  }
412
453
  .dataviews-view-list li {
413
454
  margin: 0;
455
+ cursor: pointer;
414
456
  }
415
457
  .dataviews-view-list li .dataviews-view-list__item-wrapper {
416
458
  position: relative;
@@ -426,11 +468,18 @@
426
468
  background: #f0f0f0;
427
469
  height: 1px;
428
470
  }
429
- .dataviews-view-list li:not(.is-selected):hover {
471
+ .dataviews-view-list li .dataviews-view-list__item-wrapper > * {
472
+ width: 100%;
473
+ }
474
+ .dataviews-view-list li:not(.is-selected) .dataviews-view-list__primary-field {
475
+ color: #1e1e1e;
476
+ }
477
+ .dataviews-view-list li:not(.is-selected):hover, .dataviews-view-list li:not(.is-selected):focus-within {
430
478
  color: var(--wp-admin-theme-color);
431
479
  }
432
480
  .dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field,
433
- .dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields {
481
+ .dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__primary-field,
482
+ .dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__fields {
434
483
  color: var(--wp-admin-theme-color);
435
484
  }
436
485
  .dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,
@@ -453,9 +502,9 @@
453
502
  .dataviews-view-list .dataviews-view-list__item {
454
503
  padding: 12px 24px 12px 0;
455
504
  width: 100%;
456
- cursor: pointer;
505
+ scroll-margin: 8px 0;
457
506
  }
458
- .dataviews-view-list .dataviews-view-list__item:focus::before {
507
+ .dataviews-view-list .dataviews-view-list__item:focus-visible::before {
459
508
  position: absolute;
460
509
  content: "";
461
510
  top: -1px;
@@ -468,6 +517,7 @@
468
517
  }
469
518
  .dataviews-view-list .dataviews-view-list__item .dataviews-view-list__primary-field {
470
519
  min-height: 20px;
520
+ overflow: hidden;
471
521
  }
472
522
  .dataviews-view-list .dataviews-view-list__media-wrapper {
473
523
  width: 40px;
@@ -506,24 +556,12 @@
506
556
  font-size: 12px;
507
557
  line-height: 16px;
508
558
  }
509
- .dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:empty {
559
+ .dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:has(.dataviews-view-list__field-value:empty) {
510
560
  display: none;
511
561
  }
512
562
  .dataviews-view-list + .dataviews-pagination {
513
563
  justify-content: space-between;
514
564
  }
515
- .dataviews-view-list .dataviews-view-list__details-button {
516
- align-self: center;
517
- opacity: 0;
518
- }
519
- .dataviews-view-list li.is-selected .dataviews-view-list__details-button,
520
- .dataviews-view-list li:hover .dataviews-view-list__details-button,
521
- .dataviews-view-list li:focus-within .dataviews-view-list__details-button {
522
- opacity: 1;
523
- }
524
- .dataviews-view-list li.is-selected .dataviews-view-list__details-button:focus {
525
- box-shadow: 0 0 0 var(--wp-admin-border-width-focus) currentColor;
526
- }
527
565
 
528
566
  .dataviews-action-modal {
529
567
  z-index: 1000001;
@@ -538,16 +576,14 @@
538
576
  justify-content: center;
539
577
  }
540
578
 
541
- .dataviews-view-table-selection-checkbox label {
542
- position: absolute;
543
- width: 1px;
544
- height: 1px;
545
- padding: 0;
546
- margin: -1px;
547
- overflow: hidden;
548
- clip: rect(0, 0, 0, 0);
549
- white-space: nowrap;
550
- border: 0;
579
+ .dataviews-view-table-selection-checkbox {
580
+ --checkbox-input-size: 24px;
581
+ line-height: 0;
582
+ }
583
+ @media (min-width: 600px) {
584
+ .dataviews-view-table-selection-checkbox {
585
+ --checkbox-input-size: 16px;
586
+ }
551
587
  }
552
588
 
553
589
  .dataviews-filters__custom-menu-radio-item-prefix {
@@ -96,7 +96,7 @@
96
96
  --wp-admin-border-width-focus: 2px;
97
97
  --wp-block-synced-color: #7a00df;
98
98
  --wp-block-synced-color--rgb: 122, 0, 223;
99
- --wp-bound-block-color: #9747ff;
99
+ --wp-bound-block-color: var(--wp-block-synced-color);
100
100
  }
101
101
  @media (min-resolution: 192dpi) {
102
102
  :root {
@@ -191,10 +191,6 @@
191
191
  .dataviews-view-table th.dataviews-view-table__checkbox-column {
192
192
  padding-right: 0;
193
193
  }
194
- .dataviews-view-table td .components-checkbox-control__input-container,
195
- .dataviews-view-table th .components-checkbox-control__input-container {
196
- margin: 4px;
197
- }
198
194
  .dataviews-view-table tr {
199
195
  border-bottom: 1px solid #f0f0f0;
200
196
  }
@@ -236,6 +232,12 @@
236
232
  .dataviews-view-table tr:hover .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {
237
233
  opacity: 1;
238
234
  }
235
+ @media (hover: none) {
236
+ .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input,
237
+ .dataviews-view-table tr .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {
238
+ opacity: 1;
239
+ }
240
+ }
239
241
  .dataviews-view-table tr.is-selected {
240
242
  background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04);
241
243
  color: #757575;
@@ -272,6 +274,9 @@
272
274
  .dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper > * {
273
275
  flex-grow: 1;
274
276
  }
277
+ .dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper.dataviews-view-table__primary-field a {
278
+ flex-grow: 0;
279
+ }
275
280
  .dataviews-view-table .dataviews-view-table-header-button {
276
281
  padding: 4px 8px;
277
282
  font-size: 11px;
@@ -302,7 +307,7 @@
302
307
  .dataviews-view-table__primary-field {
303
308
  font-size: 13px;
304
309
  font-weight: 500;
305
- color: #1e1e1e;
310
+ color: #757575;
306
311
  text-overflow: ellipsis;
307
312
  white-space: nowrap;
308
313
  display: block;
@@ -312,17 +317,17 @@
312
317
  .dataviews-view-grid__primary-field a,
313
318
  .dataviews-view-table__primary-field a {
314
319
  text-decoration: none;
315
- color: inherit;
316
320
  text-overflow: ellipsis;
317
321
  white-space: nowrap;
318
322
  overflow: hidden;
319
323
  display: block;
320
- width: 100%;
324
+ flex-grow: 0;
325
+ color: #1e1e1e;
321
326
  }
322
327
  .dataviews-view-list__primary-field a:hover,
323
328
  .dataviews-view-grid__primary-field a:hover,
324
329
  .dataviews-view-table__primary-field a:hover {
325
- color: #1e1e1e;
330
+ color: var(--wp-admin-theme-color);
326
331
  }
327
332
  .dataviews-view-list__primary-field a:focus,
328
333
  .dataviews-view-grid__primary-field a:focus,
@@ -335,13 +340,18 @@
335
340
  .dataviews-view-grid__primary-field button.components-button.is-link,
336
341
  .dataviews-view-table__primary-field button.components-button.is-link {
337
342
  text-decoration: none;
338
- color: inherit;
339
343
  font-weight: inherit;
340
344
  text-overflow: ellipsis;
341
345
  white-space: nowrap;
342
346
  overflow: hidden;
343
347
  display: block;
344
348
  width: 100%;
349
+ color: #1e1e1e;
350
+ }
351
+ .dataviews-view-list__primary-field button.components-button.is-link:hover,
352
+ .dataviews-view-grid__primary-field button.components-button.is-link:hover,
353
+ .dataviews-view-table__primary-field button.components-button.is-link:hover {
354
+ color: var(--wp-admin-theme-color);
345
355
  }
346
356
 
347
357
  .dataviews-view-grid {
@@ -398,12 +408,43 @@
398
408
  line-height: 16px;
399
409
  }
400
410
  .dataviews-view-grid .dataviews-view-grid__fields:not(:empty) {
401
- padding: 12px;
411
+ padding: 12px 0;
402
412
  padding-top: 0;
413
+ margin: 0 12px;
414
+ }
415
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field {
416
+ align-items: flex-start;
417
+ }
418
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) {
419
+ align-items: center;
403
420
  }
404
- .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value {
421
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-name {
422
+ width: 35%;
423
+ }
424
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-value {
425
+ width: 65%;
426
+ overflow: hidden;
427
+ text-overflow: ellipsis;
428
+ white-space: nowrap;
429
+ }
430
+ .dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-name {
405
431
  color: #757575;
406
432
  }
433
+ .dataviews-view-grid .dataviews-view-grid__badge-fields:not(:empty) {
434
+ padding: 12px;
435
+ padding-top: 0;
436
+ }
437
+ .dataviews-view-grid .dataviews-view-grid__badge-fields .dataviews-view-grid__field-value {
438
+ width: -moz-fit-content;
439
+ width: fit-content;
440
+ background: #f0f0f0;
441
+ padding: 0 8px;
442
+ min-height: 24px;
443
+ border-radius: 2px;
444
+ display: flex;
445
+ align-items: center;
446
+ font-size: 12px;
447
+ }
407
448
 
408
449
  .dataviews-view-list {
409
450
  margin: 0;
@@ -411,6 +452,7 @@
411
452
  }
412
453
  .dataviews-view-list li {
413
454
  margin: 0;
455
+ cursor: pointer;
414
456
  }
415
457
  .dataviews-view-list li .dataviews-view-list__item-wrapper {
416
458
  position: relative;
@@ -426,11 +468,18 @@
426
468
  background: #f0f0f0;
427
469
  height: 1px;
428
470
  }
429
- .dataviews-view-list li:not(.is-selected):hover {
471
+ .dataviews-view-list li .dataviews-view-list__item-wrapper > * {
472
+ width: 100%;
473
+ }
474
+ .dataviews-view-list li:not(.is-selected) .dataviews-view-list__primary-field {
475
+ color: #1e1e1e;
476
+ }
477
+ .dataviews-view-list li:not(.is-selected):hover, .dataviews-view-list li:not(.is-selected):focus-within {
430
478
  color: var(--wp-admin-theme-color);
431
479
  }
432
480
  .dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field,
433
- .dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields {
481
+ .dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__primary-field,
482
+ .dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__fields {
434
483
  color: var(--wp-admin-theme-color);
435
484
  }
436
485
  .dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,
@@ -453,9 +502,9 @@
453
502
  .dataviews-view-list .dataviews-view-list__item {
454
503
  padding: 12px 0 12px 24px;
455
504
  width: 100%;
456
- cursor: pointer;
505
+ scroll-margin: 8px 0;
457
506
  }
458
- .dataviews-view-list .dataviews-view-list__item:focus::before {
507
+ .dataviews-view-list .dataviews-view-list__item:focus-visible::before {
459
508
  position: absolute;
460
509
  content: "";
461
510
  top: -1px;
@@ -468,6 +517,7 @@
468
517
  }
469
518
  .dataviews-view-list .dataviews-view-list__item .dataviews-view-list__primary-field {
470
519
  min-height: 20px;
520
+ overflow: hidden;
471
521
  }
472
522
  .dataviews-view-list .dataviews-view-list__media-wrapper {
473
523
  width: 40px;
@@ -506,24 +556,12 @@
506
556
  font-size: 12px;
507
557
  line-height: 16px;
508
558
  }
509
- .dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:empty {
559
+ .dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:has(.dataviews-view-list__field-value:empty) {
510
560
  display: none;
511
561
  }
512
562
  .dataviews-view-list + .dataviews-pagination {
513
563
  justify-content: space-between;
514
564
  }
515
- .dataviews-view-list .dataviews-view-list__details-button {
516
- align-self: center;
517
- opacity: 0;
518
- }
519
- .dataviews-view-list li.is-selected .dataviews-view-list__details-button,
520
- .dataviews-view-list li:hover .dataviews-view-list__details-button,
521
- .dataviews-view-list li:focus-within .dataviews-view-list__details-button {
522
- opacity: 1;
523
- }
524
- .dataviews-view-list li.is-selected .dataviews-view-list__details-button:focus {
525
- box-shadow: 0 0 0 var(--wp-admin-border-width-focus) currentColor;
526
- }
527
565
 
528
566
  .dataviews-action-modal {
529
567
  z-index: 1000001;
@@ -538,16 +576,14 @@
538
576
  justify-content: center;
539
577
  }
540
578
 
541
- .dataviews-view-table-selection-checkbox label {
542
- position: absolute;
543
- width: 1px;
544
- height: 1px;
545
- padding: 0;
546
- margin: -1px;
547
- overflow: hidden;
548
- clip: rect(0, 0, 0, 0);
549
- white-space: nowrap;
550
- border: 0;
579
+ .dataviews-view-table-selection-checkbox {
580
+ --checkbox-input-size: 24px;
581
+ line-height: 0;
582
+ }
583
+ @media (min-width: 600px) {
584
+ .dataviews-view-table-selection-checkbox {
585
+ --checkbox-input-size: 16px;
586
+ }
551
587
  }
552
588
 
553
589
  .dataviews-filters__custom-menu-radio-item-prefix {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/dataviews",
3
- "version": "0.8.0",
3
+ "version": "1.0.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",
@@ -29,15 +29,15 @@
29
29
  "dependencies": {
30
30
  "@ariakit/react": "^0.3.12",
31
31
  "@babel/runtime": "^7.16.0",
32
- "@wordpress/a11y": "^3.54.0",
33
- "@wordpress/components": "^27.2.0",
34
- "@wordpress/compose": "^6.31.0",
35
- "@wordpress/element": "^5.31.0",
36
- "@wordpress/i18n": "^4.54.0",
37
- "@wordpress/icons": "^9.45.0",
38
- "@wordpress/keycodes": "^3.54.0",
39
- "@wordpress/primitives": "^3.52.0",
40
- "@wordpress/private-apis": "^0.36.0",
32
+ "@wordpress/a11y": "^3.56.0",
33
+ "@wordpress/components": "^27.4.0",
34
+ "@wordpress/compose": "^6.33.0",
35
+ "@wordpress/element": "^5.33.0",
36
+ "@wordpress/i18n": "^4.56.0",
37
+ "@wordpress/icons": "^9.47.0",
38
+ "@wordpress/keycodes": "^3.56.0",
39
+ "@wordpress/primitives": "^3.54.0",
40
+ "@wordpress/private-apis": "^0.38.0",
41
41
  "classnames": "^2.3.1",
42
42
  "remove-accents": "^0.5.0"
43
43
  },
@@ -47,5 +47,5 @@
47
47
  "publishConfig": {
48
48
  "access": "public"
49
49
  },
50
- "gitHead": "ffc07735d0abfb3f69e91d48f25b7fe8d1ef92d2"
50
+ "gitHead": "280403b4c1cf6cc2c55a6c4d56f9ef91145e4191"
51
51
  }
package/src/constants.js CHANGED
@@ -16,9 +16,6 @@ import ViewTable from './view-table';
16
16
  import ViewGrid from './view-grid';
17
17
  import ViewList from './view-list';
18
18
 
19
- // Field types.
20
- export const ENUMERATION_TYPE = 'enumeration';
21
-
22
19
  // Filter operators.
23
20
  export const OPERATOR_IS = 'is';
24
21
  export const OPERATOR_IS_NOT = 'isNot';
package/src/dataviews.js CHANGED
@@ -13,6 +13,7 @@ import Filters from './filters';
13
13
  import Search from './search';
14
14
  import { VIEW_LAYOUTS, LAYOUT_TABLE, LAYOUT_GRID } from './constants';
15
15
  import BulkActions from './bulk-actions';
16
+ import { normalizeFields } from './normalize-fields';
16
17
 
17
18
  const defaultGetItemId = ( item ) => item.id;
18
19
  const defaultOnSelectionChange = () => {};
@@ -40,8 +41,6 @@ export default function DataViews( {
40
41
  paginationInfo,
41
42
  supportedLayouts,
42
43
  onSelectionChange = defaultOnSelectionChange,
43
- onDetailsChange = null,
44
- deferredRendering = false,
45
44
  } ) {
46
45
  const [ selection, setSelection ] = useState( [] );
47
46
  const [ openedFilter, setOpenedFilter ] = useState( null );
@@ -76,18 +75,7 @@ export default function DataViews( {
76
75
  const ViewComponent = VIEW_LAYOUTS.find(
77
76
  ( v ) => v.type === view.type
78
77
  ).component;
79
- const _fields = useMemo( () => {
80
- return fields.map( ( field ) => {
81
- const getValue =
82
- field.getValue || ( ( { item } ) => item[ field.id ] );
83
-
84
- return {
85
- ...field,
86
- getValue,
87
- render: field.render || getValue,
88
- };
89
- } );
90
- }, [ fields ] );
78
+ const _fields = useMemo( () => normalizeFields( fields ), [ fields ] );
91
79
 
92
80
  const hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(
93
81
  actions,
@@ -146,9 +134,7 @@ export default function DataViews( {
146
134
  getItemId={ getItemId }
147
135
  isLoading={ isLoading }
148
136
  onSelectionChange={ onSetSelection }
149
- onDetailsChange={ onDetailsChange }
150
137
  selection={ selection }
151
- deferredRendering={ deferredRendering }
152
138
  setOpenedFilter={ setOpenedFilter }
153
139
  />
154
140
  <Pagination