@carbon/react 1.37.0-rc.1 → 1.38.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 (58) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +9242 -0
  2. package/es/components/DataTable/Table.js +21 -1
  3. package/es/components/Grid/CSSGrid.js +1 -1
  4. package/es/components/Grid/ColumnHang.js +1 -1
  5. package/es/components/Grid/GridContext.d.ts +2 -2
  6. package/es/components/Grid/GridContext.js +1 -1
  7. package/es/components/Heading/index.d.ts +5 -40
  8. package/es/components/Heading/index.js +11 -6
  9. package/es/components/Icon/Icon.Skeleton.d.ts +25 -0
  10. package/es/components/Icon/Icon.Skeleton.js +1 -4
  11. package/es/components/Icon/index.d.ts +7 -0
  12. package/es/components/IconButton/index.js +9 -1
  13. package/es/components/Layer/index.js +5 -3
  14. package/es/components/Menu/Menu.js +14 -2
  15. package/es/components/Menu/MenuItem.js +28 -7
  16. package/es/components/MenuButton/index.js +1 -1
  17. package/es/components/MultiSelect/FilterableMultiSelect.js +6 -6
  18. package/es/components/MultiSelect/MultiSelect.js +6 -0
  19. package/es/components/Slider/Slider.d.ts +1 -0
  20. package/es/components/Slider/Slider.js +16 -5
  21. package/es/components/Tabs/Tabs.js +6 -8
  22. package/es/components/Tag/Tag.Skeleton.js +6 -3
  23. package/es/components/Tag/Tag.js +2 -2
  24. package/es/components/Text/Text.js +1 -1
  25. package/es/components/TextInput/PasswordInput.js +3 -1
  26. package/es/components/Theme/index.d.ts +3 -15
  27. package/es/components/Theme/index.js +6 -3
  28. package/es/components/TreeView/TreeNode.js +2 -2
  29. package/es/components/UIShell/HeaderMenu.js +11 -11
  30. package/lib/components/DataTable/Table.js +20 -0
  31. package/lib/components/Grid/CSSGrid.js +1 -1
  32. package/lib/components/Grid/ColumnHang.js +1 -1
  33. package/lib/components/Grid/GridContext.d.ts +2 -2
  34. package/lib/components/Grid/GridContext.js +1 -1
  35. package/lib/components/Heading/index.d.ts +5 -40
  36. package/lib/components/Heading/index.js +11 -6
  37. package/lib/components/Icon/Icon.Skeleton.d.ts +25 -0
  38. package/lib/components/Icon/Icon.Skeleton.js +1 -4
  39. package/lib/components/Icon/index.d.ts +7 -0
  40. package/lib/components/IconButton/index.js +9 -1
  41. package/lib/components/Layer/index.js +5 -3
  42. package/lib/components/Menu/Menu.js +14 -2
  43. package/lib/components/Menu/MenuItem.js +30 -9
  44. package/lib/components/MenuButton/index.js +1 -1
  45. package/lib/components/MultiSelect/FilterableMultiSelect.js +5 -5
  46. package/lib/components/MultiSelect/MultiSelect.js +6 -0
  47. package/lib/components/Slider/Slider.d.ts +1 -0
  48. package/lib/components/Slider/Slider.js +16 -5
  49. package/lib/components/Tabs/Tabs.js +6 -8
  50. package/lib/components/Tag/Tag.Skeleton.js +6 -3
  51. package/lib/components/Tag/Tag.js +2 -2
  52. package/lib/components/Text/Text.js +1 -1
  53. package/lib/components/TextInput/PasswordInput.js +3 -1
  54. package/lib/components/Theme/index.d.ts +3 -15
  55. package/lib/components/Theme/index.js +6 -3
  56. package/lib/components/TreeView/TreeNode.js +2 -2
  57. package/lib/components/UIShell/HeaderMenu.js +11 -11
  58. package/package.json +7 -6
@@ -40,7 +40,7 @@ var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
40
40
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
41
41
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
42
42
 
43
- var _ChevronLeft, _ChevronRight, _Close;
43
+ var _ChevronLeft, _ChevronRight;
44
44
 
45
45
  // Used to manage the overall state of the Tabs
46
46
 
@@ -556,21 +556,19 @@ const Tab = /*#__PURE__*/React.forwardRef(function Tab(_ref5, forwardRef) {
556
556
  }
557
557
  onKeyDown?.(event);
558
558
  };
559
- const DismissIcon =
560
- /*#__PURE__*/
561
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events
562
- React__default["default"].createElement("div", {
563
- role: "button",
559
+ const DismissIcon = /*#__PURE__*/React__default["default"].createElement("div", {
564
560
  tabIndex: -1,
565
561
  "aria-hidden": true,
566
562
  className: cx__default["default"](`${prefix}--tabs__nav-item--close-icon`, {
567
563
  [`${prefix}--visually-hidden`]: !dismissable
568
564
  }),
569
565
  onClick: handleClose,
570
- "aria-label": "Close tab",
571
566
  title: "Close tab",
572
567
  ref: dismissIconRef
573
- }, _Close || (_Close = /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, null)));
568
+ }, /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, {
569
+ "aria-hidden": dismissable ? 'false' : 'true',
570
+ "aria-label": "Press delete to close tab"
571
+ }));
574
572
  const hasIcon = Icon ?? dismissable;
575
573
  return /*#__PURE__*/React__default["default"].createElement(BaseComponent, _rollupPluginBabelHelpers["extends"]({}, rest, {
576
574
  "aria-controls": panelId,
@@ -28,10 +28,13 @@ function TagSkeleton(_ref) {
28
28
  ...rest
29
29
  } = _ref;
30
30
  const prefix = usePrefix.usePrefix();
31
+ const tagClasses = cx__default["default"](`${prefix}--tag`, `${prefix}--skeleton`, className, {
32
+ [`${prefix}--tag--${size}`]: size,
33
+ // TODO: V12 - Remove this class
34
+ [`${prefix}--layout--size-${size}`]: size
35
+ });
31
36
  return /*#__PURE__*/React__default["default"].createElement("span", _rollupPluginBabelHelpers["extends"]({
32
- className: cx__default["default"](`${prefix}--tag`, `${prefix}--skeleton`, className, {
33
- [`${prefix}--tag--${size}`]: size
34
- })
37
+ className: tagClasses
35
38
  }, rest));
36
39
  }
37
40
  TagSkeleton.propTypes = {
@@ -47,7 +47,7 @@ const Tag = _ref => {
47
47
  type,
48
48
  filter,
49
49
  renderIcon: CustomIconElement,
50
- title,
50
+ title = 'Clear filter',
51
51
  disabled,
52
52
  onClose,
53
53
  size,
@@ -85,7 +85,7 @@ const Tag = _ref => {
85
85
  className: `${prefix}--tag__close-icon`,
86
86
  onClick: handleClose,
87
87
  disabled: disabled,
88
- "aria-labelledby": tagId,
88
+ "aria-label": title,
89
89
  title: title
90
90
  }, _Close || (_Close = /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, null))));
91
91
  }
@@ -23,7 +23,7 @@ function Text(_ref) {
23
23
  let {
24
24
  as,
25
25
  children,
26
- dir = 'auto',
26
+ dir,
27
27
  ...rest
28
28
  } = _ref;
29
29
  // TODO: Update with context typing once its been converted to TS
@@ -76,7 +76,9 @@ const PasswordInput = /*#__PURE__*/React__default["default"].forwardRef(function
76
76
  [`${prefix}--text-input--light`]: light,
77
77
  [`${prefix}--text-input--invalid`]: normalizedProps.invalid,
78
78
  [`${prefix}--text-input--warning`]: normalizedProps.warn,
79
- [`${prefix}--text-input--${size}`]: size
79
+ [`${prefix}--text-input--${size}`]: size,
80
+ // TODO: V12 - Remove this class
81
+ [`${prefix}--layout--size-${size}`]: size
80
82
  });
81
83
  const sharedTextInputProps = {
82
84
  id,
@@ -5,26 +5,14 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import PropTypes from 'prop-types';
8
- import React, { ElementType, type PropsWithChildren } from 'react';
8
+ import React, { ElementType } from 'react';
9
9
  import { PolymorphicProps } from '../../types/common';
10
10
  interface GlobalThemeProps {
11
11
  theme?: 'white' | 'g10' | 'g90' | 'g100';
12
+ children?: React.ReactNode;
12
13
  }
13
14
  export declare const ThemeContext: React.Context<GlobalThemeProps>;
14
- export declare function GlobalTheme({ children, theme, }: PropsWithChildren<GlobalThemeProps>): JSX.Element;
15
- export declare namespace GlobalTheme {
16
- var propTypes: {
17
- /**
18
- * Provide child elements to be rendered inside of `GlobalTheme`, this is
19
- * typically the root of your app
20
- */
21
- children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
22
- /**
23
- * Specify the global theme for your app
24
- */
25
- theme: PropTypes.Requireable<string>;
26
- };
27
- }
15
+ export declare const GlobalTheme: React.ForwardRefExoticComponent<GlobalThemeProps & React.RefAttributes<unknown>>;
28
16
  type ThemeBaseProps = GlobalThemeProps & {
29
17
  className?: string;
30
18
  };
@@ -25,7 +25,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
25
  const ThemeContext = /*#__PURE__*/React__default["default"].createContext({
26
26
  theme: 'white'
27
27
  });
28
- function GlobalTheme(_ref) {
28
+ const GlobalTheme = /*#__PURE__*/React__default["default"].forwardRef(function GlobalTheme(_ref, ref) {
29
29
  let {
30
30
  children,
31
31
  theme
@@ -35,10 +35,13 @@ function GlobalTheme(_ref) {
35
35
  theme
36
36
  };
37
37
  }, [theme]);
38
+ const childrenWithProps = /*#__PURE__*/React__default["default"].cloneElement(children, {
39
+ ref: ref
40
+ });
38
41
  return /*#__PURE__*/React__default["default"].createElement(ThemeContext.Provider, {
39
42
  value: value
40
- }, children);
41
- }
43
+ }, childrenWithProps);
44
+ });
42
45
  GlobalTheme.propTypes = {
43
46
  /**
44
47
  * Provide child elements to be rendered inside of `GlobalTheme`, this is
@@ -197,8 +197,8 @@ function TreeNode(_ref) {
197
197
  return depth + 2.5;
198
198
  };
199
199
  if (currentNodeLabel.current) {
200
- currentNodeLabel.current.style.marginLeft = `-${calcOffset()}rem`;
201
- currentNodeLabel.current.style.paddingLeft = `${calcOffset()}rem`;
200
+ currentNodeLabel.current.style.marginInlineStart = `-${calcOffset()}rem`;
201
+ currentNodeLabel.current.style.paddingInlineStart = `${calcOffset()}rem`;
202
202
  }
203
203
 
204
204
  // sync props and state
@@ -67,20 +67,20 @@ class HeaderMenu extends React__default["default"].Component {
67
67
  });
68
68
  /**
69
69
  * Handle our blur event from our underlying menuitems. Will mostly be used
70
- * for toggling the expansion status of our menu in response to a user
71
- * clicking off of the menu or menubar.
70
+ * for closing our menu in response to a user clicking off or tabbing out of
71
+ * the menu or menubar.
72
72
  */
73
73
  _rollupPluginBabelHelpers.defineProperty(this, "handleOnBlur", event => {
74
- // Rough guess for a blur event that is triggered outside of our menu or
75
- // menubar context
76
- const itemTriggeredBlur = this.items.find(element => element === event.relatedTarget);
77
- if (event.relatedTarget && (event.relatedTarget.getAttribute('href') && event.relatedTarget.getAttribute('href') !== '#' || itemTriggeredBlur)) {
78
- return;
74
+ // Close the menu on blur when the related target is not a sibling menu item
75
+ // or a child in a submenu
76
+ const siblingItemBlurredTo = this.items.find(element => element === event.relatedTarget);
77
+ const childItemBlurredTo = this._subMenus.current?.contains(event.relatedTarget);
78
+ if (!siblingItemBlurredTo && !childItemBlurredTo) {
79
+ this.setState({
80
+ expanded: false,
81
+ selectedIndex: null
82
+ });
79
83
  }
80
- this.setState({
81
- expanded: false,
82
- selectedIndex: null
83
- });
84
84
  });
85
85
  /**
86
86
  * ref handler for our menu button. If we are supplied a `focusRef` prop, we also
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.37.0-rc.1",
4
+ "version": "1.38.0-rc.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -18,7 +18,8 @@
18
18
  "index.scss",
19
19
  "icons/index.js",
20
20
  "icons/index.esm.js",
21
- "icons/package.json"
21
+ "icons/package.json",
22
+ ".playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json"
22
23
  ],
23
24
  "keywords": [
24
25
  "ibm",
@@ -46,9 +47,9 @@
46
47
  "dependencies": {
47
48
  "@babel/runtime": "^7.18.3",
48
49
  "@carbon/feature-flags": "^0.16.0",
49
- "@carbon/icons-react": "^11.25.1-rc.0",
50
+ "@carbon/icons-react": "^11.27.0-rc.0",
50
51
  "@carbon/layout": "^11.19.0",
51
- "@carbon/styles": "^1.36.1-rc.0",
52
+ "@carbon/styles": "^1.38.0-rc.0",
52
53
  "@carbon/telemetry": "0.1.0",
53
54
  "classnames": "2.3.2",
54
55
  "copy-to-clipboard": "^3.3.1",
@@ -76,7 +77,7 @@
76
77
  "@babel/preset-react": "^7.22.3",
77
78
  "@babel/preset-typescript": "^7.21.5",
78
79
  "@carbon/test-utils": "^10.30.0",
79
- "@carbon/themes": "^11.24.0",
80
+ "@carbon/themes": "^11.25.0-rc.0",
80
81
  "@rollup/plugin-babel": "^6.0.0",
81
82
  "@rollup/plugin-commonjs": "^25.0.0",
82
83
  "@rollup/plugin-node-resolve": "^15.0.0",
@@ -138,5 +139,5 @@
138
139
  "**/*.scss",
139
140
  "**/*.css"
140
141
  ],
141
- "gitHead": "30f17c6417c64542e422b7959e6633d8ffa0e061"
142
+ "gitHead": "0a2c591ac9ac56286ab465334be3e1322d4c86cb"
142
143
  }