@carbon/react 1.54.0-rc.0 → 1.55.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +994 -1023
  2. package/es/components/Button/Button.d.ts +1 -1
  3. package/es/components/Button/Button.js +13 -89
  4. package/es/components/Button/ButtonBase.d.ts +10 -0
  5. package/es/components/Button/ButtonBase.js +110 -0
  6. package/es/components/CodeSnippet/CodeSnippet.Skeleton.d.ts +37 -0
  7. package/es/components/CodeSnippet/CodeSnippet.d.ts +196 -0
  8. package/es/components/CodeSnippet/CodeSnippet.js +20 -18
  9. package/es/components/CodeSnippet/index.d.ts +10 -0
  10. package/es/components/ComboBox/ComboBox.d.ts +2 -2
  11. package/es/components/ComboBox/ComboBox.js +13 -5
  12. package/es/components/ComboButton/index.d.ts +51 -0
  13. package/es/components/ComboButton/index.js +9 -7
  14. package/es/components/ComposedModal/ComposedModal.js +2 -2
  15. package/es/components/DataTable/TableBatchAction.d.ts +1 -5
  16. package/es/components/Dropdown/Dropdown.js +3 -1
  17. package/es/components/IconButton/index.js +2 -3
  18. package/es/components/Menu/Menu.js +2 -0
  19. package/es/components/Modal/Modal.js +2 -2
  20. package/es/components/ModalWrapper/ModalWrapper.d.ts +1 -1
  21. package/es/components/MultiSelect/FilterableMultiSelect.js +31 -0
  22. package/es/components/MultiSelect/MultiSelect.js +37 -7
  23. package/es/components/Slider/Slider.Skeleton.js +6 -2
  24. package/es/components/Slug/index.js +8 -13
  25. package/es/components/StructuredList/StructuredList.d.ts +8 -0
  26. package/es/components/StructuredList/StructuredList.js +28 -10
  27. package/es/components/Tag/DismissibleTag.js +119 -0
  28. package/es/components/Tag/OperationalTag.js +99 -0
  29. package/es/components/Tag/SelectableTag.js +98 -0
  30. package/es/components/Tag/index.d.ts +4 -1
  31. package/es/components/TreeView/TreeNode.js +1 -1
  32. package/es/components/UIShell/SideNavMenu.js +11 -1
  33. package/es/components/UIShell/SideNavMenuItem.d.ts +4 -0
  34. package/es/components/UIShell/SideNavMenuItem.js +8 -1
  35. package/es/components/UIShell/SwitcherItem.d.ts +4 -0
  36. package/es/components/UIShell/SwitcherItem.js +6 -0
  37. package/es/feature-flags.js +2 -1
  38. package/es/index.js +5 -2
  39. package/es/internal/environment.js +5 -1
  40. package/es/internal/keyboard/navigation.js +6 -2
  41. package/es/internal/useOutsideClick.js +31 -0
  42. package/lib/components/Button/Button.d.ts +1 -1
  43. package/lib/components/Button/Button.js +13 -90
  44. package/lib/components/Button/ButtonBase.d.ts +10 -0
  45. package/lib/components/Button/ButtonBase.js +119 -0
  46. package/lib/components/CodeSnippet/CodeSnippet.Skeleton.d.ts +37 -0
  47. package/lib/components/CodeSnippet/CodeSnippet.d.ts +196 -0
  48. package/lib/components/CodeSnippet/CodeSnippet.js +20 -18
  49. package/lib/components/CodeSnippet/index.d.ts +10 -0
  50. package/lib/components/ComboBox/ComboBox.d.ts +2 -2
  51. package/lib/components/ComboBox/ComboBox.js +13 -5
  52. package/lib/components/ComboButton/index.d.ts +51 -0
  53. package/lib/components/ComboButton/index.js +9 -7
  54. package/lib/components/ComposedModal/ComposedModal.js +2 -2
  55. package/lib/components/DataTable/TableBatchAction.d.ts +1 -5
  56. package/lib/components/Dropdown/Dropdown.js +3 -1
  57. package/lib/components/IconButton/index.js +2 -3
  58. package/lib/components/Menu/Menu.js +2 -0
  59. package/lib/components/Modal/Modal.js +2 -2
  60. package/lib/components/ModalWrapper/ModalWrapper.d.ts +1 -1
  61. package/lib/components/MultiSelect/FilterableMultiSelect.js +31 -0
  62. package/lib/components/MultiSelect/MultiSelect.js +37 -7
  63. package/lib/components/Slider/Slider.Skeleton.js +5 -1
  64. package/lib/components/Slug/index.js +8 -13
  65. package/lib/components/StructuredList/StructuredList.d.ts +8 -0
  66. package/lib/components/StructuredList/StructuredList.js +27 -9
  67. package/lib/components/Tag/DismissibleTag.js +129 -0
  68. package/lib/components/Tag/OperationalTag.js +109 -0
  69. package/lib/components/Tag/SelectableTag.js +108 -0
  70. package/lib/components/Tag/index.d.ts +4 -1
  71. package/lib/components/TreeView/TreeNode.js +1 -1
  72. package/lib/components/UIShell/SideNavMenu.js +11 -1
  73. package/lib/components/UIShell/SideNavMenuItem.d.ts +4 -0
  74. package/lib/components/UIShell/SideNavMenuItem.js +8 -1
  75. package/lib/components/UIShell/SwitcherItem.d.ts +4 -0
  76. package/lib/components/UIShell/SwitcherItem.js +6 -0
  77. package/lib/feature-flags.js +2 -1
  78. package/lib/index.js +10 -4
  79. package/lib/internal/environment.js +5 -1
  80. package/lib/internal/keyboard/navigation.js +6 -2
  81. package/lib/internal/useOutsideClick.js +35 -0
  82. package/package.json +6 -6
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
+ var PropTypes = require('prop-types');
14
+ var React = require('react');
15
+ var cx = require('classnames');
16
+ var setupGetInstanceId = require('../../tools/setupGetInstanceId.js');
17
+ var usePrefix = require('../../internal/usePrefix.js');
18
+ var Tag = require('./Tag.js');
19
+
20
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
+
22
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
23
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
+ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
25
+
26
+ const getInstanceId = setupGetInstanceId["default"]();
27
+ const SelectableTag = _ref => {
28
+ let {
29
+ children,
30
+ className,
31
+ disabled,
32
+ id,
33
+ renderIcon,
34
+ selected = false,
35
+ slug,
36
+ size,
37
+ ...other
38
+ } = _ref;
39
+ const prefix = usePrefix.usePrefix();
40
+ const tagId = id || `tag-${getInstanceId()}`;
41
+ const [selectedTag, setSelectedTag] = React.useState(selected);
42
+ const tagClasses = cx__default["default"](`${prefix}--tag--selectable`, className, {
43
+ [`${prefix}--tag--selectable-selected`]: selectedTag
44
+ });
45
+ let normalizedSlug;
46
+ if (slug && slug['type']?.displayName === 'Slug') {
47
+ normalizedSlug = /*#__PURE__*/React__default["default"].cloneElement(slug, {
48
+ size: 'sm',
49
+ kind: 'inline'
50
+ });
51
+ }
52
+
53
+ // Removing onClick from the spread operator
54
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
55
+ const {
56
+ onClick,
57
+ ...otherProps
58
+ } = other;
59
+ return /*#__PURE__*/React__default["default"].createElement(Tag["default"], _rollupPluginBabelHelpers["extends"]({
60
+ slug: slug,
61
+ size: size,
62
+ renderIcon: renderIcon,
63
+ disabled: disabled,
64
+ className: tagClasses,
65
+ id: tagId,
66
+ onClick: () => setSelectedTag(!selectedTag)
67
+ }, otherProps), /*#__PURE__*/React__default["default"].createElement("div", {
68
+ className: `${prefix}--interactive--tag-children`
69
+ }, children, normalizedSlug));
70
+ };
71
+ SelectableTag.propTypes = {
72
+ /**
73
+ * Provide content to be rendered inside of a `SelectableTag`
74
+ */
75
+ children: PropTypes__default["default"].node,
76
+ /**
77
+ * Provide a custom className that is applied to the containing <span>
78
+ */
79
+ className: PropTypes__default["default"].string,
80
+ /**
81
+ * Specify if the `SelectableTag` is disabled
82
+ */
83
+ disabled: PropTypes__default["default"].bool,
84
+ /**
85
+ * Specify the id for the tag.
86
+ */
87
+ id: PropTypes__default["default"].string,
88
+ /**
89
+ * Optional prop to render a custom icon.
90
+ * Can be a React component class
91
+ */
92
+ renderIcon: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].object]),
93
+ /**
94
+ * Specify the state of the selectable tag.
95
+ */
96
+ selected: PropTypes__default["default"].bool,
97
+ /**
98
+ * Specify the size of the Tag. Currently supports either `sm`,
99
+ * `md` (default) or `lg` sizes.
100
+ */
101
+ size: PropTypes__default["default"].oneOf(Object.keys(Tag.SIZES)),
102
+ /**
103
+ * **Experimental:** Provide a `Slug` component to be rendered inside the `SelectableTag` component
104
+ */
105
+ slug: PropTypes__default["default"].node
106
+ };
107
+
108
+ exports["default"] = SelectableTag;
@@ -5,6 +5,9 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import Tag from './Tag';
8
+ import DismissibleTag from './DismissibleTag';
9
+ import OperationalTag from './OperationalTag';
10
+ import SelectableTag from './SelectableTag';
8
11
  export * from './Tag.Skeleton';
9
12
  export default Tag;
10
- export { Tag };
13
+ export { Tag, DismissibleTag, OperationalTag, SelectableTag };
@@ -66,7 +66,7 @@ const TreeNode = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) =
66
66
  return /*#__PURE__*/React__default["default"].cloneElement(node, {
67
67
  active,
68
68
  depth: depth + 1,
69
- disabled,
69
+ disabled: disabled || node.props.disabled,
70
70
  onTreeSelect,
71
71
  selected,
72
72
  tabIndex: !node.props.disabled && -1 || null
@@ -38,9 +38,12 @@ const SideNavMenu = /*#__PURE__*/React__default["default"].forwardRef(function S
38
38
  tabIndex,
39
39
  title
40
40
  } = _ref;
41
- const isRail = React.useContext(SideNav.SideNavContext);
41
+ const {
42
+ isRail
43
+ } = React.useContext(SideNav.SideNavContext);
42
44
  const prefix = usePrefix.usePrefix();
43
45
  const [isExpanded, setIsExpanded] = React.useState(defaultExpanded);
46
+ const [prevExpanded, setPrevExpanded] = React.useState(defaultExpanded);
44
47
  const className = cx__default["default"]({
45
48
  [`${prefix}--side-nav__item`]: true,
46
49
  [`${prefix}--side-nav__item--active`]: isActive || hasActiveDescendant(children) && !isExpanded,
@@ -48,6 +51,13 @@ const SideNavMenu = /*#__PURE__*/React__default["default"].forwardRef(function S
48
51
  [`${prefix}--side-nav__item--large`]: large,
49
52
  [customClassName]: !!customClassName
50
53
  });
54
+ if (!isSideNavExpanded && isExpanded && isRail) {
55
+ setIsExpanded(false);
56
+ setPrevExpanded(true);
57
+ } else if (isSideNavExpanded && prevExpanded && isRail) {
58
+ setIsExpanded(true);
59
+ setPrevExpanded(false);
60
+ }
51
61
  return (
52
62
  /*#__PURE__*/
53
63
  // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
@@ -20,6 +20,10 @@ interface SideNavMenuItemProps extends HTMLAttributes<HTMLElement> {
20
20
  * `aria-current="page"`, as well.
21
21
  */
22
22
  isActive?: boolean;
23
+ /**
24
+ * Optionally provide an href for the underlying li`
25
+ */
26
+ href?: string;
23
27
  }
24
28
  declare const SideNavMenuItem: React.ForwardRefExoticComponent<SideNavMenuItemProps & React.RefAttributes<HTMLElement>>;
25
29
  export default SideNavMenuItem;
@@ -29,6 +29,7 @@ const SideNavMenuItem = /*#__PURE__*/React__default["default"].forwardRef(functi
29
29
  children,
30
30
  className: customClassName,
31
31
  isActive,
32
+ href,
32
33
  ...rest
33
34
  } = props;
34
35
  const className = cx__default["default"](`${prefix}--side-nav__menu-item`, customClassName);
@@ -38,7 +39,9 @@ const SideNavMenuItem = /*#__PURE__*/React__default["default"].forwardRef(functi
38
39
  });
39
40
  return /*#__PURE__*/React__default["default"].createElement("li", {
40
41
  className: className
41
- }, /*#__PURE__*/React__default["default"].createElement(Link["default"], _rollupPluginBabelHelpers["extends"]({}, rest, {
42
+ }, /*#__PURE__*/React__default["default"].createElement(Link["default"], _rollupPluginBabelHelpers["extends"]({
43
+ href: href
44
+ }, rest, {
42
45
  className: linkClassName,
43
46
  ref: ref
44
47
  }), /*#__PURE__*/React__default["default"].createElement(SideNavLinkText["default"], null, children)));
@@ -53,6 +56,10 @@ SideNavMenuItem.propTypes = {
53
56
  * Provide an optional class to be applied to the containing node
54
57
  */
55
58
  className: PropTypes__default["default"].string,
59
+ /**
60
+ * Optionally provide an href for the underlying li`
61
+ */
62
+ href: PropTypes__default["default"].string,
56
63
  /**
57
64
  * Optionally specify whether the link is "active". An active link is one that
58
65
  * has an href that is the same as the current page. Can also pass in
@@ -39,6 +39,10 @@ interface BaseSwitcherItemProps {
39
39
  * Specify whether the panel is selected
40
40
  */
41
41
  isSelected?: boolean;
42
+ /**
43
+ * Optionally provide an href for the underlying li`
44
+ */
45
+ href?: string;
42
46
  }
43
47
  interface SwitcherItemWithAriaLabel extends BaseSwitcherItemProps {
44
48
  'aria-label': string;
@@ -37,6 +37,7 @@ const SwitcherItem = /*#__PURE__*/React.forwardRef(function SwitcherItem(props,
37
37
  index,
38
38
  handleSwitcherItemFocus,
39
39
  onKeyDown = () => {},
40
+ href,
40
41
  ...rest
41
42
  } = props;
42
43
  const prefix = usePrefix.usePrefix();
@@ -73,6 +74,7 @@ const SwitcherItem = /*#__PURE__*/React.forwardRef(function SwitcherItem(props,
73
74
  setTabFocus(evt);
74
75
  onKeyDown(evt);
75
76
  },
77
+ href: href,
76
78
  ref: forwardRef
77
79
  }, rest, {
78
80
  className: linkClassName,
@@ -94,6 +96,10 @@ SwitcherItem.propTypes = {
94
96
  * event handlers
95
97
  */
96
98
  handleSwitcherItemFocus: PropTypes__default["default"].func,
99
+ /**
100
+ * Optionally provide an href for the underlying li`
101
+ */
102
+ href: PropTypes__default["default"].string,
97
103
  /**
98
104
  * Specify the index of the SwitcherItem
99
105
  */
@@ -34,5 +34,6 @@ FeatureFlags__namespace.merge({
34
34
  'enable-css-grid': true,
35
35
  'enable-v11-release': true,
36
36
  'enable-experimental-tile-contrast': false,
37
- 'enable-v12-tile-radio-icons': false
37
+ 'enable-v12-tile-radio-icons': false,
38
+ 'enable-v12-structured-list-visible-icons': false
38
39
  });
package/lib/index.js CHANGED
@@ -23,6 +23,8 @@ var ButtonSet = require('./components/ButtonSet/ButtonSet.js');
23
23
  var Checkbox = require('./components/Checkbox/Checkbox.js');
24
24
  var Checkbox_Skeleton = require('./components/Checkbox/Checkbox.Skeleton.js');
25
25
  var index$4 = require('./components/ClassPrefix/index.js');
26
+ var CodeSnippet = require('./components/CodeSnippet/CodeSnippet.js');
27
+ var CodeSnippet_Skeleton = require('./components/CodeSnippet/CodeSnippet.Skeleton.js');
26
28
  var ComboBox = require('./components/ComboBox/ComboBox.js');
27
29
  var index$5 = require('./components/ComboButton/index.js');
28
30
  var ComposedModal = require('./components/ComposedModal/ComposedModal.js');
@@ -109,6 +111,9 @@ var Tabs = require('./components/Tabs/Tabs.js');
109
111
  var TabContent = require('./components/TabContent/TabContent.js');
110
112
  var Tabs_Skeleton = require('./components/Tabs/Tabs.Skeleton.js');
111
113
  var Tag = require('./components/Tag/Tag.js');
114
+ var DismissibleTag = require('./components/Tag/DismissibleTag.js');
115
+ var OperationalTag = require('./components/Tag/OperationalTag.js');
116
+ var SelectableTag = require('./components/Tag/SelectableTag.js');
112
117
  var Tag_Skeleton = require('./components/Tag/Tag.Skeleton.js');
113
118
  var TextArea = require('./components/TextArea/TextArea.js');
114
119
  var TextArea_Skeleton = require('./components/TextArea/TextArea.Skeleton.js');
@@ -177,8 +182,6 @@ var FluidTextInput_Skeleton = require('./components/FluidTextInput/FluidTextInpu
177
182
  var PageSelector = require('./components/Pagination/experimental/PageSelector.js');
178
183
  var Pagination = require('./components/Pagination/experimental/Pagination.js');
179
184
  var CheckboxGroup = require('./components/CheckboxGroup/CheckboxGroup.js');
180
- var CodeSnippet_Skeleton = require('./components/CodeSnippet/CodeSnippet.Skeleton.js');
181
- var CodeSnippet = require('./components/CodeSnippet/CodeSnippet.js');
182
185
  var ContainedListItem = require('./components/ContainedList/ContainedListItem/ContainedListItem.js');
183
186
  var ContainedList = require('./components/ContainedList/ContainedList.js');
184
187
  var useContextMenu = require('./components/ContextMenu/useContextMenu.js');
@@ -252,6 +255,8 @@ exports.ButtonSet = ButtonSet["default"];
252
255
  exports.Checkbox = Checkbox["default"];
253
256
  exports.CheckboxSkeleton = Checkbox_Skeleton["default"];
254
257
  exports.ClassPrefix = index$4.ClassPrefix;
258
+ exports.CodeSnippet = CodeSnippet["default"];
259
+ exports.CodeSnippetSkeleton = CodeSnippet_Skeleton["default"];
255
260
  exports.ComboBox = ComboBox["default"];
256
261
  exports.ComboButton = index$5.ComboButton;
257
262
  exports.ComposedModal = ComposedModal["default"];
@@ -358,6 +363,9 @@ exports.Tabs = Tabs.Tabs;
358
363
  exports.TabContent = TabContent["default"];
359
364
  exports.TabsSkeleton = Tabs_Skeleton["default"];
360
365
  exports.Tag = Tag["default"];
366
+ exports.DismissibleTag = DismissibleTag["default"];
367
+ exports.OperationalTag = OperationalTag["default"];
368
+ exports.SelectableTag = SelectableTag["default"];
361
369
  exports.TagSkeleton = Tag_Skeleton["default"];
362
370
  exports.TextArea = TextArea["default"];
363
371
  exports.TextAreaSkeleton = TextArea_Skeleton["default"];
@@ -445,8 +453,6 @@ exports.unstable__FluidTextInputSkeleton = FluidTextInput_Skeleton["default"];
445
453
  exports.unstable_PageSelector = PageSelector["default"];
446
454
  exports.unstable_Pagination = Pagination["default"];
447
455
  exports.CheckboxGroup = CheckboxGroup["default"];
448
- exports.CodeSnippetSkeleton = CodeSnippet_Skeleton["default"];
449
- exports.CodeSnippet = CodeSnippet["default"];
450
456
  exports.ContainedListItem = ContainedListItem["default"];
451
457
  exports.ContainedList = ContainedList["default"];
452
458
  exports.useContextMenu = useContextMenu["default"];
@@ -14,6 +14,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
14
14
  *
15
15
  * @see https://github.com/facebook/fbjs/blob/4d1751311d3f67af2dcce2e40df8512a23c7b9c6/packages/fbjs/src/core/ExecutionEnvironment.js#L12
16
16
  */
17
- const canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
17
+ const canUseDOM = !!(typeof window !== 'undefined' &&
18
+ // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
19
+ window.document &&
20
+ // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
21
+ window.document.createElement);
18
22
 
19
23
  exports.canUseDOM = canUseDOM;
@@ -43,7 +43,9 @@ const getNextIndex = (key, index, arrayLength) => {
43
43
  */
44
44
  const DOCUMENT_POSITION_BROAD_PRECEDING =
45
45
  // Checks `typeof Node` for `react-docgen`
46
- typeof Node !== 'undefined' && Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;
46
+ typeof Node !== 'undefined' &&
47
+ // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
48
+ Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;
47
49
 
48
50
  /**
49
51
  * A flag `node.compareDocumentPosition(target)` returns,
@@ -51,7 +53,9 @@ typeof Node !== 'undefined' && Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_
51
53
  */
52
54
  const DOCUMENT_POSITION_BROAD_FOLLOWING =
53
55
  // Checks `typeof Node` for `react-docgen`
54
- typeof Node !== 'undefined' && Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;
56
+ typeof Node !== 'undefined' &&
57
+ // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
58
+ Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;
55
59
 
56
60
  /**
57
61
  * CSS selector that selects major nodes that are sequential-focusable.
@@ -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
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var React = require('react');
13
+ var useEvent = require('./useEvent.js');
14
+ var environment = require('./environment.js');
15
+
16
+ function useOutsideClick(ref, callback) {
17
+ const savedCallback = React.useRef(callback);
18
+ React.useEffect(() => {
19
+ savedCallback.current = callback;
20
+ });
21
+
22
+ // We conditionally guard the `useEvent` hook for SSR. `canUseDOM` can be
23
+ // treated as a constant as it will be false when executed in a Node.js
24
+ // environment and true when executed in the browser
25
+ if (environment.canUseDOM) {
26
+ // eslint-disable-next-line react-hooks/rules-of-hooks
27
+ useEvent.useEvent(window, 'click', event => {
28
+ if (ref.current && !ref.current.contains(event.target)) {
29
+ savedCallback.current(event);
30
+ }
31
+ });
32
+ }
33
+ }
34
+
35
+ exports.useOutsideClick = useOutsideClick;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/react",
3
3
  "description": "React components for the Carbon Design System",
4
- "version": "1.54.0-rc.0",
4
+ "version": "1.55.0-rc.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -48,10 +48,10 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@babel/runtime": "^7.18.3",
51
- "@carbon/feature-flags": "^0.19.0-rc.0",
52
- "@carbon/icons-react": "^11.39.0-rc.0",
51
+ "@carbon/feature-flags": "^0.19.0",
52
+ "@carbon/icons-react": "^11.39.0",
53
53
  "@carbon/layout": "^11.21.0",
54
- "@carbon/styles": "^1.54.0-rc.0",
54
+ "@carbon/styles": "^1.55.0-rc.0",
55
55
  "@floating-ui/react": "^0.25.4",
56
56
  "@ibm/telemetry-js": "^1.2.1",
57
57
  "classnames": "2.5.1",
@@ -81,7 +81,7 @@
81
81
  "@babel/preset-react": "^7.22.3",
82
82
  "@babel/preset-typescript": "^7.21.5",
83
83
  "@carbon/test-utils": "^10.30.0",
84
- "@carbon/themes": "^11.34.0-rc.0",
84
+ "@carbon/themes": "^11.34.0",
85
85
  "@rollup/plugin-babel": "^6.0.0",
86
86
  "@rollup/plugin-commonjs": "^25.0.0",
87
87
  "@rollup/plugin-node-resolve": "^15.0.0",
@@ -141,5 +141,5 @@
141
141
  "**/*.scss",
142
142
  "**/*.css"
143
143
  ],
144
- "gitHead": "4e0c7c56e1217ff9b73042006e4ea1d12a39e769"
144
+ "gitHead": "600138750484cf814dc1b927ed4c277301b5290a"
145
145
  }