@carbon/react 1.92.0 → 1.93.0-rc.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 (302) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +1011 -970
  2. package/es/components/AILabel/index.js +4 -4
  3. package/es/components/Breadcrumb/BreadcrumbItem.js +1 -1
  4. package/es/components/Button/Button.js +2 -2
  5. package/es/components/ChatButton/ChatButton.js +1 -1
  6. package/es/components/Checkbox/Checkbox.js +1 -1
  7. package/es/components/CheckboxGroup/CheckboxGroup.js +1 -1
  8. package/es/components/ComboBox/ComboBox.d.ts +3 -11
  9. package/es/components/ComboBox/ComboBox.js +15 -25
  10. package/es/components/ComboButton/index.d.ts +5 -8
  11. package/es/components/ComboButton/index.js +9 -12
  12. package/es/components/ComposedModal/ComposedModal.js +22 -36
  13. package/es/components/DataTable/DataTable.d.ts +25 -16
  14. package/es/components/DataTable/DataTable.js +33 -34
  15. package/es/components/DataTable/Table.js +2 -2
  16. package/es/components/DataTable/TableBatchActions.d.ts +49 -10
  17. package/es/components/DataTable/TableBatchActions.js +26 -21
  18. package/es/components/DataTable/TableExpandHeader.js +2 -2
  19. package/es/components/DataTable/TableExpandRow.js +1 -1
  20. package/es/components/DataTable/TableHeader.d.ts +8 -10
  21. package/es/components/DataTable/TableHeader.js +11 -13
  22. package/es/components/DataTable/TableRow.js +5 -5
  23. package/es/components/DataTable/TableSlugRow.js +1 -1
  24. package/es/components/DataTable/TableToolbarMenu.js +1 -1
  25. package/es/components/DataTable/TableToolbarSearch.d.ts +8 -7
  26. package/es/components/DataTable/TableToolbarSearch.js +11 -11
  27. package/es/components/DataTable/index.d.ts +2 -2
  28. package/es/components/DataTable/state/sorting.d.ts +2 -2
  29. package/es/components/DataTable/state/sorting.js +1 -1
  30. package/es/components/DataTable/tools/sorting.js +1 -1
  31. package/es/components/DatePicker/DatePicker.js +9 -9
  32. package/es/components/DatePickerInput/DatePickerInput.js +5 -5
  33. package/es/components/Dialog/Dialog.js +6 -6
  34. package/es/components/Dropdown/Dropdown.d.ts +1 -1
  35. package/es/components/Dropdown/Dropdown.js +8 -8
  36. package/es/components/ErrorBoundary/ErrorBoundaryContext.js +1 -1
  37. package/es/components/FileUploader/FileUploader.js +4 -4
  38. package/es/components/FileUploader/FileUploaderButton.js +1 -1
  39. package/es/components/FileUploader/FileUploaderDropContainer.js +1 -1
  40. package/es/components/FileUploader/FileUploaderItem.js +2 -2
  41. package/es/components/FluidComboBox/FluidComboBox.d.ts +4 -7
  42. package/es/components/FluidComboBox/FluidComboBox.js +1 -1
  43. package/es/components/FluidDropdown/FluidDropdown.d.ts +4 -8
  44. package/es/components/FluidDropdown/FluidDropdown.js +1 -1
  45. package/es/components/FluidMultiSelect/FluidFilterableMultiSelect.d.ts +3 -7
  46. package/es/components/FluidMultiSelect/FluidMultiSelect.d.ts +3 -7
  47. package/es/components/FluidMultiSelect/FluidMultiSelect.js +3 -3
  48. package/es/components/FluidNumberInput/FluidNumberInput.d.ts +4 -7
  49. package/es/components/FluidNumberInput/FluidNumberInput.js +2 -2
  50. package/es/components/FluidSearch/FluidSearch.js +1 -1
  51. package/es/components/FluidSelect/FluidSelect.js +1 -1
  52. package/es/components/FluidTextInput/FluidTextInput.js +1 -1
  53. package/es/components/FluidTimePicker/FluidTimePicker.js +3 -3
  54. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +1 -1
  55. package/es/components/Grid/CSSGrid.js +3 -3
  56. package/es/components/Grid/Column.js +2 -2
  57. package/es/components/Grid/ColumnHang.js +1 -1
  58. package/es/components/Grid/FlexGrid.js +1 -1
  59. package/es/components/Grid/Row.js +1 -1
  60. package/es/components/Heading/index.js +2 -2
  61. package/es/components/IconButton/index.js +2 -2
  62. package/es/components/IconIndicator/index.js +2 -2
  63. package/es/components/InlineCheckbox/InlineCheckbox.js +1 -1
  64. package/es/components/Layout/index.js +2 -2
  65. package/es/components/LayoutDirection/LayoutDirection.js +1 -1
  66. package/es/components/Link/Link.js +2 -2
  67. package/es/components/ListBox/ListBoxField.d.ts +0 -1
  68. package/es/components/ListBox/ListBoxMenuIcon.d.ts +8 -4
  69. package/es/components/ListBox/ListBoxMenuIcon.js +10 -6
  70. package/es/components/ListBox/ListBoxMenuItem.js +2 -2
  71. package/es/components/ListBox/ListBoxSelection.d.ts +3 -6
  72. package/es/components/ListBox/ListBoxSelection.js +5 -10
  73. package/es/components/ListBox/index.d.ts +5 -3
  74. package/es/components/ListBox/next/ListBoxSelection.d.ts +6 -13
  75. package/es/components/ListBox/next/ListBoxSelection.js +16 -8
  76. package/es/components/ListBox/next/ListBoxTrigger.d.ts +5 -10
  77. package/es/components/ListBox/next/ListBoxTrigger.js +6 -6
  78. package/es/components/Menu/MenuContext.js +1 -1
  79. package/es/components/Menu/MenuItem.js +1 -1
  80. package/es/components/MenuButton/index.js +5 -5
  81. package/es/components/Modal/Modal.js +20 -36
  82. package/es/components/ModalWrapper/ModalWrapper.js +2 -2
  83. package/es/components/MultiSelect/FilterableMultiSelect.d.ts +3 -12
  84. package/es/components/MultiSelect/FilterableMultiSelect.js +18 -27
  85. package/es/components/MultiSelect/MultiSelect.d.ts +2 -2
  86. package/es/components/MultiSelect/MultiSelect.js +12 -12
  87. package/es/components/Notification/Notification.js +1 -1
  88. package/es/components/NumberInput/NumberInput.d.ts +2 -5
  89. package/es/components/NumberInput/NumberInput.js +13 -18
  90. package/es/components/OverflowMenu/OverflowMenu.d.ts +2 -2
  91. package/es/components/OverflowMenu/OverflowMenu.js +4 -4
  92. package/es/components/OverflowMenu/next/index.d.ts +1 -1
  93. package/es/components/OverflowMenu/next/index.js +2 -2
  94. package/es/components/OverflowMenuItem/OverflowMenuItem.js +2 -2
  95. package/es/components/PageHeader/PageHeader.js +12 -12
  96. package/es/components/Pagination/Pagination.js +3 -3
  97. package/es/components/PaginationNav/PaginationNav.d.ts +6 -9
  98. package/es/components/PaginationNav/PaginationNav.js +21 -22
  99. package/es/components/Popover/index.js +8 -8
  100. package/es/components/ProgressBar/ProgressBar.js +2 -2
  101. package/es/components/ProgressIndicator/ProgressIndicator.d.ts +11 -15
  102. package/es/components/ProgressIndicator/ProgressIndicator.js +15 -15
  103. package/es/components/RadioButton/RadioButton.js +1 -1
  104. package/es/components/RadioButtonGroup/RadioButtonGroup.js +1 -1
  105. package/es/components/RadioTile/RadioTile.js +1 -1
  106. package/es/components/Select/Select.js +7 -5
  107. package/es/components/ShapeIndicator/index.js +2 -2
  108. package/es/components/Slider/Slider.d.ts +7 -9
  109. package/es/components/Slider/Slider.js +16 -20
  110. package/es/components/Stack/HStack.js +1 -1
  111. package/es/components/Stack/Stack.js +1 -1
  112. package/es/components/Stack/VStack.js +1 -1
  113. package/es/components/StructuredList/StructuredList.js +3 -3
  114. package/es/components/Tabs/Tabs.js +12 -12
  115. package/es/components/Tag/DismissibleTag.js +3 -3
  116. package/es/components/Tag/OperationalTag.js +2 -2
  117. package/es/components/Tag/SelectableTag.js +2 -2
  118. package/es/components/Tag/Tag.js +4 -4
  119. package/es/components/Tag/isEllipsisActive.js +1 -1
  120. package/es/components/Text/Text.js +1 -1
  121. package/es/components/TextArea/TextArea.js +1 -1
  122. package/es/components/TextInput/PasswordInput.js +4 -4
  123. package/es/components/TextInput/TextInput.js +3 -3
  124. package/es/components/Theme/index.js +3 -3
  125. package/es/components/Tile/Tile.js +3 -3
  126. package/es/components/TimePicker/TimePicker.js +1 -1
  127. package/es/components/Toggletip/index.js +4 -4
  128. package/es/components/Tooltip/DefinitionTooltip.js +1 -1
  129. package/es/components/Tooltip/Tooltip.js +3 -3
  130. package/es/components/TreeView/TreeNode.js +6 -6
  131. package/es/components/TreeView/TreeView.js +5 -5
  132. package/es/components/UIShell/HeaderContainer.js +1 -1
  133. package/es/components/UIShell/HeaderMenu.js +1 -1
  134. package/es/components/UIShell/Link.js +2 -2
  135. package/es/components/UIShell/SideNavItems.js +1 -1
  136. package/es/components/UIShell/Switcher.js +1 -1
  137. package/es/components/UIShell/SwitcherItem.js +1 -1
  138. package/es/index.d.ts +1 -1
  139. package/es/internal/FloatingMenu.js +4 -4
  140. package/es/internal/Selection.js +6 -6
  141. package/es/internal/useMergedRefs.js +1 -1
  142. package/es/internal/useNoInteractiveChildren.js +4 -4
  143. package/es/internal/useOutsideClick.js +1 -1
  144. package/es/internal/useOverflowItems.js +6 -6
  145. package/es/internal/useResizeObserver.js +3 -3
  146. package/es/internal/useSavedCallback.js +1 -1
  147. package/es/internal/warning.js +1 -1
  148. package/es/prop-types/isRequiredOneOf.js +2 -2
  149. package/es/tools/events.js +1 -1
  150. package/es/tools/wrapComponent.js +1 -1
  151. package/es/types/common.d.ts +6 -2
  152. package/lib/components/AILabel/index.js +4 -4
  153. package/lib/components/Breadcrumb/BreadcrumbItem.js +1 -1
  154. package/lib/components/Button/Button.js +2 -2
  155. package/lib/components/ChatButton/ChatButton.js +1 -1
  156. package/lib/components/Checkbox/Checkbox.js +1 -1
  157. package/lib/components/CheckboxGroup/CheckboxGroup.js +1 -1
  158. package/lib/components/ComboBox/ComboBox.d.ts +3 -11
  159. package/lib/components/ComboBox/ComboBox.js +15 -25
  160. package/lib/components/ComboButton/index.d.ts +5 -8
  161. package/lib/components/ComboButton/index.js +9 -12
  162. package/lib/components/ComposedModal/ComposedModal.js +21 -35
  163. package/lib/components/DataTable/DataTable.d.ts +25 -16
  164. package/lib/components/DataTable/DataTable.js +33 -34
  165. package/lib/components/DataTable/Table.js +2 -2
  166. package/lib/components/DataTable/TableBatchActions.d.ts +49 -10
  167. package/lib/components/DataTable/TableBatchActions.js +26 -21
  168. package/lib/components/DataTable/TableExpandHeader.js +2 -2
  169. package/lib/components/DataTable/TableExpandRow.js +1 -1
  170. package/lib/components/DataTable/TableHeader.d.ts +8 -10
  171. package/lib/components/DataTable/TableHeader.js +11 -13
  172. package/lib/components/DataTable/TableRow.js +5 -5
  173. package/lib/components/DataTable/TableSlugRow.js +1 -1
  174. package/lib/components/DataTable/TableToolbarMenu.js +1 -1
  175. package/lib/components/DataTable/TableToolbarSearch.d.ts +8 -7
  176. package/lib/components/DataTable/TableToolbarSearch.js +11 -11
  177. package/lib/components/DataTable/index.d.ts +2 -2
  178. package/lib/components/DataTable/state/sorting.d.ts +2 -2
  179. package/lib/components/DataTable/state/sorting.js +1 -1
  180. package/lib/components/DataTable/tools/sorting.js +1 -1
  181. package/lib/components/DatePicker/DatePicker.js +9 -9
  182. package/lib/components/DatePickerInput/DatePickerInput.js +5 -5
  183. package/lib/components/Dialog/Dialog.js +6 -6
  184. package/lib/components/Dropdown/Dropdown.d.ts +1 -1
  185. package/lib/components/Dropdown/Dropdown.js +8 -8
  186. package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +1 -1
  187. package/lib/components/FileUploader/FileUploader.js +4 -4
  188. package/lib/components/FileUploader/FileUploaderButton.js +1 -1
  189. package/lib/components/FileUploader/FileUploaderDropContainer.js +1 -1
  190. package/lib/components/FileUploader/FileUploaderItem.js +2 -2
  191. package/lib/components/FluidComboBox/FluidComboBox.d.ts +4 -7
  192. package/lib/components/FluidComboBox/FluidComboBox.js +1 -1
  193. package/lib/components/FluidDropdown/FluidDropdown.d.ts +4 -8
  194. package/lib/components/FluidDropdown/FluidDropdown.js +1 -1
  195. package/lib/components/FluidMultiSelect/FluidFilterableMultiSelect.d.ts +3 -7
  196. package/lib/components/FluidMultiSelect/FluidMultiSelect.d.ts +3 -7
  197. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +3 -3
  198. package/lib/components/FluidNumberInput/FluidNumberInput.d.ts +4 -7
  199. package/lib/components/FluidNumberInput/FluidNumberInput.js +2 -2
  200. package/lib/components/FluidSearch/FluidSearch.js +1 -1
  201. package/lib/components/FluidSelect/FluidSelect.js +1 -1
  202. package/lib/components/FluidTextInput/FluidTextInput.js +1 -1
  203. package/lib/components/FluidTimePicker/FluidTimePicker.js +3 -3
  204. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +1 -1
  205. package/lib/components/Grid/CSSGrid.js +3 -3
  206. package/lib/components/Grid/Column.js +2 -2
  207. package/lib/components/Grid/ColumnHang.js +1 -1
  208. package/lib/components/Grid/FlexGrid.js +1 -1
  209. package/lib/components/Grid/Row.js +1 -1
  210. package/lib/components/Heading/index.js +2 -2
  211. package/lib/components/IconButton/index.js +2 -2
  212. package/lib/components/IconIndicator/index.js +2 -2
  213. package/lib/components/InlineCheckbox/InlineCheckbox.js +1 -1
  214. package/lib/components/Layout/index.js +2 -2
  215. package/lib/components/LayoutDirection/LayoutDirection.js +1 -1
  216. package/lib/components/Link/Link.js +2 -2
  217. package/lib/components/ListBox/ListBoxField.d.ts +0 -1
  218. package/lib/components/ListBox/ListBoxMenuIcon.d.ts +8 -4
  219. package/lib/components/ListBox/ListBoxMenuIcon.js +10 -6
  220. package/lib/components/ListBox/ListBoxMenuItem.js +2 -2
  221. package/lib/components/ListBox/ListBoxSelection.d.ts +3 -6
  222. package/lib/components/ListBox/ListBoxSelection.js +4 -10
  223. package/lib/components/ListBox/index.d.ts +5 -3
  224. package/lib/components/ListBox/next/ListBoxSelection.d.ts +6 -13
  225. package/lib/components/ListBox/next/ListBoxSelection.js +16 -8
  226. package/lib/components/ListBox/next/ListBoxTrigger.d.ts +5 -10
  227. package/lib/components/ListBox/next/ListBoxTrigger.js +5 -6
  228. package/lib/components/Menu/MenuContext.js +1 -1
  229. package/lib/components/Menu/MenuItem.js +1 -1
  230. package/lib/components/MenuButton/index.js +5 -5
  231. package/lib/components/Modal/Modal.js +19 -35
  232. package/lib/components/ModalWrapper/ModalWrapper.js +2 -2
  233. package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +3 -12
  234. package/lib/components/MultiSelect/FilterableMultiSelect.js +18 -27
  235. package/lib/components/MultiSelect/MultiSelect.d.ts +2 -2
  236. package/lib/components/MultiSelect/MultiSelect.js +12 -12
  237. package/lib/components/Notification/Notification.js +1 -1
  238. package/lib/components/NumberInput/NumberInput.d.ts +2 -5
  239. package/lib/components/NumberInput/NumberInput.js +12 -18
  240. package/lib/components/OverflowMenu/OverflowMenu.d.ts +2 -2
  241. package/lib/components/OverflowMenu/OverflowMenu.js +4 -4
  242. package/lib/components/OverflowMenu/next/index.d.ts +1 -1
  243. package/lib/components/OverflowMenu/next/index.js +2 -2
  244. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +2 -2
  245. package/lib/components/PageHeader/PageHeader.js +12 -12
  246. package/lib/components/Pagination/Pagination.js +3 -3
  247. package/lib/components/PaginationNav/PaginationNav.d.ts +6 -9
  248. package/lib/components/PaginationNav/PaginationNav.js +21 -22
  249. package/lib/components/Popover/index.js +8 -8
  250. package/lib/components/ProgressBar/ProgressBar.js +2 -2
  251. package/lib/components/ProgressIndicator/ProgressIndicator.d.ts +11 -15
  252. package/lib/components/ProgressIndicator/ProgressIndicator.js +15 -15
  253. package/lib/components/RadioButton/RadioButton.js +1 -1
  254. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +1 -1
  255. package/lib/components/RadioTile/RadioTile.js +1 -1
  256. package/lib/components/Select/Select.js +7 -5
  257. package/lib/components/ShapeIndicator/index.js +2 -2
  258. package/lib/components/Slider/Slider.d.ts +7 -9
  259. package/lib/components/Slider/Slider.js +16 -20
  260. package/lib/components/Stack/HStack.js +1 -1
  261. package/lib/components/Stack/Stack.js +1 -1
  262. package/lib/components/Stack/VStack.js +1 -1
  263. package/lib/components/StructuredList/StructuredList.js +3 -3
  264. package/lib/components/Tabs/Tabs.js +12 -12
  265. package/lib/components/Tag/DismissibleTag.js +3 -3
  266. package/lib/components/Tag/OperationalTag.js +2 -2
  267. package/lib/components/Tag/SelectableTag.js +2 -2
  268. package/lib/components/Tag/Tag.js +4 -4
  269. package/lib/components/Tag/isEllipsisActive.js +1 -1
  270. package/lib/components/Text/Text.js +1 -1
  271. package/lib/components/TextArea/TextArea.js +1 -1
  272. package/lib/components/TextInput/PasswordInput.js +4 -4
  273. package/lib/components/TextInput/TextInput.js +3 -3
  274. package/lib/components/Theme/index.js +3 -3
  275. package/lib/components/Tile/Tile.js +3 -3
  276. package/lib/components/TimePicker/TimePicker.js +1 -1
  277. package/lib/components/Toggletip/index.js +4 -4
  278. package/lib/components/Tooltip/DefinitionTooltip.js +1 -1
  279. package/lib/components/Tooltip/Tooltip.js +3 -3
  280. package/lib/components/TreeView/TreeNode.js +6 -6
  281. package/lib/components/TreeView/TreeView.js +5 -5
  282. package/lib/components/UIShell/HeaderContainer.js +1 -1
  283. package/lib/components/UIShell/HeaderMenu.js +1 -1
  284. package/lib/components/UIShell/Link.js +2 -2
  285. package/lib/components/UIShell/SideNavItems.js +1 -1
  286. package/lib/components/UIShell/Switcher.js +1 -1
  287. package/lib/components/UIShell/SwitcherItem.js +1 -1
  288. package/lib/index.d.ts +1 -1
  289. package/lib/internal/FloatingMenu.js +4 -4
  290. package/lib/internal/Selection.js +6 -6
  291. package/lib/internal/useMergedRefs.js +1 -1
  292. package/lib/internal/useNoInteractiveChildren.js +4 -4
  293. package/lib/internal/useOutsideClick.js +1 -1
  294. package/lib/internal/useOverflowItems.js +6 -6
  295. package/lib/internal/useResizeObserver.js +3 -3
  296. package/lib/internal/useSavedCallback.js +1 -1
  297. package/lib/internal/warning.js +1 -1
  298. package/lib/prop-types/isRequiredOneOf.js +2 -2
  299. package/lib/tools/events.js +1 -1
  300. package/lib/tools/wrapComponent.js +1 -1
  301. package/lib/types/common.d.ts +6 -2
  302. package/package.json +9 -9
@@ -4,13 +4,13 @@
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
- import React from 'react';
8
- import { type MultiSelectProps } from '../MultiSelect';
7
+ import React, { type ComponentProps } from 'react';
8
+ import { MultiSelect, type MultiSelectProps } from '../MultiSelect';
9
9
  import { UseSelectProps } from 'downshift';
10
10
  interface OnChangeData<ItemType> {
11
11
  selectedItems: ItemType[] | null;
12
12
  }
13
- export interface FluidMultiSelectProps<ItemType> extends MultiSelectProps<ItemType> {
13
+ export interface FluidMultiSelectProps<ItemType> extends MultiSelectProps<ItemType>, Pick<ComponentProps<typeof MultiSelect>, 'translateWithId'> {
14
14
  /**
15
15
  * Specify an optional className to be applied to the outer FluidForm wrapper
16
16
  */
@@ -128,10 +128,6 @@ export interface FluidMultiSelectProps<ItemType> extends MultiSelectProps<ItemTy
128
128
  * visiting this control
129
129
  */
130
130
  titleText?: React.ReactNode;
131
- /**
132
- * Callback function for translating ListBoxMenuIcon SVG title
133
- */
134
- translateWithId?: (id: string) => string;
135
131
  /**
136
132
  * Specify title to show title on hover
137
133
  */
@@ -34,14 +34,14 @@ const FluidMultiSelect = /*#__PURE__*/React.forwardRef(function FluidMultiSelect
34
34
  }
35
35
  }, isFilterable ?
36
36
  /*#__PURE__*/
37
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
37
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452
38
38
  // @ts-ignore
39
39
  React.createElement(FilterableMultiSelect.FilterableMultiSelect, _rollupPluginBabelHelpers.extends({
40
40
  ref: ref,
41
41
  className: classNames
42
42
  }, other)) :
43
43
  /*#__PURE__*/
44
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20071
44
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452
45
45
  // @ts-ignore
46
46
  React.createElement(MultiSelect.MultiSelect, _rollupPluginBabelHelpers.extends({
47
47
  ref: ref,
@@ -193,7 +193,7 @@ FluidMultiSelect.propTypes = {
193
193
  */
194
194
  titleText: PropTypes.node,
195
195
  /**
196
- * Callback function for translating ListBoxMenuIcon SVG title
196
+ * Translates component strings using your i18n tool.
197
197
  */
198
198
  translateWithId: PropTypes.func,
199
199
  /**
@@ -1,12 +1,13 @@
1
1
  /**
2
- * Copyright IBM Corp. 2022
2
+ * Copyright IBM Corp. 2022, 2025
3
3
  *
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
- import React from 'react';
7
+ import React, { type ComponentProps } from 'react';
8
+ import { NumberInput } from '../NumberInput';
8
9
  import { type NumberFormatOptions } from '@carbon/utilities';
9
- export interface FluidNumberInputProps {
10
+ export interface FluidNumberInputProps extends Pick<ComponentProps<typeof NumberInput>, 'translateWithId'> {
10
11
  /**
11
12
  * `true` to allow empty string.
12
13
  */
@@ -108,10 +109,6 @@ export interface FluidNumberInputProps {
108
109
  * Specify how much the values should increase/decrease upon clicking on up/down button
109
110
  */
110
111
  step?: number;
111
- /**
112
- * Provide custom text for the component for each translation id
113
- */
114
- translateWithId?: (id: string) => string;
115
112
  /**
116
113
  * **Experimental**: Specify if the input should be of type text or number.
117
114
  * Use type="text" with `locale`, `formatOptions`, and guide user input with
@@ -19,7 +19,7 @@ var usePrefix = require('../../internal/usePrefix.js');
19
19
  var FormContext = require('../FluidForm/FormContext.js');
20
20
  var NumberFormatPropTypes = require('../NumberInput/NumberFormatPropTypes.js');
21
21
 
22
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
22
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
23
23
  const FluidNumberInput = /*#__PURE__*/React.forwardRef(({
24
24
  className,
25
25
  ...other
@@ -132,7 +132,7 @@ FluidNumberInput.propTypes = {
132
132
  */
133
133
  step: PropTypes.number,
134
134
  /**
135
- * Provide custom text for the component for each translation id
135
+ * Translates component strings using your i18n tool.
136
136
  */
137
137
  translateWithId: PropTypes.func,
138
138
  /**
@@ -18,7 +18,7 @@ require('../Search/Search.Skeleton.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
19
19
  var FormContext = require('../FluidForm/FormContext.js');
20
20
 
21
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
21
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
22
22
  const FluidSearch = /*#__PURE__*/React.forwardRef(({
23
23
  className,
24
24
  ...other
@@ -18,7 +18,7 @@ require('../Select/Select.Skeleton.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
19
19
  var FormContext = require('../FluidForm/FormContext.js');
20
20
 
21
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
21
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
22
22
  const FluidSelect = /*#__PURE__*/React.forwardRef(({
23
23
  className,
24
24
  children,
@@ -20,7 +20,7 @@ var PasswordInput = require('../TextInput/PasswordInput.js');
20
20
  var usePrefix = require('../../internal/usePrefix.js');
21
21
  var FormContext = require('../FluidForm/FormContext.js');
22
22
 
23
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
23
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
24
24
  const FluidTextInput = /*#__PURE__*/React.forwardRef(({
25
25
  className,
26
26
  isPassword,
@@ -19,7 +19,7 @@ require('../FluidTextInput/FluidTextInput.Skeleton.js');
19
19
  var usePrefix = require('../../internal/usePrefix.js');
20
20
  var iconsReact = require('@carbon/icons-react');
21
21
 
22
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
22
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
23
23
  const FluidTimePicker = /*#__PURE__*/React.forwardRef(({
24
24
  className,
25
25
  children,
@@ -52,7 +52,7 @@ const FluidTimePicker = /*#__PURE__*/React.forwardRef(({
52
52
  if (disabled) {
53
53
  return React.Children.toArray(children).map(child =>
54
54
  /*#__PURE__*/
55
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
55
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
56
56
  React.cloneElement(child, {
57
57
  disabled: true
58
58
  }));
@@ -60,7 +60,7 @@ const FluidTimePicker = /*#__PURE__*/React.forwardRef(({
60
60
  if (readOnly) {
61
61
  return React.Children.toArray(children).map(child =>
62
62
  /*#__PURE__*/
63
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
63
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
64
64
  React.cloneElement(child, {
65
65
  readOnly: true
66
66
  }));
@@ -15,7 +15,7 @@ var PropTypes = require('prop-types');
15
15
  var FluidSelect = require('../FluidSelect/FluidSelect.js');
16
16
  require('../FluidSelect/FluidSelect.Skeleton.js');
17
17
 
18
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
18
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
19
19
  const FluidTimePickerSelect = /*#__PURE__*/React.forwardRef(({
20
20
  children,
21
21
  className,
@@ -14,7 +14,7 @@ var React = require('react');
14
14
  var usePrefix = require('../../internal/usePrefix.js');
15
15
  var GridContext = require('./GridContext.js');
16
16
 
17
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
17
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
18
18
  const CSSGrid = /*#__PURE__*/React.forwardRef(({
19
19
  align,
20
20
  as,
@@ -98,9 +98,9 @@ CSSGrid.propTypes = {
98
98
  narrow: PropTypes.bool
99
99
  };
100
100
 
101
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20071
101
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20452
102
102
 
103
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
103
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
104
104
  const Subgrid = /*#__PURE__*/React.forwardRef(({
105
105
  as,
106
106
  className: customClassName,
@@ -36,7 +36,7 @@ function _interopNamespaceDefault(e) {
36
36
 
37
37
  var FeatureFlags__namespace = /*#__PURE__*/_interopNamespaceDefault(FeatureFlags);
38
38
 
39
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
39
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
40
40
  const Column = /*#__PURE__*/React.forwardRef(({
41
41
  as,
42
42
  children,
@@ -139,7 +139,7 @@ Column.propTypes = {
139
139
  xlg: spanPropType
140
140
  };
141
141
 
142
- // eslint-disable-next-line @typescript-eslint/no-explicit-any , react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
142
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any , react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
143
143
  const CSSGridColumn = /*#__PURE__*/React.forwardRef(({
144
144
  as: BaseComponent = 'div',
145
145
  children,
@@ -26,7 +26,7 @@ function ColumnHang({
26
26
  const prefix = usePrefix.usePrefix();
27
27
  const className = cx(customClassName, `${prefix}--grid-column-hang`);
28
28
  // cast as any to let TypeScript allow passing in attributes to base component
29
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
30
30
  const BaseComponentAsAny = BaseComponent;
31
31
  return /*#__PURE__*/React.createElement(BaseComponentAsAny, _rollupPluginBabelHelpers.extends({}, rest, {
32
32
  className: className
@@ -14,7 +14,7 @@ var React = require('react');
14
14
  var usePrefix = require('../../internal/usePrefix.js');
15
15
  var GridContext = require('./GridContext.js');
16
16
 
17
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
17
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
18
18
  const FlexGrid = /*#__PURE__*/React.forwardRef(({
19
19
  as,
20
20
  condensed = false,
@@ -30,7 +30,7 @@ function Row({
30
30
  [`${prefix}--row--narrow`]: narrow
31
31
  });
32
32
  // TypeScript type validation reports conflicts on different instances of keyof JSX.IntrinsicElements
33
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
34
34
  const BaseComponentAsAny = BaseComponent;
35
35
  return /*#__PURE__*/React.createElement(BaseComponentAsAny, _rollupPluginBabelHelpers.extends({
36
36
  className: className
@@ -19,7 +19,7 @@ const Section = /*#__PURE__*/React.forwardRef(function Section({
19
19
  }, ref) {
20
20
  const parentLevel = React.useContext(HeadingContext);
21
21
  const level = levelOverride ?? parentLevel + 1;
22
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
23
23
  const BaseComponentAsAny = BaseComponent;
24
24
  return /*#__PURE__*/React.createElement(HeadingContext.Provider, {
25
25
  value: Math.min(level, 6)
@@ -46,7 +46,7 @@ Section.propTypes = {
46
46
  */
47
47
  level: PropTypes.number
48
48
  };
49
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
49
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
50
50
  const Heading = /*#__PURE__*/React.forwardRef((props, ref) => {
51
51
  const HeadingIntrinsic = `h${React.useContext(HeadingContext)}`;
52
52
  return /*#__PURE__*/React.createElement(HeadingIntrinsic, _rollupPluginBabelHelpers.extends({
@@ -21,7 +21,7 @@ var index = require('../BadgeIndicator/index.js');
21
21
  var mapPopoverAlign = require('../../tools/mapPopoverAlign.js');
22
22
 
23
23
  const IconButtonKinds = ['primary', 'secondary', 'ghost', 'tertiary'];
24
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
24
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
25
25
  const IconButton = /*#__PURE__*/React.forwardRef(({
26
26
  align,
27
27
  autoAlign = false,
@@ -47,7 +47,7 @@ const IconButton = /*#__PURE__*/React.forwardRef(({
47
47
  [`${prefix}--icon-tooltip--disabled`]: disabled
48
48
  });
49
49
  if (badgeCount && (kind !== 'ghost' || size !== 'lg')) {
50
- // eslint-disable-next-line no-console -- https://github.com/carbon-design-system/carbon/issues/20071
50
+ // eslint-disable-next-line no-console -- https://github.com/carbon-design-system/carbon/issues/20452
51
51
  console.warn("The prop BadgeCount must be used with hasIconOnly=true, kind='ghost' and size='lg'");
52
52
  }
53
53
  const badgeId = useId.useId('badge-indicator');
@@ -30,13 +30,13 @@ const iconTypes = {
30
30
  unknown: iconsReact.UnknownFilled,
31
31
  informative: iconsReact.WarningSquareFilled
32
32
  };
33
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
33
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
34
34
  const IconIndicator = /*#__PURE__*/React.forwardRef(({
35
35
  className: customClassName,
36
36
  kind,
37
37
  label,
38
38
  size = 16,
39
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20071
39
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20452
40
40
  ...rest
41
41
  }, ref) => {
42
42
  const prefix = usePrefix.usePrefix();
@@ -15,7 +15,7 @@ var deprecate = require('../../prop-types/deprecate.js');
15
15
  var usePrefix = require('../../internal/usePrefix.js');
16
16
  var useMergedRefs = require('../../internal/useMergedRefs.js');
17
17
 
18
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
18
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
19
19
  const InlineCheckbox = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
20
20
  const {
21
21
  ['aria-label']: ariaLabel,
@@ -24,7 +24,7 @@ const densities = ['condensed', 'normal'];
24
24
  * Size of components within this layout
25
25
  */
26
26
 
27
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
27
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
28
28
  const Layout = /*#__PURE__*/React.forwardRef(({
29
29
  as: BaseComponent = 'div',
30
30
  children,
@@ -67,7 +67,7 @@ Layout.propTypes = {
67
67
  */
68
68
  size: PropTypes.oneOf(sizes)
69
69
  };
70
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
70
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
71
71
  const LayoutConstraint = /*#__PURE__*/React.forwardRef(({
72
72
  as: BaseComponent = 'div',
73
73
  children,
@@ -12,7 +12,7 @@ var PropTypes = require('prop-types');
12
12
  var React = require('react');
13
13
  var LayoutDirectionContext = require('./LayoutDirectionContext.js');
14
14
 
15
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20071
15
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20452
16
16
 
17
17
  function LayoutDirection({
18
18
  as: BaseComponent = 'div',
@@ -16,7 +16,7 @@ var React = require('react');
16
16
  var usePrefix = require('../../internal/usePrefix.js');
17
17
 
18
18
  // First create the component with basic types
19
- // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20071
19
+ // eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
20
20
  const LinkBase = /*#__PURE__*/React.forwardRef(({
21
21
  as: BaseComponent,
22
22
  children,
@@ -53,7 +53,7 @@ const LinkBase = /*#__PURE__*/React.forwardRef(({
53
53
  linkProps['aria-disabled'] = true;
54
54
  }
55
55
 
56
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
56
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
57
57
  const BaseComponentAsAny = BaseComponent ?? 'a';
58
58
  const handleOnClick = event => {
59
59
  if (disabled) {
@@ -5,7 +5,6 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React, { type HTMLAttributes } from 'react';
8
- export declare const translationIds: {};
9
8
  export interface ListBoxFieldProps extends HTMLAttributes<HTMLDivElement> {
10
9
  /**
11
10
  * Specify if the parent <ListBox> is disabled
@@ -1,13 +1,17 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2025
3
3
  *
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
7
  import React from 'react';
8
- import { TranslateWithId } from '../../types/common';
9
- export type ListBoxMenuIconTranslationKey = 'close.menu' | 'open.menu';
10
- export interface ListBoxMenuIconProps extends TranslateWithId<ListBoxMenuIconTranslationKey> {
8
+ import type { TranslateWithId } from '../../types/common';
9
+ declare const translationIds: {
10
+ readonly 'close.menu': "close.menu";
11
+ readonly 'open.menu': "open.menu";
12
+ };
13
+ type TranslationKey = keyof typeof translationIds;
14
+ export interface ListBoxMenuIconProps extends TranslateWithId<TranslationKey> {
11
15
  /**
12
16
  * Specify whether the menu is currently open, which will influence the
13
17
  * direction of the menu icon
@@ -15,11 +15,17 @@ var PropTypes = require('prop-types');
15
15
  var iconsReact = require('@carbon/icons-react');
16
16
  var usePrefix = require('../../internal/usePrefix.js');
17
17
 
18
+ const translationIds = {
19
+ 'close.menu': 'close.menu',
20
+ 'open.menu': 'open.menu'
21
+ };
18
22
  const defaultTranslations = {
19
- 'close.menu': 'Close menu',
20
- 'open.menu': 'Open menu'
23
+ [translationIds['close.menu']]: 'Close menu',
24
+ [translationIds['open.menu']]: 'Open menu'
25
+ };
26
+ const defaultTranslateWithId = messageId => {
27
+ return defaultTranslations[messageId];
21
28
  };
22
- const defaultTranslateWithId = id => defaultTranslations[id];
23
29
  /**
24
30
  * `ListBoxMenuIcon` is used to orient the icon up or down depending on the
25
31
  * state of the menu for a given `ListBox`
@@ -47,9 +53,7 @@ ListBoxMenuIcon.propTypes = {
47
53
  */
48
54
  isOpen: PropTypes.bool.isRequired,
49
55
  /**
50
- * i18n hook used to provide the appropriate description for the given menu
51
- * icon. This function takes a ListBoxMenuIconTranslationKey and should
52
- * return a string message for that given message id.
56
+ * Translates component strings using your i18n tool.
53
57
  */
54
58
  translateWithId: PropTypes.func
55
59
  };
@@ -27,7 +27,7 @@ var useMergedRefs = require('../../internal/useMergedRefs.js');
27
27
  * @returns An object containing the truncation state and the merged ref.
28
28
  */
29
29
  const useIsTruncated = (forwardedRef,
30
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20071
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
31
31
  deps = []) => {
32
32
  const localRef = React.useRef(null);
33
33
  const mergedRef = useMergedRefs.useMergedRefs([...(forwardedRef ? [forwardedRef] : []), localRef]);
@@ -41,7 +41,7 @@ deps = []) => {
41
41
  } = element;
42
42
  setIsTruncated(offsetWidth < scrollWidth);
43
43
  }
44
- // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20071
44
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20452
45
45
  }, [localRef, ...deps]);
46
46
  return {
47
47
  isTruncated,
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2025
3
3
  *
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
7
  import React from 'react';
8
8
  import { KeyboardEvent, MouseEvent } from 'react';
9
- import { TranslateWithId } from '../../types/common';
9
+ import type { TranslateWithId } from '../../types/common';
10
10
  export interface ListBoxSelectionProps extends TranslateWithId<TranslationKey> {
11
11
  /**
12
12
  * Specify a function to be invoked when a user interacts with the clear
@@ -33,13 +33,10 @@ export interface ListBoxSelectionProps extends TranslateWithId<TranslationKey> {
33
33
  selectionCount?: number;
34
34
  }
35
35
  export type ListBoxSelectionComponent = React.FC<ListBoxSelectionProps>;
36
- export declare const translationIds: {
36
+ declare const translationIds: {
37
37
  readonly 'clear.all': "clear.all";
38
38
  readonly 'clear.selection': "clear.selection";
39
39
  };
40
- /**
41
- * Message ids that will be passed to translateWithId().
42
- */
43
40
  type TranslationKey = keyof typeof translationIds;
44
41
  /**
45
42
  * `ListBoxSelection` is used to provide controls for clearing a selection, in
@@ -20,16 +20,13 @@ const translationIds = {
20
20
  'clear.all': 'clear.all',
21
21
  'clear.selection': 'clear.selection'
22
22
  };
23
-
24
- /**
25
- * Message ids that will be passed to translateWithId().
26
- */
27
-
28
23
  const defaultTranslations = {
29
24
  [translationIds['clear.all']]: 'Clear all selected items',
30
25
  [translationIds['clear.selection']]: 'Clear selected item'
31
26
  };
32
- const defaultTranslateWithId = id => defaultTranslations[id];
27
+ const defaultTranslateWithId = messageId => {
28
+ return defaultTranslations[messageId];
29
+ };
33
30
 
34
31
  /**
35
32
  * `ListBoxSelection` is used to provide controls for clearing a selection, in
@@ -112,12 +109,9 @@ ListBoxSelection.propTypes = {
112
109
  */
113
110
  selectionCount: PropTypes.number,
114
111
  /**
115
- * i18n hook used to provide the appropriate description for the given menu
116
- * icon. This function takes in an id defined in `translationIds` and should
117
- * return a string message for that given message id.
112
+ * Translates component strings using your i18n tool.
118
113
  */
119
114
  translateWithId: PropTypes.func
120
115
  };
121
116
 
122
117
  exports.default = ListBoxSelection;
123
- exports.translationIds = translationIds;
@@ -5,12 +5,13 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  export * from './ListBoxPropTypes';
8
+ import type { ComponentProps } from 'react';
8
9
  import ListBoxInternal from './ListBox';
9
10
  import { ListBoxFieldComponent } from './ListBoxField';
10
11
  import ListBoxMenu from './ListBoxMenu';
11
- import { ListBoxMenuIconComponent } from './ListBoxMenuIcon';
12
+ import ListBoxMenuIcon, { ListBoxMenuIconComponent } from './ListBoxMenuIcon';
12
13
  import ListBoxMenuItem from './ListBoxMenuItem';
13
- import { ListBoxSelectionComponent } from './ListBoxSelection';
14
+ import ListBoxSelection, { ListBoxSelectionComponent } from './ListBoxSelection';
14
15
  type ListBoxMenuComponent = typeof ListBoxMenu;
15
16
  type ListBoxMenuItemComponent = typeof ListBoxMenuItem;
16
17
  type ListBoxPartialComponent = typeof ListBoxInternal;
@@ -23,4 +24,5 @@ export interface ListBoxComponent extends ListBoxPartialComponent {
23
24
  }
24
25
  declare const ListBox: ListBoxComponent;
25
26
  export default ListBox;
26
- export type { ListBoxMenuIconTranslationKey } from './ListBoxMenuIcon';
27
+ export type ListBoxMenuIconTranslationKey = Parameters<NonNullable<ComponentProps<typeof ListBoxMenuIcon>['translateWithId']>>[0];
28
+ export type ListBoxSelectionTranslationKey = Parameters<NonNullable<ComponentProps<typeof ListBoxSelection>['translateWithId']>>[0];
@@ -1,22 +1,23 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2024
2
+ * Copyright IBM Corp. 2016, 2025
3
3
  *
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
7
  import React from 'react';
8
8
  import PropTypes from 'prop-types';
9
+ import type { TranslateWithId } from '../../../types/common';
9
10
  /**
10
11
  * `ListBoxSelection` is used to provide controls for clearing a selection, in
11
12
  * addition to conditionally rendering a badge if the control has more than one
12
13
  * selection.
13
14
  */
14
- export declare const translationIds: {
15
+ declare const translationIds: {
15
16
  readonly 'clear.all': "clear.all";
16
17
  readonly 'clear.selection': "clear.selection";
17
18
  };
18
- export type TranslationKey = keyof typeof translationIds;
19
- export interface ListBoxSelectionProps {
19
+ type TranslationKey = keyof typeof translationIds;
20
+ export interface ListBoxSelectionProps extends TranslateWithId<TranslationKey> {
20
21
  /**
21
22
  * Specify a function to be invoked when a user interacts with the clear
22
23
  * selection element.
@@ -27,12 +28,6 @@ export interface ListBoxSelectionProps {
27
28
  * whether the selection should display a badge or a single clear icon.
28
29
  */
29
30
  selectionCount?: number;
30
- /**
31
- * i18n hook used to provide the appropriate description for the given menu
32
- * icon. This function takes in an id defined in `translationIds` and should
33
- * return a string message for that given message id.
34
- */
35
- translateWithId?: (id: TranslationKey) => string;
36
31
  /**
37
32
  * Specify whether or not the clear selection element should be disabled
38
33
  */
@@ -104,9 +99,7 @@ declare namespace ListBoxSelection {
104
99
  */
105
100
  selectionCount: PropTypes.Requireable<number>;
106
101
  /**
107
- * i18n hook used to provide the appropriate description for the given menu
108
- * icon. This function takes in an id defined in `translationIds` and should
109
- * return a string message for that given message id.
102
+ * Translates component strings using your i18n tool.
110
103
  */
111
104
  translateWithId: PropTypes.Requireable<(...args: any[]) => any>;
112
105
  };
@@ -17,13 +17,23 @@ var iconsReact = require('@carbon/icons-react');
17
17
  var usePrefix = require('../../../internal/usePrefix.js');
18
18
 
19
19
  var _Close, _Close2;
20
+ /**
21
+ * `ListBoxSelection` is used to provide controls for clearing a selection, in
22
+ * addition to conditionally rendering a badge if the control has more than one
23
+ * selection.
24
+ */
25
+
26
+ const translationIds = {
27
+ 'clear.all': 'clear.all',
28
+ 'clear.selection': 'clear.selection'
29
+ };
20
30
  const defaultTranslations = {
21
- 'clear.all': 'Clear all selected items',
22
- 'clear.selection': 'Clear selected item'
31
+ [translationIds['clear.all']]: 'Clear all selected items',
32
+ [translationIds['clear.selection']]: 'Clear selected item'
33
+ };
34
+ const defaultTranslateWithId = messageId => {
35
+ return defaultTranslations[messageId];
23
36
  };
24
- function defaultTranslateWithId(id) {
25
- return defaultTranslations[id];
26
- }
27
37
  function ListBoxSelection({
28
38
  clearSelection,
29
39
  selectionCount,
@@ -120,9 +130,7 @@ ListBoxSelection.propTypes = {
120
130
  */
121
131
  selectionCount: PropTypes.number,
122
132
  /**
123
- * i18n hook used to provide the appropriate description for the given menu
124
- * icon. This function takes in an id defined in `translationIds` and should
125
- * return a string message for that given message id.
133
+ * Translates component strings using your i18n tool.
126
134
  */
127
135
  translateWithId: PropTypes.func
128
136
  };