@carbon/react 1.99.0 → 1.100.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 +978 -978
- package/es/components/BadgeIndicator/index.d.ts +1 -1
- package/es/components/BadgeIndicator/index.js +8 -6
- package/es/components/Breadcrumb/BreadcrumbItem.d.ts +1 -1
- package/es/components/Breadcrumb/BreadcrumbItem.js +6 -7
- package/es/components/Button/Button.Skeleton.d.ts +28 -2
- package/es/components/Button/Button.js +3 -2
- package/es/components/ChatButton/ChatButton.d.ts +3 -2
- package/es/components/CheckboxGroup/CheckboxGroup.d.ts +60 -2
- package/es/components/ComboBox/ComboBox.d.ts +6 -7
- package/es/components/ComboBox/ComboBox.js +22 -10
- package/es/components/ComposedModal/ComposedModal.d.ts +2 -2
- package/es/components/ContainedList/ContainedList.d.ts +35 -6
- package/es/components/ContainedList/ContainedList.js +3 -1
- package/es/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +32 -3
- package/es/components/ContainedList/index.d.ts +1 -1
- package/es/components/ContainedList/index.js +4 -1
- package/es/components/DangerButton/DangerButton.d.ts +1 -1
- package/es/components/DataTable/DataTable.d.ts +22 -5
- package/es/components/DataTable/DataTable.js +1 -1
- package/es/components/DataTable/TableExpandRow.d.ts +1 -1
- package/es/components/DataTable/TableExpandRow.js +2 -2
- package/es/components/DataTable/TableHeader.d.ts +1 -1
- package/es/components/DataTable/TableHeader.js +18 -16
- package/es/components/DataTable/TableToolbar.d.ts +25 -1
- package/es/components/DataTable/TableToolbarMenu.d.ts +25 -5
- package/es/components/DataTable/TableToolbarMenu.js +0 -3
- package/es/components/DataTableSkeleton/DataTableSkeleton.d.ts +51 -2
- package/es/components/DataTableSkeleton/DataTableSkeleton.js +6 -0
- package/es/components/DatePicker/DatePicker.d.ts +2 -2
- package/es/components/DatePicker/DatePicker.js +38 -53
- package/es/components/DatePicker/plugins/fixEventsPlugin.js +28 -2
- package/es/components/DatePickerInput/DatePickerInput.d.ts +1 -1
- package/es/components/DatePickerInput/DatePickerInput.js +3 -2
- package/es/components/Dialog/Dialog.d.ts +1 -1
- package/es/components/Dropdown/Dropdown.Skeleton.d.ts +19 -2
- package/es/components/Dropdown/Dropdown.d.ts +3 -4
- package/es/components/Dropdown/Dropdown.js +16 -13
- package/es/components/ExpandableSearch/ExpandableSearch.d.ts +1 -1
- package/es/components/ExpandableSearch/ExpandableSearch.js +14 -12
- package/es/components/FileUploader/FileUploader.d.ts +1 -1
- package/es/components/FileUploader/FileUploader.js +2 -2
- package/es/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
- package/es/components/FileUploader/FileUploaderDropContainer.js +28 -10
- package/es/components/FluidComboBox/FluidComboBox.Skeleton.d.ts +11 -3
- package/es/components/FluidComboBox/FluidComboBox.d.ts +2 -7
- package/es/components/FluidComboBox/FluidComboBox.js +1 -2
- package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.d.ts +15 -3
- package/es/components/FluidDatePicker/FluidDatePicker.d.ts +2 -2
- package/es/components/FluidDropdown/FluidDropdown.Skeleton.d.ts +11 -3
- package/es/components/FluidDropdown/FluidDropdown.d.ts +1 -6
- package/es/components/FluidDropdown/FluidDropdown.js +1 -2
- package/es/components/FluidForm/FluidForm.d.ts +15 -2
- package/es/components/FluidMultiSelect/FluidFilterableMultiSelect.d.ts +2 -2
- package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.d.ts +11 -3
- package/es/components/FluidMultiSelect/FluidMultiSelect.d.ts +1 -6
- package/es/components/FluidMultiSelect/FluidMultiSelect.js +1 -2
- package/es/components/FluidNumberInput/FluidNumberInput.Skeleton.d.ts +11 -3
- package/es/components/FluidNumberInput/FluidNumberInput.d.ts +1 -1
- package/es/components/FluidSearch/FluidSearch.Skeleton.d.ts +11 -3
- package/es/components/FluidSearch/FluidSearch.d.ts +1 -1
- package/es/components/FluidSearch/FluidSearch.js +3 -3
- package/es/components/FluidSelect/FluidSelect.Skeleton.d.ts +11 -3
- package/es/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +11 -3
- package/es/components/FluidTextArea/FluidTextArea.d.ts +95 -1
- package/es/components/FluidTextInput/FluidPasswordInput.d.ts +83 -2
- package/es/components/FluidTextInput/FluidTextInput.Skeleton.d.ts +11 -3
- package/es/components/Grid/GridContext.d.ts +19 -1
- package/es/components/IconButton/index.d.ts +1 -1
- package/es/components/IconButton/index.js +2 -2
- package/es/components/InlineLoading/InlineLoading.js +5 -11
- package/es/components/Link/Link.js +3 -0
- package/es/components/ListBox/ListBoxField.d.ts +35 -2
- package/es/components/ListBox/ListBoxMenuIcon.d.ts +16 -3
- package/es/components/ListBox/ListBoxMenuItem.d.ts +1 -1
- package/es/components/ListBox/ListBoxSelection.d.ts +34 -3
- package/es/components/Menu/MenuItem.d.ts +2 -2
- package/es/components/MultiSelect/FilterableMultiSelect.d.ts +2 -2
- package/es/components/MultiSelect/FilterableMultiSelect.js +22 -13
- package/es/components/MultiSelect/MultiSelect.d.ts +3 -4
- package/es/components/MultiSelect/MultiSelect.js +24 -22
- package/es/components/Notification/Notification.d.ts +8 -7
- package/es/components/Notification/Notification.js +4 -4
- package/es/components/OverflowMenu/OverflowMenu.d.ts +1 -1
- package/es/components/OverflowMenu/OverflowMenu.js +0 -1
- package/es/components/OverflowMenu/index.d.ts +1 -1
- package/es/components/PageHeader/PageHeader.d.ts +3 -3
- package/es/components/Popover/index.js +21 -12
- package/es/components/Search/Search.d.ts +2 -2
- package/es/components/Select/Select.d.ts +1 -1
- package/es/components/Select/Select.js +2 -2
- package/es/components/SkeletonIcon/SkeletonIcon.d.ts +16 -2
- package/es/components/SkeletonText/SkeletonText.d.ts +1 -1
- package/es/components/Tag/Tag.d.ts +1 -1
- package/es/components/Tag/Tag.js +2 -0
- package/es/components/Text/Text.d.ts +1 -1
- package/es/components/Text/Text.js +4 -3
- package/es/components/Text/TextDirection.d.ts +1 -1
- package/es/components/Text/TextDirection.js +1 -3
- package/es/components/Text/TextDirectionContext.d.ts +3 -3
- package/es/components/TextArea/TextArea.js +1 -3
- package/es/components/TextInput/ControlledPasswordInput.d.ts +1 -1
- package/es/components/TextInput/ControlledPasswordInput.js +2 -2
- package/es/components/TextInput/PasswordInput.d.ts +1 -1
- package/es/components/TextInput/PasswordInput.js +2 -2
- package/es/components/TextInput/TextInput.d.ts +1 -1
- package/es/components/TextInput/TextInput.js +2 -2
- package/es/components/Tile/Tile.d.ts +1 -1
- package/es/components/Tile/Tile.js +37 -69
- package/es/components/Toggle/Toggle.Skeleton.d.ts +9 -3
- package/es/components/Toggletip/index.d.ts +1 -1
- package/es/components/Toggletip/index.js +9 -7
- package/es/components/Tooltip/DefinitionTooltip.d.ts +52 -1
- package/es/components/Tooltip/Tooltip.js +2 -0
- package/es/components/TreeView/TreeNode.d.ts +4 -4
- package/es/components/UIShell/Header.d.ts +20 -3
- package/es/components/UIShell/HeaderGlobalAction.d.ts +2 -2
- package/es/components/UIShell/HeaderName.js +1 -1
- package/es/components/UIShell/Link.d.ts +1 -1
- package/es/components/UIShell/Link.js +14 -14
- package/es/components/UIShell/SideNav.d.ts +3 -4
- package/es/components/UIShell/SideNav.js +37 -27
- package/es/components/UIShell/SideNavDivider.d.ts +11 -3
- package/es/components/UIShell/SideNavHeader.d.ts +24 -1
- package/es/components/UIShell/SideNavIcon.d.ts +20 -2
- package/es/components/UIShell/SideNavItem.d.ts +20 -2
- package/es/components/UIShell/SideNavItems.d.ts +22 -2
- package/es/components/UIShell/SideNavLink.d.ts +1 -1
- package/es/components/UIShell/SideNavLink.js +14 -14
- package/es/components/UIShell/SideNavMenu.d.ts +1 -1
- package/es/components/UIShell/SideNavMenu.js +2 -2
- package/es/components/UIShell/SideNavMenuItem.d.ts +2 -2
- package/es/components/UIShell/SideNavMenuItem.js +2 -2
- package/es/components/UIShell/SwitcherDivider.d.ts +10 -2
- package/es/internal/FloatingMenu.d.ts +1 -1
- package/es/internal/FloatingMenu.js +0 -2
- package/es/internal/PolymorphicProps.d.ts +3 -3
- package/es/internal/useNoInteractiveChildren.d.ts +1 -1
- package/es/internal/useNoInteractiveChildren.js +8 -10
- package/es/internal/useOutsideClick.d.ts +1 -1
- package/es/internal/useOutsideClick.js +0 -4
- package/lib/components/BadgeIndicator/index.d.ts +1 -1
- package/lib/components/BadgeIndicator/index.js +7 -5
- package/lib/components/Breadcrumb/BreadcrumbItem.d.ts +1 -1
- package/lib/components/Breadcrumb/BreadcrumbItem.js +5 -6
- package/lib/components/Button/Button.Skeleton.d.ts +28 -2
- package/lib/components/Button/Button.js +3 -2
- package/lib/components/ChatButton/ChatButton.d.ts +3 -2
- package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +60 -2
- package/lib/components/ComboBox/ComboBox.d.ts +6 -7
- package/lib/components/ComboBox/ComboBox.js +22 -10
- package/lib/components/ComposedModal/ComposedModal.d.ts +2 -2
- package/lib/components/ContainedList/ContainedList.d.ts +35 -6
- package/lib/components/ContainedList/ContainedList.js +3 -1
- package/lib/components/ContainedList/ContainedListItem/ContainedListItem.d.ts +32 -3
- package/lib/components/ContainedList/index.d.ts +1 -1
- package/lib/components/ContainedList/index.js +4 -1
- package/lib/components/DangerButton/DangerButton.d.ts +1 -1
- package/lib/components/DataTable/DataTable.d.ts +22 -5
- package/lib/components/DataTable/DataTable.js +1 -1
- package/lib/components/DataTable/TableExpandRow.d.ts +1 -1
- package/lib/components/DataTable/TableHeader.d.ts +1 -1
- package/lib/components/DataTable/TableHeader.js +17 -15
- package/lib/components/DataTable/TableToolbar.d.ts +25 -1
- package/lib/components/DataTable/TableToolbarMenu.d.ts +25 -5
- package/lib/components/DataTable/TableToolbarMenu.js +0 -3
- package/lib/components/DataTableSkeleton/DataTableSkeleton.d.ts +51 -2
- package/lib/components/DataTableSkeleton/DataTableSkeleton.js +6 -0
- package/lib/components/DatePicker/DatePicker.d.ts +2 -2
- package/lib/components/DatePicker/DatePicker.js +37 -52
- package/lib/components/DatePicker/plugins/fixEventsPlugin.js +28 -2
- package/lib/components/DatePickerInput/DatePickerInput.d.ts +1 -1
- package/lib/components/DatePickerInput/DatePickerInput.js +2 -1
- package/lib/components/Dialog/Dialog.d.ts +1 -1
- package/lib/components/Dropdown/Dropdown.Skeleton.d.ts +19 -2
- package/lib/components/Dropdown/Dropdown.d.ts +3 -4
- package/lib/components/Dropdown/Dropdown.js +16 -13
- package/lib/components/ExpandableSearch/ExpandableSearch.d.ts +1 -1
- package/lib/components/ExpandableSearch/ExpandableSearch.js +13 -11
- package/lib/components/FileUploader/FileUploader.d.ts +1 -1
- package/lib/components/FileUploader/FileUploaderDropContainer.d.ts +1 -1
- package/lib/components/FileUploader/FileUploaderDropContainer.js +28 -10
- package/lib/components/FluidComboBox/FluidComboBox.Skeleton.d.ts +11 -3
- package/lib/components/FluidComboBox/FluidComboBox.d.ts +2 -7
- package/lib/components/FluidComboBox/FluidComboBox.js +1 -2
- package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.d.ts +15 -3
- package/lib/components/FluidDatePicker/FluidDatePicker.d.ts +2 -2
- package/lib/components/FluidDropdown/FluidDropdown.Skeleton.d.ts +11 -3
- package/lib/components/FluidDropdown/FluidDropdown.d.ts +1 -6
- package/lib/components/FluidDropdown/FluidDropdown.js +1 -2
- package/lib/components/FluidForm/FluidForm.d.ts +15 -2
- package/lib/components/FluidMultiSelect/FluidFilterableMultiSelect.d.ts +2 -2
- package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.d.ts +11 -3
- package/lib/components/FluidMultiSelect/FluidMultiSelect.d.ts +1 -6
- package/lib/components/FluidMultiSelect/FluidMultiSelect.js +1 -2
- package/lib/components/FluidNumberInput/FluidNumberInput.Skeleton.d.ts +11 -3
- package/lib/components/FluidNumberInput/FluidNumberInput.d.ts +1 -1
- package/lib/components/FluidSearch/FluidSearch.Skeleton.d.ts +11 -3
- package/lib/components/FluidSearch/FluidSearch.d.ts +1 -1
- package/lib/components/FluidSearch/FluidSearch.js +2 -2
- package/lib/components/FluidSelect/FluidSelect.Skeleton.d.ts +11 -3
- package/lib/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +11 -3
- package/lib/components/FluidTextArea/FluidTextArea.d.ts +95 -1
- package/lib/components/FluidTextInput/FluidPasswordInput.d.ts +83 -2
- package/lib/components/FluidTextInput/FluidTextInput.Skeleton.d.ts +11 -3
- package/lib/components/Grid/GridContext.d.ts +19 -1
- package/lib/components/IconButton/index.d.ts +1 -1
- package/lib/components/InlineLoading/InlineLoading.js +5 -11
- package/lib/components/Link/Link.js +3 -0
- package/lib/components/ListBox/ListBoxField.d.ts +35 -2
- package/lib/components/ListBox/ListBoxMenuIcon.d.ts +16 -3
- package/lib/components/ListBox/ListBoxMenuItem.d.ts +1 -1
- package/lib/components/ListBox/ListBoxSelection.d.ts +34 -3
- package/lib/components/Menu/MenuItem.d.ts +2 -2
- package/lib/components/MultiSelect/FilterableMultiSelect.d.ts +2 -2
- package/lib/components/MultiSelect/FilterableMultiSelect.js +22 -13
- package/lib/components/MultiSelect/MultiSelect.d.ts +3 -4
- package/lib/components/MultiSelect/MultiSelect.js +24 -22
- package/lib/components/Notification/Notification.d.ts +8 -7
- package/lib/components/Notification/Notification.js +4 -4
- package/lib/components/OverflowMenu/OverflowMenu.d.ts +1 -1
- package/lib/components/OverflowMenu/OverflowMenu.js +0 -1
- package/lib/components/OverflowMenu/index.d.ts +1 -1
- package/lib/components/PageHeader/PageHeader.d.ts +3 -3
- package/lib/components/Popover/index.js +19 -10
- package/lib/components/Search/Search.d.ts +2 -2
- package/lib/components/Select/Select.d.ts +1 -1
- package/lib/components/SkeletonIcon/SkeletonIcon.d.ts +16 -2
- package/lib/components/SkeletonText/SkeletonText.d.ts +1 -1
- package/lib/components/Tag/Tag.d.ts +1 -1
- package/lib/components/Tag/Tag.js +2 -0
- package/lib/components/Text/Text.d.ts +1 -1
- package/lib/components/Text/Text.js +3 -2
- package/lib/components/Text/TextDirection.d.ts +1 -1
- package/lib/components/Text/TextDirection.js +1 -3
- package/lib/components/Text/TextDirectionContext.d.ts +3 -3
- package/lib/components/TextArea/TextArea.js +1 -3
- package/lib/components/TextInput/ControlledPasswordInput.d.ts +1 -1
- package/lib/components/TextInput/PasswordInput.d.ts +1 -1
- package/lib/components/TextInput/TextInput.d.ts +1 -1
- package/lib/components/Tile/Tile.d.ts +1 -1
- package/lib/components/Tile/Tile.js +35 -67
- package/lib/components/Toggle/Toggle.Skeleton.d.ts +9 -3
- package/lib/components/Toggletip/index.d.ts +1 -1
- package/lib/components/Toggletip/index.js +7 -5
- package/lib/components/Tooltip/DefinitionTooltip.d.ts +52 -1
- package/lib/components/Tooltip/Tooltip.js +2 -0
- package/lib/components/TreeView/TreeNode.d.ts +4 -4
- package/lib/components/UIShell/Header.d.ts +20 -3
- package/lib/components/UIShell/HeaderGlobalAction.d.ts +2 -2
- package/lib/components/UIShell/HeaderName.js +1 -1
- package/lib/components/UIShell/Link.d.ts +1 -1
- package/lib/components/UIShell/Link.js +13 -13
- package/lib/components/UIShell/SideNav.d.ts +3 -4
- package/lib/components/UIShell/SideNav.js +36 -26
- package/lib/components/UIShell/SideNavDivider.d.ts +11 -3
- package/lib/components/UIShell/SideNavHeader.d.ts +24 -1
- package/lib/components/UIShell/SideNavIcon.d.ts +20 -2
- package/lib/components/UIShell/SideNavItem.d.ts +20 -2
- package/lib/components/UIShell/SideNavItems.d.ts +22 -2
- package/lib/components/UIShell/SideNavLink.d.ts +1 -1
- package/lib/components/UIShell/SideNavLink.js +14 -14
- package/lib/components/UIShell/SideNavMenu.d.ts +1 -1
- package/lib/components/UIShell/SideNavMenuItem.d.ts +2 -2
- package/lib/components/UIShell/SwitcherDivider.d.ts +10 -2
- package/lib/internal/FloatingMenu.d.ts +1 -1
- package/lib/internal/FloatingMenu.js +0 -2
- package/lib/internal/PolymorphicProps.d.ts +3 -3
- package/lib/internal/useNoInteractiveChildren.d.ts +1 -1
- package/lib/internal/useNoInteractiveChildren.js +8 -10
- package/lib/internal/useOutsideClick.d.ts +1 -1
- package/lib/internal/useOutsideClick.js +0 -4
- package/package.json +7 -7
- package/scss/_carbon-utilities.scss +9 -0
- package/telemetry.yml +0 -1
- package/es/internal/createClassWrapper.d.ts +0 -12
- package/lib/internal/createClassWrapper.d.ts +0 -12
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import PropTypes from 'prop-types';
|
|
8
8
|
import { KeyboardEvent, MouseEvent } from 'react';
|
|
9
9
|
import type { TranslateWithId } from '../../types/common';
|
|
10
10
|
export interface ListBoxSelectionProps extends TranslateWithId<TranslationKey> {
|
|
@@ -32,7 +32,7 @@ export interface ListBoxSelectionProps extends TranslateWithId<TranslationKey> {
|
|
|
32
32
|
*/
|
|
33
33
|
selectionCount?: number;
|
|
34
34
|
}
|
|
35
|
-
export type ListBoxSelectionComponent =
|
|
35
|
+
export type ListBoxSelectionComponent = typeof ListBoxSelection;
|
|
36
36
|
declare const translationIds: {
|
|
37
37
|
readonly 'clear.all': "clear.all";
|
|
38
38
|
readonly 'clear.selection': "clear.selection";
|
|
@@ -43,5 +43,36 @@ type TranslationKey = keyof typeof translationIds;
|
|
|
43
43
|
* addition to conditionally rendering a badge if the control has more than one
|
|
44
44
|
* selection.
|
|
45
45
|
*/
|
|
46
|
-
declare const ListBoxSelection:
|
|
46
|
+
declare const ListBoxSelection: {
|
|
47
|
+
({ clearSelection, selectionCount, translateWithId: t, disabled, onClearSelection, readOnly, }: ListBoxSelectionProps): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
propTypes: {
|
|
49
|
+
/**
|
|
50
|
+
* Specify a function to be invoked when a user interacts with the clear
|
|
51
|
+
* selection element.
|
|
52
|
+
*/
|
|
53
|
+
clearSelection: PropTypes.Validator<(...args: any[]) => any>;
|
|
54
|
+
/**
|
|
55
|
+
* Specify whether or not the clear selection element should be disabled
|
|
56
|
+
*/
|
|
57
|
+
disabled: PropTypes.Requireable<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Specify an optional `onClearSelection` handler that is called when the underlying
|
|
60
|
+
* element is cleared
|
|
61
|
+
*/
|
|
62
|
+
onClearSelection: PropTypes.Requireable<(...args: any[]) => any>;
|
|
63
|
+
/**
|
|
64
|
+
* Whether or not the Dropdown is readonly
|
|
65
|
+
*/
|
|
66
|
+
readOnly: PropTypes.Requireable<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* Specify an optional `selectionCount` value that will be used to determine
|
|
69
|
+
* whether the selection should display a badge or a single clear icon.
|
|
70
|
+
*/
|
|
71
|
+
selectionCount: PropTypes.Requireable<number>;
|
|
72
|
+
/**
|
|
73
|
+
* Translates component strings using your i18n tool.
|
|
74
|
+
*/
|
|
75
|
+
translateWithId: PropTypes.Requireable<(...args: any[]) => any>;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
47
78
|
export default ListBoxSelection;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import React, { ComponentProps,
|
|
7
|
+
import React, { type ComponentProps, type ElementType, type KeyboardEvent, type LiHTMLAttributes, type MouseEvent, type ReactNode } from 'react';
|
|
8
8
|
export interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {
|
|
9
9
|
/**
|
|
10
10
|
* Optionally provide another Menu to create a submenu. props.children can't be used to specify the content of the MenuItem itself. Use props.label instead.
|
|
@@ -33,7 +33,7 @@ export interface MenuItemProps extends LiHTMLAttributes<HTMLLIElement> {
|
|
|
33
33
|
/**
|
|
34
34
|
* A component used to render an icon.
|
|
35
35
|
*/
|
|
36
|
-
renderIcon?:
|
|
36
|
+
renderIcon?: ElementType;
|
|
37
37
|
/**
|
|
38
38
|
* Provide a shortcut for the action of this MenuItem. Note that the component will only render it as a hint but not actually register the shortcut.
|
|
39
39
|
*/
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import { type UseComboboxProps, type UseMultipleSelectionProps } from 'downshift';
|
|
8
|
-
import React, { type
|
|
8
|
+
import React, { type ReactElement, type ReactNode } from 'react';
|
|
9
9
|
import { type MultiSelectSortingProps } from './MultiSelectPropTypes';
|
|
10
10
|
import { type ListBoxMenuIconTranslationKey, type ListBoxSelectionTranslationKey, type ListBoxSize, type ListBoxType } from '../ListBox';
|
|
11
11
|
import type { TranslateWithId } from '../../types/common';
|
|
@@ -93,7 +93,7 @@ export interface FilterableMultiSelectProps<ItemType> extends MultiSelectSorting
|
|
|
93
93
|
* Function to render items as custom components instead of strings.
|
|
94
94
|
* Defaults to null and is overridden by a getter
|
|
95
95
|
*/
|
|
96
|
-
itemToElement?:
|
|
96
|
+
itemToElement?: (item: ItemType) => ReactNode;
|
|
97
97
|
/**
|
|
98
98
|
* Helper function passed to downshift that allows the library to render
|
|
99
99
|
* a given item to a string label.
|
|
@@ -35,6 +35,7 @@ var react = require('@floating-ui/react');
|
|
|
35
35
|
var index = require('../AILabel/index.js');
|
|
36
36
|
var defaultItemToString = require('../../internal/defaultItemToString.js');
|
|
37
37
|
var utils = require('../../internal/utils.js');
|
|
38
|
+
var useNormalizedInputProps = require('../../internal/useNormalizedInputProps.js');
|
|
38
39
|
var ListBoxPropTypes = require('../ListBox/ListBoxPropTypes.js');
|
|
39
40
|
|
|
40
41
|
const {
|
|
@@ -73,7 +74,7 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
|
|
|
73
74
|
hideLabel,
|
|
74
75
|
id,
|
|
75
76
|
initialSelectedItems = [],
|
|
76
|
-
invalid,
|
|
77
|
+
invalid = false,
|
|
77
78
|
invalidText,
|
|
78
79
|
items,
|
|
79
80
|
itemToElement: ItemToElement,
|
|
@@ -95,7 +96,7 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
|
|
|
95
96
|
sortItems = sorting.defaultSortItems,
|
|
96
97
|
translateWithId,
|
|
97
98
|
useTitleInItem,
|
|
98
|
-
warn,
|
|
99
|
+
warn = false,
|
|
99
100
|
warnText,
|
|
100
101
|
slug,
|
|
101
102
|
inputProps
|
|
@@ -239,15 +240,23 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
|
|
|
239
240
|
return sortedReal;
|
|
240
241
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
241
242
|
}, [items, inputValue, controlledSelectedItems, topItems, selectionFeedback, itemToString, compareItems, locale, sortItems, nonSelectAllItems]);
|
|
243
|
+
const normalizedProps = useNormalizedInputProps.useNormalizedInputProps({
|
|
244
|
+
id,
|
|
245
|
+
disabled,
|
|
246
|
+
readOnly,
|
|
247
|
+
invalid,
|
|
248
|
+
warn
|
|
249
|
+
});
|
|
242
250
|
const inline = type === 'inline';
|
|
243
|
-
const showWarning =
|
|
251
|
+
const showWarning = normalizedProps.warn;
|
|
252
|
+
const showHelperText = !normalizedProps.warn && !normalizedProps.invalid;
|
|
244
253
|
const wrapperClasses = cx(`${prefix}--multi-select__wrapper`, `${prefix}--multi-select--filterable__wrapper`, `${prefix}--list-box__wrapper`, containerClassName, {
|
|
245
254
|
[`${prefix}--multi-select__wrapper--inline`]: inline,
|
|
246
255
|
[`${prefix}--list-box__wrapper--inline`]: inline,
|
|
247
|
-
[`${prefix}--multi-select__wrapper--inline--invalid`]: inline && invalid,
|
|
248
|
-
[`${prefix}--list-box__wrapper--inline--invalid`]: inline && invalid,
|
|
256
|
+
[`${prefix}--multi-select__wrapper--inline--invalid`]: inline && normalizedProps.invalid,
|
|
257
|
+
[`${prefix}--list-box__wrapper--inline--invalid`]: inline && normalizedProps.invalid,
|
|
249
258
|
[`${prefix}--list-box--up`]: direction === 'top',
|
|
250
|
-
[`${prefix}--list-box__wrapper--fluid--invalid`]: isFluid && invalid,
|
|
259
|
+
[`${prefix}--list-box__wrapper--fluid--invalid`]: isFluid && normalizedProps.invalid,
|
|
251
260
|
[`${prefix}--list-box__wrapper--slug`]: slug,
|
|
252
261
|
[`${prefix}--list-box__wrapper--decorator`]: decorator,
|
|
253
262
|
[`${prefix}--autoalign`]: autoAlign
|
|
@@ -521,8 +530,8 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
|
|
|
521
530
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
522
531
|
item => !item.isSelectAll).length;
|
|
523
532
|
const className = cx(`${prefix}--multi-select`, `${prefix}--combo-box`, `${prefix}--multi-select--filterable`, {
|
|
524
|
-
[`${prefix}--multi-select--invalid`]: invalid,
|
|
525
|
-
[`${prefix}--multi-select--invalid--focused`]:
|
|
533
|
+
[`${prefix}--multi-select--invalid`]: normalizedProps.invalid,
|
|
534
|
+
[`${prefix}--multi-select--invalid--focused`]: inputFocused && normalizedProps.invalid,
|
|
526
535
|
[`${prefix}--multi-select--open`]: isOpen,
|
|
527
536
|
[`${prefix}--multi-select--inline`]: inline,
|
|
528
537
|
[`${prefix}--multi-select--selected`]: controlledSelectedItems?.length > 0,
|
|
@@ -554,7 +563,7 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
|
|
|
554
563
|
});
|
|
555
564
|
const inputProp = getInputProps(getDropdownProps({
|
|
556
565
|
'aria-controls': isOpen ? menuId : undefined,
|
|
557
|
-
'aria-describedby': helperText &&
|
|
566
|
+
'aria-describedby': helperText && showHelperText ? helperId : undefined,
|
|
558
567
|
'aria-haspopup': 'listbox',
|
|
559
568
|
// Remove excess aria `aria-labelledby`. HTML <label for>
|
|
560
569
|
// provides this aria information.
|
|
@@ -649,9 +658,9 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
|
|
|
649
658
|
light: light,
|
|
650
659
|
ref: ref,
|
|
651
660
|
id: id,
|
|
652
|
-
invalid: invalid,
|
|
661
|
+
invalid: normalizedProps.invalid,
|
|
653
662
|
invalidText: invalidText,
|
|
654
|
-
warn: warn,
|
|
663
|
+
warn: normalizedProps.warn,
|
|
655
664
|
warnText: warnText,
|
|
656
665
|
isOpen: !readOnly && isOpen,
|
|
657
666
|
size: size
|
|
@@ -675,7 +684,7 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
|
|
|
675
684
|
ref: mergedRef
|
|
676
685
|
}, readOnlyEventHandlers, {
|
|
677
686
|
readOnly: readOnly
|
|
678
|
-
})), invalid && /*#__PURE__*/React.createElement(iconsReact.WarningFilled, {
|
|
687
|
+
})), normalizedProps.invalid && /*#__PURE__*/React.createElement(iconsReact.WarningFilled, {
|
|
679
688
|
className: `${prefix}--list-box__invalid-icon`
|
|
680
689
|
}), showWarning && /*#__PURE__*/React.createElement(iconsReact.WarningAltFilled, {
|
|
681
690
|
className: `${prefix}--list-box__invalid-icon ${prefix}--list-box__invalid-icon--warning`
|
|
@@ -744,7 +753,7 @@ const FilterableMultiSelect = /*#__PURE__*/React.forwardRef(function FilterableM
|
|
|
744
753
|
disabled: disabled,
|
|
745
754
|
tabIndex: -1
|
|
746
755
|
})));
|
|
747
|
-
}) : null)), !inline &&
|
|
756
|
+
}) : null)), !inline && showHelperText ? helper : null);
|
|
748
757
|
});
|
|
749
758
|
FilterableMultiSelect.displayName = 'FilterableMultiSelect';
|
|
750
759
|
FilterableMultiSelect.propTypes = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2016,
|
|
2
|
+
* Copyright IBM Corp. 2016, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -82,10 +82,9 @@ export interface MultiSelectProps<ItemType> extends MultiSelectSortingProps<Item
|
|
|
82
82
|
*/
|
|
83
83
|
invalidText?: ReactNode;
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
86
|
-
* Defaults to null and is overridden by a getter
|
|
85
|
+
* Renders an item as a custom React node instead of a string.
|
|
87
86
|
*/
|
|
88
|
-
itemToElement?:
|
|
87
|
+
itemToElement?: ((item: ItemType) => NonNullable<ReactNode>) | null;
|
|
89
88
|
/**
|
|
90
89
|
* Helper function passed to downshift that allows the library to render a
|
|
91
90
|
* given item to a string label. By default, it extracts the `label` field
|
|
@@ -34,6 +34,7 @@ var index = require('../FeatureFlags/index.js');
|
|
|
34
34
|
var index$1 = require('../AILabel/index.js');
|
|
35
35
|
var defaultItemToString = require('../../internal/defaultItemToString.js');
|
|
36
36
|
var utils = require('../../internal/utils.js');
|
|
37
|
+
var useNormalizedInputProps = require('../../internal/useNormalizedInputProps.js');
|
|
37
38
|
var ListBoxPropTypes = require('../ListBox/ListBoxPropTypes.js');
|
|
38
39
|
|
|
39
40
|
const {
|
|
@@ -73,9 +74,9 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
73
74
|
clearAnnouncement = 'all items have been cleared',
|
|
74
75
|
clearSelectionDescription = 'Total items selected: ',
|
|
75
76
|
light,
|
|
76
|
-
invalid,
|
|
77
|
+
invalid = false,
|
|
77
78
|
invalidText,
|
|
78
|
-
warn,
|
|
79
|
+
warn = false,
|
|
79
80
|
warnText,
|
|
80
81
|
useTitleInItem,
|
|
81
82
|
translateWithId,
|
|
@@ -256,14 +257,22 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
256
257
|
setIsOpenWrapper(open);
|
|
257
258
|
setPrevOpenProp(open);
|
|
258
259
|
}
|
|
260
|
+
const normalizedProps = useNormalizedInputProps.useNormalizedInputProps({
|
|
261
|
+
id,
|
|
262
|
+
disabled,
|
|
263
|
+
readOnly,
|
|
264
|
+
invalid,
|
|
265
|
+
warn
|
|
266
|
+
});
|
|
259
267
|
const inline = type === 'inline';
|
|
260
|
-
const showWarning =
|
|
268
|
+
const showWarning = normalizedProps.warn;
|
|
269
|
+
const showHelperText = !normalizedProps.warn && !normalizedProps.invalid && helperText;
|
|
261
270
|
const wrapperClasses = cx(`${prefix}--multi-select__wrapper`, `${prefix}--list-box__wrapper`, containerClassName, {
|
|
262
271
|
[`${prefix}--multi-select__wrapper--inline`]: inline,
|
|
263
272
|
[`${prefix}--list-box__wrapper--inline`]: inline,
|
|
264
|
-
[`${prefix}--multi-select__wrapper--inline--invalid`]: inline && invalid,
|
|
265
|
-
[`${prefix}--list-box__wrapper--inline--invalid`]: inline && invalid,
|
|
266
|
-
[`${prefix}--list-box__wrapper--fluid--invalid`]: isFluid && invalid,
|
|
273
|
+
[`${prefix}--multi-select__wrapper--inline--invalid`]: inline && normalizedProps.invalid,
|
|
274
|
+
[`${prefix}--list-box__wrapper--inline--invalid`]: inline && normalizedProps.invalid,
|
|
275
|
+
[`${prefix}--list-box__wrapper--fluid--invalid`]: isFluid && normalizedProps.invalid,
|
|
267
276
|
[`${prefix}--list-box__wrapper--slug`]: slug,
|
|
268
277
|
[`${prefix}--list-box__wrapper--decorator`]: decorator
|
|
269
278
|
});
|
|
@@ -277,8 +286,8 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
277
286
|
[`${prefix}--form__helper-text--disabled`]: disabled
|
|
278
287
|
});
|
|
279
288
|
const className = cx(`${prefix}--multi-select`, {
|
|
280
|
-
[`${prefix}--multi-select--invalid`]: invalid,
|
|
281
|
-
[`${prefix}--multi-select--invalid--focused`]:
|
|
289
|
+
[`${prefix}--multi-select--invalid`]: normalizedProps.invalid,
|
|
290
|
+
[`${prefix}--multi-select--invalid--focused`]: inputFocused && normalizedProps.invalid,
|
|
282
291
|
[`${prefix}--multi-select--warning`]: showWarning,
|
|
283
292
|
[`${prefix}--multi-select--inline`]: inline,
|
|
284
293
|
[`${prefix}--multi-select--selected`]: selectedItems && selectedItems.length > 0,
|
|
@@ -287,10 +296,6 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
287
296
|
[`${prefix}--autoalign`]: enableFloatingStyles,
|
|
288
297
|
[`${prefix}--multi-select--selectall`]: selectAll
|
|
289
298
|
});
|
|
290
|
-
|
|
291
|
-
// needs to be capitalized for react to render it correctly
|
|
292
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
293
|
-
const ItemToElement = itemToElement;
|
|
294
299
|
if (selectionFeedback === 'fixed') {
|
|
295
300
|
sortOptions.selectedItems = [];
|
|
296
301
|
} else if (selectionFeedback === 'top-after-reopen') {
|
|
@@ -449,13 +454,13 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
449
454
|
className: className,
|
|
450
455
|
disabled: disabled,
|
|
451
456
|
light: light,
|
|
452
|
-
invalid: invalid,
|
|
457
|
+
invalid: normalizedProps.invalid,
|
|
453
458
|
invalidText: invalidText,
|
|
454
|
-
warn: warn,
|
|
459
|
+
warn: normalizedProps.warn,
|
|
455
460
|
warnText: warnText,
|
|
456
461
|
isOpen: isOpen,
|
|
457
462
|
id: id
|
|
458
|
-
}, invalid && /*#__PURE__*/React.createElement(iconsReact.WarningFilled, {
|
|
463
|
+
}, normalizedProps.invalid && /*#__PURE__*/React.createElement(iconsReact.WarningFilled, {
|
|
459
464
|
className: `${prefix}--list-box__invalid-icon`
|
|
460
465
|
}), showWarning && /*#__PURE__*/React.createElement(iconsReact.WarningAltFilled, {
|
|
461
466
|
className: `${prefix}--list-box__invalid-icon ${prefix}--list-box__invalid-icon--warning`
|
|
@@ -475,7 +480,7 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
475
480
|
className: `${prefix}--list-box__field`,
|
|
476
481
|
disabled: disabled,
|
|
477
482
|
"aria-disabled": disabled || readOnly,
|
|
478
|
-
"aria-describedby": !inline &&
|
|
483
|
+
"aria-describedby": !inline && showHelperText ? helperId : undefined
|
|
479
484
|
}, toggleButtonProps, {
|
|
480
485
|
ref: mergedRef
|
|
481
486
|
}, readOnlyEventHandlers), /*#__PURE__*/React.createElement("span", {
|
|
@@ -519,9 +524,7 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
519
524
|
className: `${prefix}--checkbox-wrapper`
|
|
520
525
|
}, /*#__PURE__*/React.createElement(Checkbox.default, {
|
|
521
526
|
id: `${itemProps.id}__checkbox`,
|
|
522
|
-
labelText: itemToElement ?
|
|
523
|
-
key: itemProps.id
|
|
524
|
-
}, item)) : itemText,
|
|
527
|
+
labelText: itemToElement ? itemToElement(item) : itemText,
|
|
525
528
|
checked: isChecked,
|
|
526
529
|
title: useTitleInItem ? itemText : undefined,
|
|
527
530
|
indeterminate: isIndeterminate,
|
|
@@ -530,7 +533,7 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
530
533
|
})), itemsCleared && /*#__PURE__*/React.createElement("span", {
|
|
531
534
|
"aria-live": "assertive",
|
|
532
535
|
"aria-label": clearAnnouncement
|
|
533
|
-
})), !inline &&
|
|
536
|
+
})), !inline && showHelperText && /*#__PURE__*/React.createElement("div", {
|
|
534
537
|
id: helperId,
|
|
535
538
|
className: helperClasses
|
|
536
539
|
}, helperText));
|
|
@@ -612,8 +615,7 @@ MultiSelect.propTypes = {
|
|
|
612
615
|
*/
|
|
613
616
|
invalidText: PropTypes.node,
|
|
614
617
|
/**
|
|
615
|
-
*
|
|
616
|
-
* Defaults to null and is overridden by a getter
|
|
618
|
+
* Renders an item as a custom React node instead of a string.
|
|
617
619
|
*/
|
|
618
620
|
itemToElement: PropTypes.func,
|
|
619
621
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2016,
|
|
2
|
+
* Copyright IBM Corp. 2016, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import React, { type ReactNode, type MouseEvent, type ButtonHTMLAttributes, type HTMLAttributes, type ComponentProps } from 'react';
|
|
9
9
|
import Button, { type ButtonProps } from '../Button';
|
|
10
|
+
type NotificationCloseHandler = ((event: MouseEvent) => boolean) | ((event: MouseEvent) => void);
|
|
10
11
|
export interface NotificationActionButtonProps extends ButtonProps<'button'> {
|
|
11
12
|
/**
|
|
12
13
|
* Specify the content of the notification action button.
|
|
@@ -151,7 +152,7 @@ export interface ToastNotificationProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
151
152
|
/**
|
|
152
153
|
* Provide a function that is called when menu is closed
|
|
153
154
|
*/
|
|
154
|
-
onClose
|
|
155
|
+
onClose?: NotificationCloseHandler;
|
|
155
156
|
/**
|
|
156
157
|
* Provide a function that is called when the close button is clicked
|
|
157
158
|
*/
|
|
@@ -277,7 +278,7 @@ export interface InlineNotificationProps extends HTMLAttributes<HTMLDivElement>
|
|
|
277
278
|
/**
|
|
278
279
|
* Provide a function that is called when menu is closed
|
|
279
280
|
*/
|
|
280
|
-
onClose
|
|
281
|
+
onClose?: NotificationCloseHandler;
|
|
281
282
|
/**
|
|
282
283
|
* Provide a function that is called when the close button is clicked
|
|
283
284
|
*/
|
|
@@ -409,7 +410,7 @@ export interface ActionableNotificationProps extends HTMLAttributes<HTMLDivEleme
|
|
|
409
410
|
* Provide a function that is called when menu is closed.
|
|
410
411
|
* Default behavior of hiding the notification is prevented if this function returns false.
|
|
411
412
|
*/
|
|
412
|
-
onClose
|
|
413
|
+
onClose?: NotificationCloseHandler;
|
|
413
414
|
/**
|
|
414
415
|
* Provide a function that is called when the close button is clicked
|
|
415
416
|
*/
|
|
@@ -617,6 +618,6 @@ export declare namespace Callout {
|
|
|
617
618
|
/**
|
|
618
619
|
* @deprecated Use `CalloutProps` instead.
|
|
619
620
|
*/
|
|
620
|
-
export
|
|
621
|
-
|
|
622
|
-
export
|
|
621
|
+
export type StaticNotificationProps = CalloutProps;
|
|
622
|
+
export declare const StaticNotification: (props: StaticNotificationProps) => import("react/jsx-runtime").JSX.Element;
|
|
623
|
+
export {};
|
|
@@ -574,6 +574,8 @@ function ActionableNotification({
|
|
|
574
574
|
role: "link",
|
|
575
575
|
className: `${prefix}--visually-hidden`
|
|
576
576
|
}, "Focus sentinel"), /*#__PURE__*/React.createElement("div", {
|
|
577
|
+
ref: innerModal
|
|
578
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
577
579
|
className: `${prefix}--actionable-notification__details`
|
|
578
580
|
}, /*#__PURE__*/React.createElement(NotificationIcon, {
|
|
579
581
|
notificationType: inline ? 'inline' : 'toast',
|
|
@@ -595,8 +597,7 @@ function ActionableNotification({
|
|
|
595
597
|
as: "div",
|
|
596
598
|
className: `${prefix}--actionable-notification__caption`
|
|
597
599
|
}, caption), children))), /*#__PURE__*/React.createElement("div", {
|
|
598
|
-
className: `${prefix}--actionable-notification__button-wrapper
|
|
599
|
-
ref: innerModal
|
|
600
|
+
className: `${prefix}--actionable-notification__button-wrapper`
|
|
600
601
|
}, actionButtonLabel && /*#__PURE__*/React.createElement(NotificationActionButton, {
|
|
601
602
|
onClick: onActionButtonClick,
|
|
602
603
|
inline: inline
|
|
@@ -604,7 +605,7 @@ function ActionableNotification({
|
|
|
604
605
|
"aria-label": deprecatedAriaLabel || ariaLabel,
|
|
605
606
|
notificationType: "actionable",
|
|
606
607
|
onClick: handleCloseButtonClick
|
|
607
|
-
})), !focusTrapWithoutSentinels && /*#__PURE__*/React.createElement("span", {
|
|
608
|
+
}))), !focusTrapWithoutSentinels && /*#__PURE__*/React.createElement("span", {
|
|
608
609
|
ref: endTrap,
|
|
609
610
|
tabIndex: 0,
|
|
610
611
|
role: "link",
|
|
@@ -812,7 +813,6 @@ Callout.propTypes = {
|
|
|
812
813
|
/**
|
|
813
814
|
* @deprecated Use `CalloutProps` instead.
|
|
814
815
|
*/
|
|
815
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-object-type -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
816
816
|
|
|
817
817
|
let didWarnAboutDeprecation = false;
|
|
818
818
|
const StaticNotification = props => {
|
|
@@ -79,7 +79,6 @@ const getMenuOffset = (menuBody, direction, trigger, flip) => {
|
|
|
79
79
|
case 'top':
|
|
80
80
|
case 'bottom':
|
|
81
81
|
{
|
|
82
|
-
// TODO: Ensure `trigger` is there for `<OverflowMenu open>`
|
|
83
82
|
const triggerWidth = !trigger ? 0 : trigger.offsetWidth;
|
|
84
83
|
return {
|
|
85
84
|
left: (!flip ? 1 : -1) * (menuWidth / 2 - triggerWidth / 2),
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import React, { type
|
|
7
|
+
import React, { type ElementType } from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import { TYPES } from '../Tag/Tag';
|
|
10
10
|
/**
|
|
@@ -32,7 +32,7 @@ interface PageHeaderBreadcrumbBarProps {
|
|
|
32
32
|
/**
|
|
33
33
|
* Provide an optional icon to render in front of the PageHeaderContent's title.
|
|
34
34
|
*/
|
|
35
|
-
renderIcon?:
|
|
35
|
+
renderIcon?: ElementType;
|
|
36
36
|
/**
|
|
37
37
|
* The PageHeaderBreadcrumbBar's content actions
|
|
38
38
|
*/
|
|
@@ -68,7 +68,7 @@ interface PageHeaderContentProps {
|
|
|
68
68
|
/**
|
|
69
69
|
* Provide an optional icon to render in front of the PageHeaderContent's title.
|
|
70
70
|
*/
|
|
71
|
-
renderIcon?:
|
|
71
|
+
renderIcon?: ElementType;
|
|
72
72
|
/**
|
|
73
73
|
* The PageHeaderContent's title
|
|
74
74
|
*/
|
|
@@ -149,7 +149,9 @@ forwardRef) {
|
|
|
149
149
|
refs,
|
|
150
150
|
floatingStyles,
|
|
151
151
|
placement,
|
|
152
|
-
middlewareData
|
|
152
|
+
middlewareData,
|
|
153
|
+
elements,
|
|
154
|
+
update
|
|
153
155
|
} = react.useFloating(enableFloatingStyles ? {
|
|
154
156
|
placement: align,
|
|
155
157
|
// The floating element is positioned relative to its nearest
|
|
@@ -169,12 +171,18 @@ forwardRef) {
|
|
|
169
171
|
}), react.arrow({
|
|
170
172
|
element: caretRef,
|
|
171
173
|
padding: 16
|
|
172
|
-
}), autoAlign && react.hide()]
|
|
173
|
-
whileElementsMounted: react.autoUpdate
|
|
174
|
+
}), autoAlign && react.hide()]
|
|
174
175
|
} : {}
|
|
175
176
|
// When autoAlign is turned off & the `enable-v12-dynamic-floating-styles` feature flag is not
|
|
176
177
|
// enabled, floating-ui will not be used
|
|
177
178
|
);
|
|
179
|
+
React.useEffect(() => {
|
|
180
|
+
if (!enableFloatingStyles) return;
|
|
181
|
+
if (open && elements.reference && elements.floating) {
|
|
182
|
+
const cleanup = react.autoUpdate(elements.reference, elements.floating, update);
|
|
183
|
+
return cleanup;
|
|
184
|
+
}
|
|
185
|
+
}, [enableFloatingStyles, open, elements, update]);
|
|
178
186
|
const value = React.useMemo(() => {
|
|
179
187
|
return {
|
|
180
188
|
floating,
|
|
@@ -399,11 +407,13 @@ Popover.propTypes = {
|
|
|
399
407
|
*/
|
|
400
408
|
open: PropTypes.bool.isRequired
|
|
401
409
|
};
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
410
|
+
const frFn = React.forwardRef;
|
|
411
|
+
const PopoverContent = frFn((props, forwardRef) => {
|
|
412
|
+
const {
|
|
413
|
+
className,
|
|
414
|
+
children,
|
|
415
|
+
...rest
|
|
416
|
+
} = props;
|
|
407
417
|
const prefix = usePrefix.usePrefix();
|
|
408
418
|
const {
|
|
409
419
|
setFloating,
|
|
@@ -429,8 +439,7 @@ function PopoverContentRenderFunction({
|
|
|
429
439
|
}),
|
|
430
440
|
ref: caretRef
|
|
431
441
|
}));
|
|
432
|
-
}
|
|
433
|
-
const PopoverContent = /*#__PURE__*/React.forwardRef(PopoverContentRenderFunction);
|
|
442
|
+
});
|
|
434
443
|
PopoverContent.displayName = 'PopoverContent';
|
|
435
444
|
PopoverContent.propTypes = {
|
|
436
445
|
/**
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import React, { type ChangeEvent, type
|
|
7
|
+
import React, { type ChangeEvent, type ElementType, type HTMLAttributes, type KeyboardEvent, type MouseEvent, type ReactNode } from 'react';
|
|
8
8
|
type InputPropsBase = Omit<HTMLAttributes<HTMLInputElement>, 'onChange'>;
|
|
9
9
|
export interface SearchProps extends InputPropsBase {
|
|
10
10
|
/**
|
|
@@ -61,7 +61,7 @@ export interface SearchProps extends InputPropsBase {
|
|
|
61
61
|
/**
|
|
62
62
|
* A component used to render an icon.
|
|
63
63
|
*/
|
|
64
|
-
renderIcon?:
|
|
64
|
+
renderIcon?: ElementType;
|
|
65
65
|
/**
|
|
66
66
|
* @deprecated Specify the role for the underlying `<input>`.
|
|
67
67
|
* No longer needed since `<input type="search">` already provides the correct semantics.
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2016, 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 PropTypes from 'prop-types';
|
|
2
8
|
export interface SkeletonIconProps {
|
|
3
9
|
/**
|
|
4
10
|
* Specify an optional className to add.
|
|
5
11
|
*/
|
|
6
12
|
className?: string;
|
|
7
13
|
}
|
|
8
|
-
declare const SkeletonIcon:
|
|
14
|
+
declare const SkeletonIcon: {
|
|
15
|
+
({ className, ...other }: SkeletonIconProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
propTypes: {
|
|
17
|
+
/**
|
|
18
|
+
* Specify an optional className to add.
|
|
19
|
+
*/
|
|
20
|
+
className: PropTypes.Requireable<string>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
9
23
|
export default SkeletonIcon;
|
|
@@ -72,7 +72,7 @@ export interface TagBaseProps {
|
|
|
72
72
|
*/
|
|
73
73
|
slug?: ReactNode;
|
|
74
74
|
/**
|
|
75
|
-
* @deprecated The `title` prop has been deprecated and will be removed in the next major version. Use
|
|
75
|
+
* @deprecated The `title` prop has been deprecated and will be removed in the next major version. Use `children` instead.
|
|
76
76
|
*/
|
|
77
77
|
title?: string;
|
|
78
78
|
/**
|
|
@@ -156,6 +156,8 @@ const TagBase = /*#__PURE__*/React.forwardRef(({
|
|
|
156
156
|
}, normalizedDecorator) : '');
|
|
157
157
|
});
|
|
158
158
|
const Tag = TagBase;
|
|
159
|
+
|
|
160
|
+
// @ts-expect-error - `propTypes` isn't typed.
|
|
159
161
|
Tag.propTypes = {
|
|
160
162
|
/**
|
|
161
163
|
* Provide an alternative tag or component to use instead of the default
|
|
@@ -13,7 +13,7 @@ var React = require('react');
|
|
|
13
13
|
var TextDirectionContext = require('./TextDirectionContext.js');
|
|
14
14
|
|
|
15
15
|
// eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
16
|
-
const
|
|
16
|
+
const Text = /*#__PURE__*/React.forwardRef(({
|
|
17
17
|
as,
|
|
18
18
|
children,
|
|
19
19
|
dir = 'auto',
|
|
@@ -55,7 +55,8 @@ const TextBase = /*#__PURE__*/React.forwardRef(({
|
|
|
55
55
|
ref: ref
|
|
56
56
|
}, rest, textProps), children));
|
|
57
57
|
});
|
|
58
|
-
|
|
58
|
+
|
|
59
|
+
// @ts-expect-error - `propTypes` isn't typed.
|
|
59
60
|
Text.propTypes = {
|
|
60
61
|
/**
|
|
61
62
|
* Provide a custom element type used to render the outermost node
|