@carbon/react 1.69.0 → 1.70.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 (53) hide show
  1. package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +781 -781
  2. package/es/components/ContextMenu/index.d.ts +8 -0
  3. package/es/components/ContextMenu/useContextMenu.d.ts +21 -0
  4. package/es/components/ContextMenu/useContextMenu.js +9 -8
  5. package/es/components/DataTable/DataTable.d.ts +3 -2
  6. package/es/components/Dropdown/Dropdown.d.ts +2 -2
  7. package/es/components/FeatureFlags/index.d.ts +3 -1
  8. package/es/components/FeatureFlags/index.js +5 -2
  9. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +5 -5
  10. package/es/components/FluidDropdown/FluidDropdown.Skeleton.d.ts +15 -0
  11. package/es/components/FluidDropdown/FluidDropdown.Skeleton.js +6 -8
  12. package/es/components/FluidDropdown/FluidDropdown.d.ts +101 -0
  13. package/es/components/FluidDropdown/FluidDropdown.js +1 -2
  14. package/es/components/FluidDropdown/index.d.ts +13 -0
  15. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +5 -5
  16. package/es/components/FluidSelect/FluidSelect.Skeleton.js +5 -5
  17. package/es/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +2 -13
  18. package/es/components/FluidTextArea/FluidTextArea.Skeleton.js +22 -5
  19. package/es/components/Notification/Notification.js +2 -6
  20. package/es/components/NumberInput/NumberInput.Skeleton.d.ts +9 -1
  21. package/es/components/NumberInput/NumberInput.Skeleton.js +7 -2
  22. package/es/components/Popover/index.js +2 -0
  23. package/es/components/Tabs/Tabs.js +1 -1
  24. package/es/components/UIShell/HeaderPanel.js +1 -1
  25. package/es/feature-flags.js +2 -1
  26. package/es/index.js +3 -3
  27. package/lib/components/ContextMenu/index.d.ts +8 -0
  28. package/lib/components/ContextMenu/useContextMenu.d.ts +21 -0
  29. package/lib/components/ContextMenu/useContextMenu.js +9 -8
  30. package/lib/components/DataTable/DataTable.d.ts +3 -2
  31. package/lib/components/Dropdown/Dropdown.d.ts +2 -2
  32. package/lib/components/FeatureFlags/index.d.ts +3 -1
  33. package/lib/components/FeatureFlags/index.js +5 -2
  34. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +5 -5
  35. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.d.ts +15 -0
  36. package/lib/components/FluidDropdown/FluidDropdown.Skeleton.js +6 -8
  37. package/lib/components/FluidDropdown/FluidDropdown.d.ts +101 -0
  38. package/lib/components/FluidDropdown/FluidDropdown.js +1 -2
  39. package/lib/components/FluidDropdown/index.d.ts +13 -0
  40. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +5 -5
  41. package/lib/components/FluidSelect/FluidSelect.Skeleton.js +5 -5
  42. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.d.ts +2 -13
  43. package/lib/components/FluidTextArea/FluidTextArea.Skeleton.js +24 -5
  44. package/lib/components/Notification/Notification.js +2 -6
  45. package/lib/components/NumberInput/NumberInput.Skeleton.d.ts +9 -1
  46. package/lib/components/NumberInput/NumberInput.Skeleton.js +7 -2
  47. package/lib/components/Popover/index.js +2 -0
  48. package/lib/components/Tabs/Tabs.js +1 -1
  49. package/lib/components/UIShell/HeaderPanel.js +1 -1
  50. package/lib/feature-flags.js +2 -1
  51. package/lib/index.js +6 -6
  52. package/package.json +5 -4
  53. package/telemetry.yml +765 -710
@@ -12,8 +12,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
12
12
  var React = require('react');
13
13
 
14
14
  /**
15
- * @param {Element|Document|Window|object} [trigger=document] The element or ref which should trigger the Menu on right-click
16
- * @returns {object} Props object to pass onto Menu component
15
+ * @param {TriggerType} [trigger=document] The element or ref which should trigger the Menu on right-click
16
+ * @returns {ContextMenuProps} Props object to pass onto Menu component
17
17
  */
18
18
  function useContextMenu() {
19
19
  let trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
@@ -22,8 +22,8 @@ function useContextMenu() {
22
22
  function openContextMenu(e) {
23
23
  e.preventDefault();
24
24
  const {
25
- x,
26
- y
25
+ clientX: x,
26
+ clientY: y
27
27
  } = e;
28
28
  setPosition([x, y]);
29
29
  setOpen(true);
@@ -32,11 +32,12 @@ function useContextMenu() {
32
32
  setOpen(false);
33
33
  }
34
34
  React.useEffect(() => {
35
- const el = trigger?.current ?? trigger;
36
- if (el && el instanceof Element || el instanceof Document || el instanceof Window) {
37
- el.addEventListener('contextmenu', openContextMenu);
35
+ const el = trigger instanceof Element || trigger instanceof Document || trigger instanceof Window ? trigger : trigger.current;
36
+ if (el) {
37
+ const eventListener = e => openContextMenu(e);
38
+ el.addEventListener('contextmenu', eventListener);
38
39
  return () => {
39
- el.removeEventListener('contextmenu', openContextMenu);
40
+ el.removeEventListener('contextmenu', eventListener);
40
41
  };
41
42
  }
42
43
  }, [trigger]);
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import PropTypes from 'prop-types';
8
8
  import React from 'react';
9
+ import type { MouseEvent } from 'react';
9
10
  import type { DataTableSortState } from './state/sortStates';
10
11
  import Table from './Table';
11
12
  import TableActionList from './TableActionList';
@@ -131,13 +132,13 @@ export interface DataTableRenderProps<RowType, ColTypes extends any[]> {
131
132
  }) => {
132
133
  ariaLabel: string;
133
134
  'aria-label': string;
134
- checked?: boolean;
135
+ checked?: boolean | undefined;
135
136
  disabled?: boolean | undefined;
136
137
  id: string;
137
138
  indeterminate?: boolean;
138
139
  name: string;
139
140
  onSelect: (e: React.MouseEvent<HTMLInputElement>) => void;
140
- radio?: boolean;
141
+ radio?: boolean | undefined;
141
142
  [key: string]: unknown;
142
143
  };
143
144
  getToolbarProps: (getToolbarPropsArgs?: {
@@ -12,7 +12,7 @@ type ExcludedAttributes = 'id' | 'onChange';
12
12
  export interface OnChangeData<ItemType> {
13
13
  selectedItem: ItemType | null;
14
14
  }
15
- export interface DropdownProps<ItemType> extends Omit<ReactAttr<HTMLDivElement>, ExcludedAttributes>, TranslateWithId<ListBoxMenuIconTranslationKey> {
15
+ export interface DropdownProps<ItemType> extends Omit<ReactAttr<HTMLDivElement>, ExcludedAttributes>, TranslateWithId<ListBoxMenuIconTranslationKey>, React.RefAttributes<HTMLDivElement> {
16
16
  /**
17
17
  * Specify a label to be read by screen readers on the container node
18
18
  * 'aria-label' of the ListBox component.
@@ -127,7 +127,7 @@ export interface DropdownProps<ItemType> extends Omit<ReactAttr<HTMLDivElement>,
127
127
  * Provide the title text that will be read by a screen reader when
128
128
  * visiting this control
129
129
  */
130
- titleText?: ReactNode;
130
+ titleText: ReactNode;
131
131
  /**
132
132
  * The dropdown type, `default` or `inline`
133
133
  */
@@ -14,6 +14,7 @@ interface FeatureFlagsProps {
14
14
  enableV12Overflowmenu?: boolean;
15
15
  enableTreeviewControllable?: boolean;
16
16
  enableExperimentalFocusWrapWithoutSentinels?: boolean;
17
+ enableV12DynamicFloatingStyles?: boolean;
17
18
  }
18
19
  /**
19
20
  * Our FeatureFlagContext is used alongside the FeatureFlags component to enable
@@ -25,7 +26,7 @@ declare const FeatureFlagContext: React.Context<any>;
25
26
  * along with the current `FeatureFlagContext` to provide consumers to check if
26
27
  * a feature flag is enabled or disabled in a given React tree
27
28
  */
28
- declare function FeatureFlags({ children, flags, enableV12TileDefaultIcons, enableV12TileRadioIcons, enableV12Overflowmenu, enableTreeviewControllable, enableExperimentalFocusWrapWithoutSentinels, }: FeatureFlagsProps): JSX.Element;
29
+ declare function FeatureFlags({ children, flags, enableV12TileDefaultIcons, enableV12TileRadioIcons, enableV12Overflowmenu, enableTreeviewControllable, enableExperimentalFocusWrapWithoutSentinels, enableV12DynamicFloatingStyles, }: FeatureFlagsProps): JSX.Element;
29
30
  declare namespace FeatureFlags {
30
31
  var propTypes: {
31
32
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -38,6 +39,7 @@ declare namespace FeatureFlags {
38
39
  enableV12Overflowmenu: PropTypes.Requireable<boolean>;
39
40
  enableTreeviewControllable: PropTypes.Requireable<boolean>;
40
41
  enableExperimentalFocusWrapWithoutSentinels: PropTypes.Requireable<boolean>;
42
+ enableV12DynamicFloatingStyles: PropTypes.Requireable<boolean>;
41
43
  };
42
44
  }
43
45
  /**
@@ -38,7 +38,8 @@ function FeatureFlags(_ref) {
38
38
  enableV12TileRadioIcons = false,
39
39
  enableV12Overflowmenu = false,
40
40
  enableTreeviewControllable = false,
41
- enableExperimentalFocusWrapWithoutSentinels = false
41
+ enableExperimentalFocusWrapWithoutSentinels = false,
42
+ enableV12DynamicFloatingStyles = false
42
43
  } = _ref;
43
44
  const parentScope = React.useContext(FeatureFlagContext);
44
45
  const [prevParentScope, setPrevParentScope] = React.useState(parentScope);
@@ -48,6 +49,7 @@ function FeatureFlags(_ref) {
48
49
  'enable-v12-overflowmenu': enableV12Overflowmenu,
49
50
  'enable-treeview-controllable': enableTreeviewControllable,
50
51
  'enable-experimental-focus-wrap-without-sentinels': enableExperimentalFocusWrapWithoutSentinels,
52
+ 'enable-v12-dynamic-floating-styles': enableV12DynamicFloatingStyles,
51
53
  ...flags
52
54
  };
53
55
  const [scope, updateScope] = React.useState(() => {
@@ -84,7 +86,8 @@ FeatureFlags.propTypes = {
84
86
  enableV12TileRadioIcons: PropTypes__default["default"].bool,
85
87
  enableV12Overflowmenu: PropTypes__default["default"].bool,
86
88
  enableTreeviewControllable: PropTypes__default["default"].bool,
87
- enableExperimentalFocusWrapWithoutSentinels: PropTypes__default["default"].bool
89
+ enableExperimentalFocusWrapWithoutSentinels: PropTypes__default["default"].bool,
90
+ enableV12DynamicFloatingStyles: PropTypes__default["default"].bool
88
91
  };
89
92
 
90
93
  /**
@@ -27,12 +27,12 @@ const FluidComboBoxSkeleton = _ref => {
27
27
  ...rest
28
28
  } = _ref;
29
29
  const prefix = usePrefix.usePrefix();
30
- const wrapperClasses = cx__default["default"](className, `${prefix}--skeleton`, `${prefix}--list-box`);
31
- return /*#__PURE__*/React__default["default"].createElement("div", {
32
- className: `${prefix}--list-box__wrapper--fluid`
33
- }, /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
30
+ const wrapperClasses = cx__default["default"](className, `${prefix}--list-box__wrapper--fluid`);
31
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
34
32
  className: wrapperClasses
35
- }, rest), /*#__PURE__*/React__default["default"].createElement("span", {
33
+ }, rest), /*#__PURE__*/React__default["default"].createElement("div", {
34
+ className: `${prefix}--skeleton ${prefix}--list-box`
35
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
36
36
  className: `${prefix}--list-box__label`
37
37
  }), /*#__PURE__*/React__default["default"].createElement("div", {
38
38
  className: `${prefix}--list-box__field`
@@ -0,0 +1,15 @@
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 React from 'react';
8
+ export interface FluidDropdownSkeletonProps {
9
+ /**
10
+ * Specify an optional className to add.
11
+ */
12
+ className?: string;
13
+ }
14
+ declare const FluidDropdownSkeleton: React.FC<FluidDropdownSkeletonProps>;
15
+ export default FluidDropdownSkeleton;
@@ -27,13 +27,12 @@ const FluidDropdownSkeleton = _ref => {
27
27
  ...rest
28
28
  } = _ref;
29
29
  const prefix = usePrefix.usePrefix();
30
- const wrapperContainerClasses = cx__default["default"](className, `${prefix}--list-box__wrapper--fluid`);
31
- const wrapperClasses = cx__default["default"](`${prefix}--skeleton`, `${prefix}--list-box`);
32
- return /*#__PURE__*/React__default["default"].createElement("div", {
33
- className: wrapperContainerClasses
34
- }, /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
30
+ const wrapperClasses = cx__default["default"](className, `${prefix}--list-box__wrapper--fluid`);
31
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
35
32
  className: wrapperClasses
36
- }, rest), /*#__PURE__*/React__default["default"].createElement("span", {
33
+ }, rest), /*#__PURE__*/React__default["default"].createElement("div", {
34
+ className: `${prefix}--skeleton ${prefix}--list-box`
35
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
37
36
  className: `${prefix}--list-box__label`
38
37
  }), /*#__PURE__*/React__default["default"].createElement("div", {
39
38
  className: `${prefix}--list-box__field`
@@ -45,6 +44,5 @@ FluidDropdownSkeleton.propTypes = {
45
44
  */
46
45
  className: PropTypes__default["default"].string
47
46
  };
48
- var FluidDropdownSkeleton$1 = FluidDropdownSkeleton;
49
47
 
50
- exports["default"] = FluidDropdownSkeleton$1;
48
+ exports["default"] = FluidDropdownSkeleton;
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Copyright IBM Corp. 2022
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 React from 'react';
8
+ import { DropdownProps } from '../Dropdown';
9
+ export interface OnChangeData<ItemType> {
10
+ selectedItem: ItemType | null;
11
+ }
12
+ export interface FluidDropdownProps<ItemType> extends DropdownProps<ItemType> {
13
+ /**
14
+ * Specify an optional className to be applied to the outer FluidForm wrapper
15
+ */
16
+ className?: string;
17
+ /**
18
+ * Specify the direction of the dropdown. Can be either top or bottom.
19
+ */
20
+ direction?: 'top' | 'bottom';
21
+ /**
22
+ * Specify whether the `<input>` should be disabled
23
+ */
24
+ disabled?: boolean;
25
+ /**
26
+ * Specify a custom `id` for the `<input>`
27
+ */
28
+ id: string;
29
+ /**
30
+ * Allow users to pass in an arbitrary item or a string (in case their items are an array of strings)
31
+ * from their collection that are pre-selected
32
+ */
33
+ initialSelectedItem?: ItemType;
34
+ /**
35
+ * Specify if the currently selected value is invalid.
36
+ */
37
+ invalid?: boolean;
38
+ /**
39
+ * Provide the text that is displayed when the control is in an invalid state
40
+ */
41
+ invalidText?: React.ReactNode;
42
+ /**
43
+ * Specify if the `FluidDropdown` should render its menu items in condensed mode
44
+ */
45
+ isCondensed?: boolean;
46
+ /**
47
+ * Function to render items as custom components instead of strings.
48
+ * Defaults to null and is overridden by a getter
49
+ */
50
+ itemToElement?: React.JSXElementConstructor<ItemType> | null;
51
+ /**
52
+ * Helper function passed to downshift that allows the library to render a
53
+ * given item to a string label. By default, it extracts the `label` field
54
+ * from a given item to serve as the item label in the list.
55
+ */
56
+ itemToString?(item: ItemType | null): string;
57
+ /**
58
+ * We try to stay as generic as possible here to allow individuals to pass
59
+ * in a collection of whatever kind of data structure they prefer
60
+ */
61
+ items: ItemType[];
62
+ /**
63
+ * Generic `label` that will be used as the textual representation of what
64
+ * this field is for
65
+ */
66
+ label: NonNullable<React.ReactNode>;
67
+ /**
68
+ * `onChange` is a utility for this controlled component to communicate to a
69
+ * consuming component what kind of internal state changes are occurring.
70
+ */
71
+ onChange?(data: OnChangeData<ItemType>): void;
72
+ /**
73
+ * An optional callback to render the currently selected item as a react element instead of only
74
+ * as a string.
75
+ */
76
+ renderSelectedItem?(item: ItemType): React.ReactNode;
77
+ /**
78
+ * In the case you want to control the dropdown selection entirely.
79
+ * This value is the selected item from the list of items
80
+ */
81
+ selectedItem?: ItemType;
82
+ /**
83
+ * Provide the title text that will be read by a screen reader when
84
+ * visiting this control
85
+ */
86
+ titleText: React.ReactNode;
87
+ /**
88
+ * Callback function for translating ListBoxMenuIcon SVG title
89
+ */
90
+ translateWithId?: (id: string) => string;
91
+ /**
92
+ * Specify whether the control is currently in warning state
93
+ */
94
+ warn?: boolean;
95
+ /**
96
+ * Provide the text that is displayed when the control is in warning state
97
+ */
98
+ warnText?: React.ReactNode;
99
+ }
100
+ declare const FluidDropdown: React.ForwardRefExoticComponent<Omit<FluidDropdownProps<unknown>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
101
+ export default FluidDropdown;
@@ -130,6 +130,5 @@ FluidDropdown.propTypes = {
130
130
  */
131
131
  warnText: PropTypes__default["default"].node
132
132
  };
133
- var FluidDropdown$1 = FluidDropdown;
134
133
 
135
- exports["default"] = FluidDropdown$1;
134
+ exports["default"] = FluidDropdown;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright IBM Corp. 2022
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 FluidDropdown from './FluidDropdown';
8
+ import { type FluidDropdownProps } from './FluidDropdown';
9
+ import { type FluidDropdownSkeletonProps } from './FluidDropdown.Skeleton';
10
+ export type { FluidDropdownProps, FluidDropdownSkeletonProps };
11
+ export default FluidDropdown;
12
+ export { FluidDropdown };
13
+ export { default as FluidDropdownSkeleton } from './FluidDropdown.Skeleton';
@@ -27,12 +27,12 @@ const FluidMultiSelectSkeleton = _ref => {
27
27
  ...rest
28
28
  } = _ref;
29
29
  const prefix = usePrefix.usePrefix();
30
- const wrapperClasses = cx__default["default"](className, `${prefix}--skeleton`, `${prefix}--list-box`);
31
- return /*#__PURE__*/React__default["default"].createElement("div", {
32
- className: `${prefix}--list-box__wrapper--fluid`
33
- }, /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
30
+ const wrapperClasses = cx__default["default"](className, `${prefix}--list-box__wrapper--fluid`);
31
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
34
32
  className: wrapperClasses
35
- }, rest), /*#__PURE__*/React__default["default"].createElement("span", {
33
+ }, rest), /*#__PURE__*/React__default["default"].createElement("div", {
34
+ className: `${prefix}--skeleton ${prefix}--list-box`
35
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
36
36
  className: `${prefix}--list-box__label`
37
37
  }), /*#__PURE__*/React__default["default"].createElement("div", {
38
38
  className: `${prefix}--list-box__field`
@@ -27,12 +27,12 @@ const FluidSelectSkeleton = _ref => {
27
27
  ...rest
28
28
  } = _ref;
29
29
  const prefix = usePrefix.usePrefix();
30
- const wrapperClasses = cx__default["default"](className, `${prefix}--skeleton`, `${prefix}--list-box`);
31
- return /*#__PURE__*/React__default["default"].createElement("div", {
32
- className: `${prefix}--list-box__wrapper--fluid`
33
- }, /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
30
+ const wrapperClasses = cx__default["default"](className, `${prefix}--list-box__wrapper--fluid`);
31
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
34
32
  className: wrapperClasses
35
- }, rest), /*#__PURE__*/React__default["default"].createElement("span", {
33
+ }, rest), /*#__PURE__*/React__default["default"].createElement("div", {
34
+ className: `${prefix}--skeleton ${prefix}--list-box`
35
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
36
36
  className: `${prefix}--list-box__label`
37
37
  }), /*#__PURE__*/React__default["default"].createElement("div", {
38
38
  className: `${prefix}--list-box__field`
@@ -1,20 +1,9 @@
1
- import PropTypes from 'prop-types';
1
+ import React from 'react';
2
2
  export interface FluidTextAreaSkeletonProps {
3
3
  /**
4
4
  * Specify an optional className to be applied to the outer FluidForm wrapper
5
5
  */
6
6
  className?: string;
7
7
  }
8
- declare function FluidTextAreaSkeleton({ className, ...other }: {
9
- [x: string]: any;
10
- className: any;
11
- }): void;
12
- declare namespace FluidTextAreaSkeleton {
13
- var propTypes: {
14
- /**
15
- * Specify an optional className to be applied to the outer FluidForm wrapper
16
- */
17
- className: PropTypes.Requireable<string>;
18
- };
19
- }
8
+ declare const FluidTextAreaSkeleton: React.FC<FluidTextAreaSkeletonProps>;
20
9
  export default FluidTextAreaSkeleton;
@@ -9,18 +9,37 @@
9
9
 
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
12
13
  var PropTypes = require('prop-types');
13
- require('react');
14
- require('classnames');
14
+ var React = require('react');
15
+ var cx = require('classnames');
15
16
  var usePrefix = require('../../internal/usePrefix.js');
17
+ var FormContext = require('../FluidForm/FormContext.js');
16
18
 
17
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
20
 
19
21
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
22
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
+ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
20
24
 
21
- function FluidTextAreaSkeleton(_ref) {
22
- usePrefix.usePrefix();
23
- }
25
+ const FluidTextAreaSkeleton = _ref => {
26
+ let {
27
+ className,
28
+ ...other
29
+ } = _ref;
30
+ const prefix = usePrefix.usePrefix();
31
+ return /*#__PURE__*/React__default["default"].createElement(FormContext.FormContext.Provider, {
32
+ value: {
33
+ isFluid: true
34
+ }
35
+ }, /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
36
+ className: cx__default["default"](`${prefix}--form-item ${prefix}--text-area--fluid__skeleton`, className)
37
+ }, other), /*#__PURE__*/React__default["default"].createElement("span", {
38
+ className: `${prefix}--label ${prefix}--skeleton`
39
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
40
+ className: `${prefix}--skeleton ${prefix}--text-area`
41
+ })));
42
+ };
24
43
  FluidTextAreaSkeleton.propTypes = {
25
44
  /**
26
45
  * Specify an optional className to be applied to the outer FluidForm wrapper
@@ -288,9 +288,7 @@ function ToastNotification(_ref4) {
288
288
  }, caption), children), !hideCloseButton && /*#__PURE__*/React__default["default"].createElement(NotificationButton, {
289
289
  notificationType: "toast",
290
290
  onClick: handleCloseButtonClick,
291
- "aria-hidden": "true",
292
- "aria-label": deprecatedAriaLabel || ariaLabel,
293
- tabIndex: -1
291
+ "aria-label": deprecatedAriaLabel || ariaLabel
294
292
  }));
295
293
  }
296
294
  ToastNotification.propTypes = {
@@ -425,9 +423,7 @@ function InlineNotification(_ref5) {
425
423
  }, subtitle), children)), !hideCloseButton && /*#__PURE__*/React__default["default"].createElement(NotificationButton, {
426
424
  notificationType: "inline",
427
425
  onClick: handleCloseButtonClick,
428
- "aria-hidden": "true",
429
- "aria-label": ariaLabel,
430
- tabIndex: -1
426
+ "aria-label": ariaLabel
431
427
  }));
432
428
  }
433
429
  InlineNotification.propTypes = {
@@ -15,8 +15,12 @@ export interface NumberInputSkeletonProps extends HTMLAttributes<HTMLDivElement>
15
15
  * Specify whether the label should be hidden, or not
16
16
  */
17
17
  hideLabel?: boolean;
18
+ /**
19
+ * Specify the size of the Number Input.
20
+ */
21
+ size?: 'sm' | 'md' | 'lg';
18
22
  }
19
- declare function NumberInputSkeleton({ hideLabel, className, ...rest }: NumberInputSkeletonProps): import("react/jsx-runtime").JSX.Element;
23
+ declare function NumberInputSkeleton({ hideLabel, className, size, ...rest }: NumberInputSkeletonProps): import("react/jsx-runtime").JSX.Element;
20
24
  declare namespace NumberInputSkeleton {
21
25
  var propTypes: {
22
26
  /**
@@ -27,6 +31,10 @@ declare namespace NumberInputSkeleton {
27
31
  * Specify whether the label should be hidden, or not
28
32
  */
29
33
  hideLabel: PropTypes.Requireable<boolean>;
34
+ /**
35
+ * Specify the size of the Number Input.
36
+ */
37
+ size: PropTypes.Requireable<string>;
30
38
  };
31
39
  }
32
40
  export default NumberInputSkeleton;
@@ -25,6 +25,7 @@ function NumberInputSkeleton(_ref) {
25
25
  let {
26
26
  hideLabel,
27
27
  className,
28
+ size = 'md',
28
29
  ...rest
29
30
  } = _ref;
30
31
  const prefix = usePrefix.usePrefix();
@@ -33,7 +34,7 @@ function NumberInputSkeleton(_ref) {
33
34
  }, rest), !hideLabel && /*#__PURE__*/React__default["default"].createElement("span", {
34
35
  className: `${prefix}--label ${prefix}--skeleton`
35
36
  }), /*#__PURE__*/React__default["default"].createElement("div", {
36
- className: `${prefix}--number ${prefix}--skeleton`
37
+ className: `${prefix}--number ${prefix}--skeleton ${prefix}--number--${size}`
37
38
  }));
38
39
  }
39
40
  NumberInputSkeleton.propTypes = {
@@ -44,7 +45,11 @@ NumberInputSkeleton.propTypes = {
44
45
  /**
45
46
  * Specify whether the label should be hidden, or not
46
47
  */
47
- hideLabel: PropTypes__default["default"].bool
48
+ hideLabel: PropTypes__default["default"].bool,
49
+ /**
50
+ * Specify the size of the Number Input.
51
+ */
52
+ size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg'])
48
53
  };
49
54
 
50
55
  exports["default"] = NumberInputSkeleton;
@@ -138,6 +138,8 @@ const Popover = /*#__PURE__*/React__default["default"].forwardRef(function Popov
138
138
  strategy: 'fixed',
139
139
  // Middleware order matters, arrow should be last
140
140
  middleware: [react.offset(!isTabTip ? popoverDimensions?.current?.offset : 0), autoAlign && react.flip({
141
+ fallbackPlacements: align.includes('bottom') ? ['bottom', 'bottom-start', 'bottom-end', 'right', 'right-start', 'right-end', 'left', 'left-start', 'left-end', 'top', 'top-start', 'top-end'] : ['top', 'top-start', 'top-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end'],
142
+ fallbackStrategy: 'initialPlacement',
141
143
  fallbackAxisSideDirection: 'start'
142
144
  }), react.arrow({
143
145
  element: caretRef
@@ -1195,7 +1195,7 @@ function TabPanels(_ref13) {
1195
1195
  }
1196
1196
  });
1197
1197
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].Children.map(children, (child, index) => {
1198
- return /*#__PURE__*/React__default["default"].createElement(TabPanelContext.Provider, {
1198
+ return !reactIs.isElement(child) ? null : /*#__PURE__*/React__default["default"].createElement(TabPanelContext.Provider, {
1199
1199
  value: index
1200
1200
  }, /*#__PURE__*/React__default["default"].cloneElement(child, {
1201
1201
  ref: element => {
@@ -72,7 +72,7 @@ const HeaderPanel = /*#__PURE__*/React__default["default"].forwardRef(function H
72
72
  const focusedElement = document.activeElement;
73
73
  setLastClickedElement(focusedElement);
74
74
  const childJsxElement = children;
75
- if (childJsxElement.type?.displayName === 'Switcher' && !focusedElement?.closest(`.${prefix}--header-panel--expanded`) && !focusedElement?.closest(`.${prefix}--header__action`) && !headerPanelReference?.current?.classList.contains(`${prefix}--switcher`) && expanded) {
75
+ if (childJsxElement?.type?.displayName === 'Switcher' && !focusedElement?.closest(`.${prefix}--header-panel--expanded`) && !focusedElement?.closest(`.${prefix}--header__action`) && !headerPanelReference?.current?.classList.contains(`${prefix}--switcher`) && expanded) {
76
76
  setExpandedState(false);
77
77
  onHeaderPanelFocus();
78
78
  }
@@ -35,5 +35,6 @@ FeatureFlags__namespace.merge({
35
35
  'enable-v11-release': true,
36
36
  'enable-experimental-tile-contrast': false,
37
37
  'enable-v12-tile-radio-icons': false,
38
- 'enable-v12-structured-list-visible-icons': false
38
+ 'enable-v12-structured-list-visible-icons': false,
39
+ 'enable-v12-dynamic-floating-styles': false
39
40
  });
package/lib/index.js CHANGED
@@ -33,6 +33,7 @@ var ModalHeader = require('./components/ComposedModal/ModalHeader.js');
33
33
  var ModalFooter = require('./components/ComposedModal/ModalFooter.js');
34
34
  require('./components/ContainedList/index.js');
35
35
  var index$6 = require('./components/ContentSwitcher/index.js');
36
+ var useContextMenu = require('./components/ContextMenu/useContextMenu.js');
36
37
  var Copy = require('./components/Copy/Copy.js');
37
38
  var CopyButton = require('./components/CopyButton/CopyButton.js');
38
39
  var DangerButton = require('./components/DangerButton/DangerButton.js');
@@ -169,6 +170,8 @@ var FluidComboBox_Skeleton = require('./components/FluidComboBox/FluidComboBox.S
169
170
  var FluidDatePicker = require('./components/FluidDatePicker/FluidDatePicker.js');
170
171
  var FluidDatePicker_Skeleton = require('./components/FluidDatePicker/FluidDatePicker.Skeleton.js');
171
172
  var FluidDatePickerInput = require('./components/FluidDatePickerInput/FluidDatePickerInput.js');
173
+ var FluidDropdown = require('./components/FluidDropdown/FluidDropdown.js');
174
+ var FluidDropdown_Skeleton = require('./components/FluidDropdown/FluidDropdown.Skeleton.js');
172
175
  var FluidMultiSelect = require('./components/FluidMultiSelect/FluidMultiSelect.js');
173
176
  var FluidMultiSelect_Skeleton = require('./components/FluidMultiSelect/FluidMultiSelect.Skeleton.js');
174
177
  var FluidSelect = require('./components/FluidSelect/FluidSelect.js');
@@ -206,12 +209,9 @@ var PageSelector = require('./components/Pagination/experimental/PageSelector.js
206
209
  var Pagination = require('./components/Pagination/experimental/Pagination.js');
207
210
  var ContainedListItem = require('./components/ContainedList/ContainedListItem/ContainedListItem.js');
208
211
  var ContainedList = require('./components/ContainedList/ContainedList.js');
209
- var useContextMenu = require('./components/ContextMenu/useContextMenu.js');
210
212
  var Slider_Skeleton = require('./components/Slider/Slider.Skeleton.js');
211
213
  var TextInput_Skeleton = require('./components/TextInput/TextInput.Skeleton.js');
212
214
  var TextInput = require('./components/TextInput/TextInput.js');
213
- var FluidDropdown = require('./components/FluidDropdown/FluidDropdown.js');
214
- var FluidDropdown_Skeleton = require('./components/FluidDropdown/FluidDropdown.Skeleton.js');
215
215
  var LayoutDirection = require('./components/LayoutDirection/LayoutDirection.js');
216
216
  var useLayoutDirection = require('./components/LayoutDirection/useLayoutDirection.js');
217
217
  var Text = require('./components/Text/Text.js');
@@ -270,6 +270,7 @@ exports.ModalBody = ComposedModal.ModalBody;
270
270
  exports.ModalHeader = ModalHeader.ModalHeader;
271
271
  exports.ModalFooter = ModalFooter.ModalFooter;
272
272
  exports.ContentSwitcher = index$6["default"];
273
+ exports.useContextMenu = useContextMenu["default"];
273
274
  exports.Copy = Copy["default"];
274
275
  exports.CopyButton = CopyButton["default"];
275
276
  exports.DangerButton = DangerButton["default"];
@@ -437,6 +438,8 @@ exports.unstable__FluidComboBoxSkeleton = FluidComboBox_Skeleton["default"];
437
438
  exports.unstable__FluidDatePicker = FluidDatePicker["default"];
438
439
  exports.unstable__FluidDatePickerSkeleton = FluidDatePicker_Skeleton["default"];
439
440
  exports.unstable__FluidDatePickerInput = FluidDatePickerInput["default"];
441
+ exports.unstable__FluidDropdown = FluidDropdown["default"];
442
+ exports.unstable__FluidDropdownSkeleton = FluidDropdown_Skeleton["default"];
440
443
  exports.unstable__FluidMultiSelect = FluidMultiSelect["default"];
441
444
  exports.unstable__FluidMultiSelectSkeleton = FluidMultiSelect_Skeleton["default"];
442
445
  exports.unstable__FluidSelect = FluidSelect["default"];
@@ -489,12 +492,9 @@ exports.unstable_PageSelector = PageSelector["default"];
489
492
  exports.unstable_Pagination = Pagination["default"];
490
493
  exports.ContainedListItem = ContainedListItem["default"];
491
494
  exports.ContainedList = ContainedList["default"];
492
- exports.useContextMenu = useContextMenu["default"];
493
495
  exports.SliderSkeleton = Slider_Skeleton["default"];
494
496
  exports.TextInputSkeleton = TextInput_Skeleton["default"];
495
497
  exports.TextInput = TextInput["default"];
496
- exports.unstable__FluidDropdown = FluidDropdown["default"];
497
- exports.unstable__FluidDropdownSkeleton = FluidDropdown_Skeleton["default"];
498
498
  exports.unstable_LayoutDirection = LayoutDirection.LayoutDirection;
499
499
  exports.unstable_useLayoutDirection = useLayoutDirection.useLayoutDirection;
500
500
  exports.unstable_Text = Text.Text;
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.69.0",
4
+ "version": "1.70.0-rc.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -39,7 +39,8 @@
39
39
  "clean": "rimraf es lib icons/index.js icons/index.d.ts icons/index.esm.js storybook-static",
40
40
  "postinstall": "ibmtelemetry --config=telemetry.yml",
41
41
  "storybook": "storybook dev -p 3000",
42
- "storybook:build": "storybook build"
42
+ "storybook:build": "storybook build",
43
+ "telemetry:config": "npx -y @ibm/telemetry-js-config-generator generate --id fd89d12b-6a39-48b4-adf4-30c94dc0dddd --endpoint https://www-api.ibm.com/ibm-telemetry/v1/metrics --files ./src/components/**/*.(tsx|js|jsx)"
43
44
  },
44
45
  "peerDependencies": {
45
46
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0",
@@ -51,7 +52,7 @@
51
52
  "@carbon/feature-flags": "^0.24.0",
52
53
  "@carbon/icons-react": "^11.52.0",
53
54
  "@carbon/layout": "^11.28.0",
54
- "@carbon/styles": "^1.68.0",
55
+ "@carbon/styles": "^1.69.0-rc.0",
55
56
  "@floating-ui/react": "^0.26.0",
56
57
  "@ibm/telemetry-js": "^1.5.0",
57
58
  "classnames": "2.5.1",
@@ -145,5 +146,5 @@
145
146
  "**/*.scss",
146
147
  "**/*.css"
147
148
  ],
148
- "gitHead": "3141442e5ef367667c8f1d379a1b4a23f67992ad"
149
+ "gitHead": "8708f6dfd38bea7d5bd6d14ce34293c014cba87c"
149
150
  }