@carbon/react 1.112.0 → 1.113.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 (535) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +941 -941
  2. package/es/components/AILabel/index.js +6 -6
  3. package/es/components/AISkeleton/AISkeletonIcon.js +2 -2
  4. package/es/components/AISkeleton/AISkeletonPlaceholder.js +2 -2
  5. package/es/components/AISkeleton/AISkeletonText.js +2 -2
  6. package/es/components/Accordion/Accordion.Skeleton.js +3 -3
  7. package/es/components/Accordion/Accordion.js +2 -2
  8. package/es/components/Accordion/AccordionItem.js +2 -2
  9. package/es/components/AspectRatio/AspectRatio.js +2 -2
  10. package/es/components/BadgeIndicator/index.js +4 -4
  11. package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +3 -3
  12. package/es/components/Breadcrumb/Breadcrumb.js +2 -2
  13. package/es/components/Breadcrumb/BreadcrumbItem.js +3 -3
  14. package/es/components/Button/Button.Skeleton.js +3 -3
  15. package/es/components/Button/Button.js +2 -2
  16. package/es/components/Button/ButtonBase.js +2 -2
  17. package/es/components/Button/index.js +3 -3
  18. package/es/components/ButtonSet/ButtonSet.js +3 -3
  19. package/es/components/ButtonSet/index.js +1 -1
  20. package/es/components/ChatButton/ChatButton.Skeleton.js +2 -2
  21. package/es/components/ChatButton/ChatButton.js +3 -3
  22. package/es/components/Checkbox/Checkbox.Skeleton.js +3 -3
  23. package/es/components/Checkbox/Checkbox.js +4 -4
  24. package/es/components/Checkbox/index.js +2 -2
  25. package/es/components/CheckboxGroup/CheckboxGroup.js +2 -2
  26. package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +3 -3
  27. package/es/components/CodeSnippet/CodeSnippet.js +2 -2
  28. package/es/components/ComboBox/ComboBox.js +12 -9
  29. package/es/components/ComboBox/index.js +1 -1
  30. package/es/components/ComboButton/index.js +5 -5
  31. package/es/components/ComposedModal/ComposedModal.js +7 -6
  32. package/es/components/ComposedModal/ComposedModalPresence.js +5 -2
  33. package/es/components/ComposedModal/ModalFooter.js +4 -4
  34. package/es/components/ComposedModal/ModalHeader.js +6 -6
  35. package/es/components/ContainedList/ContainedList.js +2 -2
  36. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +2 -2
  37. package/es/components/ContainedList/ContainedListItem/index.js +1 -1
  38. package/es/components/ContentSwitcher/ContentSwitcher.js +2 -2
  39. package/es/components/Copy/Copy.js +4 -4
  40. package/es/components/Copy/index.js +1 -1
  41. package/es/components/CopyButton/CopyButton.js +3 -3
  42. package/es/components/CopyButton/index.js +1 -1
  43. package/es/components/DataTable/DataTable.js +4 -3
  44. package/es/components/DataTable/Table.js +3 -3
  45. package/es/components/DataTable/TableBatchActions.js +3 -3
  46. package/es/components/DataTable/TableCell.js +2 -2
  47. package/es/components/DataTable/TableContainer.js +3 -3
  48. package/es/components/DataTable/TableDecoratorRow.js +2 -2
  49. package/es/components/DataTable/TableExpandHeader.js +2 -2
  50. package/es/components/DataTable/TableExpandRow.js +2 -2
  51. package/es/components/DataTable/TableExpandedRow.js +2 -2
  52. package/es/components/DataTable/TableHeader.js +4 -4
  53. package/es/components/DataTable/TableRow.js +2 -2
  54. package/es/components/DataTable/TableSelectAll.js +2 -2
  55. package/es/components/DataTable/TableSelectRow.js +2 -2
  56. package/es/components/DataTable/TableSlugRow.js +2 -2
  57. package/es/components/DataTable/TableToolbar.js +3 -3
  58. package/es/components/DataTable/TableToolbarMenu.js +4 -4
  59. package/es/components/DataTable/TableToolbarSearch.js +3 -3
  60. package/es/components/DataTable/state/sorting.js +3 -2
  61. package/es/components/DataTable/tools/sorting.js +1 -1
  62. package/es/components/DataTableSkeleton/DataTableSkeleton.js +2 -2
  63. package/es/components/DatePicker/DatePicker.Skeleton.js +4 -4
  64. package/es/components/DatePicker/DatePicker.js +3 -3
  65. package/es/components/DatePicker/index.js +2 -2
  66. package/es/components/DatePickerInput/DatePickerInput.js +7 -7
  67. package/es/components/DatePickerInput/index.js +1 -1
  68. package/es/components/Dialog/Dialog.js +9 -9
  69. package/es/components/Dialog/index.js +1 -1
  70. package/es/components/Dropdown/Dropdown.Skeleton.js +4 -4
  71. package/es/components/Dropdown/Dropdown.js +5 -5
  72. package/es/components/Dropdown/index.js +2 -2
  73. package/es/components/ExpandableSearch/ExpandableSearch.js +2 -2
  74. package/es/components/ExpandableSearch/index.js +1 -1
  75. package/es/components/FileUploader/FileUploader.Skeleton.js +4 -4
  76. package/es/components/FileUploader/FileUploader.js +11 -8
  77. package/es/components/FileUploader/FileUploaderButton.js +3 -3
  78. package/es/components/FileUploader/FileUploaderDropContainer.js +8 -6
  79. package/es/components/FileUploader/FileUploaderItem.js +3 -3
  80. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +2 -2
  81. package/es/components/FluidComboBox/FluidComboBox.js +3 -3
  82. package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +3 -3
  83. package/es/components/FluidDatePicker/FluidDatePicker.js +3 -3
  84. package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +2 -2
  85. package/es/components/FluidDropdown/FluidDropdown.js +3 -3
  86. package/es/components/FluidForm/FluidForm.js +3 -3
  87. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +2 -2
  88. package/es/components/FluidMultiSelect/FluidMultiSelect.js +4 -4
  89. package/es/components/FluidNumberInput/FluidNumberInput.Skeleton.js +2 -2
  90. package/es/components/FluidNumberInput/FluidNumberInput.js +3 -3
  91. package/es/components/FluidSearch/FluidSearch.Skeleton.js +2 -2
  92. package/es/components/FluidSearch/FluidSearch.js +3 -3
  93. package/es/components/FluidSelect/FluidSelect.Skeleton.js +2 -2
  94. package/es/components/FluidSelect/FluidSelect.js +3 -3
  95. package/es/components/FluidSelect/index.js +2 -2
  96. package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +2 -2
  97. package/es/components/FluidTextArea/FluidTextArea.js +3 -3
  98. package/es/components/FluidTextInput/FluidPasswordInput.js +3 -3
  99. package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +2 -2
  100. package/es/components/FluidTextInput/FluidTextInput.js +4 -4
  101. package/es/components/FluidTextInput/index.js +3 -3
  102. package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +2 -2
  103. package/es/components/FluidTimePicker/FluidTimePicker.js +3 -3
  104. package/es/components/FluidTimePickerSelect/index.js +1 -1
  105. package/es/components/Form/Form.js +2 -2
  106. package/es/components/FormGroup/FormGroup.js +2 -2
  107. package/es/components/FormItem/FormItem.js +2 -2
  108. package/es/components/FormLabel/FormLabel.js +2 -2
  109. package/es/components/Grid/CSSGrid.js +4 -4
  110. package/es/components/Grid/Column.js +3 -3
  111. package/es/components/Grid/ColumnHang.js +3 -3
  112. package/es/components/Grid/FlexGrid.js +3 -3
  113. package/es/components/Grid/Grid.js +3 -3
  114. package/es/components/Grid/Row.js +2 -2
  115. package/es/components/Icon/Icon.Skeleton.js +3 -3
  116. package/es/components/IconButton/index.js +4 -3
  117. package/es/components/IconIndicator/index.js +4 -4
  118. package/es/components/InlineCheckbox/index.js +1 -1
  119. package/es/components/InlineLoading/InlineLoading.js +2 -2
  120. package/es/components/InlineLoading/index.js +1 -1
  121. package/es/components/Layer/LayerLevel.js +1 -1
  122. package/es/components/Layer/index.js +2 -2
  123. package/es/components/Layout/index.js +3 -3
  124. package/es/components/LayoutDirection/LayoutDirection.js +1 -1
  125. package/es/components/Link/Link.js +2 -2
  126. package/es/components/Link/index.js +1 -1
  127. package/es/components/ListBox/ListBox.js +2 -2
  128. package/es/components/ListBox/ListBoxMenuIcon.js +2 -2
  129. package/es/components/ListBox/ListBoxMenuItem.js +4 -3
  130. package/es/components/ListBox/ListBoxSelection.js +3 -3
  131. package/es/components/ListBox/index.js +2 -2
  132. package/es/components/ListBox/next/ListBoxSelection.js +3 -3
  133. package/es/components/ListBox/next/ListBoxTrigger.js +2 -2
  134. package/es/components/ListItem/ListItem.js +2 -2
  135. package/es/components/Loading/Loading.js +3 -3
  136. package/es/components/Loading/index.js +1 -1
  137. package/es/components/Menu/Menu.js +3 -3
  138. package/es/components/Menu/MenuItem.js +9 -9
  139. package/es/components/MenuButton/index.js +4 -4
  140. package/es/components/Modal/Modal.js +9 -9
  141. package/es/components/Modal/ModalPresence.js +5 -2
  142. package/es/components/Modal/index.js +2 -2
  143. package/es/components/ModalWrapper/ModalWrapper.js +2 -2
  144. package/es/components/MultiSelect/FilterableMultiSelect.js +10 -8
  145. package/es/components/MultiSelect/MultiSelect.js +7 -7
  146. package/es/components/Notification/Notification.js +10 -10
  147. package/es/components/NumberInput/NumberInput.Skeleton.js +2 -2
  148. package/es/components/NumberInput/NumberInput.js +21 -11
  149. package/es/components/OrderedList/OrderedList.js +2 -2
  150. package/es/components/OverflowMenu/OverflowMenu.js +7 -7
  151. package/es/components/OverflowMenu/index.js +2 -2
  152. package/es/components/OverflowMenu/next/index.js +4 -4
  153. package/es/components/OverflowMenuItem/OverflowMenuItem.js +4 -4
  154. package/es/components/OverflowMenuItem/index.js +1 -1
  155. package/es/components/OverflowMenuV2/index.js +1 -1
  156. package/es/components/PageHeader/PageHeader.js +15 -15
  157. package/es/components/PageHeader/index.js +1 -1
  158. package/es/components/Pagination/Pagination.Skeleton.js +3 -3
  159. package/es/components/Pagination/Pagination.d.ts +18 -1
  160. package/es/components/Pagination/Pagination.js +33 -8
  161. package/es/components/Pagination/experimental/PageSelector.d.ts +4 -0
  162. package/es/components/Pagination/experimental/PageSelector.js +16 -3
  163. package/es/components/Pagination/experimental/Pagination-story.d.ts +100 -65
  164. package/es/components/Pagination/experimental/Pagination.d.ts +4 -0
  165. package/es/components/Pagination/experimental/Pagination.js +12 -5
  166. package/es/components/PaginationNav/PaginationNav.js +8 -6
  167. package/es/components/Popover/index.js +14 -6
  168. package/es/components/ProgressBar/ProgressBar.js +3 -3
  169. package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +3 -3
  170. package/es/components/ProgressIndicator/ProgressIndicator.js +4 -4
  171. package/es/components/RadioButton/RadioButton.Skeleton.js +3 -3
  172. package/es/components/RadioButton/RadioButton.js +3 -3
  173. package/es/components/RadioButton/index.js +1 -1
  174. package/es/components/RadioButtonGroup/RadioButtonGroup.js +4 -4
  175. package/es/components/RadioTile/RadioTile.js +3 -3
  176. package/es/components/RadioTile/index.js +1 -1
  177. package/es/components/Search/Search.Skeleton.js +3 -3
  178. package/es/components/Search/Search.js +4 -4
  179. package/es/components/Search/index.js +2 -2
  180. package/es/components/Select/Select.Skeleton.js +3 -3
  181. package/es/components/Select/Select.js +6 -6
  182. package/es/components/Select/index.js +2 -2
  183. package/es/components/SelectItem/SelectItem.js +2 -2
  184. package/es/components/SelectItem/index.js +1 -1
  185. package/es/components/SelectItemGroup/SelectItemGroup.js +2 -2
  186. package/es/components/ShapeIndicator/index.js +4 -4
  187. package/es/components/SkeletonIcon/SkeletonIcon.js +2 -2
  188. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +2 -2
  189. package/es/components/SkeletonText/SkeletonText.js +2 -2
  190. package/es/components/SkeletonText/index.js +1 -1
  191. package/es/components/Slider/Slider.Skeleton.js +7 -7
  192. package/es/components/Slider/Slider.js +22 -20
  193. package/es/components/Stack/Stack.js +2 -2
  194. package/es/components/StructuredList/StructuredList.Skeleton.js +3 -3
  195. package/es/components/StructuredList/StructuredList.js +7 -7
  196. package/es/components/Switch/IconSwitch.js +6 -5
  197. package/es/components/Switch/Switch.js +3 -3
  198. package/es/components/TabContent/TabContent.js +2 -2
  199. package/es/components/Tabs/Tabs.Skeleton.js +3 -3
  200. package/es/components/Tabs/Tabs.js +45 -33
  201. package/es/components/Tag/DismissibleTag.js +4 -3
  202. package/es/components/Tag/OperationalTag.js +4 -3
  203. package/es/components/Tag/SelectableTag.js +3 -3
  204. package/es/components/Tag/Tag.Skeleton.js +3 -3
  205. package/es/components/Tag/Tag.js +4 -3
  206. package/es/components/TextArea/TextArea.Skeleton.js +3 -3
  207. package/es/components/TextArea/TextArea.js +8 -8
  208. package/es/components/TextArea/index.js +2 -2
  209. package/es/components/TextInput/ControlledPasswordInput.js +6 -6
  210. package/es/components/TextInput/PasswordInput.js +10 -10
  211. package/es/components/TextInput/TextInput.Skeleton.js +3 -3
  212. package/es/components/TextInput/TextInput.js +9 -9
  213. package/es/components/TextInput/index.js +2 -2
  214. package/es/components/Theme/index.js +2 -2
  215. package/es/components/Tile/Tile.js +14 -11
  216. package/es/components/TileGroup/TileGroup.js +1 -1
  217. package/es/components/TimePicker/TimePicker.js +5 -5
  218. package/es/components/TimePickerSelect/TimePickerSelect.js +2 -2
  219. package/es/components/Toggle/Toggle.Skeleton.js +3 -3
  220. package/es/components/Toggle/Toggle.js +6 -6
  221. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +2 -2
  222. package/es/components/Toggletip/index.js +6 -6
  223. package/es/components/Tooltip/DefinitionTooltip.js +2 -2
  224. package/es/components/Tooltip/Tooltip.d.ts +2 -1
  225. package/es/components/Tooltip/Tooltip.js +5 -4
  226. package/es/components/TreeView/TreeNode.js +11 -8
  227. package/es/components/TreeView/TreeView.js +2 -2
  228. package/es/components/UIShell/Content.js +2 -2
  229. package/es/components/UIShell/Header.js +2 -2
  230. package/es/components/UIShell/HeaderGlobalAction.js +2 -2
  231. package/es/components/UIShell/HeaderMenu.js +4 -4
  232. package/es/components/UIShell/HeaderMenuButton.js +2 -2
  233. package/es/components/UIShell/HeaderMenuItem.js +2 -2
  234. package/es/components/UIShell/HeaderName.js +2 -2
  235. package/es/components/UIShell/HeaderNavigation.js +2 -2
  236. package/es/components/UIShell/HeaderPanel.js +3 -3
  237. package/es/components/UIShell/HeaderSideNavItems.js +2 -2
  238. package/es/components/UIShell/SideNav.js +3 -3
  239. package/es/components/UIShell/SideNavDetails.js +2 -2
  240. package/es/components/UIShell/SideNavDivider.js +2 -2
  241. package/es/components/UIShell/SideNavFooter.js +2 -2
  242. package/es/components/UIShell/SideNavHeader.js +2 -2
  243. package/es/components/UIShell/SideNavIcon.js +2 -2
  244. package/es/components/UIShell/SideNavItem.js +2 -2
  245. package/es/components/UIShell/SideNavItems.js +2 -2
  246. package/es/components/UIShell/SideNavLink.js +2 -2
  247. package/es/components/UIShell/SideNavLinkText.js +2 -2
  248. package/es/components/UIShell/SideNavMenu.js +3 -3
  249. package/es/components/UIShell/SideNavMenuItem.js +3 -3
  250. package/es/components/UIShell/SideNavSwitcher.js +2 -2
  251. package/es/components/UIShell/SkipToContent.js +2 -2
  252. package/es/components/UIShell/Switcher.js +2 -2
  253. package/es/components/UIShell/SwitcherDivider.js +3 -3
  254. package/es/components/UIShell/SwitcherItem.js +4 -4
  255. package/es/components/UnorderedList/UnorderedList.js +2 -2
  256. package/es/index.js +30 -30
  257. package/es/internal/FloatingMenu.js +12 -9
  258. package/es/internal/motion/MotionSurface.d.ts +35 -0
  259. package/es/internal/motion/useMotionEnabled.d.ts +13 -0
  260. package/es/internal/motion/useMotionSurface.d.ts +33 -0
  261. package/es/internal/useId.js +1 -1
  262. package/es/internal/useOverflowItems.js +2 -1
  263. package/es/internal/usePresence.d.ts +8 -1
  264. package/es/internal/usePresence.js +4 -2
  265. package/es/internal/usePresenceContext.d.ts +12 -0
  266. package/es/internal/usePresenceContext.js +23 -5
  267. package/es/tools/wrapComponent.js +2 -2
  268. package/lib/components/AILabel/index.js +4 -4
  269. package/lib/components/AISkeleton/AISkeletonIcon.js +2 -2
  270. package/lib/components/AISkeleton/AISkeletonPlaceholder.js +2 -2
  271. package/lib/components/AISkeleton/AISkeletonText.js +2 -2
  272. package/lib/components/Accordion/Accordion.Skeleton.js +3 -2
  273. package/lib/components/Accordion/Accordion.js +2 -2
  274. package/lib/components/Accordion/AccordionItem.js +2 -2
  275. package/lib/components/AspectRatio/AspectRatio.js +2 -2
  276. package/lib/components/BadgeIndicator/index.js +3 -2
  277. package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +3 -2
  278. package/lib/components/Breadcrumb/Breadcrumb.js +2 -2
  279. package/lib/components/Breadcrumb/BreadcrumbItem.js +2 -2
  280. package/lib/components/Button/Button.Skeleton.js +3 -2
  281. package/lib/components/Button/Button.js +2 -2
  282. package/lib/components/Button/ButtonBase.js +2 -2
  283. package/lib/components/Button/index.js +7 -1
  284. package/lib/components/ButtonSet/ButtonSet.js +2 -2
  285. package/lib/components/ButtonSet/index.js +3 -1
  286. package/lib/components/ChatButton/ChatButton.Skeleton.js +2 -2
  287. package/lib/components/ChatButton/ChatButton.js +2 -2
  288. package/lib/components/Checkbox/Checkbox.Skeleton.js +3 -2
  289. package/lib/components/Checkbox/Checkbox.js +3 -3
  290. package/lib/components/Checkbox/index.js +3 -1
  291. package/lib/components/CheckboxGroup/CheckboxGroup.js +2 -2
  292. package/lib/components/CodeSnippet/CodeSnippet.Skeleton.js +3 -2
  293. package/lib/components/CodeSnippet/CodeSnippet.js +2 -2
  294. package/lib/components/ComboBox/ComboBox.js +8 -5
  295. package/lib/components/ComboBox/index.js +3 -1
  296. package/lib/components/ComboButton/index.js +2 -2
  297. package/lib/components/ComposedModal/ComposedModal.js +5 -4
  298. package/lib/components/ComposedModal/ComposedModalPresence.js +4 -1
  299. package/lib/components/ComposedModal/ModalFooter.js +3 -3
  300. package/lib/components/ComposedModal/ModalHeader.js +2 -2
  301. package/lib/components/ContainedList/ContainedList.js +2 -2
  302. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +2 -2
  303. package/lib/components/ContainedList/ContainedListItem/index.js +3 -1
  304. package/lib/components/ContentSwitcher/ContentSwitcher.js +2 -2
  305. package/lib/components/Copy/Copy.js +3 -3
  306. package/lib/components/Copy/index.js +3 -1
  307. package/lib/components/CopyButton/CopyButton.js +3 -3
  308. package/lib/components/CopyButton/index.js +3 -1
  309. package/lib/components/DataTable/DataTable.js +4 -3
  310. package/lib/components/DataTable/Table.js +3 -2
  311. package/lib/components/DataTable/TableBatchActions.js +2 -2
  312. package/lib/components/DataTable/TableCell.js +2 -2
  313. package/lib/components/DataTable/TableContainer.js +2 -2
  314. package/lib/components/DataTable/TableDecoratorRow.js +2 -2
  315. package/lib/components/DataTable/TableExpandHeader.js +2 -2
  316. package/lib/components/DataTable/TableExpandRow.js +2 -2
  317. package/lib/components/DataTable/TableExpandedRow.js +2 -2
  318. package/lib/components/DataTable/TableHeader.js +2 -2
  319. package/lib/components/DataTable/TableRow.js +2 -2
  320. package/lib/components/DataTable/TableSelectAll.js +2 -2
  321. package/lib/components/DataTable/TableSelectRow.js +2 -2
  322. package/lib/components/DataTable/TableSlugRow.js +2 -2
  323. package/lib/components/DataTable/TableToolbar.js +3 -2
  324. package/lib/components/DataTable/TableToolbarMenu.js +3 -3
  325. package/lib/components/DataTable/TableToolbarSearch.js +3 -3
  326. package/lib/components/DataTable/state/sorting.js +3 -1
  327. package/lib/components/DataTable/tools/sorting.js +2 -0
  328. package/lib/components/DataTableSkeleton/DataTableSkeleton.js +2 -2
  329. package/lib/components/DatePicker/DatePicker.Skeleton.js +3 -2
  330. package/lib/components/DatePicker/DatePicker.js +2 -2
  331. package/lib/components/DatePicker/index.js +3 -1
  332. package/lib/components/DatePickerInput/DatePickerInput.js +3 -3
  333. package/lib/components/DatePickerInput/index.js +3 -1
  334. package/lib/components/Dialog/Dialog.js +3 -3
  335. package/lib/components/Dialog/index.js +8 -0
  336. package/lib/components/Dropdown/Dropdown.Skeleton.js +3 -2
  337. package/lib/components/Dropdown/Dropdown.js +2 -2
  338. package/lib/components/Dropdown/index.js +3 -1
  339. package/lib/components/ExpandableSearch/ExpandableSearch.js +2 -2
  340. package/lib/components/ExpandableSearch/index.js +3 -1
  341. package/lib/components/FileUploader/FileUploader.Skeleton.js +4 -3
  342. package/lib/components/FileUploader/FileUploader.js +9 -6
  343. package/lib/components/FileUploader/FileUploaderButton.js +3 -3
  344. package/lib/components/FileUploader/FileUploaderDropContainer.js +8 -6
  345. package/lib/components/FileUploader/FileUploaderItem.js +3 -3
  346. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +2 -2
  347. package/lib/components/FluidComboBox/FluidComboBox.js +2 -2
  348. package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +2 -2
  349. package/lib/components/FluidDatePicker/FluidDatePicker.js +2 -2
  350. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +2 -2
  351. package/lib/components/FluidDropdown/FluidDropdown.js +2 -2
  352. package/lib/components/FluidForm/FluidForm.js +2 -2
  353. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +2 -2
  354. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +2 -2
  355. package/lib/components/FluidNumberInput/FluidNumberInput.Skeleton.js +2 -2
  356. package/lib/components/FluidNumberInput/FluidNumberInput.js +2 -2
  357. package/lib/components/FluidSearch/FluidSearch.Skeleton.js +2 -2
  358. package/lib/components/FluidSearch/FluidSearch.js +2 -2
  359. package/lib/components/FluidSelect/FluidSelect.Skeleton.js +2 -2
  360. package/lib/components/FluidSelect/FluidSelect.js +2 -2
  361. package/lib/components/FluidSelect/index.js +3 -1
  362. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +2 -2
  363. package/lib/components/FluidTextArea/FluidTextArea.js +2 -2
  364. package/lib/components/FluidTextInput/FluidPasswordInput.js +2 -2
  365. package/lib/components/FluidTextInput/FluidTextInput.Skeleton.js +2 -2
  366. package/lib/components/FluidTextInput/FluidTextInput.js +2 -2
  367. package/lib/components/FluidTextInput/index.js +5 -2
  368. package/lib/components/FluidTimePicker/FluidTimePicker.Skeleton.js +2 -2
  369. package/lib/components/FluidTimePicker/FluidTimePicker.js +2 -2
  370. package/lib/components/FluidTimePickerSelect/index.js +3 -1
  371. package/lib/components/Form/Form.js +2 -2
  372. package/lib/components/FormGroup/FormGroup.js +2 -2
  373. package/lib/components/FormItem/FormItem.js +2 -2
  374. package/lib/components/FormLabel/FormLabel.js +2 -2
  375. package/lib/components/Grid/CSSGrid.js +3 -3
  376. package/lib/components/Grid/Column.js +2 -2
  377. package/lib/components/Grid/ColumnHang.js +3 -3
  378. package/lib/components/Grid/FlexGrid.js +3 -3
  379. package/lib/components/Grid/Grid.js +3 -3
  380. package/lib/components/Grid/Row.js +2 -2
  381. package/lib/components/Icon/Icon.Skeleton.js +3 -2
  382. package/lib/components/IconButton/index.js +4 -3
  383. package/lib/components/IconIndicator/index.js +4 -2
  384. package/lib/components/InlineCheckbox/index.js +3 -1
  385. package/lib/components/InlineLoading/InlineLoading.js +2 -2
  386. package/lib/components/InlineLoading/index.js +3 -1
  387. package/lib/components/Layer/LayerLevel.js +1 -0
  388. package/lib/components/Layer/index.js +2 -2
  389. package/lib/components/Layout/index.js +2 -2
  390. package/lib/components/LayoutDirection/LayoutDirection.js +1 -0
  391. package/lib/components/Link/Link.js +2 -2
  392. package/lib/components/Link/index.js +3 -1
  393. package/lib/components/ListBox/ListBox.js +2 -2
  394. package/lib/components/ListBox/ListBoxMenuIcon.js +2 -2
  395. package/lib/components/ListBox/ListBoxMenuItem.js +4 -3
  396. package/lib/components/ListBox/ListBoxSelection.js +2 -2
  397. package/lib/components/ListBox/index.js +3 -1
  398. package/lib/components/ListBox/next/ListBoxSelection.js +2 -2
  399. package/lib/components/ListBox/next/ListBoxTrigger.js +2 -2
  400. package/lib/components/ListItem/ListItem.js +2 -2
  401. package/lib/components/Loading/Loading.js +2 -2
  402. package/lib/components/Loading/index.js +3 -1
  403. package/lib/components/Menu/Menu.js +2 -2
  404. package/lib/components/Menu/MenuItem.js +2 -2
  405. package/lib/components/MenuButton/index.js +2 -2
  406. package/lib/components/Modal/Modal.js +5 -4
  407. package/lib/components/Modal/ModalPresence.js +4 -1
  408. package/lib/components/Modal/index.js +6 -2
  409. package/lib/components/ModalWrapper/ModalWrapper.js +2 -2
  410. package/lib/components/MultiSelect/FilterableMultiSelect.js +6 -4
  411. package/lib/components/MultiSelect/MultiSelect.js +3 -3
  412. package/lib/components/Notification/Notification.js +4 -4
  413. package/lib/components/NumberInput/NumberInput.Skeleton.js +2 -2
  414. package/lib/components/NumberInput/NumberInput.js +16 -5
  415. package/lib/components/OrderedList/OrderedList.js +2 -2
  416. package/lib/components/OverflowMenu/OverflowMenu.js +5 -3
  417. package/lib/components/OverflowMenu/index.js +3 -2
  418. package/lib/components/OverflowMenu/next/index.js +2 -2
  419. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +3 -3
  420. package/lib/components/OverflowMenuItem/index.js +3 -1
  421. package/lib/components/OverflowMenuV2/index.js +1 -1
  422. package/lib/components/PageHeader/PageHeader.js +5 -5
  423. package/lib/components/PageHeader/index.js +14 -0
  424. package/lib/components/Pagination/Pagination.Skeleton.js +3 -2
  425. package/lib/components/Pagination/Pagination.d.ts +18 -1
  426. package/lib/components/Pagination/Pagination.js +31 -6
  427. package/lib/components/Pagination/experimental/PageSelector.d.ts +4 -0
  428. package/lib/components/Pagination/experimental/PageSelector.js +9 -2
  429. package/lib/components/Pagination/experimental/Pagination-story.d.ts +100 -65
  430. package/lib/components/Pagination/experimental/Pagination.d.ts +4 -0
  431. package/lib/components/Pagination/experimental/Pagination.js +9 -2
  432. package/lib/components/PaginationNav/PaginationNav.js +6 -4
  433. package/lib/components/Popover/index.js +10 -2
  434. package/lib/components/ProgressBar/ProgressBar.js +2 -2
  435. package/lib/components/ProgressIndicator/ProgressIndicator.Skeleton.js +3 -2
  436. package/lib/components/ProgressIndicator/ProgressIndicator.js +2 -2
  437. package/lib/components/RadioButton/RadioButton.Skeleton.js +3 -2
  438. package/lib/components/RadioButton/RadioButton.js +2 -2
  439. package/lib/components/RadioButton/index.js +3 -1
  440. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +2 -2
  441. package/lib/components/RadioTile/RadioTile.js +3 -3
  442. package/lib/components/RadioTile/index.js +3 -1
  443. package/lib/components/Search/Search.Skeleton.js +3 -2
  444. package/lib/components/Search/Search.js +3 -3
  445. package/lib/components/Search/index.js +3 -1
  446. package/lib/components/Select/Select.Skeleton.js +3 -2
  447. package/lib/components/Select/Select.js +2 -2
  448. package/lib/components/Select/index.js +3 -1
  449. package/lib/components/SelectItem/SelectItem.js +2 -2
  450. package/lib/components/SelectItem/index.js +3 -1
  451. package/lib/components/SelectItemGroup/SelectItemGroup.js +2 -2
  452. package/lib/components/ShapeIndicator/index.js +4 -2
  453. package/lib/components/SkeletonIcon/SkeletonIcon.js +2 -2
  454. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +2 -2
  455. package/lib/components/SkeletonText/SkeletonText.js +2 -2
  456. package/lib/components/SkeletonText/index.js +3 -1
  457. package/lib/components/Slider/Slider.Skeleton.js +2 -2
  458. package/lib/components/Slider/Slider.js +8 -6
  459. package/lib/components/Stack/Stack.js +2 -2
  460. package/lib/components/StructuredList/StructuredList.Skeleton.js +2 -2
  461. package/lib/components/StructuredList/StructuredList.js +2 -2
  462. package/lib/components/Switch/IconSwitch.js +5 -4
  463. package/lib/components/Switch/Switch.js +3 -3
  464. package/lib/components/TabContent/TabContent.js +2 -2
  465. package/lib/components/Tabs/Tabs.Skeleton.js +3 -2
  466. package/lib/components/Tabs/Tabs.js +35 -23
  467. package/lib/components/Tag/DismissibleTag.js +3 -2
  468. package/lib/components/Tag/OperationalTag.js +3 -2
  469. package/lib/components/Tag/SelectableTag.js +2 -2
  470. package/lib/components/Tag/Tag.Skeleton.js +3 -2
  471. package/lib/components/Tag/Tag.js +3 -2
  472. package/lib/components/TextArea/TextArea.Skeleton.js +3 -2
  473. package/lib/components/TextArea/TextArea.js +3 -3
  474. package/lib/components/TextArea/index.js +3 -1
  475. package/lib/components/TextInput/ControlledPasswordInput.js +3 -3
  476. package/lib/components/TextInput/PasswordInput.js +2 -2
  477. package/lib/components/TextInput/TextInput.Skeleton.js +3 -2
  478. package/lib/components/TextInput/TextInput.js +2 -2
  479. package/lib/components/TextInput/index.js +3 -1
  480. package/lib/components/Theme/index.js +2 -2
  481. package/lib/components/Tile/Tile.js +7 -4
  482. package/lib/components/TileGroup/TileGroup.js +1 -1
  483. package/lib/components/TimePicker/TimePicker.js +2 -2
  484. package/lib/components/TimePickerSelect/TimePickerSelect.js +2 -2
  485. package/lib/components/Toggle/Toggle.Skeleton.js +3 -2
  486. package/lib/components/Toggle/Toggle.js +3 -2
  487. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +2 -2
  488. package/lib/components/Toggletip/index.js +4 -3
  489. package/lib/components/Tooltip/DefinitionTooltip.js +2 -2
  490. package/lib/components/Tooltip/Tooltip.d.ts +2 -1
  491. package/lib/components/Tooltip/Tooltip.js +5 -4
  492. package/lib/components/TreeView/TreeNode.js +8 -5
  493. package/lib/components/TreeView/TreeView.js +2 -2
  494. package/lib/components/UIShell/Content.js +2 -2
  495. package/lib/components/UIShell/Header.js +2 -2
  496. package/lib/components/UIShell/HeaderGlobalAction.js +2 -2
  497. package/lib/components/UIShell/HeaderMenu.js +3 -2
  498. package/lib/components/UIShell/HeaderMenuButton.js +2 -2
  499. package/lib/components/UIShell/HeaderMenuItem.js +2 -2
  500. package/lib/components/UIShell/HeaderName.js +2 -2
  501. package/lib/components/UIShell/HeaderNavigation.js +2 -2
  502. package/lib/components/UIShell/HeaderPanel.js +3 -3
  503. package/lib/components/UIShell/HeaderSideNavItems.js +2 -2
  504. package/lib/components/UIShell/SideNav.js +2 -2
  505. package/lib/components/UIShell/SideNavDetails.js +2 -2
  506. package/lib/components/UIShell/SideNavDivider.js +2 -2
  507. package/lib/components/UIShell/SideNavFooter.js +2 -2
  508. package/lib/components/UIShell/SideNavHeader.js +2 -2
  509. package/lib/components/UIShell/SideNavIcon.js +2 -2
  510. package/lib/components/UIShell/SideNavItem.js +2 -2
  511. package/lib/components/UIShell/SideNavItems.js +2 -2
  512. package/lib/components/UIShell/SideNavLink.js +2 -2
  513. package/lib/components/UIShell/SideNavLinkText.js +2 -2
  514. package/lib/components/UIShell/SideNavMenu.js +3 -2
  515. package/lib/components/UIShell/SideNavMenuItem.js +2 -2
  516. package/lib/components/UIShell/SideNavSwitcher.js +2 -2
  517. package/lib/components/UIShell/SkipToContent.js +2 -2
  518. package/lib/components/UIShell/Switcher.js +2 -2
  519. package/lib/components/UIShell/SwitcherDivider.js +2 -2
  520. package/lib/components/UIShell/SwitcherItem.js +2 -2
  521. package/lib/components/UnorderedList/UnorderedList.js +2 -2
  522. package/lib/index.js +33 -32
  523. package/lib/internal/FloatingMenu.js +13 -8
  524. package/lib/internal/motion/MotionSurface.d.ts +35 -0
  525. package/lib/internal/motion/useMotionEnabled.d.ts +13 -0
  526. package/lib/internal/motion/useMotionSurface.d.ts +33 -0
  527. package/lib/internal/useId.js +1 -0
  528. package/lib/internal/useOverflowItems.js +2 -1
  529. package/lib/internal/usePresence.d.ts +8 -1
  530. package/lib/internal/usePresence.js +4 -2
  531. package/lib/internal/usePresenceContext.d.ts +12 -0
  532. package/lib/internal/usePresenceContext.js +22 -3
  533. package/lib/tools/wrapComponent.js +2 -2
  534. package/package.json +12 -9
  535. package/telemetry.yml +1 -0
@@ -13,8 +13,8 @@ import { useMergedRefs } from "../../internal/useMergedRefs.js";
13
13
  import { MenuContext, menuReducer } from "./MenuContext.js";
14
14
  import { useLayoutDirection } from "../LayoutDirection/useLayoutDirection.js";
15
15
  import { canUseDOM } from "../../internal/environment.js";
16
- import classNames from "classnames";
17
16
  import { forwardRef, useContext, useEffect, useMemo, useReducer, useRef, useState } from "react";
17
+ import cx from "classnames";
18
18
  import PropTypes from "prop-types";
19
19
  import { jsx } from "react/jsx-runtime";
20
20
  import { createPortal } from "react-dom";
@@ -184,7 +184,7 @@ const Menu = forwardRef(function Menu({ backgroundToken = "layer", border = fals
184
184
  if (open) handleOpen();
185
185
  else setPosition([-1, -1]);
186
186
  }, [open]);
187
- const classNames$1 = classNames(className, `${prefix}--menu`, `${prefix}--menu--${menuSize}`, {
187
+ const classNames = cx(className, `${prefix}--menu`, `${prefix}--menu--${menuSize}`, {
188
188
  [`${prefix}--menu--box-shadow-top`]: menuAlignment && menuAlignment.slice(0, 3) === "top",
189
189
  [`${prefix}--menu--open`]: open,
190
190
  [`${prefix}--menu--shown`]: open && !legacyAutoalign || position[0] >= 0 && position[1] >= 0,
@@ -198,7 +198,7 @@ const Menu = forwardRef(function Menu({ backgroundToken = "layer", border = fals
198
198
  value: childContext,
199
199
  children: /* @__PURE__ */ jsx("ul", {
200
200
  ...rest,
201
- className: classNames$1,
201
+ className: classNames,
202
202
  role: "menu",
203
203
  ref,
204
204
  "aria-label": label,
@@ -16,8 +16,8 @@ import { MenuContext } from "./MenuContext.js";
16
16
  import { useLayoutDirection } from "../LayoutDirection/useLayoutDirection.js";
17
17
  import { Menu as Menu$1 } from "./Menu.js";
18
18
  import { useControllableState } from "../../internal/useControllableState.js";
19
- import classNames from "classnames";
20
19
  import React, { forwardRef, useContext, useEffect, useRef, useState } from "react";
20
+ import cx from "classnames";
21
21
  import PropTypes from "prop-types";
22
22
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
23
23
  import { CaretLeft, CaretRight, Checkmark } from "@carbon/icons-react";
@@ -112,7 +112,7 @@ const MenuItem = forwardRef(function MenuItem({ children, className, dangerDescr
112
112
  if (pendingKeyboardClick.current && keyboardClickEvent(e)) handleClick(e);
113
113
  pendingKeyboardClick.current = false;
114
114
  }
115
- const classNames$1 = classNames(className, `${prefix}--menu-item`, {
115
+ const classNames = cx(className, `${prefix}--menu-item`, {
116
116
  [`${prefix}--menu-item--disabled`]: isDisabled,
117
117
  [`${prefix}--menu-item--danger`]: isDanger
118
118
  });
@@ -145,7 +145,7 @@ const MenuItem = forwardRef(function MenuItem({ children, className, dangerDescr
145
145
  role: "menuitem",
146
146
  ...rest,
147
147
  ref,
148
- className: classNames$1,
148
+ className: classNames,
149
149
  tabIndex: !disabled ? 0 : -1,
150
150
  "aria-disabled": isDisabled ?? void 0,
151
151
  "aria-haspopup": hasChildren ?? void 0,
@@ -249,12 +249,12 @@ const MenuItemSelectable = forwardRef(function MenuItemSelectable({ className, d
249
249
  useEffect(() => {
250
250
  if (!context.state.hasSelectableItems) context.dispatch({ type: "enableSelectableItems" });
251
251
  }, [context.state.hasSelectableItems, context]);
252
- const classNames$2 = classNames(className, `${prefix}--menu-item-selectable--selected`);
252
+ const classNames = cx(className, `${prefix}--menu-item-selectable--selected`);
253
253
  return /* @__PURE__ */ jsx(MenuItem, {
254
254
  ...rest,
255
255
  ref: forwardRef,
256
256
  label,
257
- className: classNames$2,
257
+ className: classNames,
258
258
  role: "menuitemcheckbox",
259
259
  "aria-checked": checked,
260
260
  onClick: handleClick
@@ -284,7 +284,7 @@ MenuItemSelectable.propTypes = {
284
284
  };
285
285
  const MenuItemGroup = forwardRef(function MenuItemGroup({ children, className, label, ...rest }, forwardRef) {
286
286
  return /* @__PURE__ */ jsx("li", {
287
- className: classNames(className, `${usePrefix()}--menu-item-group`),
287
+ className: cx(className, `${usePrefix()}--menu-item-group`),
288
288
  role: "none",
289
289
  ref: forwardRef,
290
290
  children: /* @__PURE__ */ jsx("ul", {
@@ -324,7 +324,7 @@ const MenuItemRadioGroup = forwardRef(function MenuItemRadioGroup({ className, d
324
324
  if (!context.state.hasSelectableItems) context.dispatch({ type: "enableSelectableItems" });
325
325
  }, [context.state.hasSelectableItems, context]);
326
326
  return /* @__PURE__ */ jsx("li", {
327
- className: classNames(className, `${prefix}--menu-item-radio-group`),
327
+ className: cx(className, `${prefix}--menu-item-radio-group`),
328
328
  role: "none",
329
329
  ref: forwardRef,
330
330
  children: /* @__PURE__ */ jsx("ul", {
@@ -373,10 +373,10 @@ MenuItemRadioGroup.propTypes = {
373
373
  selectedItem: PropTypes.any
374
374
  };
375
375
  const MenuItemDivider = forwardRef(function MenuItemDivider({ className, ...rest }, forwardRef) {
376
- const classNames$3 = classNames(className, `${usePrefix()}--menu-item-divider`);
376
+ const classNames = cx(className, `${usePrefix()}--menu-item-divider`);
377
377
  return /* @__PURE__ */ jsx("li", {
378
378
  ...rest,
379
- className: classNames$3,
379
+ className: classNames,
380
380
  role: "separator",
381
381
  ref: forwardRef
382
382
  });
@@ -13,8 +13,8 @@ import Button_default from "../Button/index.js";
13
13
  import { mergeRefs } from "../../tools/mergeRefs.js";
14
14
  import { Menu as Menu$1 } from "../Menu/Menu.js";
15
15
  import { useAttachedMenu } from "../../internal/useAttachedMenu.js";
16
- import classNames from "classnames";
17
16
  import { forwardRef, useRef } from "react";
17
+ import cx from "classnames";
18
18
  import PropTypes from "prop-types";
19
19
  import { jsx, jsxs } from "react/jsx-runtime";
20
20
  import { ChevronDown } from "@carbon/icons-react";
@@ -74,9 +74,9 @@ const MenuButton = forwardRef(({ children, className, disabled, kind = defaultBu
74
74
  function handleClick() {
75
75
  if (triggerRef.current) hookOnClick();
76
76
  }
77
- const containerClasses = classNames(`${prefix}--menu-button__container`, className);
78
- const triggerClasses = classNames(`${prefix}--menu-button__trigger`, { [`${prefix}--menu-button__trigger--open`]: open });
79
- const menuClasses = classNames(`${prefix}--menu-button__${menuAlignment}`);
77
+ const containerClasses = cx(`${prefix}--menu-button__container`, className);
78
+ const triggerClasses = cx(`${prefix}--menu-button__trigger`, { [`${prefix}--menu-button__trigger--open`]: open });
79
+ const menuClasses = cx(`${prefix}--menu-button__${menuAlignment}`);
80
80
  return /* @__PURE__ */ jsxs("div", {
81
81
  ...rest,
82
82
  ref,
@@ -5,14 +5,14 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ import { noopFn } from "../../internal/noopFn.js";
9
+ import { warning } from "../../internal/warning.js";
8
10
  import { usePrefix } from "../../internal/usePrefix.js";
9
11
  import { Text } from "../Text/Text.js";
10
12
  import { Enter, Escape, Tab } from "../../internal/keyboard/keys.js";
11
13
  import { match } from "../../internal/keyboard/match.js";
12
14
  import { selectorTabbable } from "../../internal/keyboard/navigation.js";
13
15
  import { useId } from "../../internal/useId.js";
14
- import { noopFn } from "../../internal/noopFn.js";
15
- import { warning } from "../../internal/warning.js";
16
16
  import { deprecate } from "../../prop-types/deprecate.js";
17
17
  import { isComponentElement } from "../../internal/utils.js";
18
18
  import { useMergedRefs } from "../../internal/useMergedRefs.js";
@@ -32,8 +32,8 @@ import { isTopmostVisibleModal } from "./isTopmostVisibleModal.js";
32
32
  import { requiredIfGivenPropIsTruthy } from "../../prop-types/requiredIfGivenPropIsTruthy.js";
33
33
  import { usePreviousValue } from "../../internal/usePreviousValue.js";
34
34
  import { ModalPresence, ModalPresenceContext, useExclusiveModalPresenceContext } from "./ModalPresence.js";
35
- import classNames from "classnames";
36
35
  import React, { cloneElement, useCallback, useContext, useEffect, useRef, useState } from "react";
36
+ import cx from "classnames";
37
37
  import PropTypes from "prop-types";
38
38
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
39
39
  import { Close } from "@carbon/icons-react";
@@ -88,7 +88,7 @@ const ModalDialog = React.forwardRef(function ModalDialog({ "aria-label": ariaLa
88
88
  const modalHeadingId = `${prefix}--modal-header__heading--${modalInstanceId}`;
89
89
  const modalBodyId = `${prefix}--modal-body--${modalInstanceId}`;
90
90
  const modalCloseButtonClass = `${prefix}--modal-close`;
91
- const primaryButtonClass = classNames({ [`${prefix}--btn--loading`]: loadingStatus !== "inactive" });
91
+ const primaryButtonClass = cx({ [`${prefix}--btn--loading`]: loadingStatus !== "inactive" });
92
92
  const loadingActive = loadingStatus !== "inactive";
93
93
  const presenceContext = useContext(ModalPresenceContext);
94
94
  const mergedRefs = useMergedRefs([
@@ -155,7 +155,7 @@ const ModalDialog = React.forwardRef(function ModalDialog({ "aria-label": ariaLa
155
155
  }
156
156
  const onSecondaryButtonClick = onSecondarySubmit ? onSecondarySubmit : onRequestClose;
157
157
  const { height } = useResizeObserver({ ref: contentRef });
158
- const modalClasses = classNames(`${prefix}--modal`, {
158
+ const modalClasses = cx(`${prefix}--modal`, {
159
159
  [`${prefix}--modal-tall`]: !passiveModal,
160
160
  "is-visible": enablePresence || open,
161
161
  [`${prefix}--modal--enable-presence`]: presenceContext?.autoEnablePresence,
@@ -163,7 +163,7 @@ const ModalDialog = React.forwardRef(function ModalDialog({ "aria-label": ariaLa
163
163
  [`${prefix}--modal--slug`]: slug,
164
164
  [`${prefix}--modal--decorator`]: decorator
165
165
  }, className);
166
- const containerClasses = classNames(`${prefix}--modal-container`, {
166
+ const containerClasses = cx(`${prefix}--modal-container`, {
167
167
  [`${prefix}--modal-container--${size}`]: size,
168
168
  [`${prefix}--modal-container--full-width`]: isFullWidth
169
169
  });
@@ -179,11 +179,11 @@ const ModalDialog = React.forwardRef(function ModalDialog({ "aria-label": ariaLa
179
179
  if (diff > 5) setIsScrollable(true);
180
180
  else if (diff < -5) setIsScrollable(false);
181
181
  }, [currentScrollHeight, currentClientHeight]);
182
- const contentClasses = classNames(`${prefix}--modal-content`, {
182
+ const contentClasses = cx(`${prefix}--modal-content`, {
183
183
  [`${prefix}--modal-scroll-content`]: hasScrollingContent || isScrollable,
184
184
  [`${prefix}--modal-scroll-content--no-fade`]: height <= 300
185
185
  });
186
- const footerClasses = classNames(`${prefix}--modal-footer`, { [`${prefix}--modal-footer--three-button`]: Array.isArray(secondaryButtons) && secondaryButtons.length === 2 });
186
+ const footerClasses = cx(`${prefix}--modal-footer`, { [`${prefix}--modal-footer--three-button`]: Array.isArray(secondaryButtons) && secondaryButtons.length === 2 });
187
187
  const asStringOrUndefined = (node) => {
188
188
  return typeof node === "string" ? node : void 0;
189
189
  };
@@ -654,4 +654,4 @@ Modal.propTypes = {
654
654
  slug: deprecate(PropTypes.node, "The `slug` prop has been deprecated and will be removed in the next major version. Use the decorator prop instead.")
655
655
  };
656
656
  //#endregion
657
- export { Modal as default };
657
+ export { ModalSizes, Modal as default };
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { usePresenceContext } from "../../internal/usePresenceContext.js";
8
+ import { PresenceHoldContext, usePresenceContext } from "../../internal/usePresenceContext.js";
9
9
  import { createContext, useContext, useMemo } from "react";
10
10
  import { jsx } from "react/jsx-runtime";
11
11
  //#region src/components/Modal/ModalPresence.tsx
@@ -24,7 +24,10 @@ const ModalPresence = ({ open, _presenceId: presenceId, _autoEnablePresence: aut
24
24
  if (!isPresent) return null;
25
25
  return /* @__PURE__ */ jsx(ModalPresenceContext.Provider, {
26
26
  value: contextValue,
27
- children
27
+ children: /* @__PURE__ */ jsx(PresenceHoldContext.Provider, {
28
+ value: contextValue,
29
+ children
30
+ })
28
31
  });
29
32
  };
30
33
  const ModalPresenceContext = createContext(void 0);
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import "./ModalPresence.js";
8
+ import { ModalPresence, withModalPresence } from "./ModalPresence.js";
9
9
  import Modal from "./Modal.js";
10
10
  //#region src/components/Modal/index.ts
11
11
  /**
@@ -16,4 +16,4 @@ import Modal from "./Modal.js";
16
16
  */
17
17
  var Modal_default = Modal;
18
18
  //#endregion
19
- export { Modal_default as default };
19
+ export { Modal, ModalPresence, Modal_default as default, withModalPresence };
@@ -5,10 +5,10 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { Escape } from "../../internal/keyboard/keys.js";
9
- import { match } from "../../internal/keyboard/match.js";
10
8
  import { noopFn } from "../../internal/noopFn.js";
11
9
  import { warning } from "../../internal/warning.js";
10
+ import { Escape } from "../../internal/keyboard/keys.js";
11
+ import { match } from "../../internal/keyboard/match.js";
12
12
  import { ButtonKinds } from "../Button/Button.js";
13
13
  import Button_default from "../Button/index.js";
14
14
  import Modal_default from "../Modal/index.js";
@@ -29,8 +29,8 @@ import { sortingPropTypes } from "./MultiSelectPropTypes.js";
29
29
  import { isSelectAllItem } from "./tools/isSelectAllItem.js";
30
30
  import { defaultCompareItems, defaultSortItems } from "./tools/sorting.js";
31
31
  import { useSelection } from "../../internal/Selection.js";
32
- import classNames from "classnames";
33
32
  import { cloneElement, forwardRef, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
33
+ import cx from "classnames";
34
34
  import PropTypes from "prop-types";
35
35
  import { jsx, jsxs } from "react/jsx-runtime";
36
36
  import { WarningAltFilled, WarningFilled } from "@carbon/icons-react";
@@ -84,8 +84,10 @@ const FilterableMultiSelect = forwardRef(function FilterableMultiSelect({ autoAl
84
84
  const handleSelectAllClick = useCallback(() => {
85
85
  const selectable = nonSelectAllItems.filter((item) => !isItemDisabled(item));
86
86
  const { checked, indeterminate } = selectAllStatus;
87
- if (checked || indeterminate) toggleAll(controlledSelectedItems.filter((sel) => !filteredItems.some((e) => isEqual(e, sel))));
88
- else {
87
+ if (checked || indeterminate) {
88
+ const remainingSelectedItems = controlledSelectedItems.filter((sel) => !filteredItems.some((e) => isEqual(e, sel)));
89
+ toggleAll(remainingSelectedItems);
90
+ } else {
89
91
  const toSelect = selectable.filter((e) => !controlledSelectedItems.some((sel) => isEqual(sel, e)));
90
92
  toggleAll([...controlledSelectedItems, ...toSelect]);
91
93
  }
@@ -167,7 +169,7 @@ const FilterableMultiSelect = forwardRef(function FilterableMultiSelect({ autoAl
167
169
  const inline = type === "inline";
168
170
  const showWarning = normalizedProps.warn;
169
171
  const showHelperText = !normalizedProps.warn && !normalizedProps.invalid;
170
- const wrapperClasses = classNames(`${prefix}--multi-select__wrapper`, `${prefix}--multi-select--filterable__wrapper`, `${prefix}--list-box__wrapper`, containerClassName, {
172
+ const wrapperClasses = cx(`${prefix}--multi-select__wrapper`, `${prefix}--multi-select--filterable__wrapper`, `${prefix}--list-box__wrapper`, containerClassName, {
171
173
  [`${prefix}--multi-select__wrapper--inline`]: inline,
172
174
  [`${prefix}--list-box__wrapper--inline`]: inline,
173
175
  [`${prefix}--multi-select__wrapper--inline--invalid`]: inline && normalizedProps.invalid,
@@ -181,16 +183,16 @@ const FilterableMultiSelect = forwardRef(function FilterableMultiSelect({ autoAl
181
183
  const hasHelper = hasHelperText(helperText);
182
184
  const helperId = !hasHelper ? void 0 : `filterablemultiselect-helper-text-${filterableMultiSelectInstanceId}`;
183
185
  const labelId = `${id}-label`;
184
- const titleClasses = classNames({
186
+ const titleClasses = cx({
185
187
  [`${prefix}--label`]: true,
186
188
  [`${prefix}--label--disabled`]: disabled,
187
189
  [`${prefix}--visually-hidden`]: hideLabel
188
190
  });
189
- const helperClasses = classNames({
191
+ const helperClasses = cx({
190
192
  [`${prefix}--form__helper-text`]: true,
191
193
  [`${prefix}--form__helper-text--disabled`]: disabled
192
194
  });
193
- const inputClasses = classNames({
195
+ const inputClasses = cx({
194
196
  [`${prefix}--text-input`]: true,
195
197
  [`${prefix}--text-input--empty`]: !inputValue,
196
198
  [`${prefix}--text-input--light`]: light
@@ -379,7 +381,7 @@ const FilterableMultiSelect = forwardRef(function FilterableMultiSelect({ autoAl
379
381
  const candidateIsAILabel = isComponentElement(candidate, AILabel);
380
382
  const normalizedDecorator = candidateIsAILabel ? cloneElement(candidate, { size: "mini" }) : candidate;
381
383
  const selectedItemsLength = controlledSelectedItems.filter((item) => !isSelectAllItem(item)).length;
382
- const className = classNames(`${prefix}--multi-select`, `${prefix}--combo-box`, `${prefix}--multi-select--filterable`, {
384
+ const className = cx(`${prefix}--multi-select`, `${prefix}--combo-box`, `${prefix}--multi-select--filterable`, {
383
385
  [`${prefix}--multi-select--invalid`]: normalizedProps.invalid,
384
386
  [`${prefix}--multi-select--invalid--focused`]: inputFocused && normalizedProps.invalid,
385
387
  [`${prefix}--multi-select--open`]: isOpen,
@@ -5,12 +5,12 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ import { noopFn } from "../../internal/noopFn.js";
8
9
  import { usePrefix } from "../../internal/usePrefix.js";
9
10
  import { ArrowDown, Delete, Enter, Escape, Space, Tab } from "../../internal/keyboard/keys.js";
10
11
  import { match } from "../../internal/keyboard/match.js";
11
12
  import useIsomorphicEffect from "../../internal/useIsomorphicEffect.js";
12
13
  import { useId } from "../../internal/useId.js";
13
- import { noopFn } from "../../internal/noopFn.js";
14
14
  import { deprecate } from "../../prop-types/deprecate.js";
15
15
  import { defaultItemToString } from "../../internal/defaultItemToString.js";
16
16
  import { isItemDisabled } from "../../internal/isItemDisabled.js";
@@ -27,8 +27,8 @@ import { sortingPropTypes } from "./MultiSelectPropTypes.js";
27
27
  import { isSelectAllItem } from "./tools/isSelectAllItem.js";
28
28
  import { defaultCompareItems, defaultSortItems } from "./tools/sorting.js";
29
29
  import { useSelection } from "../../internal/Selection.js";
30
- import classNames from "classnames";
31
30
  import React, { cloneElement, isValidElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
31
+ import cx from "classnames";
32
32
  import PropTypes from "prop-types";
33
33
  import { jsx, jsxs } from "react/jsx-runtime";
34
34
  import { WarningAltFilled, WarningFilled } from "@carbon/icons-react";
@@ -171,7 +171,7 @@ const MultiSelect = React.forwardRef(({ autoAlign = false, className: containerC
171
171
  const inline = type === "inline";
172
172
  const showWarning = normalizedProps.warn;
173
173
  const showHelperText = !normalizedProps.warn && !normalizedProps.invalid && helperText;
174
- const wrapperClasses = classNames(`${prefix}--multi-select__wrapper`, `${prefix}--list-box__wrapper`, containerClassName, {
174
+ const wrapperClasses = cx(`${prefix}--multi-select__wrapper`, `${prefix}--list-box__wrapper`, containerClassName, {
175
175
  [`${prefix}--multi-select__wrapper--inline`]: inline,
176
176
  [`${prefix}--list-box__wrapper--inline`]: inline,
177
177
  [`${prefix}--multi-select__wrapper--inline--invalid`]: inline && normalizedProps.invalid,
@@ -180,14 +180,14 @@ const MultiSelect = React.forwardRef(({ autoAlign = false, className: containerC
180
180
  [`${prefix}--list-box__wrapper--slug`]: slug,
181
181
  [`${prefix}--list-box__wrapper--decorator`]: decorator
182
182
  });
183
- const titleClasses = classNames(`${prefix}--label`, {
183
+ const titleClasses = cx(`${prefix}--label`, {
184
184
  [`${prefix}--label--disabled`]: disabled,
185
185
  [`${prefix}--visually-hidden`]: hideLabel
186
186
  });
187
187
  const helperId = !helperText ? void 0 : `multiselect-helper-text-${multiSelectInstanceId}`;
188
188
  const fieldLabelId = `multiselect-field-label-${multiSelectInstanceId}`;
189
- const helperClasses = classNames(`${prefix}--form__helper-text`, { [`${prefix}--form__helper-text--disabled`]: disabled });
190
- const className = classNames(`${prefix}--multi-select`, {
189
+ const helperClasses = cx(`${prefix}--form__helper-text`, { [`${prefix}--form__helper-text--disabled`]: disabled });
190
+ const className = cx(`${prefix}--multi-select`, {
191
191
  [`${prefix}--multi-select--invalid`]: normalizedProps.invalid,
192
192
  [`${prefix}--multi-select--invalid--focused`]: inputFocused && normalizedProps.invalid,
193
193
  [`${prefix}--multi-select--warning`]: showWarning,
@@ -263,7 +263,7 @@ const MultiSelect = React.forwardRef(({ autoAlign = false, className: containerC
263
263
  }
264
264
  return changes;
265
265
  }
266
- const multiSelectFieldWrapperClasses = classNames(`${prefix}--list-box__field--wrapper`, { [`${prefix}--list-box__field--wrapper--input-focused`]: inputFocused });
266
+ const multiSelectFieldWrapperClasses = cx(`${prefix}--list-box__field--wrapper`, { [`${prefix}--list-box__field--wrapper--input-focused`]: inputFocused });
267
267
  const readOnlyEventHandlers = readOnly ? {
268
268
  onClick: (evt) => {
269
269
  evt.preventDefault();
@@ -5,22 +5,22 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ import { noopFn } from "../../internal/noopFn.js";
9
+ import { warning } from "../../internal/warning.js";
8
10
  import { usePrefix } from "../../internal/usePrefix.js";
9
11
  import { Text } from "../Text/Text.js";
10
12
  import { Escape, Tab } from "../../internal/keyboard/keys.js";
11
13
  import { match, matches } from "../../internal/keyboard/match.js";
12
14
  import useIsomorphicEffect from "../../internal/useIsomorphicEffect.js";
13
15
  import { useId } from "../../internal/useId.js";
14
- import { noopFn } from "../../internal/noopFn.js";
15
- import { warning } from "../../internal/warning.js";
16
16
  import { deprecate } from "../../prop-types/deprecate.js";
17
17
  import { deprecateValuesWithin } from "../../prop-types/deprecateValuesWithin.js";
18
18
  import { useFeatureFlag } from "../FeatureFlags/index.js";
19
19
  import { useInteractiveChildrenNeedDescription, useNoInteractiveChildren } from "../../internal/useNoInteractiveChildren.js";
20
20
  import Button_default from "../Button/index.js";
21
21
  import { wrapFocus, wrapFocusWithoutSentinels } from "../../internal/wrapFocus.js";
22
- import classNames from "classnames";
23
22
  import { useEffect, useRef, useState } from "react";
23
+ import cx from "classnames";
24
24
  import PropTypes from "prop-types";
25
25
  import { jsx, jsxs } from "react/jsx-runtime";
26
26
  import { CheckmarkFilled, Close, ErrorFilled, InformationFilled, InformationSquareFilled, WarningAltFilled, WarningFilled } from "@carbon/icons-react";
@@ -49,7 +49,7 @@ function useEscapeToClose(ref, callback, override = true) {
49
49
  }
50
50
  function NotificationActionButton({ children, className: customClassName, onClick, inline, ...rest }) {
51
51
  return /* @__PURE__ */ jsx(Button_default, {
52
- className: classNames(customClassName, { [`${usePrefix()}--actionable-notification__action-button`]: true }),
52
+ className: cx(customClassName, { [`${usePrefix()}--actionable-notification__action-button`]: true }),
53
53
  kind: inline ? "ghost" : "tertiary",
54
54
  onClick,
55
55
  size: "sm",
@@ -77,8 +77,8 @@ NotificationActionButton.propTypes = {
77
77
  };
78
78
  function NotificationButton({ "aria-label": ariaLabel = "close notification", ariaLabel: deprecatedAriaLabel, className, type = "button", renderIcon: IconTag = Close, name, notificationType = "toast", ...rest }) {
79
79
  const prefix = usePrefix();
80
- const buttonClassName = classNames(className, { [`${prefix}--${notificationType}-notification__close-button`]: notificationType });
81
- const iconClassName = classNames({ [`${prefix}--${notificationType}-notification__close-icon`]: notificationType });
80
+ const buttonClassName = cx(className, { [`${prefix}--${notificationType}-notification__close-button`]: notificationType });
81
+ const iconClassName = cx({ [`${prefix}--${notificationType}-notification__close-icon`]: notificationType });
82
82
  return /* @__PURE__ */ jsx("button", {
83
83
  ...rest,
84
84
  type,
@@ -164,7 +164,7 @@ NotificationIcon.propTypes = {
164
164
  function ToastNotification({ ["aria-label"]: ariaLabel, ariaLabel: deprecatedAriaLabel, role = "status", onClose, onCloseButtonClick = noopFn, statusIconDescription, className, children, kind = "error", lowContrast, hideCloseButton = false, timeout = 0, title, caption, subtitle, ...rest }) {
165
165
  const [isOpen, setIsOpen] = useState(true);
166
166
  const prefix = usePrefix();
167
- const containerClassName = classNames(className, {
167
+ const containerClassName = cx(className, {
168
168
  [`${prefix}--toast-notification`]: true,
169
169
  [`${prefix}--toast-notification--low-contrast`]: lowContrast,
170
170
  [`${prefix}--toast-notification--${kind}`]: kind
@@ -313,7 +313,7 @@ ToastNotification.propTypes = {
313
313
  function InlineNotification({ ["aria-label"]: ariaLabel, children, title, subtitle, role = "status", onClose, onCloseButtonClick = noopFn, statusIconDescription, className, kind = "error", lowContrast, hideCloseButton = false, ...rest }) {
314
314
  const [isOpen, setIsOpen] = useState(true);
315
315
  const prefix = usePrefix();
316
- const containerClassName = classNames(className, {
316
+ const containerClassName = cx(className, {
317
317
  [`${prefix}--inline-notification`]: true,
318
318
  [`${prefix}--inline-notification--low-contrast`]: lowContrast,
319
319
  [`${prefix}--inline-notification--${kind}`]: kind,
@@ -432,7 +432,7 @@ function ActionableNotification({ actionButtonLabel, ["aria-label"]: ariaLabel,
432
432
  const prefix = usePrefix();
433
433
  const id = useId("actionable-notification");
434
434
  const subtitleId = useId("actionable-notification-subtitle");
435
- const containerClassName = classNames(className, {
435
+ const containerClassName = cx(className, {
436
436
  [`${prefix}--actionable-notification`]: true,
437
437
  [`${prefix}--actionable-notification--toast`]: !inline,
438
438
  [`${prefix}--actionable-notification--low-contrast`]: lowContrast,
@@ -648,7 +648,7 @@ const propMappingFunction = (deprecatedValue) => {
648
648
  };
649
649
  function Callout({ actionButtonLabel, children, onActionButtonClick, title, titleId, subtitle, statusIconDescription, className, kind = "info", lowContrast, ...rest }) {
650
650
  const prefix = usePrefix();
651
- const containerClassName = classNames(className, {
651
+ const containerClassName = cx(className, {
652
652
  [`${prefix}--actionable-notification`]: true,
653
653
  [`${prefix}--actionable-notification--low-contrast`]: lowContrast,
654
654
  [`${prefix}--actionable-notification--${kind}`]: kind,
@@ -6,8 +6,8 @@
6
6
  */
7
7
 
8
8
  import { usePrefix } from "../../internal/usePrefix.js";
9
- import classNames from "classnames";
10
9
  import "react";
10
+ import cx from "classnames";
11
11
  import PropTypes from "prop-types";
12
12
  import { jsx, jsxs } from "react/jsx-runtime";
13
13
  //#region src/components/NumberInput/NumberInput.Skeleton.tsx
@@ -20,7 +20,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
20
20
  function NumberInputSkeleton({ hideLabel, className, size = "md", ...rest }) {
21
21
  const prefix = usePrefix();
22
22
  return /* @__PURE__ */ jsxs("div", {
23
- className: classNames(`${prefix}--form-item`, className),
23
+ className: cx(`${prefix}--form-item`, className),
24
24
  ...rest,
25
25
  children: [!hideLabel && /* @__PURE__ */ jsx("span", { className: `${prefix}--label ${prefix}--skeleton` }), /* @__PURE__ */ jsx("div", { className: `${prefix}--number ${prefix}--skeleton ${prefix}--number--${size}` })]
26
26
  });
@@ -18,8 +18,8 @@ import { FormContext } from "../FluidForm/FormContext.js";
18
18
  import { useControllableState } from "../../internal/useControllableState.js";
19
19
  import { clamp } from "../../internal/clamp.js";
20
20
  import { NumberFormatOptionsPropType } from "./NumberFormatPropTypes.js";
21
- import classNames from "classnames";
22
21
  import React, { cloneElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
22
+ import cx from "classnames";
23
23
  import PropTypes from "prop-types";
24
24
  import { jsx, jsxs } from "react/jsx-runtime";
25
25
  import { Add, Subtract } from "@carbon/icons-react";
@@ -150,13 +150,22 @@ const validateNumberSeparators = (input, locale) => {
150
150
  const sign = "[\\-\\u2212]?";
151
151
  const scientific = `([eE][+-]?${digit}+)?`;
152
152
  const usesGrouping = group && (groupSeparator?.trim() === "" ? /[\u00A0\u202F\s]/.test(input) : groupSeparator === "," || groupSeparator === "٬" ? /[,٬]/.test(input) : groupSeparator ? input.includes(groupSeparator) : false);
153
+ const isIndianLocale = locale === "en-IN" || locale.toLowerCase().endsWith("-in");
153
154
  const scientificMatch = input?.match(/^([^eE]+)([eE][+-]?.*)?$/);
154
155
  const baseNumber = scientificMatch ? scientificMatch[1] : input;
155
156
  let integerPart;
156
157
  if (decimalSeparator === "." || decimalSeparator === "٫") integerPart = baseNumber?.split(/[.,]/)[0];
157
158
  else integerPart = baseNumber?.split(decimalSeparator)[0];
158
- if (!(usesGrouping ? new RegExp(`^${sign}(${digit}{1,3}|${digit}{1,3}(${group}${digit}{3})+)$`) : new RegExp(`^${sign}${digit}+$`)).test(integerPart)) return false;
159
- return new RegExp(`^${sign}${digit}+` + (usesGrouping ? `(${group}${digit}{3})*` : "") + `(${decimal}${digit}+)?${scientific}$`).test(input);
159
+ let integerRegex;
160
+ if (!usesGrouping) integerRegex = new RegExp(`^${sign}${digit}+$`);
161
+ else if (isIndianLocale) integerRegex = new RegExp(`^${sign}(${digit}{1,3}|${digit}{1,3}${group}${digit}{3}|${digit}{1,2}(${group}${digit}{2})+${group}${digit}{3})$`);
162
+ else integerRegex = new RegExp(`^${sign}(${digit}{1,3}|${digit}{1,3}(${group}${digit}{3})+)$`);
163
+ if (!integerRegex.test(integerPart)) return false;
164
+ let fullRegex;
165
+ if (!usesGrouping) fullRegex = new RegExp(`^${sign}${digit}+(${decimal}${digit}+)?${scientific}$`);
166
+ else if (isIndianLocale) fullRegex = new RegExp(`^${sign}(${digit}{1,3}|${digit}{1,3}${group}${digit}{3}|${digit}{1,2}(${group}${digit}{2})+${group}${digit}{3})(${decimal}${digit}+)?${scientific}$`);
167
+ else fullRegex = new RegExp(`^${sign}${digit}{1,3}(${group}${digit}{3})*(${decimal}${digit}+)?${scientific}$`);
168
+ return fullRegex.test(input);
160
169
  };
161
170
  const NumberInput = React.forwardRef((props, forwardRef) => {
162
171
  const { allowEmpty = false, className: customClassName, decorator, disabled = false, disableWheel: disableWheelProp = false, formatOptions, helperText = "", hideLabel = false, hideSteppers, iconDescription, id, inputMode = "decimal", invalid = false, invalidText, label, light, locale = "en-US", max, min, onBlur, onStepperBlur, onChange, onClick, onKeyUp, pattern = "[0-9]*", readOnly, size = "md", slug, step = 1, translateWithId: t = defaultTranslateWithId, type = "number", defaultValue = type === "number" ? 0 : NaN, validate, warn = false, warnText = "", stepStartValue = 0, value: controlledValue, ...rest } = props;
@@ -214,7 +223,7 @@ const NumberInput = React.forwardRef((props, forwardRef) => {
214
223
  ]);
215
224
  const inputRef = useRef(null);
216
225
  const ref = useMergedRefs([forwardRef, inputRef]);
217
- const numberInputClasses = classNames({
226
+ const numberInputClasses = cx({
218
227
  [`${prefix}--number`]: true,
219
228
  [`${prefix}--number--helpertext`]: true,
220
229
  [`${prefix}--number--readonly`]: readOnly,
@@ -241,12 +250,12 @@ const NumberInput = React.forwardRef((props, forwardRef) => {
241
250
  warnText
242
251
  });
243
252
  const [incrementNumLabel, decrementNumLabel] = [t("increment.number"), t("decrement.number")];
244
- const wrapperClasses = classNames(`${prefix}--number__input-wrapper`, {
253
+ const wrapperClasses = cx(`${prefix}--number__input-wrapper`, {
245
254
  [`${prefix}--number__input-wrapper--warning`]: normalizedProps.warn,
246
255
  [`${prefix}--number__input-wrapper--slug`]: slug,
247
256
  [`${prefix}--number__input-wrapper--decorator`]: decorator
248
257
  });
249
- const iconClasses = classNames({
258
+ const iconClasses = cx({
250
259
  [`${prefix}--number__invalid`]: normalizedProps.invalid || normalizedProps.warn,
251
260
  [`${prefix}--number__invalid--warning`]: normalizedProps.warn
252
261
  });
@@ -283,7 +292,7 @@ const NumberInput = React.forwardRef((props, forwardRef) => {
283
292
  if ("type" in evt.target && evt.target.type === "button") setIsFocused(false);
284
293
  else setIsFocused(evt.type === "focus");
285
294
  };
286
- const outerElementClasses = classNames(`${prefix}--form-item`, {
295
+ const outerElementClasses = cx(`${prefix}--form-item`, {
287
296
  ...customClassName ? { [customClassName]: true } : {},
288
297
  [`${prefix}--number-input--fluid--invalid`]: isFluid && normalizedProps.invalid,
289
298
  [`${prefix}--number-input--fluid--focus`]: isFluid && isFocused,
@@ -410,7 +419,8 @@ const NumberInput = React.forwardRef((props, forwardRef) => {
410
419
  onBlur(e, value);
411
420
  return;
412
421
  }
413
- onBlur(e, parsedValueForBlur ?? (isControlled ? numberParser.parse(inputValue) : numberValue));
422
+ const parsedTextValue = parsedValueForBlur ?? (isControlled ? numberParser.parse(inputValue) : numberValue);
423
+ onBlur(e, parsedTextValue);
414
424
  }
415
425
  },
416
426
  pattern,
@@ -658,7 +668,7 @@ NumberInput.propTypes = {
658
668
  };
659
669
  const Label = ({ disabled, id, hideLabel, label }) => {
660
670
  const prefix = usePrefix();
661
- const className = classNames({
671
+ const className = cx({
662
672
  [`${prefix}--label`]: true,
663
673
  [`${prefix}--label--disabled`]: disabled,
664
674
  [`${prefix}--visually-hidden`]: hideLabel
@@ -673,7 +683,7 @@ const Label = ({ disabled, id, hideLabel, label }) => {
673
683
  };
674
684
  const HelperText = ({ disabled, description, id }) => {
675
685
  const prefix = usePrefix();
676
- const className = classNames(`${prefix}--form__helper-text`, { [`${prefix}--form__helper-text--disabled`]: disabled });
686
+ const className = cx(`${prefix}--form__helper-text`, { [`${prefix}--form__helper-text--disabled`]: disabled });
677
687
  if (description) return /* @__PURE__ */ jsx(Text, {
678
688
  as: "div",
679
689
  id,
@@ -728,4 +738,4 @@ function disableWheel(e) {
728
738
  e.preventDefault();
729
739
  }
730
740
  //#endregion
731
- export { NumberInput, validateNumberSeparators };
741
+ export { NumberInput, parseNumberWithLocale, validateNumberSeparators };
@@ -6,8 +6,8 @@
6
6
  */
7
7
 
8
8
  import { usePrefix } from "../../internal/usePrefix.js";
9
- import classNames from "classnames";
10
9
  import "react";
10
+ import cx from "classnames";
11
11
  import PropTypes from "prop-types";
12
12
  import { jsx } from "react/jsx-runtime";
13
13
  //#region src/components/OrderedList/OrderedList.tsx
@@ -20,7 +20,7 @@ import { jsx } from "react/jsx-runtime";
20
20
  function OrderedList({ className, nested = false, native = false, isExpressive = false, ...other }) {
21
21
  const prefix = usePrefix();
22
22
  return /* @__PURE__ */ jsx("ol", {
23
- className: classNames({
23
+ className: cx({
24
24
  [`${prefix}--list--ordered`]: !native,
25
25
  [`${prefix}--list--ordered--native`]: native,
26
26
  [`${prefix}--list--nested`]: nested,