@carbon/react 1.103.0-rc.0 → 1.104.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 (777) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +950 -950
  2. package/es/_virtual/_rolldown/runtime.js +25 -0
  3. package/es/components/AILabel/index.d.ts +29 -2
  4. package/es/components/AILabel/index.js +114 -169
  5. package/es/components/AISkeleton/AISkeletonIcon.js +23 -27
  6. package/es/components/AISkeleton/AISkeletonPlaceholder.js +19 -27
  7. package/es/components/AISkeleton/AISkeletonText.js +26 -39
  8. package/es/components/Accordion/Accordion.Skeleton.js +55 -79
  9. package/es/components/Accordion/Accordion.js +43 -61
  10. package/es/components/Accordion/AccordionItem.js +102 -156
  11. package/es/components/Accordion/AccordionProvider.js +18 -15
  12. package/es/components/AspectRatio/AspectRatio.js +41 -47
  13. package/es/components/BadgeIndicator/index.js +28 -33
  14. package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +39 -50
  15. package/es/components/Breadcrumb/Breadcrumb.js +39 -51
  16. package/es/components/Breadcrumb/BreadcrumbItem.js +80 -83
  17. package/es/components/Button/Button.Skeleton.js +49 -58
  18. package/es/components/Button/Button.d.ts +1 -1
  19. package/es/components/Button/Button.js +146 -240
  20. package/es/components/Button/ButtonBase.js +82 -104
  21. package/es/components/Button/index.js +13 -6
  22. package/es/components/ButtonSet/ButtonSet.js +74 -98
  23. package/es/components/ButtonSet/index.js +12 -4
  24. package/es/components/ChatButton/ChatButton.Skeleton.js +27 -27
  25. package/es/components/ChatButton/ChatButton.js +64 -79
  26. package/es/components/Checkbox/Checkbox.Skeleton.js +26 -25
  27. package/es/components/Checkbox/Checkbox.js +116 -195
  28. package/es/components/Checkbox/index.js +13 -5
  29. package/es/components/CheckboxGroup/CheckboxGroup.js +100 -148
  30. package/es/components/ClassPrefix/index.js +21 -17
  31. package/es/components/CodeSnippet/CodeSnippet.Skeleton.js +45 -42
  32. package/es/components/CodeSnippet/CodeSnippet.js +210 -299
  33. package/es/components/ComboBox/ComboBox.js +621 -970
  34. package/es/components/ComboBox/index.js +12 -4
  35. package/es/components/ComboButton/index.js +172 -208
  36. package/es/components/ComposedModal/ComposedModal.js +311 -450
  37. package/es/components/ComposedModal/ComposedModalPresence.js +47 -42
  38. package/es/components/ComposedModal/ModalFooter.js +127 -207
  39. package/es/components/ComposedModal/ModalHeader.js +71 -101
  40. package/es/components/ComposedModal/useComposedModalState.js +21 -15
  41. package/es/components/ContainedList/ContainedList.js +67 -102
  42. package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +49 -67
  43. package/es/components/ContainedList/ContainedListItem/index.js +12 -4
  44. package/es/components/ContainedList/index.js +15 -12
  45. package/es/components/ContentSwitcher/ContentSwitcher.js +108 -140
  46. package/es/components/ContextMenu/useContextMenu.js +41 -36
  47. package/es/components/Copy/Copy.js +97 -117
  48. package/es/components/Copy/index.js +12 -4
  49. package/es/components/CopyButton/CopyButton.js +81 -94
  50. package/es/components/CopyButton/index.js +12 -4
  51. package/es/components/DangerButton/DangerButton.js +11 -9
  52. package/es/components/DataTable/DataTable.d.ts +11 -11
  53. package/es/components/DataTable/DataTable.js +448 -630
  54. package/es/components/DataTable/Table.js +111 -156
  55. package/es/components/DataTable/TableActionList.js +14 -6
  56. package/es/components/DataTable/TableBatchAction.js +25 -34
  57. package/es/components/DataTable/TableBatchActions.js +78 -113
  58. package/es/components/DataTable/TableBody.js +26 -19
  59. package/es/components/DataTable/TableCell.js +31 -46
  60. package/es/components/DataTable/TableContainer.js +75 -82
  61. package/es/components/DataTable/TableContext.js +14 -6
  62. package/es/components/DataTable/TableDecoratorRow.js +30 -36
  63. package/es/components/DataTable/TableExpandHeader.js +53 -90
  64. package/es/components/DataTable/TableExpandRow.js +82 -119
  65. package/es/components/DataTable/TableExpandedRow.js +45 -51
  66. package/es/components/DataTable/TableHead.js +7 -5
  67. package/es/components/DataTable/TableHeader.js +138 -181
  68. package/es/components/DataTable/TableRow.d.ts +1 -1
  69. package/es/components/DataTable/TableRow.js +42 -76
  70. package/es/components/DataTable/TableSelectAll.js +42 -70
  71. package/es/components/DataTable/TableSelectRow.js +63 -98
  72. package/es/components/DataTable/TableSlugRow.js +35 -43
  73. package/es/components/DataTable/TableToolbar.js +33 -45
  74. package/es/components/DataTable/TableToolbarAction.js +25 -20
  75. package/es/components/DataTable/TableToolbarContent.js +14 -6
  76. package/es/components/DataTable/TableToolbarMenu.js +35 -46
  77. package/es/components/DataTable/TableToolbarSearch.js +97 -187
  78. package/es/components/DataTable/state/getDerivedStateFromProps.js +38 -43
  79. package/es/components/DataTable/state/sortStates.js +11 -9
  80. package/es/components/DataTable/state/sorting.js +53 -72
  81. package/es/components/DataTable/tools/cells.js +15 -7
  82. package/es/components/DataTable/tools/denormalize.js +27 -19
  83. package/es/components/DataTable/tools/filter.js +21 -22
  84. package/es/components/DataTable/tools/normalize.js +57 -72
  85. package/es/components/DataTable/tools/sorting.js +50 -71
  86. package/es/components/DataTableSkeleton/DataTableSkeleton.js +66 -94
  87. package/es/components/DatePicker/DatePicker.Skeleton.js +44 -51
  88. package/es/components/DatePicker/DatePicker.d.ts +4 -2
  89. package/es/components/DatePicker/DatePicker.js +485 -749
  90. package/es/components/DatePicker/DatePickerLocales.js +75 -126
  91. package/es/components/DatePicker/index.js +13 -5
  92. package/es/components/DatePicker/plugins/appendToPlugin.js +31 -45
  93. package/es/components/DatePicker/plugins/fixEventsPlugin.js +127 -171
  94. package/es/components/DatePicker/plugins/rangePlugin.d.ts +1 -1
  95. package/es/components/DatePicker/plugins/rangePlugin.js +40 -47
  96. package/es/components/DatePicker/utils.d.ts +7 -0
  97. package/es/components/DatePicker/utils.js +18 -0
  98. package/es/components/DatePickerInput/DatePickerInput.js +179 -289
  99. package/es/components/DatePickerInput/index.js +12 -4
  100. package/es/components/Dialog/Dialog.js +303 -574
  101. package/es/components/Dialog/index.js +18 -2
  102. package/es/components/Dropdown/Dropdown.Skeleton.js +26 -38
  103. package/es/components/Dropdown/Dropdown.js +344 -535
  104. package/es/components/Dropdown/index.js +13 -5
  105. package/es/components/ErrorBoundary/ErrorBoundary.js +36 -58
  106. package/es/components/ErrorBoundary/ErrorBoundaryContext.js +14 -9
  107. package/es/components/ExpandableSearch/ExpandableSearch.js +60 -69
  108. package/es/components/ExpandableSearch/index.js +12 -4
  109. package/es/components/FeatureFlags/index.d.ts +11 -2
  110. package/es/components/FeatureFlags/index.js +79 -77
  111. package/es/components/FileUploader/FileUploader.Skeleton.js +35 -30
  112. package/es/components/FileUploader/FileUploader.js +269 -343
  113. package/es/components/FileUploader/FileUploaderButton.js +110 -160
  114. package/es/components/FileUploader/FileUploaderDropContainer.js +144 -221
  115. package/es/components/FileUploader/FileUploaderItem.js +138 -157
  116. package/es/components/FileUploader/Filename.d.ts +1 -1
  117. package/es/components/FileUploader/Filename.js +53 -72
  118. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +26 -28
  119. package/es/components/FluidComboBox/FluidComboBox.js +54 -105
  120. package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +56 -53
  121. package/es/components/FluidDatePicker/FluidDatePicker.js +46 -68
  122. package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +23 -16
  123. package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +26 -28
  124. package/es/components/FluidDropdown/FluidDropdown.js +55 -111
  125. package/es/components/FluidForm/FluidForm.js +29 -31
  126. package/es/components/FluidForm/FormContext.js +12 -6
  127. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +26 -28
  128. package/es/components/FluidMultiSelect/FluidMultiSelect.js +67 -197
  129. package/es/components/FluidNumberInput/FluidNumberInput.Skeleton.js +27 -30
  130. package/es/components/FluidNumberInput/FluidNumberInput.js +63 -147
  131. package/es/components/FluidSearch/FluidSearch.Skeleton.js +27 -30
  132. package/es/components/FluidSearch/FluidSearch.js +41 -84
  133. package/es/components/FluidSelect/FluidSelect.Skeleton.js +26 -28
  134. package/es/components/FluidSelect/FluidSelect.js +40 -76
  135. package/es/components/FluidSelect/index.js +13 -5
  136. package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +27 -30
  137. package/es/components/FluidTextArea/FluidTextArea.js +48 -112
  138. package/es/components/FluidTextInput/FluidPasswordInput.js +44 -99
  139. package/es/components/FluidTextInput/FluidTextInput.Skeleton.js +27 -30
  140. package/es/components/FluidTextInput/FluidTextInput.js +49 -104
  141. package/es/components/FluidTextInput/index.js +14 -6
  142. package/es/components/FluidTimePicker/FluidTimePicker.Skeleton.js +30 -33
  143. package/es/components/FluidTimePicker/FluidTimePicker.js +68 -115
  144. package/es/components/FluidTimePickerSelect/FluidTimePickerSelect.js +28 -47
  145. package/es/components/Form/Form.js +23 -25
  146. package/es/components/FormGroup/FormGroup.js +45 -67
  147. package/es/components/FormItem/FormItem.js +23 -25
  148. package/es/components/FormLabel/FormLabel.js +28 -34
  149. package/es/components/Grid/CSSGrid.d.ts +1 -1
  150. package/es/components/Grid/CSSGrid.js +85 -127
  151. package/es/components/Grid/Column.js +192 -324
  152. package/es/components/Grid/ColumnHang.js +28 -36
  153. package/es/components/Grid/FlexGrid.js +40 -60
  154. package/es/components/Grid/Grid.js +29 -42
  155. package/es/components/Grid/GridContext.js +36 -42
  156. package/es/components/Grid/Row.js +31 -49
  157. package/es/components/Heading/index.js +36 -51
  158. package/es/components/Icon/Icon.Skeleton.js +21 -21
  159. package/es/components/IconButton/index.js +117 -178
  160. package/es/components/IconIndicator/index.d.ts +1 -1
  161. package/es/components/IconIndicator/index.js +59 -60
  162. package/es/components/IdPrefix/index.js +21 -17
  163. package/es/components/InlineCheckbox/InlineCheckbox.js +69 -113
  164. package/es/components/InlineCheckbox/index.js +12 -4
  165. package/es/components/InlineLoading/InlineLoading.js +83 -100
  166. package/es/components/InlineLoading/index.js +12 -4
  167. package/es/components/Layer/LayerContext.js +12 -4
  168. package/es/components/Layer/LayerLevel.js +20 -4
  169. package/es/components/Layer/index.js +54 -66
  170. package/es/components/Layout/index.js +77 -109
  171. package/es/components/LayoutDirection/LayoutDirection.d.ts +1 -1
  172. package/es/components/LayoutDirection/LayoutDirection.js +33 -37
  173. package/es/components/LayoutDirection/LayoutDirectionContext.js +12 -6
  174. package/es/components/LayoutDirection/useLayoutDirection.js +15 -7
  175. package/es/components/Link/Link.js +63 -108
  176. package/es/components/Link/index.js +12 -4
  177. package/es/components/ListBox/ListBox.js +78 -126
  178. package/es/components/ListBox/ListBoxField.js +24 -43
  179. package/es/components/ListBox/ListBoxMenu.js +36 -42
  180. package/es/components/ListBox/ListBoxMenuIcon.js +39 -40
  181. package/es/components/ListBox/ListBoxMenuItem.js +67 -88
  182. package/es/components/ListBox/ListBoxPropTypes.js +17 -5
  183. package/es/components/ListBox/ListBoxSelection.js +71 -96
  184. package/es/components/ListBox/index.js +16 -14
  185. package/es/components/ListBox/next/ListBoxSelection.js +79 -117
  186. package/es/components/ListBox/next/ListBoxTrigger.js +44 -48
  187. package/es/components/ListItem/ListItem.js +25 -28
  188. package/es/components/Loading/Loading.js +64 -73
  189. package/es/components/Loading/index.js +12 -4
  190. package/es/components/Menu/Menu.js +220 -363
  191. package/es/components/Menu/MenuContext.d.ts +1 -1
  192. package/es/components/Menu/MenuContext.js +41 -38
  193. package/es/components/Menu/MenuItem.js +282 -413
  194. package/es/components/MenuButton/index.js +134 -195
  195. package/es/components/Modal/Modal.js +500 -660
  196. package/es/components/Modal/ModalPresence.js +39 -37
  197. package/es/components/Modal/index.js +13 -5
  198. package/es/components/ModalWrapper/ModalWrapper.d.ts +2 -2
  199. package/es/components/ModalWrapper/ModalWrapper.js +106 -130
  200. package/es/components/MultiSelect/FilterableMultiSelect.js +605 -918
  201. package/es/components/MultiSelect/MultiSelect.js +454 -716
  202. package/es/components/MultiSelect/MultiSelectPropTypes.js +13 -30
  203. package/es/components/MultiSelect/filter.js +14 -9
  204. package/es/components/MultiSelect/tools/sorting.js +21 -34
  205. package/es/components/Notification/Notification.js +508 -785
  206. package/es/components/NumberInput/NumberFormatPropTypes.js +69 -30
  207. package/es/components/NumberInput/NumberInput.Skeleton.js +29 -33
  208. package/es/components/NumberInput/NumberInput.js +567 -947
  209. package/es/components/OrderedList/OrderedList.js +31 -44
  210. package/es/components/OverflowMenu/OverflowMenu.js +335 -450
  211. package/es/components/OverflowMenu/index.js +25 -16
  212. package/es/components/OverflowMenu/next/index.js +154 -186
  213. package/es/components/OverflowMenuItem/OverflowMenuItem.js +100 -160
  214. package/es/components/OverflowMenuItem/index.js +12 -4
  215. package/es/components/OverflowMenuV2/index.js +15 -13
  216. package/es/components/PageHeader/PageHeader.js +297 -442
  217. package/es/components/PageHeader/index.js +24 -2
  218. package/es/components/Pagination/Pagination.Skeleton.js +34 -35
  219. package/es/components/Pagination/Pagination.d.ts +1 -1
  220. package/es/components/Pagination/Pagination.js +251 -356
  221. package/es/components/Pagination/experimental/PageSelector.js +38 -54
  222. package/es/components/Pagination/experimental/Pagination-story.d.ts +114 -0
  223. package/es/components/Pagination/experimental/Pagination.js +144 -196
  224. package/es/components/PaginationNav/PaginationNav.js +320 -426
  225. package/es/components/Popover/index.js +318 -437
  226. package/es/components/PrimaryButton/PrimaryButton.js +11 -9
  227. package/es/components/ProgressBar/ProgressBar.js +117 -143
  228. package/es/components/ProgressIndicator/ProgressIndicator.Skeleton.js +42 -38
  229. package/es/components/ProgressIndicator/ProgressIndicator.js +146 -243
  230. package/es/components/RadioButton/RadioButton.Skeleton.js +23 -25
  231. package/es/components/RadioButton/RadioButton.js +101 -174
  232. package/es/components/RadioButton/index.js +12 -4
  233. package/es/components/RadioButtonGroup/RadioButtonGroup.js +135 -207
  234. package/es/components/RadioTile/RadioTile.js +104 -168
  235. package/es/components/RadioTile/index.js +12 -4
  236. package/es/components/Search/Search.Skeleton.js +28 -33
  237. package/es/components/Search/Search.js +182 -278
  238. package/es/components/Search/index.js +13 -5
  239. package/es/components/Search/utils.js +11 -3
  240. package/es/components/SecondaryButton/SecondaryButton.js +11 -9
  241. package/es/components/Select/Select.Skeleton.js +27 -30
  242. package/es/components/Select/Select.js +178 -257
  243. package/es/components/Select/index.js +13 -5
  244. package/es/components/SelectItem/SelectItem.js +33 -48
  245. package/es/components/SelectItem/index.js +12 -4
  246. package/es/components/SelectItemGroup/SelectItemGroup.js +27 -37
  247. package/es/components/ShapeIndicator/index.d.ts +1 -1
  248. package/es/components/ShapeIndicator/index.js +74 -80
  249. package/es/components/SkeletonIcon/SkeletonIcon.js +21 -24
  250. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +15 -24
  251. package/es/components/SkeletonText/SkeletonText.js +67 -81
  252. package/es/components/SkeletonText/index.js +12 -4
  253. package/es/components/Slider/Slider.Skeleton.js +68 -91
  254. package/es/components/Slider/Slider.js +864 -1315
  255. package/es/components/Slider/SliderHandles.js +73 -66
  256. package/es/components/Stack/HStack.js +19 -11
  257. package/es/components/Stack/Stack.js +56 -80
  258. package/es/components/Stack/VStack.js +19 -11
  259. package/es/components/StructuredList/StructuredList.Skeleton.js +55 -48
  260. package/es/components/StructuredList/StructuredList.js +178 -317
  261. package/es/components/Switch/IconSwitch.js +99 -145
  262. package/es/components/Switch/Switch.js +66 -99
  263. package/es/components/TabContent/TabContent.js +28 -34
  264. package/es/components/Tabs/Tabs.Skeleton.js +41 -36
  265. package/es/components/Tabs/Tabs.js +732 -1147
  266. package/es/components/Tabs/usePressable.js +97 -112
  267. package/es/components/Tag/DismissibleTag.js +119 -156
  268. package/es/components/Tag/OperationalTag.js +91 -111
  269. package/es/components/Tag/SelectableTag.js +94 -129
  270. package/es/components/Tag/Tag.Skeleton.js +26 -30
  271. package/es/components/Tag/Tag.js +152 -200
  272. package/es/components/Tag/isEllipsisActive.js +13 -8
  273. package/es/components/Text/Text.js +66 -79
  274. package/es/components/Text/TextDirection.js +36 -37
  275. package/es/components/Text/TextDirectionContext.js +14 -8
  276. package/es/components/Text/createTextComponent.js +21 -20
  277. package/es/components/TextArea/TextArea.Skeleton.js +25 -29
  278. package/es/components/TextArea/TextArea.js +315 -422
  279. package/es/components/TextArea/index.js +13 -5
  280. package/es/components/TextInput/ControlledPasswordInput.js +133 -198
  281. package/es/components/TextInput/PasswordInput.js +196 -303
  282. package/es/components/TextInput/TextInput.Skeleton.js +24 -28
  283. package/es/components/TextInput/TextInput.js +219 -317
  284. package/es/components/TextInput/index.js +13 -5
  285. package/es/components/TextInput/util.js +21 -25
  286. package/es/components/Theme/index.js +79 -95
  287. package/es/components/Tile/Tile.d.ts +2 -2
  288. package/es/components/Tile/Tile.js +394 -588
  289. package/es/components/TileGroup/TileGroup.js +70 -111
  290. package/es/components/TimePicker/TimePicker.d.ts +1 -1
  291. package/es/components/TimePicker/TimePicker.js +148 -247
  292. package/es/components/TimePickerSelect/TimePickerSelect.js +43 -58
  293. package/es/components/Toggle/Toggle.Skeleton.js +24 -22
  294. package/es/components/Toggle/Toggle.js +102 -171
  295. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +46 -51
  296. package/es/components/Toggletip/index.d.ts +2 -2
  297. package/es/components/Toggletip/index.js +170 -256
  298. package/es/components/Tooltip/DefinitionTooltip.js +98 -138
  299. package/es/components/Tooltip/Tooltip.js +188 -263
  300. package/es/components/TreeView/TreeContext.js +13 -5
  301. package/es/components/TreeView/TreeNode.js +361 -500
  302. package/es/components/TreeView/TreeView.js +164 -237
  303. package/es/components/UIShell/Content.js +23 -30
  304. package/es/components/UIShell/Header.js +25 -29
  305. package/es/components/UIShell/HeaderContainer.js +31 -40
  306. package/es/components/UIShell/HeaderGlobalAction.js +65 -90
  307. package/es/components/UIShell/HeaderGlobalBar.js +16 -9
  308. package/es/components/UIShell/HeaderMenu.js +141 -215
  309. package/es/components/UIShell/HeaderMenuButton.js +43 -66
  310. package/es/components/UIShell/HeaderMenuItem.js +49 -76
  311. package/es/components/UIShell/HeaderName.js +32 -44
  312. package/es/components/UIShell/HeaderNavigation.js +32 -37
  313. package/es/components/UIShell/HeaderPanel.js +74 -97
  314. package/es/components/UIShell/HeaderSideNavItems.js +27 -33
  315. package/es/components/UIShell/Link.js +29 -50
  316. package/es/components/UIShell/SideNav.js +132 -241
  317. package/es/components/UIShell/SideNavContext.js +21 -15
  318. package/es/components/UIShell/SideNavDetails.js +29 -34
  319. package/es/components/UIShell/SideNavDivider.js +21 -21
  320. package/es/components/UIShell/SideNavFooter.js +43 -52
  321. package/es/components/UIShell/SideNavHeader.js +26 -35
  322. package/es/components/UIShell/SideNavIcon.js +28 -33
  323. package/es/components/UIShell/SideNavItem.js +28 -33
  324. package/es/components/UIShell/SideNavItems.js +31 -40
  325. package/es/components/UIShell/SideNavLink.js +52 -79
  326. package/es/components/UIShell/SideNavLinkText.js +24 -25
  327. package/es/components/UIShell/SideNavMenu.js +102 -143
  328. package/es/components/UIShell/SideNavMenuItem.js +40 -52
  329. package/es/components/UIShell/SideNavSwitcher.js +59 -68
  330. package/es/components/UIShell/SkipToContent.js +28 -36
  331. package/es/components/UIShell/Switcher.js +69 -99
  332. package/es/components/UIShell/SwitcherDivider.js +16 -24
  333. package/es/components/UIShell/SwitcherItem.js +74 -114
  334. package/es/components/UnorderedList/UnorderedList.js +28 -37
  335. package/es/feature-flags.js +19 -10
  336. package/es/index.js +249 -242
  337. package/es/internal/FloatingMenu.js +246 -292
  338. package/es/internal/OptimizedResize.js +35 -46
  339. package/es/internal/Selection.js +99 -132
  340. package/es/internal/clamp.js +12 -4
  341. package/es/internal/defaultItemToString.js +15 -9
  342. package/es/internal/deprecateFieldOnObject.js +22 -14
  343. package/es/internal/environment.js +15 -7
  344. package/es/internal/getAnnouncement.js +16 -13
  345. package/es/internal/keyboard/keys.js +48 -48
  346. package/es/internal/keyboard/match.js +25 -42
  347. package/es/internal/keyboard/navigation.js +22 -27
  348. package/es/internal/noopFn.js +10 -2
  349. package/es/internal/useAttachedMenu.js +43 -51
  350. package/es/internal/useControllableState.js +43 -48
  351. package/es/internal/useDelayedState.js +30 -35
  352. package/es/internal/useEvent.js +39 -35
  353. package/es/internal/useId.js +51 -87
  354. package/es/internal/useIdPrefix.js +13 -5
  355. package/es/internal/useIsomorphicEffect.js +12 -4
  356. package/es/internal/useMatchMedia.js +29 -21
  357. package/es/internal/useMergedRefs.js +26 -22
  358. package/es/internal/useNoInteractiveChildren.js +70 -99
  359. package/es/internal/useNormalizedInputProps.js +47 -51
  360. package/es/internal/useOutsideClick.js +21 -24
  361. package/es/internal/useOverflowItems.js +89 -90
  362. package/es/internal/usePrefix.js +13 -5
  363. package/es/internal/usePresence.js +51 -54
  364. package/es/internal/usePresenceContext.js +35 -35
  365. package/es/internal/usePreviousValue.js +26 -18
  366. package/es/internal/useResizeObserver.js +57 -66
  367. package/es/internal/useSavedCallback.js +24 -17
  368. package/es/internal/utils.js +17 -9
  369. package/es/internal/warning.js +17 -22
  370. package/es/internal/wrapFocus.js +77 -98
  371. package/es/prop-types/AriaPropTypes.js +14 -6
  372. package/es/prop-types/deprecate.js +30 -27
  373. package/es/prop-types/deprecateComponent.js +17 -8
  374. package/es/prop-types/deprecateValuesWithin.js +18 -21
  375. package/es/prop-types/isRequiredOneOf.js +21 -24
  376. package/es/prop-types/requiredIfGivenPropIsTruthy.js +14 -14
  377. package/es/tools/events.js +17 -21
  378. package/es/tools/mapPopoverAlign.js +19 -18
  379. package/es/tools/mergeRefs.js +14 -17
  380. package/es/tools/setupGetInstanceId.js +16 -8
  381. package/es/tools/toggleClass.js +17 -9
  382. package/es/tools/wrapComponent.js +34 -39
  383. package/icons/index.d.ts +2 -1
  384. package/icons/index.esm.js +2 -2
  385. package/icons/index.js +7 -10
  386. package/lib/_virtual/_rolldown/runtime.js +50 -0
  387. package/lib/components/AILabel/index.d.ts +29 -2
  388. package/lib/components/AILabel/index.js +118 -171
  389. package/lib/components/AISkeleton/AISkeletonIcon.js +27 -31
  390. package/lib/components/AISkeleton/AISkeletonPlaceholder.js +29 -31
  391. package/lib/components/AISkeleton/AISkeletonText.js +30 -43
  392. package/lib/components/Accordion/Accordion.Skeleton.js +59 -84
  393. package/lib/components/Accordion/Accordion.js +47 -65
  394. package/lib/components/Accordion/AccordionItem.js +106 -160
  395. package/lib/components/Accordion/AccordionProvider.js +20 -17
  396. package/lib/components/AspectRatio/AspectRatio.js +45 -51
  397. package/lib/components/BadgeIndicator/index.js +33 -39
  398. package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +43 -55
  399. package/lib/components/Breadcrumb/Breadcrumb.js +43 -55
  400. package/lib/components/Breadcrumb/BreadcrumbItem.js +84 -87
  401. package/lib/components/Button/Button.Skeleton.js +53 -63
  402. package/lib/components/Button/Button.d.ts +1 -1
  403. package/lib/components/Button/Button.js +149 -244
  404. package/lib/components/Button/ButtonBase.js +85 -108
  405. package/lib/components/Button/index.js +13 -15
  406. package/lib/components/ButtonSet/ButtonSet.js +78 -102
  407. package/lib/components/ButtonSet/index.js +12 -9
  408. package/lib/components/ChatButton/ChatButton.Skeleton.js +31 -31
  409. package/lib/components/ChatButton/ChatButton.js +68 -83
  410. package/lib/components/Checkbox/Checkbox.Skeleton.js +30 -30
  411. package/lib/components/Checkbox/Checkbox.js +119 -198
  412. package/lib/components/Checkbox/index.js +13 -11
  413. package/lib/components/CheckboxGroup/CheckboxGroup.js +104 -152
  414. package/lib/components/ClassPrefix/index.js +24 -19
  415. package/lib/components/CodeSnippet/CodeSnippet.Skeleton.js +49 -47
  416. package/lib/components/CodeSnippet/CodeSnippet.js +215 -303
  417. package/lib/components/ComboBox/ComboBox.js +626 -974
  418. package/lib/components/ComboBox/index.js +12 -9
  419. package/lib/components/ComboButton/index.js +176 -210
  420. package/lib/components/ComposedModal/ComposedModal.js +315 -454
  421. package/lib/components/ComposedModal/ComposedModalPresence.js +49 -44
  422. package/lib/components/ComposedModal/ModalFooter.js +131 -209
  423. package/lib/components/ComposedModal/ModalHeader.js +75 -103
  424. package/lib/components/ComposedModal/useComposedModalState.js +22 -17
  425. package/lib/components/ContainedList/ContainedList.js +77 -106
  426. package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +59 -71
  427. package/lib/components/ContainedList/ContainedListItem/index.js +12 -9
  428. package/lib/components/ContainedList/index.js +18 -15
  429. package/lib/components/ContentSwitcher/ContentSwitcher.js +112 -142
  430. package/lib/components/ContextMenu/useContextMenu.js +42 -40
  431. package/lib/components/Copy/Copy.js +101 -121
  432. package/lib/components/Copy/index.js +12 -9
  433. package/lib/components/CopyButton/CopyButton.js +85 -98
  434. package/lib/components/CopyButton/index.js +12 -9
  435. package/lib/components/DangerButton/DangerButton.js +19 -13
  436. package/lib/components/DataTable/DataTable.d.ts +11 -11
  437. package/lib/components/DataTable/DataTable.js +474 -655
  438. package/lib/components/DataTable/Table.js +115 -161
  439. package/lib/components/DataTable/TableActionList.js +15 -11
  440. package/lib/components/DataTable/TableBatchAction.js +28 -38
  441. package/lib/components/DataTable/TableBatchActions.js +82 -117
  442. package/lib/components/DataTable/TableBody.js +29 -23
  443. package/lib/components/DataTable/TableCell.js +35 -50
  444. package/lib/components/DataTable/TableContainer.js +79 -86
  445. package/lib/components/DataTable/TableContext.js +15 -8
  446. package/lib/components/DataTable/TableDecoratorRow.js +34 -40
  447. package/lib/components/DataTable/TableExpandHeader.js +57 -94
  448. package/lib/components/DataTable/TableExpandRow.js +86 -123
  449. package/lib/components/DataTable/TableExpandedRow.js +49 -55
  450. package/lib/components/DataTable/TableHead.js +8 -10
  451. package/lib/components/DataTable/TableHeader.js +142 -185
  452. package/lib/components/DataTable/TableRow.d.ts +1 -1
  453. package/lib/components/DataTable/TableRow.js +46 -80
  454. package/lib/components/DataTable/TableSelectAll.js +46 -74
  455. package/lib/components/DataTable/TableSelectRow.js +67 -102
  456. package/lib/components/DataTable/TableSlugRow.js +39 -47
  457. package/lib/components/DataTable/TableToolbar.js +37 -49
  458. package/lib/components/DataTable/TableToolbarAction.js +28 -24
  459. package/lib/components/DataTable/TableToolbarContent.js +15 -11
  460. package/lib/components/DataTable/TableToolbarMenu.js +39 -50
  461. package/lib/components/DataTable/TableToolbarSearch.js +101 -191
  462. package/lib/components/DataTable/state/getDerivedStateFromProps.js +38 -47
  463. package/lib/components/DataTable/state/sortStates.js +11 -10
  464. package/lib/components/DataTable/state/sorting.js +54 -76
  465. package/lib/components/DataTable/tools/cells.js +15 -8
  466. package/lib/components/DataTable/tools/denormalize.js +27 -22
  467. package/lib/components/DataTable/tools/filter.js +21 -23
  468. package/lib/components/DataTable/tools/normalize.js +57 -76
  469. package/lib/components/DataTable/tools/sorting.js +50 -75
  470. package/lib/components/DataTableSkeleton/DataTableSkeleton.js +70 -98
  471. package/lib/components/DatePicker/DatePicker.Skeleton.js +48 -56
  472. package/lib/components/DatePicker/DatePicker.d.ts +4 -2
  473. package/lib/components/DatePicker/DatePicker.js +491 -753
  474. package/lib/components/DatePicker/DatePickerLocales.js +75 -127
  475. package/lib/components/DatePicker/index.js +13 -11
  476. package/lib/components/DatePicker/plugins/appendToPlugin.js +31 -46
  477. package/lib/components/DatePicker/plugins/fixEventsPlugin.js +127 -175
  478. package/lib/components/DatePicker/plugins/rangePlugin.d.ts +1 -1
  479. package/lib/components/DatePicker/plugins/rangePlugin.js +42 -49
  480. package/lib/components/DatePicker/utils.d.ts +7 -0
  481. package/lib/components/DatePicker/utils.js +19 -0
  482. package/lib/components/DatePickerInput/DatePickerInput.js +183 -293
  483. package/lib/components/DatePickerInput/index.js +12 -9
  484. package/lib/components/Dialog/Dialog.js +307 -576
  485. package/lib/components/Dialog/index.js +21 -13
  486. package/lib/components/Dropdown/Dropdown.Skeleton.js +30 -43
  487. package/lib/components/Dropdown/Dropdown.js +348 -539
  488. package/lib/components/Dropdown/index.js +13 -11
  489. package/lib/components/ErrorBoundary/ErrorBoundary.js +39 -62
  490. package/lib/components/ErrorBoundary/ErrorBoundaryContext.js +15 -11
  491. package/lib/components/ExpandableSearch/ExpandableSearch.js +63 -73
  492. package/lib/components/ExpandableSearch/index.js +12 -9
  493. package/lib/components/FeatureFlags/index.d.ts +11 -2
  494. package/lib/components/FeatureFlags/index.js +82 -79
  495. package/lib/components/FileUploader/FileUploader.Skeleton.js +39 -35
  496. package/lib/components/FileUploader/FileUploader.js +273 -347
  497. package/lib/components/FileUploader/FileUploaderButton.js +114 -164
  498. package/lib/components/FileUploader/FileUploaderDropContainer.js +148 -225
  499. package/lib/components/FileUploader/FileUploaderItem.js +142 -161
  500. package/lib/components/FileUploader/Filename.d.ts +1 -1
  501. package/lib/components/FileUploader/Filename.js +56 -76
  502. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +30 -32
  503. package/lib/components/FluidComboBox/FluidComboBox.js +58 -109
  504. package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +60 -57
  505. package/lib/components/FluidDatePicker/FluidDatePicker.js +50 -72
  506. package/lib/components/FluidDatePickerInput/FluidDatePickerInput.js +25 -20
  507. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +30 -32
  508. package/lib/components/FluidDropdown/FluidDropdown.js +59 -115
  509. package/lib/components/FluidForm/FluidForm.js +33 -35
  510. package/lib/components/FluidForm/FormContext.js +13 -8
  511. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +30 -32
  512. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +71 -201
  513. package/lib/components/FluidNumberInput/FluidNumberInput.Skeleton.js +31 -34
  514. package/lib/components/FluidNumberInput/FluidNumberInput.js +67 -151
  515. package/lib/components/FluidSearch/FluidSearch.Skeleton.js +31 -34
  516. package/lib/components/FluidSearch/FluidSearch.js +45 -88
  517. package/lib/components/FluidSelect/FluidSelect.Skeleton.js +30 -32
  518. package/lib/components/FluidSelect/FluidSelect.js +44 -80
  519. package/lib/components/FluidSelect/index.js +13 -11
  520. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +31 -34
  521. package/lib/components/FluidTextArea/FluidTextArea.js +52 -116
  522. package/lib/components/FluidTextInput/FluidPasswordInput.js +48 -103
  523. package/lib/components/FluidTextInput/FluidTextInput.Skeleton.js +31 -34
  524. package/lib/components/FluidTextInput/FluidTextInput.js +53 -108
  525. package/lib/components/FluidTextInput/index.js +14 -13
  526. package/lib/components/FluidTimePicker/FluidTimePicker.Skeleton.js +34 -37
  527. package/lib/components/FluidTimePicker/FluidTimePicker.js +72 -119
  528. package/lib/components/FluidTimePickerSelect/FluidTimePickerSelect.js +31 -51
  529. package/lib/components/Form/Form.js +27 -29
  530. package/lib/components/FormGroup/FormGroup.js +49 -71
  531. package/lib/components/FormItem/FormItem.js +27 -29
  532. package/lib/components/FormLabel/FormLabel.js +32 -38
  533. package/lib/components/Grid/CSSGrid.d.ts +1 -1
  534. package/lib/components/Grid/CSSGrid.js +89 -129
  535. package/lib/components/Grid/Column.js +196 -328
  536. package/lib/components/Grid/ColumnHang.js +32 -38
  537. package/lib/components/Grid/FlexGrid.js +44 -62
  538. package/lib/components/Grid/Grid.js +32 -44
  539. package/lib/components/Grid/GridContext.js +39 -44
  540. package/lib/components/Grid/Row.js +35 -53
  541. package/lib/components/Heading/index.js +39 -53
  542. package/lib/components/Icon/Icon.Skeleton.js +25 -23
  543. package/lib/components/IconButton/index.js +121 -180
  544. package/lib/components/IconIndicator/index.d.ts +1 -1
  545. package/lib/components/IconIndicator/index.js +63 -63
  546. package/lib/components/IdPrefix/index.js +24 -19
  547. package/lib/components/InlineCheckbox/InlineCheckbox.js +72 -117
  548. package/lib/components/InlineCheckbox/index.js +12 -9
  549. package/lib/components/InlineLoading/InlineLoading.js +87 -104
  550. package/lib/components/InlineLoading/index.js +12 -9
  551. package/lib/components/Layer/LayerContext.js +14 -6
  552. package/lib/components/Layer/LayerLevel.js +20 -6
  553. package/lib/components/Layer/index.js +58 -68
  554. package/lib/components/Layout/index.js +81 -111
  555. package/lib/components/LayoutDirection/LayoutDirection.d.ts +1 -1
  556. package/lib/components/LayoutDirection/LayoutDirection.js +36 -40
  557. package/lib/components/LayoutDirection/LayoutDirectionContext.js +14 -8
  558. package/lib/components/LayoutDirection/useLayoutDirection.js +16 -9
  559. package/lib/components/Link/Link.js +67 -112
  560. package/lib/components/Link/index.js +12 -9
  561. package/lib/components/ListBox/ListBox.js +82 -130
  562. package/lib/components/ListBox/ListBoxField.js +33 -47
  563. package/lib/components/ListBox/ListBoxMenu.js +39 -46
  564. package/lib/components/ListBox/ListBoxMenuIcon.js +43 -44
  565. package/lib/components/ListBox/ListBoxMenuItem.js +71 -92
  566. package/lib/components/ListBox/ListBoxPropTypes.js +21 -9
  567. package/lib/components/ListBox/ListBoxSelection.js +75 -100
  568. package/lib/components/ListBox/index.js +17 -21
  569. package/lib/components/ListBox/next/ListBoxSelection.js +83 -121
  570. package/lib/components/ListBox/next/ListBoxTrigger.js +48 -52
  571. package/lib/components/ListItem/ListItem.js +29 -32
  572. package/lib/components/Loading/Loading.js +68 -77
  573. package/lib/components/Loading/index.js +12 -9
  574. package/lib/components/Menu/Menu.js +224 -365
  575. package/lib/components/Menu/MenuContext.d.ts +1 -1
  576. package/lib/components/Menu/MenuContext.js +42 -40
  577. package/lib/components/Menu/MenuItem.js +286 -415
  578. package/lib/components/MenuButton/index.js +138 -197
  579. package/lib/components/Modal/Modal.js +504 -665
  580. package/lib/components/Modal/ModalPresence.js +41 -39
  581. package/lib/components/Modal/index.js +13 -10
  582. package/lib/components/ModalWrapper/ModalWrapper.d.ts +2 -2
  583. package/lib/components/ModalWrapper/ModalWrapper.js +112 -134
  584. package/lib/components/MultiSelect/FilterableMultiSelect.js +611 -920
  585. package/lib/components/MultiSelect/MultiSelect.js +459 -718
  586. package/lib/components/MultiSelect/MultiSelectPropTypes.js +15 -32
  587. package/lib/components/MultiSelect/filter.js +14 -10
  588. package/lib/components/MultiSelect/tools/sorting.js +21 -35
  589. package/lib/components/Notification/Notification.js +514 -787
  590. package/lib/components/NumberInput/NumberFormatPropTypes.js +72 -33
  591. package/lib/components/NumberInput/NumberInput.Skeleton.js +33 -37
  592. package/lib/components/NumberInput/NumberInput.js +571 -950
  593. package/lib/components/OrderedList/OrderedList.js +35 -48
  594. package/lib/components/OverflowMenu/OverflowMenu.js +341 -454
  595. package/lib/components/OverflowMenu/index.js +27 -21
  596. package/lib/components/OverflowMenu/next/index.js +158 -188
  597. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +104 -164
  598. package/lib/components/OverflowMenuItem/index.js +12 -9
  599. package/lib/components/OverflowMenuV2/index.js +25 -15
  600. package/lib/components/PageHeader/PageHeader.js +301 -444
  601. package/lib/components/PageHeader/index.js +27 -19
  602. package/lib/components/Pagination/Pagination.Skeleton.js +38 -37
  603. package/lib/components/Pagination/Pagination.d.ts +1 -1
  604. package/lib/components/Pagination/Pagination.js +256 -360
  605. package/lib/components/Pagination/experimental/PageSelector.js +48 -58
  606. package/lib/components/Pagination/experimental/Pagination-story.d.ts +114 -0
  607. package/lib/components/Pagination/experimental/Pagination.js +148 -200
  608. package/lib/components/PaginationNav/PaginationNav.js +324 -430
  609. package/lib/components/Popover/index.js +323 -440
  610. package/lib/components/PrimaryButton/PrimaryButton.js +19 -13
  611. package/lib/components/ProgressBar/ProgressBar.js +121 -147
  612. package/lib/components/ProgressIndicator/ProgressIndicator.Skeleton.js +46 -43
  613. package/lib/components/ProgressIndicator/ProgressIndicator.js +150 -245
  614. package/lib/components/RadioButton/RadioButton.Skeleton.js +27 -27
  615. package/lib/components/RadioButton/RadioButton.js +105 -178
  616. package/lib/components/RadioButton/index.js +12 -9
  617. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +139 -211
  618. package/lib/components/RadioTile/RadioTile.js +108 -172
  619. package/lib/components/RadioTile/index.js +12 -9
  620. package/lib/components/Search/Search.Skeleton.js +32 -38
  621. package/lib/components/Search/Search.js +185 -281
  622. package/lib/components/Search/index.js +13 -11
  623. package/lib/components/Search/utils.js +11 -4
  624. package/lib/components/SecondaryButton/SecondaryButton.js +19 -13
  625. package/lib/components/Select/Select.Skeleton.js +31 -35
  626. package/lib/components/Select/Select.js +182 -261
  627. package/lib/components/Select/index.js +13 -11
  628. package/lib/components/SelectItem/SelectItem.js +37 -52
  629. package/lib/components/SelectItem/index.js +12 -9
  630. package/lib/components/SelectItemGroup/SelectItemGroup.js +31 -41
  631. package/lib/components/ShapeIndicator/index.d.ts +1 -1
  632. package/lib/components/ShapeIndicator/index.js +78 -83
  633. package/lib/components/SkeletonIcon/SkeletonIcon.js +25 -28
  634. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +25 -28
  635. package/lib/components/SkeletonText/SkeletonText.js +71 -85
  636. package/lib/components/SkeletonText/index.js +12 -9
  637. package/lib/components/Slider/Slider.Skeleton.js +72 -95
  638. package/lib/components/Slider/Slider.js +868 -1319
  639. package/lib/components/Slider/SliderHandles.js +75 -68
  640. package/lib/components/Stack/HStack.js +22 -14
  641. package/lib/components/Stack/Stack.js +60 -82
  642. package/lib/components/Stack/VStack.js +22 -14
  643. package/lib/components/StructuredList/StructuredList.Skeleton.js +59 -52
  644. package/lib/components/StructuredList/StructuredList.js +182 -319
  645. package/lib/components/Switch/IconSwitch.js +103 -149
  646. package/lib/components/Switch/Switch.js +70 -103
  647. package/lib/components/TabContent/TabContent.js +32 -38
  648. package/lib/components/Tabs/Tabs.Skeleton.js +45 -41
  649. package/lib/components/Tabs/Tabs.js +738 -1151
  650. package/lib/components/Tabs/usePressable.js +98 -114
  651. package/lib/components/Tag/DismissibleTag.js +123 -160
  652. package/lib/components/Tag/OperationalTag.js +95 -115
  653. package/lib/components/Tag/SelectableTag.js +98 -133
  654. package/lib/components/Tag/Tag.Skeleton.js +30 -32
  655. package/lib/components/Tag/Tag.js +156 -204
  656. package/lib/components/Tag/isEllipsisActive.js +13 -9
  657. package/lib/components/Text/Text.js +69 -81
  658. package/lib/components/Text/TextDirection.js +39 -39
  659. package/lib/components/Text/TextDirectionContext.js +15 -10
  660. package/lib/components/Text/createTextComponent.js +29 -22
  661. package/lib/components/TextArea/TextArea.Skeleton.js +29 -34
  662. package/lib/components/TextArea/TextArea.js +319 -426
  663. package/lib/components/TextArea/index.js +13 -11
  664. package/lib/components/TextInput/ControlledPasswordInput.js +137 -202
  665. package/lib/components/TextInput/PasswordInput.js +200 -307
  666. package/lib/components/TextInput/TextInput.Skeleton.js +28 -33
  667. package/lib/components/TextInput/TextInput.js +223 -321
  668. package/lib/components/TextInput/index.js +13 -11
  669. package/lib/components/TextInput/util.js +21 -26
  670. package/lib/components/Theme/index.js +83 -97
  671. package/lib/components/Tile/Tile.d.ts +2 -2
  672. package/lib/components/Tile/Tile.js +398 -590
  673. package/lib/components/TileGroup/TileGroup.js +73 -113
  674. package/lib/components/TimePicker/TimePicker.d.ts +1 -1
  675. package/lib/components/TimePicker/TimePicker.js +152 -251
  676. package/lib/components/TimePickerSelect/TimePickerSelect.js +47 -62
  677. package/lib/components/Toggle/Toggle.Skeleton.js +28 -24
  678. package/lib/components/Toggle/Toggle.js +106 -176
  679. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +50 -53
  680. package/lib/components/Toggletip/index.d.ts +2 -2
  681. package/lib/components/Toggletip/index.js +174 -258
  682. package/lib/components/Tooltip/DefinitionTooltip.js +102 -140
  683. package/lib/components/Tooltip/Tooltip.js +192 -265
  684. package/lib/components/TreeView/TreeContext.js +14 -7
  685. package/lib/components/TreeView/TreeNode.js +365 -504
  686. package/lib/components/TreeView/TreeView.js +169 -242
  687. package/lib/components/UIShell/Content.js +27 -34
  688. package/lib/components/UIShell/Header.js +29 -33
  689. package/lib/components/UIShell/HeaderContainer.js +34 -44
  690. package/lib/components/UIShell/HeaderGlobalAction.js +69 -94
  691. package/lib/components/UIShell/HeaderGlobalBar.js +17 -14
  692. package/lib/components/UIShell/HeaderMenu.js +146 -221
  693. package/lib/components/UIShell/HeaderMenuButton.js +47 -70
  694. package/lib/components/UIShell/HeaderMenuItem.js +53 -80
  695. package/lib/components/UIShell/HeaderName.js +36 -48
  696. package/lib/components/UIShell/HeaderNavigation.js +36 -41
  697. package/lib/components/UIShell/HeaderPanel.js +78 -101
  698. package/lib/components/UIShell/HeaderSideNavItems.js +31 -37
  699. package/lib/components/UIShell/Link.js +32 -54
  700. package/lib/components/UIShell/SideNav.js +136 -245
  701. package/lib/components/UIShell/SideNavContext.js +23 -17
  702. package/lib/components/UIShell/SideNavDetails.js +33 -38
  703. package/lib/components/UIShell/SideNavDivider.js +25 -25
  704. package/lib/components/UIShell/SideNavFooter.js +47 -56
  705. package/lib/components/UIShell/SideNavHeader.js +30 -39
  706. package/lib/components/UIShell/SideNavIcon.js +32 -37
  707. package/lib/components/UIShell/SideNavItem.js +32 -37
  708. package/lib/components/UIShell/SideNavItems.js +35 -44
  709. package/lib/components/UIShell/SideNavLink.js +56 -83
  710. package/lib/components/UIShell/SideNavLinkText.js +28 -29
  711. package/lib/components/UIShell/SideNavMenu.js +106 -148
  712. package/lib/components/UIShell/SideNavMenuItem.js +44 -56
  713. package/lib/components/UIShell/SideNavSwitcher.js +63 -72
  714. package/lib/components/UIShell/SkipToContent.js +32 -40
  715. package/lib/components/UIShell/Switcher.js +73 -103
  716. package/lib/components/UIShell/SwitcherDivider.js +26 -28
  717. package/lib/components/UIShell/SwitcherItem.js +78 -118
  718. package/lib/components/UnorderedList/UnorderedList.js +32 -41
  719. package/lib/feature-flags.js +21 -13
  720. package/lib/index.js +622 -602
  721. package/lib/internal/FloatingMenu.js +249 -296
  722. package/lib/internal/OptimizedResize.js +35 -47
  723. package/lib/internal/Selection.js +102 -134
  724. package/lib/internal/clamp.js +12 -5
  725. package/lib/internal/defaultItemToString.js +15 -10
  726. package/lib/internal/deprecateFieldOnObject.js +23 -16
  727. package/lib/internal/environment.js +15 -8
  728. package/lib/internal/getAnnouncement.js +16 -14
  729. package/lib/internal/keyboard/keys.js +48 -49
  730. package/lib/internal/keyboard/match.js +25 -43
  731. package/lib/internal/keyboard/navigation.js +22 -29
  732. package/lib/internal/noopFn.js +10 -3
  733. package/lib/internal/useAttachedMenu.js +44 -53
  734. package/lib/internal/useControllableState.js +44 -50
  735. package/lib/internal/useDelayedState.js +31 -37
  736. package/lib/internal/useEvent.js +40 -37
  737. package/lib/internal/useId.js +54 -91
  738. package/lib/internal/useIdPrefix.js +15 -7
  739. package/lib/internal/useIsomorphicEffect.js +13 -8
  740. package/lib/internal/useMatchMedia.js +30 -23
  741. package/lib/internal/useMergedRefs.js +27 -24
  742. package/lib/internal/useNoInteractiveChildren.js +73 -101
  743. package/lib/internal/useNormalizedInputProps.js +55 -53
  744. package/lib/internal/useOutsideClick.js +22 -26
  745. package/lib/internal/useOverflowItems.js +90 -94
  746. package/lib/internal/usePrefix.js +15 -7
  747. package/lib/internal/usePresence.js +52 -56
  748. package/lib/internal/usePresenceContext.js +36 -37
  749. package/lib/internal/usePreviousValue.js +27 -20
  750. package/lib/internal/useResizeObserver.js +58 -68
  751. package/lib/internal/useSavedCallback.js +25 -19
  752. package/lib/internal/utils.js +18 -11
  753. package/lib/internal/warning.js +24 -23
  754. package/lib/internal/wrapFocus.js +78 -100
  755. package/lib/prop-types/AriaPropTypes.js +17 -9
  756. package/lib/prop-types/deprecate.js +30 -29
  757. package/lib/prop-types/deprecateComponent.js +17 -10
  758. package/lib/prop-types/deprecateValuesWithin.js +18 -23
  759. package/lib/prop-types/isRequiredOneOf.js +21 -25
  760. package/lib/prop-types/requiredIfGivenPropIsTruthy.js +14 -15
  761. package/lib/tools/events.js +17 -22
  762. package/lib/tools/mapPopoverAlign.js +19 -19
  763. package/lib/tools/mergeRefs.js +14 -18
  764. package/lib/tools/setupGetInstanceId.js +16 -9
  765. package/lib/tools/toggleClass.js +17 -10
  766. package/lib/tools/wrapComponent.js +38 -43
  767. package/package.json +10 -16
  768. package/es/_virtual/_rollupPluginBabelHelpers.js +0 -40
  769. package/es/components/DataTable/stories/examples/TableToolbarFilter.d.ts +0 -54
  770. package/es/node_modules/es-toolkit/dist/compat/function/debounce.js +0 -55
  771. package/es/node_modules/es-toolkit/dist/compat/function/throttle.js +0 -23
  772. package/es/node_modules/es-toolkit/dist/function/debounce.js +0 -70
  773. package/lib/_virtual/_rollupPluginBabelHelpers.js +0 -45
  774. package/lib/components/DataTable/stories/examples/TableToolbarFilter.d.ts +0 -54
  775. package/lib/node_modules/es-toolkit/dist/compat/function/debounce.js +0 -57
  776. package/lib/node_modules/es-toolkit/dist/compat/function/throttle.js +0 -25
  777. package/lib/node_modules/es-toolkit/dist/function/debounce.js +0 -72
@@ -1,457 +1,340 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- 'use strict';
9
-
10
- var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
11
- var cx = require('classnames');
12
- var PropTypes = require('prop-types');
13
- var deprecateValuesWithin = require('../../prop-types/deprecateValuesWithin.js');
14
- var React = require('react');
15
- var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
16
- var useMergedRefs = require('../../internal/useMergedRefs.js');
17
- var usePrefix = require('../../internal/usePrefix.js');
18
- var useEvent = require('../../internal/useEvent.js');
19
- var mapPopoverAlign = require('../../tools/mapPopoverAlign.js');
20
- var react = require('@floating-ui/react');
21
- var index = require('../FeatureFlags/index.js');
22
-
23
- const PopoverContext = /*#__PURE__*/React.createContext({
24
- setFloating: {
25
- current: null
26
- },
27
- caretRef: {
28
- current: null
29
- },
30
- autoAlign: null
31
- });
8
+ const require_runtime = require('../../_virtual/_rolldown/runtime.js');
9
+ const require_usePrefix = require('../../internal/usePrefix.js');
10
+ const require_useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
11
+ const require_deprecateValuesWithin = require('../../prop-types/deprecateValuesWithin.js');
12
+ const require_useMergedRefs = require('../../internal/useMergedRefs.js');
13
+ const require_useEvent = require('../../internal/useEvent.js');
14
+ const require_mapPopoverAlign = require('../../tools/mapPopoverAlign.js');
15
+ const require_index = require('../FeatureFlags/index.js');
16
+ let classnames = require("classnames");
17
+ classnames = require_runtime.__toESM(classnames);
18
+ let react = require("react");
19
+ react = require_runtime.__toESM(react);
20
+ let prop_types = require("prop-types");
21
+ prop_types = require_runtime.__toESM(prop_types);
22
+ let react_jsx_runtime = require("react/jsx-runtime");
23
+ let _floating_ui_react = require("@floating-ui/react");
32
24
 
25
+ //#region src/components/Popover/index.tsx
33
26
  /**
34
- * Deprecated popover alignment values.
35
- * @deprecated Use NewPopoverAlignment instead.
36
- */
37
-
38
- const Popover = /*#__PURE__*/React.forwardRef(function PopoverRenderFunction({
39
- isTabTip,
40
- align: initialAlign = isTabTip ? 'bottom-start' : 'bottom',
41
- as: BaseComponent = 'span',
42
- autoAlign = false,
43
- autoAlignBoundary,
44
- backgroundToken = 'layer',
45
- caret = !isTabTip,
46
- className: customClassName,
47
- children,
48
- border = false,
49
- dropShadow = true,
50
- highContrast = false,
51
- onRequestClose,
52
- open,
53
- alignmentAxisOffset,
54
- ...rest
55
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
56
- },
57
- //this is a workaround, have to come back and fix this.
58
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
59
- forwardRef) {
60
- const prefix = usePrefix.usePrefix();
61
- const floating = React.useRef(null);
62
- const caretRef = React.useRef(null);
63
- const popover = React.useRef(null);
64
- const enableFloatingStyles = index.useFeatureFlag('enable-v12-dynamic-floating-styles') || autoAlign;
65
- const lastClickWasInsidePopoverContent = React.useRef(false);
66
- let align = mapPopoverAlign.mapPopoverAlign(initialAlign);
67
-
68
- // Tracks clicks inside PopoverContent to prevent it from closing when clicked, this handles an edge
69
- // case where the popover will close when clicking non-focusable elements (e.g. text)
70
- useEvent.useEvent(popover, 'mousedown', event => {
71
- const target = event.target;
72
- lastClickWasInsidePopoverContent.current = refs.floating.current?.contains(target) || false;
73
-
74
- // reset flag
75
- if (lastClickWasInsidePopoverContent.current) {
76
- setTimeout(() => {
77
- lastClickWasInsidePopoverContent.current = false;
78
- }, 0);
79
- }
80
- });
81
-
82
- // The `Popover` should close whenever it and its children loses focus
83
- useEvent.useEvent(popover, 'focusout', event => {
84
- const relatedTarget = event.relatedTarget;
85
- if (!relatedTarget) {
86
- // do not close if PopoverContent was clicked
87
- if (lastClickWasInsidePopoverContent.current) {
88
- lastClickWasInsidePopoverContent.current = false;
89
- return;
90
- }
91
- onRequestClose?.();
92
- } else if (relatedTarget && !popover.current?.contains(relatedTarget)) {
93
- const isOutsideFloating = enableFloatingStyles && refs.floating.current ? !refs.floating.current.contains(relatedTarget) : true;
94
- const isFocusableWrapper = relatedTarget && popover.current && relatedTarget.contains(popover.current);
95
-
96
- // Only close if focus moved outside both containers and not to an interactive parent wrapper
97
- if (isOutsideFloating && !isFocusableWrapper) {
98
- onRequestClose?.();
99
- }
100
- }
101
- });
102
- useEvent.useWindowEvent('click', ({
103
- target
104
- }) => {
105
- if (open && target instanceof Node && !popover.current?.contains(target)) {
106
- onRequestClose?.();
107
- }
108
- });
109
-
110
- // Slug styling places a border around the popover content so the caret
111
- // needs to be placed 1px further outside the popover content. To do so,
112
- // we look to see if any of the children has a className containing "slug"
113
- const initialCaretHeight = React.Children.toArray(children).some(x => {
114
- return (
115
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
116
- x?.props?.className?.includes('slug') ||
117
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
118
- x?.props?.className?.includes('ai-label')
119
- );
120
- }) ? 7 : 6;
121
- // These defaults match the defaults defined in packages/styles/scss/components/popover/_popover.scss
122
- const popoverDimensions = React.useRef({
123
- offset: 10,
124
- caretHeight: initialCaretHeight
125
- });
126
- useIsomorphicEffect.default(() => {
127
- // The popover is only offset when a caret is present. Technically, the custom properties
128
- // accessed below can be set by a user even if caret=false, but doing so does not follow
129
- // the design specification for Popover.
130
- if (caret && popover.current) {
131
- // Gather the dimensions of the caret and prefer the values set via custom properties.
132
- // If a value is not set via a custom property, provide a default value that matches the
133
- // default values defined in the sass style file
134
- const getStyle = window.getComputedStyle(popover.current, null);
135
- const offsetProperty = getStyle.getPropertyValue(`--${prefix}-popover-offset`);
136
- const caretProperty = getStyle.getPropertyValue(`--${prefix}-popover-caret-height`);
137
-
138
- // Handle if the property values are in px or rem.
139
- // We want to store just the base number value without a unit suffix
140
- if (offsetProperty) {
141
- popoverDimensions.current.offset = offsetProperty.includes('px') ? Number(offsetProperty.split('px', 1)[0]) * 1 : Number(offsetProperty.split('rem', 1)[0]) * 16;
142
- }
143
- if (caretProperty) {
144
- popoverDimensions.current.caretHeight = caretProperty.includes('px') ? Number(caretProperty.split('px', 1)[0]) * 1 : Number(caretProperty.split('rem', 1)[0]) * 16;
145
- }
146
- }
147
- });
148
- const {
149
- refs,
150
- floatingStyles,
151
- placement,
152
- middlewareData,
153
- elements,
154
- update
155
- } = react.useFloating(enableFloatingStyles ? {
156
- placement: align,
157
- // The floating element is positioned relative to its nearest
158
- // containing block (usually the viewport). It will in many cases also
159
- // “break” the floating element out of a clipping ancestor.
160
- // https://floating-ui.com/docs/misc#clipping
161
- strategy: 'fixed',
162
- // Middleware order matters, arrow should be last
163
- middleware: [react.offset(!isTabTip ? {
164
- alignmentAxis: alignmentAxisOffset,
165
- // Use 4px spacing when no caret, otherwise use the caret offset
166
- mainAxis: caret ? popoverDimensions?.current?.offset : 4
167
- } : 0), autoAlign && react.flip({
168
- fallbackPlacements: isTabTip ? align.includes('bottom') ? ['bottom-start', 'bottom-end', 'top-start', 'top-end'] : ['top-start', 'top-end', 'bottom-start', 'bottom-end'] : align.includes('bottom') ? ['bottom', 'bottom-start', 'bottom-end', 'right', 'right-start', 'right-end', 'left', 'left-start', 'left-end', 'top', 'top-start', 'top-end'] : ['top', 'top-start', 'top-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end'],
169
- fallbackStrategy: 'initialPlacement',
170
- fallbackAxisSideDirection: 'start',
171
- boundary: autoAlignBoundary
172
- }), react.arrow({
173
- element: caretRef,
174
- padding: 16
175
- }), autoAlign && react.hide()]
176
- } : {}
177
- // When autoAlign is turned off & the `enable-v12-dynamic-floating-styles` feature flag is not
178
- // enabled, floating-ui will not be used
179
- );
180
- React.useEffect(() => {
181
- if (!enableFloatingStyles) return;
182
- if (open && elements.reference && elements.floating) {
183
- const cleanup = react.autoUpdate(elements.reference, elements.floating, update);
184
- return cleanup;
185
- }
186
- }, [enableFloatingStyles, open, elements, update]);
187
- const value = React.useMemo(() => {
188
- return {
189
- floating,
190
- setFloating: refs.setFloating,
191
- caretRef,
192
- autoAlign: autoAlign
193
- };
194
- }, [refs.setFloating, autoAlign]);
195
- if (isTabTip) {
196
- const tabTipAlignments = ['bottom-start', 'bottom-end'];
197
- if (!tabTipAlignments.includes(align)) {
198
- align = 'bottom-start';
199
- }
200
- }
201
- React.useEffect(() => {
202
- if (enableFloatingStyles) {
203
- const updatedFloatingStyles = {
204
- ...floatingStyles,
205
- visibility: middlewareData.hide?.referenceHidden ? 'hidden' : 'visible'
206
- };
207
- Object.keys(updatedFloatingStyles).forEach(style => {
208
- if (refs.floating.current) {
209
- refs.floating.current.style[style] = updatedFloatingStyles[style];
210
- }
211
- });
212
- if (caret && middlewareData && middlewareData.arrow && caretRef?.current) {
213
- const {
214
- x,
215
- y
216
- } = middlewareData.arrow;
217
- const staticSide = {
218
- top: 'bottom',
219
- right: 'left',
220
- bottom: 'top',
221
- left: 'right'
222
- }[placement.split('-')[0]];
223
- caretRef.current.style.left = x != null ? `${x}px` : '';
224
- caretRef.current.style.top = y != null ? `${y}px` : '';
225
-
226
- // Ensure the static side gets unset when flipping to other placements' axes.
227
- caretRef.current.style.right = '';
228
- caretRef.current.style.bottom = '';
229
- if (staticSide) {
230
- caretRef.current.style[staticSide] = `${-popoverDimensions?.current?.caretHeight}px`;
231
- }
232
- }
233
- }
234
- }, [floatingStyles, refs.floating, enableFloatingStyles, middlewareData, placement, caret]);
235
- const ref = useMergedRefs.useMergedRefs([forwardRef, popover]);
236
- const currentAlignment = autoAlign && placement !== align ? placement : align;
237
- const className = cx({
238
- [`${prefix}--popover-container`]: true,
239
- [`${prefix}--popover--caret`]: caret,
240
- [`${prefix}--popover--drop-shadow`]: dropShadow,
241
- [`${prefix}--popover--border`]: border,
242
- [`${prefix}--popover--high-contrast`]: highContrast,
243
- [`${prefix}--popover--open`]: open,
244
- [`${prefix}--popover--auto-align ${prefix}--autoalign`]: enableFloatingStyles,
245
- [`${prefix}--popover--${currentAlignment}`]: true,
246
- [`${prefix}--popover--tab-tip`]: isTabTip,
247
- [`${prefix}--popover--background-token__background`]: backgroundToken === 'background' && !highContrast
248
- }, customClassName);
249
- const mappedChildren = React.Children.map(children, child => {
250
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
251
- const item = child;
252
- const displayName = item?.type?.displayName;
253
-
254
- /**
255
- * Only trigger elements (button) or trigger components (ToggletipButton) should be
256
- * cloned because these will be decorated with a trigger-specific className and ref.
257
- *
258
- * There are also some specific components that should not be cloned when autoAlign
259
- * is on, even if they are a trigger element.
260
- */
261
- const isTriggerElement = item?.type === 'button';
262
- const isTriggerComponent = enableFloatingStyles && displayName && ['ToggletipButton'].includes(displayName);
263
- const isAllowedTriggerComponent = enableFloatingStyles && !['ToggletipContent', 'PopoverContent'].includes(displayName);
264
- if (/*#__PURE__*/React.isValidElement(item) && (isTriggerElement || isTriggerComponent || isAllowedTriggerComponent)) {
265
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
266
- const className = item?.props?.className;
267
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
268
- const ref = (item?.props).ref;
269
- const tabTipClasses = cx(`${prefix}--popover--tab-tip__button`, className);
270
-
271
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
272
- return /*#__PURE__*/React.cloneElement(item, {
273
- className: isTabTip && item?.type === 'button' ? tabTipClasses : className || '',
274
- // With cloneElement, if you pass a `ref`, it overrides the original ref.
275
- // https://react.dev/reference/react/cloneElement#parameters
276
- // The block below works around this and ensures that the original ref is still
277
- // called while allowing the floating-ui reference element to be set as well.
278
- // `useMergedRefs` can't be used here because hooks can't be called from within a callback.
279
- // More here: https://github.com/facebook/react/issues/8873#issuecomment-489579878
280
- ref: node => {
281
- // For a popover, there isn't an explicit trigger component, it's just the first child that's
282
- // passed in which should *not* be PopoverContent.
283
- // For a toggletip there is a specific trigger component, ToggletipButton.
284
- // In either of these cases we want to set this as the reference node for floating-ui autoAlign
285
- // positioning.
286
- if (enableFloatingStyles && item?.type !== PopoverContent || enableFloatingStyles && item?.type['displayName'] === 'ToggletipButton') {
287
- // Set the reference element for floating-ui
288
- refs.setReference(node);
289
- }
290
-
291
- // Call the original ref, if any
292
- if (typeof ref === 'function') {
293
- ref(node);
294
- } else if (ref !== null && ref !== undefined) {
295
- ref.current = node;
296
- }
297
- }
298
- });
299
- } else {
300
- return item;
301
- }
302
- });
303
- return /*#__PURE__*/React.createElement(PopoverContext.Provider, {
304
- value: value
305
- }, /*#__PURE__*/React.createElement(BaseComponent, _rollupPluginBabelHelpers.extends({}, rest, {
306
- className: className,
307
- ref: ref
308
- }), enableFloatingStyles || isTabTip ? mappedChildren : children));
27
+ * Copyright IBM Corp. 2016, 2026
28
+ *
29
+ * This source code is licensed under the Apache-2.0 license found in the
30
+ * LICENSE file in the root directory of this source tree.
31
+ */
32
+ const PopoverContext = react.default.createContext({
33
+ setFloating: { current: null },
34
+ caretRef: { current: null },
35
+ autoAlign: null
309
36
  });
310
-
311
- // Note: this displayName is temporarily set so that Storybook ArgTable
312
- // correctly displays the name of this component
313
- if (process.env.NODE_ENV !== 'production') {
314
- Popover.displayName = 'Popover';
315
- }
37
+ const Popover = react.default.forwardRef(function PopoverRenderFunction({ isTabTip, align: initialAlign = isTabTip ? "bottom-start" : "bottom", as: BaseComponent = "span", autoAlign = false, autoAlignBoundary, backgroundToken = "layer", caret = !isTabTip, className: customClassName, children, border = false, dropShadow = true, highContrast = false, onRequestClose, open, alignmentAxisOffset, ...rest }, forwardRef) {
38
+ const prefix = require_usePrefix.usePrefix();
39
+ const floating = (0, react.useRef)(null);
40
+ const caretRef = (0, react.useRef)(null);
41
+ const popover = (0, react.useRef)(null);
42
+ const enableFloatingStyles = require_index.useFeatureFlag("enable-v12-dynamic-floating-styles") || autoAlign;
43
+ const lastClickWasInsidePopoverContent = (0, react.useRef)(false);
44
+ let align = require_mapPopoverAlign.mapPopoverAlign(initialAlign);
45
+ require_useEvent.useEvent(popover, "mousedown", (event) => {
46
+ const target = event.target;
47
+ lastClickWasInsidePopoverContent.current = refs.floating.current?.contains(target) || false;
48
+ if (lastClickWasInsidePopoverContent.current) setTimeout(() => {
49
+ lastClickWasInsidePopoverContent.current = false;
50
+ }, 0);
51
+ });
52
+ require_useEvent.useEvent(popover, "focusout", (event) => {
53
+ const relatedTarget = event.relatedTarget;
54
+ if (!relatedTarget) {
55
+ if (lastClickWasInsidePopoverContent.current) {
56
+ lastClickWasInsidePopoverContent.current = false;
57
+ return;
58
+ }
59
+ onRequestClose?.();
60
+ } else if (relatedTarget && !popover.current?.contains(relatedTarget)) {
61
+ const isOutsideFloating = enableFloatingStyles && refs.floating.current ? !refs.floating.current.contains(relatedTarget) : true;
62
+ const isFocusableWrapper = relatedTarget && popover.current && relatedTarget.contains(popover.current);
63
+ if (isOutsideFloating && !isFocusableWrapper) onRequestClose?.();
64
+ }
65
+ });
66
+ require_useEvent.useWindowEvent("click", ({ target }) => {
67
+ if (open && target instanceof Node && !popover.current?.contains(target)) onRequestClose?.();
68
+ });
69
+ const popoverDimensions = (0, react.useRef)({
70
+ offset: 10,
71
+ caretHeight: react.default.Children.toArray(children).some((x) => {
72
+ return x?.props?.className?.includes("slug") || x?.props?.className?.includes("ai-label");
73
+ }) ? 7 : 6
74
+ });
75
+ require_useIsomorphicEffect.default(() => {
76
+ if (caret && popover.current) {
77
+ const getStyle = window.getComputedStyle(popover.current, null);
78
+ const offsetProperty = getStyle.getPropertyValue(`--${prefix}-popover-offset`);
79
+ const caretProperty = getStyle.getPropertyValue(`--${prefix}-popover-caret-height`);
80
+ if (offsetProperty) popoverDimensions.current.offset = offsetProperty.includes("px") ? Number(offsetProperty.split("px", 1)[0]) * 1 : Number(offsetProperty.split("rem", 1)[0]) * 16;
81
+ if (caretProperty) popoverDimensions.current.caretHeight = caretProperty.includes("px") ? Number(caretProperty.split("px", 1)[0]) * 1 : Number(caretProperty.split("rem", 1)[0]) * 16;
82
+ }
83
+ });
84
+ const { refs, floatingStyles, placement, middlewareData, elements, update } = (0, _floating_ui_react.useFloating)(enableFloatingStyles ? {
85
+ placement: align,
86
+ strategy: "fixed",
87
+ middleware: [
88
+ (0, _floating_ui_react.offset)(!isTabTip ? {
89
+ alignmentAxis: alignmentAxisOffset,
90
+ mainAxis: caret ? popoverDimensions?.current?.offset : 4
91
+ } : 0),
92
+ autoAlign && (0, _floating_ui_react.flip)({
93
+ fallbackPlacements: isTabTip ? align.includes("bottom") ? [
94
+ "bottom-start",
95
+ "bottom-end",
96
+ "top-start",
97
+ "top-end"
98
+ ] : [
99
+ "top-start",
100
+ "top-end",
101
+ "bottom-start",
102
+ "bottom-end"
103
+ ] : align.includes("bottom") ? [
104
+ "bottom",
105
+ "bottom-start",
106
+ "bottom-end",
107
+ "right",
108
+ "right-start",
109
+ "right-end",
110
+ "left",
111
+ "left-start",
112
+ "left-end",
113
+ "top",
114
+ "top-start",
115
+ "top-end"
116
+ ] : [
117
+ "top",
118
+ "top-start",
119
+ "top-end",
120
+ "left",
121
+ "left-start",
122
+ "left-end",
123
+ "right",
124
+ "right-start",
125
+ "right-end",
126
+ "bottom",
127
+ "bottom-start",
128
+ "bottom-end"
129
+ ],
130
+ fallbackStrategy: "initialPlacement",
131
+ fallbackAxisSideDirection: "start",
132
+ boundary: autoAlignBoundary
133
+ }),
134
+ (0, _floating_ui_react.arrow)({
135
+ element: caretRef,
136
+ padding: 16
137
+ }),
138
+ autoAlign && (0, _floating_ui_react.hide)()
139
+ ]
140
+ } : {});
141
+ (0, react.useEffect)(() => {
142
+ if (!enableFloatingStyles) return;
143
+ if (open && elements.reference && elements.floating) return (0, _floating_ui_react.autoUpdate)(elements.reference, elements.floating, update);
144
+ }, [
145
+ enableFloatingStyles,
146
+ open,
147
+ elements,
148
+ update
149
+ ]);
150
+ const value = (0, react.useMemo)(() => {
151
+ return {
152
+ floating,
153
+ setFloating: refs.setFloating,
154
+ caretRef,
155
+ autoAlign
156
+ };
157
+ }, [refs.setFloating, autoAlign]);
158
+ if (isTabTip) {
159
+ if (!["bottom-start", "bottom-end"].includes(align)) align = "bottom-start";
160
+ }
161
+ (0, react.useEffect)(() => {
162
+ if (enableFloatingStyles) {
163
+ const updatedFloatingStyles = {
164
+ ...floatingStyles,
165
+ visibility: middlewareData.hide?.referenceHidden ? "hidden" : "visible"
166
+ };
167
+ Object.keys(updatedFloatingStyles).forEach((style) => {
168
+ if (refs.floating.current) refs.floating.current.style[style] = updatedFloatingStyles[style];
169
+ });
170
+ if (caret && middlewareData && middlewareData.arrow && caretRef?.current) {
171
+ const { x, y } = middlewareData.arrow;
172
+ const staticSide = {
173
+ top: "bottom",
174
+ right: "left",
175
+ bottom: "top",
176
+ left: "right"
177
+ }[placement.split("-")[0]];
178
+ caretRef.current.style.left = x != null ? `${x}px` : "";
179
+ caretRef.current.style.top = y != null ? `${y}px` : "";
180
+ caretRef.current.style.right = "";
181
+ caretRef.current.style.bottom = "";
182
+ if (staticSide) caretRef.current.style[staticSide] = `${-popoverDimensions?.current?.caretHeight}px`;
183
+ }
184
+ }
185
+ }, [
186
+ floatingStyles,
187
+ refs.floating,
188
+ enableFloatingStyles,
189
+ middlewareData,
190
+ placement,
191
+ caret
192
+ ]);
193
+ const ref = require_useMergedRefs.useMergedRefs([forwardRef, popover]);
194
+ const currentAlignment = autoAlign && placement !== align ? placement : align;
195
+ const className = (0, classnames.default)({
196
+ [`${prefix}--popover-container`]: true,
197
+ [`${prefix}--popover--caret`]: caret,
198
+ [`${prefix}--popover--drop-shadow`]: dropShadow,
199
+ [`${prefix}--popover--border`]: border,
200
+ [`${prefix}--popover--high-contrast`]: highContrast,
201
+ [`${prefix}--popover--open`]: open,
202
+ [`${prefix}--popover--auto-align ${prefix}--autoalign`]: enableFloatingStyles,
203
+ [`${prefix}--popover--${currentAlignment}`]: true,
204
+ [`${prefix}--popover--tab-tip`]: isTabTip,
205
+ [`${prefix}--popover--background-token__background`]: backgroundToken === "background" && !highContrast
206
+ }, customClassName);
207
+ const mappedChildren = react.default.Children.map(children, (child) => {
208
+ const item = child;
209
+ const displayName = item?.type?.displayName;
210
+ /**
211
+ * Only trigger elements (button) or trigger components (ToggletipButton) should be
212
+ * cloned because these will be decorated with a trigger-specific className and ref.
213
+ *
214
+ * There are also some specific components that should not be cloned when autoAlign
215
+ * is on, even if they are a trigger element.
216
+ */
217
+ const isTriggerElement = item?.type === "button";
218
+ const isTriggerComponent = enableFloatingStyles && displayName && ["ToggletipButton"].includes(displayName);
219
+ const isAllowedTriggerComponent = enableFloatingStyles && !["ToggletipContent", "PopoverContent"].includes(displayName);
220
+ if (react.default.isValidElement(item) && (isTriggerElement || isTriggerComponent || isAllowedTriggerComponent)) {
221
+ const className = (item?.props)?.className;
222
+ const ref = (item?.props).ref;
223
+ const tabTipClasses = (0, classnames.default)(`${prefix}--popover--tab-tip__button`, className);
224
+ return react.default.cloneElement(item, {
225
+ className: isTabTip && item?.type === "button" ? tabTipClasses : className || "",
226
+ ref: (node) => {
227
+ if (enableFloatingStyles && item?.type !== PopoverContent || enableFloatingStyles && item?.type["displayName"] === "ToggletipButton") refs.setReference(node);
228
+ if (typeof ref === "function") ref(node);
229
+ else if (ref !== null && ref !== void 0) ref.current = node;
230
+ }
231
+ });
232
+ } else return item;
233
+ });
234
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PopoverContext.Provider, {
235
+ value,
236
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BaseComponent, {
237
+ ...rest,
238
+ className,
239
+ ref,
240
+ children: enableFloatingStyles || isTabTip ? mappedChildren : children
241
+ })
242
+ });
243
+ });
244
+ if (process.env.NODE_ENV !== "production") Popover.displayName = "Popover";
316
245
  Popover.propTypes = {
317
- /**
318
- * Specify how the popover should align with the trigger element
319
- */
320
- align: deprecateValuesWithin.deprecateValuesWithin(PropTypes.oneOf(['top', 'top-left',
321
- // deprecated use top-start instead
322
- 'top-right',
323
- // deprecated use top-end instead
324
-
325
- 'bottom', 'bottom-left',
326
- // deprecated use bottom-start instead
327
- 'bottom-right',
328
- // deprecated use bottom-end instead
329
-
330
- 'left', 'left-bottom',
331
- // deprecated use left-end instead
332
- 'left-top',
333
- // deprecated use left-start instead
334
-
335
- 'right', 'right-bottom',
336
- // deprecated use right-end instead
337
- 'right-top',
338
- // deprecated use right-start instead
339
-
340
- // new values to match floating-ui
341
- 'top-start', 'top-end', 'bottom-start', 'bottom-end', 'left-end', 'left-start', 'right-end', 'right-start']), ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end'], mapPopoverAlign.mapPopoverAlign),
342
- /**
343
- * **Experimental:** Provide an offset value for alignment axis. Only takes effect when `autoalign` is enabled.
344
- */
345
- alignmentAxisOffset: PropTypes.number,
346
- /**
347
- * Provide a custom element or component to render the top-level node for the
348
- * component.
349
- */
350
- as: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
351
- /**
352
- * Will auto-align the popover on first render if it is not visible. This prop
353
- * is currently experimental and is subject to future changes. Requires
354
- * React v17+
355
- * @see https://github.com/carbon-design-system/carbon/issues/18714
356
- */
357
- autoAlign: PropTypes.bool,
358
- /**
359
- * Specify the background token to use. Default is 'layer'.
360
- */
361
- backgroundToken: PropTypes.oneOf(['layer', 'background']),
362
- /**
363
- * Specify a bounding element to be used for autoAlign calculations. The viewport is used by default. This prop is currently experimental and is subject to future changes.
364
- */
365
- autoAlignBoundary: PropTypes.oneOfType([PropTypes.oneOf(['clippingAncestors']), PropTypes.elementType, PropTypes.arrayOf(PropTypes.elementType), PropTypes.exact({
366
- x: PropTypes.number.isRequired,
367
- y: PropTypes.number.isRequired,
368
- width: PropTypes.number.isRequired,
369
- height: PropTypes.number.isRequired
370
- })]),
371
- /**
372
- * Specify whether a caret should be rendered
373
- */
374
- caret: PropTypes.bool,
375
- /**
376
- * Specify whether a border should be rendered on the popover
377
- */
378
- border: PropTypes.bool,
379
- /**
380
- * Provide elements to be rendered inside of the component
381
- */
382
- children: PropTypes.node,
383
- /**
384
- * Provide a custom class name to be added to the outermost node in the
385
- * component
386
- */
387
- className: PropTypes.string,
388
- /**
389
- * Specify whether a drop shadow should be rendered on the popover
390
- */
391
- dropShadow: PropTypes.bool,
392
- /**
393
- * Render the component using the high-contrast variant
394
- */
395
- highContrast: PropTypes.bool,
396
- /**
397
- * Render the component using the tab tip variant
398
- */
399
- isTabTip: PropTypes.bool,
400
- /**
401
- * Specify a handler for closing popover.
402
- * The handler should take care of closing the popover, e.g. changing the `open` prop.
403
- */
404
- onRequestClose: PropTypes.func,
405
- /**
406
- * Specify whether the component is currently open or closed
407
- */
408
- open: PropTypes.bool.isRequired
246
+ align: require_deprecateValuesWithin.deprecateValuesWithin(prop_types.default.oneOf([
247
+ "top",
248
+ "top-left",
249
+ "top-right",
250
+ "bottom",
251
+ "bottom-left",
252
+ "bottom-right",
253
+ "left",
254
+ "left-bottom",
255
+ "left-top",
256
+ "right",
257
+ "right-bottom",
258
+ "right-top",
259
+ "top-start",
260
+ "top-end",
261
+ "bottom-start",
262
+ "bottom-end",
263
+ "left-end",
264
+ "left-start",
265
+ "right-end",
266
+ "right-start"
267
+ ]), [
268
+ "top",
269
+ "top-start",
270
+ "top-end",
271
+ "bottom",
272
+ "bottom-start",
273
+ "bottom-end",
274
+ "left",
275
+ "left-start",
276
+ "left-end",
277
+ "right",
278
+ "right-start",
279
+ "right-end"
280
+ ], require_mapPopoverAlign.mapPopoverAlign),
281
+ alignmentAxisOffset: prop_types.default.number,
282
+ as: prop_types.default.oneOfType([prop_types.default.string, prop_types.default.elementType]),
283
+ autoAlign: prop_types.default.bool,
284
+ backgroundToken: prop_types.default.oneOf(["layer", "background"]),
285
+ autoAlignBoundary: prop_types.default.oneOfType([
286
+ prop_types.default.oneOf(["clippingAncestors"]),
287
+ prop_types.default.elementType,
288
+ prop_types.default.arrayOf(prop_types.default.elementType),
289
+ prop_types.default.exact({
290
+ x: prop_types.default.number.isRequired,
291
+ y: prop_types.default.number.isRequired,
292
+ width: prop_types.default.number.isRequired,
293
+ height: prop_types.default.number.isRequired
294
+ })
295
+ ]),
296
+ caret: prop_types.default.bool,
297
+ border: prop_types.default.bool,
298
+ children: prop_types.default.node,
299
+ className: prop_types.default.string,
300
+ dropShadow: prop_types.default.bool,
301
+ highContrast: prop_types.default.bool,
302
+ isTabTip: prop_types.default.bool,
303
+ onRequestClose: prop_types.default.func,
304
+ open: prop_types.default.bool.isRequired
409
305
  };
410
- const frFn = React.forwardRef;
306
+ const frFn = react.forwardRef;
411
307
  const PopoverContent = frFn((props, forwardRef) => {
412
- const {
413
- className,
414
- children,
415
- ...rest
416
- } = props;
417
- const prefix = usePrefix.usePrefix();
418
- const {
419
- setFloating,
420
- caretRef,
421
- autoAlign
422
- } = React.useContext(PopoverContext);
423
- const ref = useMergedRefs.useMergedRefs([setFloating, forwardRef]);
424
- const enableFloatingStyles = index.useFeatureFlag('enable-v12-dynamic-floating-styles') || autoAlign;
425
- return /*#__PURE__*/React.createElement("span", _rollupPluginBabelHelpers.extends({}, rest, {
426
- className: `${prefix}--popover`
427
- }), /*#__PURE__*/React.createElement("span", {
428
- className: cx(`${prefix}--popover-content`, className),
429
- ref: ref
430
- }, children, enableFloatingStyles && /*#__PURE__*/React.createElement("span", {
431
- className: cx({
432
- [`${prefix}--popover-caret`]: true,
433
- [`${prefix}--popover--auto-align`]: true
434
- }),
435
- ref: caretRef
436
- })), !enableFloatingStyles && /*#__PURE__*/React.createElement("span", {
437
- className: cx({
438
- [`${prefix}--popover-caret`]: true
439
- }),
440
- ref: caretRef
441
- }));
308
+ const { className, children, ...rest } = props;
309
+ const prefix = require_usePrefix.usePrefix();
310
+ const { setFloating, caretRef, autoAlign } = react.default.useContext(PopoverContext);
311
+ const ref = require_useMergedRefs.useMergedRefs([setFloating, forwardRef]);
312
+ const enableFloatingStyles = require_index.useFeatureFlag("enable-v12-dynamic-floating-styles") || autoAlign;
313
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
314
+ ...rest,
315
+ className: `${prefix}--popover`,
316
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
317
+ className: (0, classnames.default)(`${prefix}--popover-content`, className),
318
+ ref,
319
+ children: [children, enableFloatingStyles && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
320
+ className: (0, classnames.default)({
321
+ [`${prefix}--popover-caret`]: true,
322
+ [`${prefix}--popover--auto-align`]: true
323
+ }),
324
+ ref: caretRef
325
+ })]
326
+ }), !enableFloatingStyles && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
327
+ className: (0, classnames.default)({ [`${prefix}--popover-caret`]: true }),
328
+ ref: caretRef
329
+ })]
330
+ });
442
331
  });
443
- PopoverContent.displayName = 'PopoverContent';
332
+ PopoverContent.displayName = "PopoverContent";
444
333
  PopoverContent.propTypes = {
445
- /**
446
- * Provide elements to be rendered inside of the component
447
- */
448
- children: PropTypes.node,
449
- /**
450
- * Provide a custom class name to be added to the outermost node in the
451
- * component
452
- */
453
- className: PropTypes.string
334
+ children: prop_types.default.node,
335
+ className: prop_types.default.string
454
336
  };
455
337
 
338
+ //#endregion
456
339
  exports.Popover = Popover;
457
- exports.PopoverContent = PopoverContent;
340
+ exports.PopoverContent = PopoverContent;