@carbon/react 1.91.0-rc.0 → 1.92.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 (173) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +969 -934
  2. package/es/components/Accordion/AccordionItem.d.ts +12 -1
  3. package/es/components/Accordion/AccordionItem.js +9 -2
  4. package/es/components/Breadcrumb/Breadcrumb.Skeleton.d.ts +27 -2
  5. package/es/components/Breadcrumb/Breadcrumb.Skeleton.js +27 -4
  6. package/es/components/Breadcrumb/Breadcrumb.js +2 -1
  7. package/es/components/Breadcrumb/BreadcrumbItem.js +1 -1
  8. package/es/components/Checkbox/Checkbox.js +2 -2
  9. package/es/components/ComboBox/ComboBox.js +39 -23
  10. package/es/components/ComboButton/index.js +1 -1
  11. package/es/components/ComposedModal/ComposedModal.js +66 -17
  12. package/es/components/ComposedModal/ComposedModalPresence.d.ts +34 -0
  13. package/es/components/ComposedModal/ComposedModalPresence.js +42 -0
  14. package/es/components/ComposedModal/index.d.ts +1 -0
  15. package/es/components/ComposedModal/useComposedModalState.d.ts +7 -0
  16. package/es/components/ComposedModal/useComposedModalState.js +24 -0
  17. package/es/components/ContentSwitcher/ContentSwitcher.js +2 -2
  18. package/es/components/DataTable/TableBatchActions.js +2 -2
  19. package/es/components/DatePickerInput/DatePickerInput.js +2 -2
  20. package/es/components/Dialog/Dialog.js +2 -2
  21. package/es/components/Dropdown/Dropdown.js +5 -5
  22. package/es/components/ExpandableSearch/ExpandableSearch.d.ts +1 -1
  23. package/es/components/ExpandableSearch/ExpandableSearch.js +1 -1
  24. package/es/components/FeatureFlags/index.d.ts +2 -1
  25. package/es/components/FeatureFlags/index.js +3 -1
  26. package/es/components/FileUploader/FileUploader.js +2 -2
  27. package/es/components/FileUploader/FileUploaderItem.js +2 -2
  28. package/es/components/FluidTextInput/FluidPasswordInput.js +24 -5
  29. package/es/components/FluidTextInput/index.js +1 -1
  30. package/es/components/FormLabel/FormLabel.js +1 -1
  31. package/es/components/ListBox/ListBox.d.ts +1 -1
  32. package/es/components/ListBox/ListBox.js +1 -2
  33. package/es/components/ListItem/ListItem.js +1 -1
  34. package/es/components/Menu/MenuItem.js +2 -2
  35. package/es/components/MenuButton/index.d.ts +1 -1
  36. package/es/components/MenuButton/index.js +1 -1
  37. package/es/components/Modal/Modal.js +60 -10
  38. package/es/components/Modal/ModalPresence.d.ts +32 -0
  39. package/es/components/Modal/ModalPresence.js +37 -0
  40. package/es/components/Modal/index.d.ts +2 -1
  41. package/es/components/Modal/index.js +1 -0
  42. package/es/components/MultiSelect/FilterableMultiSelect.js +3 -3
  43. package/es/components/MultiSelect/MultiSelect.js +6 -5
  44. package/es/components/Notification/Notification.js +2 -2
  45. package/es/components/NumberInput/NumberInput.d.ts +21 -11
  46. package/es/components/NumberInput/NumberInput.js +40 -26
  47. package/es/components/OverflowMenu/OverflowMenu.js +2 -3
  48. package/es/components/OverflowMenu/next/index.js +1 -1
  49. package/es/components/OverflowMenuItem/OverflowMenuItem.js +1 -1
  50. package/es/components/PageHeader/PageHeader.js +2 -2
  51. package/es/components/PaginationNav/PaginationNav.d.ts +20 -0
  52. package/es/components/PaginationNav/PaginationNav.js +34 -5
  53. package/es/components/ProgressIndicator/ProgressIndicator.js +1 -1
  54. package/es/components/RadioButton/RadioButton.js +3 -3
  55. package/es/components/RadioButtonGroup/RadioButtonGroup.js +2 -2
  56. package/es/components/RadioTile/RadioTile.js +2 -2
  57. package/es/components/Select/Select.js +2 -2
  58. package/es/components/Slider/Slider.js +2 -2
  59. package/es/components/StructuredList/StructuredList.js +2 -2
  60. package/es/components/Tabs/Tabs.js +2 -2
  61. package/es/components/Tag/DismissibleTag.js +3 -3
  62. package/es/components/Tag/OperationalTag.js +3 -3
  63. package/es/components/Tag/SelectableTag.js +3 -3
  64. package/es/components/Tag/Tag.js +2 -2
  65. package/es/components/Text/Text.d.ts +1 -1
  66. package/es/components/Text/Text.js +0 -1
  67. package/es/components/Text/TextDirection.d.ts +1 -1
  68. package/es/components/Text/TextDirection.js +0 -1
  69. package/es/components/Text/createTextComponent.d.ts +2 -8
  70. package/es/components/Text/createTextComponent.js +2 -2
  71. package/es/components/Text/index.d.ts +0 -8
  72. package/es/components/TextArea/TextArea.js +2 -2
  73. package/es/components/TextInput/TextInput.js +2 -2
  74. package/es/components/Tile/Tile.js +2 -2
  75. package/es/components/Toggle/Toggle.js +2 -2
  76. package/es/components/UIShell/Switcher.js +0 -26
  77. package/es/index.d.ts +27 -23
  78. package/es/index.js +44 -41
  79. package/es/internal/useNormalizedInputProps.js +2 -2
  80. package/es/internal/usePresence.d.ts +17 -0
  81. package/es/internal/usePresence.js +66 -0
  82. package/es/internal/usePresenceContext.d.ts +25 -0
  83. package/es/internal/usePresenceContext.js +46 -0
  84. package/es/tools/mergeRefs.d.ts +5 -5
  85. package/es/tools/mergeRefs.js +16 -12
  86. package/lib/components/Accordion/AccordionItem.d.ts +12 -1
  87. package/lib/components/Accordion/AccordionItem.js +9 -2
  88. package/lib/components/Breadcrumb/Breadcrumb.Skeleton.d.ts +27 -2
  89. package/lib/components/Breadcrumb/Breadcrumb.Skeleton.js +27 -4
  90. package/lib/components/Breadcrumb/Breadcrumb.js +2 -1
  91. package/lib/components/Breadcrumb/BreadcrumbItem.js +1 -1
  92. package/lib/components/Checkbox/Checkbox.js +2 -2
  93. package/lib/components/ComboBox/ComboBox.js +39 -23
  94. package/lib/components/ComboButton/index.js +1 -1
  95. package/lib/components/ComposedModal/ComposedModal.js +65 -16
  96. package/lib/components/ComposedModal/ComposedModalPresence.d.ts +34 -0
  97. package/lib/components/ComposedModal/ComposedModalPresence.js +46 -0
  98. package/lib/components/ComposedModal/index.d.ts +1 -0
  99. package/lib/components/ComposedModal/useComposedModalState.d.ts +7 -0
  100. package/lib/components/ComposedModal/useComposedModalState.js +26 -0
  101. package/lib/components/ContentSwitcher/ContentSwitcher.js +1 -1
  102. package/lib/components/DataTable/TableBatchActions.js +2 -2
  103. package/lib/components/DatePickerInput/DatePickerInput.js +2 -2
  104. package/lib/components/Dialog/Dialog.js +2 -2
  105. package/lib/components/Dropdown/Dropdown.js +3 -3
  106. package/lib/components/ExpandableSearch/ExpandableSearch.d.ts +1 -1
  107. package/lib/components/ExpandableSearch/ExpandableSearch.js +1 -1
  108. package/lib/components/FeatureFlags/index.d.ts +2 -1
  109. package/lib/components/FeatureFlags/index.js +3 -1
  110. package/lib/components/FileUploader/FileUploader.js +2 -2
  111. package/lib/components/FileUploader/FileUploaderItem.js +2 -2
  112. package/lib/components/FluidTextInput/FluidPasswordInput.js +26 -5
  113. package/lib/components/FluidTextInput/index.js +2 -1
  114. package/lib/components/FormLabel/FormLabel.js +1 -1
  115. package/lib/components/ListBox/ListBox.d.ts +1 -1
  116. package/lib/components/ListBox/ListBox.js +1 -2
  117. package/lib/components/ListItem/ListItem.js +1 -1
  118. package/lib/components/Menu/MenuItem.js +2 -2
  119. package/lib/components/MenuButton/index.d.ts +1 -1
  120. package/lib/components/MenuButton/index.js +1 -1
  121. package/lib/components/Modal/Modal.js +59 -9
  122. package/lib/components/Modal/ModalPresence.d.ts +32 -0
  123. package/lib/components/Modal/ModalPresence.js +41 -0
  124. package/lib/components/Modal/index.d.ts +2 -1
  125. package/lib/components/Modal/index.js +1 -0
  126. package/lib/components/MultiSelect/FilterableMultiSelect.js +3 -3
  127. package/lib/components/MultiSelect/MultiSelect.js +4 -3
  128. package/lib/components/Notification/Notification.js +2 -2
  129. package/lib/components/NumberInput/NumberInput.d.ts +21 -11
  130. package/lib/components/NumberInput/NumberInput.js +40 -26
  131. package/lib/components/OverflowMenu/OverflowMenu.js +2 -3
  132. package/lib/components/OverflowMenu/next/index.js +1 -1
  133. package/lib/components/OverflowMenuItem/OverflowMenuItem.js +1 -1
  134. package/lib/components/PageHeader/PageHeader.js +2 -2
  135. package/lib/components/PaginationNav/PaginationNav.d.ts +20 -0
  136. package/lib/components/PaginationNav/PaginationNav.js +34 -5
  137. package/lib/components/ProgressIndicator/ProgressIndicator.js +1 -1
  138. package/lib/components/RadioButton/RadioButton.js +3 -3
  139. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +3 -3
  140. package/lib/components/RadioTile/RadioTile.js +2 -2
  141. package/lib/components/Select/Select.js +2 -2
  142. package/lib/components/Slider/Slider.js +2 -2
  143. package/lib/components/StructuredList/StructuredList.js +2 -2
  144. package/lib/components/Tabs/Tabs.js +2 -2
  145. package/lib/components/Tag/DismissibleTag.js +3 -3
  146. package/lib/components/Tag/OperationalTag.js +3 -3
  147. package/lib/components/Tag/SelectableTag.js +3 -3
  148. package/lib/components/Tag/Tag.js +2 -2
  149. package/lib/components/Text/Text.d.ts +1 -1
  150. package/lib/components/Text/Text.js +0 -1
  151. package/lib/components/Text/TextDirection.d.ts +1 -1
  152. package/lib/components/Text/TextDirection.js +0 -1
  153. package/lib/components/Text/createTextComponent.d.ts +2 -8
  154. package/lib/components/Text/createTextComponent.js +2 -2
  155. package/lib/components/Text/index.d.ts +0 -8
  156. package/lib/components/TextArea/TextArea.js +2 -2
  157. package/lib/components/TextInput/TextInput.js +2 -2
  158. package/lib/components/Tile/Tile.js +2 -2
  159. package/lib/components/Toggle/Toggle.js +2 -2
  160. package/lib/components/UIShell/Switcher.js +0 -26
  161. package/lib/index.d.ts +27 -23
  162. package/lib/index.js +55 -6
  163. package/lib/internal/useNormalizedInputProps.js +2 -2
  164. package/lib/internal/usePresence.d.ts +17 -0
  165. package/lib/internal/usePresence.js +68 -0
  166. package/lib/internal/usePresenceContext.d.ts +25 -0
  167. package/lib/internal/usePresenceContext.js +48 -0
  168. package/lib/tools/mergeRefs.d.ts +5 -5
  169. package/lib/tools/mergeRefs.js +16 -14
  170. package/package.json +8 -8
  171. package/telemetry.yml +5 -2
  172. package/es/components/Text/index.js +0 -16
  173. package/lib/components/Text/index.js +0 -20
@@ -7,11 +7,3 @@
7
7
  export * from './Text';
8
8
  export * from './TextDirection';
9
9
  export * from './TextDirectionContext';
10
- export declare const Label: {
11
- (props: import("./Text").TextProps<import("react").ElementType>): import("react/jsx-runtime").JSX.Element;
12
- displayName: string;
13
- };
14
- export declare const Legend: {
15
- (props: import("./Text").TextProps<import("react").ElementType>): import("react/jsx-runtime").JSX.Element;
16
- displayName: string;
17
- };
@@ -23,10 +23,10 @@ var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
23
23
  var useMergedRefs = require('../../internal/useMergedRefs.js');
24
24
  var useId = require('../../internal/useId.js');
25
25
  var noopFn = require('../../internal/noopFn.js');
26
- require('../Text/index.js');
26
+ var Text = require('../Text/Text.js');
27
+ require('../Text/TextDirection.js');
27
28
  var index = require('../AILabel/index.js');
28
29
  var utils = require('../../internal/utils.js');
29
- var Text = require('../Text/Text.js');
30
30
 
31
31
  const frFn = React.forwardRef;
32
32
  const TextArea = frFn((props, forwardRef) => {
@@ -20,10 +20,10 @@ var FormContext = require('../FluidForm/FormContext.js');
20
20
  var useMergedRefs = require('../../internal/useMergedRefs.js');
21
21
  var usePrefix = require('../../internal/usePrefix.js');
22
22
  var getAnnouncement = require('../../internal/getAnnouncement.js');
23
- require('../Text/index.js');
23
+ var Text = require('../Text/Text.js');
24
+ require('../Text/TextDirection.js');
24
25
  var index = require('../AILabel/index.js');
25
26
  var utils = require('../../internal/utils.js');
26
- var Text = require('../Text/Text.js');
27
27
 
28
28
  const TextInput = /*#__PURE__*/React.forwardRef(({
29
29
  className,
@@ -23,10 +23,10 @@ var useNoInteractiveChildren = require('../../internal/useNoInteractiveChildren.
23
23
  var useMergedRefs = require('../../internal/useMergedRefs.js');
24
24
  var index = require('../FeatureFlags/index.js');
25
25
  var useId = require('../../internal/useId.js');
26
- require('../Text/index.js');
26
+ var Text = require('../Text/Text.js');
27
+ require('../Text/TextDirection.js');
27
28
  var index$1 = require('../AILabel/index.js');
28
29
  var utils = require('../../internal/utils.js');
29
- var Text = require('../Text/Text.js');
30
30
 
31
31
  var _CheckboxCheckedFille, _Checkbox, _ChevronDown, _ChevronDown2;
32
32
  const Tile = /*#__PURE__*/React.forwardRef(({
@@ -15,8 +15,8 @@ var PropTypes = require('prop-types');
15
15
  var cx = require('classnames');
16
16
  var useControllableState = require('../../internal/useControllableState.js');
17
17
  var usePrefix = require('../../internal/usePrefix.js');
18
- require('../Text/index.js');
19
18
  var Text = require('../Text/Text.js');
19
+ require('../Text/TextDirection.js');
20
20
 
21
21
  var _path;
22
22
  function Toggle({
@@ -105,7 +105,7 @@ function Toggle({
105
105
  className: appearanceClasses
106
106
  }, /*#__PURE__*/React.createElement("div", {
107
107
  className: switchClasses
108
- }, isSm && /*#__PURE__*/React.createElement("svg", {
108
+ }, isSm && !readOnly && /*#__PURE__*/React.createElement("svg", {
109
109
  "aria-hidden": "true",
110
110
  focusable: "false",
111
111
  className: `${prefix}--toggle__check`,
@@ -16,34 +16,8 @@ var usePrefix = require('../../internal/usePrefix.js');
16
16
  var useMergedRefs = require('../../internal/useMergedRefs.js');
17
17
  var PropTypes = require('prop-types');
18
18
  var AriaPropTypes = require('../../prop-types/AriaPropTypes.js');
19
- require('./Content.js');
20
- require('./Header.js');
21
- require('./HeaderContainer.js');
22
- require('./HeaderGlobalAction.js');
23
- require('./HeaderGlobalBar.js');
24
- require('./HeaderMenu.js');
25
- require('./HeaderMenuButton.js');
26
- require('./HeaderMenuItem.js');
27
- require('./HeaderName.js');
28
- require('./HeaderNavigation.js');
29
- require('./HeaderPanel.js');
30
- require('./HeaderSideNavItems.js');
31
19
  var SwitcherItem = require('./SwitcherItem.js');
32
20
  var SwitcherDivider = require('./SwitcherDivider.js');
33
- require('./SkipToContent.js');
34
- require('./SideNav.js');
35
- require('./SideNavDetails.js');
36
- require('./SideNavDivider.js');
37
- require('./SideNavFooter.js');
38
- require('./SideNavHeader.js');
39
- require('./SideNavIcon.js');
40
- require('./SideNavItem.js');
41
- require('./SideNavItems.js');
42
- require('./SideNavLink.js');
43
- require('./SideNavLinkText.js');
44
- require('./SideNavMenu.js');
45
- require('./SideNavMenuItem.js');
46
- require('./SideNavSwitcher.js');
47
21
 
48
22
  const Switcher = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
49
23
  const switcherRef = React.useRef(null);
package/lib/index.d.ts CHANGED
@@ -33,7 +33,10 @@ export * from './components/ErrorBoundary';
33
33
  export * from './components/ExpandableSearch';
34
34
  export { FeatureFlags, useFeatureFlag, useFeatureFlags, FeatureFlags as unstable_FeatureFlags, // this export can be removed in v12
35
35
  useFeatureFlag as unstable_useFeatureFlag, // this export can be removed in v12
36
- useFeatureFlags as unstable_useFeatureFlags, } from './components/FeatureFlags';
36
+ useFeatureFlags as unstable_useFeatureFlags, // this export can be removed in v12
37
+ FeatureFlags as preview_FeatureFlags, // this export can be removed in v12
38
+ useFeatureFlag as preview_useFeatureFlag, // this export can be removed in v12
39
+ useFeatureFlags as preview_useFeatureFlags, } from './components/FeatureFlags';
37
40
  export * from './components/FileUploader';
38
41
  export * from './components/FluidForm';
39
42
  export * from './components/Form';
@@ -58,6 +61,7 @@ export * from './components/OrderedList';
58
61
  export * from './components/OverflowMenu';
59
62
  export * from './components/OverflowMenuItem';
60
63
  export * as unstable__PageHeader from './components/PageHeader';
64
+ export * as preview__PageHeader from './components/PageHeader';
61
65
  export * as preview__Dialog from './components/Dialog';
62
66
  export * from './components/Pagination';
63
67
  export * from './components/Pagination/Pagination.Skeleton';
@@ -99,36 +103,36 @@ export * from './components/Toggletip';
99
103
  export * from './components/TreeView';
100
104
  export * from './components/UIShell';
101
105
  export * from './components/UnorderedList';
102
- export { FluidComboBox, FluidComboBoxSkeleton, FluidComboBox as unstable__FluidComboBox, FluidComboBoxSkeleton as unstable__FluidComboBoxSkeleton, } from './components/FluidComboBox';
103
- export { FluidDatePicker, FluidDatePickerSkeleton, FluidDatePicker as unstable__FluidDatePicker, FluidDatePickerSkeleton as unstable__FluidDatePickerSkeleton, } from './components/FluidDatePicker';
104
- export { FluidDatePickerInput, FluidDatePickerInput as unstable__FluidDatePickerInput, } from './components/FluidDatePickerInput';
105
- export { FluidDropdown, FluidDropdownSkeleton, FluidDropdown as unstable__FluidDropdown, FluidDropdownSkeleton as unstable__FluidDropdownSkeleton, } from './components/FluidDropdown';
106
- export { FluidMultiSelect, FluidMultiSelectSkeleton, FluidMultiSelect as unstable__FluidMultiSelect, FluidMultiSelectSkeleton as unstable__FluidMultiSelectSkeleton, } from './components/FluidMultiSelect';
107
- export { FluidSelect, FluidSelectSkeleton, FluidSelect as unstable__FluidSelect, FluidSelectSkeleton as unstable__FluidSelectSkeleton, } from './components/FluidSelect';
108
- export { FluidSearch, FluidSearchSkeleton, FluidSearch as unstable__FluidSearch, FluidSearchSkeleton as unstable__FluidSearchSkeleton, } from './components/FluidSearch';
109
- export { FluidTextArea, FluidTextAreaSkeleton, FluidTextArea as unstable__FluidTextArea, FluidTextAreaSkeleton as unstable__FluidTextAreaSkeleton, } from './components/FluidTextArea';
110
- export { FluidTextInput, FluidTextInputSkeleton, FluidTextInput as unstable__FluidTextInput, FluidTextInputSkeleton as unstable__FluidTextInputSkeleton, } from './components/FluidTextInput';
111
- export { FluidNumberInput, FluidNumberInputSkeleton, FluidNumberInput as unstable__FluidNumberInput, FluidNumberInputSkeleton as unstable__FluidNumberInputSkeleton, } from './components/FluidNumberInput';
112
- export { FluidTimePicker, FluidTimePickerSkeleton, FluidTimePicker as unstable__FluidTimePicker, FluidTimePickerSkeleton as unstable__FluidTimePickerSkeleton, } from './components/FluidTimePicker';
113
- export { FluidTimePickerSelect, FluidTimePickerSelect as unstable__FluidTimePickerSelect, } from './components/FluidTimePickerSelect';
106
+ export { FluidComboBox, FluidComboBoxSkeleton, FluidComboBox as unstable__FluidComboBox, FluidComboBoxSkeleton as unstable__FluidComboBoxSkeleton, FluidComboBox as preview__FluidComboBox, FluidComboBoxSkeleton as preview__FluidComboBoxSkeleton, } from './components/FluidComboBox';
107
+ export { FluidDatePicker, FluidDatePickerSkeleton, FluidDatePicker as unstable__FluidDatePicker, FluidDatePickerSkeleton as unstable__FluidDatePickerSkeleton, FluidDatePicker as preview__FluidDatePicker, FluidDatePickerSkeleton as preview__FluidDatePickerSkeleton, } from './components/FluidDatePicker';
108
+ export { FluidDatePickerInput, FluidDatePickerInput as unstable__FluidDatePickerInput, FluidDatePickerInput as preview__FluidDatePickerInput, } from './components/FluidDatePickerInput';
109
+ export { FluidDropdown, FluidDropdownSkeleton, FluidDropdown as unstable__FluidDropdown, FluidDropdownSkeleton as unstable__FluidDropdownSkeleton, FluidDropdown as preview__FluidDropdown, FluidDropdownSkeleton as preview__FluidDropdownSkeleton, } from './components/FluidDropdown';
110
+ export { FluidMultiSelect, FluidMultiSelectSkeleton, FluidMultiSelect as unstable__FluidMultiSelect, FluidMultiSelectSkeleton as unstable__FluidMultiSelectSkeleton, FluidMultiSelect as preview__FluidMultiSelect, FluidMultiSelectSkeleton as preview__FluidMultiSelectSkeleton, } from './components/FluidMultiSelect';
111
+ export { FluidSelect, FluidSelectSkeleton, FluidSelect as unstable__FluidSelect, FluidSelectSkeleton as unstable__FluidSelectSkeleton, FluidSelect as preview__FluidSelect, FluidSelectSkeleton as preview__FluidSelectSkeleton, } from './components/FluidSelect';
112
+ export { FluidSearch, FluidSearchSkeleton, FluidSearch as unstable__FluidSearch, FluidSearchSkeleton as unstable__FluidSearchSkeleton, FluidSearch as preview__FluidSearch, FluidSearchSkeleton as preview__FluidSearchSkeleton, } from './components/FluidSearch';
113
+ export { FluidTextArea, FluidTextAreaSkeleton, FluidTextArea as unstable__FluidTextArea, FluidTextAreaSkeleton as unstable__FluidTextAreaSkeleton, FluidTextArea as preview__FluidTextArea, FluidTextAreaSkeleton as preview__FluidTextAreaSkeleton, } from './components/FluidTextArea';
114
+ export { FluidPasswordInput, FluidTextInput, FluidTextInputSkeleton, FluidTextInput as unstable__FluidTextInput, FluidTextInputSkeleton as unstable__FluidTextInputSkeleton, FluidTextInput as preview__FluidTextInput, FluidTextInputSkeleton as preview__FluidTextInputSkeleton, } from './components/FluidTextInput';
115
+ export { FluidNumberInput, FluidNumberInputSkeleton, FluidNumberInput as unstable__FluidNumberInput, FluidNumberInputSkeleton as unstable__FluidNumberInputSkeleton, FluidNumberInput as preview__FluidNumberInput, FluidNumberInputSkeleton as preview__FluidNumberInputSkeleton, } from './components/FluidNumberInput';
116
+ export { FluidTimePicker, FluidTimePickerSkeleton, FluidTimePicker as unstable__FluidTimePicker, FluidTimePickerSkeleton as unstable__FluidTimePickerSkeleton, FluidTimePicker as preview__FluidTimePicker, FluidTimePickerSkeleton as preview__FluidTimePickerSkeleton, } from './components/FluidTimePicker';
117
+ export { FluidTimePickerSelect, FluidTimePickerSelect as unstable__FluidTimePickerSelect, FluidTimePickerSelect as preview__FluidTimePickerSelect, } from './components/FluidTimePickerSelect';
114
118
  export * from './components/Heading';
115
119
  export * from './components/IconButton';
116
120
  export * from './components/Layer';
117
- export { Layout as unstable_Layout } from './components/Layout';
118
- export { LayoutDirection as unstable_LayoutDirection, useLayoutDirection as unstable_useLayoutDirection, } from './components/LayoutDirection';
119
- export { OverflowMenuV2 as unstable_OverflowMenuV2 } from './components/OverflowMenuV2';
120
- export { PageSelector as unstable_PageSelector, Pagination as unstable_Pagination, } from './components/Pagination/experimental';
121
+ export { Layout as unstable_Layout, Layout as preview_Layout, } from './components/Layout';
122
+ export { LayoutDirection as unstable_LayoutDirection, useLayoutDirection as unstable_useLayoutDirection, LayoutDirection as preview_LayoutDirection, useLayoutDirection as preview_useLayoutDirection, } from './components/LayoutDirection';
123
+ export { OverflowMenuV2 as unstable_OverflowMenuV2, OverflowMenuV2 as preview_OverflowMenuV2, } from './components/OverflowMenuV2';
124
+ export { PageSelector as unstable_PageSelector, Pagination as unstable_Pagination, PageSelector as preview_PageSelector, Pagination as preview_Pagination, } from './components/Pagination/experimental';
121
125
  export * from './components/Popover';
122
126
  export * from './components/ProgressBar';
123
127
  export { AILabel, AILabelContent, AILabelActions } from './components/AILabel';
124
- export { IconIndicator as unstable__IconIndicator } from './components/IconIndicator';
125
- export { ShapeIndicator as unstable__ShapeIndicator } from './components/ShapeIndicator';
126
- export { AILabel as unstable__Slug, AILabelContent as unstable__SlugContent, AILabelActions as unstable__SlugActions, } from './components/AILabel';
127
- export { ChatButton as unstable__ChatButton, ChatButtonSkeleton as unstable__ChatButtonSkeleton, } from './components/ChatButton';
128
+ export { IconIndicator as unstable__IconIndicator, IconIndicator as preview__IconIndicator, } from './components/IconIndicator';
129
+ export { ShapeIndicator as unstable__ShapeIndicator, ShapeIndicator as preview__ShapeIndicator, } from './components/ShapeIndicator';
130
+ export { AILabel as unstable__Slug, AILabelContent as unstable__SlugContent, AILabelActions as unstable__SlugActions, AILabel as preview__Slug, AILabelContent as preview__SlugContent, AILabelActions as preview__SlugActions, } from './components/AILabel';
131
+ export { ChatButton as unstable__ChatButton, ChatButtonSkeleton as unstable__ChatButtonSkeleton, ChatButton as preview__ChatButton, ChatButtonSkeleton as preview__ChatButtonSkeleton, } from './components/ChatButton';
128
132
  export { AISkeletonText, AISkeletonIcon, AISkeletonPlaceholder, } from './components/AISkeleton';
129
- export { AISkeletonText as unstable__AiSkeletonText, AISkeletonIcon as unstable__AiSkeletonIcon, AISkeletonPlaceholder as unstable__AiSkeletonPlaceholder, } from './components/AISkeleton';
133
+ export { AISkeletonText as unstable__AiSkeletonText, AISkeletonIcon as unstable__AiSkeletonIcon, AISkeletonPlaceholder as unstable__AiSkeletonPlaceholder, AISkeletonText as preview__AiSkeletonText, AISkeletonIcon as preview__AiSkeletonIcon, AISkeletonPlaceholder as preview__AiSkeletonPlaceholder, } from './components/AISkeleton';
130
134
  export * from './components/Tooltip';
131
- export { Text as unstable_Text, TextDirection as unstable_TextDirection, } from './components/Text';
135
+ export { Text as unstable_Text, TextDirection as unstable_TextDirection, Text as preview_Text, TextDirection as preview_TextDirection, } from './components/Text';
132
136
  export * from './components/Tooltip/DefinitionTooltip';
133
137
  export * from './components/Theme';
134
138
  export * from './internal/usePrefix';
package/lib/index.js CHANGED
@@ -28,6 +28,7 @@ var CodeSnippet_Skeleton = require('./components/CodeSnippet/CodeSnippet.Skeleto
28
28
  var ComboBox = require('./components/ComboBox/ComboBox.js');
29
29
  var index$9 = require('./components/ComboButton/index.js');
30
30
  var ComposedModal = require('./components/ComposedModal/ComposedModal.js');
31
+ var ComposedModalPresence = require('./components/ComposedModal/ComposedModalPresence.js');
31
32
  var ModalHeader = require('./components/ComposedModal/ModalHeader.js');
32
33
  var ModalFooter = require('./components/ComposedModal/ModalFooter.js');
33
34
  require('./components/ContainedList/index.js');
@@ -97,6 +98,7 @@ var Menu = require('./components/Menu/Menu.js');
97
98
  var MenuItem = require('./components/Menu/MenuItem.js');
98
99
  var index$b = require('./components/MenuButton/index.js');
99
100
  var Modal = require('./components/Modal/Modal.js');
101
+ var ModalPresence = require('./components/Modal/ModalPresence.js');
100
102
  var ModalWrapper = require('./components/ModalWrapper/ModalWrapper.js');
101
103
  var FilterableMultiSelect = require('./components/MultiSelect/FilterableMultiSelect.js');
102
104
  var MultiSelect = require('./components/MultiSelect/MultiSelect.js');
@@ -207,7 +209,7 @@ var FluidSearch_Skeleton = require('./components/FluidSearch/FluidSearch.Skeleto
207
209
  var FluidTextArea = require('./components/FluidTextArea/FluidTextArea.js');
208
210
  var FluidTextArea_Skeleton = require('./components/FluidTextArea/FluidTextArea.Skeleton.js');
209
211
  var FluidTextInput = require('./components/FluidTextInput/FluidTextInput.js');
210
- require('./components/FluidTextInput/FluidPasswordInput.js');
212
+ var FluidPasswordInput = require('./components/FluidTextInput/FluidPasswordInput.js');
211
213
  var FluidTextInput_Skeleton = require('./components/FluidTextInput/FluidTextInput.Skeleton.js');
212
214
  var FluidNumberInput = require('./components/FluidNumberInput/FluidNumberInput.js');
213
215
  var FluidNumberInput_Skeleton = require('./components/FluidNumberInput/FluidNumberInput.Skeleton.js');
@@ -233,7 +235,9 @@ var AISkeletonIcon = require('./components/AISkeleton/AISkeletonIcon.js');
233
235
  var AISkeletonText = require('./components/AISkeleton/AISkeletonText.js');
234
236
  var DefinitionTooltip = require('./components/Tooltip/DefinitionTooltip.js');
235
237
  var Tooltip = require('./components/Tooltip/Tooltip.js');
236
- require('./components/Text/index.js');
238
+ var Text = require('./components/Text/Text.js');
239
+ var TextDirection = require('./components/Text/TextDirection.js');
240
+ require('react');
237
241
  var index$i = require('./components/Theme/index.js');
238
242
  var usePrefix = require('./internal/usePrefix.js');
239
243
  var useIdPrefix = require('./internal/useIdPrefix.js');
@@ -241,8 +245,6 @@ var PageSelector = require('./components/Pagination/experimental/PageSelector.js
241
245
  var Pagination = require('./components/Pagination/experimental/Pagination.js');
242
246
  var ContainedListItem = require('./components/ContainedList/ContainedListItem/ContainedListItem.js');
243
247
  var ContainedList = require('./components/ContainedList/ContainedList.js');
244
- var Text = require('./components/Text/Text.js');
245
- var TextDirection = require('./components/Text/TextDirection.js');
246
248
 
247
249
 
248
250
 
@@ -270,6 +272,7 @@ exports.ComboBox = ComboBox.default;
270
272
  exports.ComboButton = index$9.ComboButton;
271
273
  exports.ComposedModal = ComposedModal.default;
272
274
  exports.ModalBody = ComposedModal.ModalBody;
275
+ exports.ComposedModalPresence = ComposedModalPresence.ComposedModalPresence;
273
276
  exports.ModalHeader = ModalHeader.ModalHeader;
274
277
  exports.ModalFooter = ModalFooter.ModalFooter;
275
278
  exports.ContentSwitcher = ContentSwitcher.ContentSwitcher;
@@ -310,6 +313,9 @@ exports.ErrorBoundary = ErrorBoundary.default;
310
313
  exports.ErrorBoundaryContext = ErrorBoundaryContext.ErrorBoundaryContext;
311
314
  exports.ExpandableSearch = ExpandableSearch.default;
312
315
  exports.FeatureFlags = index$2.FeatureFlags;
316
+ exports.preview_FeatureFlags = index$2.FeatureFlags;
317
+ exports.preview_useFeatureFlag = index$2.useFeatureFlag;
318
+ exports.preview_useFeatureFlags = index$2.useFeatureFlags;
313
319
  exports.unstable_FeatureFlags = index$2.FeatureFlags;
314
320
  exports.unstable_useFeatureFlag = index$2.useFeatureFlag;
315
321
  exports.unstable_useFeatureFlags = index$2.useFeatureFlags;
@@ -347,6 +353,7 @@ exports.MenuItemRadioGroup = MenuItem.MenuItemRadioGroup;
347
353
  exports.MenuItemSelectable = MenuItem.MenuItemSelectable;
348
354
  exports.MenuButton = index$b.MenuButton;
349
355
  exports.Modal = Modal.default;
356
+ exports.ModalPresence = ModalPresence.ModalPresence;
350
357
  exports.ModalWrapper = ModalWrapper.default;
351
358
  exports.FilterableMultiSelect = FilterableMultiSelect.FilterableMultiSelect;
352
359
  exports.MultiSelect = MultiSelect.MultiSelect;
@@ -362,6 +369,7 @@ exports.NumberInput = NumberInput.NumberInput;
362
369
  exports.OrderedList = OrderedList.default;
363
370
  exports.OverflowMenu = index$c.default;
364
371
  exports.OverflowMenuItem = OverflowMenuItem.default;
372
+ exports.preview__PageHeader = index;
365
373
  exports.unstable__PageHeader = index;
366
374
  exports.preview__Dialog = index$1;
367
375
  exports.Pagination = Pagination$1.default;
@@ -470,48 +478,71 @@ exports.SideNavMenuItem = SideNavMenuItem.default;
470
478
  exports.SideNavSwitcher = SideNavSwitcher.default;
471
479
  exports.UnorderedList = UnorderedList.default;
472
480
  exports.FluidComboBox = FluidComboBox.default;
481
+ exports.preview__FluidComboBox = FluidComboBox.default;
473
482
  exports.unstable__FluidComboBox = FluidComboBox.default;
474
483
  exports.FluidComboBoxSkeleton = FluidComboBox_Skeleton.default;
484
+ exports.preview__FluidComboBoxSkeleton = FluidComboBox_Skeleton.default;
475
485
  exports.unstable__FluidComboBoxSkeleton = FluidComboBox_Skeleton.default;
476
486
  exports.FluidDatePicker = FluidDatePicker.default;
487
+ exports.preview__FluidDatePicker = FluidDatePicker.default;
477
488
  exports.unstable__FluidDatePicker = FluidDatePicker.default;
478
489
  exports.FluidDatePickerSkeleton = FluidDatePicker_Skeleton.default;
490
+ exports.preview__FluidDatePickerSkeleton = FluidDatePicker_Skeleton.default;
479
491
  exports.unstable__FluidDatePickerSkeleton = FluidDatePicker_Skeleton.default;
480
492
  exports.FluidDatePickerInput = FluidDatePickerInput.default;
493
+ exports.preview__FluidDatePickerInput = FluidDatePickerInput.default;
481
494
  exports.unstable__FluidDatePickerInput = FluidDatePickerInput.default;
482
495
  exports.FluidDropdown = FluidDropdown.default;
496
+ exports.preview__FluidDropdown = FluidDropdown.default;
483
497
  exports.unstable__FluidDropdown = FluidDropdown.default;
484
498
  exports.FluidDropdownSkeleton = FluidDropdown_Skeleton.default;
499
+ exports.preview__FluidDropdownSkeleton = FluidDropdown_Skeleton.default;
485
500
  exports.unstable__FluidDropdownSkeleton = FluidDropdown_Skeleton.default;
486
501
  exports.FluidMultiSelect = FluidMultiSelect.default;
502
+ exports.preview__FluidMultiSelect = FluidMultiSelect.default;
487
503
  exports.unstable__FluidMultiSelect = FluidMultiSelect.default;
488
504
  exports.FluidMultiSelectSkeleton = FluidMultiSelect_Skeleton.default;
505
+ exports.preview__FluidMultiSelectSkeleton = FluidMultiSelect_Skeleton.default;
489
506
  exports.unstable__FluidMultiSelectSkeleton = FluidMultiSelect_Skeleton.default;
490
507
  exports.FluidSelect = FluidSelect.default;
508
+ exports.preview__FluidSelect = FluidSelect.default;
491
509
  exports.unstable__FluidSelect = FluidSelect.default;
492
510
  exports.FluidSelectSkeleton = FluidSelect_Skeleton.default;
511
+ exports.preview__FluidSelectSkeleton = FluidSelect_Skeleton.default;
493
512
  exports.unstable__FluidSelectSkeleton = FluidSelect_Skeleton.default;
494
513
  exports.FluidSearch = FluidSearch.default;
514
+ exports.preview__FluidSearch = FluidSearch.default;
495
515
  exports.unstable__FluidSearch = FluidSearch.default;
496
516
  exports.FluidSearchSkeleton = FluidSearch_Skeleton.default;
517
+ exports.preview__FluidSearchSkeleton = FluidSearch_Skeleton.default;
497
518
  exports.unstable__FluidSearchSkeleton = FluidSearch_Skeleton.default;
498
519
  exports.FluidTextArea = FluidTextArea.default;
520
+ exports.preview__FluidTextArea = FluidTextArea.default;
499
521
  exports.unstable__FluidTextArea = FluidTextArea.default;
500
522
  exports.FluidTextAreaSkeleton = FluidTextArea_Skeleton.default;
523
+ exports.preview__FluidTextAreaSkeleton = FluidTextArea_Skeleton.default;
501
524
  exports.unstable__FluidTextAreaSkeleton = FluidTextArea_Skeleton.default;
502
525
  exports.FluidTextInput = FluidTextInput.default;
526
+ exports.preview__FluidTextInput = FluidTextInput.default;
503
527
  exports.unstable__FluidTextInput = FluidTextInput.default;
528
+ exports.FluidPasswordInput = FluidPasswordInput.default;
504
529
  exports.FluidTextInputSkeleton = FluidTextInput_Skeleton.default;
530
+ exports.preview__FluidTextInputSkeleton = FluidTextInput_Skeleton.default;
505
531
  exports.unstable__FluidTextInputSkeleton = FluidTextInput_Skeleton.default;
506
532
  exports.FluidNumberInput = FluidNumberInput.default;
533
+ exports.preview__FluidNumberInput = FluidNumberInput.default;
507
534
  exports.unstable__FluidNumberInput = FluidNumberInput.default;
508
535
  exports.FluidNumberInputSkeleton = FluidNumberInput_Skeleton.default;
536
+ exports.preview__FluidNumberInputSkeleton = FluidNumberInput_Skeleton.default;
509
537
  exports.unstable__FluidNumberInputSkeleton = FluidNumberInput_Skeleton.default;
510
538
  exports.FluidTimePicker = FluidTimePicker.default;
539
+ exports.preview__FluidTimePicker = FluidTimePicker.default;
511
540
  exports.unstable__FluidTimePicker = FluidTimePicker.default;
512
541
  exports.FluidTimePickerSkeleton = FluidTimePicker_Skeleton.default;
542
+ exports.preview__FluidTimePickerSkeleton = FluidTimePicker_Skeleton.default;
513
543
  exports.unstable__FluidTimePickerSkeleton = FluidTimePicker_Skeleton.default;
514
544
  exports.FluidTimePickerSelect = FluidTimePickerSelect.default;
545
+ exports.preview__FluidTimePickerSelect = FluidTimePickerSelect.default;
515
546
  exports.unstable__FluidTimePickerSelect = FluidTimePickerSelect.default;
516
547
  exports.Heading = index$e.Heading;
517
548
  exports.Section = index$e.Section;
@@ -519,9 +550,13 @@ exports.IconButton = index$f.IconButton;
519
550
  exports.IconButtonKinds = index$f.IconButtonKinds;
520
551
  exports.Layer = index$g.Layer;
521
552
  exports.useLayer = index$g.useLayer;
553
+ exports.preview_Layout = index$3.Layout;
522
554
  exports.unstable_Layout = index$3.Layout;
555
+ exports.preview_LayoutDirection = LayoutDirection.LayoutDirection;
523
556
  exports.unstable_LayoutDirection = LayoutDirection.LayoutDirection;
557
+ exports.preview_useLayoutDirection = useLayoutDirection.useLayoutDirection;
524
558
  exports.unstable_useLayoutDirection = useLayoutDirection.useLayoutDirection;
559
+ exports.preview_OverflowMenuV2 = index$4.OverflowMenuV2;
525
560
  exports.unstable_OverflowMenuV2 = index$4.OverflowMenuV2;
526
561
  exports.Popover = index$h.Popover;
527
562
  exports.PopoverContent = index$h.PopoverContent;
@@ -529,21 +564,35 @@ exports.ProgressBar = ProgressBar.default;
529
564
  exports.AILabel = index$5.AILabel;
530
565
  exports.AILabelActions = index$5.AILabelActions;
531
566
  exports.AILabelContent = index$5.AILabelContent;
567
+ exports.preview__Slug = index$5.AILabel;
568
+ exports.preview__SlugActions = index$5.AILabelActions;
569
+ exports.preview__SlugContent = index$5.AILabelContent;
532
570
  exports.unstable__Slug = index$5.AILabel;
533
571
  exports.unstable__SlugActions = index$5.AILabelActions;
534
572
  exports.unstable__SlugContent = index$5.AILabelContent;
573
+ exports.preview__IconIndicator = index$6.IconIndicator;
535
574
  exports.unstable__IconIndicator = index$6.IconIndicator;
575
+ exports.preview__ShapeIndicator = index$7.ShapeIndicator;
536
576
  exports.unstable__ShapeIndicator = index$7.ShapeIndicator;
577
+ exports.preview__ChatButton = ChatButton.default;
537
578
  exports.unstable__ChatButton = ChatButton.default;
579
+ exports.preview__ChatButtonSkeleton = ChatButton_Skeleton.default;
538
580
  exports.unstable__ChatButtonSkeleton = ChatButton_Skeleton.default;
539
581
  exports.AISkeletonPlaceholder = AISkeletonPlaceholder.default;
582
+ exports.preview__AiSkeletonPlaceholder = AISkeletonPlaceholder.default;
540
583
  exports.unstable__AiSkeletonPlaceholder = AISkeletonPlaceholder.default;
541
584
  exports.AISkeletonIcon = AISkeletonIcon.default;
585
+ exports.preview__AiSkeletonIcon = AISkeletonIcon.default;
542
586
  exports.unstable__AiSkeletonIcon = AISkeletonIcon.default;
543
587
  exports.AISkeletonText = AISkeletonText.default;
588
+ exports.preview__AiSkeletonText = AISkeletonText.default;
544
589
  exports.unstable__AiSkeletonText = AISkeletonText.default;
545
590
  exports.DefinitionTooltip = DefinitionTooltip.DefinitionTooltip;
546
591
  exports.Tooltip = Tooltip.Tooltip;
592
+ exports.preview_Text = Text.Text;
593
+ exports.unstable_Text = Text.Text;
594
+ exports.preview_TextDirection = TextDirection.TextDirection;
595
+ exports.unstable_TextDirection = TextDirection.TextDirection;
547
596
  exports.GlobalTheme = index$i.GlobalTheme;
548
597
  exports.Theme = index$i.Theme;
549
598
  exports.ThemeContext = index$i.ThemeContext;
@@ -552,9 +601,9 @@ exports.useTheme = index$i.useTheme;
552
601
  exports.PrefixContext = usePrefix.PrefixContext;
553
602
  exports.usePrefix = usePrefix.usePrefix;
554
603
  exports.useIdPrefix = useIdPrefix.useIdPrefix;
604
+ exports.preview_PageSelector = PageSelector.default;
555
605
  exports.unstable_PageSelector = PageSelector.default;
606
+ exports.preview_Pagination = Pagination.default;
556
607
  exports.unstable_Pagination = Pagination.default;
557
608
  exports.ContainedListItem = ContainedListItem.default;
558
609
  exports.ContainedList = ContainedList.default;
559
- exports.unstable_Text = Text.Text;
560
- exports.unstable_TextDirection = TextDirection.TextDirection;
@@ -9,9 +9,9 @@
9
9
 
10
10
  var React = require('react');
11
11
  var iconsReact = require('@carbon/icons-react');
12
- require('../components/Text/index.js');
13
- var usePrefix = require('./usePrefix.js');
14
12
  var Text = require('../components/Text/Text.js');
13
+ require('../components/Text/TextDirection.js');
14
+ var usePrefix = require('./usePrefix.js');
15
15
 
16
16
  /**
17
17
  * Returns an object containing normalized properties for an input component.
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { type RefObject } from 'react';
8
+ export declare const usePresence: (ref: RefObject<HTMLElement | null>, isOpen: boolean) => {
9
+ /**
10
+ * Indicates whether the ref object is supposed to be mounted
11
+ */
12
+ isPresent: boolean;
13
+ /**
14
+ * Indicates whether the ref object is currently exiting
15
+ */
16
+ isExiting: boolean;
17
+ };
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ var React = require('react');
11
+ var usePrefix = require('./usePrefix.js');
12
+
13
+ const usePresence = (ref, isOpen) => {
14
+ const prefix = usePrefix.usePrefix();
15
+ const [exitState, setExitState] = React.useState(isOpen ? 'idle' : 'finished');
16
+ const isExiting = exitState === 'active';
17
+
18
+ // element is exiting
19
+ if (!isOpen && exitState === 'idle') {
20
+ setExitState('active');
21
+ }
22
+
23
+ // element exit was interrupted
24
+ if (isOpen && exitState !== 'idle') {
25
+ setExitState('idle');
26
+ }
27
+ const handleAnimationEnd = React.useCallback(() => {
28
+ setExitState('finished');
29
+ }, []);
30
+ React.useLayoutEffect(() => {
31
+ if (!ref.current || !isExiting) return;
32
+
33
+ // resolve for JSDOM
34
+ if (!('getAnimations' in ref.current)) {
35
+ handleAnimationEnd();
36
+ return;
37
+ }
38
+
39
+ // cover all animations that start with the presence prefix
40
+ const animations = ref.current.getAnimations({
41
+ subtree: true
42
+ }).filter(animation => animation instanceof CSSAnimation && animation.animationName.startsWith(`${prefix}--presence`));
43
+ if (!animations.length) {
44
+ handleAnimationEnd();
45
+ return;
46
+ }
47
+ let cancelled = false;
48
+ Promise.all(animations.map(animation => animation.finished)).finally(() => {
49
+ if (cancelled) return;
50
+ handleAnimationEnd();
51
+ });
52
+ return () => {
53
+ cancelled = true;
54
+ };
55
+ }, [ref, isExiting, prefix, handleAnimationEnd]);
56
+ return {
57
+ /**
58
+ * Indicates whether the ref object is supposed to be mounted
59
+ */
60
+ isPresent: isOpen || exitState !== 'finished',
61
+ /**
62
+ * Indicates whether the ref object is currently exiting
63
+ */
64
+ isExiting
65
+ };
66
+ };
67
+
68
+ exports.usePresence = usePresence;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright IBM Corp. 2025
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { type RefObject } from 'react';
8
+ export interface PresenceContext {
9
+ /**
10
+ * The ref object the presence mode is mounted with
11
+ */
12
+ presenceRef: RefObject<HTMLDivElement | null>;
13
+ /**
14
+ * Indicates whether the ref object is currently exiting
15
+ */
16
+ isExiting: boolean;
17
+ /**
18
+ * Returns if the caller is exclusive to this presence context
19
+ */
20
+ isPresenceExclusive: (id: string) => boolean;
21
+ }
22
+ /**
23
+ * Returns if the presence node is present and the context value to be used by a presence context, e.g. ModalPresence.
24
+ */
25
+ export declare const usePresenceContext: (open: boolean, initialPresenceId?: string) => readonly [boolean, PresenceContext];
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ var React = require('react');
11
+ var usePresence = require('./usePresence.js');
12
+
13
+ /**
14
+ * Returns if the presence node is present and the context value to be used by a presence context, e.g. ModalPresence.
15
+ */
16
+ const usePresenceContext = (open, initialPresenceId) => {
17
+ const presenceIdRef = React.useRef(initialPresenceId);
18
+ const presenceRef = React.useRef(null);
19
+ const prevPresenceRef = React.useRef(null);
20
+
21
+ // clean up the presence id, if not predefined and if the presence node was unmounted
22
+ if (!initialPresenceId && prevPresenceRef.current && !presenceRef.current) {
23
+ presenceIdRef.current = null;
24
+ }
25
+ prevPresenceRef.current = presenceRef.current;
26
+ const {
27
+ isPresent,
28
+ isExiting
29
+ } = usePresence.usePresence(presenceRef, open);
30
+ const isPresenceExclusive = React.useCallback(id => {
31
+ if (!id) return false;
32
+
33
+ // return false if the presence context is occupied
34
+ if (presenceIdRef.current && presenceIdRef.current !== id) return false;
35
+
36
+ // otherwise occupy presence context and return true
37
+ presenceIdRef.current = id;
38
+ return true;
39
+ }, []);
40
+ const contextValue = React.useMemo(() => ({
41
+ presenceRef,
42
+ isPresenceExclusive,
43
+ isExiting
44
+ }), [presenceRef, isPresenceExclusive, isExiting]);
45
+ return [isPresent, contextValue];
46
+ };
47
+
48
+ exports.usePresenceContext = usePresenceContext;
@@ -1,12 +1,12 @@
1
- export default mergeRefs;
2
1
  /**
3
- * Copyright IBM Corp. 2016, 2023
2
+ * Copyright IBM Corp. 2016, 2025
4
3
  *
5
4
  * This source code is licensed under the Apache-2.0 license found in the
6
5
  * LICENSE file in the root directory of this source tree.
7
6
  */
7
+ import type { Ref, RefCallback } from 'react';
8
8
  /**
9
- * @param {...Ref<Element>} refs List of React refs to merge.
10
- * @returns {Ref<Element>} Merged React ref.
9
+ * @param refs Refs to merge.
10
+ * @returns Merged ref.
11
11
  */
12
- declare function mergeRefs(...refs: Ref<Element>[]): Ref<Element>;
12
+ export declare const mergeRefs: <T>(...refs: (Ref<T> | null | undefined)[]) => RefCallback<T>;
@@ -7,21 +7,23 @@
7
7
 
8
8
  'use strict';
9
9
 
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
10
  /**
13
- * @param {...Ref<Element>} refs List of React refs to merge.
14
- * @returns {Ref<Element>} Merged React ref.
11
+ * @param refs Refs to merge.
12
+ * @returns Merged ref.
15
13
  */
16
- const mergeRefs = (...refs) => el => {
17
- refs.forEach(ref => {
18
- // https://github.com/facebook/react/issues/13029#issuecomment-410002316
19
- if (typeof ref === 'function') {
20
- ref(el);
21
- } else if (Object(ref) === ref) {
22
- ref.current = el;
23
- }
24
- });
14
+ const mergeRefs = (...refs) => {
15
+ return value => {
16
+ refs.forEach(ref => {
17
+ if (!ref) return;
18
+
19
+ // https://github.com/facebook/react/issues/13029#issuecomment-410002316
20
+ if (typeof ref === 'function') {
21
+ ref(value);
22
+ } else if (typeof ref === 'object' && 'current' in ref) {
23
+ ref.current = value;
24
+ }
25
+ });
26
+ };
25
27
  };
26
28
 
27
- exports.default = mergeRefs;
29
+ exports.mergeRefs = mergeRefs;