@patternfly/react-data-view 6.0.0-prerelease.1 → 6.1.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 (237) hide show
  1. package/dist/cjs/DataView/DataView.d.ts +15 -1
  2. package/dist/cjs/DataView/DataView.js +14 -3
  3. package/dist/cjs/DataViewCheckboxFilter/DataViewCheckboxFilter.d.ts +29 -0
  4. package/dist/cjs/DataViewCheckboxFilter/DataViewCheckboxFilter.js +70 -0
  5. package/dist/cjs/DataViewCheckboxFilter/DataViewCheckboxFilter.test.d.ts +1 -0
  6. package/dist/cjs/DataViewCheckboxFilter/DataViewCheckboxFilter.test.js +25 -0
  7. package/dist/cjs/DataViewCheckboxFilter/index.d.ts +2 -0
  8. package/dist/cjs/DataViewCheckboxFilter/index.js +23 -0
  9. package/dist/cjs/DataViewEventsContext/DataViewEventsContext.d.ts +16 -0
  10. package/dist/cjs/DataViewEventsContext/DataViewEventsContext.js +62 -0
  11. package/dist/cjs/DataViewEventsContext/DataViewEventsContext.test.d.ts +1 -0
  12. package/dist/cjs/DataViewEventsContext/DataViewEventsContext.test.js +72 -0
  13. package/dist/cjs/DataViewEventsContext/index.d.ts +2 -0
  14. package/dist/cjs/DataViewEventsContext/index.js +23 -0
  15. package/dist/cjs/DataViewFilters/DataViewFilters.d.ts +25 -0
  16. package/dist/cjs/DataViewFilters/DataViewFilters.js +85 -0
  17. package/dist/cjs/DataViewFilters/DataViewFilters.test.d.ts +1 -0
  18. package/dist/cjs/DataViewFilters/DataViewFilters.test.js +19 -0
  19. package/dist/cjs/DataViewFilters/index.d.ts +2 -0
  20. package/dist/cjs/DataViewFilters/index.js +23 -0
  21. package/dist/cjs/DataViewTable/DataViewTable.d.ts +49 -0
  22. package/dist/cjs/DataViewTable/DataViewTable.js +18 -0
  23. package/dist/cjs/DataViewTable/DataViewTable.test.d.ts +1 -0
  24. package/dist/cjs/DataViewTable/DataViewTable.test.js +57 -0
  25. package/dist/cjs/DataViewTable/index.d.ts +2 -0
  26. package/dist/cjs/DataViewTable/index.js +23 -0
  27. package/dist/cjs/DataViewTableBasic/DataViewTableBasic.d.ts +19 -0
  28. package/dist/cjs/DataViewTableBasic/DataViewTableBasic.js +71 -0
  29. package/dist/cjs/DataViewTableBasic/DataViewTableBasic.test.d.ts +1 -0
  30. package/dist/cjs/DataViewTableBasic/DataViewTableBasic.test.js +43 -0
  31. package/dist/cjs/DataViewTableBasic/index.d.ts +2 -0
  32. package/dist/cjs/DataViewTableBasic/index.js +23 -0
  33. package/dist/cjs/DataViewTableHead/DataViewTableHead.d.ts +14 -0
  34. package/dist/cjs/DataViewTableHead/DataViewTableHead.js +57 -0
  35. package/dist/cjs/DataViewTableHead/DataViewTableHead.test.d.ts +1 -0
  36. package/dist/cjs/DataViewTableHead/DataViewTableHead.test.js +36 -0
  37. package/dist/cjs/DataViewTableHead/index.d.ts +2 -0
  38. package/dist/cjs/DataViewTableHead/index.js +23 -0
  39. package/dist/cjs/DataViewTableTree/DataViewTableTree.d.ts +25 -0
  40. package/dist/cjs/DataViewTableTree/DataViewTableTree.js +144 -0
  41. package/dist/cjs/DataViewTableTree/DataViewTableTree.test.d.ts +1 -0
  42. package/dist/cjs/DataViewTableTree/DataViewTableTree.test.js +90 -0
  43. package/dist/cjs/DataViewTableTree/index.d.ts +2 -0
  44. package/dist/cjs/DataViewTableTree/index.js +23 -0
  45. package/dist/cjs/DataViewTextFilter/DataViewTextFilter.d.ts +21 -0
  46. package/dist/cjs/DataViewTextFilter/DataViewTextFilter.js +26 -0
  47. package/dist/cjs/DataViewTextFilter/DataViewTextFilter.test.d.ts +1 -0
  48. package/dist/cjs/DataViewTextFilter/DataViewTextFilter.test.js +22 -0
  49. package/dist/cjs/DataViewTextFilter/index.d.ts +2 -0
  50. package/dist/cjs/DataViewTextFilter/index.js +23 -0
  51. package/dist/cjs/DataViewToolbar/DataViewToolbar.d.ts +11 -3
  52. package/dist/cjs/DataViewToolbar/DataViewToolbar.js +30 -6
  53. package/dist/cjs/Hooks/filters.d.ts +14 -0
  54. package/dist/cjs/Hooks/filters.js +69 -0
  55. package/dist/cjs/Hooks/filters.test.d.ts +1 -0
  56. package/dist/cjs/Hooks/filters.test.js +50 -0
  57. package/dist/cjs/Hooks/index.d.ts +2 -0
  58. package/dist/cjs/Hooks/index.js +2 -0
  59. package/dist/cjs/Hooks/pagination.d.ts +14 -1
  60. package/dist/cjs/Hooks/pagination.js +36 -4
  61. package/dist/cjs/Hooks/pagination.test.js +1 -1
  62. package/dist/cjs/Hooks/selection.d.ts +3 -3
  63. package/dist/cjs/Hooks/selection.js +4 -4
  64. package/dist/cjs/Hooks/selection.test.js +4 -4
  65. package/dist/cjs/Hooks/sort.d.ts +32 -0
  66. package/dist/cjs/Hooks/sort.js +47 -0
  67. package/dist/cjs/Hooks/sort.test.d.ts +1 -0
  68. package/dist/cjs/Hooks/sort.test.js +68 -0
  69. package/dist/cjs/InternalContext/InternalContext.d.ts +26 -0
  70. package/dist/cjs/InternalContext/InternalContext.js +40 -0
  71. package/dist/cjs/InternalContext/InternalContext.test.d.ts +1 -0
  72. package/dist/cjs/InternalContext/InternalContext.test.js +56 -0
  73. package/dist/cjs/InternalContext/index.d.ts +2 -0
  74. package/dist/cjs/InternalContext/index.js +23 -0
  75. package/dist/cjs/index.d.ts +16 -0
  76. package/dist/cjs/index.js +26 -2
  77. package/dist/dynamic/DataViewCheckboxFilter/package.json +1 -0
  78. package/dist/dynamic/DataViewEventsContext/package.json +1 -0
  79. package/dist/dynamic/DataViewFilters/package.json +1 -0
  80. package/dist/dynamic/DataViewTable/package.json +1 -0
  81. package/dist/dynamic/DataViewTableBasic/package.json +1 -0
  82. package/dist/dynamic/DataViewTableHead/package.json +1 -0
  83. package/dist/dynamic/DataViewTableTree/package.json +1 -0
  84. package/dist/dynamic/DataViewTextFilter/package.json +1 -0
  85. package/dist/dynamic/InternalContext/package.json +1 -0
  86. package/dist/esm/DataView/DataView.d.ts +15 -1
  87. package/dist/esm/DataView/DataView.js +13 -2
  88. package/dist/esm/DataViewCheckboxFilter/DataViewCheckboxFilter.d.ts +29 -0
  89. package/dist/esm/DataViewCheckboxFilter/DataViewCheckboxFilter.js +62 -0
  90. package/dist/esm/DataViewCheckboxFilter/DataViewCheckboxFilter.test.d.ts +1 -0
  91. package/dist/esm/DataViewCheckboxFilter/DataViewCheckboxFilter.test.js +20 -0
  92. package/dist/esm/DataViewCheckboxFilter/index.d.ts +2 -0
  93. package/dist/esm/DataViewCheckboxFilter/index.js +2 -0
  94. package/dist/esm/DataViewEventsContext/DataViewEventsContext.d.ts +16 -0
  95. package/dist/esm/DataViewEventsContext/DataViewEventsContext.js +34 -0
  96. package/dist/esm/DataViewEventsContext/DataViewEventsContext.test.d.ts +1 -0
  97. package/dist/esm/DataViewEventsContext/DataViewEventsContext.test.js +67 -0
  98. package/dist/esm/DataViewEventsContext/index.d.ts +2 -0
  99. package/dist/esm/DataViewEventsContext/index.js +2 -0
  100. package/dist/esm/DataViewFilters/DataViewFilters.d.ts +25 -0
  101. package/dist/esm/DataViewFilters/DataViewFilters.js +58 -0
  102. package/dist/esm/DataViewFilters/DataViewFilters.test.d.ts +1 -0
  103. package/dist/esm/DataViewFilters/DataViewFilters.test.js +14 -0
  104. package/dist/esm/DataViewFilters/index.d.ts +2 -0
  105. package/dist/esm/DataViewFilters/index.js +2 -0
  106. package/dist/esm/DataViewTable/DataViewTable.d.ts +49 -0
  107. package/dist/esm/DataViewTable/DataViewTable.js +8 -0
  108. package/dist/esm/DataViewTable/DataViewTable.test.d.ts +1 -0
  109. package/dist/esm/DataViewTable/DataViewTable.test.js +52 -0
  110. package/dist/esm/DataViewTable/index.d.ts +2 -0
  111. package/dist/esm/DataViewTable/index.js +2 -0
  112. package/dist/esm/DataViewTableBasic/DataViewTableBasic.d.ts +19 -0
  113. package/dist/esm/DataViewTableBasic/DataViewTableBasic.js +44 -0
  114. package/dist/esm/DataViewTableBasic/DataViewTableBasic.test.d.ts +1 -0
  115. package/dist/esm/DataViewTableBasic/DataViewTableBasic.test.js +38 -0
  116. package/dist/esm/DataViewTableBasic/index.d.ts +2 -0
  117. package/dist/esm/DataViewTableBasic/index.js +2 -0
  118. package/dist/esm/DataViewTableHead/DataViewTableHead.d.ts +14 -0
  119. package/dist/esm/DataViewTableHead/DataViewTableHead.js +30 -0
  120. package/dist/esm/DataViewTableHead/DataViewTableHead.test.d.ts +1 -0
  121. package/dist/esm/DataViewTableHead/DataViewTableHead.test.js +31 -0
  122. package/dist/esm/DataViewTableHead/index.d.ts +2 -0
  123. package/dist/esm/DataViewTableHead/index.js +2 -0
  124. package/dist/esm/DataViewTableTree/DataViewTableTree.d.ts +25 -0
  125. package/dist/esm/DataViewTableTree/DataViewTableTree.js +117 -0
  126. package/dist/esm/DataViewTableTree/DataViewTableTree.test.d.ts +1 -0
  127. package/dist/esm/DataViewTableTree/DataViewTableTree.test.js +85 -0
  128. package/dist/esm/DataViewTableTree/index.d.ts +2 -0
  129. package/dist/esm/DataViewTableTree/index.js +2 -0
  130. package/dist/esm/DataViewTextFilter/DataViewTextFilter.d.ts +21 -0
  131. package/dist/esm/DataViewTextFilter/DataViewTextFilter.js +19 -0
  132. package/dist/esm/DataViewTextFilter/DataViewTextFilter.test.d.ts +1 -0
  133. package/dist/esm/DataViewTextFilter/DataViewTextFilter.test.js +17 -0
  134. package/dist/esm/DataViewTextFilter/index.d.ts +2 -0
  135. package/dist/esm/DataViewTextFilter/index.js +2 -0
  136. package/dist/esm/DataViewToolbar/DataViewToolbar.d.ts +11 -3
  137. package/dist/esm/DataViewToolbar/DataViewToolbar.js +8 -4
  138. package/dist/esm/Hooks/filters.d.ts +14 -0
  139. package/dist/esm/Hooks/filters.js +65 -0
  140. package/dist/esm/Hooks/filters.test.d.ts +1 -0
  141. package/dist/esm/Hooks/filters.test.js +48 -0
  142. package/dist/esm/Hooks/index.d.ts +2 -0
  143. package/dist/esm/Hooks/index.js +2 -0
  144. package/dist/esm/Hooks/pagination.d.ts +14 -1
  145. package/dist/esm/Hooks/pagination.js +36 -4
  146. package/dist/esm/Hooks/pagination.test.js +1 -1
  147. package/dist/esm/Hooks/selection.d.ts +3 -3
  148. package/dist/esm/Hooks/selection.js +4 -4
  149. package/dist/esm/Hooks/selection.test.js +4 -4
  150. package/dist/esm/Hooks/sort.d.ts +32 -0
  151. package/dist/esm/Hooks/sort.js +43 -0
  152. package/dist/esm/Hooks/sort.test.d.ts +1 -0
  153. package/dist/esm/Hooks/sort.test.js +66 -0
  154. package/dist/esm/InternalContext/InternalContext.d.ts +26 -0
  155. package/dist/esm/InternalContext/InternalContext.js +12 -0
  156. package/dist/esm/InternalContext/InternalContext.test.d.ts +1 -0
  157. package/dist/esm/InternalContext/InternalContext.test.js +51 -0
  158. package/dist/esm/InternalContext/index.d.ts +2 -0
  159. package/dist/esm/InternalContext/index.js +2 -0
  160. package/dist/esm/index.d.ts +16 -0
  161. package/dist/esm/index.js +16 -0
  162. package/dist/tsconfig.tsbuildinfo +1 -0
  163. package/package.json +16 -15
  164. package/patternfly-docs/content/extensions/data-view/examples/DataView/DataView.md +63 -0
  165. package/patternfly-docs/content/extensions/data-view/examples/DataView/EventsExample.tsx +130 -0
  166. package/patternfly-docs/content/extensions/data-view/examples/DataView/PredefinedLayoutFullExample.tsx +275 -0
  167. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableEmptyExample.tsx +57 -0
  168. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableErrorExample.tsx +45 -0
  169. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableExample.tsx +67 -0
  170. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableLoadingExample.tsx +27 -0
  171. package/patternfly-docs/content/extensions/data-view/examples/Table/DataViewTableTreeExample.tsx +71 -0
  172. package/patternfly-docs/content/extensions/data-view/examples/Table/SortingExample.tsx +87 -0
  173. package/patternfly-docs/content/extensions/data-view/examples/Table/Table.md +130 -0
  174. package/patternfly-docs/content/extensions/data-view/examples/Toolbar/DataViewToolbarActionsExample.tsx +27 -0
  175. package/patternfly-docs/content/extensions/data-view/examples/Toolbar/DataViewToolbarExample.tsx +36 -0
  176. package/patternfly-docs/content/extensions/data-view/examples/Toolbar/FiltersExample.tsx +107 -0
  177. package/patternfly-docs/content/extensions/data-view/examples/Toolbar/PaginationExample.tsx +56 -0
  178. package/patternfly-docs/content/extensions/data-view/examples/Toolbar/SelectionExample.tsx +57 -0
  179. package/patternfly-docs/content/extensions/data-view/examples/Toolbar/Toolbar.md +142 -0
  180. package/patternfly-docs/pages/index.js +1 -1
  181. package/src/DataView/DataView.tsx +28 -5
  182. package/src/DataView/__snapshots__/DataView.test.tsx.snap +2 -2
  183. package/src/DataViewCheckboxFilter/DataViewCheckboxFilter.test.tsx +24 -0
  184. package/src/DataViewCheckboxFilter/DataViewCheckboxFilter.tsx +175 -0
  185. package/src/DataViewCheckboxFilter/__snapshots__/DataViewCheckboxFilter.test.tsx.snap +197 -0
  186. package/src/DataViewCheckboxFilter/index.ts +2 -0
  187. package/src/DataViewEventsContext/DataViewEventsContext.test.tsx +105 -0
  188. package/src/DataViewEventsContext/DataViewEventsContext.tsx +70 -0
  189. package/src/DataViewEventsContext/index.ts +2 -0
  190. package/src/DataViewFilters/DataViewFilters.test.tsx +21 -0
  191. package/src/DataViewFilters/DataViewFilters.tsx +144 -0
  192. package/src/DataViewFilters/__snapshots__/DataViewFilters.test.tsx.snap +194 -0
  193. package/src/DataViewFilters/index.tsx +2 -0
  194. package/src/DataViewTable/DataViewTable.test.tsx +80 -0
  195. package/src/DataViewTable/DataViewTable.tsx +57 -0
  196. package/src/DataViewTable/__snapshots__/DataViewTable.test.tsx.snap +1042 -0
  197. package/src/DataViewTable/index.ts +2 -0
  198. package/src/DataViewTableBasic/DataViewTableBasic.test.tsx +65 -0
  199. package/src/DataViewTableBasic/DataViewTableBasic.tsx +83 -0
  200. package/src/DataViewTableBasic/__snapshots__/DataViewTableBasic.test.tsx.snap +555 -0
  201. package/src/DataViewTableBasic/index.ts +2 -0
  202. package/src/DataViewTableHead/DataViewTableHead.test.tsx +50 -0
  203. package/src/DataViewTableHead/DataViewTableHead.tsx +54 -0
  204. package/src/DataViewTableHead/__snapshots__/DataViewTableHead.test.tsx.snap +227 -0
  205. package/src/DataViewTableHead/index.ts +2 -0
  206. package/src/DataViewTableTree/DataViewTableTree.test.tsx +113 -0
  207. package/src/DataViewTableTree/DataViewTableTree.tsx +186 -0
  208. package/src/DataViewTableTree/__snapshots__/DataViewTableTree.test.tsx.snap +1200 -0
  209. package/src/DataViewTableTree/index.ts +2 -0
  210. package/src/DataViewTextFilter/DataViewTextFilter.test.tsx +24 -0
  211. package/src/DataViewTextFilter/DataViewTextFilter.tsx +54 -0
  212. package/src/DataViewTextFilter/__snapshots__/DataViewTextFilter.test.tsx.snap +203 -0
  213. package/src/DataViewTextFilter/index.ts +2 -0
  214. package/src/DataViewToolbar/DataViewToolbar.tsx +48 -22
  215. package/src/DataViewToolbar/__snapshots__/DataViewToolbar.test.tsx.snap +264 -174
  216. package/src/Hooks/filters.test.tsx +62 -0
  217. package/src/Hooks/filters.ts +97 -0
  218. package/src/Hooks/index.ts +2 -0
  219. package/src/Hooks/pagination.test.tsx +1 -1
  220. package/src/Hooks/pagination.ts +69 -12
  221. package/src/Hooks/selection.test.tsx +5 -5
  222. package/src/Hooks/selection.ts +7 -7
  223. package/src/Hooks/sort.test.tsx +84 -0
  224. package/src/Hooks/sort.ts +87 -0
  225. package/src/InternalContext/InternalContext.test.tsx +89 -0
  226. package/src/InternalContext/InternalContext.tsx +52 -0
  227. package/src/InternalContext/index.ts +2 -0
  228. package/src/index.ts +24 -0
  229. package/patternfly-docs/content/extensions/data-view/about-data-view.md +0 -14
  230. package/patternfly-docs/content/extensions/data-view/examples/Components/Components.md +0 -31
  231. package/patternfly-docs/content/extensions/data-view/examples/Components/DataViewToolbarExample.tsx +0 -20
  232. package/patternfly-docs/content/extensions/data-view/examples/Functionality/Functionality.md +0 -77
  233. package/patternfly-docs/content/extensions/data-view/examples/Functionality/PaginationExample.tsx +0 -65
  234. package/patternfly-docs/content/extensions/data-view/examples/Functionality/SelectionExample.tsx +0 -88
  235. package/patternfly-docs/content/extensions/data-view/examples/Layout/Layout.md +0 -39
  236. package/patternfly-docs/content/extensions/data-view/examples/Layout/PredefinedLayoutExample.tsx +0 -120
  237. /package/patternfly-docs/content/extensions/data-view/examples/{Layout → DataView}/AbstractLayoutExample.tsx +0 -0
@@ -46,51 +46,58 @@ exports[`DataViewToolbar component should render correctly 1`] = `
46
46
  </b>
47
47
 
48
48
  </div>
49
- <button
50
- aria-expanded="false"
51
- aria-haspopup="listbox"
52
- class="pf-v6-c-menu-toggle pf-m-plain pf-m-text"
53
- id="options-menu-top-toggle"
54
- type="button"
49
+ <div
50
+ class="pf-v6-c-pagination__page-menu"
55
51
  >
56
- <span
57
- class="pf-v6-c-menu-toggle__text"
58
- >
59
- <b>
60
- 1
61
- -
62
- 10
63
- </b>
64
-
65
- of
66
-
67
- <b>
68
- 0
69
- </b>
70
-
71
- </span>
72
- <span
73
- class="pf-v6-c-menu-toggle__controls"
52
+ <button
53
+ aria-expanded="false"
54
+ aria-haspopup="listbox"
55
+ class="pf-v6-c-menu-toggle pf-m-plain pf-m-text"
56
+ data-ouia-component-id="OUIA-Generated-MenuToggle-plainText-1"
57
+ data-ouia-component-type="PF6/MenuToggle"
58
+ data-ouia-safe="true"
59
+ id="options-menu-top-toggle"
60
+ type="button"
74
61
  >
75
62
  <span
76
- class="pf-v6-c-menu-toggle__toggle-icon"
63
+ class="pf-v6-c-menu-toggle__text"
77
64
  >
78
- <svg
79
- aria-hidden="true"
80
- class="pf-v6-svg"
81
- fill="currentColor"
82
- height="1em"
83
- role="img"
84
- viewBox="0 0 320 512"
85
- width="1em"
65
+ <b>
66
+ 1
67
+ -
68
+ 10
69
+ </b>
70
+
71
+ of
72
+
73
+ <b>
74
+ 0
75
+ </b>
76
+
77
+ </span>
78
+ <span
79
+ class="pf-v6-c-menu-toggle__controls"
80
+ >
81
+ <span
82
+ class="pf-v6-c-menu-toggle__toggle-icon"
86
83
  >
87
- <path
88
- d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
89
- />
90
- </svg>
84
+ <svg
85
+ aria-hidden="true"
86
+ class="pf-v6-svg"
87
+ fill="currentColor"
88
+ height="1em"
89
+ role="img"
90
+ viewBox="0 0 320 512"
91
+ width="1em"
92
+ >
93
+ <path
94
+ d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
95
+ />
96
+ </svg>
97
+ </span>
91
98
  </span>
92
- </span>
93
- </button>
99
+ </button>
100
+ </div>
94
101
  <nav
95
102
  aria-label="Pagination"
96
103
  class="pf-v6-c-pagination__nav"
@@ -109,19 +116,23 @@ exports[`DataViewToolbar component should render correctly 1`] = `
109
116
  disabled=""
110
117
  type="button"
111
118
  >
112
- <svg
113
- aria-hidden="true"
114
- class="pf-v6-svg"
115
- fill="currentColor"
116
- height="1em"
117
- role="img"
118
- viewBox="0 0 448 512"
119
- width="1em"
119
+ <span
120
+ class="pf-v6-c-button__icon"
120
121
  >
121
- <path
122
- d="M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"
123
- />
124
- </svg>
122
+ <svg
123
+ aria-hidden="true"
124
+ class="pf-v6-svg"
125
+ fill="currentColor"
126
+ height="1em"
127
+ role="img"
128
+ viewBox="0 0 448 512"
129
+ width="1em"
130
+ >
131
+ <path
132
+ d="M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"
133
+ />
134
+ </svg>
135
+ </span>
125
136
  </button>
126
137
  </div>
127
138
  <div
@@ -138,19 +149,23 @@ exports[`DataViewToolbar component should render correctly 1`] = `
138
149
  disabled=""
139
150
  type="button"
140
151
  >
141
- <svg
142
- aria-hidden="true"
143
- class="pf-v6-svg"
144
- fill="currentColor"
145
- height="1em"
146
- role="img"
147
- viewBox="0 0 256 512"
148
- width="1em"
152
+ <span
153
+ class="pf-v6-c-button__icon"
149
154
  >
150
- <path
151
- d="M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"
152
- />
153
- </svg>
155
+ <svg
156
+ aria-hidden="true"
157
+ class="pf-v6-svg"
158
+ fill="currentColor"
159
+ height="1em"
160
+ role="img"
161
+ viewBox="0 0 256 512"
162
+ width="1em"
163
+ >
164
+ <path
165
+ d="M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"
166
+ />
167
+ </svg>
168
+ </span>
154
169
  </button>
155
170
  </div>
156
171
  <div
@@ -185,19 +200,23 @@ exports[`DataViewToolbar component should render correctly 1`] = `
185
200
  data-ouia-safe="true"
186
201
  type="button"
187
202
  >
188
- <svg
189
- aria-hidden="true"
190
- class="pf-v6-svg"
191
- fill="currentColor"
192
- height="1em"
193
- role="img"
194
- viewBox="0 0 256 512"
195
- width="1em"
203
+ <span
204
+ class="pf-v6-c-button__icon"
196
205
  >
197
- <path
198
- d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"
199
- />
200
- </svg>
206
+ <svg
207
+ aria-hidden="true"
208
+ class="pf-v6-svg"
209
+ fill="currentColor"
210
+ height="1em"
211
+ role="img"
212
+ viewBox="0 0 256 512"
213
+ width="1em"
214
+ >
215
+ <path
216
+ d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"
217
+ />
218
+ </svg>
219
+ </span>
201
220
  </button>
202
221
  </div>
203
222
  <div
@@ -213,19 +232,23 @@ exports[`DataViewToolbar component should render correctly 1`] = `
213
232
  data-ouia-safe="true"
214
233
  type="button"
215
234
  >
216
- <svg
217
- aria-hidden="true"
218
- class="pf-v6-svg"
219
- fill="currentColor"
220
- height="1em"
221
- role="img"
222
- viewBox="0 0 448 512"
223
- width="1em"
235
+ <span
236
+ class="pf-v6-c-button__icon"
224
237
  >
225
- <path
226
- d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"
227
- />
228
- </svg>
238
+ <svg
239
+ aria-hidden="true"
240
+ class="pf-v6-svg"
241
+ fill="currentColor"
242
+ height="1em"
243
+ role="img"
244
+ viewBox="0 0 448 512"
245
+ width="1em"
246
+ >
247
+ <path
248
+ d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"
249
+ />
250
+ </svg>
251
+ </span>
229
252
  </button>
230
253
  </div>
231
254
  </nav>
@@ -240,6 +263,28 @@ exports[`DataViewToolbar component should render correctly 1`] = `
240
263
  <div
241
264
  class="pf-v6-c-toolbar__group"
242
265
  />
266
+ <div
267
+ class="pf-v6-c-toolbar__group pf-m-action-group-inline"
268
+ >
269
+ <div
270
+ class="pf-v6-c-toolbar__item"
271
+ >
272
+ <button
273
+ aria-disabled="false"
274
+ class="pf-v6-c-button pf-m-link pf-m-inline"
275
+ data-ouia-component-id="DataViewToolbar-clear-all-filters"
276
+ data-ouia-component-type="PF6/Button"
277
+ data-ouia-safe="true"
278
+ type="button"
279
+ >
280
+ <span
281
+ class="pf-v6-c-button__text"
282
+ >
283
+ Clear filters
284
+ </span>
285
+ </button>
286
+ </div>
287
+ </div>
243
288
  </div>
244
289
  </div>
245
290
  </div>
@@ -286,51 +331,58 @@ exports[`DataViewToolbar component should render correctly 1`] = `
286
331
  </b>
287
332
 
288
333
  </div>
289
- <button
290
- aria-expanded="false"
291
- aria-haspopup="listbox"
292
- class="pf-v6-c-menu-toggle pf-m-plain pf-m-text"
293
- id="options-menu-top-toggle"
294
- type="button"
334
+ <div
335
+ class="pf-v6-c-pagination__page-menu"
295
336
  >
296
- <span
297
- class="pf-v6-c-menu-toggle__text"
298
- >
299
- <b>
300
- 1
301
- -
302
- 10
303
- </b>
304
-
305
- of
306
-
307
- <b>
308
- 0
309
- </b>
310
-
311
- </span>
312
- <span
313
- class="pf-v6-c-menu-toggle__controls"
337
+ <button
338
+ aria-expanded="false"
339
+ aria-haspopup="listbox"
340
+ class="pf-v6-c-menu-toggle pf-m-plain pf-m-text"
341
+ data-ouia-component-id="OUIA-Generated-MenuToggle-plainText-1"
342
+ data-ouia-component-type="PF6/MenuToggle"
343
+ data-ouia-safe="true"
344
+ id="options-menu-top-toggle"
345
+ type="button"
314
346
  >
315
347
  <span
316
- class="pf-v6-c-menu-toggle__toggle-icon"
348
+ class="pf-v6-c-menu-toggle__text"
317
349
  >
318
- <svg
319
- aria-hidden="true"
320
- class="pf-v6-svg"
321
- fill="currentColor"
322
- height="1em"
323
- role="img"
324
- viewBox="0 0 320 512"
325
- width="1em"
350
+ <b>
351
+ 1
352
+ -
353
+ 10
354
+ </b>
355
+
356
+ of
357
+
358
+ <b>
359
+ 0
360
+ </b>
361
+
362
+ </span>
363
+ <span
364
+ class="pf-v6-c-menu-toggle__controls"
365
+ >
366
+ <span
367
+ class="pf-v6-c-menu-toggle__toggle-icon"
326
368
  >
327
- <path
328
- d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
329
- />
330
- </svg>
369
+ <svg
370
+ aria-hidden="true"
371
+ class="pf-v6-svg"
372
+ fill="currentColor"
373
+ height="1em"
374
+ role="img"
375
+ viewBox="0 0 320 512"
376
+ width="1em"
377
+ >
378
+ <path
379
+ d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
380
+ />
381
+ </svg>
382
+ </span>
331
383
  </span>
332
- </span>
333
- </button>
384
+ </button>
385
+ </div>
334
386
  <nav
335
387
  aria-label="Pagination"
336
388
  class="pf-v6-c-pagination__nav"
@@ -349,19 +401,23 @@ exports[`DataViewToolbar component should render correctly 1`] = `
349
401
  disabled=""
350
402
  type="button"
351
403
  >
352
- <svg
353
- aria-hidden="true"
354
- class="pf-v6-svg"
355
- fill="currentColor"
356
- height="1em"
357
- role="img"
358
- viewBox="0 0 448 512"
359
- width="1em"
404
+ <span
405
+ class="pf-v6-c-button__icon"
360
406
  >
361
- <path
362
- d="M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"
363
- />
364
- </svg>
407
+ <svg
408
+ aria-hidden="true"
409
+ class="pf-v6-svg"
410
+ fill="currentColor"
411
+ height="1em"
412
+ role="img"
413
+ viewBox="0 0 448 512"
414
+ width="1em"
415
+ >
416
+ <path
417
+ d="M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"
418
+ />
419
+ </svg>
420
+ </span>
365
421
  </button>
366
422
  </div>
367
423
  <div
@@ -378,19 +434,23 @@ exports[`DataViewToolbar component should render correctly 1`] = `
378
434
  disabled=""
379
435
  type="button"
380
436
  >
381
- <svg
382
- aria-hidden="true"
383
- class="pf-v6-svg"
384
- fill="currentColor"
385
- height="1em"
386
- role="img"
387
- viewBox="0 0 256 512"
388
- width="1em"
437
+ <span
438
+ class="pf-v6-c-button__icon"
389
439
  >
390
- <path
391
- d="M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"
392
- />
393
- </svg>
440
+ <svg
441
+ aria-hidden="true"
442
+ class="pf-v6-svg"
443
+ fill="currentColor"
444
+ height="1em"
445
+ role="img"
446
+ viewBox="0 0 256 512"
447
+ width="1em"
448
+ >
449
+ <path
450
+ d="M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"
451
+ />
452
+ </svg>
453
+ </span>
394
454
  </button>
395
455
  </div>
396
456
  <div
@@ -425,19 +485,23 @@ exports[`DataViewToolbar component should render correctly 1`] = `
425
485
  data-ouia-safe="true"
426
486
  type="button"
427
487
  >
428
- <svg
429
- aria-hidden="true"
430
- class="pf-v6-svg"
431
- fill="currentColor"
432
- height="1em"
433
- role="img"
434
- viewBox="0 0 256 512"
435
- width="1em"
488
+ <span
489
+ class="pf-v6-c-button__icon"
436
490
  >
437
- <path
438
- d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"
439
- />
440
- </svg>
491
+ <svg
492
+ aria-hidden="true"
493
+ class="pf-v6-svg"
494
+ fill="currentColor"
495
+ height="1em"
496
+ role="img"
497
+ viewBox="0 0 256 512"
498
+ width="1em"
499
+ >
500
+ <path
501
+ d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"
502
+ />
503
+ </svg>
504
+ </span>
441
505
  </button>
442
506
  </div>
443
507
  <div
@@ -453,19 +517,23 @@ exports[`DataViewToolbar component should render correctly 1`] = `
453
517
  data-ouia-safe="true"
454
518
  type="button"
455
519
  >
456
- <svg
457
- aria-hidden="true"
458
- class="pf-v6-svg"
459
- fill="currentColor"
460
- height="1em"
461
- role="img"
462
- viewBox="0 0 448 512"
463
- width="1em"
520
+ <span
521
+ class="pf-v6-c-button__icon"
464
522
  >
465
- <path
466
- d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"
467
- />
468
- </svg>
523
+ <svg
524
+ aria-hidden="true"
525
+ class="pf-v6-svg"
526
+ fill="currentColor"
527
+ height="1em"
528
+ role="img"
529
+ viewBox="0 0 448 512"
530
+ width="1em"
531
+ >
532
+ <path
533
+ d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"
534
+ />
535
+ </svg>
536
+ </span>
469
537
  </button>
470
538
  </div>
471
539
  </nav>
@@ -480,6 +548,28 @@ exports[`DataViewToolbar component should render correctly 1`] = `
480
548
  <div
481
549
  class="pf-v6-c-toolbar__group"
482
550
  />
551
+ <div
552
+ class="pf-v6-c-toolbar__group pf-m-action-group-inline"
553
+ >
554
+ <div
555
+ class="pf-v6-c-toolbar__item"
556
+ >
557
+ <button
558
+ aria-disabled="false"
559
+ class="pf-v6-c-button pf-m-link pf-m-inline"
560
+ data-ouia-component-id="DataViewToolbar-clear-all-filters"
561
+ data-ouia-component-type="PF6/Button"
562
+ data-ouia-safe="true"
563
+ type="button"
564
+ >
565
+ <span
566
+ class="pf-v6-c-button__text"
567
+ >
568
+ Clear filters
569
+ </span>
570
+ </button>
571
+ </div>
572
+ </div>
483
573
  </div>
484
574
  </div>
485
575
  </div>,
@@ -0,0 +1,62 @@
1
+ import '@testing-library/jest-dom';
2
+ import { renderHook, act } from '@testing-library/react';
3
+ import { useDataViewFilters, UseDataViewFiltersProps } from './filters';
4
+
5
+ describe('useDataViewFilters', () => {
6
+ const initialFilters = { search: 'test', tags: [ 'tag1', 'tag2' ] };
7
+
8
+ it('should initialize with provided initial filters', () => {
9
+ const { result } = renderHook(() => useDataViewFilters({ initialFilters }));
10
+ expect(result.current.filters).toEqual(initialFilters);
11
+ });
12
+
13
+ it('should initialize with empty filters if no initialFilters provided', () => {
14
+ const { result } = renderHook(() => useDataViewFilters({}));
15
+ expect(result.current.filters).toEqual({});
16
+ });
17
+
18
+ it('should set filters correctly', () => {
19
+ const { result } = renderHook(() => useDataViewFilters({ initialFilters }));
20
+ const newFilters = { search: 'new search' };
21
+ act(() => result.current.onSetFilters(newFilters));
22
+
23
+ expect(result.current.filters).toEqual({ ...initialFilters, ...newFilters });
24
+ });
25
+
26
+ it('should delete specific filters without removing keys', () => {
27
+ const { result } = renderHook(() => useDataViewFilters({ initialFilters }));
28
+ const filtersToDelete = { search: 'test' };
29
+ act(() => result.current.onDeleteFilters(filtersToDelete));
30
+
31
+ expect(result.current.filters).toEqual({ search: '', tags: [ 'tag1', 'tag2' ] });
32
+ });
33
+
34
+ it('should clear all filters', () => {
35
+ const { result } = renderHook(() => useDataViewFilters({ initialFilters }));
36
+ act(() => result.current.clearAllFilters());
37
+
38
+ expect(result.current.filters).toEqual({ search: '', tags: [] });
39
+ });
40
+
41
+ it('should sync with URL search params if isUrlSyncEnabled', () => {
42
+ const searchParams = new URLSearchParams();
43
+ const setSearchParams = jest.fn();
44
+ const props: UseDataViewFiltersProps<typeof initialFilters> = {
45
+ initialFilters,
46
+ searchParams,
47
+ setSearchParams,
48
+ };
49
+
50
+ const { result } = renderHook(() => useDataViewFilters(props));
51
+ act(() => result.current.onSetFilters({ search: 'new search' }));
52
+
53
+ expect(setSearchParams).toHaveBeenCalled();
54
+ });
55
+
56
+ it('should reset filters to default values when clearAllFilters is called', () => {
57
+ const { result } = renderHook(() => useDataViewFilters({ initialFilters }));
58
+ act(() => result.current.clearAllFilters());
59
+
60
+ expect(result.current.filters).toEqual({ search: '', tags: [] });
61
+ });
62
+ });