@carbon/react 1.102.0-rc.0 → 1.103.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 (172) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +976 -976
  2. package/es/components/Breadcrumb/BreadcrumbItem.js +1 -1
  3. package/es/components/Button/Button.Skeleton.js +2 -1
  4. package/es/components/Button/Button.d.ts +4 -4
  5. package/es/components/Button/Button.js +4 -4
  6. package/es/components/Button/index.js +1 -1
  7. package/es/components/ButtonSet/ButtonSet.js +1 -1
  8. package/es/components/Checkbox/index.js +1 -1
  9. package/es/components/CheckboxGroup/CheckboxGroup.d.ts +1 -1
  10. package/es/components/CheckboxGroup/CheckboxGroup.js +2 -2
  11. package/es/components/ComboBox/ComboBox.js +3 -4
  12. package/es/components/ComposedModal/ComposedModal.js +0 -3
  13. package/es/components/ComposedModal/ComposedModalPresence.d.ts +9 -1
  14. package/es/components/ComposedModal/ComposedModalPresence.js +14 -1
  15. package/es/components/ComposedModal/index.d.ts +1 -1
  16. package/es/components/ContainedList/index.js +1 -1
  17. package/es/components/ContentSwitcher/ContentSwitcher.js +3 -2
  18. package/es/components/DataTable/TableExpandRow.js +2 -2
  19. package/es/components/DataTable/TableHeader.js +1 -1
  20. package/es/components/DataTable/TableRow.js +1 -1
  21. package/es/components/DataTable/TableToolbarMenu.js +1 -1
  22. package/es/components/DataTable/tools/normalize.js +2 -1
  23. package/es/components/DatePicker/DatePicker.Skeleton.d.ts +8 -5
  24. package/es/components/DatePicker/DatePicker.Skeleton.js +2 -2
  25. package/es/components/DatePicker/DatePicker.js +3 -2
  26. package/es/components/DatePicker/index.js +1 -1
  27. package/es/components/DatePickerInput/DatePickerInput.js +1 -1
  28. package/es/components/Dialog/Dialog.js +1 -1
  29. package/es/components/Dropdown/Dropdown.js +1 -3
  30. package/es/components/Dropdown/index.js +1 -1
  31. package/es/components/ExpandableSearch/ExpandableSearch.js +1 -1
  32. package/es/components/FeatureFlags/index.d.ts +8 -18
  33. package/es/components/FeatureFlags/index.js +23 -103
  34. package/es/components/FileUploader/FileUploader.Skeleton.js +1 -1
  35. package/es/components/FileUploader/FileUploaderButton.d.ts +1 -1
  36. package/es/components/FileUploader/FileUploaderButton.js +3 -7
  37. package/es/components/Icon/Icon.Skeleton.js +1 -1
  38. package/es/components/IconIndicator/index.js +1 -1
  39. package/es/components/Menu/MenuItem.js +1 -1
  40. package/es/components/Modal/ModalPresence.d.ts +9 -1
  41. package/es/components/Modal/ModalPresence.js +14 -1
  42. package/es/components/Modal/index.d.ts +2 -2
  43. package/es/components/MultiSelect/MultiSelect.js +9 -10
  44. package/es/components/Notification/Notification.js +1 -1
  45. package/es/components/NumberInput/NumberInput.js +15 -13
  46. package/es/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  47. package/es/components/OverflowMenu/OverflowMenu.js +3 -5
  48. package/es/components/OverflowMenuV2/index.js +1 -1
  49. package/es/components/PageHeader/PageHeader.js +2 -23
  50. package/es/components/Pagination/Pagination.Skeleton.js +1 -1
  51. package/es/components/Pagination/Pagination.d.ts +4 -0
  52. package/es/components/Pagination/Pagination.js +6 -1
  53. package/es/components/Pagination/experimental/Pagination.js +12 -1
  54. package/es/components/Popover/index.js +1 -1
  55. package/es/components/ProgressIndicator/ProgressIndicator.js +3 -3
  56. package/es/components/RadioButton/RadioButton.Skeleton.js +1 -1
  57. package/es/components/Search/index.js +1 -1
  58. package/es/components/Select/index.js +1 -1
  59. package/es/components/ShapeIndicator/index.js +1 -1
  60. package/es/components/Slider/Slider.d.ts +1 -1
  61. package/es/components/Slider/Slider.js +230 -255
  62. package/es/components/Slider/SliderHandles.js +65 -53
  63. package/es/components/Switch/IconSwitch.js +1 -1
  64. package/es/components/Tabs/Tabs.js +2 -6
  65. package/es/components/Tag/Tag.Skeleton.js +1 -1
  66. package/es/components/TextArea/TextArea.js +1 -1
  67. package/es/components/TextArea/index.js +1 -1
  68. package/es/components/TextInput/index.js +1 -1
  69. package/es/components/Tile/Tile.js +1 -1
  70. package/es/components/TileGroup/TileGroup.d.ts +1 -1
  71. package/es/components/TileGroup/TileGroup.js +2 -1
  72. package/es/components/Toggle/Toggle.Skeleton.js +1 -1
  73. package/es/components/Toggletip/index.js +1 -1
  74. package/es/components/UIShell/HeaderMenu.js +1 -1
  75. package/es/components/UIShell/HeaderPanel.js +3 -2
  76. package/es/components/UIShell/SideNav.d.ts +1 -4
  77. package/es/components/UIShell/SideNav.js +10 -25
  78. package/es/components/UIShell/SideNavContext.d.ts +17 -0
  79. package/es/components/UIShell/SideNavContext.js +24 -0
  80. package/es/components/UIShell/SideNavItems.d.ts +1 -1
  81. package/es/components/UIShell/SideNavItems.js +12 -16
  82. package/es/components/UIShell/SideNavLink.js +8 -4
  83. package/es/components/UIShell/SideNavMenu.js +7 -5
  84. package/es/components/UIShell/Switcher.js +5 -4
  85. package/es/index.js +30 -30
  86. package/es/internal/useNoInteractiveChildren.js +25 -30
  87. package/es/internal/useOverflowItems.d.ts +1 -5
  88. package/es/internal/useOverflowItems.js +6 -27
  89. package/es/internal/usePresence.d.ts +1 -1
  90. package/es/internal/usePresence.js +14 -17
  91. package/lib/components/Button/Button.Skeleton.js +2 -1
  92. package/lib/components/Button/Button.d.ts +4 -4
  93. package/lib/components/Button/Button.js +4 -4
  94. package/lib/components/Button/index.js +1 -1
  95. package/lib/components/ButtonSet/ButtonSet.js +1 -1
  96. package/lib/components/Checkbox/index.js +1 -1
  97. package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +1 -1
  98. package/lib/components/CheckboxGroup/CheckboxGroup.js +1 -1
  99. package/lib/components/ComboBox/ComboBox.js +3 -4
  100. package/lib/components/ComposedModal/ComposedModal.js +0 -3
  101. package/lib/components/ComposedModal/ComposedModalPresence.d.ts +9 -1
  102. package/lib/components/ComposedModal/ComposedModalPresence.js +14 -0
  103. package/lib/components/ComposedModal/index.d.ts +1 -1
  104. package/lib/components/ContainedList/index.js +0 -3
  105. package/lib/components/ContentSwitcher/ContentSwitcher.js +2 -1
  106. package/lib/components/DataTable/TableExpandRow.js +1 -1
  107. package/lib/components/DataTable/TableToolbarMenu.js +1 -1
  108. package/lib/components/DataTable/tools/normalize.js +2 -1
  109. package/lib/components/DatePicker/DatePicker.Skeleton.d.ts +8 -5
  110. package/lib/components/DatePicker/DatePicker.Skeleton.js +2 -2
  111. package/lib/components/DatePicker/DatePicker.js +3 -2
  112. package/lib/components/DatePicker/index.js +1 -1
  113. package/lib/components/Dropdown/Dropdown.js +1 -3
  114. package/lib/components/Dropdown/index.js +1 -1
  115. package/lib/components/FeatureFlags/index.d.ts +8 -18
  116. package/lib/components/FeatureFlags/index.js +21 -102
  117. package/lib/components/FileUploader/FileUploader.Skeleton.js +1 -1
  118. package/lib/components/FileUploader/FileUploaderButton.d.ts +1 -1
  119. package/lib/components/FileUploader/FileUploaderButton.js +2 -6
  120. package/lib/components/Icon/Icon.Skeleton.js +0 -3
  121. package/lib/components/IconIndicator/index.js +0 -3
  122. package/lib/components/Modal/ModalPresence.d.ts +9 -1
  123. package/lib/components/Modal/ModalPresence.js +14 -0
  124. package/lib/components/Modal/index.d.ts +2 -2
  125. package/lib/components/MultiSelect/MultiSelect.js +8 -9
  126. package/lib/components/NumberInput/NumberInput.js +14 -12
  127. package/lib/components/OverflowMenu/OverflowMenu.d.ts +1 -1
  128. package/lib/components/OverflowMenu/OverflowMenu.js +2 -7
  129. package/lib/components/OverflowMenuV2/index.js +1 -1
  130. package/lib/components/PageHeader/PageHeader.js +2 -23
  131. package/lib/components/Pagination/Pagination.Skeleton.js +0 -3
  132. package/lib/components/Pagination/Pagination.d.ts +4 -0
  133. package/lib/components/Pagination/Pagination.js +6 -1
  134. package/lib/components/Pagination/experimental/Pagination.js +12 -1
  135. package/lib/components/ProgressIndicator/ProgressIndicator.js +3 -3
  136. package/lib/components/RadioButton/RadioButton.Skeleton.js +0 -3
  137. package/lib/components/Search/index.js +1 -1
  138. package/lib/components/Select/index.js +1 -1
  139. package/lib/components/ShapeIndicator/index.js +0 -3
  140. package/lib/components/Slider/Slider.d.ts +1 -1
  141. package/lib/components/Slider/Slider.js +229 -254
  142. package/lib/components/Slider/SliderHandles.js +64 -52
  143. package/lib/components/Tabs/Tabs.js +1 -5
  144. package/lib/components/Tag/Tag.Skeleton.js +0 -3
  145. package/lib/components/TextArea/index.js +1 -1
  146. package/lib/components/TextInput/index.js +1 -1
  147. package/lib/components/TileGroup/TileGroup.d.ts +1 -1
  148. package/lib/components/TileGroup/TileGroup.js +2 -1
  149. package/lib/components/Toggle/Toggle.Skeleton.js +0 -3
  150. package/lib/components/Toggletip/index.js +0 -3
  151. package/lib/components/UIShell/HeaderPanel.js +2 -1
  152. package/lib/components/UIShell/SideNav.d.ts +1 -4
  153. package/lib/components/UIShell/SideNav.js +8 -24
  154. package/lib/components/UIShell/SideNavContext.d.ts +17 -0
  155. package/lib/components/UIShell/SideNavContext.js +27 -0
  156. package/lib/components/UIShell/SideNavItems.d.ts +1 -1
  157. package/lib/components/UIShell/SideNavItems.js +11 -15
  158. package/lib/components/UIShell/SideNavLink.js +7 -3
  159. package/lib/components/UIShell/SideNavMenu.js +8 -6
  160. package/lib/components/UIShell/Switcher.js +4 -3
  161. package/lib/index.js +102 -100
  162. package/lib/internal/useNoInteractiveChildren.js +25 -30
  163. package/lib/internal/useOverflowItems.d.ts +1 -5
  164. package/lib/internal/useOverflowItems.js +6 -27
  165. package/lib/internal/usePresence.d.ts +1 -1
  166. package/lib/internal/usePresence.js +13 -16
  167. package/package.json +8 -8
  168. package/telemetry.yml +2 -1
  169. package/es/components/UIShell/_utils.d.ts +0 -7
  170. package/es/components/UIShell/_utils.js +0 -10
  171. package/lib/components/UIShell/_utils.d.ts +0 -7
  172. package/lib/components/UIShell/_utils.js +0 -12
package/es/index.js CHANGED
@@ -9,24 +9,24 @@
9
9
  import './feature-flags.js';
10
10
  export { default as Accordion } from './components/Accordion/Accordion.js';
11
11
  export { default as AccordionItem } from './components/Accordion/AccordionItem.js';
12
- export { default as AccordionSkeleton } from './components/Accordion/Accordion.Skeleton.js';
12
+ export { AccordionSkeleton } from './components/Accordion/Accordion.Skeleton.js';
13
13
  export { default as AspectRatio } from './components/AspectRatio/AspectRatio.js';
14
14
  export { default as Breadcrumb } from './components/Breadcrumb/Breadcrumb.js';
15
15
  export { default as BreadcrumbItem } from './components/Breadcrumb/BreadcrumbItem.js';
16
- export { default as BreadcrumbSkeleton } from './components/Breadcrumb/Breadcrumb.Skeleton.js';
16
+ export { BreadcrumbSkeleton } from './components/Breadcrumb/Breadcrumb.Skeleton.js';
17
17
  export { default as Button, ButtonKinds, ButtonSizes, ButtonTooltipAlignments, ButtonTooltipPositions } from './components/Button/Button.js';
18
- export { default as ButtonSkeleton } from './components/Button/Button.Skeleton.js';
18
+ export { ButtonSkeleton } from './components/Button/Button.Skeleton.js';
19
19
  export { default as ButtonSet } from './components/ButtonSet/ButtonSet.js';
20
20
  export { default as Checkbox } from './components/Checkbox/Checkbox.js';
21
- export { default as CheckboxSkeleton } from './components/Checkbox/Checkbox.Skeleton.js';
21
+ export { CheckboxSkeleton } from './components/Checkbox/Checkbox.Skeleton.js';
22
22
  export { default as CheckboxGroup } from './components/CheckboxGroup/CheckboxGroup.js';
23
23
  export { ClassPrefix } from './components/ClassPrefix/index.js';
24
24
  export { default as CodeSnippet } from './components/CodeSnippet/CodeSnippet.js';
25
- export { default as CodeSnippetSkeleton } from './components/CodeSnippet/CodeSnippet.Skeleton.js';
25
+ export { CodeSnippetSkeleton } from './components/CodeSnippet/CodeSnippet.Skeleton.js';
26
26
  export { default as ComboBox } from './components/ComboBox/ComboBox.js';
27
27
  export { ComboButton } from './components/ComboButton/index.js';
28
28
  export { default as ComposedModal, ModalBody } from './components/ComposedModal/ComposedModal.js';
29
- export { ComposedModalPresence } from './components/ComposedModal/ComposedModalPresence.js';
29
+ export { ComposedModalPresence, withComposedModalPresence } from './components/ComposedModal/ComposedModalPresence.js';
30
30
  export { ModalHeader } from './components/ComposedModal/ModalHeader.js';
31
31
  export { ModalFooter } from './components/ComposedModal/ModalFooter.js';
32
32
  import './components/ContainedList/index.js';
@@ -60,17 +60,17 @@ export { default as TableToolbarSearch } from './components/DataTable/TableToolb
60
60
  export { default as TableToolbarMenu } from './components/DataTable/TableToolbarMenu.js';
61
61
  export { default as DataTableSkeleton } from './components/DataTableSkeleton/DataTableSkeleton.js';
62
62
  export { default as DatePicker } from './components/DatePicker/DatePicker.js';
63
- export { default as DatePickerSkeleton } from './components/DatePicker/DatePicker.Skeleton.js';
63
+ export { DatePickerSkeleton } from './components/DatePicker/DatePicker.Skeleton.js';
64
64
  export { default as DatePickerInput } from './components/DatePickerInput/DatePickerInput.js';
65
65
  export { default as Dropdown } from './components/Dropdown/Dropdown.js';
66
- export { default as DropdownSkeleton } from './components/Dropdown/Dropdown.Skeleton.js';
66
+ export { DropdownSkeleton } from './components/Dropdown/Dropdown.Skeleton.js';
67
67
  export { default as ErrorBoundary } from './components/ErrorBoundary/ErrorBoundary.js';
68
68
  export { ErrorBoundaryContext } from './components/ErrorBoundary/ErrorBoundaryContext.js';
69
69
  export { default as ExpandableSearch } from './components/ExpandableSearch/ExpandableSearch.js';
70
70
  export { FeatureFlags, FeatureFlags as preview_FeatureFlags, useFeatureFlag as preview_useFeatureFlag, useFeatureFlags as preview_useFeatureFlags, FeatureFlags as unstable_FeatureFlags, useFeatureFlag as unstable_useFeatureFlag, useFeatureFlags as unstable_useFeatureFlags, useFeatureFlag, useFeatureFlags } from './components/FeatureFlags/index.js';
71
71
  export { default as FileUploader } from './components/FileUploader/FileUploader.js';
72
72
  export { default as Filename } from './components/FileUploader/Filename.js';
73
- export { default as FileUploaderSkeleton } from './components/FileUploader/FileUploader.Skeleton.js';
73
+ export { FileUploaderSkeleton } from './components/FileUploader/FileUploader.Skeleton.js';
74
74
  export { default as FileUploaderButton } from './components/FileUploader/FileUploaderButton.js';
75
75
  export { default as FileUploaderDropContainer } from './components/FileUploader/FileUploaderDropContainer.js';
76
76
  export { default as FileUploaderItem } from './components/FileUploader/FileUploaderItem.js';
@@ -86,7 +86,7 @@ export { default as Row } from './components/Grid/Row.js';
86
86
  export { default as Column } from './components/Grid/Column.js';
87
87
  export { ColumnHang } from './components/Grid/ColumnHang.js';
88
88
  export { GridSettings } from './components/Grid/GridContext.js';
89
- export { default as IconSkeleton } from './components/Icon/Icon.Skeleton.js';
89
+ export { IconSkeleton } from './components/Icon/Icon.Skeleton.js';
90
90
  export { IdPrefix } from './components/IdPrefix/index.js';
91
91
  export { default as InlineLoading } from './components/InlineLoading/InlineLoading.js';
92
92
  export { default as Link } from './components/Link/Link.js';
@@ -96,7 +96,7 @@ export { Menu } from './components/Menu/Menu.js';
96
96
  export { MenuItem, MenuItemDivider, MenuItemGroup, MenuItemRadioGroup, MenuItemSelectable } from './components/Menu/MenuItem.js';
97
97
  export { MenuButton } from './components/MenuButton/index.js';
98
98
  export { default as Modal } from './components/Modal/Modal.js';
99
- export { ModalPresence } from './components/Modal/ModalPresence.js';
99
+ export { ModalPresence, withModalPresence } from './components/Modal/ModalPresence.js';
100
100
  export { default as ModalWrapper } from './components/ModalWrapper/ModalWrapper.js';
101
101
  export { FilterableMultiSelect } from './components/MultiSelect/FilterableMultiSelect.js';
102
102
  export { MultiSelect } from './components/MultiSelect/MultiSelect.js';
@@ -104,30 +104,30 @@ export { ActionableNotification, Callout, InlineNotification, NotificationAction
104
104
  export { default as NumberInputSkeleton } from './components/NumberInput/NumberInput.Skeleton.js';
105
105
  export { NumberInput, validateNumberSeparators } from './components/NumberInput/NumberInput.js';
106
106
  export { default as OrderedList } from './components/OrderedList/OrderedList.js';
107
- export { default as OverflowMenu } from './components/OverflowMenu/index.js';
107
+ export { OverflowMenu } from './components/OverflowMenu/index.js';
108
108
  export { default as OverflowMenuItem } from './components/OverflowMenuItem/OverflowMenuItem.js';
109
- import * as index from './components/PageHeader/index.js';
110
- export { index as preview__PageHeader };
111
- export { index as unstable__PageHeader };
112
- import * as index$1 from './components/Dialog/index.js';
113
- export { index$1 as preview__Dialog };
109
+ import * as index$1 from './components/PageHeader/index.js';
110
+ export { index$1 as preview__PageHeader };
111
+ export { index$1 as unstable__PageHeader };
112
+ import * as index from './components/Dialog/index.js';
113
+ export { index as preview__Dialog };
114
114
  export { default as Pagination } from './components/Pagination/Pagination.js';
115
- export { default as PaginationSkeleton } from './components/Pagination/Pagination.Skeleton.js';
115
+ export { PaginationSkeleton } from './components/Pagination/Pagination.Skeleton.js';
116
116
  export { default as PaginationNav } from './components/PaginationNav/PaginationNav.js';
117
117
  export { default as ControlledPasswordInput } from './components/TextInput/ControlledPasswordInput.js';
118
118
  export { default as PasswordInput } from './components/TextInput/PasswordInput.js';
119
119
  export { default as PrimaryButton } from './components/PrimaryButton/PrimaryButton.js';
120
- export { default as ProgressIndicatorSkeleton } from './components/ProgressIndicator/ProgressIndicator.Skeleton.js';
120
+ export { ProgressIndicatorSkeleton } from './components/ProgressIndicator/ProgressIndicator.Skeleton.js';
121
121
  export { ProgressIndicator, ProgressStep } from './components/ProgressIndicator/ProgressIndicator.js';
122
122
  export { default as RadioButton } from './components/RadioButton/RadioButton.js';
123
- export { default as RadioButtonSkeleton } from './components/RadioButton/RadioButton.Skeleton.js';
123
+ export { RadioButtonSkeleton } from './components/RadioButton/RadioButton.Skeleton.js';
124
124
  export { default as RadioButtonGroup } from './components/RadioButtonGroup/RadioButtonGroup.js';
125
125
  export { default as RadioTile } from './components/RadioTile/RadioTile.js';
126
126
  export { default as Search } from './components/Search/Search.js';
127
- export { default as SearchSkeleton } from './components/Search/Search.Skeleton.js';
127
+ export { SearchSkeleton } from './components/Search/Search.Skeleton.js';
128
128
  export { default as SecondaryButton } from './components/SecondaryButton/SecondaryButton.js';
129
129
  export { default as Select } from './components/Select/Select.js';
130
- export { default as SelectSkeleton } from './components/Select/Select.Skeleton.js';
130
+ export { SelectSkeleton } from './components/Select/Select.Skeleton.js';
131
131
  export { default as SelectItem } from './components/SelectItem/SelectItem.js';
132
132
  export { default as SelectItemGroup } from './components/SelectItemGroup/SelectItemGroup.js';
133
133
  export { default as SkeletonIcon } from './components/SkeletonIcon/SkeletonIcon.js';
@@ -144,22 +144,22 @@ export { default as Switch } from './components/Switch/Switch.js';
144
144
  export { default as IconSwitch } from './components/Switch/IconSwitch.js';
145
145
  export { IconTab, Tab, TabList, TabListVertical, TabPanel, TabPanels, Tabs, TabsVertical } from './components/Tabs/Tabs.js';
146
146
  export { default as TabContent } from './components/TabContent/TabContent.js';
147
- export { default as TabsSkeleton } from './components/Tabs/Tabs.Skeleton.js';
147
+ export { TabsSkeleton } from './components/Tabs/Tabs.Skeleton.js';
148
148
  export { default as Tag } from './components/Tag/Tag.js';
149
149
  export { default as DismissibleTag } from './components/Tag/DismissibleTag.js';
150
150
  export { default as OperationalTag } from './components/Tag/OperationalTag.js';
151
151
  export { default as SelectableTag } from './components/Tag/SelectableTag.js';
152
- export { default as TagSkeleton } from './components/Tag/Tag.Skeleton.js';
152
+ export { TagSkeleton } from './components/Tag/Tag.Skeleton.js';
153
153
  export { default as TextArea } from './components/TextArea/TextArea.js';
154
- export { default as TextAreaSkeleton } from './components/TextArea/TextArea.Skeleton.js';
154
+ export { TextAreaSkeleton } from './components/TextArea/TextArea.Skeleton.js';
155
155
  export { default as TextInput } from './components/TextInput/TextInput.js';
156
- export { default as TextInputSkeleton } from './components/TextInput/TextInput.Skeleton.js';
156
+ export { TextInputSkeleton } from './components/TextInput/TextInput.Skeleton.js';
157
157
  export { ClickableTile, ExpandableTile, SelectableTile, Tile, TileAboveTheFoldContent, TileBelowTheFoldContent } from './components/Tile/Tile.js';
158
158
  export { TileGroup } from './components/TileGroup/TileGroup.js';
159
159
  export { default as TimePicker } from './components/TimePicker/TimePicker.js';
160
160
  export { default as TimePickerSelect } from './components/TimePickerSelect/TimePickerSelect.js';
161
161
  export { Toggle } from './components/Toggle/Toggle.js';
162
- export { default as ToggleSkeleton } from './components/Toggle/Toggle.Skeleton.js';
162
+ export { ToggleSkeleton } from './components/Toggle/Toggle.Skeleton.js';
163
163
  export { ToggleSmallSkeleton } from './components/ToggleSmall/ToggleSmall.Skeleton.js';
164
164
  export { Toggletip, ToggletipActions, ToggletipButton, ToggletipContent, ToggletipLabel } from './components/Toggletip/index.js';
165
165
  export { default as TreeNode } from './components/TreeView/TreeNode.js';
@@ -190,7 +190,7 @@ export { default as SideNavItem } from './components/UIShell/SideNavItem.js';
190
190
  export { default as SideNavItems } from './components/UIShell/SideNavItems.js';
191
191
  export { default as SideNavLink } from './components/UIShell/SideNavLink.js';
192
192
  export { default as SideNavLinkText } from './components/UIShell/SideNavLinkText.js';
193
- export { default as SideNavMenu } from './components/UIShell/SideNavMenu.js';
193
+ export { SideNavMenu } from './components/UIShell/SideNavMenu.js';
194
194
  export { default as SideNavMenuItem } from './components/UIShell/SideNavMenuItem.js';
195
195
  export { default as SideNavSwitcher } from './components/UIShell/SideNavSwitcher.js';
196
196
  export { default as UnorderedList } from './components/UnorderedList/UnorderedList.js';
@@ -242,7 +242,7 @@ import 'react';
242
242
  export { GlobalTheme, Theme, ThemeContext, usePrefersDarkScheme, useTheme } from './components/Theme/index.js';
243
243
  export { PrefixContext, usePrefix } from './internal/usePrefix.js';
244
244
  export { useIdPrefix } from './internal/useIdPrefix.js';
245
+ export { default as ContainedList } from './components/ContainedList/ContainedList.js';
246
+ export { default as ContainedListItem } from './components/ContainedList/ContainedListItem/ContainedListItem.js';
245
247
  export { default as preview_PageSelector, default as unstable_PageSelector } from './components/Pagination/experimental/PageSelector.js';
246
248
  export { default as preview_Pagination, default as unstable_Pagination } from './components/Pagination/experimental/Pagination.js';
247
- export { default as ContainedListItem } from './components/ContainedList/ContainedListItem/ContainedListItem.js';
248
- export { default as ContainedList } from './components/ContainedList/ContainedList.js';
@@ -8,38 +8,31 @@
8
8
  import { useEffect } from 'react';
9
9
 
10
10
  const useNoInteractiveChildren = (ref, message = 'component should have no interactive child nodes') => {
11
- if (process.env.NODE_ENV !== 'production') {
12
- // This hook is intentionally called conditionally because it is
13
- // stripped from production builds. In development it runs once
14
- // to enforce accessibility constraints.
15
- //
16
- // eslint-disable-next-line react-hooks/rules-of-hooks
17
- useEffect(() => {
18
- const node = ref.current ? getInteractiveContent(ref.current) : false;
19
- if (node) {
20
- const errorMessage = `Error: ${message}.\n\nInstead found: ${node.outerHTML}`;
21
- // eslint-disable-next-line no-console -- https://github.com/carbon-design-system/carbon/issues/20452
22
- console.error(errorMessage);
23
- throw new Error(errorMessage);
24
- }
25
- // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20452
26
- }, []);
27
- }
11
+ useEffect(() => {
12
+ if (process.env.NODE_ENV === 'production') return;
13
+ const {
14
+ current
15
+ } = ref;
16
+ const node = current ? getInteractiveContent(current) : null;
17
+ if (node) {
18
+ const errorMessage = `Error: ${message}.\n\nInstead found: ${node.outerHTML}`;
19
+ // eslint-disable-next-line no-console -- https://github.com/carbon-design-system/carbon/issues/20452
20
+ console.error(errorMessage);
21
+ throw new Error(errorMessage);
22
+ }
23
+ }, [message, ref]);
28
24
  };
29
25
  const useInteractiveChildrenNeedDescription = (ref, message = `interactive child node(s) should have an \`aria-describedby\` property`) => {
30
- if (process.env.NODE_ENV !== 'production') {
31
- // This hook is intentionally called conditionally because it is
32
- // stripped from production builds. In development it runs once
33
- // to enforce accessibility constraints.
34
- //
35
- // eslint-disable-next-line react-hooks/rules-of-hooks
36
- useEffect(() => {
37
- const node = ref.current ? getInteractiveContent(ref.current) : false;
38
- if (node && !node.hasAttribute('aria-describedby')) {
39
- throw new Error(`Error: ${message}.\n\nInstead found: ${node.outerHTML}`);
40
- }
41
- });
42
- }
26
+ useEffect(() => {
27
+ if (process.env.NODE_ENV === 'production') return;
28
+ const {
29
+ current
30
+ } = ref;
31
+ const node = current ? getInteractiveContent(current) : null;
32
+ if (node && !node.hasAttribute('aria-describedby')) {
33
+ throw new Error(`Error: ${message}.\n\nInstead found: ${node.outerHTML}`);
34
+ }
35
+ }, [message, ref]);
43
36
  };
44
37
 
45
38
  /**
@@ -50,6 +43,7 @@ const useInteractiveChildrenNeedDescription = (ref, message = `interactive child
50
43
  * @returns The interactive node, or `null` if none is found.
51
44
  */
52
45
  const getInteractiveContent = node => {
46
+ // TODO: This check shouldn't be necessary. Investigate deleting it.
53
47
  if (!node || !node.childNodes) {
54
48
  return null;
55
49
  }
@@ -75,6 +69,7 @@ const getInteractiveContent = node => {
75
69
  * @returns The node with a `role`, or `null` if none is found.
76
70
  */
77
71
  const getRoleContent = node => {
72
+ // TODO: This check shouldn't be necessary. Investigate deleting it.
78
73
  if (!node || !node.childNodes) {
79
74
  return null;
80
75
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2025, 2025
2
+ * Copyright IBM Corp. 2025, 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.
@@ -18,10 +18,6 @@ type Item = {
18
18
  * @returns Object with `visibleItems` (items to display), `hiddenItems` (items that don't fit), and `itemRefHandler` (function to attach refs to items for width measurement).
19
19
  */
20
20
  declare const useOverflowItems: <T extends Item>(items: T[] | ReactNode, containerRef: RefObject<HTMLDivElement>, offsetRef?: RefObject<HTMLDivElement>, maxItems?: number, onChange?: (hiddenItems: T[]) => void) => {
21
- visibleItems: T[];
22
- hiddenItems: T[];
23
- itemRefHandler: () => void;
24
- } | {
25
21
  visibleItems: T[];
26
22
  itemRefHandler: (id: string, node: HTMLDivElement | null) => () => void;
27
23
  hiddenItems: T[];
@@ -18,17 +18,10 @@ import { usePreviousValue } from './usePreviousValue.js';
18
18
  * @param onChange - Optional callback called when hidden items change. Receives array of currently hidden items.
19
19
  * @returns Object with `visibleItems` (items to display), `hiddenItems` (items that don't fit), and `itemRefHandler` (function to attach refs to items for width measurement).
20
20
  */
21
-
22
21
  const useOverflowItems = (items, containerRef, offsetRef, maxItems, onChange) => {
23
22
  const itemsRef = useRef(null);
24
23
  const [maxWidth, setMaxWidth] = useState(0);
25
- if (!items || !Array.isArray(items)) {
26
- return {
27
- visibleItems: [],
28
- hiddenItems: [],
29
- itemRefHandler: () => {}
30
- };
31
- }
24
+ const overflowItems = useMemo(() => Array.isArray(items) ? items : [], [items]);
32
25
  const handleResize = () => {
33
26
  if (containerRef.current) {
34
27
  const offset = offsetRef?.current?.offsetWidth || 0;
@@ -36,7 +29,6 @@ const useOverflowItems = (items, containerRef, offsetRef, maxItems, onChange) =>
36
29
  setMaxWidth(newMax);
37
30
  }
38
31
  };
39
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
40
32
  useResizeObserver({
41
33
  ref: containerRef,
42
34
  onResize: handleResize
@@ -59,16 +51,13 @@ const useOverflowItems = (items, containerRef, offsetRef, maxItems, onChange) =>
59
51
  };
60
52
  };
61
53
  const getVisibleItems = () => {
62
- if (!items || Array.isArray(items) === false) {
63
- return [];
64
- }
65
54
  if (!containerRef) {
66
- return items;
55
+ return overflowItems;
67
56
  }
68
57
  const map = getMap();
69
58
  let maxReached = false;
70
59
  let accumulatedWidth = 0;
71
- const visibleItems = items.slice(0, maxItems).reduce((prev, cur) => {
60
+ const visibleItems = overflowItems.slice(0, maxItems).reduce((prev, cur) => {
72
61
  if (maxReached) {
73
62
  return prev;
74
63
  }
@@ -86,30 +75,20 @@ const useOverflowItems = (items, containerRef, offsetRef, maxItems, onChange) =>
86
75
  };
87
76
 
88
77
  // Memoize visible items calculation to avoid recalculating on every render
89
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
90
78
  const visibleItems = useMemo(() => {
91
- if (!Array.isArray(items)) {
92
- return [];
93
- }
94
79
  return getVisibleItems();
95
80
  // eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20452
96
- }, [items, maxWidth, maxItems]);
81
+ }, [overflowItems, maxWidth, maxItems]);
97
82
 
98
83
  // Memoize hidden items calculation
99
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
100
84
  const hiddenItems = useMemo(() => {
101
- if (!Array.isArray(items)) {
102
- return [];
103
- }
104
- return items.slice(visibleItems.length);
105
- }, [items, visibleItems]);
85
+ return overflowItems.slice(visibleItems.length);
86
+ }, [overflowItems, visibleItems]);
106
87
 
107
88
  // Use previous value to compare and only call onChange when needed
108
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
109
89
  const previousHiddenItems = usePreviousValue(hiddenItems);
110
90
 
111
91
  // Only call onChange if hidden items actually changed
112
- // eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
113
92
  useEffect(() => {
114
93
  }, [hiddenItems, previousHiddenItems, onChange]);
115
94
  return {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2025
2
+ * Copyright IBM Corp. 2025, 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.
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { useState, useCallback } from 'react';
8
+ import { useState } from 'react';
9
9
  import { usePrefix } from './usePrefix.js';
10
10
  import useIsomorphicEffect from './useIsomorphicEffect.js';
11
11
 
@@ -13,25 +13,22 @@ const usePresence = (ref, isOpen) => {
13
13
  const prefix = usePrefix();
14
14
  const [exitState, setExitState] = useState(isOpen ? 'idle' : 'finished');
15
15
  const isExiting = exitState === 'active';
16
+ useIsomorphicEffect(() => {
17
+ setExitState(prev => {
18
+ // element is exiting
19
+ if (!isOpen && prev === 'idle') return 'active';
16
20
 
17
- // element is exiting
18
- if (!isOpen && exitState === 'idle') {
19
- setExitState('active');
20
- }
21
-
22
- // element exit was interrupted
23
- if (isOpen && exitState !== 'idle') {
24
- setExitState('idle');
25
- }
26
- const handleAnimationEnd = useCallback(() => {
27
- setExitState('finished');
28
- }, []);
21
+ // element exit was interrupted
22
+ if (isOpen && prev !== 'idle') return 'idle';
23
+ return prev;
24
+ });
25
+ }, [isOpen]);
29
26
  useIsomorphicEffect(() => {
30
27
  if (!ref.current || !isExiting) return;
31
28
 
32
29
  // resolve for JSDOM
33
30
  if (!('getAnimations' in ref.current)) {
34
- handleAnimationEnd();
31
+ setExitState('finished');
35
32
  return;
36
33
  }
37
34
 
@@ -40,18 +37,18 @@ const usePresence = (ref, isOpen) => {
40
37
  subtree: true
41
38
  }).filter(animation => animation instanceof CSSAnimation && animation.animationName.startsWith(`${prefix}--presence`));
42
39
  if (!animations.length) {
43
- handleAnimationEnd();
40
+ setExitState('finished');
44
41
  return;
45
42
  }
46
43
  let cancelled = false;
47
44
  Promise.all(animations.map(animation => animation.finished)).finally(() => {
48
45
  if (cancelled) return;
49
- handleAnimationEnd();
46
+ setExitState('finished');
50
47
  });
51
48
  return () => {
52
49
  cancelled = true;
53
50
  };
54
- }, [ref, isExiting, prefix, handleAnimationEnd]);
51
+ }, [ref, isExiting, prefix]);
55
52
  return {
56
53
  /**
57
54
  * Indicates whether the ref object is supposed to be mounted
@@ -31,7 +31,8 @@ const ButtonSkeleton = ({
31
31
  [`${prefix}--btn--md`]: size === 'md',
32
32
  [`${prefix}--btn--lg`]: size === 'lg',
33
33
  [`${prefix}--btn--xl`]: size === 'xl',
34
- [`${prefix}--btn--2xl`]: size === '2xl'
34
+ [`${prefix}--btn--2xl`]: size === '2xl',
35
+ [`${prefix}--layout--size-${size}`]: size
35
36
  });
36
37
  const commonProps = {
37
38
  className: buttonClasses,
@@ -17,7 +17,7 @@ export declare const ButtonTooltipPositions: string[];
17
17
  export type ButtonTooltipPosition = (typeof ButtonTooltipPositions)[number];
18
18
  export interface ButtonBaseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
19
19
  /**
20
- * Specify the message read by screen readers for the danger button variant
20
+ * Specify the message read by screen readers for the danger button variants
21
21
  */
22
22
  dangerDescription?: string;
23
23
  /**
@@ -38,7 +38,7 @@ export interface ButtonBaseProps extends React.ButtonHTMLAttributes<HTMLButtonEl
38
38
  */
39
39
  isExpressive?: boolean;
40
40
  /**
41
- * Specify whether the Button is currently selected. Only applies to the Ghost variant.
41
+ * Specify whether the Button is currently selected. Only applies to the icon only Ghost variant.
42
42
  */
43
43
  isSelected?: boolean;
44
44
  /**
@@ -63,7 +63,7 @@ export interface ButtonBaseProps extends React.ButtonHTMLAttributes<HTMLButtonEl
63
63
  target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];
64
64
  /**
65
65
  * Specify the alignment of the tooltip to the icon-only button.
66
- * Can be one of: start, center, or end.
66
+ * Can be one of: `start`, `center`, or `end`.
67
67
  */
68
68
  tooltipAlignment?: ButtonTooltipAlignment;
69
69
  /**
@@ -77,7 +77,7 @@ export interface ButtonBaseProps extends React.ButtonHTMLAttributes<HTMLButtonEl
77
77
  tooltipHighContrast?: boolean;
78
78
  /**
79
79
  * Specify the direction of the tooltip for icon-only buttons.
80
- * Can be either top, right, bottom, or left.
80
+ * Can be either `top`, `right`, `bottom`, or `left`.
81
81
  */
82
82
  tooltipPosition?: ButtonTooltipPosition;
83
83
  }
@@ -131,7 +131,7 @@ Button.propTypes = {
131
131
  */
132
132
  className: PropTypes.string,
133
133
  /**
134
- * Specify the message read by screen readers for the danger button variant
134
+ * Specify the message read by screen readers for the danger button variants
135
135
  */
136
136
  dangerDescription: PropTypes.string,
137
137
  /**
@@ -161,7 +161,7 @@ Button.propTypes = {
161
161
  */
162
162
  isExpressive: PropTypes.bool,
163
163
  /**
164
- * Specify whether the Button is currently selected. Only applies to the Ghost variant.
164
+ * Specify whether the Button is currently selected. Only applies to the icon only Ghost variant.
165
165
  */
166
166
  isSelected: PropTypes.bool,
167
167
  /**
@@ -231,7 +231,7 @@ Button.propTypes = {
231
231
  target: PropTypes.string,
232
232
  /**
233
233
  * Specify the alignment of the tooltip to the icon-only button.
234
- * Can be one of: start, center, or end.
234
+ * Can be one of: `start`, `center`, or `end`.
235
235
  */
236
236
  tooltipAlignment: PropTypes.oneOf(['start', 'center', 'end']),
237
237
  /**
@@ -245,7 +245,7 @@ Button.propTypes = {
245
245
  tooltipHighContrast: PropTypes.bool,
246
246
  /**
247
247
  * Specify the direction of the tooltip for icon-only buttons.
248
- * Can be either top, right, bottom, or left.
248
+ * Can be either `top`, `right`, `bottom`, or `left`.
249
249
  */
250
250
  tooltipPosition: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
251
251
  /**
@@ -20,4 +20,4 @@ exports.ButtonSizes = Button.ButtonSizes;
20
20
  exports.ButtonTooltipAlignments = Button.ButtonTooltipAlignments;
21
21
  exports.ButtonTooltipPositions = Button.ButtonTooltipPositions;
22
22
  exports.default = Button.default;
23
- exports.ButtonSkeleton = Button_Skeleton.default;
23
+ exports.ButtonSkeleton = Button_Skeleton.ButtonSkeleton;
@@ -66,7 +66,7 @@ const ButtonSet = /*#__PURE__*/React.forwardRef((props, ref) => {
66
66
  });
67
67
  resizeObserver.observe(fluidInnerRef.current);
68
68
  return () => resizeObserver.disconnect();
69
- }, [isStacked, stacked]);
69
+ }, [fluid, stacked]);
70
70
  React.useEffect(() => {
71
71
  const newSortedChildren = React.Children.toArray(children);
72
72
  newSortedChildren.sort((a, b) => {
@@ -16,4 +16,4 @@ var Checkbox_Skeleton = require('./Checkbox.Skeleton.js');
16
16
 
17
17
  exports.Checkbox = Checkbox.default;
18
18
  exports.default = Checkbox.default;
19
- exports.CheckboxSkeleton = Checkbox_Skeleton.default;
19
+ exports.CheckboxSkeleton = Checkbox_Skeleton.CheckboxSkeleton;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2016, 2025
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.
@@ -65,7 +65,7 @@ const CheckboxGroup = ({
65
65
  kind: 'default'
66
66
  }) : candidate;
67
67
  const clonedChildren = React.Children.map(children, child => {
68
- if (/*#__PURE__*/React.isValidElement(child) && child.type === Checkbox.default) {
68
+ if (utils.isComponentElement(child, Checkbox.default)) {
69
69
  const childProps = {
70
70
  ...(typeof invalid !== 'undefined' && typeof child.props.invalid === 'undefined' ? {
71
71
  invalid
@@ -287,8 +287,8 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
287
287
  if (isMatchingSelection) {
288
288
  return changes;
289
289
  }
290
- const nextSelectedItem = items.find(item => itemToString(item) === inputValue) ?? inputValue;
291
- const isCustomSelection = typeof nextSelectedItem === 'string' && !items.some(item => isEqual(item, nextSelectedItem));
290
+ const nextSelectedItem = inputValue === '' ? null : items.find(item => itemToString(item) === inputValue) ?? inputValue;
291
+ const isCustomSelection = typeof nextSelectedItem === 'string' && nextSelectedItem !== '' && !items.some(item => isEqual(item, nextSelectedItem));
292
292
  if (!isEqual(currentSelectedItem, nextSelectedItem) && onChange) {
293
293
  onChange({
294
294
  selectedItem: nextSelectedItem,
@@ -504,8 +504,7 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
504
504
  onHighlightedIndexChange: ({
505
505
  highlightedIndex
506
506
  }) => {
507
- // eslint-disable-next-line valid-typeof , no-constant-binary-expression -- https://github.com/carbon-design-system/carbon/issues/20452
508
- if (highlightedIndex > -1 && typeof window !== undefined) {
507
+ if (highlightedIndex > -1) {
509
508
  const itemArray = document.querySelectorAll(`li.${prefix}--list-box__menu-item[role="option"]`);
510
509
  const highlightedItem = itemArray[highlightedIndex];
511
510
  if (highlightedItem) {
@@ -261,9 +261,6 @@ const ComposedModalDialog = /*#__PURE__*/React.forwardRef(function ComposedModal
261
261
  const containerClass = cx(`${prefix}--modal-container`, size && `${prefix}--modal-container--${size}`, isFullWidth && `${prefix}--modal-container--full-width`, containerClassName);
262
262
 
263
263
  // Generate aria-label based on Modal Header label if one is not provided (L253)
264
- //
265
- // TODO: Confirm whether `ModalHeader` `label` should allow `ReactNode`. If
266
- // so, define how to derive a string for `aria-label`.
267
264
  let generatedAriaLabel;
268
265
  const childrenWithProps = React.Children.toArray(children).map(child => {
269
266
  if (utils.isComponentElement(child, ModalHeader.ModalHeader)) {
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import React, { type PropsWithChildren } from 'react';
7
+ import React, { type ComponentType, type PropsWithChildren } from 'react';
8
8
  import { type PresenceContext } from '../../internal/usePresenceContext';
9
9
  import { useComposedModalState } from './useComposedModalState';
10
10
  export interface ComposedModalPresenceProps {
@@ -31,4 +31,12 @@ export declare const ComposedModalPresenceContext: React.Context<ComposedModalPr
31
31
  * Handles occurrences where only a single composed modal must consume a context.
32
32
  */
33
33
  export declare const useExclusiveComposedModalPresenceContext: (id: string) => ComposedModalPresenceContextProps | undefined;
34
+ type WithComposedModalPresenceProps = Pick<ComposedModalPresenceProps, 'open'>;
35
+ /**
36
+ * Higher-order function that wraps a component with ComposedModalPresence
37
+ */
38
+ export declare const withComposedModalPresence: <TProps extends object>(Component: ComponentType<TProps>) => {
39
+ ({ open, ...componentProps }: TProps & WithComposedModalPresenceProps): import("react/jsx-runtime").JSX.Element;
40
+ displayName: string;
41
+ };
34
42
  export {};
@@ -40,7 +40,21 @@ const useExclusiveComposedModalPresenceContext = id => {
40
40
  const ctx = React.useContext(ComposedModalPresenceContext);
41
41
  return ctx?.isPresenceExclusive(id) ? ctx : undefined;
42
42
  };
43
+ /**
44
+ * Higher-order function that wraps a component with ComposedModalPresence
45
+ */
46
+ const withComposedModalPresence = Component => {
47
+ const WithComposedModalPresence = ({
48
+ open,
49
+ ...componentProps
50
+ }) => /*#__PURE__*/React.createElement(ComposedModalPresence, {
51
+ open: open
52
+ }, /*#__PURE__*/React.createElement(Component, componentProps));
53
+ WithComposedModalPresence.displayName = `withComposedModalPresence(${Component.displayName || Component.name || 'Component'})`;
54
+ return WithComposedModalPresence;
55
+ };
43
56
 
44
57
  exports.ComposedModalPresence = ComposedModalPresence;
45
58
  exports.ComposedModalPresenceContext = ComposedModalPresenceContext;
46
59
  exports.useExclusiveComposedModalPresenceContext = useExclusiveComposedModalPresenceContext;
60
+ exports.withComposedModalPresence = withComposedModalPresence;
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import ComposedModal from './ComposedModal';
8
8
  export { default as ComposedModal, type ComposedModalProps, ModalBody, type ModalBodyProps, } from './ComposedModal';
9
- export { ComposedModalPresence, type ComposedModalPresenceProps, } from './ComposedModalPresence';
9
+ export { ComposedModalPresence, withComposedModalPresence, type ComposedModalPresenceProps, } from './ComposedModalPresence';
10
10
  export { ModalHeader, type ModalHeaderProps } from './ModalHeader';
11
11
  export { ModalFooter, type ModalFooterProps } from './ModalFooter';
12
12
  export default ComposedModal;