@carbon/react 1.99.0-rc.0 → 1.100.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 +942 -942
- 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 +4 -4
- package/es/components/ComboBox/ComboBox.js +21 -3
- 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/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/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/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/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/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.js +22 -13
- package/es/components/Notification/Notification.d.ts +8 -7
- package/es/components/Notification/Notification.js +0 -1
- package/es/components/NumberInput/NumberInput.d.ts +9 -0
- package/es/components/NumberInput/NumberInput.js +206 -38
- 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/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/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 -3
- package/es/components/UIShell/SideNav.js +26 -25
- 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 +4 -4
- package/lib/components/ComboBox/ComboBox.js +21 -3
- 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/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/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/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/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/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.js +22 -13
- package/lib/components/Notification/Notification.d.ts +8 -7
- package/lib/components/Notification/Notification.js +0 -1
- package/lib/components/NumberInput/NumberInput.d.ts +9 -0
- package/lib/components/NumberInput/NumberInput.js +206 -37
- 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/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/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 -3
- package/lib/components/UIShell/SideNav.js +25 -24
- 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 +8 -8
- 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
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { ChevronDown } from '@carbon/icons-react';
|
|
9
9
|
import cx from 'classnames';
|
|
10
10
|
import PropTypes from 'prop-types';
|
|
11
|
-
import React, { useContext, useState } from 'react';
|
|
11
|
+
import React, { forwardRef, useContext, useState } from 'react';
|
|
12
12
|
import SideNavIcon from './SideNavIcon.js';
|
|
13
13
|
import { Escape } from '../../internal/keyboard/keys.js';
|
|
14
14
|
import { match } from '../../internal/keyboard/match.js';
|
|
@@ -16,7 +16,7 @@ import { usePrefix } from '../../internal/usePrefix.js';
|
|
|
16
16
|
import { SideNavContext } from './SideNav.js';
|
|
17
17
|
|
|
18
18
|
var _ChevronDown;
|
|
19
|
-
const SideNavMenu = /*#__PURE__*/
|
|
19
|
+
const SideNavMenu = /*#__PURE__*/forwardRef(({
|
|
20
20
|
className: customClassName,
|
|
21
21
|
children,
|
|
22
22
|
defaultExpanded = false,
|
|
@@ -1,10 +1,10 @@
|
|
|
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.
|
|
6
6
|
*/
|
|
7
|
-
import React, {
|
|
7
|
+
import React, { type ComponentProps, type ElementType } from 'react';
|
|
8
8
|
import Link from './Link';
|
|
9
9
|
export type SideNavMenuItemProps = ComponentProps<typeof Link> & {
|
|
10
10
|
/**
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
9
9
|
import cx from 'classnames';
|
|
10
10
|
import PropTypes from 'prop-types';
|
|
11
|
-
import React from 'react';
|
|
11
|
+
import React, { forwardRef } from 'react';
|
|
12
12
|
import SideNavLinkText from './SideNavLinkText.js';
|
|
13
13
|
import Link from './Link.js';
|
|
14
14
|
import { usePrefix } from '../../internal/usePrefix.js';
|
|
15
15
|
|
|
16
|
-
const SideNavMenuItem = /*#__PURE__*/
|
|
16
|
+
const SideNavMenuItem = /*#__PURE__*/forwardRef((props, ref) => {
|
|
17
17
|
const prefix = usePrefix();
|
|
18
18
|
const {
|
|
19
19
|
children,
|
|
@@ -4,12 +4,20 @@
|
|
|
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
|
export interface SwitcherDividerProps {
|
|
9
9
|
/**
|
|
10
10
|
* Optionally provide a custom class to apply to the underlying `<li>` node
|
|
11
11
|
*/
|
|
12
12
|
className?: string;
|
|
13
13
|
}
|
|
14
|
-
declare const SwitcherDivider:
|
|
14
|
+
declare const SwitcherDivider: {
|
|
15
|
+
({ className: customClassName, ...other }: SwitcherDividerProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
propTypes: {
|
|
17
|
+
/**
|
|
18
|
+
* Optionally provide a custom class to apply to the underlying `<li>` node
|
|
19
|
+
*/
|
|
20
|
+
className: PropTypes.Requireable<string>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
15
23
|
export default SwitcherDivider;
|
|
@@ -153,8 +153,6 @@ const FloatingMenu = ({
|
|
|
153
153
|
// Re-check after setting the position if not already adjusting.
|
|
154
154
|
if (!isAdjustment) {
|
|
155
155
|
const newMenuSize = menuBody.getBoundingClientRect();
|
|
156
|
-
// TODO: Was there a bug in the old code? How could one `DOMRect` be
|
|
157
|
-
// compared to another using `!==`?
|
|
158
156
|
if (newMenuSize.width !== menuSize.width || newMenuSize.height !== menuSize.height) {
|
|
159
157
|
updateMenuPosition(true);
|
|
160
158
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2025
|
|
2
|
+
* Copyright IBM Corp. 2025, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -8,9 +8,9 @@ type AsProp<C extends React.ElementType> = {
|
|
|
8
8
|
as?: C;
|
|
9
9
|
};
|
|
10
10
|
type PropsToOmit<C extends React.ElementType, P> = keyof (AsProp<C> & P);
|
|
11
|
-
export type PolymorphicComponentProp<C extends React.ElementType, Props =
|
|
11
|
+
export type PolymorphicComponentProp<C extends React.ElementType, Props = Record<string, never>> = React.PropsWithChildren<Props & AsProp<C>> & Omit<React.ComponentPropsWithoutRef<C>, PropsToOmit<C, Props>>;
|
|
12
12
|
export type PolymorphicRef<C extends React.ElementType> = React.ComponentPropsWithRef<C>['ref'];
|
|
13
|
-
export type PolymorphicComponentPropWithRef<C extends React.ElementType, Props =
|
|
13
|
+
export type PolymorphicComponentPropWithRef<C extends React.ElementType, Props = Record<string, never>> = PolymorphicComponentProp<C, Props> & {
|
|
14
14
|
ref?: PolymorphicRef<C>;
|
|
15
15
|
};
|
|
16
16
|
export {};
|
|
@@ -8,13 +8,12 @@
|
|
|
8
8
|
import { useEffect } from 'react';
|
|
9
9
|
|
|
10
10
|
const useNoInteractiveChildren = (ref, message = 'component should have no interactive child nodes') => {
|
|
11
|
-
// TODO: Why can't the condition go inside the hook?
|
|
12
11
|
if (process.env.NODE_ENV !== 'production') {
|
|
13
|
-
//
|
|
14
|
-
|
|
12
|
+
// This hook is intentionally called conditionally because it is
|
|
13
|
+
// stripped from production builds. In development it runs once
|
|
14
|
+
// to enforce accessibility constraints.
|
|
15
|
+
//
|
|
15
16
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
16
|
-
*/
|
|
17
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
18
17
|
useEffect(() => {
|
|
19
18
|
const node = ref.current ? getInteractiveContent(ref.current) : false;
|
|
20
19
|
if (node) {
|
|
@@ -28,13 +27,12 @@ const useNoInteractiveChildren = (ref, message = 'component should have no inter
|
|
|
28
27
|
}
|
|
29
28
|
};
|
|
30
29
|
const useInteractiveChildrenNeedDescription = (ref, message = `interactive child node(s) should have an \`aria-describedby\` property`) => {
|
|
31
|
-
// TODO: Why can't the condition go inside the hook?
|
|
32
30
|
if (process.env.NODE_ENV !== 'production') {
|
|
33
|
-
//
|
|
34
|
-
|
|
31
|
+
// This hook is intentionally called conditionally because it is
|
|
32
|
+
// stripped from production builds. In development it runs once
|
|
33
|
+
// to enforce accessibility constraints.
|
|
34
|
+
//
|
|
35
35
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
36
|
-
*/
|
|
37
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
38
36
|
useEffect(() => {
|
|
39
37
|
const node = ref.current ? getInteractiveContent(ref.current) : false;
|
|
40
38
|
if (node && !node.hasAttribute('aria-describedby')) {
|
|
@@ -19,11 +19,7 @@ const useOutsideClick = (ref, callback) => {
|
|
|
19
19
|
// treated as a constant as it will be false when executed in a Node.js
|
|
20
20
|
// environment and true when executed in the browser
|
|
21
21
|
if (canUseDOM) {
|
|
22
|
-
// TODO: https://github.com/carbon-design-system/carbon/issues/19005
|
|
23
|
-
/*
|
|
24
22
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
25
|
-
*/
|
|
26
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
27
23
|
useWindowEvent('click', event => {
|
|
28
24
|
const {
|
|
29
25
|
target
|
|
@@ -15,11 +15,13 @@ var React = require('react');
|
|
|
15
15
|
var cx = require('classnames');
|
|
16
16
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
17
17
|
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const frFn = React.forwardRef;
|
|
19
|
+
const BadgeIndicator = frFn((props, ref) => {
|
|
20
|
+
const {
|
|
21
|
+
className: customClassName,
|
|
22
|
+
count,
|
|
23
|
+
...rest
|
|
24
|
+
} = props;
|
|
23
25
|
const prefix = usePrefix.usePrefix();
|
|
24
26
|
const classNames = cx(`${prefix}--badge-indicator`, customClassName, {
|
|
25
27
|
[`${prefix}--badge-indicator--count`]: count
|
|
@@ -37,10 +37,9 @@ const BreadcrumbItem = frFn((props, ref) => {
|
|
|
37
37
|
[`${prefix}--breadcrumb-item--current`]: isCurrentPage && ariaCurrent !== 'page',
|
|
38
38
|
[customClassName]: !!customClassName
|
|
39
39
|
});
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (child.type && child.type.displayName !== undefined && child.type.displayName.includes('OverflowMenu')) {
|
|
40
|
+
const child = /*#__PURE__*/React.isValidElement(children) ? children : null;
|
|
41
|
+
const childType = child?.type;
|
|
42
|
+
if (child && typeof child.type !== 'string' && childType?.displayName?.includes('OverflowMenu')) {
|
|
44
43
|
const horizontalOverflowIcon = /*#__PURE__*/React.createElement(iconsReact.OverflowMenuHorizontal, {
|
|
45
44
|
className: `${prefix}--overflow-menu__icon`
|
|
46
45
|
});
|
|
@@ -70,10 +69,10 @@ const BreadcrumbItem = frFn((props, ref) => {
|
|
|
70
69
|
return /*#__PURE__*/React.createElement("li", _rollupPluginBabelHelpers.extends({
|
|
71
70
|
className: className,
|
|
72
71
|
ref: ref
|
|
73
|
-
}, rest), /*#__PURE__*/React.cloneElement(child, {
|
|
72
|
+
}, rest), child ? /*#__PURE__*/React.cloneElement(child, {
|
|
74
73
|
'aria-current': ariaCurrent,
|
|
75
74
|
className: cx(`${prefix}--link`, child.props.className)
|
|
76
|
-
}));
|
|
75
|
+
}) : children);
|
|
77
76
|
});
|
|
78
77
|
BreadcrumbItem.displayName = 'BreadcrumbItem';
|
|
79
78
|
BreadcrumbItem.propTypes = {
|
|
@@ -1,9 +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 PropTypes from 'prop-types';
|
|
7
8
|
import React from 'react';
|
|
8
9
|
import { ButtonSize } from './Button';
|
|
9
10
|
export interface ButtonSkeletonProps extends React.HTMLAttributes<HTMLElement> {
|
|
@@ -23,6 +24,31 @@ export interface ButtonSkeletonProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
23
24
|
*/
|
|
24
25
|
small?: boolean;
|
|
25
26
|
}
|
|
26
|
-
declare const ButtonSkeleton:
|
|
27
|
+
declare const ButtonSkeleton: {
|
|
28
|
+
({ className, small, href, size, ...rest }: ButtonSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
propTypes: {
|
|
30
|
+
/**
|
|
31
|
+
* Specify an optional className to add.
|
|
32
|
+
*/
|
|
33
|
+
className: PropTypes.Requireable<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Optionally specify an href for your Button to become an `<a>` element
|
|
36
|
+
*/
|
|
37
|
+
href: PropTypes.Requireable<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Specify the size of the button, from a list of available sizes.
|
|
40
|
+
* For `default` buttons, this prop can remain unspecified or use `default`.
|
|
41
|
+
* In the next major release of Carbon, `default`, `field`, and `small` will be removed
|
|
42
|
+
*/
|
|
43
|
+
size: PropTypes.Requireable<string>;
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated This property will be removed in the next major Carbon version,
|
|
46
|
+
* use size={sm} instead.
|
|
47
|
+
*
|
|
48
|
+
* Specify whether the Button should be a small variant
|
|
49
|
+
*/
|
|
50
|
+
small: PropTypes.Requireable<boolean>;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
27
53
|
export default ButtonSkeleton;
|
|
28
54
|
export { ButtonSkeleton };
|
|
@@ -25,8 +25,6 @@ function isIconOnlyButton(hasIconOnly, _kind) {
|
|
|
25
25
|
}
|
|
26
26
|
return false;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
// eslint-disable-next-line react/display-name -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
30
28
|
const Button = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
31
29
|
const {
|
|
32
30
|
as,
|
|
@@ -108,7 +106,10 @@ const Button = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
108
106
|
);
|
|
109
107
|
}
|
|
110
108
|
});
|
|
109
|
+
|
|
110
|
+
// @ts-expect-error - `displayName` isn't typed.
|
|
111
111
|
Button.displayName = 'Button';
|
|
112
|
+
// @ts-expect-error - `propTypes` isn't typed.
|
|
112
113
|
Button.propTypes = {
|
|
113
114
|
/**
|
|
114
115
|
* Specify how the button itself should be rendered.
|
|
@@ -4,7 +4,8 @@
|
|
|
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 ComponentProps } from 'react';
|
|
8
|
+
import Button from '../Button';
|
|
8
9
|
export type ChatButtonKind = 'primary' | 'secondary' | 'danger' | 'ghost' | 'tertiary';
|
|
9
10
|
export type ChatButtonSize = 'sm' | 'md' | 'lg';
|
|
10
11
|
export interface ChatButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
@@ -35,7 +36,7 @@ export interface ChatButtonProps extends React.ButtonHTMLAttributes<HTMLButtonEl
|
|
|
35
36
|
/**
|
|
36
37
|
* A component used to render an icon.
|
|
37
38
|
*/
|
|
38
|
-
renderIcon?:
|
|
39
|
+
renderIcon?: ComponentProps<typeof Button>['renderIcon'];
|
|
39
40
|
/**
|
|
40
41
|
* Specify the size of the `ChatButton`, from the following list of sizes:
|
|
41
42
|
*/
|
|
@@ -4,7 +4,8 @@
|
|
|
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
|
+
import { type ReactNode } from 'react';
|
|
8
9
|
export interface CheckboxGroupProps {
|
|
9
10
|
children?: ReactNode;
|
|
10
11
|
className?: string;
|
|
@@ -28,5 +29,62 @@ export interface CustomType {
|
|
|
28
29
|
size: string;
|
|
29
30
|
kind: string;
|
|
30
31
|
}
|
|
31
|
-
declare const CheckboxGroup:
|
|
32
|
+
declare const CheckboxGroup: {
|
|
33
|
+
({ children, className, decorator, helperText, invalid, invalidText, legendId, legendText, readOnly, warn, warnText, slug, orientation, ...rest }: CheckboxGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
propTypes: {
|
|
35
|
+
/**
|
|
36
|
+
* Provide the children form elements to be rendered inside of the <fieldset>
|
|
37
|
+
*/
|
|
38
|
+
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
39
|
+
/**
|
|
40
|
+
* Provide a custom className to be applied to the containing <fieldset> node
|
|
41
|
+
*/
|
|
42
|
+
className: PropTypes.Requireable<string>;
|
|
43
|
+
/**
|
|
44
|
+
* **Experimental**: Provide a decorator component to be rendered inside the `CheckboxGroup` component
|
|
45
|
+
*/
|
|
46
|
+
decorator: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
47
|
+
/**
|
|
48
|
+
* Provide text for the form group for additional help
|
|
49
|
+
*/
|
|
50
|
+
helperText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
51
|
+
/**
|
|
52
|
+
* Specify whether the form group is currently invalid
|
|
53
|
+
*/
|
|
54
|
+
invalid: PropTypes.Requireable<boolean>;
|
|
55
|
+
/**
|
|
56
|
+
* Provide the text that is displayed when the form group is in an invalid state
|
|
57
|
+
*/
|
|
58
|
+
invalidText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
59
|
+
/**
|
|
60
|
+
* Provide id for the fieldset <legend> which corresponds to the fieldset
|
|
61
|
+
* `aria-labelledby`
|
|
62
|
+
*/
|
|
63
|
+
legendId: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
64
|
+
/**
|
|
65
|
+
* Provide the text to be rendered inside of the fieldset <legend>
|
|
66
|
+
*/
|
|
67
|
+
legendText: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
|
|
68
|
+
/**
|
|
69
|
+
* Provide the orientation for how the checkbox should be displayed
|
|
70
|
+
*/
|
|
71
|
+
orientation: PropTypes.Requireable<string>;
|
|
72
|
+
/**
|
|
73
|
+
* Whether the CheckboxGroup should be read-only
|
|
74
|
+
*/
|
|
75
|
+
readOnly: PropTypes.Requireable<boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* **Experimental**: Provide a `Slug` component to be rendered inside the `CheckboxGroup` component
|
|
78
|
+
*/
|
|
79
|
+
slug: (props: Record<string, any>, propName: string, componentName: string, ...rest: any[]) => any;
|
|
80
|
+
/**
|
|
81
|
+
* Specify whether the form group is currently in warning state
|
|
82
|
+
*/
|
|
83
|
+
warn: PropTypes.Requireable<boolean>;
|
|
84
|
+
/**
|
|
85
|
+
* Provide the text that is displayed when the form group is in warning state
|
|
86
|
+
*/
|
|
87
|
+
warnText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
32
90
|
export default CheckboxGroup;
|
|
@@ -1,11 +1,11 @@
|
|
|
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.
|
|
6
6
|
*/
|
|
7
7
|
import { UseComboboxProps, UseComboboxActions } from 'downshift';
|
|
8
|
-
import
|
|
8
|
+
import { type ComponentType, type InputHTMLAttributes, type MouseEvent, type PropsWithChildren, type ReactElement, type ReactNode, type RefAttributes, type RefObject } from 'react';
|
|
9
9
|
import { type ListBoxMenuIconTranslationKey, type ListBoxSelectionTranslationKey, type ListBoxSize } from '../ListBox';
|
|
10
10
|
import type { TranslateWithId } from '../../types/common';
|
|
11
11
|
type ExcludedAttributes = 'id' | 'onChange' | 'onClick' | 'type' | 'size';
|
|
@@ -74,7 +74,7 @@ export interface ComboBoxProps<ItemType> extends Omit<InputHTMLAttributes<HTMLIn
|
|
|
74
74
|
* cases they can not be shimmed by Carbon to shield you from potentially breaking
|
|
75
75
|
* changes.
|
|
76
76
|
*/
|
|
77
|
-
downshiftActions?:
|
|
77
|
+
downshiftActions?: RefObject<UseComboboxActions<ItemType> | undefined>;
|
|
78
78
|
/**
|
|
79
79
|
* Provide helper text that is used alongside the control label for
|
|
80
80
|
* additional help
|
|
@@ -196,7 +196,7 @@ export interface ComboBoxProps<ItemType> extends Omit<InputHTMLAttributes<HTMLIn
|
|
|
196
196
|
*/
|
|
197
197
|
inputProps?: InputHTMLAttributes<HTMLInputElement>;
|
|
198
198
|
}
|
|
199
|
-
type ComboboxComponentProps<ItemType> =
|
|
199
|
+
type ComboboxComponentProps<ItemType> = PropsWithChildren<ComboBoxProps<ItemType>> & RefAttributes<HTMLInputElement>;
|
|
200
200
|
export interface ComboBoxComponent {
|
|
201
201
|
<ItemType>(props: ComboboxComponentProps<ItemType>): ReactElement<any> | null;
|
|
202
202
|
}
|
|
@@ -197,6 +197,7 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
197
197
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
198
198
|
}, [typeahead, inputValue, items, itemToString, autocompleteCustomFilter]);
|
|
199
199
|
const isManualClearingRef = React.useRef(false);
|
|
200
|
+
const committedCustomValueRef = React.useRef('');
|
|
200
201
|
const [isClearing, setIsClearing] = React.useState(false);
|
|
201
202
|
const prefix = usePrefix.usePrefix();
|
|
202
203
|
const {
|
|
@@ -286,11 +287,13 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
286
287
|
return changes;
|
|
287
288
|
}
|
|
288
289
|
const nextSelectedItem = items.find(item => itemToString(item) === inputValue) ?? inputValue;
|
|
290
|
+
const isCustomSelection = typeof nextSelectedItem === 'string' && !items.some(item => isEqual(item, nextSelectedItem));
|
|
289
291
|
if (!isEqual(currentSelectedItem, nextSelectedItem) && onChange) {
|
|
290
292
|
onChange({
|
|
291
293
|
selectedItem: nextSelectedItem,
|
|
292
294
|
inputValue
|
|
293
295
|
});
|
|
296
|
+
committedCustomValueRef.current = isCustomSelection ? inputValue : '';
|
|
294
297
|
}
|
|
295
298
|
return {
|
|
296
299
|
...changes,
|
|
@@ -529,6 +532,9 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
529
532
|
return;
|
|
530
533
|
}
|
|
531
534
|
if ((type === ItemClick || type === FunctionSelectItem || type === InputKeyDownEnter) && typeof newSelectedItem !== 'undefined' && !isEqual(selectedItemProp, newSelectedItem)) {
|
|
535
|
+
if (items.some(item => isEqual(item, newSelectedItem))) {
|
|
536
|
+
committedCustomValueRef.current = '';
|
|
537
|
+
}
|
|
532
538
|
onChange({
|
|
533
539
|
selectedItem: newSelectedItem
|
|
534
540
|
});
|
|
@@ -538,7 +544,7 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
538
544
|
|
|
539
545
|
// Keep the dropdown highlight in sync with either the controlled value or
|
|
540
546
|
// Downshift's own selection when uncontrolled.
|
|
541
|
-
const
|
|
547
|
+
const currentSelectedItem = typeof selectedItemProp !== 'undefined' ? selectedItemProp : selectedItem;
|
|
542
548
|
React.useEffect(() => {
|
|
543
549
|
// Used to expose the downshift actions to consumers for use with downshiftProps
|
|
544
550
|
// An odd pattern, here we mutate the value stored in the ref provided from the consumer.
|
|
@@ -653,8 +659,18 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
653
659
|
...inputProps,
|
|
654
660
|
onChange: e => {
|
|
655
661
|
const newValue = e.target.value;
|
|
662
|
+
const shouldClearSelection = allowCustomValue && committedCustomValueRef.current && inputValue === committedCustomValueRef.current && newValue === '';
|
|
656
663
|
setInputValue(newValue);
|
|
657
664
|
downshiftSetInputValue(newValue);
|
|
665
|
+
if (shouldClearSelection) {
|
|
666
|
+
setIsClearing(true);
|
|
667
|
+
onChange({
|
|
668
|
+
selectedItem: null,
|
|
669
|
+
inputValue: ''
|
|
670
|
+
});
|
|
671
|
+
selectItem(null);
|
|
672
|
+
committedCustomValueRef.current = '';
|
|
673
|
+
}
|
|
658
674
|
},
|
|
659
675
|
ref: mergeRefs.mergeRefs(textInput, ref, inputRef),
|
|
660
676
|
onKeyDown: event => {
|
|
@@ -671,6 +687,7 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
671
687
|
// manually fire it when `allowCustomValue` is provided, the menu is closing,
|
|
672
688
|
// and there is a value.
|
|
673
689
|
if (allowCustomValue && isOpen && inputValue && highlightedIndex === -1) {
|
|
690
|
+
committedCustomValueRef.current = inputValue;
|
|
674
691
|
onChange({
|
|
675
692
|
selectedItem: null,
|
|
676
693
|
inputValue
|
|
@@ -735,6 +752,7 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
735
752
|
selectedItem: null
|
|
736
753
|
});
|
|
737
754
|
selectItem(null);
|
|
755
|
+
committedCustomValueRef.current = '';
|
|
738
756
|
handleSelectionClear();
|
|
739
757
|
},
|
|
740
758
|
translateWithId: translateWithId,
|
|
@@ -766,13 +784,13 @@ const ComboBox = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
766
784
|
} = itemProps;
|
|
767
785
|
return /*#__PURE__*/React.createElement(index$2.default.MenuItem, _rollupPluginBabelHelpers.extends({
|
|
768
786
|
key: itemProps.id,
|
|
769
|
-
isActive: isEqual(
|
|
787
|
+
isActive: isEqual(currentSelectedItem, item),
|
|
770
788
|
isHighlighted: highlightedIndex === index,
|
|
771
789
|
title: title,
|
|
772
790
|
disabled: disabled
|
|
773
791
|
}, modifiedItemProps), ItemToElement ? /*#__PURE__*/React.createElement(ItemToElement, _rollupPluginBabelHelpers.extends({
|
|
774
792
|
key: itemProps.id
|
|
775
|
-
}, item)) : itemToString(item), isEqual(
|
|
793
|
+
}, item)) : itemToString(item), isEqual(currentSelectedItem, item) && /*#__PURE__*/React.createElement(iconsReact.Checkmark, {
|
|
776
794
|
className: `${prefix}--list-box__menu-item__selected-icon`
|
|
777
795
|
}));
|
|
778
796
|
}) : null)), helperText && !invalid && !warn && !isFluid && /*#__PURE__*/React.createElement(Text.Text, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2023,
|
|
2
|
+
* Copyright IBM Corp. 2023, 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.
|
|
@@ -61,7 +61,7 @@ export interface ComposedModalProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
61
61
|
* Specify an optional handler for closing modal.
|
|
62
62
|
* Returning `false` here prevents closing modal.
|
|
63
63
|
*/
|
|
64
|
-
onClose
|
|
64
|
+
onClose?: ((event: MouseEvent) => boolean) | ((event: MouseEvent) => void);
|
|
65
65
|
/**
|
|
66
66
|
* Called for all `onKeyDown` events that do not close the modal
|
|
67
67
|
*/
|
|
@@ -4,12 +4,9 @@
|
|
|
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
|
|
8
|
-
import
|
|
7
|
+
import { ReactNode } from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
9
|
declare const variants: readonly ["on-page", "disclosed"];
|
|
10
|
-
export type ContainedListType = React.FC<ContainedListProps> & {
|
|
11
|
-
ContainedListItem: typeof ContainedListItem;
|
|
12
|
-
};
|
|
13
10
|
export type Variants = (typeof variants)[number];
|
|
14
11
|
export interface ContainedListProps {
|
|
15
12
|
/**
|
|
@@ -41,5 +38,37 @@ export interface ContainedListProps {
|
|
|
41
38
|
*/
|
|
42
39
|
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
43
40
|
}
|
|
44
|
-
declare const ContainedList:
|
|
41
|
+
declare const ContainedList: {
|
|
42
|
+
({ action, children, className, isInset, kind, label, size, ...rest }: ContainedListProps): import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
propTypes: {
|
|
44
|
+
/**
|
|
45
|
+
* A slot for a possible interactive element to render.
|
|
46
|
+
*/
|
|
47
|
+
action: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
48
|
+
/**
|
|
49
|
+
* A collection of ContainedListItems to be rendered in the ContainedList
|
|
50
|
+
*/
|
|
51
|
+
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
52
|
+
/**
|
|
53
|
+
* Additional CSS class names.
|
|
54
|
+
*/
|
|
55
|
+
className: PropTypes.Requireable<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Specify whether the dividing lines in between list items should be inset.
|
|
58
|
+
*/
|
|
59
|
+
isInset: PropTypes.Requireable<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* The kind of ContainedList you want to display
|
|
62
|
+
*/
|
|
63
|
+
kind: PropTypes.Requireable<"on-page" | "disclosed">;
|
|
64
|
+
/**
|
|
65
|
+
* A label describing the contained list.
|
|
66
|
+
*/
|
|
67
|
+
label: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
|
|
68
|
+
/**
|
|
69
|
+
* Specify the size of the contained list.
|
|
70
|
+
*/
|
|
71
|
+
size: PropTypes.Requireable<string>;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
45
74
|
export default ContainedList;
|
|
@@ -136,6 +136,8 @@ ContainedList.propTypes = {
|
|
|
136
136
|
*/
|
|
137
137
|
size: PropTypes.oneOf(['sm', 'md', 'lg', 'xl'])
|
|
138
138
|
};
|
|
139
|
-
ContainedList
|
|
139
|
+
Object.assign(ContainedList, {
|
|
140
|
+
ContainedListItem: ContainedListItem.default
|
|
141
|
+
});
|
|
140
142
|
|
|
141
143
|
exports.default = ContainedList;
|
|
@@ -4,7 +4,8 @@
|
|
|
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 { type ElementType, type ReactNode } from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
8
9
|
interface ContainedListItemProps {
|
|
9
10
|
/**
|
|
10
11
|
* A slot for a possible interactive element to render within the item.
|
|
@@ -29,7 +30,35 @@ interface ContainedListItemProps {
|
|
|
29
30
|
/**
|
|
30
31
|
* A component used to render an icon.
|
|
31
32
|
*/
|
|
32
|
-
renderIcon?:
|
|
33
|
+
renderIcon?: ElementType;
|
|
33
34
|
}
|
|
34
|
-
declare const ContainedListItem:
|
|
35
|
+
declare const ContainedListItem: {
|
|
36
|
+
({ action, children, className, disabled, onClick, renderIcon: IconElement, ...rest }: ContainedListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
propTypes: {
|
|
38
|
+
/**
|
|
39
|
+
* A slot for a possible interactive element to render within the item.
|
|
40
|
+
*/
|
|
41
|
+
action: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
42
|
+
/**
|
|
43
|
+
* The content of this item. Must not contain any interactive elements. Use props.action to include those.
|
|
44
|
+
*/
|
|
45
|
+
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
46
|
+
/**
|
|
47
|
+
* Additional CSS class names.
|
|
48
|
+
*/
|
|
49
|
+
className: PropTypes.Requireable<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Whether this item is disabled.
|
|
52
|
+
*/
|
|
53
|
+
disabled: PropTypes.Requireable<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Provide an optional function to be called when the item is clicked.
|
|
56
|
+
*/
|
|
57
|
+
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
58
|
+
/**
|
|
59
|
+
* A component used to render an icon.
|
|
60
|
+
*/
|
|
61
|
+
renderIcon: PropTypes.Requireable<object>;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
35
64
|
export default ContainedListItem;
|