@carbon/react 1.80.1 → 1.81.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 (293) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +785 -785
  2. package/es/components/Accordion/AccordionItem.d.ts +2 -2
  3. package/es/components/AspectRatio/AspectRatio.d.ts +2 -2
  4. package/es/components/Button/Button.js +3 -0
  5. package/es/components/Button/ButtonBase.d.ts +2 -2
  6. package/es/components/ChatButton/ChatButton.js +5 -3
  7. package/es/components/CodeSnippet/CodeSnippet.js +2 -0
  8. package/es/components/ComboBox/ComboBox.d.ts +1 -1
  9. package/es/components/ComboBox/ComboBox.js +52 -30
  10. package/es/components/ComposedModal/ComposedModal.d.ts +1 -1
  11. package/es/components/ComposedModal/ComposedModal.js +1 -2
  12. package/es/components/ComposedModal/ModalFooter.js +0 -1
  13. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +0 -1
  14. package/es/components/ContentSwitcher/ContentSwitcher.d.ts +1 -1
  15. package/es/components/ContextMenu/useContextMenu.d.ts +1 -1
  16. package/es/components/DataTable/DataTable.d.ts +5 -5
  17. package/es/components/DataTable/DataTable.js +1 -1
  18. package/es/components/DataTable/TableActionList.d.ts +1 -1
  19. package/es/components/DataTable/TableCell.js +28 -4
  20. package/es/components/DataTable/TableExpandHeader.d.ts +1 -1
  21. package/es/components/DataTable/TableHead.d.ts +1 -1
  22. package/es/components/DataTable/TableToolbarContent.d.ts +1 -1
  23. package/es/components/DataTable/TableToolbarSearch.d.ts +1 -1
  24. package/es/components/DataTable/tools/cells.d.ts +13 -0
  25. package/es/components/DataTable/tools/cells.js +3 -6
  26. package/es/components/DataTable/tools/filter.d.ts +26 -0
  27. package/es/components/DataTable/tools/filter.js +8 -17
  28. package/es/components/DatePicker/DatePicker.js +1 -1
  29. package/es/components/DatePickerInput/DatePickerInput.d.ts +2 -2
  30. package/es/components/Dropdown/Dropdown.d.ts +1 -1
  31. package/es/components/Dropdown/Dropdown.js +6 -6
  32. package/es/components/FeatureFlags/index.d.ts +1 -1
  33. package/es/components/FileUploader/FileUploader.d.ts +6 -1
  34. package/es/components/FileUploader/FileUploader.js +3 -1
  35. package/es/components/FileUploader/FileUploaderButton.d.ts +1 -1
  36. package/es/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
  37. package/es/components/FluidDatePickerInput/FluidDatePickerInput.d.ts +1 -1
  38. package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +5 -6
  39. package/es/components/FluidMultiSelect/FluidFilterableMultiSelect.d.ts +3 -3
  40. package/es/components/FluidMultiSelect/FluidMultiSelect.d.ts +2 -2
  41. package/es/components/FluidMultiSelect/FluidMultiSelect.js +6 -4
  42. package/es/components/FluidNumberInput/FluidNumberInput.Skeleton.js +40 -0
  43. package/es/components/FluidNumberInput/FluidNumberInput.js +123 -0
  44. package/es/components/FluidTextInput/FluidTextInput.js +2 -2
  45. package/es/components/Grid/Column.js +1 -1
  46. package/es/components/Grid/GridTypes.d.ts +6 -1
  47. package/es/components/Layer/LayerLevel.d.ts +3 -3
  48. package/es/components/Layer/LayerLevel.js +4 -3
  49. package/es/components/Layer/index.d.ts +4 -2
  50. package/es/components/Layer/index.js +3 -2
  51. package/es/components/Link/Link.js +3 -1
  52. package/es/components/Menu/Menu.d.ts +1 -1
  53. package/es/components/Menu/Menu.js +4 -14
  54. package/es/components/Menu/MenuContext.d.ts +1 -1
  55. package/es/components/Menu/MenuItem.js +15 -4
  56. package/es/components/Modal/Modal.js +5 -2
  57. package/es/components/ModalWrapper/ModalWrapper.d.ts +2 -2
  58. package/es/components/MultiSelect/FilterableMultiSelect.d.ts +3 -3
  59. package/es/components/MultiSelect/FilterableMultiSelect.js +4 -3
  60. package/es/components/MultiSelect/MultiSelect.d.ts +2 -6
  61. package/es/components/MultiSelect/MultiSelect.js +22 -4
  62. package/es/components/MultiSelect/index.d.ts +2 -4
  63. package/es/components/NumberInput/NumberInput.js +2 -1
  64. package/es/components/OverflowMenu/OverflowMenu.d.ts +7 -1
  65. package/es/components/OverflowMenu/OverflowMenu.js +69 -17
  66. package/es/components/OverflowMenu/index.d.ts +2 -4
  67. package/es/components/OverflowMenu/index.js +10 -6
  68. package/es/components/OverflowMenu/next/index.js +0 -1
  69. package/es/components/OverflowMenuItem/OverflowMenuItem.d.ts +4 -0
  70. package/es/components/PageHeader/PageHeader.d.ts +9 -2
  71. package/es/components/PageHeader/PageHeader.js +16 -4
  72. package/es/components/PageHeader/index.d.ts +2 -2
  73. package/es/components/PageHeader/index.js +1 -1
  74. package/es/components/PaginationNav/PaginationNav.d.ts +1 -1
  75. package/es/components/PaginationNav/PaginationNav.js +2 -1
  76. package/es/components/Popover/index.d.ts +3 -2
  77. package/es/components/Popover/index.js +10 -5
  78. package/es/components/Portal/index.d.ts +1 -1
  79. package/es/components/Search/Search.js +0 -1
  80. package/es/components/SkeletonText/SkeletonText.js +3 -1
  81. package/es/components/Slider/Slider.d.ts +3 -13
  82. package/es/components/Slider/Slider.js +2 -14
  83. package/es/components/Tabs/Tabs.d.ts +2 -2
  84. package/es/components/Tabs/Tabs.js +8 -6
  85. package/es/components/Tabs/usePressable.js +1 -1
  86. package/es/components/Tag/Tag.js +9 -2
  87. package/es/components/Text/Text.js +3 -2
  88. package/es/components/TextInput/ControlledPasswordInput.d.ts +1 -1
  89. package/es/components/TextInput/ControlledPasswordInput.js +0 -6
  90. package/es/components/TextInput/TextInput.d.ts +1 -1
  91. package/es/components/TextInput/TextInput.js +0 -4
  92. package/es/components/TextInput/index.d.ts +6 -0
  93. package/es/components/TextInput/index.js +0 -8
  94. package/es/components/Tile/Tile.js +0 -1
  95. package/es/components/Toggle/Toggle.d.ts +1 -1
  96. package/es/components/ToggleSmall/ToggleSmall.Skeleton.d.ts +9 -14
  97. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +37 -41
  98. package/es/components/Toggletip/index.js +11 -8
  99. package/es/components/Tooltip/Tooltip.d.ts +1 -1
  100. package/es/components/TreeView/TreeView.d.ts +1 -1
  101. package/es/components/UIShell/Content.d.ts +14 -1
  102. package/es/components/UIShell/HeaderGlobalBar.d.ts +1 -1
  103. package/es/components/UIShell/HeaderMenu.d.ts +2 -99
  104. package/es/components/UIShell/HeaderMenu.js +10 -3
  105. package/es/components/UIShell/HeaderMenuButton.d.ts +1 -98
  106. package/es/components/UIShell/HeaderMenuItem.d.ts +3 -4
  107. package/es/components/UIShell/HeaderMenuItem.js +3 -3
  108. package/es/components/UIShell/HeaderName.js +1 -1
  109. package/es/components/UIShell/HeaderNavigation.d.ts +0 -97
  110. package/es/components/UIShell/Link.d.ts +8 -8
  111. package/es/components/UIShell/Link.js +8 -5
  112. package/es/components/UIShell/SideNav.d.ts +3 -3
  113. package/es/components/UIShell/SideNav.js +1 -1
  114. package/es/components/UIShell/SideNavHeader.js +0 -1
  115. package/es/components/UIShell/SideNavLink.d.ts +3 -4
  116. package/es/components/UIShell/SideNavLink.js +8 -3
  117. package/es/components/UIShell/SideNavMenu.js +0 -1
  118. package/es/components/UIShell/SideNavMenuItem.d.ts +1 -49
  119. package/es/components/UIShell/SideNavMenuItem.js +1 -1
  120. package/es/components/UIShell/SideNavSwitcher.js +0 -1
  121. package/es/components/UIShell/SwitcherItem.d.ts +2 -2
  122. package/es/components/UIShell/SwitcherItem.js +1 -1
  123. package/es/index.d.ts +2 -2
  124. package/es/index.js +7 -7
  125. package/es/internal/FloatingMenu.js +2 -1
  126. package/es/internal/clamp.d.ts +10 -0
  127. package/es/internal/clamp.js +13 -0
  128. package/es/internal/useEvent.d.ts +9 -0
  129. package/es/internal/useEvent.js +8 -49
  130. package/es/internal/useId.js +1 -1
  131. package/es/internal/useMatchMedia.d.ts +7 -2
  132. package/es/internal/useMatchMedia.js +9 -10
  133. package/es/internal/useNoInteractiveChildren.js +4 -2
  134. package/es/internal/useOutsideClick.d.ts +1 -1
  135. package/es/prop-types/AriaPropTypes.js +1 -1
  136. package/es/prop-types/isRequiredOneOf.d.ts +16 -0
  137. package/es/prop-types/isRequiredOneOf.js +11 -9
  138. package/es/tools/setupGetInstanceId.d.ts +12 -0
  139. package/es/tools/setupGetInstanceId.js +7 -8
  140. package/es/tools/toggleClass.d.ts +14 -0
  141. package/es/tools/toggleClass.js +9 -10
  142. package/es/tools/wrapComponent.d.ts +1 -1
  143. package/es/types/common.d.ts +1 -6
  144. package/lib/components/Accordion/AccordionItem.d.ts +2 -2
  145. package/lib/components/AspectRatio/AspectRatio.d.ts +2 -2
  146. package/lib/components/Button/Button.js +3 -0
  147. package/lib/components/Button/ButtonBase.d.ts +2 -2
  148. package/lib/components/ChatButton/ChatButton.js +5 -3
  149. package/lib/components/CodeSnippet/CodeSnippet.js +2 -0
  150. package/lib/components/ComboBox/ComboBox.d.ts +1 -1
  151. package/lib/components/ComboBox/ComboBox.js +52 -30
  152. package/lib/components/ComposedModal/ComposedModal.d.ts +1 -1
  153. package/lib/components/ComposedModal/ComposedModal.js +2 -3
  154. package/lib/components/ComposedModal/ModalFooter.js +0 -1
  155. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +0 -1
  156. package/lib/components/ContentSwitcher/ContentSwitcher.d.ts +1 -1
  157. package/lib/components/ContextMenu/useContextMenu.d.ts +1 -1
  158. package/lib/components/DataTable/DataTable.d.ts +5 -5
  159. package/lib/components/DataTable/DataTable.js +1 -1
  160. package/lib/components/DataTable/TableActionList.d.ts +1 -1
  161. package/lib/components/DataTable/TableCell.js +28 -3
  162. package/lib/components/DataTable/TableExpandHeader.d.ts +1 -1
  163. package/lib/components/DataTable/TableHead.d.ts +1 -1
  164. package/lib/components/DataTable/TableToolbarContent.d.ts +1 -1
  165. package/lib/components/DataTable/TableToolbarSearch.d.ts +1 -1
  166. package/lib/components/DataTable/tools/cells.d.ts +13 -0
  167. package/lib/components/DataTable/tools/cells.js +3 -6
  168. package/lib/components/DataTable/tools/filter.d.ts +26 -0
  169. package/lib/components/DataTable/tools/filter.js +8 -17
  170. package/lib/components/DatePicker/DatePicker.js +1 -1
  171. package/lib/components/DatePickerInput/DatePickerInput.d.ts +2 -2
  172. package/lib/components/Dropdown/Dropdown.d.ts +1 -1
  173. package/lib/components/Dropdown/Dropdown.js +6 -6
  174. package/lib/components/FeatureFlags/index.d.ts +1 -1
  175. package/lib/components/FileUploader/FileUploader.d.ts +6 -1
  176. package/lib/components/FileUploader/FileUploader.js +3 -1
  177. package/lib/components/FileUploader/FileUploaderButton.d.ts +1 -1
  178. package/lib/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
  179. package/lib/components/FluidDatePickerInput/FluidDatePickerInput.d.ts +1 -1
  180. package/lib/components/FluidDatePickerInput/FluidDatePickerInput.js +4 -5
  181. package/lib/components/FluidMultiSelect/FluidFilterableMultiSelect.d.ts +3 -3
  182. package/lib/components/FluidMultiSelect/FluidMultiSelect.d.ts +2 -2
  183. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +7 -5
  184. package/lib/components/FluidNumberInput/FluidNumberInput.Skeleton.js +50 -0
  185. package/lib/components/FluidNumberInput/FluidNumberInput.js +133 -0
  186. package/lib/components/FluidTextInput/FluidTextInput.js +2 -2
  187. package/lib/components/Grid/Column.js +1 -1
  188. package/lib/components/Grid/GridTypes.d.ts +6 -1
  189. package/lib/components/Layer/LayerLevel.d.ts +3 -3
  190. package/lib/components/Layer/LayerLevel.js +4 -2
  191. package/lib/components/Layer/index.d.ts +4 -2
  192. package/lib/components/Layer/index.js +2 -1
  193. package/lib/components/Link/Link.js +3 -1
  194. package/lib/components/Menu/Menu.d.ts +1 -1
  195. package/lib/components/Menu/Menu.js +4 -14
  196. package/lib/components/Menu/MenuContext.d.ts +1 -1
  197. package/lib/components/Menu/MenuItem.js +15 -4
  198. package/lib/components/Modal/Modal.js +6 -3
  199. package/lib/components/ModalWrapper/ModalWrapper.d.ts +2 -2
  200. package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +3 -3
  201. package/lib/components/MultiSelect/FilterableMultiSelect.js +3 -2
  202. package/lib/components/MultiSelect/MultiSelect.d.ts +2 -6
  203. package/lib/components/MultiSelect/MultiSelect.js +21 -3
  204. package/lib/components/MultiSelect/index.d.ts +2 -4
  205. package/lib/components/NumberInput/NumberInput.js +2 -1
  206. package/lib/components/OverflowMenu/OverflowMenu.d.ts +7 -1
  207. package/lib/components/OverflowMenu/OverflowMenu.js +69 -17
  208. package/lib/components/OverflowMenu/index.d.ts +2 -4
  209. package/lib/components/OverflowMenu/index.js +9 -5
  210. package/lib/components/OverflowMenu/next/index.js +0 -1
  211. package/lib/components/OverflowMenuItem/OverflowMenuItem.d.ts +4 -0
  212. package/lib/components/PageHeader/PageHeader.d.ts +9 -2
  213. package/lib/components/PageHeader/PageHeader.js +17 -3
  214. package/lib/components/PageHeader/index.d.ts +2 -2
  215. package/lib/components/PageHeader/index.js +2 -0
  216. package/lib/components/PaginationNav/PaginationNav.d.ts +1 -1
  217. package/lib/components/PaginationNav/PaginationNav.js +2 -1
  218. package/lib/components/Popover/index.d.ts +3 -2
  219. package/lib/components/Popover/index.js +10 -5
  220. package/lib/components/Portal/index.d.ts +1 -1
  221. package/lib/components/Search/Search.js +0 -1
  222. package/lib/components/SkeletonText/SkeletonText.js +3 -1
  223. package/lib/components/Slider/Slider.d.ts +3 -13
  224. package/lib/components/Slider/Slider.js +2 -14
  225. package/lib/components/Tabs/Tabs.d.ts +2 -2
  226. package/lib/components/Tabs/Tabs.js +7 -5
  227. package/lib/components/Tabs/usePressable.js +1 -1
  228. package/lib/components/Tag/Tag.js +9 -2
  229. package/lib/components/Text/Text.js +2 -1
  230. package/lib/components/TextInput/ControlledPasswordInput.d.ts +1 -1
  231. package/lib/components/TextInput/ControlledPasswordInput.js +0 -6
  232. package/lib/components/TextInput/TextInput.d.ts +1 -1
  233. package/lib/components/TextInput/TextInput.js +0 -4
  234. package/lib/components/TextInput/index.d.ts +6 -0
  235. package/lib/components/TextInput/index.js +1 -7
  236. package/lib/components/Tile/Tile.js +0 -1
  237. package/lib/components/Toggle/Toggle.d.ts +1 -1
  238. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.d.ts +9 -14
  239. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +34 -39
  240. package/lib/components/Toggletip/index.js +11 -8
  241. package/lib/components/Tooltip/Tooltip.d.ts +1 -1
  242. package/lib/components/TreeView/TreeView.d.ts +1 -1
  243. package/lib/components/UIShell/Content.d.ts +14 -1
  244. package/lib/components/UIShell/HeaderGlobalBar.d.ts +1 -1
  245. package/lib/components/UIShell/HeaderMenu.d.ts +2 -99
  246. package/lib/components/UIShell/HeaderMenu.js +10 -3
  247. package/lib/components/UIShell/HeaderMenuButton.d.ts +1 -98
  248. package/lib/components/UIShell/HeaderMenuItem.d.ts +3 -4
  249. package/lib/components/UIShell/HeaderMenuItem.js +3 -3
  250. package/lib/components/UIShell/HeaderName.js +1 -1
  251. package/lib/components/UIShell/HeaderNavigation.d.ts +0 -97
  252. package/lib/components/UIShell/Link.d.ts +8 -8
  253. package/lib/components/UIShell/Link.js +7 -5
  254. package/lib/components/UIShell/SideNav.d.ts +3 -3
  255. package/lib/components/UIShell/SideNav.js +1 -1
  256. package/lib/components/UIShell/SideNavHeader.js +0 -1
  257. package/lib/components/UIShell/SideNavLink.d.ts +3 -4
  258. package/lib/components/UIShell/SideNavLink.js +8 -3
  259. package/lib/components/UIShell/SideNavMenu.js +0 -1
  260. package/lib/components/UIShell/SideNavMenuItem.d.ts +1 -49
  261. package/lib/components/UIShell/SideNavMenuItem.js +1 -1
  262. package/lib/components/UIShell/SideNavSwitcher.js +0 -1
  263. package/lib/components/UIShell/SwitcherItem.d.ts +2 -2
  264. package/lib/components/UIShell/SwitcherItem.js +1 -1
  265. package/lib/index.d.ts +2 -2
  266. package/lib/index.js +13 -11
  267. package/lib/internal/FloatingMenu.js +2 -1
  268. package/lib/internal/clamp.d.ts +10 -0
  269. package/lib/internal/clamp.js +17 -0
  270. package/lib/internal/useEvent.d.ts +9 -0
  271. package/lib/internal/useEvent.js +8 -49
  272. package/lib/internal/useId.js +1 -1
  273. package/lib/internal/useMatchMedia.d.ts +7 -2
  274. package/lib/internal/useMatchMedia.js +9 -10
  275. package/lib/internal/useNoInteractiveChildren.js +4 -2
  276. package/lib/internal/useOutsideClick.d.ts +1 -1
  277. package/lib/prop-types/AriaPropTypes.js +1 -1
  278. package/lib/prop-types/isRequiredOneOf.d.ts +16 -0
  279. package/lib/prop-types/isRequiredOneOf.js +11 -9
  280. package/lib/tools/setupGetInstanceId.d.ts +12 -0
  281. package/lib/tools/setupGetInstanceId.js +7 -8
  282. package/lib/tools/toggleClass.d.ts +14 -0
  283. package/lib/tools/toggleClass.js +9 -10
  284. package/lib/tools/wrapComponent.d.ts +1 -1
  285. package/lib/types/common.d.ts +1 -6
  286. package/package.json +15 -15
  287. package/telemetry.yml +11 -12
  288. package/es/components/MultiSelect/index.js +0 -13
  289. package/es/internal/ClickListener.d.ts +0 -13
  290. package/es/internal/ClickListener.js +0 -47
  291. package/lib/components/MultiSelect/index.js +0 -19
  292. package/lib/internal/ClickListener.d.ts +0 -13
  293. package/lib/internal/ClickListener.js +0 -51
@@ -15,7 +15,6 @@ var iconsReact = require('@carbon/icons-react');
15
15
  var cx = require('classnames');
16
16
  var invariant = require('invariant');
17
17
  var PropTypes = require('prop-types');
18
- var ClickListener = require('../../internal/ClickListener.js');
19
18
  var FloatingMenu = require('../../internal/FloatingMenu.js');
20
19
  var keys = require('../../internal/keyboard/keys.js');
21
20
  var match = require('../../internal/keyboard/match.js');
@@ -25,6 +24,8 @@ var deprecate = require('../../prop-types/deprecate.js');
25
24
  var mergeRefs = require('../../tools/mergeRefs.js');
26
25
  var setupGetInstanceId = require('../../tools/setupGetInstanceId.js');
27
26
  var index = require('../IconButton/index.js');
27
+ var useOutsideClick = require('../../internal/useOutsideClick.js');
28
+ var deprecateValuesWithin = require('../../prop-types/deprecateValuesWithin.js');
28
29
 
29
30
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
30
31
 
@@ -33,7 +34,7 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
33
34
  var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant);
34
35
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
35
36
 
36
- const getInstanceId = setupGetInstanceId["default"]();
37
+ const getInstanceId = setupGetInstanceId.setupGetInstanceId();
37
38
  const on = function (target) {
38
39
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
39
40
  args[_key - 1] = arguments[_key];
@@ -100,8 +101,25 @@ const getMenuOffset = (menuBody, direction, trigger, flip) => {
100
101
  };
101
102
  }
102
103
  };
104
+
105
+ // TODO: Replace this code when align mapping is consolidated.
106
+ // https://github.com/carbon-design-system/carbon/pull/19081
107
+ const propMappingFunction = deprecatedValue => {
108
+ const mapping = {
109
+ 'top-left': 'top-start',
110
+ 'top-right': 'top-end',
111
+ 'bottom-left': 'bottom-start',
112
+ 'bottom-right': 'bottom-end',
113
+ 'left-bottom': 'left-end',
114
+ 'left-top': 'left-start',
115
+ 'right-bottom': 'right-end',
116
+ 'right-top': 'right-start'
117
+ };
118
+ return mapping[deprecatedValue];
119
+ };
103
120
  const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
104
121
  let {
122
+ align,
105
123
  ['aria-label']: ariaLabel = null,
106
124
  ariaLabel: deprecatedAriaLabel,
107
125
  children,
@@ -123,6 +141,7 @@ const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
123
141
  renderIcon: IconElement = iconsReact.OverflowMenuVertical,
124
142
  selectorPrimaryFocus = '[data-floating-menu-primary-focus]',
125
143
  size = 'md',
144
+ innerRef,
126
145
  ...other
127
146
  } = _ref;
128
147
  const prefix = React.useContext(usePrefix.PrefixContext);
@@ -138,6 +157,7 @@ const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
138
157
  const prevOpenState = React.useRef(open);
139
158
  /** The element ref of the tooltip's trigger button. */
140
159
  const triggerRef = React.useRef(null);
160
+ const wrapperRef = React.useRef(null);
141
161
 
142
162
  // Sync open prop changes.
143
163
  React.useEffect(() => {
@@ -161,6 +181,14 @@ const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
161
181
  }
162
182
  prevOpenState.current = open;
163
183
  }, [open, onClose]);
184
+ useOutsideClick.useOutsideClick(wrapperRef, _ref2 => {
185
+ let {
186
+ target
187
+ } = _ref2;
188
+ if (open && (!menuBodyRef.current || target instanceof Node && !menuBodyRef.current.contains(target))) {
189
+ closeMenu();
190
+ }
191
+ });
164
192
  const focusMenuEl = React.useCallback(() => {
165
193
  if (triggerRef.current) {
166
194
  triggerRef.current.focus();
@@ -211,23 +239,18 @@ const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
211
239
  evt.stopPropagation();
212
240
  }
213
241
  };
214
- const handleClickOutside = evt => {
215
- if (open && (!menuBodyRef.current || evt.target instanceof Node && !menuBodyRef.current.contains(evt.target))) {
216
- closeMenu();
217
- }
218
- };
219
242
 
220
243
  /**
221
244
  * Focuses the next enabled overflow menu item given the currently focused
222
245
  * item index and direction to move.
223
246
  */
224
- const handleOverflowMenuItemFocus = _ref2 => {
247
+ const handleOverflowMenuItemFocus = _ref3 => {
225
248
  let {
226
- currentIndex,
249
+ currentIndex = 0,
227
250
  direction
228
- } = _ref2;
251
+ } = _ref3;
229
252
  const enabledIndices = React.Children.toArray(children).reduce((acc, curr, i) => {
230
- if (/*#__PURE__*/React.isValidElement(curr) && !curr.props.disabled) {
253
+ if (/*#__PURE__*/React__default["default"].isValidElement(curr) && !curr.props.disabled) {
231
254
  acc.push(i);
232
255
  }
233
256
  return acc;
@@ -325,12 +348,13 @@ const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
325
348
  }, /*#__PURE__*/React.cloneElement(menuBody, {
326
349
  'data-floating-menu-direction': direction
327
350
  }));
328
- return /*#__PURE__*/React__default["default"].createElement(ClickListener.ClickListener, {
329
- onClickOutside: handleClickOutside
330
- }, /*#__PURE__*/React__default["default"].createElement("span", {
351
+ const combinedRef = innerRef ? mergeRefs["default"](triggerRef, innerRef, ref) : mergeRefs["default"](triggerRef, ref);
352
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("span", {
331
353
  className: `${prefix}--overflow-menu__wrapper`,
332
- "aria-owns": open ? menuBodyId : undefined
354
+ "aria-owns": open ? menuBodyId : undefined,
355
+ ref: wrapperRef
333
356
  }, /*#__PURE__*/React__default["default"].createElement(index.IconButton, _rollupPluginBabelHelpers["extends"]({}, other, {
357
+ align: align,
334
358
  type: "button",
335
359
  "aria-haspopup": true,
336
360
  "aria-expanded": open,
@@ -338,7 +362,7 @@ const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
338
362
  className: overflowMenuClasses,
339
363
  onClick: handleClick,
340
364
  id: id,
341
- ref: mergeRefs["default"](triggerRef, ref),
365
+ ref: combinedRef,
342
366
  size: size,
343
367
  label: iconDescription,
344
368
  kind: "ghost"
@@ -348,6 +372,35 @@ const OverflowMenu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
348
372
  })), open && hasMountedTrigger && wrappedMenuBody));
349
373
  });
350
374
  OverflowMenu.propTypes = {
375
+ /**
376
+ * Specify how the trigger should align with the tooltip
377
+ */
378
+ align: deprecateValuesWithin["default"](PropTypes__default["default"].oneOf(['top', 'top-left',
379
+ // deprecated use top-start instead
380
+ 'top-right',
381
+ // deprecated use top-end instead
382
+
383
+ 'bottom', 'bottom-left',
384
+ // deprecated use bottom-start instead
385
+ 'bottom-right',
386
+ // deprecated use bottom-end instead
387
+
388
+ 'left', 'left-bottom',
389
+ // deprecated use left-end instead
390
+ 'left-top',
391
+ // deprecated use left-start instead
392
+
393
+ 'right', 'right-bottom',
394
+ // deprecated use right-end instead
395
+ 'right-top',
396
+ // deprecated use right-start instead
397
+
398
+ // new values to match floating-ui
399
+ 'top-start', 'top-end', 'bottom-start', 'bottom-end', 'left-end', 'left-start', 'right-end', 'right-start']),
400
+ //allowed prop values
401
+ ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end'],
402
+ //optional mapper function
403
+ propMappingFunction),
351
404
  /**
352
405
  * Specify a label to be read by screen readers on the container node
353
406
  */
@@ -439,7 +492,6 @@ OverflowMenu.propTypes = {
439
492
  /**
440
493
  * A component used to render an icon.
441
494
  */
442
- // @ts-expect-error: PropTypes are not expressive enough to cover this case
443
495
  renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
444
496
  /**
445
497
  * Specify a CSS selector that matches the DOM element that should
@@ -4,10 +4,8 @@
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
8
  import { type OverflowMenuProps } from './OverflowMenu';
8
- declare const OverflowMenu: {
9
- (props: OverflowMenuProps): import("react/jsx-runtime").JSX.Element;
10
- displayName: string;
11
- };
9
+ declare const OverflowMenu: React.ForwardRefExoticComponent<OverflowMenuProps & React.RefAttributes<HTMLDivElement>>;
12
10
  export default OverflowMenu;
13
11
  export { OverflowMenu, type OverflowMenuProps };
@@ -9,22 +9,26 @@
9
9
 
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
12
13
  var React = require('react');
13
14
  var index = require('../FeatureFlags/index.js');
14
15
  var index$1 = require('./next/index.js');
15
16
  var OverflowMenu$1 = require('./OverflowMenu.js');
16
- var createClassWrapper = require('../../internal/createClassWrapper.js');
17
17
 
18
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
19
 
20
20
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
21
21
 
22
- const OverflowMenuV11 = createClassWrapper.createClassWrapper(OverflowMenu$1.OverflowMenu);
23
- const OverflowMenu = props => {
22
+ const OverflowMenu = /*#__PURE__*/React.forwardRef((props, ref) => {
24
23
  const enableV12OverflowMenu = index.useFeatureFlag('enable-v12-overflowmenu');
25
- return enableV12OverflowMenu ? /*#__PURE__*/React__default["default"].createElement(index$1.OverflowMenu, props) : /*#__PURE__*/React__default["default"].createElement(OverflowMenuV11, props);
26
- };
24
+ return enableV12OverflowMenu ? /*#__PURE__*/React__default["default"].createElement(index$1.OverflowMenu, _rollupPluginBabelHelpers["extends"]({}, props, {
25
+ ref: ref
26
+ })) : /*#__PURE__*/React__default["default"].createElement(OverflowMenu$1.OverflowMenu, _rollupPluginBabelHelpers["extends"]({}, props, {
27
+ ref: ref
28
+ }));
29
+ });
27
30
  OverflowMenu.displayName = 'OverflowMenu';
31
+ OverflowMenu.propTypes = OverflowMenu$1.OverflowMenu.propTypes;
28
32
 
29
33
  exports.OverflowMenu = OverflowMenu;
30
34
  exports["default"] = OverflowMenu;
@@ -177,7 +177,6 @@ OverflowMenu.propTypes = {
177
177
  /**
178
178
  * A component used to render an icon.
179
179
  */
180
- // @ts-expect-error: PropTypes are not expressive enough to cover this case
181
180
  renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
182
181
  /**
183
182
  * Specify the size of the menu, from a list of available sizes.
@@ -40,6 +40,10 @@ export interface OverflowMenuItemProps extends React.HTMLAttributes<HTMLElement>
40
40
  * `true` to make this menu item a danger button.
41
41
  */
42
42
  isDelete?: boolean;
43
+ /**
44
+ * accepts a ref to the button element
45
+ */
46
+ ref?: (element: HTMLElement) => void;
43
47
  /**
44
48
  * `true` to require the title attribute.
45
49
  */
@@ -5,6 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React, { type ComponentType, type FunctionComponent } from 'react';
8
+ import { Tabs as BaseTabs } from '../Tabs/Tabs';
8
9
  /**
9
10
  * ----------
10
11
  * PageHeader
@@ -87,6 +88,11 @@ interface PageHeaderTabBarProps {
87
88
  className?: string;
88
89
  }
89
90
  declare const PageHeaderTabBar: React.ForwardRefExoticComponent<PageHeaderTabBarProps & React.RefAttributes<HTMLDivElement>>;
91
+ interface PageHeaderTabsProps extends React.ComponentProps<typeof BaseTabs> {
92
+ children?: React.ReactNode;
93
+ className?: string;
94
+ }
95
+ declare const PageHeaderTabs: React.ForwardRefExoticComponent<PageHeaderTabsProps & React.RefAttributes<HTMLDivElement>>;
90
96
  /**
91
97
  * -------
92
98
  * Exports
@@ -97,5 +103,6 @@ declare const BreadcrumbBar: React.ForwardRefExoticComponent<PageHeaderBreadcrum
97
103
  declare const Content: React.ForwardRefExoticComponent<PageHeaderContentProps & React.RefAttributes<HTMLDivElement>>;
98
104
  declare const HeroImage: React.ForwardRefExoticComponent<PageHeaderHeroImageProps & React.RefAttributes<HTMLDivElement>>;
99
105
  declare const TabBar: React.ForwardRefExoticComponent<PageHeaderTabBarProps & React.RefAttributes<HTMLDivElement>>;
100
- export { PageHeader, PageHeaderBreadcrumbBar, PageHeaderContent, PageHeaderHeroImage, PageHeaderTabBar, Root, BreadcrumbBar, Content, HeroImage, TabBar, };
101
- export type { PageHeaderProps, PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderHeroImageProps, PageHeaderTabBarProps, };
106
+ declare const Tabs: React.ForwardRefExoticComponent<PageHeaderTabsProps & React.RefAttributes<HTMLDivElement>>;
107
+ export { PageHeader, PageHeaderBreadcrumbBar, PageHeaderContent, PageHeaderHeroImage, PageHeaderTabBar, PageHeaderTabs, Root, BreadcrumbBar, Content, HeroImage, TabBar, Tabs, };
108
+ export type { PageHeaderProps, PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderHeroImageProps, PageHeaderTabBarProps, PageHeaderTabsProps, };
@@ -20,6 +20,7 @@ require('../Text/index.js');
20
20
  var DefinitionTooltip = require('../Tooltip/DefinitionTooltip.js');
21
21
  require('../Tooltip/Tooltip.js');
22
22
  var AspectRatio = require('../AspectRatio/AspectRatio.js');
23
+ var Tabs$1 = require('../Tabs/Tabs.js');
23
24
  var Text = require('../Text/Text.js');
24
25
 
25
26
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -28,7 +29,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
28
29
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
29
30
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
30
31
 
31
- var _p, _p2, _p3;
32
+ var _p, _p2;
32
33
 
33
34
  /**
34
35
  * ----------
@@ -153,7 +154,7 @@ PageHeaderContent.propTypes = {
153
154
  /**
154
155
  * Provide an optional icon to render in front of the PageHeaderContent's title.
155
156
  */
156
- // @ts-expect-error: PropTypes are not expressive enough to cover this case
157
+
157
158
  renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
158
159
  /**
159
160
  * The PageHeaderContent's title
@@ -228,9 +229,18 @@ const PageHeaderTabBar = /*#__PURE__*/React__default["default"].forwardRef(funct
228
229
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
229
230
  className: classNames,
230
231
  ref: ref
231
- }, other), _p3 || (_p3 = /*#__PURE__*/React__default["default"].createElement("p", null, "page header tab bar")), children);
232
+ }, other), children);
232
233
  });
233
234
  PageHeaderTabBar.displayName = 'PageHeaderTabBar';
235
+ const PageHeaderTabs = /*#__PURE__*/React__default["default"].forwardRef(function PageHeaderTabs(_ref6, ref) {
236
+ let {
237
+ className,
238
+ children,
239
+ ...other
240
+ } = _ref6;
241
+ return /*#__PURE__*/React__default["default"].createElement(Tabs$1.Tabs, other, children);
242
+ });
243
+ PageHeaderTabs.displayName = 'PageHeaderTabs';
234
244
 
235
245
  /**
236
246
  * -------
@@ -247,6 +257,8 @@ const HeroImage = PageHeaderHeroImage;
247
257
  HeroImage.displayName = 'PageHeaderHeroImage';
248
258
  const TabBar = PageHeaderTabBar;
249
259
  TabBar.displayName = 'PageHeaderTabBar';
260
+ const Tabs = PageHeaderTabs;
261
+ Tabs.displayName = 'PageHeader.Tabs';
250
262
 
251
263
  exports.BreadcrumbBar = BreadcrumbBar;
252
264
  exports.Content = Content;
@@ -256,5 +268,7 @@ exports.PageHeaderBreadcrumbBar = PageHeaderBreadcrumbBar;
256
268
  exports.PageHeaderContent = PageHeaderContent;
257
269
  exports.PageHeaderHeroImage = PageHeaderHeroImage;
258
270
  exports.PageHeaderTabBar = PageHeaderTabBar;
271
+ exports.PageHeaderTabs = PageHeaderTabs;
259
272
  exports.Root = Root;
260
273
  exports.TabBar = TabBar;
274
+ exports.Tabs = Tabs;
@@ -4,5 +4,5 @@
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
- export { PageHeader, PageHeaderBreadcrumbBar, PageHeaderContent, PageHeaderTabBar, PageHeaderHeroImage, Root, BreadcrumbBar, Content, TabBar, HeroImage, } from './PageHeader';
8
- export type { PageHeaderProps, PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderTabBarProps, PageHeaderHeroImageProps, } from './PageHeader';
7
+ export { PageHeader, PageHeaderBreadcrumbBar, PageHeaderContent, PageHeaderTabBar, PageHeaderHeroImage, PageHeaderTabs, Root, BreadcrumbBar, Content, TabBar, HeroImage, Tabs, } from './PageHeader';
8
+ export type { PageHeaderProps, PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderTabBarProps, PageHeaderHeroImageProps, PageHeaderTabsProps, } from './PageHeader';
@@ -21,5 +21,7 @@ exports.PageHeaderBreadcrumbBar = PageHeader.PageHeaderBreadcrumbBar;
21
21
  exports.PageHeaderContent = PageHeader.PageHeaderContent;
22
22
  exports.PageHeaderHeroImage = PageHeader.PageHeaderHeroImage;
23
23
  exports.PageHeaderTabBar = PageHeader.PageHeaderTabBar;
24
+ exports.PageHeaderTabs = PageHeader.PageHeaderTabs;
24
25
  exports.Root = PageHeader.Root;
25
26
  exports.TabBar = PageHeader.TabBar;
27
+ exports.Tabs = PageHeader.Tabs;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2020
2
+ * Copyright IBM Corp. 2020, 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.
@@ -18,6 +18,7 @@ var index = require('../IconButton/index.js');
18
18
  var usePrefix = require('../../internal/usePrefix.js');
19
19
  var layout = require('@carbon/layout');
20
20
  var useMatchMedia = require('../../internal/useMatchMedia.js');
21
+ var clamp = require('../../internal/clamp.js');
21
22
 
22
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
24
 
@@ -199,7 +200,7 @@ const PaginationNav = /*#__PURE__*/React__default["default"].forwardRef(function
199
200
  numberOfPages = itemsShown === 4 ? itemsShown : 5;
200
201
  break;
201
202
  case 'sm':
202
- numberOfPages = Math.max(4, Math.min(itemsShown, 7));
203
+ numberOfPages = clamp.clamp(itemsShown, 4, 7);
203
204
  break;
204
205
  default:
205
206
  numberOfPages = 4;
@@ -1,10 +1,11 @@
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
- import React, { type WeakValidationMap } from 'react';
7
+ import { WeakValidationMap } from 'prop-types';
8
+ import React from 'react';
8
9
  import { type Boundary } from '@floating-ui/react';
9
10
  import { PolymorphicComponentPropWithRef } from '../../internal/PolymorphicProps';
10
11
  export interface PopoverContext {
@@ -56,7 +56,9 @@ const propMappingFunction = deprecatedValue => {
56
56
  };
57
57
  return mapping[deprecatedValue];
58
58
  };
59
- const Popover = /*#__PURE__*/React__default["default"].forwardRef(function PopoverRenderFunction(_ref, forwardRef) {
59
+ const Popover = /*#__PURE__*/React__default["default"].forwardRef(function PopoverRenderFunction(_ref,
60
+ //this is a workaround, have to come back and fix this.
61
+ forwardRef) {
60
62
  let {
61
63
  isTabTip,
62
64
  align: initialAlign = isTabTip ? 'bottom-start' : 'bottom',
@@ -86,8 +88,11 @@ const Popover = /*#__PURE__*/React__default["default"].forwardRef(function Popov
86
88
  onRequestClose?.();
87
89
  }
88
90
  });
89
- useEvent.useWindowEvent('click', event => {
90
- if (open && !popover?.current?.contains(event.target)) {
91
+ useEvent.useWindowEvent('click', _ref2 => {
92
+ let {
93
+ target
94
+ } = _ref2;
95
+ if (open && target instanceof Node && !popover.current?.contains(target)) {
91
96
  onRequestClose?.();
92
97
  }
93
98
  });
@@ -361,12 +366,12 @@ Popover.propTypes = {
361
366
  open: PropTypes__default["default"].bool.isRequired
362
367
  };
363
368
  function PopoverContentRenderFunction(// eslint-disable-next-line react/prop-types
364
- _ref2, forwardRef) {
369
+ _ref3, forwardRef) {
365
370
  let {
366
371
  className,
367
372
  children,
368
373
  ...rest
369
- } = _ref2;
374
+ } = _ref3;
370
375
  const prefix = usePrefix.usePrefix();
371
376
  const {
372
377
  setFloating,
@@ -13,7 +13,7 @@ export interface PortalProps {
13
13
  /**
14
14
  * Provide a ref for a container node to render the portal
15
15
  */
16
- container?: React.RefObject<HTMLElement>;
16
+ container?: React.RefObject<HTMLElement | null>;
17
17
  }
18
18
  /**
19
19
  * Helper component for rendering content within a portal. By default, the
@@ -232,7 +232,6 @@ Search.propTypes = {
232
232
  /**
233
233
  * A component used to render an icon.
234
234
  */
235
- // @ts-expect-error: PropTypes are not expressive enough to cover this case
236
235
  renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
237
236
  /**
238
237
  * Specify the role for the underlying `<input>`, defaults to `searchbox`
@@ -69,7 +69,9 @@ const SkeletonText = _ref => {
69
69
  lines.push(/*#__PURE__*/React__default["default"].createElement("p", _rollupPluginBabelHelpers["extends"]({
70
70
  className: skeletonTextClasses,
71
71
  key: i,
72
- ref: el => refs.current = [...refs.current, el]
72
+ ref: el => {
73
+ refs.current = [...refs.current, el];
74
+ }
73
75
  }, rest)));
74
76
  }
75
77
  if (lineCountNumber !== 1) {
@@ -319,9 +319,9 @@ declare class Slider extends PureComponent<SliderProps> {
319
319
  correctedPosition: null;
320
320
  isRtl: boolean;
321
321
  };
322
- thumbRef: React.RefObject<HTMLDivElement>;
323
- thumbRefUpper: React.RefObject<HTMLDivElement>;
324
- filledTrackRef: React.RefObject<HTMLDivElement>;
322
+ thumbRef: React.RefObject<HTMLDivElement | null>;
323
+ thumbRefUpper: React.RefObject<HTMLDivElement | null>;
324
+ filledTrackRef: React.RefObject<HTMLDivElement | null>;
325
325
  element: HTMLDivElement | null;
326
326
  inputId: string;
327
327
  track: HTMLDivElement | null | undefined;
@@ -339,16 +339,6 @@ declare class Slider extends PureComponent<SliderProps> {
339
339
  * should be called.
340
340
  */
341
341
  componentDidUpdate(prevProps: any, prevState: any): void;
342
- /**
343
- * Synonymous to ECMA2017+ `Math.clamp`.
344
- *
345
- * @param {number} val
346
- * @param {number} min
347
- * @param {number} max
348
- *
349
- * @returns `val` if `max>=val>=min`; `min` if `val<min`; `max` if `val>max`.
350
- */
351
- clamp(val: any, min: any, max: any): number;
352
342
  /**
353
343
  * Rounds a given value to the nearest step defined by the slider's `step`
354
344
  * prop.
@@ -23,6 +23,7 @@ require('../Text/index.js');
23
23
  require('../Tooltip/DefinitionTooltip.js');
24
24
  var Tooltip = require('../Tooltip/Tooltip.js');
25
25
  var SliderHandles = require('./SliderHandles.js');
26
+ var clamp = require('../../internal/clamp.js');
26
27
  var throttle = require('../../node_modules/es-toolkit/dist/compat/function/throttle.mjs.js');
27
28
  var Text = require('../Text/Text.js');
28
29
 
@@ -574,7 +575,7 @@ class Slider extends React.PureComponent {
574
575
  range
575
576
  });
576
577
  /** `leftPercentRaw` clamped between 0 and 1. */
577
- const leftPercent = Math.min(1, Math.max(0, leftPercentRaw));
578
+ const leftPercent = clamp.clamp(leftPercentRaw, 0, 1);
578
579
  if (useRawValue) {
579
580
  return {
580
581
  value,
@@ -865,19 +866,6 @@ class Slider extends React.PureComponent {
865
866
  }
866
867
  }
867
868
 
868
- /**
869
- * Synonymous to ECMA2017+ `Math.clamp`.
870
- *
871
- * @param {number} val
872
- * @param {number} min
873
- * @param {number} max
874
- *
875
- * @returns `val` if `max>=val>=min`; `min` if `val<min`; `max` if `val>max`.
876
- */
877
- clamp(val, min, max) {
878
- return Math.max(min, Math.min(val, max));
879
- }
880
-
881
869
  /**
882
870
  * Rounds a given value to the nearest step defined by the slider's `step`
883
871
  * prop.
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import PropTypes from 'prop-types';
8
- import React, { type ReactNode, type MouseEvent, type KeyboardEvent, type HTMLAttributes, type ComponentType, type ReactHTML } from 'react';
8
+ import React, { type ReactNode, type MouseEvent, type KeyboardEvent, type HTMLAttributes, type ComponentType, type HTMLElementType } from 'react';
9
9
  type DivAttributes = HTMLAttributes<HTMLDivElement>;
10
10
  /**
11
11
  * Tabs
@@ -312,7 +312,7 @@ export interface TabProps extends HTMLAttributes<HTMLElement> {
312
312
  /**
313
313
  * Provide a custom element to render instead of the default button
314
314
  */
315
- as?: keyof ReactHTML | ComponentType;
315
+ as?: HTMLElementType | ComponentType;
316
316
  /**
317
317
  * Provide child elements to be rendered inside `Tab`.
318
318
  */
@@ -88,6 +88,9 @@ function Tabs(_ref) {
88
88
  onTabCloseRequest
89
89
  } = _ref;
90
90
  const baseId = useId.useId('ccs');
91
+ if (dismissable && !onTabCloseRequest) {
92
+ console.error('dismissable property specified without also providing an onTabCloseRequest property.');
93
+ }
91
94
  // The active index is used to track the element which has focus in our tablist
92
95
  const [activeIndex, setActiveIndex] = React.useState(defaultSelectedIndex);
93
96
  // The selected index is used for the tab/panel pairing which is "visible"
@@ -289,7 +292,8 @@ function TabList(_ref4) {
289
292
  let hasSecondaryLabelTabs = false;
290
293
  if (contained) {
291
294
  hasSecondaryLabelTabs = React__default["default"].Children.toArray(children).some(child => {
292
- return reactIs.isElement(child) && !!child.props.secondaryLabel;
295
+ const _child = child;
296
+ return /*#__PURE__*/React__default["default"].isValidElement(child) && !!_child.props.secondaryLabel;
293
297
  });
294
298
  }
295
299
  const isLg = useMatchMedia.useMatchMedia(lgMediaQuery);
@@ -653,7 +657,7 @@ function TabListVertical(_ref8) {
653
657
  if (containerTop && containerHeight) {
654
658
  // scrolls so selected tab is in view
655
659
  if (selectedPositionTop - halfTabHeight < containerTop || selectedPositionTop - containerTop + verticalTabHeight + halfTabHeight > containerHeight) {
656
- ref.current.scrollTo({
660
+ ref.current && ref.current.scrollTo({
657
661
  top: (selectedIndex - 1) * verticalTabHeight,
658
662
  behavior: 'smooth'
659
663
  });
@@ -994,7 +998,6 @@ Tab.propTypes = {
994
998
  /**
995
999
  * Provide a custom element to render instead of the default button
996
1000
  */
997
- // @ts-expect-error: Invalid prop type derivation
998
1001
  as: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].elementType]),
999
1002
  /**
1000
1003
  * Provide child elements to be rendered inside `Tab`.
@@ -1025,7 +1028,6 @@ Tab.propTypes = {
1025
1028
  /**
1026
1029
  * A component used to render an icon.
1027
1030
  */
1028
- // @ts-expect-error: Invalid prop type derivation
1029
1031
  renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
1030
1032
  /**
1031
1033
  * An optional label to render under the primary tab label.
@@ -1054,7 +1056,7 @@ const IconTab = /*#__PURE__*/React__default["default"].forwardRef(function IconT
1054
1056
  const value = React.useMemo(() => ({
1055
1057
  badgeIndicator
1056
1058
  }), [badgeIndicator]);
1057
- const hasSize20 = /*#__PURE__*/React__default["default"].isValidElement(children) && children.props?.size === 20;
1059
+ const hasSize20 = /*#__PURE__*/React.isValidElement(children) && children.props.size === 20;
1058
1060
  const classNames = cx__default["default"](`${prefix}--tabs__nav-item--icon-only`, customClassName, {
1059
1061
  [`${prefix}--tabs__nav-item--icon-only__20`]: hasSize20
1060
1062
  });
@@ -14,7 +14,7 @@ var React = require('react');
14
14
  /* istanbul ignore file */
15
15
 
16
16
  /**
17
- * @param {React.RefObject<HTMLElement>} ref
17
+ * @param {React.RefObject<HTMLElement | null>} ref
18
18
  *
19
19
  * @param {{
20
20
  * onPress?(state: { longPress: boolean }): void,
@@ -50,7 +50,7 @@ const SIZES = {
50
50
  md: 'md',
51
51
  lg: 'lg'
52
52
  };
53
- const Tag = /*#__PURE__*/React__default["default"].forwardRef((_ref, forwardRef) => {
53
+ const TagBase = /*#__PURE__*/React__default["default"].forwardRef((_ref, forwardRef) => {
54
54
  let {
55
55
  children,
56
56
  className,
@@ -71,7 +71,13 @@ const Tag = /*#__PURE__*/React__default["default"].forwardRef((_ref, forwardRef)
71
71
  ...other
72
72
  } = _ref;
73
73
  const prefix = usePrefix.usePrefix();
74
- const tagRef = React.useRef();
74
+ const tagRef = React.useRef(null);
75
+ if (filter) {
76
+ console.warn('The `filter` prop for Tag has been deprecated and will be removed in the next major version. Use DismissibleTag instead.');
77
+ }
78
+ if (onClose) {
79
+ console.warn('The `onClose` prop for Tag has been deprecated and will be removed in the next major version. Use DismissibleTag instead.');
80
+ }
75
81
  const ref = useMergedRefs.useMergedRefs([forwardRef, tagRef]);
76
82
  const tagId = id || `tag-${useId.useId()}`;
77
83
  const [isEllipsisApplied, setIsEllipsisApplied] = React.useState(false);
@@ -151,6 +157,7 @@ const Tag = /*#__PURE__*/React__default["default"].forwardRef((_ref, forwardRef)
151
157
  className: `${prefix}--tag__decorator`
152
158
  }, normalizedDecorator) : '');
153
159
  });
160
+ const Tag = TagBase;
154
161
  Tag.propTypes = {
155
162
  /**
156
163
  * Provide an alternative tag or component to use instead of the default