@carbon/react 1.40.0 → 1.41.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 (260) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +1564 -872
  2. package/es/components/Accordion/Accordion.Skeleton.d.ts +0 -5
  3. package/es/components/Accordion/Accordion.Skeleton.js +0 -5
  4. package/es/components/Breadcrumb/BreadcrumbItem.js +3 -1
  5. package/es/components/Checkbox/Checkbox.js +3 -6
  6. package/es/components/CodeSnippet/CodeSnippet.js +5 -12
  7. package/es/components/ComboBox/ComboBox.d.ts +1 -5
  8. package/es/components/ComboBox/ComboBox.js +6 -20
  9. package/es/components/ComposedModal/ComposedModal.js +1 -5
  10. package/es/components/ComposedModal/ModalFooter.js +4 -9
  11. package/es/components/ComposedModal/ModalHeader.js +1 -4
  12. package/es/components/ContentSwitcher/ContentSwitcher.d.ts +3 -8
  13. package/es/components/ContentSwitcher/ContentSwitcher.js +7 -11
  14. package/es/components/Copy/Copy.js +4 -8
  15. package/es/components/CopyButton/CopyButton.js +8 -7
  16. package/es/components/DataTable/DataTable.d.ts +3 -39
  17. package/es/components/DataTable/DataTable.js +10 -18
  18. package/es/components/DataTable/Table.d.ts +0 -4
  19. package/es/components/DataTable/Table.js +4 -7
  20. package/es/components/DataTable/TableBatchAction.js +12 -5
  21. package/es/components/DataTable/TableBatchActions.js +1 -6
  22. package/es/components/DataTable/TableBody.d.ts +0 -3
  23. package/es/components/DataTable/TableBody.js +1 -3
  24. package/es/components/DataTable/TableExpandHeader.d.ts +1 -1
  25. package/es/components/DataTable/TableHeader.js +3 -8
  26. package/es/components/DataTable/TableSelectAll.d.ts +0 -3
  27. package/es/components/DataTable/TableSelectAll.js +1 -4
  28. package/es/components/DataTable/TableToolbar.d.ts +10 -0
  29. package/es/components/DataTable/TableToolbar.js +15 -7
  30. package/es/components/DataTable/TableToolbarMenu.js +2 -6
  31. package/es/components/DataTable/TableToolbarSearch.d.ts +2 -8
  32. package/es/components/DataTable/TableToolbarSearch.js +6 -11
  33. package/es/components/DataTable/tools/sorting.js +2 -2
  34. package/es/components/DatePicker/DatePicker.d.ts +4 -4
  35. package/es/components/DatePicker/DatePicker.js +9 -4
  36. package/es/components/DatePicker/plugins/fixEventsPlugin.js +6 -0
  37. package/es/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  38. package/es/components/DatePickerInput/DatePickerInput.js +12 -6
  39. package/es/components/Dropdown/Dropdown.js +6 -15
  40. package/es/components/FileUploader/FileUploader.d.ts +2 -11
  41. package/es/components/FileUploader/FileUploader.js +15 -19
  42. package/es/components/FileUploader/FileUploaderButton.js +2 -2
  43. package/es/components/FileUploader/FileUploaderDropContainer.d.ts +0 -7
  44. package/es/components/FileUploader/FileUploaderDropContainer.js +2 -8
  45. package/es/components/FileUploader/FileUploaderItem.d.ts +0 -4
  46. package/es/components/FileUploader/FileUploaderItem.js +12 -9
  47. package/es/components/FileUploader/Filename.d.ts +6 -10
  48. package/es/components/FileUploader/Filename.js +7 -11
  49. package/es/components/FormGroup/FormGroup.d.ts +0 -5
  50. package/es/components/FormGroup/FormGroup.js +3 -8
  51. package/es/components/FormItem/FormItem.d.ts +32 -0
  52. package/es/components/FormItem/index.d.ts +9 -0
  53. package/es/components/FormLabel/FormLabel.js +4 -1
  54. package/es/components/ListBox/ListBox.js +4 -8
  55. package/es/components/ListBox/ListBoxMenuIcon.js +1 -4
  56. package/es/components/ListBox/ListBoxMenuItem.js +4 -8
  57. package/es/components/ListBox/ListBoxSelection.d.ts +5 -5
  58. package/es/components/ListBox/ListBoxSelection.js +12 -13
  59. package/es/components/ListBox/next/ListBoxSelection.js +12 -13
  60. package/es/components/ListBox/next/ListBoxTrigger.js +3 -5
  61. package/es/components/ListItem/ListItem.d.ts +1 -1
  62. package/es/components/ListItem/ListItem.js +6 -2
  63. package/es/components/Menu/MenuItem.js +4 -1
  64. package/es/components/Modal/Modal.d.ts +137 -0
  65. package/es/components/Modal/Modal.js +39 -45
  66. package/es/components/Modal/index.d.ts +9 -0
  67. package/es/components/ModalWrapper/ModalWrapper.js +13 -19
  68. package/es/components/MultiSelect/FilterableMultiSelect.js +14 -28
  69. package/es/components/MultiSelect/MultiSelect.js +17 -33
  70. package/es/components/MultiSelect/MultiSelectPropTypes.js +2 -2
  71. package/es/components/MultiSelect/tools/sorting.js +2 -2
  72. package/es/components/Notification/Notification.d.ts +11 -29
  73. package/es/components/Notification/Notification.js +38 -57
  74. package/es/components/NumberInput/NumberInput.js +6 -2
  75. package/es/components/OverflowMenu/OverflowMenu.js +27 -33
  76. package/es/components/OverflowMenuItem/OverflowMenuItem.js +4 -1
  77. package/es/components/Pagination/experimental/PageSelector.js +3 -8
  78. package/es/components/Pagination/experimental/Pagination.js +16 -34
  79. package/es/components/ProgressIndicator/ProgressIndicator.js +7 -6
  80. package/es/components/RadioTile/RadioTile.js +6 -7
  81. package/es/components/Search/Search.Skeleton.d.ts +0 -3
  82. package/es/components/Search/Search.Skeleton.js +1 -4
  83. package/es/components/Select/Select.d.ts +2 -2
  84. package/es/components/Select/Select.js +13 -16
  85. package/es/components/SelectItem/SelectItem.d.ts +0 -6
  86. package/es/components/SelectItem/SelectItem.js +4 -10
  87. package/es/components/SelectItemGroup/SelectItemGroup.d.ts +0 -3
  88. package/es/components/SelectItemGroup/SelectItemGroup.js +1 -4
  89. package/es/components/SkeletonIcon/SkeletonIcon.d.ts +13 -0
  90. package/es/components/SkeletonIcon/SkeletonIcon.js +2 -3
  91. package/es/components/SkeletonText/SkeletonText.d.ts +0 -6
  92. package/es/components/SkeletonText/SkeletonText.js +0 -6
  93. package/es/components/Slider/Slider.Skeleton.d.ts +9 -1
  94. package/es/components/Slider/Slider.Skeleton.js +20 -4
  95. package/es/components/Slider/Slider.d.ts +137 -25
  96. package/es/components/Slider/Slider.js +779 -186
  97. package/es/components/StructuredList/StructuredList.js +5 -2
  98. package/es/components/Switch/Switch.js +3 -7
  99. package/es/components/Tabs/Tabs.js +5 -2
  100. package/es/components/Tag/Tag.js +4 -2
  101. package/es/components/Text/Text.js +1 -1
  102. package/es/components/Text/TextDirection.d.ts +1 -1
  103. package/es/components/TextArea/TextArea.js +30 -34
  104. package/es/components/TextInput/ControlledPasswordInput.js +12 -19
  105. package/es/components/TextInput/TextInput.js +8 -3
  106. package/es/components/Tile/Tile.js +5 -3
  107. package/es/components/TileGroup/TileGroup.js +5 -4
  108. package/es/components/Toggle/Toggle.js +4 -2
  109. package/es/components/Toggletip/index.d.ts +6 -1
  110. package/es/components/Toggletip/index.js +7 -1
  111. package/es/components/UIShell/Content.js +1 -4
  112. package/es/components/UIShell/SideNav.d.ts +1 -1
  113. package/es/components/UIShell/SideNavDetails.d.ts +32 -0
  114. package/es/components/UIShell/SideNavDetails.js +1 -2
  115. package/es/components/UIShell/SideNavDivider.d.ts +15 -0
  116. package/es/components/UIShell/SideNavDivider.js +2 -2
  117. package/es/components/UIShell/SideNavFooter.js +2 -5
  118. package/es/components/UIShell/SideNavIcon.d.ts +25 -0
  119. package/es/components/UIShell/SideNavIcon.js +4 -7
  120. package/es/components/UIShell/SideNavSwitcher.d.ts +31 -0
  121. package/es/components/UIShell/SideNavSwitcher.js +6 -5
  122. package/es/index.js +2 -2
  123. package/es/internal/FloatingMenu.js +2 -7
  124. package/es/internal/Selection.js +0 -3
  125. package/es/internal/noopFn.d.ts +7 -0
  126. package/es/internal/noopFn.js +10 -0
  127. package/es/internal/useNormalizedInputProps.js +6 -2
  128. package/es/internal/wrapFocus.js +5 -5
  129. package/es/prop-types/requiredIfGivenPropIsTruthy.js +2 -2
  130. package/lib/components/Accordion/Accordion.Skeleton.d.ts +0 -5
  131. package/lib/components/Accordion/Accordion.Skeleton.js +0 -5
  132. package/lib/components/Breadcrumb/BreadcrumbItem.js +3 -1
  133. package/lib/components/Checkbox/Checkbox.js +3 -6
  134. package/lib/components/CodeSnippet/CodeSnippet.js +5 -12
  135. package/lib/components/ComboBox/ComboBox.d.ts +1 -5
  136. package/lib/components/ComboBox/ComboBox.js +5 -19
  137. package/lib/components/ComposedModal/ComposedModal.js +1 -5
  138. package/lib/components/ComposedModal/ModalFooter.js +4 -9
  139. package/lib/components/ComposedModal/ModalHeader.js +1 -4
  140. package/lib/components/ContentSwitcher/ContentSwitcher.d.ts +3 -8
  141. package/lib/components/ContentSwitcher/ContentSwitcher.js +7 -11
  142. package/lib/components/Copy/Copy.js +4 -8
  143. package/lib/components/CopyButton/CopyButton.js +8 -7
  144. package/lib/components/DataTable/DataTable.d.ts +3 -39
  145. package/lib/components/DataTable/DataTable.js +13 -21
  146. package/lib/components/DataTable/Table.d.ts +0 -4
  147. package/lib/components/DataTable/Table.js +3 -6
  148. package/lib/components/DataTable/TableBatchAction.js +12 -5
  149. package/lib/components/DataTable/TableBatchActions.js +1 -6
  150. package/lib/components/DataTable/TableBody.d.ts +0 -3
  151. package/lib/components/DataTable/TableBody.js +1 -3
  152. package/lib/components/DataTable/TableExpandHeader.d.ts +1 -1
  153. package/lib/components/DataTable/TableHeader.js +3 -8
  154. package/lib/components/DataTable/TableSelectAll.d.ts +0 -3
  155. package/lib/components/DataTable/TableSelectAll.js +1 -4
  156. package/lib/components/DataTable/TableToolbar.d.ts +10 -0
  157. package/lib/components/DataTable/TableToolbar.js +15 -7
  158. package/lib/components/DataTable/TableToolbarMenu.js +2 -6
  159. package/lib/components/DataTable/TableToolbarSearch.d.ts +2 -8
  160. package/lib/components/DataTable/TableToolbarSearch.js +6 -11
  161. package/lib/components/DataTable/tools/sorting.js +2 -2
  162. package/lib/components/DatePicker/DatePicker.d.ts +4 -4
  163. package/lib/components/DatePicker/DatePicker.js +9 -4
  164. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +6 -0
  165. package/lib/components/DatePickerInput/DatePickerInput.d.ts +1 -1
  166. package/lib/components/DatePickerInput/DatePickerInput.js +12 -6
  167. package/lib/components/Dropdown/Dropdown.js +6 -15
  168. package/lib/components/FileUploader/FileUploader.d.ts +2 -11
  169. package/lib/components/FileUploader/FileUploader.js +15 -19
  170. package/lib/components/FileUploader/FileUploaderButton.js +2 -2
  171. package/lib/components/FileUploader/FileUploaderDropContainer.d.ts +0 -7
  172. package/lib/components/FileUploader/FileUploaderDropContainer.js +2 -8
  173. package/lib/components/FileUploader/FileUploaderItem.d.ts +0 -4
  174. package/lib/components/FileUploader/FileUploaderItem.js +12 -9
  175. package/lib/components/FileUploader/Filename.d.ts +6 -10
  176. package/lib/components/FileUploader/Filename.js +7 -11
  177. package/lib/components/FormGroup/FormGroup.d.ts +0 -5
  178. package/lib/components/FormGroup/FormGroup.js +3 -8
  179. package/lib/components/FormItem/FormItem.d.ts +32 -0
  180. package/lib/components/FormItem/index.d.ts +9 -0
  181. package/lib/components/FormLabel/FormLabel.js +4 -1
  182. package/lib/components/ListBox/ListBox.js +4 -8
  183. package/lib/components/ListBox/ListBoxMenuIcon.js +1 -4
  184. package/lib/components/ListBox/ListBoxMenuItem.js +4 -8
  185. package/lib/components/ListBox/ListBoxSelection.d.ts +5 -5
  186. package/lib/components/ListBox/ListBoxSelection.js +12 -13
  187. package/lib/components/ListBox/next/ListBoxSelection.js +12 -13
  188. package/lib/components/ListBox/next/ListBoxTrigger.js +3 -5
  189. package/lib/components/ListItem/ListItem.d.ts +1 -1
  190. package/lib/components/ListItem/ListItem.js +6 -2
  191. package/lib/components/Menu/MenuItem.js +4 -1
  192. package/lib/components/Modal/Modal.d.ts +137 -0
  193. package/lib/components/Modal/Modal.js +40 -45
  194. package/lib/components/Modal/index.d.ts +9 -0
  195. package/lib/components/ModalWrapper/ModalWrapper.js +13 -19
  196. package/lib/components/MultiSelect/FilterableMultiSelect.js +18 -32
  197. package/lib/components/MultiSelect/MultiSelect.js +16 -32
  198. package/lib/components/MultiSelect/MultiSelectPropTypes.js +2 -2
  199. package/lib/components/MultiSelect/tools/sorting.js +2 -2
  200. package/lib/components/Notification/Notification.d.ts +11 -29
  201. package/lib/components/Notification/Notification.js +38 -57
  202. package/lib/components/NumberInput/NumberInput.js +6 -2
  203. package/lib/components/OverflowMenu/OverflowMenu.js +27 -33
  204. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +4 -1
  205. package/lib/components/Pagination/experimental/PageSelector.js +3 -8
  206. package/lib/components/Pagination/experimental/Pagination.js +16 -34
  207. package/lib/components/ProgressIndicator/ProgressIndicator.js +7 -6
  208. package/lib/components/RadioTile/RadioTile.js +6 -7
  209. package/lib/components/Search/Search.Skeleton.d.ts +0 -3
  210. package/lib/components/Search/Search.Skeleton.js +1 -4
  211. package/lib/components/Select/Select.d.ts +2 -2
  212. package/lib/components/Select/Select.js +13 -16
  213. package/lib/components/SelectItem/SelectItem.d.ts +0 -6
  214. package/lib/components/SelectItem/SelectItem.js +4 -10
  215. package/lib/components/SelectItemGroup/SelectItemGroup.d.ts +0 -3
  216. package/lib/components/SelectItemGroup/SelectItemGroup.js +1 -4
  217. package/lib/components/SkeletonIcon/SkeletonIcon.d.ts +13 -0
  218. package/lib/components/SkeletonIcon/SkeletonIcon.js +2 -3
  219. package/lib/components/SkeletonText/SkeletonText.d.ts +0 -6
  220. package/lib/components/SkeletonText/SkeletonText.js +0 -6
  221. package/lib/components/Slider/Slider.Skeleton.d.ts +9 -1
  222. package/lib/components/Slider/Slider.Skeleton.js +20 -4
  223. package/lib/components/Slider/Slider.d.ts +137 -25
  224. package/lib/components/Slider/Slider.js +778 -185
  225. package/lib/components/StructuredList/StructuredList.js +5 -2
  226. package/lib/components/Switch/Switch.js +3 -7
  227. package/lib/components/Tabs/Tabs.js +5 -2
  228. package/lib/components/Tag/Tag.js +4 -2
  229. package/lib/components/Text/Text.js +1 -1
  230. package/lib/components/Text/TextDirection.d.ts +1 -1
  231. package/lib/components/TextArea/TextArea.js +30 -34
  232. package/lib/components/TextInput/ControlledPasswordInput.js +12 -19
  233. package/lib/components/TextInput/TextInput.js +8 -3
  234. package/lib/components/Tile/Tile.js +5 -3
  235. package/lib/components/TileGroup/TileGroup.js +5 -4
  236. package/lib/components/Toggle/Toggle.js +4 -2
  237. package/lib/components/Toggletip/index.d.ts +6 -1
  238. package/lib/components/Toggletip/index.js +7 -1
  239. package/lib/components/UIShell/Content.js +1 -4
  240. package/lib/components/UIShell/SideNav.d.ts +1 -1
  241. package/lib/components/UIShell/SideNavDetails.d.ts +32 -0
  242. package/lib/components/UIShell/SideNavDetails.js +1 -2
  243. package/lib/components/UIShell/SideNavDivider.d.ts +15 -0
  244. package/lib/components/UIShell/SideNavDivider.js +2 -2
  245. package/lib/components/UIShell/SideNavFooter.js +2 -5
  246. package/lib/components/UIShell/SideNavIcon.d.ts +25 -0
  247. package/lib/components/UIShell/SideNavIcon.js +4 -7
  248. package/lib/components/UIShell/SideNavSwitcher.d.ts +31 -0
  249. package/lib/components/UIShell/SideNavSwitcher.js +5 -4
  250. package/lib/index.js +4 -4
  251. package/lib/internal/FloatingMenu.js +2 -7
  252. package/lib/internal/Selection.js +0 -3
  253. package/lib/internal/noopFn.d.ts +7 -0
  254. package/lib/internal/noopFn.js +14 -0
  255. package/lib/internal/useNormalizedInputProps.js +6 -2
  256. package/lib/internal/wrapFocus.js +5 -5
  257. package/lib/prop-types/requiredIfGivenPropIsTruthy.js +2 -2
  258. package/package.json +9 -9
  259. package/scss/components/slug/_index.scss +9 -0
  260. package/scss/components/slug/_slug.scss +9 -0
@@ -17,6 +17,7 @@ var Search = require('../Search/Search.js');
17
17
  require('../Search/Search.Skeleton.js');
18
18
  var instanceId = require('./tools/instanceId.js');
19
19
  var usePrefix = require('../../internal/usePrefix.js');
20
+ var noopFn = require('../../internal/noopFn.js');
20
21
 
21
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
23
 
@@ -37,8 +38,8 @@ const TableToolbarSearch = _ref => {
37
38
  className,
38
39
  searchContainerClass,
39
40
  onChange: onChangeProp,
40
- onClear,
41
- translateWithId: t,
41
+ onClear = noopFn.noopFn,
42
+ translateWithId: t = translateWithId,
42
43
  placeholder,
43
44
  labelText,
44
45
  expanded: expandedProp,
@@ -46,12 +47,12 @@ const TableToolbarSearch = _ref => {
46
47
  defaultValue,
47
48
  disabled,
48
49
  onExpand,
49
- persistent,
50
+ persistent = false,
50
51
  id,
51
52
  onBlur,
52
53
  onFocus,
53
54
  size = 'lg',
54
- tabIndex,
55
+ tabIndex = '0',
55
56
  ...rest
56
57
  } = _ref;
57
58
  const {
@@ -198,13 +199,7 @@ TableToolbarSearch.propTypes = {
198
199
  /**
199
200
  * Provide custom text for the component for each translation id
200
201
  */
201
- translateWithId: PropTypes__default["default"].func.isRequired
202
- };
203
- TableToolbarSearch.defaultProps = {
204
- tabIndex: '0',
205
- translateWithId,
206
- persistent: false,
207
- onClear: () => {}
202
+ translateWithId: PropTypes__default["default"].func
208
203
  };
209
204
 
210
205
  exports["default"] = TableToolbarSearch;
@@ -90,8 +90,8 @@ const sortRows = _ref => {
90
90
  cellsById,
91
91
  sortDirection,
92
92
  key,
93
- locale,
94
- sortRow
93
+ locale = 'en',
94
+ sortRow = defaultSortRow
95
95
  } = _ref;
96
96
  return rowIds.slice().sort((a, b) => {
97
97
  const cellA = cellsById[cells.getCellId(a, key)];
@@ -24,8 +24,8 @@ export type CalRef = {
24
24
  };
25
25
  interface DatePickerProps extends Omit<ReactAttr<HTMLDivElement>, ExcludedAttributes> {
26
26
  /**
27
- * flatpickr prop passthrough. Allows the user to enter a date directly
28
- * into the input field
27
+ * Flatpickr prop passthrough enables direct date input, and when set to false,
28
+ * we must clear dates manually by resetting the value prop to empty string making it a controlled input.
29
29
  */
30
30
  allowInput?: boolean;
31
31
  /**
@@ -87,11 +87,11 @@ interface DatePickerProps extends Omit<ReactAttr<HTMLDivElement>, ExcludedAttrib
87
87
  /**
88
88
  * The maximum date that a user can pick to.
89
89
  */
90
- maxDate?: string;
90
+ maxDate?: string | number;
91
91
  /**
92
92
  * The minimum date that a user can start picking from.
93
93
  */
94
- minDate?: string;
94
+ minDate?: string | number;
95
95
  /**
96
96
  * The `change` event handler.
97
97
  */
@@ -435,6 +435,11 @@ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Da
435
435
  calendarRef.current.set('minDate', minDate);
436
436
  }
437
437
  }, [minDate]);
438
+ React.useEffect(() => {
439
+ if (calendarRef?.current?.set) {
440
+ calendarRef.current.set('allowInput', allowInput);
441
+ }
442
+ }, [allowInput]);
438
443
  React.useEffect(() => {
439
444
  if (calendarRef?.current?.set) {
440
445
  calendarRef.current.set('maxDate', maxDate);
@@ -497,8 +502,8 @@ const DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Da
497
502
  });
498
503
  DatePicker.propTypes = {
499
504
  /**
500
- * flatpickr prop passthrough. Allows the user to enter a date directly
501
- * into the input field
505
+ * Flatpickr prop passthrough enables direct date input, and when set to false,
506
+ * we must clear dates manually by resetting the value prop to empty string making it a controlled input.
502
507
  */
503
508
  allowInput: PropTypes__default["default"].bool,
504
509
  /**
@@ -682,11 +687,11 @@ DatePicker.propTypes = {
682
687
  /**
683
688
  * The maximum date that a user can pick to.
684
689
  */
685
- maxDate: PropTypes__default["default"].string,
690
+ maxDate: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
686
691
  /**
687
692
  * The minimum date that a user can start picking from.
688
693
  */
689
- minDate: PropTypes__default["default"].string,
694
+ minDate: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
690
695
  /**
691
696
  * The `change` event handler.
692
697
  * `(dates: Date[], dStr: string, fp: Instance, data?: any):void;`
@@ -43,6 +43,12 @@ var carbonFlatpickrFixEventsPlugin = (config => fp => {
43
43
  } else if (match.match(event, keys.ArrowDown)) {
44
44
  event.preventDefault();
45
45
  fp.open();
46
+ } else if (!fp.config.allowInput) {
47
+ // We override the default behaviour of Flatpickr, ideally when allowInput is set to false,
48
+ // the Delete/Backspace button clears all of the date, which we don't want, hence
49
+ // we stop event bubbling and the default Flatpickr's onChange behaviour here itself
50
+ event.stopPropagation();
51
+ event.preventDefault();
46
52
  }
47
53
  }
48
54
  };
@@ -10,7 +10,7 @@ import { ReactAttr } from '../../types/common';
10
10
  type ExcludedAttributes = 'value' | 'onChange' | 'locale' | 'children';
11
11
  export type ReactNodeLike = ReactElementLike | ReactNodeArray | string | number | boolean | null | undefined;
12
12
  export type func = (...args: any[]) => any;
13
- interface DatePickerInputProps extends Omit<ReactAttr<HTMLDivElement>, ExcludedAttributes> {
13
+ interface DatePickerInputProps extends Omit<ReactAttr<HTMLInputElement>, ExcludedAttributes> {
14
14
  /**
15
15
  * The type of the date picker:
16
16
  *
@@ -17,6 +17,8 @@ var usePrefix = require('../../internal/usePrefix.js');
17
17
  require('../FluidForm/FluidForm.js');
18
18
  var FormContext = require('../FluidForm/FormContext.js');
19
19
  var setupGetInstanceId = require('../../tools/setupGetInstanceId.js');
20
+ require('../Text/index.js');
21
+ var Text = require('../Text/Text.js');
20
22
 
21
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
24
 
@@ -103,26 +105,30 @@ const DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(functi
103
105
  const input = /*#__PURE__*/React__default["default"].createElement("input", inputProps);
104
106
  return /*#__PURE__*/React__default["default"].createElement("div", {
105
107
  className: containerClasses
106
- }, labelText && /*#__PURE__*/React__default["default"].createElement("label", {
108
+ }, labelText && /*#__PURE__*/React__default["default"].createElement(Text.Text, {
109
+ as: "label",
107
110
  htmlFor: id,
108
111
  className: labelClasses
109
112
  }, labelText), /*#__PURE__*/React__default["default"].createElement("div", {
110
113
  className: wrapperClasses
111
- }, input, isFluid && /*#__PURE__*/React__default["default"].createElement(DatePickerIcon, {
114
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, input, isFluid && /*#__PURE__*/React__default["default"].createElement(DatePickerIcon, {
112
115
  datePickerType: datePickerType
113
116
  }), /*#__PURE__*/React__default["default"].createElement(DatePickerIcon, {
114
117
  datePickerType: datePickerType,
115
118
  invalid: invalid,
116
119
  warn: warn
117
- })), invalid && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
120
+ }))), invalid && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
118
121
  className: `${prefix}--date-picker__divider`
119
- }), /*#__PURE__*/React__default["default"].createElement("div", {
122
+ }), /*#__PURE__*/React__default["default"].createElement(Text.Text, {
123
+ as: "div",
120
124
  className: `${prefix}--form-requirement`
121
125
  }, invalidText)), warn && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
122
126
  className: `${prefix}--date-picker__divider`
123
- }), /*#__PURE__*/React__default["default"].createElement("div", {
127
+ }), /*#__PURE__*/React__default["default"].createElement(Text.Text, {
128
+ as: "div",
124
129
  className: `${prefix}--form-requirement`
125
- }, warnText)), helperText && /*#__PURE__*/React__default["default"].createElement("div", {
130
+ }, warnText)), helperText && !invalid && /*#__PURE__*/React__default["default"].createElement(Text.Text, {
131
+ as: "div",
126
132
  id: datePickerInputHelperId,
127
133
  className: helperTextClasses
128
134
  }, helperText));
@@ -53,22 +53,22 @@ const defaultItemToString = item => {
53
53
  const Dropdown = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
54
54
  let {
55
55
  className: containerClassName,
56
- disabled,
57
- direction,
56
+ disabled = false,
57
+ direction = 'bottom',
58
58
  items,
59
59
  label,
60
60
  ['aria-label']: ariaLabel,
61
61
  ariaLabel: deprecatedAriaLabel,
62
62
  itemToString = defaultItemToString,
63
- itemToElement,
63
+ itemToElement = null,
64
64
  renderSelectedItem,
65
- type,
65
+ type = 'default',
66
66
  size,
67
67
  onChange,
68
68
  id,
69
- titleText,
69
+ titleText = '',
70
70
  hideLabel,
71
- helperText,
71
+ helperText = '',
72
72
  translateWithId,
73
73
  light,
74
74
  invalid,
@@ -414,14 +414,5 @@ Dropdown.propTypes = {
414
414
  */
415
415
  warnText: PropTypes__default["default"].node
416
416
  };
417
- Dropdown.defaultProps = {
418
- disabled: false,
419
- type: 'default',
420
- itemToString: defaultItemToString,
421
- itemToElement: null,
422
- titleText: '',
423
- helperText: '',
424
- direction: 'bottom'
425
- };
426
417
 
427
418
  exports["default"] = Dropdown;
@@ -36,7 +36,7 @@ export interface FileUploaderProps extends ReactAttr<HTMLSpanElement> {
36
36
  /**
37
37
  * Provide a description for the complete/close icon that can be read by screen readers
38
38
  */
39
- iconDescription: string;
39
+ iconDescription?: string;
40
40
  /**
41
41
  * Specify the description text of this `<FileUploader>`
42
42
  */
@@ -106,7 +106,7 @@ export default class FileUploader extends React.Component<FileUploaderProps, {
106
106
  /**
107
107
  * Provide a description for the complete/close icon that can be read by screen readers
108
108
  */
109
- iconDescription: PropTypes.Validator<string>;
109
+ iconDescription: PropTypes.Requireable<string>;
110
110
  /**
111
111
  * Specify the description text of this `<FileUploader>`
112
112
  */
@@ -145,15 +145,6 @@ export default class FileUploader extends React.Component<FileUploaderProps, {
145
145
  size: PropTypes.Requireable<string>;
146
146
  };
147
147
  static contextType: React.Context<string>;
148
- static defaultProps: {
149
- disabled: boolean;
150
- filenameStatus: string;
151
- buttonLabel: string;
152
- buttonKind: string;
153
- multiple: boolean;
154
- onClick: () => void;
155
- accept: never[];
156
- };
157
148
  state: {
158
149
  filenames: string[];
159
150
  };
@@ -17,6 +17,8 @@ var Filename = require('./Filename.js');
17
17
  var FileUploaderButton = require('./FileUploaderButton.js');
18
18
  var types = require('../../prop-types/types.js');
19
19
  var usePrefix = require('../../internal/usePrefix.js');
20
+ require('../Text/index.js');
21
+ var Text = require('../Text/Text.js');
20
22
  var match = require('../../internal/keyboard/match.js');
21
23
  var keys = require('../../internal/keyboard/keys.js');
22
24
 
@@ -84,15 +86,15 @@ class FileUploader extends React__default["default"].Component {
84
86
  render() {
85
87
  const {
86
88
  iconDescription,
87
- buttonLabel,
88
- buttonKind,
89
- disabled,
90
- filenameStatus,
89
+ buttonLabel = '',
90
+ buttonKind = 'primary',
91
+ disabled = false,
92
+ filenameStatus = 'uploading',
91
93
  labelDescription,
92
94
  labelTitle,
93
95
  className,
94
- multiple,
95
- accept,
96
+ multiple = false,
97
+ accept = [],
96
98
  name,
97
99
  size = 'md',
98
100
  onDelete,
@@ -113,9 +115,11 @@ class FileUploader extends React__default["default"].Component {
113
115
  });
114
116
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
115
117
  className: classes
116
- }, other), !labelTitle ? null : /*#__PURE__*/React__default["default"].createElement("p", {
118
+ }, other), !labelTitle ? null : /*#__PURE__*/React__default["default"].createElement(Text.Text, {
119
+ as: "p",
117
120
  className: getHelperLabelClasses(`${prefix}--file--label`)
118
- }, labelTitle), /*#__PURE__*/React__default["default"].createElement("p", {
121
+ }, labelTitle), /*#__PURE__*/React__default["default"].createElement(Text.Text, {
122
+ as: "p",
119
123
  className: getHelperLabelClasses(`${prefix}--label-description`)
120
124
  }, labelDescription), /*#__PURE__*/React__default["default"].createElement(FileUploaderButton["default"], {
121
125
  innerRef: this.uploaderButton,
@@ -134,7 +138,8 @@ class FileUploader extends React__default["default"].Component {
134
138
  key: index,
135
139
  className: selectedFileClasses,
136
140
  ref: node => this.nodes[index] = node // eslint-disable-line
137
- }, other), /*#__PURE__*/React__default["default"].createElement("p", {
141
+ }, other), /*#__PURE__*/React__default["default"].createElement(Text.Text, {
142
+ as: "p",
138
143
  className: `${prefix}--file-filename`,
139
144
  id: name
140
145
  }, name), /*#__PURE__*/React__default["default"].createElement("span", {
@@ -187,7 +192,7 @@ _rollupPluginBabelHelpers.defineProperty(FileUploader, "propTypes", {
187
192
  /**
188
193
  * Provide a description for the complete/close icon that can be read by screen readers
189
194
  */
190
- iconDescription: PropTypes__default["default"].string.isRequired,
195
+ iconDescription: PropTypes__default["default"].string,
191
196
  /**
192
197
  * Specify the description text of this `<FileUploader>`
193
198
  */
@@ -226,14 +231,5 @@ _rollupPluginBabelHelpers.defineProperty(FileUploader, "propTypes", {
226
231
  size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg'])
227
232
  });
228
233
  _rollupPluginBabelHelpers.defineProperty(FileUploader, "contextType", usePrefix.PrefixContext);
229
- _rollupPluginBabelHelpers.defineProperty(FileUploader, "defaultProps", {
230
- disabled: false,
231
- filenameStatus: 'uploading',
232
- buttonLabel: '',
233
- buttonKind: 'primary',
234
- multiple: false,
235
- onClick: () => {},
236
- accept: []
237
- });
238
234
 
239
235
  exports["default"] = FileUploader;
@@ -17,6 +17,7 @@ var types = require('../../prop-types/types.js');
17
17
  var uniqueId = require('../../tools/uniqueId.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
19
19
  var deprecate = require('../../prop-types/deprecate.js');
20
+ var noopFn = require('../../internal/noopFn.js');
20
21
  var match = require('../../internal/keyboard/match.js');
21
22
  var keys = require('../../internal/keyboard/keys.js');
22
23
 
@@ -26,7 +27,6 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
26
27
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
27
28
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
28
29
 
29
- function noop() {}
30
30
  function FileUploaderButton(_ref) {
31
31
  let {
32
32
  accept,
@@ -37,7 +37,7 @@ function FileUploaderButton(_ref) {
37
37
  id,
38
38
  labelText: ownerLabelText = 'Add file',
39
39
  multiple = false,
40
- onChange = noop,
40
+ onChange = noopFn.noopFn,
41
41
  name,
42
42
  size = 'md',
43
43
  // eslint-disable-next-line react/prop-types
@@ -120,12 +120,5 @@ declare namespace FileUploaderDropContainer {
120
120
  */
121
121
  tabIndex: (props: any, propName: any, componentName: any, ...rest: any[]) => any;
122
122
  };
123
- var defaultProps: {
124
- labelText: string;
125
- multiple: boolean;
126
- onAddFiles: () => void;
127
- accept: never[];
128
- pattern: string;
129
- };
130
123
  }
131
124
  export default FileUploaderDropContainer;
@@ -17,6 +17,7 @@ var uniqueId = require('../../tools/uniqueId.js');
17
17
  var usePrefix = require('../../internal/usePrefix.js');
18
18
  var events = require('../../tools/events.js');
19
19
  var deprecate = require('../../prop-types/deprecate.js');
20
+ var noopFn = require('../../internal/noopFn.js');
20
21
  var match = require('../../internal/keyboard/match.js');
21
22
  var keys = require('../../internal/keyboard/keys.js');
22
23
 
@@ -35,7 +36,7 @@ function FileUploaderDropContainer(_ref) {
35
36
  labelText = 'Add file',
36
37
  multiple = false,
37
38
  name,
38
- onAddFiles = () => {},
39
+ onAddFiles = noopFn.noopFn,
39
40
  onClick,
40
41
  pattern = '.[0-9a-z]+$',
41
42
  // eslint-disable-next-line react/prop-types
@@ -209,12 +210,5 @@ FileUploaderDropContainer.propTypes = {
209
210
  */
210
211
  tabIndex: deprecate["default"](PropTypes__default["default"].number, 'The `tabIndex` prop for `FileUploaderButton` has ' + 'been deprecated since it now renders a button element by default.')
211
212
  };
212
- FileUploaderDropContainer.defaultProps = {
213
- labelText: 'Add file',
214
- multiple: false,
215
- onAddFiles: () => {},
216
- accept: [],
217
- pattern: '.[0-9a-z]+$'
218
- };
219
213
 
220
214
  exports["default"] = FileUploaderDropContainer;
@@ -95,9 +95,5 @@ declare namespace FileUploaderItem {
95
95
  */
96
96
  uuid: PropTypes.Requireable<string>;
97
97
  };
98
- var defaultProps: {
99
- status: string;
100
- onDelete: () => void;
101
- };
102
98
  }
103
99
  export default FileUploaderItem;
@@ -16,8 +16,11 @@ var React = require('react');
16
16
  var Filename = require('./Filename.js');
17
17
  var uniqueId = require('../../tools/uniqueId.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
19
+ var noopFn = require('../../internal/noopFn.js');
20
+ require('../Text/index.js');
19
21
  require('../Tooltip/DefinitionTooltip.js');
20
22
  var Tooltip = require('../Tooltip/Tooltip.js');
23
+ var Text = require('../Text/Text.js');
21
24
  var match = require('../../internal/keyboard/match.js');
22
25
  var keys = require('../../internal/keyboard/keys.js');
23
26
 
@@ -33,7 +36,7 @@ function FileUploaderItem(_ref) {
33
36
  name,
34
37
  status = 'uploading',
35
38
  iconDescription,
36
- onDelete = () => {},
39
+ onDelete = noopFn.noopFn,
37
40
  invalid,
38
41
  errorSubject,
39
42
  errorBody,
@@ -70,11 +73,13 @@ function FileUploaderItem(_ref) {
70
73
  }, /*#__PURE__*/React__default["default"].createElement("button", {
71
74
  className: `${prefix}--file-filename-button`,
72
75
  type: "button"
73
- }, /*#__PURE__*/React__default["default"].createElement("p", {
76
+ }, /*#__PURE__*/React__default["default"].createElement(Text.Text, {
77
+ as: "p",
74
78
  title: name,
75
79
  className: `${prefix}--file-filename-button`,
76
80
  id: name
77
- }, name)))) : /*#__PURE__*/React__default["default"].createElement("p", {
81
+ }, name)))) : /*#__PURE__*/React__default["default"].createElement(Text.Text, {
82
+ as: "p",
78
83
  title: name,
79
84
  className: `${prefix}--file-filename`,
80
85
  id: name
@@ -109,9 +114,11 @@ function FileUploaderItem(_ref) {
109
114
  className: `${prefix}--form-requirement`,
110
115
  role: "alert",
111
116
  id: `${name}-id-error`
112
- }, /*#__PURE__*/React__default["default"].createElement("div", {
117
+ }, /*#__PURE__*/React__default["default"].createElement(Text.Text, {
118
+ as: "div",
113
119
  className: `${prefix}--form-requirement__title`
114
- }, errorSubject), errorBody && /*#__PURE__*/React__default["default"].createElement("p", {
120
+ }, errorSubject), errorBody && /*#__PURE__*/React__default["default"].createElement(Text.Text, {
121
+ as: "p",
115
122
  className: `${prefix}--form-requirement__supplement`
116
123
  }, errorBody)));
117
124
  }
@@ -155,9 +162,5 @@ FileUploaderItem.propTypes = {
155
162
  */
156
163
  uuid: PropTypes__default["default"].string
157
164
  };
158
- FileUploaderItem.defaultProps = {
159
- status: 'uploading',
160
- onDelete: () => {}
161
- };
162
165
 
163
166
  exports["default"] = FileUploaderItem;
@@ -4,11 +4,12 @@
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- /// <reference types="react" />
8
7
  import PropTypes from 'prop-types';
8
+ import React from 'react';
9
9
  import { ReactAttr } from '../../types/common';
10
10
  export type FilenameStatus = 'edit' | 'complete' | 'uploading';
11
- export interface FilenameProps extends Omit<ReactAttr<HTMLElement>, 'tabIndex'> {
11
+ type SVGAttr = React.SVGAttributes<React.ReactSVGElement>;
12
+ export interface FilenameProps extends Omit<ReactAttr & SVGAttr, 'tabIndex' | 'type'> {
12
13
  /**
13
14
  * Specify an id that describes the error to be read by screen readers when the filename is invalid
14
15
  */
@@ -32,9 +33,9 @@ export interface FilenameProps extends Omit<ReactAttr<HTMLElement>, 'tabIndex'>
32
33
  /**
33
34
  * Provide a custom tabIndex value for the `<Filename>`
34
35
  */
35
- tabIndex?: number | string;
36
+ tabIndex?: number;
36
37
  }
37
- declare function Filename({ iconDescription, status, invalid, name, ['aria-describedby']: ariaDescribedBy, ...rest }: FilenameProps): JSX.Element | null;
38
+ declare function Filename({ iconDescription, status, invalid, name, tabIndex, ['aria-describedby']: ariaDescribedBy, ...rest }: FilenameProps): JSX.Element | null;
38
39
  declare namespace Filename {
39
40
  var propTypes: {
40
41
  /**
@@ -60,12 +61,7 @@ declare namespace Filename {
60
61
  /**
61
62
  * Provide a custom tabIndex value for the `<Filename>`
62
63
  */
63
- tabIndex: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
64
- };
65
- var defaultProps: {
66
- iconDescription: string;
67
- status: string;
68
- tabIndex: string;
64
+ tabIndex: PropTypes.Requireable<number>;
69
65
  };
70
66
  }
71
67
  export default Filename;
@@ -24,10 +24,11 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
24
  var _Close;
25
25
  function Filename(_ref) {
26
26
  let {
27
- iconDescription,
28
- status,
27
+ iconDescription = 'Uploading file',
28
+ status = 'uploading',
29
29
  invalid,
30
30
  name,
31
+ tabIndex = 0,
31
32
  ['aria-describedby']: ariaDescribedBy,
32
33
  ...rest
33
34
  } = _ref;
@@ -46,9 +47,9 @@ function Filename(_ref) {
46
47
  }), /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({
47
48
  "aria-label": `${iconDescription} - ${name}`,
48
49
  className: `${prefix}--file-close`,
49
- type: "button"
50
+ type: "button",
51
+ tabIndex: tabIndex
50
52
  }, rest, {
51
- tabIndex: rest.tabIndex !== undefined ? parseInt(rest.tabIndex, 10) : undefined,
52
53
  "aria-describedby": invalid ? ariaDescribedBy : undefined
53
54
  }), _Close || (_Close = /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, null))));
54
55
  case 'complete':
@@ -56,7 +57,7 @@ function Filename(_ref) {
56
57
  "aria-label": iconDescription,
57
58
  className: `${prefix}--file-complete`
58
59
  }, rest, {
59
- tabIndex: null
60
+ tabIndex: -1
60
61
  }), iconDescription && /*#__PURE__*/React__default["default"].createElement("title", null, iconDescription));
61
62
  default:
62
63
  return null;
@@ -86,12 +87,7 @@ Filename.propTypes = {
86
87
  /**
87
88
  * Provide a custom tabIndex value for the `<Filename>`
88
89
  */
89
- tabIndex: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string])
90
- };
91
- Filename.defaultProps = {
92
- iconDescription: 'Uploading file',
93
- status: 'uploading',
94
- tabIndex: '0'
90
+ tabIndex: PropTypes__default["default"].number
95
91
  };
96
92
 
97
93
  exports["default"] = Filename;
@@ -71,10 +71,5 @@ declare const FormGroup: {
71
71
  */
72
72
  messageText: PropTypes.Requireable<string>;
73
73
  };
74
- defaultProps: {
75
- invalid: boolean;
76
- message: boolean;
77
- messageText: string;
78
- };
79
74
  };
80
75
  export default FormGroup;
@@ -25,11 +25,11 @@ const FormGroup = _ref => {
25
25
  let {
26
26
  legendId,
27
27
  legendText,
28
- invalid,
28
+ invalid = false,
29
29
  children,
30
30
  className,
31
- message,
32
- messageText,
31
+ message = false,
32
+ messageText = '',
33
33
  ...rest
34
34
  } = _ref;
35
35
  const prefix = usePrefix.usePrefix();
@@ -78,10 +78,5 @@ FormGroup.propTypes = {
78
78
  */
79
79
  messageText: PropTypes__default["default"].string
80
80
  };
81
- FormGroup.defaultProps = {
82
- invalid: false,
83
- message: false,
84
- messageText: ''
85
- };
86
81
 
87
82
  exports["default"] = FormGroup;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import PropTypes from 'prop-types';
8
+ import React from 'react';
9
+ type FormItemProps = {
10
+ /**
11
+ * Provide content to be rendered in the form item
12
+ */
13
+ children?: React.ReactNode;
14
+ /**
15
+ * Provide a custom className to be applied to the containing node
16
+ */
17
+ className?: string;
18
+ };
19
+ declare function FormItem({ className, children, ...rest }: FormItemProps): JSX.Element;
20
+ declare namespace FormItem {
21
+ var propTypes: {
22
+ /**
23
+ * Provide content to be rendered in the form item
24
+ */
25
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
26
+ /**
27
+ * Provide a custom className to be applied to the containing node
28
+ */
29
+ className: PropTypes.Requireable<string>;
30
+ };
31
+ }
32
+ export default FormItem;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import FormItem from './FormItem';
8
+ export default FormItem;
9
+ export { FormItem };