@patternfly/react-core 4.243.0 → 4.244.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 (263) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/esm/components/Alert/Alert.d.ts +41 -34
  3. package/dist/esm/components/Alert/Alert.d.ts.map +1 -1
  4. package/dist/esm/components/Alert/Alert.js.map +1 -1
  5. package/dist/esm/components/Alert/AlertActionCloseButton.d.ts +8 -5
  6. package/dist/esm/components/Alert/AlertActionCloseButton.d.ts.map +1 -1
  7. package/dist/esm/components/Alert/AlertActionCloseButton.js.map +1 -1
  8. package/dist/esm/components/Alert/AlertActionLink.d.ts +5 -2
  9. package/dist/esm/components/Alert/AlertActionLink.d.ts.map +1 -1
  10. package/dist/esm/components/Alert/AlertActionLink.js.map +1 -1
  11. package/dist/esm/components/Alert/AlertIcon.d.ts +4 -4
  12. package/dist/esm/components/Alert/AlertIcon.d.ts.map +1 -1
  13. package/dist/esm/components/Alert/AlertToggleExpandButton.d.ts +5 -5
  14. package/dist/esm/components/Alert/AlertToggleExpandButton.d.ts.map +1 -1
  15. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts +34 -28
  16. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  17. package/dist/esm/components/CalendarMonth/CalendarMonth.js +1 -0
  18. package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
  19. package/dist/esm/components/DatePicker/DatePicker.d.ts +43 -36
  20. package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
  21. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  22. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts +34 -24
  23. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  24. package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
  25. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts +10 -5
  26. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  27. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  28. package/dist/esm/components/FileUpload/FileUpload.d.ts +53 -47
  29. package/dist/esm/components/FileUpload/FileUpload.d.ts.map +1 -1
  30. package/dist/esm/components/FileUpload/FileUpload.js.map +1 -1
  31. package/dist/esm/components/FileUpload/FileUploadField.d.ts +51 -46
  32. package/dist/esm/components/FileUpload/FileUploadField.d.ts.map +1 -1
  33. package/dist/esm/components/FileUpload/FileUploadField.js.map +1 -1
  34. package/dist/esm/components/Modal/Modal.d.ts +57 -48
  35. package/dist/esm/components/Modal/Modal.d.ts.map +1 -1
  36. package/dist/esm/components/Modal/Modal.js.map +1 -1
  37. package/dist/esm/components/Modal/ModalBox.d.ts +12 -12
  38. package/dist/esm/components/Modal/ModalBox.d.ts.map +1 -1
  39. package/dist/esm/components/Modal/ModalBoxBody.d.ts +2 -2
  40. package/dist/esm/components/Modal/ModalBoxBody.d.ts.map +1 -1
  41. package/dist/esm/components/Modal/ModalBoxCloseButton.d.ts +2 -2
  42. package/dist/esm/components/Modal/ModalBoxCloseButton.d.ts.map +1 -1
  43. package/dist/esm/components/Modal/ModalBoxDescription.d.ts +3 -3
  44. package/dist/esm/components/Modal/ModalBoxDescription.d.ts.map +1 -1
  45. package/dist/esm/components/Modal/ModalBoxFooter.d.ts +2 -2
  46. package/dist/esm/components/Modal/ModalBoxFooter.d.ts.map +1 -1
  47. package/dist/esm/components/Modal/ModalBoxHeader.d.ts +3 -3
  48. package/dist/esm/components/Modal/ModalBoxHeader.d.ts.map +1 -1
  49. package/dist/esm/components/Modal/ModalBoxTitle.d.ts +8 -9
  50. package/dist/esm/components/Modal/ModalBoxTitle.d.ts.map +1 -1
  51. package/dist/esm/components/Modal/ModalBoxTitle.js.map +1 -1
  52. package/dist/esm/components/Modal/ModalContent.d.ts +56 -48
  53. package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
  54. package/dist/esm/components/Modal/ModalContent.js.map +1 -1
  55. package/dist/esm/components/NotificationBadge/NotificationBadge.d.ts +17 -13
  56. package/dist/esm/components/NotificationBadge/NotificationBadge.d.ts.map +1 -1
  57. package/dist/esm/components/NotificationBadge/NotificationBadge.js +3 -3
  58. package/dist/esm/components/NotificationBadge/NotificationBadge.js.map +1 -1
  59. package/dist/esm/components/Pagination/Navigation.d.ts +33 -33
  60. package/dist/esm/components/Pagination/Navigation.d.ts.map +1 -1
  61. package/dist/esm/components/Pagination/OptionsToggle.d.ts +27 -26
  62. package/dist/esm/components/Pagination/OptionsToggle.d.ts.map +1 -1
  63. package/dist/esm/components/Pagination/OptionsToggle.js.map +1 -1
  64. package/dist/esm/components/Pagination/Pagination.d.ts +76 -65
  65. package/dist/esm/components/Pagination/Pagination.d.ts.map +1 -1
  66. package/dist/esm/components/Pagination/Pagination.js +1 -1
  67. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  68. package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts +22 -18
  69. package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
  70. package/dist/esm/components/Pagination/PaginationOptionsMenu.js.map +1 -1
  71. package/dist/esm/components/Pagination/ToggleTemplate.d.ts +3 -0
  72. package/dist/esm/components/Pagination/ToggleTemplate.d.ts.map +1 -1
  73. package/dist/esm/components/Pagination/ToggleTemplate.js.map +1 -1
  74. package/dist/esm/components/Popover/Popover.d.ts +88 -73
  75. package/dist/esm/components/Popover/Popover.d.ts.map +1 -1
  76. package/dist/esm/components/Popover/Popover.js.map +1 -1
  77. package/dist/esm/components/SearchInput/AdvancedSearchMenu.d.ts +27 -26
  78. package/dist/esm/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
  79. package/dist/esm/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
  80. package/dist/esm/components/SearchInput/SearchInput.d.ts +71 -60
  81. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  82. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  83. package/dist/esm/components/Slider/Slider.d.ts +45 -39
  84. package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
  85. package/dist/esm/components/Slider/Slider.js.map +1 -1
  86. package/dist/esm/components/Slider/SliderStep.d.ts +10 -10
  87. package/dist/esm/components/Slider/SliderStep.d.ts.map +1 -1
  88. package/dist/esm/components/TreeView/TreeView.d.ts +65 -53
  89. package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
  90. package/dist/esm/components/TreeView/TreeView.js.map +1 -1
  91. package/dist/esm/components/TreeView/TreeViewList.d.ts +4 -4
  92. package/dist/esm/components/TreeView/TreeViewList.d.ts.map +1 -1
  93. package/dist/esm/components/TreeView/TreeViewListItem.d.ts +46 -39
  94. package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  95. package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
  96. package/dist/esm/components/TreeView/TreeViewRoot.d.ts +4 -4
  97. package/dist/esm/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  98. package/dist/esm/components/TreeView/TreeViewSearch.d.ts +11 -8
  99. package/dist/esm/components/TreeView/TreeViewSearch.d.ts.map +1 -1
  100. package/dist/esm/components/TreeView/TreeViewSearch.js.map +1 -1
  101. package/dist/esm/helpers/Popper/Popper.js +8 -8
  102. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  103. package/dist/js/components/Alert/Alert.d.ts +41 -34
  104. package/dist/js/components/Alert/Alert.d.ts.map +1 -1
  105. package/dist/js/components/Alert/Alert.js.map +1 -1
  106. package/dist/js/components/Alert/AlertActionCloseButton.d.ts +8 -5
  107. package/dist/js/components/Alert/AlertActionCloseButton.d.ts.map +1 -1
  108. package/dist/js/components/Alert/AlertActionCloseButton.js.map +1 -1
  109. package/dist/js/components/Alert/AlertActionLink.d.ts +5 -2
  110. package/dist/js/components/Alert/AlertActionLink.d.ts.map +1 -1
  111. package/dist/js/components/Alert/AlertActionLink.js.map +1 -1
  112. package/dist/js/components/Alert/AlertIcon.d.ts +4 -4
  113. package/dist/js/components/Alert/AlertIcon.d.ts.map +1 -1
  114. package/dist/js/components/Alert/AlertToggleExpandButton.d.ts +5 -5
  115. package/dist/js/components/Alert/AlertToggleExpandButton.d.ts.map +1 -1
  116. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts +34 -28
  117. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  118. package/dist/js/components/CalendarMonth/CalendarMonth.js +1 -0
  119. package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
  120. package/dist/js/components/DatePicker/DatePicker.d.ts +43 -36
  121. package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
  122. package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
  123. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +34 -24
  124. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  125. package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
  126. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts +10 -5
  127. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  128. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  129. package/dist/js/components/FileUpload/FileUpload.d.ts +53 -47
  130. package/dist/js/components/FileUpload/FileUpload.d.ts.map +1 -1
  131. package/dist/js/components/FileUpload/FileUpload.js.map +1 -1
  132. package/dist/js/components/FileUpload/FileUploadField.d.ts +51 -46
  133. package/dist/js/components/FileUpload/FileUploadField.d.ts.map +1 -1
  134. package/dist/js/components/FileUpload/FileUploadField.js.map +1 -1
  135. package/dist/js/components/Modal/Modal.d.ts +57 -48
  136. package/dist/js/components/Modal/Modal.d.ts.map +1 -1
  137. package/dist/js/components/Modal/Modal.js.map +1 -1
  138. package/dist/js/components/Modal/ModalBox.d.ts +12 -12
  139. package/dist/js/components/Modal/ModalBox.d.ts.map +1 -1
  140. package/dist/js/components/Modal/ModalBoxBody.d.ts +2 -2
  141. package/dist/js/components/Modal/ModalBoxBody.d.ts.map +1 -1
  142. package/dist/js/components/Modal/ModalBoxCloseButton.d.ts +2 -2
  143. package/dist/js/components/Modal/ModalBoxCloseButton.d.ts.map +1 -1
  144. package/dist/js/components/Modal/ModalBoxDescription.d.ts +3 -3
  145. package/dist/js/components/Modal/ModalBoxDescription.d.ts.map +1 -1
  146. package/dist/js/components/Modal/ModalBoxFooter.d.ts +2 -2
  147. package/dist/js/components/Modal/ModalBoxFooter.d.ts.map +1 -1
  148. package/dist/js/components/Modal/ModalBoxHeader.d.ts +3 -3
  149. package/dist/js/components/Modal/ModalBoxHeader.d.ts.map +1 -1
  150. package/dist/js/components/Modal/ModalBoxTitle.d.ts +8 -9
  151. package/dist/js/components/Modal/ModalBoxTitle.d.ts.map +1 -1
  152. package/dist/js/components/Modal/ModalBoxTitle.js.map +1 -1
  153. package/dist/js/components/Modal/ModalContent.d.ts +56 -48
  154. package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
  155. package/dist/js/components/Modal/ModalContent.js.map +1 -1
  156. package/dist/js/components/NotificationBadge/NotificationBadge.d.ts +17 -13
  157. package/dist/js/components/NotificationBadge/NotificationBadge.d.ts.map +1 -1
  158. package/dist/js/components/NotificationBadge/NotificationBadge.js +3 -3
  159. package/dist/js/components/NotificationBadge/NotificationBadge.js.map +1 -1
  160. package/dist/js/components/Pagination/Navigation.d.ts +33 -33
  161. package/dist/js/components/Pagination/Navigation.d.ts.map +1 -1
  162. package/dist/js/components/Pagination/OptionsToggle.d.ts +27 -26
  163. package/dist/js/components/Pagination/OptionsToggle.d.ts.map +1 -1
  164. package/dist/js/components/Pagination/OptionsToggle.js.map +1 -1
  165. package/dist/js/components/Pagination/Pagination.d.ts +76 -65
  166. package/dist/js/components/Pagination/Pagination.d.ts.map +1 -1
  167. package/dist/js/components/Pagination/Pagination.js +1 -1
  168. package/dist/js/components/Pagination/Pagination.js.map +1 -1
  169. package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts +22 -18
  170. package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
  171. package/dist/js/components/Pagination/PaginationOptionsMenu.js.map +1 -1
  172. package/dist/js/components/Pagination/ToggleTemplate.d.ts +3 -0
  173. package/dist/js/components/Pagination/ToggleTemplate.d.ts.map +1 -1
  174. package/dist/js/components/Pagination/ToggleTemplate.js.map +1 -1
  175. package/dist/js/components/Popover/Popover.d.ts +88 -73
  176. package/dist/js/components/Popover/Popover.d.ts.map +1 -1
  177. package/dist/js/components/Popover/Popover.js.map +1 -1
  178. package/dist/js/components/SearchInput/AdvancedSearchMenu.d.ts +27 -26
  179. package/dist/js/components/SearchInput/AdvancedSearchMenu.d.ts.map +1 -1
  180. package/dist/js/components/SearchInput/AdvancedSearchMenu.js.map +1 -1
  181. package/dist/js/components/SearchInput/SearchInput.d.ts +71 -60
  182. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  183. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  184. package/dist/js/components/Slider/Slider.d.ts +45 -39
  185. package/dist/js/components/Slider/Slider.d.ts.map +1 -1
  186. package/dist/js/components/Slider/Slider.js.map +1 -1
  187. package/dist/js/components/Slider/SliderStep.d.ts +10 -10
  188. package/dist/js/components/Slider/SliderStep.d.ts.map +1 -1
  189. package/dist/js/components/TreeView/TreeView.d.ts +65 -53
  190. package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
  191. package/dist/js/components/TreeView/TreeView.js.map +1 -1
  192. package/dist/js/components/TreeView/TreeViewList.d.ts +4 -4
  193. package/dist/js/components/TreeView/TreeViewList.d.ts.map +1 -1
  194. package/dist/js/components/TreeView/TreeViewListItem.d.ts +46 -39
  195. package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  196. package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
  197. package/dist/js/components/TreeView/TreeViewRoot.d.ts +4 -4
  198. package/dist/js/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  199. package/dist/js/components/TreeView/TreeViewSearch.d.ts +11 -8
  200. package/dist/js/components/TreeView/TreeViewSearch.d.ts.map +1 -1
  201. package/dist/js/components/TreeView/TreeViewSearch.js.map +1 -1
  202. package/dist/js/helpers/Popper/Popper.js +8 -8
  203. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  204. package/dist/umd/react-core.min.css +3498 -3498
  205. package/dist/umd/react-core.min.js +2 -2
  206. package/package.json +2 -2
  207. package/src/components/Alert/Alert.tsx +42 -34
  208. package/src/components/Alert/AlertActionCloseButton.tsx +9 -5
  209. package/src/components/Alert/AlertActionLink.tsx +6 -2
  210. package/src/components/Alert/AlertIcon.tsx +4 -4
  211. package/src/components/Alert/AlertToggleExpandButton.tsx +5 -5
  212. package/src/components/Badge/__tests__/Badge.test.tsx +45 -8
  213. package/src/components/Badge/__tests__/__snapshots__/Badge.test.tsx.snap +2 -12
  214. package/src/components/CalendarMonth/CalendarMonth.tsx +36 -28
  215. package/src/components/DatePicker/DatePicker.tsx +45 -36
  216. package/src/components/ExpandableSection/ExpandableSection.tsx +35 -24
  217. package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +11 -5
  218. package/src/components/FileUpload/FileUpload.tsx +56 -49
  219. package/src/components/FileUpload/FileUploadField.tsx +56 -50
  220. package/src/components/Modal/Modal.tsx +57 -48
  221. package/src/components/Modal/ModalBox.tsx +12 -12
  222. package/src/components/Modal/ModalBoxBody.tsx +2 -2
  223. package/src/components/Modal/ModalBoxCloseButton.tsx +2 -2
  224. package/src/components/Modal/ModalBoxDescription.tsx +3 -3
  225. package/src/components/Modal/ModalBoxFooter.tsx +2 -2
  226. package/src/components/Modal/ModalBoxHeader.tsx +3 -3
  227. package/src/components/Modal/ModalBoxTitle.tsx +8 -9
  228. package/src/components/Modal/ModalContent.tsx +56 -48
  229. package/src/components/Modal/examples/Modal.md +1 -3
  230. package/src/components/NotificationBadge/NotificationBadge.tsx +22 -15
  231. package/src/components/NotificationBadge/__tests__/NotificationBadge.test.tsx +25 -1
  232. package/src/components/NotificationBadge/__tests__/__snapshots__/NotificationBadge.test.tsx.snap +5 -0
  233. package/src/components/NotificationBadge/examples/NotificationBadge.md +16 -3
  234. package/src/components/NotificationBadge/examples/NotificationBadgeBasic.tsx +26 -13
  235. package/src/components/NotificationBadge/examples/NotificationBadgeWithCount.tsx +28 -18
  236. package/src/components/NumberInput/examples/NumberInput.md +9 -448
  237. package/src/components/NumberInput/examples/NumberInputCustomStep.tsx +29 -0
  238. package/src/components/NumberInput/examples/NumberInputCustomStepAndThreshold.tsx +52 -0
  239. package/src/components/NumberInput/examples/NumberInputDefault.tsx +34 -0
  240. package/src/components/NumberInput/examples/NumberInputDisabled.tsx +40 -0
  241. package/src/components/NumberInput/examples/NumberInputUnit.tsx +57 -0
  242. package/src/components/NumberInput/examples/NumberInputUnitThreshold.tsx +55 -0
  243. package/src/components/NumberInput/examples/NumberInputVaryingSizes.tsx +80 -0
  244. package/src/components/NumberInput/examples/{WithStatus.tsx → NumberInputWithStatus.tsx} +4 -3
  245. package/src/components/Pagination/Navigation.tsx +33 -33
  246. package/src/components/Pagination/OptionsToggle.tsx +27 -26
  247. package/src/components/Pagination/Pagination.tsx +79 -65
  248. package/src/components/Pagination/PaginationOptionsMenu.tsx +22 -18
  249. package/src/components/Pagination/ToggleTemplate.tsx +4 -0
  250. package/src/components/Popover/Popover.tsx +89 -73
  251. package/src/components/SearchInput/AdvancedSearchMenu.tsx +29 -28
  252. package/src/components/SearchInput/SearchInput.tsx +76 -62
  253. package/src/components/Slider/Slider.tsx +47 -41
  254. package/src/components/Slider/SliderStep.tsx +10 -10
  255. package/src/components/TreeView/TreeView.tsx +67 -53
  256. package/src/components/TreeView/TreeViewList.tsx +4 -4
  257. package/src/components/TreeView/TreeViewListItem.tsx +46 -39
  258. package/src/components/TreeView/TreeViewRoot.tsx +4 -4
  259. package/src/components/TreeView/TreeViewSearch.tsx +12 -8
  260. package/src/demos/Masthead.md +9 -193
  261. package/src/demos/NotificationDrawer/NotificationDrawer.md +2 -0
  262. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +305 -0
  263. package/src/helpers/Popper/Popper.tsx +8 -8
@@ -0,0 +1,55 @@
1
+ import React from 'react';
2
+ import { NumberInput } from '@patternfly/react-core';
3
+
4
+ export const NumberInputUnitThreshold: React.FunctionComponent = () => {
5
+ const [value, setValue] = React.useState(0);
6
+ const minValue = 0;
7
+ const maxValue = 10;
8
+
9
+ const normalizeBetween = (value, min, max) => {
10
+ if (min !== undefined && max !== undefined) {
11
+ return Math.max(Math.min(value, max), min);
12
+ } else if (value <= min) {
13
+ return min;
14
+ } else if (value >= max) {
15
+ return max;
16
+ }
17
+ return value;
18
+ };
19
+
20
+ const onMinus = () => {
21
+ const newValue = normalizeBetween(value - 1, minValue, maxValue);
22
+ setValue(newValue);
23
+ };
24
+
25
+ const onChange = (event: React.FormEvent<HTMLInputElement>) => {
26
+ const target = event.target as HTMLInputElement;
27
+ const newValue = normalizeBetween(isNaN(+target.value) ? 0 : Number(target.value), minValue, maxValue);
28
+ setValue(newValue);
29
+ };
30
+
31
+ const onPlus = () => {
32
+ const newValue = normalizeBetween(value + 1, minValue, maxValue);
33
+ setValue(newValue);
34
+ };
35
+
36
+ return (
37
+ <React.Fragment>
38
+ With a minimum value of 0 and maximum value of 10
39
+ <br />
40
+ <NumberInput
41
+ value={value}
42
+ min={minValue}
43
+ max={maxValue}
44
+ onMinus={onMinus}
45
+ onChange={onChange}
46
+ onPlus={onPlus}
47
+ inputName="input"
48
+ inputAriaLabel="number input"
49
+ minusBtnAriaLabel="minus"
50
+ plusBtnAriaLabel="plus"
51
+ unit="%"
52
+ />
53
+ </React.Fragment>
54
+ );
55
+ };
@@ -0,0 +1,80 @@
1
+ import React from 'react';
2
+ import { NumberInput } from '@patternfly/react-core';
3
+
4
+ export const NumberInputVaryingSizes: React.FunctionComponent = () => {
5
+ const [input1Value, setInput1Value] = React.useState(1);
6
+ const [input2Value, setInput2Value] = React.useState(1234567890);
7
+ const [input3Value, setInput3Value] = React.useState(5);
8
+ const [input4Value, setInput4Value] = React.useState(12345);
9
+
10
+ const onChange = (
11
+ event: React.FormEvent<HTMLInputElement>,
12
+ updateFunction: React.Dispatch<React.SetStateAction<number>>
13
+ ) => {
14
+ const target = event.target as HTMLInputElement;
15
+ updateFunction(Number(target.value));
16
+ };
17
+
18
+ const onMinus = (value, updateFunction: React.Dispatch<React.SetStateAction<number>>) => {
19
+ updateFunction(value - 1);
20
+ };
21
+
22
+ const onPlus = (value, updateFunction: React.Dispatch<React.SetStateAction<number>>) => {
23
+ updateFunction(value + 1);
24
+ };
25
+
26
+ return (
27
+ <React.Fragment>
28
+ <NumberInput
29
+ value={input1Value}
30
+ onMinus={() => onMinus(input1Value, setInput1Value)}
31
+ onChange={event => onChange(event, setInput1Value)}
32
+ onPlus={() => onPlus(input1Value, setInput1Value)}
33
+ inputName="input1"
34
+ inputAriaLabel="number input 1"
35
+ minusBtnAriaLabel="input 2 minus"
36
+ plusBtnAriaLabel="input 2 plus"
37
+ widthChars={1}
38
+ />
39
+ <br />
40
+ <br />
41
+ <NumberInput
42
+ value={input2Value}
43
+ onMinus={() => onMinus(input2Value, setInput2Value)}
44
+ onChange={event => onChange(event, setInput2Value)}
45
+ onPlus={() => onPlus(input2Value, setInput2Value)}
46
+ inputName="input2"
47
+ inputAriaLabel="number input 2"
48
+ minusBtnAriaLabel="input 2 minus"
49
+ plusBtnAriaLabel="input 2 plus"
50
+ widthChars={10}
51
+ />
52
+ <br />
53
+ <br />
54
+ <NumberInput
55
+ value={input3Value}
56
+ onMinus={() => onMinus(input3Value, setInput3Value)}
57
+ onChange={event => onChange(event, setInput3Value)}
58
+ onPlus={() => onPlus(input3Value, setInput3Value)}
59
+ inputName="input3"
60
+ inputAriaLabel="number input 3"
61
+ minusBtnAriaLabel="input 3 minus"
62
+ plusBtnAriaLabel="input 3 plus"
63
+ widthChars={5}
64
+ />
65
+ <br />
66
+ <br />
67
+ <NumberInput
68
+ value={input4Value}
69
+ onMinus={() => onMinus(input4Value, setInput4Value)}
70
+ onChange={event => onChange(event, setInput4Value)}
71
+ onPlus={() => onPlus(input4Value, setInput4Value)}
72
+ inputName="input4"
73
+ inputAriaLabel="number input 4"
74
+ minusBtnAriaLabel="input 4 minus"
75
+ plusBtnAriaLabel="input 4 plus"
76
+ widthChars={5}
77
+ />
78
+ </React.Fragment>
79
+ );
80
+ };
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { NumberInput, ValidatedOptions } from '@patternfly/react-core';
3
3
 
4
- export const WithStatus: React.FunctionComponent = () => {
4
+ export const NumberInputWithStatus: React.FunctionComponent = () => {
5
5
  const max = 10;
6
6
  const min = 0;
7
7
 
@@ -20,8 +20,9 @@ export const WithStatus: React.FunctionComponent = () => {
20
20
  validate(newVal);
21
21
  };
22
22
 
23
- const onChange = event => {
24
- const newVal = isNaN(event.target.value) ? 5 : Number(event.target.value);
23
+ const onChange = (event: React.FormEvent<HTMLInputElement>) => {
24
+ const target = event.target as HTMLInputElement;
25
+ const newVal = isNaN(+target.value) ? 5 : Number(target.value);
25
26
  setValue(newVal);
26
27
  validate(newVal);
27
28
  };
@@ -11,52 +11,52 @@ import { pluralize, PickOptional } from '../../helpers';
11
11
  import { KeyTypes } from '../../helpers/constants';
12
12
 
13
13
  export interface NavigationProps extends React.HTMLProps<HTMLElement> {
14
- /** Additional classes for the container */
14
+ /** Additional classes for the pagination navigation container. */
15
15
  className?: string;
16
- /** Flag indicating if the pagination is disabled */
17
- isDisabled?: boolean;
18
- /** Flag indicating if the pagination is compact */
16
+ /** Accessible label for the input displaying the current page. */
17
+ currPage?: string;
18
+ /** The number of first page where pagination starts. */
19
+ firstPage?: number;
20
+ /** Flag indicating if the pagination is compact. */
19
21
  isCompact?: boolean;
22
+ /** Flag indicating if the pagination is disabled. */
23
+ isDisabled?: boolean;
20
24
  /** Total number of items. */
21
25
  itemCount?: number;
22
- /** The number of the last page */
26
+ /** The number of the last page. */
23
27
  lastPage?: number;
24
- /** The number of first page where pagination starts */
25
- firstPage?: number;
26
- /** The title of a page displayed beside the page number */
28
+ /** Label for the English word "of". */
29
+ ofWord?: string;
30
+ /** The number of the current page. */
31
+ page: React.ReactText;
32
+ /** The title of a page displayed beside the page number. */
27
33
  pagesTitle?: string;
28
- /** The title of a page displayed beside the page number (the plural form) */
34
+ /** The title of a page displayed beside the page number (the plural form). */
29
35
  pagesTitlePlural?: string;
30
- /** Accessible label for the button which moves to the last page */
31
- toLastPage?: string;
32
- /** Accessible label for the button which moves to the previous page */
33
- toPreviousPage?: string;
34
- /** Accessible label for the button which moves to the next page */
35
- toNextPage?: string;
36
- /** Accessible label for the button which moves to the first page */
37
- toFirstPage?: string;
38
- /** Accessible label for the input displaying the current page */
39
- currPage?: string;
40
- /** Accessible label for the pagination component */
36
+ /** Accessible label for the pagination component. */
41
37
  paginationTitle?: string;
42
- /** Accessible label for the English word "of" */
43
- ofWord?: string;
44
- /** The number of the current page */
45
- page: React.ReactText;
46
38
  /** Number of items per page. */
47
39
  perPage?: number;
48
- /** Function called when page is changed */
49
- onSetPage: OnSetPage;
50
- /** Function called when user clicks to navigate to next page */
51
- onNextClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
52
- /** Function called when user clicks to navigate to previous page */
53
- onPreviousClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
54
- /** Function called when user clicks to navigate to first page */
40
+ /** Accessible label for the button which moves to the first page. */
41
+ toFirstPage?: string;
42
+ /** Accessible label for the button which moves to the last page. */
43
+ toLastPage?: string;
44
+ /** Accessible label for the button which moves to the next page. */
45
+ toNextPage?: string;
46
+ /** Accessible label for the button which moves to the previous page. */
47
+ toPreviousPage?: string;
48
+ /** Function called when user clicks to navigate to first page. */
55
49
  onFirstClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
56
- /** Function called when user clicks to navigate to last page */
50
+ /** Function called when user clicks to navigate to last page. */
57
51
  onLastClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
58
- /** Function called when user inputs page number */
52
+ /** Function called when user clicks to navigate to next page. */
53
+ onNextClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
54
+ /** Function called when user clicks to navigate to previous page. */
55
+ onPreviousClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
56
+ /** Function called when user inputs page number. */
59
57
  onPageInput?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
58
+ /** Function called when page is changed. */
59
+ onSetPage: OnSetPage;
60
60
  }
61
61
 
62
62
  export interface NavigationState {
@@ -7,40 +7,41 @@ import { ToggleTemplateProps } from './ToggleTemplate';
7
7
  import { DropdownToggle } from '../Dropdown';
8
8
 
9
9
  export interface OptionsToggleProps extends React.HTMLProps<HTMLDivElement> {
10
- /** The type or title of the items being paginated */
11
- itemsTitle?: string;
12
- /** Accessible label for the options toggle */
13
- optionsToggle?: string;
14
- /** The title of the pagination options menu */
15
- itemsPerPageTitle?: string;
16
- /** The first index of the items being paginated */
10
+ /** The first index of the items being paginated. */
17
11
  firstIndex?: number;
18
- /** The last index of the items being paginated */
19
- lastIndex?: number;
20
- /** The total number of items being paginated */
12
+ /** Flag indicating if the options menu is disabled. */
13
+ isDisabled?: boolean;
14
+ /** Flag indicating if the options menu dropdown is open or not. */
15
+ isOpen?: boolean;
16
+ /** The total number of items being paginated. */
21
17
  itemCount?: number;
22
- /** Id added to the title of the pagination options menu */
23
- widgetId?: string;
24
- /** showToggle */
25
- showToggle?: boolean;
26
- /** Event function that fires when user clicks the options menu toggle */
18
+ /** The title of the pagination options menu. */
19
+ itemsPerPageTitle?: string;
20
+ /** The type or title of the items being paginated. */
21
+ itemsTitle?: string;
22
+ /** The last index of the items being paginated. */
23
+ lastIndex?: number;
24
+ /** Label for the English word "of". */
25
+ ofWord?: string;
26
+ /** Callback for toggle open on keyboard entry. */
27
+ onEnter?: () => void;
28
+ /** Event function that fires when user clicks the options menu toggle. */
27
29
  onToggle?: (isOpen: boolean) => void;
28
- /** Flag indicating if the options menu dropdown is open or not */
29
- isOpen?: boolean;
30
- /** Flag indicating if the options menu is disabled */
31
- isDisabled?: boolean;
30
+ /** Accessible label for the options toggle. */
31
+ optionsToggle?: string;
32
32
  /** */
33
33
  parentRef?: HTMLElement;
34
- /** This will be shown in pagination toggle span. You can use firstIndex, lastIndex, itemCount, itemsTitle props. */
35
- toggleTemplate?: ((props: ToggleTemplateProps) => React.ReactElement) | string;
36
- /** Callback for toggle open on keyboard entry */
37
- onEnter?: () => void;
38
- /** Label for the English word "of" */
39
- ofWord?: string;
40
- /** Component to be used for wrapping the toggle contents. Use 'button' when you want
34
+ /** Component to be used for wrapping the toggle contents. Use "button" when you want
41
35
  * all of the toggle text to be clickable.
42
36
  */
43
37
  perPageComponent?: 'div' | 'button';
38
+ /** Flag for indicating whether the toggle should be shown. */
39
+ showToggle?: boolean;
40
+ /** This will be shown in pagination toggle span. You can use firstIndex, lastIndex,
41
+ * itemCount, and/or itemsTitle props. */
42
+ toggleTemplate?: ((props: ToggleTemplateProps) => React.ReactElement) | string;
43
+ /** Id added to the title of the pagination options menu. */
44
+ widgetId?: string;
44
45
  }
45
46
 
46
47
  let toggleId = 0;
@@ -11,8 +11,8 @@ import widthChars from '@patternfly/react-tokens/dist/esm/c_pagination__nav_page
11
11
  import { PickOptional } from '../../helpers';
12
12
 
13
13
  export enum PaginationVariant {
14
- top = 'top',
15
- bottom = 'bottom'
14
+ bottom = 'bottom',
15
+ top = 'top'
16
16
  }
17
17
 
18
18
  const defaultPerPageOptions = [
@@ -34,40 +34,48 @@ const defaultPerPageOptions = [
34
34
  }
35
35
  ];
36
36
 
37
+ /** Properties to customize the content and behavior of the pagination dropdown options. These
38
+ * properties should be passed into the pagination component's perPageOptions property.
39
+ */
40
+
37
41
  export interface PerPageOptions {
38
- /** option title */
42
+ /** The text title of the option, which is rendered inside the pagination dropdown menu. */
39
43
  title?: string;
40
- /** option value */
44
+ /** The value of the option, which determines how many items are displayed per page. */
41
45
  value?: number;
42
46
  }
43
47
 
48
+ /** Properties to customize various pagination titles. The following properties should be
49
+ * passed into the pagination component's title property.
50
+ */
51
+
44
52
  export interface PaginationTitles {
45
- /** The title of a page displayed beside the page number */
46
- page?: string;
47
- /** The title of a page displayed beside the page number (plural form) */
48
- pages?: string;
49
- /** The type or title of the items being paginated */
53
+ /** Accessible label for the input displaying the current page. */
54
+ currPage?: string;
55
+ /** The type or title of the items being paginated. */
50
56
  items?: string;
51
- /** The title of the pagination options menu */
57
+ /** The title of the pagination options menu. */
52
58
  itemsPerPage?: string;
53
- /** The suffix to be displayed after each option on the options menu dropdown */
59
+ /** Label for the English word "of". */
60
+ ofWord?: string;
61
+ /** Accessible label for the options toggle. */
62
+ optionsToggle?: string;
63
+ /** The title of a page displayed beside the page number. */
64
+ page?: string;
65
+ /** The title of a page displayed beside the page number (plural form). */
66
+ pages?: string;
67
+ /** Accessible label for the pagination component. */
68
+ paginationTitle?: string;
69
+ /** The suffix to be displayed after each option on the options menu dropdown. */
54
70
  perPageSuffix?: string;
55
- /** Accessible label for the button which moves to the first page */
71
+ /** Accessible label for the button which moves to the first page. */
56
72
  toFirstPage?: string;
57
- /** Accessible label for the button which moves to the previous page */
58
- toPreviousPage?: string;
59
- /** Accessible label for the button which moves to the last page */
73
+ /** Accessible label for the button which moves to the last page. */
60
74
  toLastPage?: string;
61
- /** Accessible label for the button which moves to the next page */
75
+ /** Accessible label for the button which moves to the next page. */
62
76
  toNextPage?: string;
63
- /** Accessible label for the options toggle */
64
- optionsToggle?: string;
65
- /** Accessible label for the input displaying the current page */
66
- currPage?: string;
67
- /** Accessible label for the pagination component */
68
- paginationTitle?: string;
69
- /** Accessible label for the English word "of" */
70
- ofWord?: string;
77
+ /** Accessible label for the button which moves to the previous page. */
78
+ toPreviousPage?: string;
71
79
  }
72
80
 
73
81
  export type OnSetPage = (
@@ -86,65 +94,71 @@ export type OnPerPageSelect = (
86
94
  endIdx?: number
87
95
  ) => void;
88
96
 
97
+ /** The main pagination component. */
98
+
89
99
  export interface PaginationProps extends React.HTMLProps<HTMLDivElement>, OUIAProps {
90
- /** What should be rendered inside */
100
+ /** What should be rendered inside the pagination. */
91
101
  children?: React.ReactNode;
92
- /** Additional classes for the container. */
102
+ /** Additional classes for the pagination container. */
93
103
  className?: string;
94
- /** Total number of items. */
95
- itemCount?: number;
96
- /** Position where pagination is rendered. */
97
- variant?: 'top' | 'bottom' | PaginationVariant;
98
- /** Flag indicating if pagination is disabled */
99
- isDisabled?: boolean;
100
- /** Flag indicating if pagination is compact */
104
+ /** Indicate whether to show last full page of results when user selects perPage value
105
+ * greater than remaining rows.
106
+ */
107
+ defaultToFullPage?: boolean;
108
+ /** Direction of dropdown context menu. */
109
+ dropDirection?: 'up' | 'down';
110
+ /** Page to start at. */
111
+ firstPage?: number;
112
+ /** Flag indicating if pagination is compact. */
101
113
  isCompact?: boolean;
102
- /** Flag indicating if pagination should not be sticky on mobile */
114
+ /** Flag indicating if pagination is disabled. */
115
+ isDisabled?: boolean;
116
+ /** Flag indicating if pagination should not be sticky on mobile. */
103
117
  isStatic?: boolean;
104
- /** Flag indicating if pagination should stick to its position (based on variant) */
118
+ /** Flag indicating if pagination should stick to its position (based on variant). */
105
119
  isSticky?: boolean;
120
+ /** Total number of items. */
121
+ itemCount?: number;
122
+ /** Last index of items on current page. */
123
+ itemsEnd?: number;
124
+ /** First index of items on current page. */
125
+ itemsStart?: number;
126
+ /** Start index of rows to display, used in place of providing page. */
127
+ offset?: number;
128
+ /** Current page number. */
129
+ page?: number;
106
130
  /** Number of items per page. */
107
131
  perPage?: number;
108
- /** Array of the number of items per page options. */
132
+ /** Component to be used for wrapping the toggle contents. Use "button" when you want
133
+ * all of the toggle text to be clickable.
134
+ */
135
+ perPageComponent?: 'div' | 'button';
136
+ /** Array of the number of items per page options. */
109
137
  perPageOptions?: PerPageOptions[];
110
- /** Indicate whether to show last full page of results when user selects perPage value greater than remaining rows */
111
- defaultToFullPage?: boolean;
112
- /** Page we start at. */
113
- firstPage?: number;
114
- /** Current page number. */
115
- page?: number;
116
- /** Start index of rows to display, used in place of providing page */
117
- offset?: number;
118
- /** First index of items on current page. */
119
- itemsStart?: number;
120
- /** Last index of items on current page. */
121
- itemsEnd?: number;
122
- /** ID to ideintify widget on page. */
123
- widgetId?: string;
124
- /** Direction of dropdown context menu. */
125
- dropDirection?: 'up' | 'down';
126
- /** Object with titles to display in pagination. */
127
- titles?: PaginationTitles;
128
- /** This will be shown in pagination toggle span. You can use firstIndex, lastIndex, itemCount, itemsTitle, ofWord props. */
129
- toggleTemplate?: ((props: ToggleTemplateProps) => React.ReactElement) | string;
130
- /** Function called when user sets page. */
131
- onSetPage?: OnSetPage;
132
138
  /** Function called when user clicks on navigate to first page. */
133
139
  onFirstClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
134
- /** Function called when user clicks on navigate to previous page. */
135
- onPreviousClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
136
- /** Function called when user clicks on navigate to next page. */
137
- onNextClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
138
140
  /** Function called when user clicks on navigate to last page. */
139
141
  onLastClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
142
+ /** Function called when user clicks on navigate to next page. */
143
+ onNextClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
140
144
  /** Function called when user inputs page number. */
141
145
  onPageInput?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
142
146
  /** Function called when user selects number of items per page. */
143
147
  onPerPageSelect?: OnPerPageSelect;
144
- /** Component to be used for wrapping the toggle contents. Use 'button' when you want
145
- * all of the toggle text to be clickable.
148
+ /** Function called when user clicks on navigate to previous page. */
149
+ onPreviousClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
150
+ /** Function called when user sets page. */
151
+ onSetPage?: OnSetPage;
152
+ /** Object with titles to display in pagination. */
153
+ titles?: PaginationTitles;
154
+ /** This will be shown in pagination toggle span. You can use firstIndex, lastIndex,
155
+ * itemCount, itemsTitle, and/or ofWord props.
146
156
  */
147
- perPageComponent?: 'div' | 'button';
157
+ toggleTemplate?: ((props: ToggleTemplateProps) => React.ReactElement) | string;
158
+ /** Position where pagination is rendered. */
159
+ variant?: 'top' | 'bottom' | PaginationVariant;
160
+ /** Id to ideintify widget on page. */
161
+ widgetId?: string;
148
162
  }
149
163
 
150
164
  const handleInputWidth = (lastPage: number, node: HTMLDivElement) => {
@@ -8,43 +8,47 @@ import { ToggleTemplateProps, ToggleTemplate } from './ToggleTemplate';
8
8
  import { PerPageOptions, OnPerPageSelect } from './Pagination';
9
9
 
10
10
  export interface PaginationOptionsMenuProps extends React.HTMLProps<HTMLDivElement> {
11
- /** Custom class name added to the pagination options menu */
11
+ /** Custom class name added to the pagination options menu. */
12
12
  className?: string;
13
- /** Id added to the title of the Pagination options menu */
13
+ /** Id added to the title of the pagination options menu. */
14
14
  widgetId?: string;
15
- /** Flag indicating if pagination options menu is disabled */
15
+ /** Flag indicating if pagination options menu is disabled. */
16
16
  isDisabled?: boolean;
17
- /** Menu will open up or open down from the options menu toggle */
17
+ /** Menu will open up or open down from the options menu toggle. */
18
18
  dropDirection?: 'up' | 'down';
19
- /** Array of titles and values which will be the options on the options menu dropdown */
19
+ /** Array of titles and values which will be the options on the options menu dropdown. */
20
20
  perPageOptions?: PerPageOptions[];
21
- /** The title of the pagination options menu */
21
+ /** The title of the pagination options menu. */
22
22
  itemsPerPageTitle?: string;
23
- /** Current page number */
23
+ /** Current page number. */
24
24
  page?: number;
25
- /** The suffix to be displayed after each option on the options menu dropdown */
25
+ /** The suffix to be displayed after each option on the options menu dropdown. */
26
26
  perPageSuffix?: string;
27
- /** The type or title of the items being paginated */
27
+ /** The type or title of the items being paginated. */
28
28
  itemsTitle?: string;
29
- /** Accessible label for the options toggle */
29
+ /** Accessible label for the options toggle. */
30
30
  optionsToggle?: string;
31
- /** The total number of items being paginated */
31
+ /** The total number of items being paginated. */
32
32
  itemCount?: number;
33
- /** The first index of the items being paginated */
33
+ /** The first index of the items being paginated. */
34
34
  firstIndex?: number;
35
- /** The last index of the items being paginated */
35
+ /** The last index of the items being paginated. */
36
36
  lastIndex?: number;
37
- /** Flag to show last full page of results if perPage selected > remaining rows */
37
+ /** Flag to indicate whether to show last full page of results when user selects perPage
38
+ * value that is greater than remaining rows.
39
+ */
38
40
  defaultToFullPage?: boolean;
39
- /** The number of items to be displayed per page */
41
+ /** The number of items to be displayed per page. */
40
42
  perPage?: number;
41
- /** The number of the last page */
43
+ /** The number of the last page. */
42
44
  lastPage?: number;
43
- /** This will be shown in pagination toggle span. You can use firstIndex, lastIndex, itemCount, itemsTitle props. */
45
+ /** This will be shown in pagination toggle span. You can use firstIndex, lastIndex,
46
+ * itemCount, and/or itemsTitle props.
47
+ */
44
48
  toggleTemplate: ((props: ToggleTemplateProps) => React.ReactElement) | string;
45
49
  /** Function called when user selects number of items per page. */
46
50
  onPerPageSelect?: OnPerPageSelect;
47
- /** Label for the English word "of" */
51
+ /** Label for the English word "of". */
48
52
  ofWord?: string;
49
53
  /** Component to be used for wrapping the toggle contents. Use 'button' when you want
50
54
  * all of the toggle text to be clickable.
@@ -1,5 +1,9 @@
1
1
  import * as React from 'react';
2
2
 
3
+ /** Allows more customization of the pagination dropdown toggle. The following properties
4
+ * should be passed into the pagination component's toggleTemplate property.
5
+ */
6
+
3
7
  export interface ToggleTemplateProps {
4
8
  /** The first index of the items being paginated */
5
9
  firstIndex?: number;