@carbon/react 1.36.0 → 1.37.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/es/components/Button/Button.js +12 -12
  2. package/es/components/ComboBox/ComboBox.js +2 -4
  3. package/es/components/DataTable/DataTable.d.ts +30 -0
  4. package/es/components/DataTable/DataTable.js +27 -0
  5. package/es/components/DataTable/TableBatchActions.d.ts +51 -0
  6. package/es/components/DataTable/TableBatchActions.js +39 -8
  7. package/es/components/DataTable/TableExpandHeader.d.ts +27 -5
  8. package/es/components/DataTable/TableExpandHeader.js +17 -3
  9. package/es/components/DataTable/TableExpandRow.d.ts +24 -3
  10. package/es/components/DataTable/TableExpandRow.js +18 -3
  11. package/es/components/DataTable/TableRow.js +1 -1
  12. package/es/components/DataTable/TableToolbarSearch.d.ts +176 -0
  13. package/es/components/DataTable/TableToolbarSearch.js +9 -4
  14. package/es/components/Dropdown/Dropdown.d.ts +1 -1
  15. package/es/components/Dropdown/Dropdown.js +40 -40
  16. package/es/components/FileUploader/FileUploader.Skeleton.d.ts +1 -4
  17. package/es/components/FileUploader/FileUploaderDropContainer.d.ts +9 -17
  18. package/es/components/FileUploader/FileUploaderDropContainer.js +21 -17
  19. package/es/components/FileUploader/FileUploaderItem.d.ts +3 -14
  20. package/es/components/FileUploader/FileUploaderItem.js +4 -4
  21. package/es/components/FormLabel/FormLabel.d.ts +40 -0
  22. package/es/components/FormLabel/index.d.ts +9 -0
  23. package/es/components/ListBox/ListBoxMenu.d.ts +2 -2
  24. package/es/components/ListBox/ListBoxMenu.js +1 -1
  25. package/es/components/ListBox/ListBoxMenuItem.d.ts +6 -2
  26. package/es/components/ListBox/ListBoxMenuItem.js +6 -3
  27. package/es/components/MultiSelect/FilterableMultiSelect.js +24 -4
  28. package/es/components/MultiSelect/MultiSelect.d.ts +1 -3
  29. package/es/components/MultiSelect/MultiSelect.js +77 -56
  30. package/es/components/NumberInput/NumberInput.d.ts +1 -1
  31. package/es/components/NumberInput/NumberInput.js +18 -44
  32. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.d.ts +24 -0
  33. package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +3 -5
  34. package/es/components/SkeletonPlaceholder/index.d.ts +9 -0
  35. package/es/components/Slider/Slider.d.ts +6 -0
  36. package/es/components/Slider/Slider.js +17 -2
  37. package/es/components/StructuredList/StructuredList.js +5 -2
  38. package/es/components/Tag/Tag.Skeleton.d.ts +35 -0
  39. package/es/components/Tag/Tag.d.ts +122 -0
  40. package/es/components/Tag/Tag.js +6 -6
  41. package/es/components/Tag/index.d.ts +11 -0
  42. package/es/components/TextArea/TextArea.js +1 -1
  43. package/es/components/Tile/Tile.js +5 -5
  44. package/es/components/TimePicker/TimePicker.js +8 -6
  45. package/es/components/Toggle/Toggle.Skeleton.js +1 -4
  46. package/es/components/Toggle/Toggle.js +1 -1
  47. package/es/components/ToggleSmall/ToggleSmall.Skeleton.js +0 -3
  48. package/es/components/UIShell/HeaderMenuItem.js +1 -2
  49. package/es/components/UIShell/Link.js +1 -2
  50. package/es/components/UIShell/SideNav.js +1 -3
  51. package/es/components/UIShell/index.d.ts +35 -0
  52. package/es/index.js +32 -32
  53. package/es/types/common.d.ts +7 -0
  54. package/lib/components/Button/Button.js +12 -12
  55. package/lib/components/ComboBox/ComboBox.js +2 -4
  56. package/lib/components/DataTable/DataTable.d.ts +30 -0
  57. package/lib/components/DataTable/DataTable.js +27 -0
  58. package/lib/components/DataTable/TableBatchActions.d.ts +51 -0
  59. package/lib/components/DataTable/TableBatchActions.js +39 -8
  60. package/lib/components/DataTable/TableExpandHeader.d.ts +27 -5
  61. package/lib/components/DataTable/TableExpandHeader.js +17 -3
  62. package/lib/components/DataTable/TableExpandRow.d.ts +24 -3
  63. package/lib/components/DataTable/TableExpandRow.js +18 -3
  64. package/lib/components/DataTable/TableRow.js +1 -1
  65. package/lib/components/DataTable/TableToolbarSearch.d.ts +176 -0
  66. package/lib/components/DataTable/TableToolbarSearch.js +9 -4
  67. package/lib/components/Dropdown/Dropdown.d.ts +1 -1
  68. package/lib/components/Dropdown/Dropdown.js +39 -39
  69. package/lib/components/FileUploader/FileUploader.Skeleton.d.ts +1 -4
  70. package/lib/components/FileUploader/FileUploaderDropContainer.d.ts +9 -17
  71. package/lib/components/FileUploader/FileUploaderDropContainer.js +21 -17
  72. package/lib/components/FileUploader/FileUploaderItem.d.ts +3 -14
  73. package/lib/components/FileUploader/FileUploaderItem.js +4 -4
  74. package/lib/components/FormLabel/FormLabel.d.ts +40 -0
  75. package/lib/components/FormLabel/index.d.ts +9 -0
  76. package/lib/components/ListBox/ListBoxMenu.d.ts +2 -2
  77. package/lib/components/ListBox/ListBoxMenu.js +1 -1
  78. package/lib/components/ListBox/ListBoxMenuItem.d.ts +6 -2
  79. package/lib/components/ListBox/ListBoxMenuItem.js +6 -3
  80. package/lib/components/MultiSelect/FilterableMultiSelect.js +24 -4
  81. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -3
  82. package/lib/components/MultiSelect/MultiSelect.js +75 -55
  83. package/lib/components/NumberInput/NumberInput.d.ts +1 -1
  84. package/lib/components/NumberInput/NumberInput.js +18 -44
  85. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.d.ts +24 -0
  86. package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +3 -5
  87. package/lib/components/SkeletonPlaceholder/index.d.ts +9 -0
  88. package/lib/components/Slider/Slider.d.ts +6 -0
  89. package/lib/components/Slider/Slider.js +17 -2
  90. package/lib/components/StructuredList/StructuredList.js +5 -2
  91. package/lib/components/Tag/Tag.Skeleton.d.ts +35 -0
  92. package/lib/components/Tag/Tag.d.ts +122 -0
  93. package/lib/components/Tag/Tag.js +6 -6
  94. package/lib/components/Tag/index.d.ts +11 -0
  95. package/lib/components/TextArea/TextArea.js +1 -1
  96. package/lib/components/Tile/Tile.js +5 -5
  97. package/lib/components/TimePicker/TimePicker.js +8 -6
  98. package/lib/components/Toggle/Toggle.Skeleton.js +1 -4
  99. package/lib/components/Toggle/Toggle.js +1 -1
  100. package/lib/components/ToggleSmall/ToggleSmall.Skeleton.js +0 -3
  101. package/lib/components/UIShell/HeaderMenuItem.js +1 -2
  102. package/lib/components/UIShell/Link.js +1 -2
  103. package/lib/components/UIShell/SideNav.js +1 -3
  104. package/lib/components/UIShell/index.d.ts +35 -0
  105. package/lib/index.js +65 -65
  106. package/lib/types/common.d.ts +7 -0
  107. package/package.json +5 -5
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import PropTypes from 'prop-types';
8
+ import React from 'react';
9
+ import { PolymorphicProps } from '../../types/common';
10
+ declare const TYPES: {
11
+ red: string;
12
+ magenta: string;
13
+ purple: string;
14
+ blue: string;
15
+ cyan: string;
16
+ teal: string;
17
+ green: string;
18
+ gray: string;
19
+ 'cool-gray': string;
20
+ 'warm-gray': string;
21
+ 'high-contrast': string;
22
+ outline: string;
23
+ };
24
+ export interface TagBaseProps {
25
+ /**
26
+ * Provide content to be rendered inside of a <Tag>
27
+ */
28
+ children?: React.ReactNode;
29
+ /**
30
+ * Provide a custom className that is applied to the containing <span>
31
+ */
32
+ className?: string;
33
+ /**
34
+ * Specify if the <Tag> is disabled
35
+ */
36
+ disabled?: boolean;
37
+ /**
38
+ * Determine if <Tag> is a filter/chip
39
+ */
40
+ filter?: boolean;
41
+ /**
42
+ * Specify the id for the tag.
43
+ */
44
+ id?: string;
45
+ /**
46
+ * Click handler for filter tag close button.
47
+ */
48
+ onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;
49
+ /**
50
+ * Optional prop to render a custom icon.
51
+ * Can be a React component class
52
+ */
53
+ renderIcon?: React.ElementType;
54
+ /**
55
+ * Specify the size of the Tag. Currently supports either `sm` or
56
+ * 'md' (default) sizes.
57
+ */
58
+ size?: 'sm' | 'md';
59
+ /**
60
+ * Text to show on clear filters
61
+ */
62
+ title?: string;
63
+ /**
64
+ * Specify the type of the <Tag>
65
+ */
66
+ type?: keyof typeof TYPES;
67
+ }
68
+ export type TagProps<T extends React.ElementType> = PolymorphicProps<T, TagBaseProps>;
69
+ declare const Tag: {
70
+ <T extends React.ElementType<any>>({ children, className, id, type, filter, renderIcon: CustomIconElement, title, disabled, onClose, size, as: BaseComponent, ...other }: TagProps<T>): JSX.Element;
71
+ propTypes: {
72
+ /**
73
+ * Provide an alternative tag or component to use instead of the default
74
+ * wrapping element
75
+ */
76
+ as: PropTypes.Requireable<PropTypes.ReactComponentLike>;
77
+ /**
78
+ * Provide content to be rendered inside of a <Tag>
79
+ */
80
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
81
+ /**
82
+ * Provide a custom className that is applied to the containing <span>
83
+ */
84
+ className: PropTypes.Requireable<string>;
85
+ /**
86
+ * Specify if the <Tag> is disabled
87
+ */
88
+ disabled: PropTypes.Requireable<boolean>;
89
+ /**
90
+ * Determine if <Tag> is a filter/chip
91
+ */
92
+ filter: PropTypes.Requireable<boolean>;
93
+ /**
94
+ * Specify the id for the tag.
95
+ */
96
+ id: PropTypes.Requireable<string>;
97
+ /**
98
+ * Click handler for filter tag close button.
99
+ */
100
+ onClose: PropTypes.Requireable<(...args: any[]) => any>;
101
+ /**
102
+ * Optional prop to render a custom icon.
103
+ * Can be a React component class
104
+ */
105
+ renderIcon: PropTypes.Requireable<object>;
106
+ /**
107
+ * Specify the size of the Tag. Currently supports either `sm` or
108
+ * 'md' (default) sizes.
109
+ */
110
+ size: PropTypes.Requireable<string>;
111
+ /**
112
+ * Text to show on clear filters
113
+ */
114
+ title: PropTypes.Requireable<string>;
115
+ /**
116
+ * Specify the type of the <Tag>
117
+ */
118
+ type: PropTypes.Requireable<string>;
119
+ };
120
+ };
121
+ export declare const types: string[];
122
+ export default Tag;
@@ -55,6 +55,7 @@ const Tag = _ref => {
55
55
  [`${prefix}--tag--${type}`]: type,
56
56
  [`${prefix}--tag--interactive`]: other.onClick && !filter
57
57
  });
58
+ const typeText = type !== undefined && type in Object.keys(TYPES) ? TYPES[type] : '';
58
59
  const handleClose = event => {
59
60
  if (onClose) {
60
61
  event.stopPropagation();
@@ -68,8 +69,8 @@ const Tag = _ref => {
68
69
  id: tagId
69
70
  }, other), /*#__PURE__*/React__default.createElement("span", {
70
71
  className: `${prefix}--tag__label`,
71
- title: typeof children === 'string' ? children : null
72
- }, children !== null && children !== undefined ? children : TYPES[type]), /*#__PURE__*/React__default.createElement("button", {
72
+ title: typeof children === 'string' ? children : undefined
73
+ }, children !== null && children !== undefined ? children : typeText), /*#__PURE__*/React__default.createElement("button", {
73
74
  type: "button",
74
75
  className: `${prefix}--tag__close-icon`,
75
76
  onClick: handleClose,
@@ -86,8 +87,8 @@ const Tag = _ref => {
86
87
  }, other), CustomIconElement ? /*#__PURE__*/React__default.createElement("div", {
87
88
  className: `${prefix}--tag__custom-icon`
88
89
  }, /*#__PURE__*/React__default.createElement(CustomIconElement, null)) : '', /*#__PURE__*/React__default.createElement("span", {
89
- title: typeof children === 'string' ? children : null
90
- }, children !== null && children !== undefined ? children : TYPES[type]));
90
+ title: typeof children === 'string' ? children : undefined
91
+ }, children !== null && children !== undefined ? children : typeText));
91
92
  };
92
93
  Tag.propTypes = {
93
94
  /**
@@ -139,6 +140,5 @@ Tag.propTypes = {
139
140
  type: PropTypes.oneOf(Object.keys(TYPES))
140
141
  };
141
142
  const types = Object.keys(TYPES);
142
- var Tag$1 = Tag;
143
143
 
144
- export { Tag$1 as default, types };
144
+ export { Tag as default, types };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import Tag from './Tag';
8
+ export * from './Tag.Skeleton';
9
+ export * from './Tag';
10
+ export default Tag;
11
+ export { Tag };
@@ -59,7 +59,7 @@ const TextArea = /*#__PURE__*/React__default.forwardRef((props, forwardRef) => {
59
59
  id,
60
60
  onChange: evt => {
61
61
  if (!other.disabled && onChange) {
62
- evt.persist();
62
+ evt?.persist?.();
63
63
  // delay textCount assignation to give the textarea element value time to catch up if is a controlled input
64
64
  setTimeout(() => {
65
65
  setTextCount(evt.target?.value?.length);
@@ -72,12 +72,12 @@ const ClickableTile = /*#__PURE__*/React__default.forwardRef(function ClickableT
72
72
  const classes = cx(`${prefix}--tile`, `${prefix}--tile--clickable`, clicked && `${prefix}--tile--is-clicked`, light && `${prefix}--tile--light`, className);
73
73
  const [isSelected, setIsSelected] = useState(clicked);
74
74
  function handleOnClick(evt) {
75
- evt.persist();
75
+ evt?.persist?.();
76
76
  setIsSelected(!isSelected);
77
77
  onClick(evt);
78
78
  }
79
79
  function handleOnKeyDown(evt) {
80
- evt.persist();
80
+ evt?.persist?.();
81
81
  if (matches(evt, [Enter, Space])) {
82
82
  evt.preventDefault();
83
83
  setIsSelected(!isSelected);
@@ -181,7 +181,7 @@ const SelectableTile = /*#__PURE__*/React__default.forwardRef(function Selectabl
181
181
  // TODO: rename to handleClick when handleClick prop is deprecated
182
182
  function handleOnClick(evt) {
183
183
  evt.preventDefault();
184
- evt.persist();
184
+ evt?.persist?.();
185
185
  setIsSelected(!isSelected);
186
186
  clickHandler(evt);
187
187
  onChange(evt);
@@ -189,7 +189,7 @@ const SelectableTile = /*#__PURE__*/React__default.forwardRef(function Selectabl
189
189
 
190
190
  // TODO: rename to handleKeyDown when handleKeyDown prop is deprecated
191
191
  function handleOnKeyDown(evt) {
192
- evt.persist();
192
+ evt?.persist?.();
193
193
  if (matches(evt, [Enter, Space])) {
194
194
  evt.preventDefault();
195
195
  setIsSelected(!isSelected);
@@ -335,7 +335,7 @@ const ExpandableTile = /*#__PURE__*/React__default.forwardRef(function Expandabl
335
335
  }
336
336
  }
337
337
  function handleClick(evt) {
338
- evt.persist();
338
+ evt?.persist?.();
339
339
  setIsExpanded(!isExpanded);
340
340
  setMaxHeight();
341
341
  }
@@ -110,12 +110,14 @@ const TimePicker = /*#__PURE__*/React__default.forwardRef(function TimePicker(_r
110
110
  };
111
111
  const mappedChildren = React__default.Children.map(children, pickerSelect => {
112
112
  const item = pickerSelect;
113
- return /*#__PURE__*/React__default.cloneElement(item, {
114
- ...item.props,
115
- disabled: disabled,
116
- readOnly: readOnly,
117
- ...readOnlyEventHandlers
118
- });
113
+ if (item) {
114
+ return /*#__PURE__*/React__default.cloneElement(item, {
115
+ ...item.props,
116
+ disabled: disabled,
117
+ readOnly: readOnly,
118
+ ...readOnlyEventHandlers
119
+ });
120
+ }
119
121
  });
120
122
  return mappedChildren;
121
123
  }
@@ -13,7 +13,6 @@ import { usePrefix } from '../../internal/usePrefix.js';
13
13
 
14
14
  const ToggleSkeleton = _ref => {
15
15
  let {
16
- 'aria-label': ariaLabel = 'Toggle is loading',
17
16
  className,
18
17
  ...rest
19
18
  } = _ref;
@@ -21,9 +20,7 @@ const ToggleSkeleton = _ref => {
21
20
  const skeletonClassNames = cx(`${prefix}--toggle ${prefix}--toggle--skeleton`, className);
22
21
  return /*#__PURE__*/React__default.createElement("div", _extends({
23
22
  className: skeletonClassNames
24
- }, rest, {
25
- "aria-label": ariaLabel
26
- }), /*#__PURE__*/React__default.createElement("div", {
23
+ }, rest), /*#__PURE__*/React__default.createElement("div", {
27
24
  className: `${prefix}--toggle__skeleton-circle`
28
25
  }), /*#__PURE__*/React__default.createElement("div", {
29
26
  className: `${prefix}--toggle__skeleton-rectangle`
@@ -86,7 +86,7 @@ function Toggle(_ref) {
86
86
  role: "switch",
87
87
  type: "button",
88
88
  "aria-checked": checked,
89
- "aria-labelledby": ariaLabelledby,
89
+ "aria-labelledby": id,
90
90
  disabled: disabled,
91
91
  onClick: handleClick
92
92
  })), /*#__PURE__*/React__default.createElement(LabelComponent, {
@@ -63,8 +63,5 @@ _defineProperty(ToggleSmallSkeleton, "propTypes", {
63
63
  */
64
64
  labelText: PropTypes.string
65
65
  });
66
- _defineProperty(ToggleSmallSkeleton, "defaultProps", {
67
- ['aria-label']: 'Toggle is loading'
68
- });
69
66
 
70
67
  export { ToggleSmallSkeleton, ToggleSmallSkeleton as default };
@@ -82,6 +82,5 @@ HeaderMenuItem.propTypes = {
82
82
  */
83
83
  tabIndex: PropTypes.number
84
84
  };
85
- var HeaderMenuItem$1 = HeaderMenuItem;
86
85
 
87
- export { HeaderMenuItem$1 as default };
86
+ export { HeaderMenuItem as default };
@@ -55,6 +55,5 @@ const LinkPropTypes = {
55
55
  };
56
56
  Link.displayName = 'Link';
57
57
  Link.propTypes = LinkPropTypes;
58
- var Link$1 = Link;
59
58
 
60
- export { LinkPropTypes, Link$1 as default };
59
+ export { LinkPropTypes, Link as default };
@@ -255,6 +255,4 @@ SideNav.propTypes = {
255
255
  // translateById: PropTypes.func,
256
256
  };
257
257
 
258
- var SideNav$1 = SideNav;
259
-
260
- export { SideNavContext, SideNav$1 as default };
258
+ export { SideNavContext, SideNav as default };
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export { default as Content } from './Content';
8
+ export { default as Header } from './Header';
9
+ export { default as HeaderContainer } from './HeaderContainer';
10
+ export { default as HeaderGlobalAction } from './HeaderGlobalAction';
11
+ export { default as HeaderGlobalBar } from './HeaderGlobalBar';
12
+ export { default as HeaderMenu } from './HeaderMenu';
13
+ export { default as HeaderMenuButton } from './HeaderMenuButton';
14
+ export { default as HeaderMenuItem } from './HeaderMenuItem';
15
+ export { default as HeaderName } from './HeaderName';
16
+ export { default as HeaderNavigation } from './HeaderNavigation';
17
+ export { default as HeaderPanel } from './HeaderPanel';
18
+ export { default as HeaderSideNavItems } from './HeaderSideNavItems';
19
+ export { default as Switcher } from './Switcher';
20
+ export { default as SwitcherItem } from './SwitcherItem';
21
+ export { default as SwitcherDivider } from './SwitcherDivider';
22
+ export { default as SkipToContent } from './SkipToContent';
23
+ export { default as SideNav } from './SideNav';
24
+ export { default as SideNavDetails } from './SideNavDetails';
25
+ export { default as SideNavDivider } from './SideNavDivider';
26
+ export { default as SideNavFooter } from './SideNavFooter';
27
+ export { default as SideNavHeader } from './SideNavHeader';
28
+ export { default as SideNavIcon } from './SideNavIcon';
29
+ export { default as SideNavItem } from './SideNavItem';
30
+ export { default as SideNavItems } from './SideNavItems';
31
+ export { default as SideNavLink } from './SideNavLink';
32
+ export { default as SideNavLinkText } from './SideNavLinkText';
33
+ export { default as SideNavMenu } from './SideNavMenu';
34
+ export { default as SideNavMenuItem } from './SideNavMenuItem';
35
+ export { default as SideNavSwitcher } from './SideNavSwitcher';
package/es/index.js CHANGED
@@ -44,6 +44,7 @@ export { default as FluidForm } from './components/FluidForm/FluidForm.js';
44
44
  export { FormContext } from './components/FluidForm/FormContext.js';
45
45
  export { default as Form } from './components/Form/Form.js';
46
46
  export { default as FormGroup } from './components/FormGroup/FormGroup.js';
47
+ export { default as FormLabel } from './components/FormLabel/FormLabel.js';
47
48
  export { FlexGrid } from './components/Grid/FlexGrid.js';
48
49
  export { Grid } from './components/Grid/Grid.js';
49
50
  export { default as Row } from './components/Grid/Row.js';
@@ -71,11 +72,13 @@ export { default as Select } from './components/Select/Select.js';
71
72
  export { default as SelectSkeleton } from './components/Select/Select.Skeleton.js';
72
73
  export { default as SelectItem } from './components/SelectItem/SelectItem.js';
73
74
  export { default as SelectItemGroup } from './components/SelectItemGroup/SelectItemGroup.js';
75
+ export { default as SkeletonPlaceholder } from './components/SkeletonPlaceholder/SkeletonPlaceholder.js';
74
76
  export { default as SkeletonText } from './components/SkeletonText/SkeletonText.js';
75
77
  export { default as Slider } from './components/Slider/index.js';
76
78
  export { IconTab, Tab, TabList, TabPanel, TabPanels, Tabs } from './components/Tabs/Tabs.js';
77
79
  export { default as TabContent } from './components/TabContent/TabContent.js';
78
80
  export { default as TabsSkeleton } from './components/Tabs/Tabs.Skeleton.js';
81
+ export { default as Tag, types } from './components/Tag/Tag.js';
79
82
  export { default as TagSkeleton } from './components/Tag/Tag.Skeleton.js';
80
83
  export { default as TextArea } from './components/TextArea/TextArea.js';
81
84
  export { default as TextAreaSkeleton } from './components/TextArea/TextArea.Skeleton.js';
@@ -88,6 +91,35 @@ export { Toggle } from './components/Toggle/Toggle.js';
88
91
  export { default as ToggleSkeleton } from './components/Toggle/Toggle.Skeleton.js';
89
92
  export { default as ToggleSmallSkeleton } from './components/ToggleSmall/ToggleSmall.Skeleton.js';
90
93
  export { Toggletip, ToggletipActions, ToggletipButton, ToggletipContent, ToggletipLabel } from './components/Toggletip/index.js';
94
+ export { default as Content } from './components/UIShell/Content.js';
95
+ export { default as Header } from './components/UIShell/Header.js';
96
+ export { default as HeaderContainer } from './components/UIShell/HeaderContainer.js';
97
+ export { default as HeaderGlobalAction } from './components/UIShell/HeaderGlobalAction.js';
98
+ export { default as HeaderGlobalBar } from './components/UIShell/HeaderGlobalBar.js';
99
+ export { default as HeaderMenu } from './components/UIShell/HeaderMenu.js';
100
+ export { default as HeaderMenuButton } from './components/UIShell/HeaderMenuButton.js';
101
+ export { default as HeaderMenuItem } from './components/UIShell/HeaderMenuItem.js';
102
+ export { default as HeaderName } from './components/UIShell/HeaderName.js';
103
+ export { default as HeaderNavigation } from './components/UIShell/HeaderNavigation.js';
104
+ export { default as HeaderPanel } from './components/UIShell/HeaderPanel.js';
105
+ export { default as HeaderSideNavItems } from './components/UIShell/HeaderSideNavItems.js';
106
+ export { default as Switcher } from './components/UIShell/Switcher.js';
107
+ export { default as SwitcherItem } from './components/UIShell/SwitcherItem.js';
108
+ export { default as SwitcherDivider } from './components/UIShell/SwitcherDivider.js';
109
+ export { default as SkipToContent } from './components/UIShell/SkipToContent.js';
110
+ export { default as SideNav } from './components/UIShell/SideNav.js';
111
+ export { default as SideNavDetails } from './components/UIShell/SideNavDetails.js';
112
+ export { default as SideNavDivider } from './components/UIShell/SideNavDivider.js';
113
+ export { default as SideNavFooter } from './components/UIShell/SideNavFooter.js';
114
+ export { default as SideNavHeader } from './components/UIShell/SideNavHeader.js';
115
+ export { default as SideNavIcon } from './components/UIShell/SideNavIcon.js';
116
+ export { default as SideNavItem } from './components/UIShell/SideNavItem.js';
117
+ export { default as SideNavItems } from './components/UIShell/SideNavItems.js';
118
+ export { default as SideNavLink } from './components/UIShell/SideNavLink.js';
119
+ export { default as SideNavLinkText } from './components/UIShell/SideNavLinkText.js';
120
+ export { default as SideNavMenu } from './components/UIShell/SideNavMenu.js';
121
+ export { default as SideNavMenuItem } from './components/UIShell/SideNavMenuItem.js';
122
+ export { default as SideNavSwitcher } from './components/UIShell/SideNavSwitcher.js';
91
123
  export { default as UnorderedList } from './components/UnorderedList/UnorderedList.js';
92
124
  export { FeatureFlags as unstable_FeatureFlags, useFeatureFlag as unstable_useFeatureFlag, useFeatureFlags as unstable_useFeatureFlags } from './components/FeatureFlags/index.js';
93
125
  export { Heading, Section } from './components/Heading/index.js';
@@ -120,7 +152,6 @@ export { default as Copy } from './components/Copy/Copy.js';
120
152
  export { default as CopyButton } from './components/CopyButton/CopyButton.js';
121
153
  export { default as ErrorBoundary } from './components/ErrorBoundary/ErrorBoundary.js';
122
154
  export { default as FormItem } from './components/FormItem/FormItem.js';
123
- export { default as FormLabel } from './components/FormLabel/FormLabel.js';
124
155
  export { default as InlineLoading } from './components/InlineLoading/InlineLoading.js';
125
156
  export { default as ModalWrapper } from './components/ModalWrapper/ModalWrapper.js';
126
157
  export { default as ProgressIndicatorSkeleton } from './components/ProgressIndicator/ProgressIndicator.Skeleton.js';
@@ -128,17 +159,6 @@ export { default as TextInputSkeleton } from './components/TextInput/TextInput.S
128
159
  export { default as TextInput } from './components/TextInput/TextInput.js';
129
160
  export { default as TreeNode } from './components/TreeView/TreeNode.js';
130
161
  export { default as TreeView } from './components/TreeView/TreeView.js';
131
- export { default as HeaderContainer } from './components/UIShell/HeaderContainer.js';
132
- export { default as HeaderMenuButton } from './components/UIShell/HeaderMenuButton.js';
133
- export { default as HeaderName } from './components/UIShell/HeaderName.js';
134
- export { default as HeaderNavigation } from './components/UIShell/HeaderNavigation.js';
135
- export { default as HeaderSideNavItems } from './components/UIShell/HeaderSideNavItems.js';
136
- export { default as SkipToContent } from './components/UIShell/SkipToContent.js';
137
- export { default as SideNavDivider } from './components/UIShell/SideNavDivider.js';
138
- export { default as SideNavFooter } from './components/UIShell/SideNavFooter.js';
139
- export { default as SideNavIcon } from './components/UIShell/SideNavIcon.js';
140
- export { default as SideNavItem } from './components/UIShell/SideNavItem.js';
141
- export { default as SideNavLinkText } from './components/UIShell/SideNavLinkText.js';
142
162
  export { default as ProgressBar } from './components/ProgressBar/ProgressBar.js';
143
163
  export { default as unstable__FluidComboBox } from './components/FluidComboBox/FluidComboBox.js';
144
164
  export { default as unstable__FluidComboBoxSkeleton } from './components/FluidComboBox/FluidComboBox.Skeleton.js';
@@ -193,29 +213,9 @@ export { ProgressIndicator, ProgressStep } from './components/ProgressIndicator/
193
213
  export { default as RadioTile } from './components/RadioTile/RadioTile.js';
194
214
  export { default as SecondaryButton } from './components/SecondaryButton/SecondaryButton.js';
195
215
  export { default as SkeletonIcon } from './components/SkeletonIcon/SkeletonIcon.js';
196
- export { default as SkeletonPlaceholder } from './components/SkeletonPlaceholder/SkeletonPlaceholder.js';
197
216
  export { default as SliderSkeleton } from './components/Slider/Slider.Skeleton.js';
198
217
  export { default as StructuredListSkeleton } from './components/StructuredList/StructuredList.Skeleton.js';
199
218
  export { StructuredListBody, StructuredListCell, StructuredListHead, StructuredListInput, StructuredListRow, StructuredListWrapper } from './components/StructuredList/StructuredList.js';
200
219
  export { default as Switch } from './components/Switch/Switch.js';
201
220
  export { default as IconSwitch } from './components/Switch/IconSwitch.js';
202
- export { default as Tag, types } from './components/Tag/Tag.js';
203
- export { default as Content } from './components/UIShell/Content.js';
204
- export { default as Header } from './components/UIShell/Header.js';
205
- export { default as HeaderGlobalAction } from './components/UIShell/HeaderGlobalAction.js';
206
- export { default as HeaderGlobalBar } from './components/UIShell/HeaderGlobalBar.js';
207
- export { default as HeaderMenu } from './components/UIShell/HeaderMenu.js';
208
- export { default as HeaderMenuItem } from './components/UIShell/HeaderMenuItem.js';
209
- export { default as HeaderPanel } from './components/UIShell/HeaderPanel.js';
210
- export { default as Switcher } from './components/UIShell/Switcher.js';
211
- export { default as SwitcherItem } from './components/UIShell/SwitcherItem.js';
212
- export { default as SwitcherDivider } from './components/UIShell/SwitcherDivider.js';
213
- export { default as SideNav } from './components/UIShell/SideNav.js';
214
- export { default as SideNavDetails } from './components/UIShell/SideNavDetails.js';
215
- export { default as SideNavHeader } from './components/UIShell/SideNavHeader.js';
216
- export { default as SideNavItems } from './components/UIShell/SideNavItems.js';
217
- export { default as SideNavLink } from './components/UIShell/SideNavLink.js';
218
- export { default as SideNavMenu } from './components/UIShell/SideNavMenu.js';
219
- export { default as SideNavMenuItem } from './components/UIShell/SideNavMenuItem.js';
220
- export { default as SideNavSwitcher } from './components/UIShell/SideNavSwitcher.js';
221
221
  export { Stack } from './components/Stack/Stack.js';
@@ -9,3 +9,10 @@ export type ForwardRefReturn<T, P = unknown> = React.ForwardRefExoticComponent<F
9
9
  export type PolymorphicProps<Element extends React.ElementType, Props> = Props & Omit<React.ComponentProps<Element>, 'as'> & {
10
10
  as?: Element;
11
11
  };
12
+ export interface InternationalProps<MID = string, ARGS = Record<string, unknown>> {
13
+ /**
14
+ * Supply a method to translate internal strings with your i18n tool of
15
+ * choice.
16
+ */
17
+ translateWithId?(messageId: MID, args?: ARGS): string;
18
+ }
@@ -123,17 +123,18 @@ const Button = /*#__PURE__*/React__default["default"].forwardRef(function Button
123
123
  component = 'a';
124
124
  otherProps = anchorProps;
125
125
  }
126
- const Button = /*#__PURE__*/React__default["default"].createElement(component, {
127
- onMouseEnter,
128
- onMouseLeave,
129
- onFocus,
130
- onBlur,
131
- onClick,
132
- ...rest,
133
- ...commonProps,
134
- ...otherProps
135
- }, assistiveText, children, buttonImage);
136
- if (hasIconOnly) {
126
+ if (!hasIconOnly) {
127
+ return /*#__PURE__*/React__default["default"].createElement(component, {
128
+ onMouseEnter,
129
+ onMouseLeave,
130
+ onFocus,
131
+ onBlur,
132
+ onClick,
133
+ ...rest,
134
+ ...commonProps,
135
+ ...otherProps
136
+ }, assistiveText, children, buttonImage);
137
+ } else {
137
138
  let align = undefined;
138
139
  if (tooltipPosition === 'top' || tooltipPosition === 'bottom') {
139
140
  if (tooltipAlignment === 'center') {
@@ -162,7 +163,6 @@ const Button = /*#__PURE__*/React__default["default"].forwardRef(function Button
162
163
  onClick: events.composeEventHandlers([onClick, handleClick])
163
164
  }, rest, commonProps, otherProps), iconOnlyImage ? iconOnlyImage : children);
164
165
  }
165
- return Button;
166
166
  });
167
167
  Button.displayName = 'Button';
168
168
  Button.propTypes = {
@@ -219,7 +219,7 @@ const ComboBox = /*#__PURE__*/React__default["default"].forwardRef((props, ref)
219
219
  }
220
220
  if (event.target === textInput.current && isOpen) {
221
221
  event.preventDownshiftDefault = true;
222
- event.persist();
222
+ event?.persist?.();
223
223
  }
224
224
  };
225
225
  const showWarning = !invalid && warn;
@@ -300,8 +300,6 @@ const ComboBox = /*#__PURE__*/React__default["default"].forwardRef((props, ref)
300
300
  }
301
301
  });
302
302
  const inputProps = getInputProps({
303
- // Remove excess aria `aria-labelledby`. HTML <label for> provides this aria information.
304
- 'aria-labelledby': null,
305
303
  disabled,
306
304
  placeholder,
307
305
  onClick() {
@@ -318,7 +316,7 @@ const ComboBox = /*#__PURE__*/React__default["default"].forwardRef((props, ref)
318
316
  if (event.target === textInput.current && isOpen) {
319
317
  toggleMenu();
320
318
  event.preventDownshiftDefault = true;
321
- event.persist();
319
+ event?.persist?.();
322
320
  }
323
321
  }
324
322
  if (match.match(event, keys.Home)) {
@@ -99,6 +99,7 @@ export interface DataTableRenderProps<RowType, ColTypes extends any[]> {
99
99
  [key: string]: unknown;
100
100
  }) => {
101
101
  ariaLabel: string;
102
+ ['aria-label']: string;
102
103
  isExpanded: boolean;
103
104
  onExpand: (e: MouseEvent) => void;
104
105
  [key: string]: unknown;
@@ -109,6 +110,7 @@ export interface DataTableRenderProps<RowType, ColTypes extends any[]> {
109
110
  [key: string]: unknown;
110
111
  }) => {
111
112
  ariaLabel: string;
113
+ ['aria-label']: string;
112
114
  disabled: boolean | undefined;
113
115
  isExpanded?: boolean;
114
116
  isSelected?: boolean;
@@ -116,6 +118,13 @@ export interface DataTableRenderProps<RowType, ColTypes extends any[]> {
116
118
  onExpand: (e: MouseEvent) => void;
117
119
  [key: string]: unknown;
118
120
  };
121
+ getExpandedRowProps: (getExpandedRowPropsArgs: {
122
+ row: DataTableRow<ColTypes>;
123
+ [key: string]: unknown;
124
+ }) => {
125
+ ['id']: string;
126
+ [key: string]: unknown;
127
+ };
119
128
  getSelectionProps: (getSelectionPropsArgs: {
120
129
  onClick?: (e: MouseEvent) => void;
121
130
  row: DataTableRow<ColTypes>;
@@ -141,7 +150,9 @@ export interface DataTableRenderProps<RowType, ColTypes extends any[]> {
141
150
  [key: string]: unknown;
142
151
  }) => {
143
152
  onCancel: () => void;
153
+ onSelectAll?: () => void | undefined;
144
154
  shouldShowBatchActions: boolean;
155
+ totalCount: number;
145
156
  totalSelected: number;
146
157
  [key: string]: unknown;
147
158
  };
@@ -375,6 +386,8 @@ declare class DataTable<RowType, ColTypes extends any[]> extends React.Component
375
386
  onExpand?: ((e: MouseEvent) => void) | undefined;
376
387
  }) => {
377
388
  ariaLabel: string;
389
+ 'aria-label': string;
390
+ 'aria-controls': string;
378
391
  isExpanded: boolean;
379
392
  onExpand: any;
380
393
  };
@@ -411,9 +424,24 @@ declare class DataTable<RowType, ColTypes extends any[]> extends React.Component
411
424
  onExpand: any;
412
425
  isExpanded: boolean | undefined;
413
426
  ariaLabel: string;
427
+ 'aria-label': string;
428
+ 'aria-controls': string;
414
429
  isSelected: boolean | undefined;
415
430
  disabled: boolean | undefined;
416
431
  };
432
+ /**
433
+ * Get the props associated with an expanded row
434
+ *
435
+ * @param {object} config
436
+ * @param {object} config.row the parent row we want the props for
437
+ * @returns {object}
438
+ */
439
+ getExpandedRowProps: ({ row, ...rest }: {
440
+ [key: string]: unknown;
441
+ row: DataTableRow<ColTypes>;
442
+ }) => {
443
+ id: string;
444
+ };
417
445
  /**
418
446
  * Gets the props associated with selection for a header or a row, where
419
447
  * applicable. Most often used to indicate selection status of the table or
@@ -452,6 +480,8 @@ declare class DataTable<RowType, ColTypes extends any[]> extends React.Component
452
480
  shouldShowBatchActions: boolean;
453
481
  totalSelected: number;
454
482
  onCancel: () => void;
483
+ onSelectAll: undefined;
484
+ totalCount: number;
455
485
  };
456
486
  /**
457
487
  * Helper utility to get the Table Props.