carbon-react 110.2.4 → 110.4.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 (101) hide show
  1. package/esm/__internal__/i18n-context/index.d.ts +2 -1
  2. package/esm/__internal__/popover/popover.component.d.ts +2 -1
  3. package/esm/__internal__/popover/popover.component.js +15 -4
  4. package/esm/__internal__/popover/popover.style.d.ts +6 -2
  5. package/esm/__internal__/popover/popover.style.js +6 -2
  6. package/esm/__internal__/radio-button-mapper/index.d.ts +2 -0
  7. package/esm/__internal__/radio-button-mapper/index.js +1 -0
  8. package/esm/__internal__/radio-button-mapper/radio-button-mapper.d.ts +21 -0
  9. package/esm/__internal__/sticky-footer/index.d.ts +1 -0
  10. package/esm/__internal__/sticky-footer/sticky-footer.component.d.ts +15 -0
  11. package/esm/__internal__/sticky-footer/sticky-footer.style.d.ts +2 -0
  12. package/esm/__internal__/utils/helpers/tags/index.d.ts +1 -0
  13. package/esm/__spec_helper__/mock-resize-observer.d.ts +1 -1
  14. package/esm/__spec_helper__/mock-resize-observer.js +2 -2
  15. package/esm/components/button-toggle/button-toggle.component.d.ts +3 -3
  16. package/esm/components/button-toggle/button-toggle.component.js +21 -20
  17. package/esm/components/button-toggle/button-toggle.style.d.ts +1 -1
  18. package/esm/components/button-toggle-group/button-toggle-group.component.d.ts +45 -0
  19. package/esm/components/button-toggle-group/button-toggle-group.component.js +187 -92
  20. package/esm/components/button-toggle-group/button-toggle-group.style.d.ts +4 -0
  21. package/esm/components/button-toggle-group/button-toggle-group.style.js +2 -2
  22. package/esm/components/button-toggle-group/index.d.ts +2 -1
  23. package/esm/components/drawer/drawer.component.d.ts +37 -0
  24. package/esm/components/drawer/drawer.component.js +43 -54
  25. package/esm/components/drawer/drawer.style.d.ts +27 -0
  26. package/esm/components/drawer/drawer.style.js +2 -2
  27. package/esm/components/drawer/index.d.ts +2 -1
  28. package/esm/components/drawer/index.js +1 -2
  29. package/esm/components/i18n-provider/i18n-provider.component.d.ts +8 -0
  30. package/esm/components/i18n-provider/i18n-provider.component.js +100 -80
  31. package/esm/components/i18n-provider/index.d.ts +2 -1
  32. package/esm/components/menu/__internal__/submenu/submenu.component.js +22 -4
  33. package/esm/components/menu/menu-item/menu-item.component.js +6 -1
  34. package/esm/components/menu/menu-item/menu-item.d.ts +4 -0
  35. package/esm/components/menu/menu-item/menu-item.style.js +158 -149
  36. package/esm/components/menu/scrollable-block/scrollable-block.component.js +21 -5
  37. package/esm/components/menu/scrollable-block/scrollable-block.d.ts +6 -0
  38. package/esm/components/menu/scrollable-block/scrollable-block.style.js +1 -1
  39. package/esm/components/select/filterable-select/filterable-select.component.js +7 -5
  40. package/esm/components/select/multi-select/multi-select.component.js +4 -3
  41. package/esm/components/select/select-list/select-list.component.js +34 -18
  42. package/esm/components/select/simple-select/simple-select.component.js +4 -3
  43. package/esm/components/tabs/__internal__/tabs-header/tabs-header.style.d.ts +6 -0
  44. package/esm/components/tabs/tab/tab.style.d.ts +2 -0
  45. package/esm/components/tabs/tabs.style.d.ts +2 -0
  46. package/lib/__internal__/i18n-context/index.d.ts +2 -1
  47. package/lib/__internal__/popover/popover.component.d.ts +2 -1
  48. package/lib/__internal__/popover/popover.component.js +16 -5
  49. package/lib/__internal__/popover/popover.style.d.ts +6 -2
  50. package/lib/__internal__/popover/popover.style.js +8 -3
  51. package/lib/__internal__/radio-button-mapper/index.d.ts +2 -0
  52. package/lib/{components/button-toggle-group/documentation → __internal__/radio-button-mapper}/index.js +2 -2
  53. package/lib/__internal__/radio-button-mapper/package.json +6 -0
  54. package/lib/__internal__/radio-button-mapper/radio-button-mapper.d.ts +21 -0
  55. package/lib/__internal__/sticky-footer/index.d.ts +1 -0
  56. package/lib/__internal__/sticky-footer/sticky-footer.component.d.ts +15 -0
  57. package/lib/__internal__/sticky-footer/sticky-footer.style.d.ts +2 -0
  58. package/lib/__internal__/utils/helpers/tags/index.d.ts +1 -0
  59. package/lib/__spec_helper__/mock-resize-observer.d.ts +1 -1
  60. package/lib/__spec_helper__/mock-resize-observer.js +2 -2
  61. package/lib/components/button-toggle/button-toggle.component.d.ts +3 -3
  62. package/lib/components/button-toggle/button-toggle.component.js +22 -20
  63. package/lib/components/button-toggle/button-toggle.style.d.ts +1 -1
  64. package/lib/components/button-toggle-group/button-toggle-group.component.d.ts +45 -0
  65. package/lib/components/button-toggle-group/button-toggle-group.component.js +190 -93
  66. package/lib/components/button-toggle-group/button-toggle-group.style.d.ts +4 -0
  67. package/lib/components/button-toggle-group/button-toggle-group.style.js +2 -2
  68. package/lib/components/button-toggle-group/index.d.ts +2 -1
  69. package/lib/components/drawer/drawer.component.d.ts +37 -0
  70. package/lib/components/drawer/drawer.component.js +43 -55
  71. package/lib/components/drawer/drawer.style.d.ts +27 -0
  72. package/lib/components/drawer/drawer.style.js +3 -3
  73. package/lib/components/drawer/index.d.ts +2 -1
  74. package/lib/components/i18n-provider/i18n-provider.component.d.ts +8 -0
  75. package/lib/components/i18n-provider/i18n-provider.component.js +102 -82
  76. package/lib/components/i18n-provider/index.d.ts +2 -1
  77. package/lib/components/menu/__internal__/submenu/submenu.component.js +23 -4
  78. package/lib/components/menu/menu-item/menu-item.component.js +6 -1
  79. package/lib/components/menu/menu-item/menu-item.d.ts +4 -0
  80. package/lib/components/menu/menu-item/menu-item.style.js +158 -149
  81. package/lib/components/menu/scrollable-block/scrollable-block.component.js +22 -5
  82. package/lib/components/menu/scrollable-block/scrollable-block.d.ts +6 -0
  83. package/lib/components/menu/scrollable-block/scrollable-block.style.js +1 -1
  84. package/lib/components/select/filterable-select/filterable-select.component.js +7 -5
  85. package/lib/components/select/multi-select/multi-select.component.js +4 -3
  86. package/lib/components/select/select-list/select-list.component.js +34 -18
  87. package/lib/components/select/simple-select/simple-select.component.js +4 -3
  88. package/lib/components/tabs/__internal__/tabs-header/tabs-header.style.d.ts +6 -0
  89. package/lib/components/tabs/tab/tab.style.d.ts +2 -0
  90. package/lib/components/tabs/tabs.style.d.ts +2 -0
  91. package/package.json +1 -1
  92. package/esm/components/button-toggle-group/__definition__.js +0 -38
  93. package/esm/components/button-toggle-group/button-toggle-group.d.ts +0 -58
  94. package/esm/components/button-toggle-group/documentation/index.js +0 -1
  95. package/esm/components/drawer/drawer.d.ts +0 -44
  96. package/esm/components/i18n-provider/i18n-provider.d.ts +0 -11
  97. package/lib/components/button-toggle-group/__definition__.js +0 -50
  98. package/lib/components/button-toggle-group/button-toggle-group.d.ts +0 -58
  99. package/lib/components/button-toggle-group/documentation/package.json +0 -6
  100. package/lib/components/drawer/drawer.d.ts +0 -44
  101. package/lib/components/i18n-provider/i18n-provider.d.ts +0 -11
@@ -3,14 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.I18nProvider = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _merge = _interopRequireDefault(require("lodash/merge"));
11
-
12
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
11
 
12
+ var _merge = _interopRequireDefault(require("lodash/merge"));
13
+
14
14
  var _i18nContext = _interopRequireDefault(require("../../__internal__/i18n-context"));
15
15
 
16
16
  var _enGb = _interopRequireDefault(require("../../locales/en-gb"));
@@ -22,88 +22,108 @@ const I18nProvider = ({
22
22
  children
23
23
  }) => locale ? /*#__PURE__*/_react.default.createElement(_i18nContext.default.Provider, {
24
24
  value: (0, _merge.default)({}, _enGb.default, locale)
25
- }, children) : children;
25
+ }, children) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
26
26
 
27
- I18nProvider.defaultProps = {
28
- locale: undefined
29
- };
27
+ exports.I18nProvider = I18nProvider;
30
28
  I18nProvider.propTypes = {
31
- locale: _propTypes.default.shape({
32
- locale: _propTypes.default.func,
33
- actions: _propTypes.default.shape({
34
- edit: _propTypes.default.func,
35
- delete: _propTypes.default.func,
36
- reset: _propTypes.default.func
37
- }),
38
- actionPopover: _propTypes.default.shape({
39
- ariaLabel: _propTypes.default.func
40
- }),
41
- batchSelection: _propTypes.default.shape({
42
- selected: _propTypes.default.func
43
- }),
44
- confirm: _propTypes.default.shape({
45
- no: _propTypes.default.func,
46
- yes: _propTypes.default.func
47
- }),
48
- date: _propTypes.default.shape({
49
- dateFnsLocale: _propTypes.default.func
50
- }),
51
- errors: _propTypes.default.shape({
52
- messages: _propTypes.default.shape({
53
- formSummary: _propTypes.default.func
54
- })
55
- }),
56
- message: _propTypes.default.shape({
57
- closeButtonAriaLabel: _propTypes.default.func
58
- }),
59
- numeralDate: _propTypes.default.shape({
60
- validation: _propTypes.default.shape({
61
- day: _propTypes.default.func,
62
- month: _propTypes.default.func,
63
- year: _propTypes.default.func
64
- })
65
- }),
66
- pager: _propTypes.default.shape({
67
- show: _propTypes.default.func,
68
- records: _propTypes.default.func,
69
- first: _propTypes.default.func,
70
- last: _propTypes.default.func,
71
- next: _propTypes.default.func,
72
- previous: _propTypes.default.func,
73
- pageX: _propTypes.default.func,
74
- ofY: _propTypes.default.func
75
- }),
76
- select: _propTypes.default.shape({
77
- actionButtonText: _propTypes.default.func,
78
- placeholder: _propTypes.default.func,
79
- noResultsForTerm: _propTypes.default.func
80
- }),
81
- switch: _propTypes.default.shape({
82
- on: _propTypes.default.func,
83
- off: _propTypes.default.func
84
- }),
85
- table: _propTypes.default.shape({
86
- noData: _propTypes.default.func
87
- }),
88
- textEditor: _propTypes.default.shape({
89
- tooltipMessages: _propTypes.default.shape({
90
- bold: _propTypes.default.func,
91
- italic: _propTypes.default.func,
92
- bulletList: _propTypes.default.func,
93
- numberList: _propTypes.default.func
94
- }),
95
- ariaLabels: _propTypes.default.shape({
96
- bold: _propTypes.default.func,
97
- italic: _propTypes.default.func,
98
- bulletList: _propTypes.default.func,
99
- numberList: _propTypes.default.func
100
- })
101
- }),
102
- titleSelect: _propTypes.default.shape({
103
- deselect: _propTypes.default.func
29
+ "children": _propTypes.default.node,
30
+ "locale": _propTypes.default.shape({
31
+ "actionPopover": _propTypes.default.shape({
32
+ "ariaLabel": _propTypes.default.func.isRequired
33
+ }),
34
+ "actions": _propTypes.default.shape({
35
+ "delete": _propTypes.default.func.isRequired,
36
+ "edit": _propTypes.default.func.isRequired
37
+ }),
38
+ "batchSelection": _propTypes.default.shape({
39
+ "selected": _propTypes.default.func.isRequired
40
+ }),
41
+ "confirm": _propTypes.default.shape({
42
+ "no": _propTypes.default.func.isRequired,
43
+ "yes": _propTypes.default.func.isRequired
44
+ }),
45
+ "date": _propTypes.default.shape({
46
+ "dateFnsLocale": _propTypes.default.func.isRequired
47
+ }),
48
+ "dialog": _propTypes.default.shape({
49
+ "ariaLabels": _propTypes.default.shape({
50
+ "close": _propTypes.default.func.isRequired
51
+ }).isRequired
52
+ }),
53
+ "dialogFullScreen": _propTypes.default.shape({
54
+ "ariaLabels": _propTypes.default.shape({
55
+ "close": _propTypes.default.func.isRequired
56
+ }).isRequired
57
+ }),
58
+ "errors": _propTypes.default.shape({
59
+ "messages": _propTypes.default.shape({
60
+ "formSummary": _propTypes.default.func.isRequired
61
+ }).isRequired
62
+ }),
63
+ "heading": _propTypes.default.shape({
64
+ "backLinkAriaLabel": _propTypes.default.func.isRequired
65
+ }),
66
+ "link": _propTypes.default.shape({
67
+ "skipLinkLabel": _propTypes.default.func.isRequired
68
+ }),
69
+ "locale": _propTypes.default.func,
70
+ "message": _propTypes.default.shape({
71
+ "closeButtonAriaLabel": _propTypes.default.func.isRequired
72
+ }),
73
+ "numeralDate": _propTypes.default.shape({
74
+ "validation": _propTypes.default.shape({
75
+ "day": _propTypes.default.func.isRequired,
76
+ "month": _propTypes.default.func.isRequired,
77
+ "year": _propTypes.default.func.isRequired
78
+ }).isRequired
79
+ }),
80
+ "pager": _propTypes.default.shape({
81
+ "first": _propTypes.default.func.isRequired,
82
+ "last": _propTypes.default.func.isRequired,
83
+ "next": _propTypes.default.func.isRequired,
84
+ "ofY": _propTypes.default.func.isRequired,
85
+ "pageX": _propTypes.default.func.isRequired,
86
+ "previous": _propTypes.default.func.isRequired,
87
+ "records": _propTypes.default.func.isRequired,
88
+ "show": _propTypes.default.func.isRequired
89
+ }),
90
+ "select": _propTypes.default.shape({
91
+ "actionButtonText": _propTypes.default.func.isRequired,
92
+ "noResultsForTerm": _propTypes.default.func.isRequired,
93
+ "placeholder": _propTypes.default.func.isRequired
94
+ }),
95
+ "sidebar": _propTypes.default.shape({
96
+ "ariaLabels": _propTypes.default.shape({
97
+ "close": _propTypes.default.func.isRequired
98
+ }).isRequired
99
+ }),
100
+ "switch": _propTypes.default.shape({
101
+ "off": _propTypes.default.func.isRequired,
102
+ "on": _propTypes.default.func.isRequired
103
+ }),
104
+ "textEditor": _propTypes.default.shape({
105
+ "ariaLabels": _propTypes.default.shape({
106
+ "bold": _propTypes.default.func.isRequired,
107
+ "bulletList": _propTypes.default.func.isRequired,
108
+ "italic": _propTypes.default.func.isRequired,
109
+ "numberList": _propTypes.default.func.isRequired
110
+ }).isRequired,
111
+ "tooltipMessages": _propTypes.default.shape({
112
+ "bold": _propTypes.default.func.isRequired,
113
+ "bulletList": _propTypes.default.func.isRequired,
114
+ "italic": _propTypes.default.func.isRequired,
115
+ "numberList": _propTypes.default.func.isRequired
116
+ }).isRequired
117
+ }),
118
+ "tileSelect": _propTypes.default.shape({
119
+ "deselect": _propTypes.default.func.isRequired
120
+ }),
121
+ "toast": _propTypes.default.shape({
122
+ "ariaLabels": _propTypes.default.shape({
123
+ "close": _propTypes.default.func.isRequired
124
+ }).isRequired
104
125
  })
105
- }),
106
- children: _propTypes.default.node.isRequired
126
+ })
107
127
  };
108
128
  var _default = I18nProvider;
109
129
  exports.default = _default;
@@ -1 +1,2 @@
1
- export { default } from "./i18n-provider";
1
+ export { default } from "./i18n-provider.component";
2
+ export type { I18nProviderProps } from "./i18n-provider.component";
@@ -66,7 +66,13 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
66
66
 
67
67
  const formattedChildren = _react.default.Children.map(children, child => {
68
68
  if (child.type === _scrollableBlock.default) {
69
- return [...child.props.children];
69
+ const blockChildren = [...child.props.children];
70
+
71
+ if (child.props.parent) {
72
+ blockChildren.unshift( /*#__PURE__*/_react.default.createElement(_menuItem2.default, null, child.props.parent));
73
+ }
74
+
75
+ return blockChildren;
70
76
  }
71
77
 
72
78
  return child;
@@ -75,6 +81,19 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
75
81
  const arrayOfFormattedChildren = _react.default.Children.toArray(formattedChildren);
76
82
 
77
83
  const numberOfChildren = (0, _react.useMemo)(() => _react.default.Children.count(formattedChildren), [formattedChildren]);
84
+ const blockIndex = (0, _react.useMemo)(() => {
85
+ var _childrenArray$index;
86
+
87
+ const childrenArray = _react.default.Children.toArray(children);
88
+
89
+ let index = childrenArray.findIndex(item => item.type === _scrollableBlock.default);
90
+
91
+ if ((_childrenArray$index = childrenArray[index]) !== null && _childrenArray$index !== void 0 && _childrenArray$index.props.parent) {
92
+ index += 1;
93
+ }
94
+
95
+ return index;
96
+ }, [children]);
78
97
  const characterTimer = (0, _react.useRef)();
79
98
  const startCharacterTimeout = (0, _react.useCallback)(() => {
80
99
  characterTimer.current = setTimeout(() => {
@@ -260,7 +279,7 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
260
279
  isFocused: submenuFocusIndex === index,
261
280
  focusIndex: submenuFocusIndex,
262
281
  handleKeyDown,
263
- blockIndex: _react.default.Children.toArray(children).findIndex(item => item.type === _scrollableBlock.default)
282
+ blockIndex
264
283
  }
265
284
  }, child))));
266
285
  }
@@ -293,13 +312,13 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
293
312
  submenuDirection: submenuDirection,
294
313
  variant: variant,
295
314
  menuType: menuContext.menuType,
296
- role: "list"
315
+ role: blockIndex === 0 ? "presentation" : "list"
297
316
  }, _react.default.Children.map(children, (child, index) => /*#__PURE__*/_react.default.createElement(_submenu2.default.Provider, {
298
317
  value: {
299
318
  isFocused: !blockDoubleFocus && submenuFocusIndex === index,
300
319
  focusIndex: submenuFocusIndex,
301
320
  handleKeyDown,
302
- blockIndex: _react.default.Children.toArray(children).findIndex(item => item.type === _scrollableBlock.default),
321
+ blockIndex,
303
322
  updateFocusIndex: setSubmenuFocusIndex,
304
323
  itemIndex: child.type === _menuItem2.default ? index : undefined
305
324
  }
@@ -55,6 +55,7 @@ const MenuItem = ({
55
55
  menuOpen,
56
56
  onSubmenuOpen,
57
57
  onSubmenuClose,
58
+ overrideColor,
58
59
  ...rest
59
60
  }) => {
60
61
  const menuContext = (0, _react.useContext)(_menu.default);
@@ -121,6 +122,7 @@ const MenuItem = ({
121
122
  selected,
122
123
  variant,
123
124
  onKeyDown: !inFullscreenView ? handleKeyDown : undefined,
125
+ overrideColor,
124
126
  ref
125
127
  };
126
128
  const clonedChildren = isChildSearch.current ? childrenItems.map(child => /*#__PURE__*/_react.default.cloneElement(child, {
@@ -254,7 +256,10 @@ MenuItem.propTypes = {
254
256
  onSubmenuOpen: _propTypes.default.func,
255
257
 
256
258
  /** Callback triggered when submenu closes. Only valid with submenu prop */
257
- onSubmenuClose: _propTypes.default.func
259
+ onSubmenuClose: _propTypes.default.func,
260
+
261
+ /** @ignore @private */
262
+ overrideColor: _propTypes.default.bool
258
263
  };
259
264
  var _default = MenuItem;
260
265
  exports.default = _default;
@@ -29,6 +29,10 @@ export interface MenuItemBaseProps extends LayoutProps, FlexboxProps {
29
29
  onSubmenuOpen?: () => void;
30
30
  /** Callback triggered when submenu closes. Only valid with submenu prop */
31
31
  onSubmenuClose?: () => void;
32
+ /** @ignore @private
33
+ private prop, used inside ScrollableBlock to ensure the MenuItem's color variant overrides the CSS
34
+ for other MenuItems inside the block */
35
+ overrideColor?: boolean;
32
36
  }
33
37
 
34
38
  export interface MenuWithChildren extends MenuItemBaseProps {