@wordpress/dataviews 14.3.0 → 15.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 (108) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/components/dataform-controls/date.cjs.map +3 -3
  3. package/build/components/dataform-controls/datetime.cjs.map +2 -2
  4. package/build/components/dataform-controls/email.cjs.map +3 -3
  5. package/build/components/dataform-controls/telephone.cjs.map +3 -3
  6. package/build/components/dataform-controls/url.cjs.map +3 -3
  7. package/build/components/dataform-layouts/panel/summary-button.cjs +18 -1
  8. package/build/components/dataform-layouts/panel/summary-button.cjs.map +3 -3
  9. package/build/components/dataform-layouts/panel/utils/get-label-content.cjs +17 -4
  10. package/build/components/dataform-layouts/panel/utils/get-label-content.cjs.map +3 -3
  11. package/build/components/dataviews-context/index.cjs.map +2 -2
  12. package/build/components/dataviews-filters/filter.cjs +86 -80
  13. package/build/components/dataviews-filters/filter.cjs.map +3 -3
  14. package/build/components/dataviews-filters/search-widget.cjs.map +3 -3
  15. package/build/components/dataviews-layouts/grid/composite-grid.cjs +10 -2
  16. package/build/components/dataviews-layouts/grid/composite-grid.cjs.map +2 -2
  17. package/build/components/dataviews-layouts/picker-table/index.cjs +8 -0
  18. package/build/components/dataviews-layouts/picker-table/index.cjs.map +2 -2
  19. package/build/components/dataviews-layouts/table/column-header-menu.cjs.map +3 -3
  20. package/build/components/dataviews-layouts/table/use-scroll-state.cjs.map +1 -1
  21. package/build/components/dataviews-layouts/utils/item-click-wrapper.cjs.map +2 -2
  22. package/build/components/dataviews-view-config/properties-section.cjs.map +3 -3
  23. package/build/hooks/use-form-validity.cjs.map +1 -1
  24. package/build-module/components/dataform-controls/date.mjs +2 -2
  25. package/build-module/components/dataform-controls/date.mjs.map +2 -2
  26. package/build-module/components/dataform-controls/datetime.mjs.map +2 -2
  27. package/build-module/components/dataform-controls/email.mjs +2 -2
  28. package/build-module/components/dataform-controls/email.mjs.map +2 -2
  29. package/build-module/components/dataform-controls/telephone.mjs +2 -2
  30. package/build-module/components/dataform-controls/telephone.mjs.map +2 -2
  31. package/build-module/components/dataform-controls/url.mjs +2 -2
  32. package/build-module/components/dataform-controls/url.mjs.map +2 -2
  33. package/build-module/components/dataform-layouts/panel/summary-button.mjs +19 -2
  34. package/build-module/components/dataform-layouts/panel/summary-button.mjs.map +2 -2
  35. package/build-module/components/dataform-layouts/panel/utils/get-label-content.mjs +18 -5
  36. package/build-module/components/dataform-layouts/panel/utils/get-label-content.mjs.map +2 -2
  37. package/build-module/components/dataviews-context/index.mjs.map +2 -2
  38. package/build-module/components/dataviews-filters/filter.mjs +88 -83
  39. package/build-module/components/dataviews-filters/filter.mjs.map +2 -2
  40. package/build-module/components/dataviews-filters/search-widget.mjs +3 -3
  41. package/build-module/components/dataviews-filters/search-widget.mjs.map +2 -2
  42. package/build-module/components/dataviews-layouts/grid/composite-grid.mjs +11 -4
  43. package/build-module/components/dataviews-layouts/grid/composite-grid.mjs.map +2 -2
  44. package/build-module/components/dataviews-layouts/picker-table/index.mjs +8 -0
  45. package/build-module/components/dataviews-layouts/picker-table/index.mjs.map +2 -2
  46. package/build-module/components/dataviews-layouts/table/column-header-menu.mjs +5 -5
  47. package/build-module/components/dataviews-layouts/table/column-header-menu.mjs.map +2 -2
  48. package/build-module/components/dataviews-layouts/table/use-scroll-state.mjs.map +1 -1
  49. package/build-module/components/dataviews-layouts/utils/item-click-wrapper.mjs.map +2 -2
  50. package/build-module/components/dataviews-view-config/properties-section.mjs +2 -2
  51. package/build-module/components/dataviews-view-config/properties-section.mjs.map +2 -2
  52. package/build-module/hooks/use-form-validity.mjs.map +1 -1
  53. package/build-style/style-rtl.css +395 -377
  54. package/build-style/style.css +395 -377
  55. package/build-types/components/dataform-layouts/panel/summary-button.d.ts.map +1 -1
  56. package/build-types/components/dataform-layouts/panel/utils/get-label-content.d.ts.map +1 -1
  57. package/build-types/components/dataviews-context/index.d.ts +2 -2
  58. package/build-types/components/dataviews-context/index.d.ts.map +1 -1
  59. package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
  60. package/build-types/components/dataviews-layouts/grid/composite-grid.d.ts.map +1 -1
  61. package/build-types/components/dataviews-layouts/picker-table/index.d.ts.map +1 -1
  62. package/build-types/components/dataviews-layouts/table/use-scroll-state.d.ts +9 -5
  63. package/build-types/components/dataviews-layouts/table/use-scroll-state.d.ts.map +1 -1
  64. package/build-types/components/dataviews-layouts/utils/item-click-wrapper.d.ts.map +1 -1
  65. package/build-types/dataviews/stories/free-composition.d.ts.map +1 -1
  66. package/build-wp/index.js +3298 -1396
  67. package/package.json +18 -18
  68. package/src/components/dataform-controls/date.tsx +2 -2
  69. package/src/components/dataform-controls/datetime.tsx +1 -1
  70. package/src/components/dataform-controls/email.tsx +2 -2
  71. package/src/components/dataform-controls/style.scss +2 -4
  72. package/src/components/dataform-controls/telephone.tsx +2 -2
  73. package/src/components/dataform-controls/url.tsx +2 -2
  74. package/src/components/dataform-layouts/card/style.scss +4 -7
  75. package/src/components/dataform-layouts/details/style.scss +2 -4
  76. package/src/components/dataform-layouts/panel/style.scss +41 -21
  77. package/src/components/dataform-layouts/panel/summary-button.tsx +17 -6
  78. package/src/components/dataform-layouts/panel/utils/get-label-content.tsx +15 -7
  79. package/src/components/dataform-layouts/regular/style.scss +5 -8
  80. package/src/components/dataviews-bulk-actions/style.scss +2 -6
  81. package/src/components/dataviews-context/index.ts +2 -4
  82. package/src/components/dataviews-filters/filter.tsx +93 -77
  83. package/src/components/dataviews-filters/search-widget.tsx +3 -3
  84. package/src/components/dataviews-filters/style.scss +93 -95
  85. package/src/components/dataviews-footer/style.scss +4 -6
  86. package/src/components/dataviews-item-actions/style.scss +1 -3
  87. package/src/components/dataviews-layouts/activity/style.scss +39 -41
  88. package/src/components/dataviews-layouts/grid/composite-grid.tsx +15 -8
  89. package/src/components/dataviews-layouts/grid/style.scss +46 -50
  90. package/src/components/dataviews-layouts/list/style.scss +61 -59
  91. package/src/components/dataviews-layouts/picker-grid/style.scss +33 -37
  92. package/src/components/dataviews-layouts/picker-table/index.tsx +15 -0
  93. package/src/components/dataviews-layouts/picker-table/style.scss +5 -8
  94. package/src/components/dataviews-layouts/table/column-header-menu.tsx +5 -5
  95. package/src/components/dataviews-layouts/table/style.scss +44 -46
  96. package/src/components/dataviews-layouts/table/use-scroll-state.ts +6 -6
  97. package/src/components/dataviews-layouts/utils/grid-items.scss +4 -6
  98. package/src/components/dataviews-layouts/utils/item-click-wrapper.tsx +3 -1
  99. package/src/components/dataviews-pagination/style.scss +2 -3
  100. package/src/components/dataviews-picker-footer/style.scss +1 -3
  101. package/src/components/dataviews-selection-checkbox/style.scss +0 -1
  102. package/src/components/dataviews-view-config/properties-section.tsx +2 -2
  103. package/src/components/dataviews-view-config/style.scss +8 -11
  104. package/src/dataviews/stories/free-composition.tsx +3 -1
  105. package/src/dataviews/style.scss +27 -18
  106. package/src/dataviews-picker/stories/index.story.tsx +2 -0
  107. package/src/field-types/stories/index.story.tsx +2 -2
  108. package/src/hooks/use-form-validity.ts +2 -2
@@ -1,7 +1,4 @@
1
- @use "@wordpress/base-styles/colors" as *;
2
1
  @use "@wordpress/base-styles/mixins" as *;
3
- @use "@wordpress/base-styles/variables" as *;
4
- @use "@wordpress/base-styles/z-index" as *;
5
2
  @use "../../../dataviews/style" as *;
6
3
 
7
4
  .dataviews-view-table {
@@ -10,19 +7,19 @@
10
7
  border-color: inherit;
11
8
  border-collapse: collapse;
12
9
  position: relative;
13
- color: $gray-700;
10
+ color: var(--wpds-color-fg-content-neutral-weak);
14
11
  margin-bottom: auto;
15
12
  background-color: inherit;
16
13
 
17
14
  th {
18
15
  text-align: left;
19
- color: $gray-900;
16
+ color: var(--wpds-color-fg-content-neutral);
20
17
  font-weight: normal;
21
- font-size: $default-font-size;
18
+ font-size: var(--wpds-typography-font-size-md);
22
19
  }
23
20
  td,
24
21
  th {
25
- padding: $grid-unit-15;
22
+ padding: var(--wpds-dimension-padding-md);
26
23
 
27
24
  &.dataviews-view-table__actions-column {
28
25
  text-align: right;
@@ -31,7 +28,7 @@
31
28
  &.dataviews-view-table__actions-column--sticky {
32
29
  position: sticky;
33
30
  right: 0;
34
- background-color: var(--wp-dataviews-color-background, $white);
31
+ background-color: var(--wp-dataviews-color-background, var(--wpds-color-bg-surface-neutral-strong));
35
32
  }
36
33
 
37
34
  &.dataviews-view-table__actions-column--stuck {
@@ -43,7 +40,7 @@
43
40
  bottom: 0;
44
41
  left: 0;
45
42
  width: 1px;
46
- background-color: $gray-100;
43
+ background-color: var(--wpds-color-bg-surface-neutral);
47
44
  }
48
45
  }
49
46
 
@@ -57,17 +54,17 @@
57
54
  }
58
55
  }
59
56
  tr {
60
- border-top: 1px solid $gray-100;
57
+ border-top: 1px solid var(--wpds-color-stroke-surface-neutral-weak);
61
58
  background-color: inherit;
62
59
 
63
60
  td:first-child,
64
61
  th:first-child {
65
- padding-left: $grid-unit-30;
62
+ padding-left: var(--wpds-dimension-padding-2xl);
66
63
  }
67
64
 
68
65
  td:last-child,
69
66
  th:last-child {
70
- padding-right: $grid-unit-30;
67
+ padding-right: var(--wpds-dimension-padding-2xl);
71
68
  }
72
69
 
73
70
  &:last-child {
@@ -86,16 +83,16 @@
86
83
  }
87
84
 
88
85
  &.is-selected {
89
- background-color: color-mix(in srgb, rgb(var(--wp-admin-theme-color--rgb)) 4%, $white);
90
- color: $gray-700;
86
+ background-color: var(--wpds-color-bg-interactive-brand-weak-active);
87
+ color: var(--wpds-color-fg-content-neutral);
91
88
 
92
89
  &,
93
90
  & + tr {
94
- border-top: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12);
91
+ border-top: 1px solid var(--wpds-color-stroke-surface-brand);
95
92
  }
96
93
 
97
94
  .dataviews-view-table__actions-column--sticky {
98
- background-color: color-mix(in srgb, rgb(var(--wp-admin-theme-color--rgb)) 4%, $white);
95
+ background-color: var(--wpds-color-bg-interactive-brand-weak-active);
99
96
  }
100
97
  }
101
98
 
@@ -115,14 +112,14 @@
115
112
  &:focus-within,
116
113
  &:hover {
117
114
  .dataviews-view-table__actions-column--sticky {
118
- background-color: var(--wp-dataviews-color-background, $white);
115
+ background-color: var(--wp-dataviews-color-background, var(--wpds-color-bg-surface-neutral-strong));
119
116
  }
120
117
  }
121
118
 
122
119
  &.is-selected,
123
120
  &.is-selected:hover {
124
121
  .dataviews-view-table__actions-column--sticky {
125
- background-color: color-mix(in srgb, rgb(var(--wp-admin-theme-color--rgb)) 4%, $white);
122
+ background-color: var(--wpds-color-bg-interactive-brand-weak-active);
126
123
  }
127
124
  }
128
125
  }
@@ -131,7 +128,8 @@
131
128
  thead {
132
129
  position: sticky;
133
130
  inset-block-start: 0;
134
- z-index: z-index(".dataviews-view-table thead");
131
+ // Ensure the header stays above the scrolling content.
132
+ z-index: 1;
135
133
  background-color: inherit;
136
134
 
137
135
  &.dataviews-view-table__thead--stuck {
@@ -143,7 +141,7 @@
143
141
  left: 0;
144
142
  right: 0;
145
143
  height: 1px;
146
- background-color: $gray-100;
144
+ background-color: var(--wpds-color-stroke-surface-neutral-weak);
147
145
  }
148
146
  }
149
147
 
@@ -152,29 +150,29 @@
152
150
  }
153
151
  th {
154
152
  background-color: inherit;
155
- padding-top: $grid-unit-10;
156
- padding-bottom: $grid-unit-10;
153
+ padding-top: var(--wpds-dimension-padding-sm);
154
+ padding-bottom: var(--wpds-dimension-padding-sm);
157
155
  font-size: 11px;
158
156
  text-transform: uppercase;
159
- font-weight: $font-weight-medium;
157
+ font-weight: var(--wpds-typography-font-weight-medium);
160
158
 
161
159
  &:has(.dataviews-view-table-header-button) {
162
- padding-left: $grid-unit-05;
163
- padding-right: $grid-unit-05;
160
+ padding-left: var(--wpds-dimension-padding-xs);
161
+ padding-right: var(--wpds-dimension-padding-xs);
164
162
 
165
163
  .dataviews-view-table-header-button {
166
- gap: $grid-unit-05;
164
+ gap: var(--wpds-dimension-gap-xs);
167
165
  }
168
166
  }
169
167
 
170
168
  &:has(.dataviews-view-table-header-button):first-child {
171
169
  // Table cell padding minus the header button padding.
172
- padding-left: $grid-unit-20;
170
+ padding-left: var(--wpds-dimension-padding-lg);
173
171
  }
174
172
 
175
173
  &:has(.dataviews-view-table-header-button):last-child {
176
174
  // Table cell padding minus the header button padding.
177
- padding-right: $grid-unit-20;
175
+ padding-right: var(--wpds-dimension-padding-lg);
178
176
  }
179
177
  }
180
178
  }
@@ -183,7 +181,7 @@
183
181
  vertical-align: top;
184
182
  }
185
183
  .dataviews-view-table__cell-content-wrapper {
186
- min-height: $grid-unit-40;
184
+ min-height: calc(var(--wpds-dimension-base) * 8); // TODO: use size token when available
187
185
  display: flex;
188
186
  align-items: center;
189
187
  white-space: nowrap;
@@ -203,13 +201,13 @@
203
201
  }
204
202
  }
205
203
  .dataviews-view-table-header-button {
206
- padding: $grid-unit-05 $grid-unit-10;
204
+ padding: var(--wpds-dimension-padding-xs) var(--wpds-dimension-padding-sm);
207
205
  font-size: 11px;
208
206
  text-transform: uppercase;
209
- font-weight: $font-weight-medium;
207
+ font-weight: var(--wpds-typography-font-weight-medium);
210
208
 
211
209
  &:not(:hover) {
212
- color: $gray-900;
210
+ color: var(--wpds-color-fg-interactive-neutral);
213
211
  }
214
212
 
215
213
  span {
@@ -222,7 +220,7 @@
222
220
  }
223
221
 
224
222
  .dataviews-view-table-header {
225
- padding-left: $grid-unit-05;
223
+ padding-left: var(--wpds-dimension-padding-xs);
226
224
  }
227
225
 
228
226
  .dataviews-view-table__actions-column {
@@ -246,14 +244,14 @@
246
244
  }
247
245
  td,
248
246
  th {
249
- padding: $grid-unit-05 $grid-unit-10;
247
+ padding: var(--wpds-dimension-padding-xs) var(--wpds-dimension-padding-sm);
250
248
  }
251
249
  }
252
250
 
253
251
  &.has-comfortable-density {
254
252
  td,
255
253
  th {
256
- padding: $grid-unit-20 $grid-unit-15;
254
+ padding: var(--wpds-dimension-padding-lg) var(--wpds-dimension-padding-md);
257
255
  }
258
256
  }
259
257
 
@@ -278,17 +276,17 @@
278
276
 
279
277
  .dataviews-column-primary__media {
280
278
  max-width: 60px;
281
- min-width: $grid-unit-40;
282
- min-height: $grid-unit-40;
279
+ min-width: calc(var(--wpds-dimension-base) * 8); // TODO: use size token when available
280
+ min-height: calc(var(--wpds-dimension-base) * 8); // TODO: use size token when available
283
281
  overflow: hidden;
284
282
  position: relative;
285
283
  flex-shrink: 0;
286
- background-color: $white;
287
- border-radius: $radius-medium;
284
+ background-color: var(--wpds-color-bg-surface-neutral-strong);
285
+ border-radius: var(--wpds-border-radius-md);
288
286
 
289
287
  img {
290
- width: $grid-unit-40;
291
- height: $grid-unit-40;
288
+ width: calc(var(--wpds-dimension-base) * 8); // TODO: use size token when available
289
+ height: calc(var(--wpds-dimension-base) * 8); // TODO: use size token when available
292
290
  object-fit: cover;
293
291
  }
294
292
 
@@ -299,8 +297,8 @@
299
297
  left: 0;
300
298
  width: 100%;
301
299
  height: 100%;
302
- box-shadow: inset 0 0 0 $border-width rgba(0, 0, 0, 0.1);
303
- border-radius: $radius-medium;
300
+ box-shadow: inset 0 0 0 var(--wpds-border-width-xs) rgba(0, 0, 0, 0.1);
301
+ border-radius: var(--wpds-border-radius-md);
304
302
  }
305
303
  }
306
304
 
@@ -314,9 +312,9 @@
314
312
 
315
313
  .dataviews-view-table__group-header-row {
316
314
  .dataviews-view-table__group-header-cell {
317
- font-weight: $font-weight-medium;
318
- padding: $grid-unit-15 $grid-unit-30;
319
- color: $gray-900;
315
+ font-weight: var(--wpds-typography-font-weight-medium);
316
+ padding: var(--wpds-dimension-padding-md) var(--wpds-dimension-padding-2xl);
317
+ color: var(--wpds-color-fg-content-neutral);
320
318
  }
321
319
  }
322
320
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import type { MutableRefObject } from 'react';
4
+ import type { RefObject } from 'react';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -30,16 +30,16 @@ const isScrolledToEnd = ( element: Element ) => {
30
30
  *
31
31
  * See https://github.com/Automattic/wp-calypso/pull/103005#discussion_r2077567912.
32
32
  *
33
- * @param {Object} params The parameters for the hook.
34
- * @param {MutableRefObject<HTMLDivElement | null>} params.scrollContainerRef The ref to the scroll container element.
35
- * @param {boolean} [params.enabledHorizontal=false] Whether to track horizontal scroll end.
36
- * @return {{ isHorizontalScrollEnd: boolean, isVerticallyScrolled: boolean }} The scroll state.
33
+ * @param params The parameters for the hook.
34
+ * @param params.scrollContainerRef The ref to the scroll container element.
35
+ * @param [params.enabledHorizontal=false] Whether to track horizontal scroll end.
36
+ * @return The scroll state.
37
37
  */
38
38
  export function useScrollState( {
39
39
  scrollContainerRef,
40
40
  enabledHorizontal = false,
41
41
  }: {
42
- scrollContainerRef: React.MutableRefObject< HTMLDivElement | null >;
42
+ scrollContainerRef: RefObject< HTMLDivElement | null >;
43
43
  enabledHorizontal?: boolean;
44
44
  } ): { isHorizontalScrollEnd: boolean; isVerticallyScrolled: boolean } {
45
45
  const [ isHorizontalScrollEnd, setIsHorizontalScrollEnd ] =
@@ -1,12 +1,10 @@
1
- @use "@wordpress/base-styles/variables" as *;
2
-
3
1
  .dataviews-view-grid-items {
4
2
  margin-bottom: auto;
5
3
  display: grid;
6
- gap: $grid-unit-30;
4
+ gap: var(--wpds-dimension-gap-xl);
7
5
  grid-template-rows: max-content;
8
6
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
9
- padding: 0 $grid-unit-30 $grid-unit-30;
7
+ padding: 0 var(--wpds-dimension-padding-2xl) var(--wpds-dimension-padding-2xl);
10
8
  container-type: inline-size;
11
9
 
12
10
  @media not (prefers-reduced-motion) {
@@ -14,10 +12,10 @@
14
12
  }
15
13
 
16
14
  &.has-compact-density {
17
- gap: $grid-unit-20;
15
+ gap: var(--wpds-dimension-gap-lg);
18
16
  }
19
17
 
20
18
  &.has-comfortable-density {
21
- gap: $grid-unit-40;
19
+ gap: var(--wpds-dimension-gap-2xl);
22
20
  }
23
21
  }
@@ -86,7 +86,9 @@ export function ItemClickWrapper< Item >( {
86
86
  className: `${ className } ${ className }--clickable`,
87
87
  ...extraProps,
88
88
  children,
89
- } );
89
+ } ) as ReactElement<
90
+ Pick< React.DOMAttributes< Element >, 'onClick' | 'onKeyDown' >
91
+ >;
90
92
 
91
93
  // Clone the element and enhance onClick to stop propagation
92
94
  return cloneElement( renderedElement, {
@@ -1,15 +1,14 @@
1
- @use "@wordpress/base-styles/variables" as *;
2
1
  @use "@wordpress/base-styles/mixins" as *;
3
2
 
4
3
  .dataviews-pagination__page-select {
5
4
  font-size: 11px;
6
- font-weight: $font-weight-medium;
5
+ font-weight: var(--wpds-typography-font-weight-medium);
7
6
  text-transform: uppercase;
8
7
 
9
8
  @include break-small() {
10
9
  .components-select-control__input {
11
10
  font-size: 11px !important;
12
- font-weight: $font-weight-medium;
11
+ font-weight: var(--wpds-typography-font-weight-medium);
13
12
  }
14
13
  }
15
14
  }
@@ -1,11 +1,9 @@
1
- @use "@wordpress/base-styles/variables" as *;
2
-
3
1
  // For mobile viewports:
4
2
  // - align bulk selection checkbox to the left.
5
3
  // - align footer actions to the right.
6
4
  .dataviews-picker-footer__bulk-selection {
7
5
  align-self: flex-start;
8
- height: $grid-unit-40;
6
+ height: calc(var(--wpds-dimension-base) * 8); // TODO: use size token when available
9
7
  }
10
8
  .dataviews-picker-footer__actions {
11
9
  align-self: flex-end;
@@ -1,4 +1,3 @@
1
- @use "@wordpress/base-styles/variables" as *;
2
1
  @use "@wordpress/base-styles/mixins" as *;
3
2
 
4
3
  .dataviews-selection-checkbox {
@@ -5,7 +5,7 @@ import {
5
5
  __experimentalItemGroup as ItemGroup,
6
6
  __experimentalItem as Item,
7
7
  BaseControl,
8
- Icon,
8
+ Icon as WCIcon,
9
9
  } from '@wordpress/components';
10
10
  import { __ } from '@wordpress/i18n';
11
11
  import { useContext } from '@wordpress/element';
@@ -32,7 +32,7 @@ function FieldItem( {
32
32
  <Item onClick={ field.enableHiding ? onToggleVisibility : undefined }>
33
33
  <Stack direction="row" gap="sm" justify="flex-start" align="center">
34
34
  <div style={ { height: 24, width: 24 } }>
35
- { isVisible && <Icon icon={ check } /> }
35
+ { isVisible && <WCIcon icon={ check } /> }
36
36
  </div>
37
37
  <span className="dataviews-view-config__label">
38
38
  { field.label }
@@ -1,12 +1,9 @@
1
- @use "@wordpress/base-styles/colors" as *;
2
- @use "@wordpress/base-styles/variables" as *;
3
-
4
1
  .dataviews-view-config {
5
2
  width: 320px;
6
3
  /* stylelint-disable-next-line property-no-unknown -- the linter needs to be updated to accepted the container-type property */
7
4
  container-type: inline-size;
8
- font-size: $default-font-size;
9
- line-height: $default-line-height;
5
+ font-size: var(--wpds-typography-font-size-md);
6
+ line-height: var(--wpds-typography-line-height-sm);
10
7
  }
11
8
 
12
9
  .dataviews-config__popover.is-expanded .dataviews-config__popover-content-wrapper {
@@ -22,7 +19,7 @@
22
19
  }
23
20
 
24
21
  .dataviews-settings-section__title.dataviews-settings-section__title {
25
- line-height: $grid-unit-30;
22
+ line-height: var(--wpds-typography-line-height-md);
26
23
  font-size: 15px;
27
24
  }
28
25
 
@@ -74,11 +71,11 @@
74
71
 
75
72
  .dataviews-view-config__modified-indicator {
76
73
  position: absolute;
77
- top: $grid-unit-05;
78
- right: $grid-unit-05;
79
- width: $grid-unit-05;
80
- height: $grid-unit-05;
81
- background: var(--wp-admin-theme-color, #3858e9);
74
+ top: var(--wpds-dimension-gap-xs);
75
+ right: var(--wpds-dimension-gap-xs);
76
+ width: var(--wpds-dimension-gap-xs);
77
+ height: var(--wpds-dimension-gap-xs);
78
+ background: var(--wpds-color-bg-interactive-brand-strong);
82
79
  border-radius: 50%;
83
80
  pointer-events: none;
84
81
  }
@@ -174,7 +174,9 @@ export const FreeCompositionComponent = () => {
174
174
  No planets
175
175
  </WCText>
176
176
  <WCText variant="muted">{ `Try a different search because “${ view.search }” returned no results.` }</WCText>
177
- <Button variant="secondary">Create new planet</Button>
177
+ <Button variant="secondary" __next40pxDefaultSize>
178
+ Create new planet
179
+ </Button>
178
180
  </Stack>
179
181
  }
180
182
  >
@@ -1,5 +1,3 @@
1
- @use "@wordpress/base-styles/colors" as *;
2
- @use "@wordpress/base-styles/variables" as *;
3
1
  @use "@wordpress/base-styles/mixins" as *;
4
2
 
5
3
  @mixin dataviews-refreshing {
@@ -15,21 +13,23 @@
15
13
  .dataviews-wrapper,
16
14
  .dataviews-picker-wrapper {
17
15
  height: 100%;
16
+ flex-grow: 1;
17
+ min-height: 0;
18
18
  box-sizing: border-box;
19
- scroll-padding-bottom: $grid-unit-80;
19
+ scroll-padding-bottom: calc(var(--wpds-dimension-base) * 16);
20
20
  /* stylelint-disable-next-line property-no-unknown -- '@container' not globally permitted */
21
21
  container: dataviews-wrapper / inline-size;
22
22
  display: flex;
23
23
  flex-direction: column;
24
- font-size: $default-font-size;
25
- line-height: $default-line-height;
26
- background-color: var(--wp-dataviews-color-background, $white);
24
+ font-size: var(--wpds-typography-font-size-md);
25
+ line-height: var(--wpds-typography-line-height-sm);
26
+ background-color: var(--wp-dataviews-color-background, var(--wpds-color-bg-surface-neutral-strong));
27
27
  }
28
28
 
29
29
  .dataviews__view-actions,
30
30
  .dataviews-filters__container {
31
31
  box-sizing: border-box;
32
- padding: $grid-unit-20 $grid-unit-30;
32
+ padding: var(--wpds-dimension-padding-lg) var(--wpds-dimension-padding-2xl);
33
33
  flex-shrink: 0;
34
34
  position: sticky;
35
35
  left: 0;
@@ -42,7 +42,7 @@
42
42
 
43
43
  .dataviews-no-results,
44
44
  .dataviews-loading {
45
- padding: 0 $grid-unit-30;
45
+ padding: 0 var(--wpds-dimension-padding-2xl);
46
46
  flex-grow: 1;
47
47
  display: flex;
48
48
  align-items: center;
@@ -75,14 +75,14 @@
75
75
  @container (max-width: 430px) {
76
76
  .dataviews__view-actions,
77
77
  .dataviews-filters__container {
78
- padding: $grid-unit-15 $grid-unit-30;
78
+ padding: var(--wpds-dimension-padding-md) var(--wpds-dimension-padding-2xl);
79
79
  }
80
80
  }
81
81
 
82
82
  .dataviews-title-field {
83
- font-size: $default-font-size;
84
- font-weight: $font-weight-medium;
85
- color: $gray-800;
83
+ font-size: var(--wpds-typography-font-size-md);
84
+ font-weight: var(--wpds-typography-font-weight-medium);
85
+ color: var(--wpds-color-fg-content-neutral);
86
86
  text-overflow: ellipsis;
87
87
  white-space: nowrap;
88
88
  width: 100%;
@@ -94,10 +94,10 @@
94
94
  overflow: hidden;
95
95
  display: block;
96
96
  flex-grow: 0;
97
- color: $gray-800;
97
+ color: var(--wpds-color-fg-interactive-neutral);
98
98
 
99
99
  &:hover {
100
- color: var(--wp-admin-theme-color);
100
+ color: var(--wpds-color-fg-interactive-brand);
101
101
  }
102
102
  @include link-reset();
103
103
  }
@@ -110,18 +110,18 @@
110
110
  overflow: hidden;
111
111
  display: block;
112
112
  width: 100%;
113
- color: $gray-900;
113
+ color: var(--wpds-color-fg-interactive-neutral-active);
114
114
  &:hover {
115
- color: var(--wp-admin-theme-color);
115
+ color: var(--wpds-color-fg-interactive-brand);
116
116
  }
117
117
  }
118
118
  }
119
119
 
120
120
  .dataviews-title-field--clickable {
121
121
  cursor: var(--wpds-cursor-control);
122
- color: $gray-800;
122
+ color: var(--wpds-color-fg-interactive-neutral);
123
123
  &:hover {
124
- color: var(--wp-admin-theme-color);
124
+ color: var(--wpds-color-fg-interactive-brand);
125
125
  }
126
126
  @include link-reset();
127
127
  }
@@ -132,3 +132,12 @@
132
132
  z-index: 2; // Ensure it appears above dataview items when scrolling.
133
133
  background-color: #fff;
134
134
  }
135
+
136
+ /**
137
+ * When DataViews are placed within cards, apply a consistent top padding.
138
+ */
139
+ .components-card__body:has(> .dataviews-wrapper),
140
+ .components-card__body:has(> .dataviews-picker-wrapper) {
141
+ padding: var(--wpds-dimension-padding-sm) 0 0;
142
+ overflow: hidden; // Prevent cells with white backgrounds overflowing the card
143
+ }
@@ -254,6 +254,7 @@ export const WithModal = ( {
254
254
  <Stack direction="row" justify="left" gap="sm">
255
255
  <Button
256
256
  variant="primary"
257
+ __next40pxDefaultSize
257
258
  onClick={ () => setIsModalOpen( true ) }
258
259
  >
259
260
  Open Picker Modal
@@ -262,6 +263,7 @@ export const WithModal = ( {
262
263
  onClick={ () => setSelectedItems( [] ) }
263
264
  disabled={ ! selectedItems.length }
264
265
  accessibleWhenDisabled
266
+ __next40pxDefaultSize
265
267
  >
266
268
  Clear Selection
267
269
  </Button>
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { useState, useMemo } from '@wordpress/element';
5
5
  import {
6
- Icon,
6
+ Icon as WCIcon,
7
7
  __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,
8
8
  __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,
9
9
  } from '@wordpress/components';
@@ -88,7 +88,7 @@ const DollarPrefix = () => (
88
88
  );
89
89
  const StarIconPrefix = () => (
90
90
  <InputControlPrefixWrapper variant="icon">
91
- <Icon icon={ starFilled } />
91
+ <WCIcon icon={ starFilled } />
92
92
  </InputControlPrefixWrapper>
93
93
  );
94
94
  const PercentSuffix = () => (
@@ -392,8 +392,8 @@ function handleCustomValidationAsync< Item >(
392
392
  }
393
393
 
394
394
  type PromiseHandler< Item > = {
395
- customCounterRef: React.MutableRefObject< Record< string, number > >;
396
- elementsCounterRef: React.MutableRefObject< Record< string, number > >;
395
+ customCounterRef: React.RefObject< Record< string, number > >;
396
+ elementsCounterRef: React.RefObject< Record< string, number > >;
397
397
  setFormValidity: React.Dispatch< React.SetStateAction< FormValidity > >;
398
398
  path: string[];
399
399
  item: Item;