@carbon/react 1.78.2 → 1.79.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.
- package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +835 -835
- package/es/components/Accordion/AccordionItem.js +2 -2
- package/es/components/Button/Button.d.ts +2 -3
- package/es/components/Button/Button.js +29 -19
- package/es/components/Button/ButtonBase.js +3 -1
- package/es/components/ChatButton/ChatButton.d.ts +2 -3
- package/es/components/ChatButton/ChatButton.js +1 -2
- package/es/components/ComboBox/ComboBox.js +34 -24
- package/es/components/ComposedModal/ComposedModal.js +65 -51
- package/es/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +2 -2
- package/es/components/ContainedList/ContainedListItem/ContainedListItem.js +1 -1
- package/es/components/ContentSwitcher/ContentSwitcher.js +3 -3
- package/es/components/DataTable/TableBatchAction.d.ts +3 -3
- package/es/components/DataTable/TableBatchAction.js +1 -1
- package/es/components/DataTable/TableContainer.d.ts +1 -1
- package/es/components/DataTable/TableContainer.js +5 -4
- package/es/components/DataTable/TableExpandHeader.d.ts +6 -5
- package/es/components/DataTable/TableToolbarMenu.d.ts +2 -2
- package/es/components/DataTable/TableToolbarMenu.js +1 -1
- package/es/components/DatePicker/DatePicker.js +2 -2
- package/es/components/DatePicker/plugins/fixEventsPlugin.js +1 -1
- package/es/components/Dialog/index.d.ts +42 -4
- package/es/components/Dialog/index.js +177 -0
- package/es/components/ExpandableSearch/ExpandableSearch.js +2 -2
- package/es/components/FeatureFlags/index.d.ts +3 -1
- package/es/components/FeatureFlags/index.js +3 -0
- package/es/components/FileUploader/FileUploader.d.ts +1 -1
- package/es/components/FileUploader/FileUploader.js +2 -2
- package/es/components/FileUploader/FileUploaderButton.js +2 -2
- package/es/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
- package/es/components/FileUploader/FileUploaderDropContainer.js +6 -4
- package/es/components/FileUploader/FileUploaderItem.d.ts +1 -1
- package/es/components/FileUploader/FileUploaderItem.js +2 -2
- package/es/components/Grid/CSSGrid.js +18 -14
- package/es/components/Grid/Column.d.ts +2 -2
- package/es/components/Grid/Column.js +7 -8
- package/es/components/Grid/FlexGrid.js +7 -6
- package/es/components/Grid/GridTypes.d.ts +5 -3
- package/es/components/IconButton/index.d.ts +2 -2
- package/es/components/IconButton/index.js +4 -4
- package/es/components/Layer/index.d.ts +4 -6
- package/es/components/Layer/index.js +5 -6
- package/es/components/Link/Link.d.ts +2 -3
- package/es/components/Link/Link.js +1 -2
- package/es/components/ListBox/ListBoxMenuItem.d.ts +3 -3
- package/es/components/ListBox/ListBoxMenuItem.js +37 -15
- package/es/components/Menu/Menu.js +2 -2
- package/es/components/Menu/MenuItem.d.ts +2 -2
- package/es/components/Menu/MenuItem.js +3 -3
- package/es/components/Modal/Modal.js +121 -49
- package/es/components/ModalWrapper/ModalWrapper.js +1 -1
- package/es/components/MultiSelect/FilterableMultiSelect.js +3 -3
- package/es/components/MultiSelect/MultiSelect.js +2 -2
- package/es/components/MultiSelect/index.d.ts +1 -1
- package/es/components/MultiSelect/index.js +1 -8
- package/es/components/Notification/Notification.d.ts +5 -13
- package/es/components/Notification/Notification.js +3 -4
- package/es/components/OverflowMenu/OverflowMenu.d.ts +22 -201
- package/es/components/OverflowMenu/OverflowMenu.js +269 -338
- package/es/components/OverflowMenu/index.d.ts +5 -5
- package/es/components/OverflowMenu/index.js +2 -2
- package/es/components/OverflowMenu/next/index.d.ts +4 -4
- package/es/components/OverflowMenu/next/index.js +1 -1
- package/es/components/OverflowMenuItem/OverflowMenuItem.js +2 -2
- package/es/components/ProgressIndicator/ProgressIndicator.js +2 -2
- package/es/components/RadioTile/RadioTile.js +2 -2
- package/es/components/Search/Search.d.ts +2 -3
- package/es/components/Search/Search.js +4 -6
- package/es/components/Slider/Slider.d.ts +39 -44
- package/es/components/Slider/Slider.js +57 -59
- package/es/components/Tabs/Tabs.d.ts +3 -6
- package/es/components/Tabs/Tabs.js +16 -18
- package/es/components/Tag/DismissibleTag.d.ts +3 -5
- package/es/components/Tag/DismissibleTag.js +1 -2
- package/es/components/Tag/OperationalTag.d.ts +2 -3
- package/es/components/Tag/OperationalTag.js +1 -2
- package/es/components/Tag/SelectableTag.d.ts +3 -5
- package/es/components/Tag/SelectableTag.js +1 -2
- package/es/components/Tag/Tag.d.ts +2 -3
- package/es/components/Tag/Tag.js +1 -2
- package/es/components/Tile/Tile.d.ts +3 -5
- package/es/components/Tile/Tile.js +16 -10
- package/es/components/Toggletip/index.js +2 -2
- package/es/components/Tooltip/DefinitionTooltip.js +2 -2
- package/es/components/Tooltip/Tooltip.d.ts +1 -1
- package/es/components/Tooltip/Tooltip.js +2 -2
- package/es/components/TreeView/TreeNode.d.ts +3 -5
- package/es/components/TreeView/TreeNode.js +3 -4
- package/es/components/TreeView/TreeView.js +2 -2
- package/es/components/UIShell/HeaderContainer.js +2 -2
- package/es/components/UIShell/HeaderMenu.js +2 -2
- package/es/components/UIShell/HeaderPanel.js +2 -2
- package/es/components/UIShell/SideNav.d.ts +1 -1
- package/es/components/UIShell/SideNav.js +2 -2
- package/es/components/UIShell/SideNavHeader.d.ts +2 -3
- package/es/components/UIShell/SideNavHeader.js +1 -2
- package/es/components/UIShell/SideNavLink.d.ts +2 -2
- package/es/components/UIShell/SideNavLink.js +1 -1
- package/es/components/UIShell/SideNavMenu.d.ts +2 -2
- package/es/components/UIShell/SideNavMenu.js +3 -3
- package/es/components/UIShell/SwitcherItem.js +2 -2
- package/es/index.js +1 -1
- package/es/internal/FloatingMenu.d.ts +2 -2
- package/es/internal/FloatingMenu.js +8 -5
- package/es/internal/OptimizedResize.d.ts +18 -0
- package/es/internal/OptimizedResize.js +21 -24
- package/es/internal/createClassWrapper.d.ts +3 -3
- package/es/internal/createClassWrapper.js +4 -4
- package/es/internal/keyboard/index.d.ts +9 -0
- package/es/internal/keyboard/keys.d.ts +23 -0
- package/es/internal/keyboard/keys.js +2 -2
- package/es/internal/keyboard/match.d.ts +26 -0
- package/es/internal/keyboard/match.js +17 -41
- package/es/internal/keyboard/navigation.d.ts +37 -0
- package/es/internal/keyboard/navigation.js +15 -27
- package/es/internal/useMatchMedia.d.ts +8 -0
- package/es/internal/useMatchMedia.js +10 -20
- package/es/internal/useMergedRefs.js +3 -0
- package/es/internal/useNormalizedInputProps.d.ts +52 -0
- package/es/internal/useNormalizedInputProps.js +9 -36
- package/lib/components/Accordion/AccordionItem.js +2 -2
- package/lib/components/Button/Button.d.ts +2 -3
- package/lib/components/Button/Button.js +29 -19
- package/lib/components/Button/ButtonBase.js +3 -1
- package/lib/components/ChatButton/ChatButton.d.ts +2 -3
- package/lib/components/ChatButton/ChatButton.js +1 -2
- package/lib/components/ComboBox/ComboBox.js +34 -24
- package/lib/components/ComposedModal/ComposedModal.js +64 -50
- package/lib/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +2 -2
- package/lib/components/ContainedList/ContainedListItem/ContainedListItem.js +1 -1
- package/lib/components/ContentSwitcher/ContentSwitcher.js +3 -3
- package/lib/components/DataTable/TableBatchAction.d.ts +3 -3
- package/lib/components/DataTable/TableBatchAction.js +1 -1
- package/lib/components/DataTable/TableContainer.d.ts +1 -1
- package/lib/components/DataTable/TableContainer.js +5 -4
- package/lib/components/DataTable/TableExpandHeader.d.ts +6 -5
- package/lib/components/DataTable/TableToolbarMenu.d.ts +2 -2
- package/lib/components/DataTable/TableToolbarMenu.js +1 -1
- package/lib/components/DatePicker/DatePicker.js +2 -2
- package/lib/components/DatePicker/plugins/fixEventsPlugin.js +1 -1
- package/lib/components/Dialog/index.d.ts +42 -4
- package/lib/components/Dialog/index.js +190 -0
- package/lib/components/ExpandableSearch/ExpandableSearch.js +2 -2
- package/lib/components/FeatureFlags/index.d.ts +3 -1
- package/lib/components/FeatureFlags/index.js +3 -0
- package/lib/components/FileUploader/FileUploader.d.ts +1 -1
- package/lib/components/FileUploader/FileUploader.js +2 -2
- package/lib/components/FileUploader/FileUploaderButton.js +2 -2
- package/lib/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
- package/lib/components/FileUploader/FileUploaderDropContainer.js +6 -4
- package/lib/components/FileUploader/FileUploaderItem.d.ts +1 -1
- package/lib/components/FileUploader/FileUploaderItem.js +2 -2
- package/lib/components/Grid/CSSGrid.js +18 -14
- package/lib/components/Grid/Column.d.ts +2 -2
- package/lib/components/Grid/Column.js +7 -8
- package/lib/components/Grid/FlexGrid.js +7 -6
- package/lib/components/Grid/GridTypes.d.ts +5 -3
- package/lib/components/IconButton/index.d.ts +2 -2
- package/lib/components/IconButton/index.js +4 -4
- package/lib/components/Layer/index.d.ts +4 -6
- package/lib/components/Layer/index.js +5 -6
- package/lib/components/Link/Link.d.ts +2 -3
- package/lib/components/Link/Link.js +1 -2
- package/lib/components/ListBox/ListBoxMenuItem.d.ts +3 -3
- package/lib/components/ListBox/ListBoxMenuItem.js +36 -14
- package/lib/components/Menu/Menu.js +2 -2
- package/lib/components/Menu/MenuItem.d.ts +2 -2
- package/lib/components/Menu/MenuItem.js +3 -3
- package/lib/components/Modal/Modal.js +123 -51
- package/lib/components/ModalWrapper/ModalWrapper.js +1 -1
- package/lib/components/MultiSelect/FilterableMultiSelect.js +3 -3
- package/lib/components/MultiSelect/MultiSelect.js +2 -2
- package/lib/components/MultiSelect/index.d.ts +1 -1
- package/lib/components/MultiSelect/index.js +1 -8
- package/lib/components/Notification/Notification.d.ts +5 -13
- package/lib/components/Notification/Notification.js +3 -4
- package/lib/components/OverflowMenu/OverflowMenu.d.ts +22 -201
- package/lib/components/OverflowMenu/OverflowMenu.js +268 -336
- package/lib/components/OverflowMenu/index.d.ts +5 -5
- package/lib/components/OverflowMenu/index.js +2 -2
- package/lib/components/OverflowMenu/next/index.d.ts +4 -4
- package/lib/components/OverflowMenu/next/index.js +1 -1
- package/lib/components/OverflowMenuItem/OverflowMenuItem.js +2 -2
- package/lib/components/ProgressIndicator/ProgressIndicator.js +2 -2
- package/lib/components/RadioTile/RadioTile.js +2 -2
- package/lib/components/Search/Search.d.ts +2 -3
- package/lib/components/Search/Search.js +4 -6
- package/lib/components/Slider/Slider.d.ts +39 -44
- package/lib/components/Slider/Slider.js +57 -59
- package/lib/components/Tabs/Tabs.d.ts +3 -6
- package/lib/components/Tabs/Tabs.js +16 -18
- package/lib/components/Tag/DismissibleTag.d.ts +3 -5
- package/lib/components/Tag/DismissibleTag.js +1 -2
- package/lib/components/Tag/OperationalTag.d.ts +2 -3
- package/lib/components/Tag/OperationalTag.js +1 -2
- package/lib/components/Tag/SelectableTag.d.ts +3 -5
- package/lib/components/Tag/SelectableTag.js +1 -2
- package/lib/components/Tag/Tag.d.ts +2 -3
- package/lib/components/Tag/Tag.js +1 -2
- package/lib/components/Tile/Tile.d.ts +3 -5
- package/lib/components/Tile/Tile.js +16 -10
- package/lib/components/Toggletip/index.js +2 -2
- package/lib/components/Tooltip/DefinitionTooltip.js +2 -2
- package/lib/components/Tooltip/Tooltip.d.ts +1 -1
- package/lib/components/Tooltip/Tooltip.js +2 -2
- package/lib/components/TreeView/TreeNode.d.ts +3 -5
- package/lib/components/TreeView/TreeNode.js +3 -4
- package/lib/components/TreeView/TreeView.js +2 -2
- package/lib/components/UIShell/HeaderContainer.js +2 -2
- package/lib/components/UIShell/HeaderMenu.js +2 -2
- package/lib/components/UIShell/HeaderPanel.js +2 -2
- package/lib/components/UIShell/SideNav.d.ts +1 -1
- package/lib/components/UIShell/SideNav.js +2 -2
- package/lib/components/UIShell/SideNavHeader.d.ts +2 -3
- package/lib/components/UIShell/SideNavHeader.js +1 -2
- package/lib/components/UIShell/SideNavLink.d.ts +2 -2
- package/lib/components/UIShell/SideNavLink.js +1 -1
- package/lib/components/UIShell/SideNavMenu.d.ts +2 -2
- package/lib/components/UIShell/SideNavMenu.js +3 -3
- package/lib/components/UIShell/SwitcherItem.js +2 -2
- package/lib/index.js +2 -2
- package/lib/internal/FloatingMenu.d.ts +2 -2
- package/lib/internal/FloatingMenu.js +9 -6
- package/lib/internal/OptimizedResize.d.ts +18 -0
- package/lib/internal/OptimizedResize.js +21 -24
- package/lib/internal/createClassWrapper.d.ts +3 -3
- package/lib/internal/createClassWrapper.js +4 -4
- package/lib/internal/keyboard/index.d.ts +9 -0
- package/lib/internal/keyboard/keys.d.ts +23 -0
- package/lib/internal/keyboard/keys.js +2 -2
- package/lib/internal/keyboard/match.d.ts +26 -0
- package/lib/internal/keyboard/match.js +17 -41
- package/lib/internal/keyboard/navigation.d.ts +37 -0
- package/lib/internal/keyboard/navigation.js +15 -27
- package/lib/internal/useMatchMedia.d.ts +8 -0
- package/lib/internal/useMatchMedia.js +10 -20
- package/lib/internal/useMergedRefs.js +3 -0
- package/lib/internal/useNormalizedInputProps.d.ts +52 -0
- package/lib/internal/useNormalizedInputProps.js +9 -36
- package/package.json +6 -6
- package/scss/components/dialog/_dialog.scss +9 -0
- package/scss/components/dialog/_index.scss +9 -0
- package/telemetry.yml +1 -0
- package/es/components/Modal/next/index.d.ts +0 -171
- package/es/internal/focus/index.js +0 -15
- package/es/internal/useEffectOnce.js +0 -30
- package/lib/components/Modal/next/index.d.ts +0 -171
- package/lib/internal/focus/index.js +0 -19
- package/lib/internal/useEffectOnce.js +0 -34
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2016,
|
|
2
|
+
* Copyright IBM Corp. 2016, 2025
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -31,8 +31,7 @@ export interface LinkBaseProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
|
31
31
|
*/
|
|
32
32
|
inline?: boolean;
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
35
|
-
* Can be a React component class
|
|
34
|
+
* A component used to render an icon.
|
|
36
35
|
*/
|
|
37
36
|
renderIcon?: ComponentType;
|
|
38
37
|
/**
|
|
@@ -92,8 +92,7 @@ Link.propTypes = {
|
|
|
92
92
|
*/
|
|
93
93
|
inline: PropTypes__default["default"].bool,
|
|
94
94
|
/**
|
|
95
|
-
*
|
|
96
|
-
* Can be a React component class
|
|
95
|
+
* A component used to render an icon.
|
|
97
96
|
*/
|
|
98
97
|
renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
|
|
99
98
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2016,
|
|
2
|
+
* Copyright IBM Corp. 2016, 2025
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import { ForwardedRef, ReactNode, type Ref } from 'react';
|
|
8
8
|
import { ForwardRefReturn, ReactAttr } from '../../types/common';
|
|
9
9
|
export interface ListBoxMenuItemProps extends ReactAttr<HTMLLIElement> {
|
|
10
10
|
/**
|
|
@@ -30,7 +30,7 @@ export interface ListBoxMenuItemProps extends ReactAttr<HTMLLIElement> {
|
|
|
30
30
|
title?: string;
|
|
31
31
|
}
|
|
32
32
|
export type ListBoxMenuItemForwardedRef = (ForwardedRef<HTMLLIElement> & {
|
|
33
|
-
menuItemOptionRef?:
|
|
33
|
+
menuItemOptionRef?: Ref<HTMLDivElement>;
|
|
34
34
|
}) | null;
|
|
35
35
|
export type ListBoxMenuItemComponent = ForwardRefReturn<ListBoxMenuItemForwardedRef, ListBoxMenuItemProps>;
|
|
36
36
|
declare const _default: ListBoxMenuItemComponent;
|
|
@@ -14,6 +14,7 @@ var cx = require('classnames');
|
|
|
14
14
|
var React = require('react');
|
|
15
15
|
var PropTypes = require('prop-types');
|
|
16
16
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
17
|
+
var useMergedRefs = require('../../internal/useMergedRefs.js');
|
|
17
18
|
|
|
18
19
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
19
20
|
|
|
@@ -21,24 +22,42 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
|
21
22
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
22
23
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Determines if the content of an element is truncated.
|
|
27
|
+
*
|
|
28
|
+
* Merges a forwarded ref with a local ref to check the element's dimensions.
|
|
29
|
+
*
|
|
30
|
+
* @template T
|
|
31
|
+
* @param forwardedRef - A ref passed from the parent component.
|
|
32
|
+
* @param deps - Dependencies to re-run the truncation check.
|
|
33
|
+
* @returns An object containing the truncation state and the merged ref.
|
|
34
|
+
*/
|
|
35
|
+
const useIsTruncated = function (forwardedRef) {
|
|
36
|
+
let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
37
|
+
const localRef = React.useRef(null);
|
|
38
|
+
const mergedRef = useMergedRefs.useMergedRefs([...(forwardedRef ? [forwardedRef] : []), localRef]);
|
|
25
39
|
const [isTruncated, setIsTruncated] = React.useState(false);
|
|
26
40
|
React.useEffect(() => {
|
|
27
|
-
const element =
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
41
|
+
const element = localRef.current;
|
|
42
|
+
if (element) {
|
|
43
|
+
const {
|
|
44
|
+
offsetWidth,
|
|
45
|
+
scrollWidth
|
|
46
|
+
} = element;
|
|
47
|
+
setIsTruncated(offsetWidth < scrollWidth);
|
|
48
|
+
}
|
|
49
|
+
}, [localRef, ...deps]);
|
|
50
|
+
return {
|
|
51
|
+
isTruncated,
|
|
52
|
+
ref: mergedRef
|
|
53
|
+
};
|
|
54
|
+
};
|
|
36
55
|
/**
|
|
37
56
|
* `ListBoxMenuItem` is a helper component for managing the container class
|
|
38
57
|
* name, alongside any classes for any corresponding states, for a generic list
|
|
39
58
|
* box menu item.
|
|
40
59
|
*/
|
|
41
|
-
const ListBoxMenuItem = /*#__PURE__*/
|
|
60
|
+
const ListBoxMenuItem = /*#__PURE__*/React.forwardRef((_ref, forwardedRef) => {
|
|
42
61
|
let {
|
|
43
62
|
children,
|
|
44
63
|
isActive = false,
|
|
@@ -47,8 +66,11 @@ const ListBoxMenuItem = /*#__PURE__*/React__default["default"].forwardRef(functi
|
|
|
47
66
|
...rest
|
|
48
67
|
} = _ref;
|
|
49
68
|
const prefix = usePrefix.usePrefix();
|
|
50
|
-
const
|
|
51
|
-
const
|
|
69
|
+
const menuItemOptionRefProp = forwardedRef && typeof forwardedRef !== 'function' ? forwardedRef.menuItemOptionRef : undefined;
|
|
70
|
+
const {
|
|
71
|
+
isTruncated,
|
|
72
|
+
ref: menuItemOptionRef
|
|
73
|
+
} = useIsTruncated(menuItemOptionRefProp, [children]);
|
|
52
74
|
const className = cx__default["default"](`${prefix}--list-box__menu-item`, {
|
|
53
75
|
[`${prefix}--list-box__menu-item--active`]: isActive,
|
|
54
76
|
[`${prefix}--list-box__menu-item--highlighted`]: isHighlighted
|
|
@@ -58,7 +80,7 @@ const ListBoxMenuItem = /*#__PURE__*/React__default["default"].forwardRef(functi
|
|
|
58
80
|
title: isTruncated ? title : undefined
|
|
59
81
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
60
82
|
className: `${prefix}--list-box__menu-item__option`,
|
|
61
|
-
ref:
|
|
83
|
+
ref: menuItemOptionRef
|
|
62
84
|
}, children));
|
|
63
85
|
});
|
|
64
86
|
ListBoxMenuItem.displayName = 'ListBoxMenuItem';
|
|
@@ -14,14 +14,14 @@ var cx = require('classnames');
|
|
|
14
14
|
var PropTypes = require('prop-types');
|
|
15
15
|
var React = require('react');
|
|
16
16
|
var ReactDOM = require('react-dom');
|
|
17
|
+
var keys = require('../../internal/keyboard/keys.js');
|
|
18
|
+
var match = require('../../internal/keyboard/match.js');
|
|
17
19
|
var useMergedRefs = require('../../internal/useMergedRefs.js');
|
|
18
20
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
19
21
|
var deprecate = require('../../prop-types/deprecate.js');
|
|
20
22
|
var MenuContext = require('./MenuContext.js');
|
|
21
23
|
var environment = require('../../internal/environment.js');
|
|
22
24
|
var useLayoutDirection = require('../LayoutDirection/useLayoutDirection.js');
|
|
23
|
-
var match = require('../../internal/keyboard/match.js');
|
|
24
|
-
var keys = require('../../internal/keyboard/keys.js');
|
|
25
25
|
|
|
26
26
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
27
27
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp.
|
|
2
|
+
* Copyright IBM Corp. 2025
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -31,7 +31,7 @@ export interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {
|
|
|
31
31
|
*/
|
|
32
32
|
onClick?: (event: KeyboardEvent<HTMLLIElement> | MouseEvent<HTMLLIElement>) => void;
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
34
|
+
* A component used to render an icon.
|
|
35
35
|
*/
|
|
36
36
|
renderIcon?: FC;
|
|
37
37
|
/**
|
|
@@ -15,6 +15,8 @@ var PropTypes = require('prop-types');
|
|
|
15
15
|
var React = require('react');
|
|
16
16
|
var react = require('@floating-ui/react');
|
|
17
17
|
var iconsReact = require('@carbon/icons-react');
|
|
18
|
+
var keys = require('../../internal/keyboard/keys.js');
|
|
19
|
+
var match = require('../../internal/keyboard/match.js');
|
|
18
20
|
var useControllableState = require('../../internal/useControllableState.js');
|
|
19
21
|
var useMergedRefs = require('../../internal/useMergedRefs.js');
|
|
20
22
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
@@ -22,9 +24,7 @@ var Menu = require('./Menu.js');
|
|
|
22
24
|
var MenuContext = require('./MenuContext.js');
|
|
23
25
|
require('../Text/index.js');
|
|
24
26
|
var useLayoutDirection = require('../LayoutDirection/useLayoutDirection.js');
|
|
25
|
-
var match = require('../../internal/keyboard/match.js');
|
|
26
27
|
var Text = require('../Text/Text.js');
|
|
27
|
-
var keys = require('../../internal/keyboard/keys.js');
|
|
28
28
|
|
|
29
29
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
30
30
|
|
|
@@ -222,7 +222,7 @@ MenuItem.propTypes = {
|
|
|
222
222
|
// @ts-ignore-next-line -- avoid spurious (?) TS2322 error
|
|
223
223
|
onClick: PropTypes__default["default"].func,
|
|
224
224
|
/**
|
|
225
|
-
*
|
|
225
|
+
* A component used to render an icon.
|
|
226
226
|
*/
|
|
227
227
|
// @ts-ignore-next-line -- avoid spurious (?) TS2322 error
|
|
228
228
|
renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
|
|
@@ -19,22 +19,23 @@ var Button = require('../Button/Button.js');
|
|
|
19
19
|
require('../Button/Button.Skeleton.js');
|
|
20
20
|
var ButtonSet = require('../ButtonSet/ButtonSet.js');
|
|
21
21
|
var InlineLoading = require('../InlineLoading/InlineLoading.js');
|
|
22
|
-
var index$
|
|
22
|
+
var index$3 = require('../Layer/index.js');
|
|
23
23
|
var requiredIfGivenPropIsTruthy = require('../../prop-types/requiredIfGivenPropIsTruthy.js');
|
|
24
24
|
var wrapFocus = require('../../internal/wrapFocus.js');
|
|
25
25
|
var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
|
|
26
26
|
var useId = require('../../internal/useId.js');
|
|
27
27
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
28
|
+
var keys = require('../../internal/keyboard/keys.js');
|
|
29
|
+
var match = require('../../internal/keyboard/match.js');
|
|
28
30
|
var index$2 = require('../IconButton/index.js');
|
|
29
31
|
var noopFn = require('../../internal/noopFn.js');
|
|
30
32
|
require('../Text/index.js');
|
|
31
33
|
var index = require('../FeatureFlags/index.js');
|
|
32
34
|
var events = require('../../tools/events.js');
|
|
33
35
|
var deprecate = require('../../prop-types/deprecate.js');
|
|
36
|
+
var index$1 = require('../Dialog/index.js');
|
|
34
37
|
var debounce = require('../../node_modules/es-toolkit/dist/compat/function/debounce.mjs.js');
|
|
35
|
-
var match = require('../../internal/keyboard/match.js');
|
|
36
38
|
var Text = require('../Text/Text.js');
|
|
37
|
-
var keys = require('../../internal/keyboard/keys.js');
|
|
38
39
|
|
|
39
40
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
40
41
|
|
|
@@ -96,7 +97,7 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
|
|
|
96
97
|
[`${prefix}--btn--loading`]: loadingStatus !== 'inactive'
|
|
97
98
|
});
|
|
98
99
|
const loadingActive = loadingStatus !== 'inactive';
|
|
99
|
-
const
|
|
100
|
+
const enableDialogElement = index.useFeatureFlag('enable-experimental-focus-wrap-without-sentinels') || index.useFeatureFlag('enable-dialog-element');
|
|
100
101
|
function isCloseButton(element) {
|
|
101
102
|
return !onSecondarySubmit && element === secondaryButton.current || element.classList.contains(modalCloseButtonClass);
|
|
102
103
|
}
|
|
@@ -109,13 +110,6 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
|
|
|
109
110
|
if (match.match(evt, keys.Enter) && shouldSubmitOnEnter && !isCloseButton(evt.target)) {
|
|
110
111
|
onRequestSubmit(evt);
|
|
111
112
|
}
|
|
112
|
-
if (focusTrapWithoutSentinels && match.match(evt, keys.Tab) && innerModal.current) {
|
|
113
|
-
wrapFocus.wrapFocusWithoutSentinels({
|
|
114
|
-
containerNode: innerModal.current,
|
|
115
|
-
currentActiveNode: evt.target,
|
|
116
|
-
event: evt
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
113
|
}
|
|
120
114
|
}
|
|
121
115
|
function handleOnClick(evt) {
|
|
@@ -191,40 +185,46 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
|
|
|
191
185
|
}
|
|
192
186
|
React.useEffect(() => {
|
|
193
187
|
return () => {
|
|
194
|
-
|
|
188
|
+
if (!enableDialogElement) {
|
|
189
|
+
toggleClass["default"](document.body, `${prefix}--body--with-modal-open`, false);
|
|
190
|
+
}
|
|
195
191
|
};
|
|
196
|
-
}, [prefix]);
|
|
192
|
+
}, [prefix, enableDialogElement]);
|
|
197
193
|
React.useEffect(() => {
|
|
198
|
-
|
|
199
|
-
|
|
194
|
+
if (!enableDialogElement) {
|
|
195
|
+
toggleClass["default"](document.body, `${prefix}--body--with-modal-open`, open ?? false);
|
|
196
|
+
}
|
|
197
|
+
}, [open, prefix, enableDialogElement]);
|
|
200
198
|
React.useEffect(() => {
|
|
201
|
-
if (!open && launcherButtonRef) {
|
|
199
|
+
if (!enableDialogElement && !open && launcherButtonRef) {
|
|
202
200
|
setTimeout(() => {
|
|
203
201
|
if ('current' in launcherButtonRef) {
|
|
204
202
|
launcherButtonRef.current?.focus();
|
|
205
203
|
}
|
|
206
204
|
});
|
|
207
205
|
}
|
|
208
|
-
}, [open, launcherButtonRef]);
|
|
206
|
+
}, [open, launcherButtonRef, enableDialogElement]);
|
|
209
207
|
React.useEffect(() => {
|
|
210
|
-
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
target
|
|
208
|
+
if (!enableDialogElement) {
|
|
209
|
+
const initialFocus = focusContainerElement => {
|
|
210
|
+
const containerElement = focusContainerElement || innerModal.current;
|
|
211
|
+
const primaryFocusElement = containerElement ? containerElement.querySelector(danger ? `.${prefix}--btn--secondary` : selectorPrimaryFocus) : null;
|
|
212
|
+
if (primaryFocusElement) {
|
|
213
|
+
return primaryFocusElement;
|
|
214
|
+
}
|
|
215
|
+
return button && button.current;
|
|
216
|
+
};
|
|
217
|
+
const focusButton = focusContainerElement => {
|
|
218
|
+
const target = initialFocus(focusContainerElement);
|
|
219
|
+
if (target !== null) {
|
|
220
|
+
target.focus();
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
if (open) {
|
|
224
|
+
focusButton(innerModal.current);
|
|
222
225
|
}
|
|
223
|
-
};
|
|
224
|
-
if (open) {
|
|
225
|
-
focusButton(innerModal.current);
|
|
226
226
|
}
|
|
227
|
-
}, [open, selectorPrimaryFocus, danger, prefix]);
|
|
227
|
+
}, [open, selectorPrimaryFocus, danger, prefix, enableDialogElement]);
|
|
228
228
|
useIsomorphicEffect["default"](() => {
|
|
229
229
|
if (contentRef.current) {
|
|
230
230
|
setIsScrollable(contentRef.current.scrollHeight > contentRef.current.clientHeight);
|
|
@@ -264,7 +264,84 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
|
|
|
264
264
|
tabIndex: "-1",
|
|
265
265
|
className: `${modalCloseButtonClass}__icon`
|
|
266
266
|
})));
|
|
267
|
-
|
|
267
|
+
|
|
268
|
+
// alertdialog is the only permitted aria role for a native dialog element
|
|
269
|
+
// https://www.w3.org/TR/html-aria/#docconformance:~:text=Role%3A-,alertdialog,-.%20(dialog%20is
|
|
270
|
+
const isAlertDialog = alert && !passiveModal;
|
|
271
|
+
const modalBody = enableDialogElement ? /*#__PURE__*/React__default["default"].createElement(index$1.unstable__Dialog, {
|
|
272
|
+
open: open,
|
|
273
|
+
modal: true,
|
|
274
|
+
ref: innerModal,
|
|
275
|
+
role: isAlertDialog ? 'alertdialog' : '',
|
|
276
|
+
"aria-describedby": isAlertDialog ? modalBodyId : '',
|
|
277
|
+
className: containerClasses,
|
|
278
|
+
"aria-label": ariaLabel
|
|
279
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
280
|
+
className: `${prefix}--modal-header`
|
|
281
|
+
}, modalLabel && /*#__PURE__*/React__default["default"].createElement(Text.Text, {
|
|
282
|
+
as: "h2",
|
|
283
|
+
id: modalLabelId,
|
|
284
|
+
className: `${prefix}--modal-header__label`
|
|
285
|
+
}, modalLabel), /*#__PURE__*/React__default["default"].createElement(Text.Text, {
|
|
286
|
+
as: "h2",
|
|
287
|
+
id: modalHeadingId,
|
|
288
|
+
className: `${prefix}--modal-header__heading`
|
|
289
|
+
}, modalHeading), decorator ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
290
|
+
className: `${prefix}--modal--inner__decorator`
|
|
291
|
+
}, normalizedDecorator) : '', /*#__PURE__*/React__default["default"].createElement("div", {
|
|
292
|
+
className: `${prefix}--modal-close-button`
|
|
293
|
+
}, /*#__PURE__*/React__default["default"].createElement(index$2.IconButton, {
|
|
294
|
+
className: modalCloseButtonClass,
|
|
295
|
+
label: closeButtonLabel,
|
|
296
|
+
onClick: onRequestClose,
|
|
297
|
+
"aria-label": closeButtonLabel,
|
|
298
|
+
align: "left",
|
|
299
|
+
ref: button
|
|
300
|
+
}, /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, {
|
|
301
|
+
size: 20,
|
|
302
|
+
"aria-hidden": "true",
|
|
303
|
+
tabIndex: "-1",
|
|
304
|
+
className: `${modalCloseButtonClass}__icon`
|
|
305
|
+
})))), /*#__PURE__*/React__default["default"].createElement(index$3.Layer, _rollupPluginBabelHelpers["extends"]({
|
|
306
|
+
ref: contentRef,
|
|
307
|
+
id: modalBodyId,
|
|
308
|
+
className: contentClasses
|
|
309
|
+
}, hasScrollingContentProps), children), !passiveModal && /*#__PURE__*/React__default["default"].createElement(ButtonSet["default"], {
|
|
310
|
+
className: footerClasses,
|
|
311
|
+
"aria-busy": loadingActive
|
|
312
|
+
}, Array.isArray(secondaryButtons) && secondaryButtons.length <= 2 ? secondaryButtons.map((_ref3, i) => {
|
|
313
|
+
let {
|
|
314
|
+
buttonText,
|
|
315
|
+
onClick: onButtonClick
|
|
316
|
+
} = _ref3;
|
|
317
|
+
return /*#__PURE__*/React__default["default"].createElement(Button["default"], {
|
|
318
|
+
key: `${buttonText}-${i}`,
|
|
319
|
+
kind: "secondary",
|
|
320
|
+
onClick: onButtonClick
|
|
321
|
+
}, buttonText);
|
|
322
|
+
}) : secondaryButtonText && /*#__PURE__*/React__default["default"].createElement(Button["default"], {
|
|
323
|
+
disabled: loadingActive,
|
|
324
|
+
kind: "secondary",
|
|
325
|
+
onClick: onSecondaryButtonClick,
|
|
326
|
+
ref: secondaryButton
|
|
327
|
+
}, secondaryButtonText), /*#__PURE__*/React__default["default"].createElement(Button["default"], {
|
|
328
|
+
className: primaryButtonClass,
|
|
329
|
+
kind: danger ? 'danger' : 'primary',
|
|
330
|
+
disabled: loadingActive || primaryButtonDisabled,
|
|
331
|
+
onClick: onRequestSubmit,
|
|
332
|
+
ref: button
|
|
333
|
+
}, loadingStatus === 'inactive' ? primaryButtonText : /*#__PURE__*/React__default["default"].createElement(InlineLoading["default"], {
|
|
334
|
+
status: loadingStatus,
|
|
335
|
+
description: loadingDescription,
|
|
336
|
+
iconDescription: loadingIconDescription,
|
|
337
|
+
className: `${prefix}--inline-loading--btn`,
|
|
338
|
+
onSuccess: onLoadingSuccess
|
|
339
|
+
})))) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, !enableDialogElement && /*#__PURE__*/React__default["default"].createElement("span", {
|
|
340
|
+
ref: startTrap,
|
|
341
|
+
tabIndex: 0,
|
|
342
|
+
role: "link",
|
|
343
|
+
className: `${prefix}--visually-hidden`
|
|
344
|
+
}, "Focus sentinel"), /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
|
|
268
345
|
ref: innerModal,
|
|
269
346
|
role: "dialog"
|
|
270
347
|
}, alertDialogProps, {
|
|
@@ -284,18 +361,18 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
|
|
|
284
361
|
className: `${prefix}--modal-header__heading`
|
|
285
362
|
}, modalHeading), slug ? normalizedDecorator : decorator ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
286
363
|
className: `${prefix}--modal--inner__decorator`
|
|
287
|
-
}, normalizedDecorator) : '', !passiveModal && modalButton), /*#__PURE__*/React__default["default"].createElement(index$
|
|
364
|
+
}, normalizedDecorator) : '', !passiveModal && modalButton), /*#__PURE__*/React__default["default"].createElement(index$3.Layer, _rollupPluginBabelHelpers["extends"]({
|
|
288
365
|
ref: contentRef,
|
|
289
366
|
id: modalBodyId,
|
|
290
367
|
className: contentClasses
|
|
291
368
|
}, hasScrollingContentProps), children), !passiveModal && /*#__PURE__*/React__default["default"].createElement(ButtonSet["default"], {
|
|
292
369
|
className: footerClasses,
|
|
293
370
|
"aria-busy": loadingActive
|
|
294
|
-
}, Array.isArray(secondaryButtons) && secondaryButtons.length <= 2 ? secondaryButtons.map((
|
|
371
|
+
}, Array.isArray(secondaryButtons) && secondaryButtons.length <= 2 ? secondaryButtons.map((_ref4, i) => {
|
|
295
372
|
let {
|
|
296
373
|
buttonText,
|
|
297
374
|
onClick: onButtonClick
|
|
298
|
-
} =
|
|
375
|
+
} = _ref4;
|
|
299
376
|
return /*#__PURE__*/React__default["default"].createElement(Button["default"], {
|
|
300
377
|
key: `${buttonText}-${i}`,
|
|
301
378
|
kind: "secondary",
|
|
@@ -318,26 +395,21 @@ const Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_
|
|
|
318
395
|
iconDescription: loadingIconDescription,
|
|
319
396
|
className: `${prefix}--inline-loading--btn`,
|
|
320
397
|
onSuccess: onLoadingSuccess
|
|
321
|
-
}))))
|
|
322
|
-
|
|
398
|
+
})))), !enableDialogElement && /*#__PURE__*/React__default["default"].createElement("span", {
|
|
399
|
+
ref: endTrap,
|
|
400
|
+
tabIndex: 0,
|
|
401
|
+
role: "link",
|
|
402
|
+
className: `${prefix}--visually-hidden`
|
|
403
|
+
}, "Focus sentinel"));
|
|
404
|
+
return /*#__PURE__*/React__default["default"].createElement(index$3.Layer, _rollupPluginBabelHelpers["extends"]({}, rest, {
|
|
323
405
|
level: 0,
|
|
324
406
|
onKeyDown: handleKeyDown,
|
|
325
407
|
onClick: events.composeEventHandlers([rest?.onClick, handleOnClick]),
|
|
326
|
-
onBlur: !
|
|
408
|
+
onBlur: !enableDialogElement ? handleBlur : () => {},
|
|
327
409
|
className: modalClasses,
|
|
328
410
|
role: "presentation",
|
|
329
411
|
ref: ref
|
|
330
|
-
}),
|
|
331
|
-
ref: startTrap,
|
|
332
|
-
tabIndex: 0,
|
|
333
|
-
role: "link",
|
|
334
|
-
className: `${prefix}--visually-hidden`
|
|
335
|
-
}, "Focus sentinel"), modalBody, !focusTrapWithoutSentinels && /*#__PURE__*/React__default["default"].createElement("span", {
|
|
336
|
-
ref: endTrap,
|
|
337
|
-
tabIndex: 0,
|
|
338
|
-
role: "link",
|
|
339
|
-
className: `${prefix}--visually-hidden`
|
|
340
|
-
}, "Focus sentinel"));
|
|
412
|
+
}), modalBody);
|
|
341
413
|
});
|
|
342
414
|
Modal.propTypes = {
|
|
343
415
|
/**
|
|
@@ -17,8 +17,8 @@ var Button = require('../Button/Button.js');
|
|
|
17
17
|
require('../Button/Button.Skeleton.js');
|
|
18
18
|
var warning = require('../../internal/warning.js');
|
|
19
19
|
var noopFn = require('../../internal/noopFn.js');
|
|
20
|
-
var match = require('../../internal/keyboard/match.js');
|
|
21
20
|
var keys = require('../../internal/keyboard/keys.js');
|
|
21
|
+
var match = require('../../internal/keyboard/match.js');
|
|
22
22
|
|
|
23
23
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
24
24
|
|
|
@@ -21,6 +21,8 @@ var MultiSelectPropTypes = require('./MultiSelectPropTypes.js');
|
|
|
21
21
|
var index = require('../ListBox/index.js');
|
|
22
22
|
var ListBoxSelection = require('../ListBox/next/ListBoxSelection.js');
|
|
23
23
|
var ListBoxTrigger = require('../ListBox/next/ListBoxTrigger.js');
|
|
24
|
+
var keys = require('../../internal/keyboard/keys.js');
|
|
25
|
+
var match = require('../../internal/keyboard/match.js');
|
|
24
26
|
var itemToString = require('./tools/itemToString.js');
|
|
25
27
|
var mergeRefs = require('../../tools/mergeRefs.js');
|
|
26
28
|
var deprecate = require('../../prop-types/deprecate.js');
|
|
@@ -31,9 +33,7 @@ require('../FluidForm/FluidForm.js');
|
|
|
31
33
|
var FormContext = require('../FluidForm/FormContext.js');
|
|
32
34
|
var Selection = require('../../internal/Selection.js');
|
|
33
35
|
var react = require('@floating-ui/react');
|
|
34
|
-
var match = require('../../internal/keyboard/match.js');
|
|
35
36
|
var ListBoxPropTypes = require('../ListBox/ListBoxPropTypes.js');
|
|
36
|
-
var keys = require('../../internal/keyboard/keys.js');
|
|
37
37
|
|
|
38
38
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
39
39
|
|
|
@@ -426,7 +426,7 @@ const FilterableMultiSelect = /*#__PURE__*/React__default["default"].forwardRef(
|
|
|
426
426
|
});
|
|
427
427
|
function clearInputValue(event) {
|
|
428
428
|
const value = textInput.current?.value;
|
|
429
|
-
if (value?.length === 1 || event && match.match(event, keys.Escape)) {
|
|
429
|
+
if (value?.length === 1 || event && 'key' in event && match.match(event, keys.Escape)) {
|
|
430
430
|
setInputValue('');
|
|
431
431
|
} else {
|
|
432
432
|
setInputValue(value ?? '');
|
|
@@ -23,6 +23,8 @@ var Selection = require('../../internal/Selection.js');
|
|
|
23
23
|
var useId = require('../../internal/useId.js');
|
|
24
24
|
var mergeRefs = require('../../tools/mergeRefs.js');
|
|
25
25
|
var deprecate = require('../../prop-types/deprecate.js');
|
|
26
|
+
var keys = require('../../internal/keyboard/keys.js');
|
|
27
|
+
var match = require('../../internal/keyboard/match.js');
|
|
26
28
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
27
29
|
require('../FluidForm/FluidForm.js');
|
|
28
30
|
var FormContext = require('../FluidForm/FormContext.js');
|
|
@@ -31,9 +33,7 @@ require('../Checkbox/Checkbox.Skeleton.js');
|
|
|
31
33
|
var noopFn = require('../../internal/noopFn.js');
|
|
32
34
|
var react = require('@floating-ui/react');
|
|
33
35
|
var index = require('../FeatureFlags/index.js');
|
|
34
|
-
var match = require('../../internal/keyboard/match.js');
|
|
35
36
|
var ListBoxPropTypes = require('../ListBox/ListBoxPropTypes.js');
|
|
36
|
-
var keys = require('../../internal/keyboard/keys.js');
|
|
37
37
|
|
|
38
38
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
39
39
|
|
|
@@ -9,17 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
11
11
|
|
|
12
|
-
var deprecateFieldOnObject = require('../../internal/deprecateFieldOnObject.js');
|
|
13
12
|
var MultiSelect = require('./MultiSelect.js');
|
|
14
13
|
var FilterableMultiSelect = require('./FilterableMultiSelect.js');
|
|
15
14
|
|
|
16
|
-
FilterableMultiSelect["default"].displayName = '
|
|
17
|
-
// @ts-expect-error: The attribute indeed does not exist on the object,
|
|
18
|
-
// but since it is already deprecated, we do not have to fix it.
|
|
19
|
-
MultiSelect["default"].Filterable = FilterableMultiSelect["default"];
|
|
20
|
-
if (process.env.NODE_ENV !== "production") {
|
|
21
|
-
deprecateFieldOnObject.deprecateFieldOnObject(MultiSelect["default"], 'Filterable', FilterableMultiSelect["default"]);
|
|
22
|
-
}
|
|
15
|
+
FilterableMultiSelect["default"].displayName = 'FilterableMultiSelect';
|
|
23
16
|
|
|
24
17
|
exports.MultiSelect = MultiSelect["default"];
|
|
25
18
|
exports["default"] = MultiSelect["default"];
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2016,
|
|
2
|
+
* Copyright IBM Corp. 2016, 2025
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
|
-
import React, { type ReactNode, type MouseEvent, type
|
|
8
|
+
import React, { type ReactNode, type MouseEvent, type ButtonHTMLAttributes, type HTMLAttributes } from 'react';
|
|
9
9
|
import { type ButtonProps } from '../Button';
|
|
10
10
|
export interface NotificationActionButtonProps extends ButtonProps<'button'> {
|
|
11
11
|
/**
|
|
@@ -71,16 +71,9 @@ export interface NotificationButtonProps extends ButtonHTMLAttributes<HTMLButton
|
|
|
71
71
|
*/
|
|
72
72
|
notificationType?: 'toast' | 'inline' | 'actionable';
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
75
|
-
* Can be a React component class
|
|
74
|
+
* A component used to render an icon.
|
|
76
75
|
*/
|
|
77
|
-
renderIcon?:
|
|
78
|
-
className?: string;
|
|
79
|
-
name?: string;
|
|
80
|
-
}> | FunctionComponent<{
|
|
81
|
-
className?: string;
|
|
82
|
-
name?: string;
|
|
83
|
-
}>;
|
|
76
|
+
renderIcon?: React.ElementType;
|
|
84
77
|
}
|
|
85
78
|
export declare function NotificationButton({ 'aria-label': ariaLabel, ariaLabel: deprecatedAriaLabel, className, type, renderIcon: IconTag, name, notificationType, ...rest }: NotificationButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
86
79
|
export declare namespace NotificationButton {
|
|
@@ -108,8 +101,7 @@ export declare namespace NotificationButton {
|
|
|
108
101
|
*/
|
|
109
102
|
notificationType: PropTypes.Requireable<string>;
|
|
110
103
|
/**
|
|
111
|
-
*
|
|
112
|
-
* Can be a React component class
|
|
104
|
+
* A component used to render an icon.
|
|
113
105
|
*/
|
|
114
106
|
renderIcon: PropTypes.Requireable<object>;
|
|
115
107
|
/**
|
|
@@ -20,6 +20,8 @@ var Button = require('../Button/Button.js');
|
|
|
20
20
|
require('../Button/Button.Skeleton.js');
|
|
21
21
|
var useIsomorphicEffect = require('../../internal/useIsomorphicEffect.js');
|
|
22
22
|
var useNoInteractiveChildren = require('../../internal/useNoInteractiveChildren.js');
|
|
23
|
+
var keys = require('../../internal/keyboard/keys.js');
|
|
24
|
+
var match = require('../../internal/keyboard/match.js');
|
|
23
25
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
24
26
|
var useId = require('../../internal/useId.js');
|
|
25
27
|
var noopFn = require('../../internal/noopFn.js');
|
|
@@ -27,9 +29,7 @@ var wrapFocus = require('../../internal/wrapFocus.js');
|
|
|
27
29
|
var index = require('../FeatureFlags/index.js');
|
|
28
30
|
var warning = require('../../internal/warning.js');
|
|
29
31
|
var deprecateValuesWithin = require('../../prop-types/deprecateValuesWithin.js');
|
|
30
|
-
var match = require('../../internal/keyboard/match.js');
|
|
31
32
|
var Text = require('../Text/Text.js');
|
|
32
|
-
var keys = require('../../internal/keyboard/keys.js');
|
|
33
33
|
|
|
34
34
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
35
35
|
|
|
@@ -155,8 +155,7 @@ NotificationButton.propTypes = {
|
|
|
155
155
|
*/
|
|
156
156
|
notificationType: PropTypes__default["default"].oneOf(['toast', 'inline', 'actionable']),
|
|
157
157
|
/**
|
|
158
|
-
*
|
|
159
|
-
* Can be a React component class
|
|
158
|
+
* A component used to render an icon.
|
|
160
159
|
*/
|
|
161
160
|
renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
|
|
162
161
|
/**
|