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
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
- var _propTypes2 = _interopRequireDefault(require("@styled-system/prop-types"));
12
+ var _invariant = _interopRequireDefault(require("invariant"));
13
13
 
14
14
  var _formField = _interopRequireDefault(require("../../__internal__/form-field"));
15
15
 
@@ -17,7 +17,7 @@ var _buttonToggleGroup = _interopRequireDefault(require("./button-toggle-group.s
17
17
 
18
18
  var _buttonToggle = _interopRequireDefault(require("../button-toggle"));
19
19
 
20
- var _radioButtonMapper = _interopRequireDefault(require("../../__internal__/radio-button-mapper/radio-button-mapper.component"));
20
+ var _radioButtonMapper = _interopRequireDefault(require("../../__internal__/radio-button-mapper"));
21
21
 
22
22
  var _validationIcon = _interopRequireDefault(require("../../__internal__/validations/validation-icon.component"));
23
23
 
@@ -29,9 +29,11 @@ var _tooltipProvider = require("../../__internal__/tooltip-provider");
29
29
 
30
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
31
 
32
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
32
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
33
+
34
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
35
 
34
- const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default.space);
36
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
35
37
 
36
38
  const ButtonToggleGroup = ({
37
39
  children,
@@ -64,6 +66,14 @@ const ButtonToggleGroup = ({
64
66
  warning,
65
67
  info
66
68
  };
69
+ const hasCorrectItemStructure = (0, _react.useMemo)(() => {
70
+ const incorrectChild = _react.default.Children.toArray(children).find(child => {
71
+ return ! /*#__PURE__*/_react.default.isValidElement(child) || child.type.displayName !== _buttonToggle.default.displayName;
72
+ });
73
+
74
+ return !incorrectChild;
75
+ }, [children]);
76
+ !hasCorrectItemStructure ? process.env.NODE_ENV !== "production" ? (0, _invariant.default)(false, `\`ButtonToggleGroup\` only accepts children of type \`${_buttonToggle.default.displayName}\``) : (0, _invariant.default)(false) : void 0;
67
77
  return /*#__PURE__*/_react.default.createElement(_tooltipProvider.TooltipProvider, {
68
78
  helpAriaLabel: helpAriaLabel
69
79
  }, /*#__PURE__*/_react.default.createElement(_inputBehaviour.InputGroupBehaviour, null, /*#__PURE__*/_react.default.createElement(_formField.default, _extends({
@@ -94,97 +104,184 @@ const ButtonToggleGroup = ({
94
104
  }))))));
95
105
  };
96
106
 
97
- ButtonToggleGroup.propTypes = { ...marginPropTypes,
98
-
99
- /** Identifier used for testing purposes, applied to the root element of the component. */
107
+ ButtonToggleGroup.propTypes = {
108
+ "children": _propTypes.default.node,
100
109
  "data-component": _propTypes.default.string,
101
-
102
- /** Identifier used for testing purposes, applied to the root element of the component. */
103
110
  "data-element": _propTypes.default.string,
104
-
105
- /** Identifier used for testing purposes, applied to the root element of the component. */
106
111
  "data-role": _propTypes.default.string,
107
-
108
- /** Unique id for the root element of the component */
109
- id: _propTypes.default.string.isRequired,
110
-
111
- /** Specifies the name prop to be applied to each button in the group */
112
- name: _propTypes.default.string.isRequired,
113
-
114
- /** Togglable buttons to be rendered. Only accepts children of type ButtonToggle */
115
- children: (props, propName, componentName) => {
116
- let error;
117
- const prop = props[propName];
118
-
119
- _react.default.Children.forEach(prop, child => {
120
- if (!child) {
121
- return;
122
- }
123
-
124
- if (_buttonToggle.default.displayName !== child.type.displayName) {
125
- error = new Error(`\`${componentName}\` only accepts children of type \`${_buttonToggle.default.displayName}\`.`);
126
- }
127
- });
128
-
129
- return error;
130
- },
131
-
132
- /** Indicate that error has occurred
133
- Pass string to display icon, tooltip and red border
134
- Pass true boolean to only display red border */
135
- error: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),
136
-
137
- /** Indicate that warning has occurred
138
- Pass string to display icon, tooltip and orange border
139
- Pass true boolean to only display orange border */
140
- warning: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),
141
-
142
- /** Indicate additional information
143
- Pass string to display icon, tooltip and blue border
144
- Pass true boolean to only display blue border */
145
- info: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),
146
-
147
- /** When true, validation icon will be placed on label instead of being placed on the input */
148
- validationOnLabel: _propTypes.default.bool,
149
-
150
- /** Text for the label. */
151
- label: _propTypes.default.string,
152
-
153
- /** Text for the labels help tooltip. */
154
- labelHelp: _propTypes.default.node,
155
-
156
- /** Spacing between label and a field for inline label, given number will be multiplied by base spacing unit (8) */
157
- labelSpacing: _propTypes.default.oneOf([1, 2]),
158
-
159
- /** The percentage width of the ButtonToggleGroup. */
160
- inputWidth: _propTypes.default.number,
161
-
162
- /** The text for the field help. */
163
- fieldHelp: _propTypes.default.string,
164
-
165
- /** Sets the field help to inline. */
166
- fieldHelpInline: _propTypes.default.bool,
167
-
168
- /** Sets the label to be inline. */
169
- labelInline: _propTypes.default.bool,
170
-
171
- /** The percentage width of the label. */
172
- labelWidth: _propTypes.default.number,
173
-
174
- /** The alignment for the text in the label. */
175
- labelAlign: _propTypes.default.string,
176
-
177
- /** Callback fired when each RadioButton is blurred */
178
- onBlur: _propTypes.default.func,
179
-
180
- /** callback to handle change event */
181
- onChange: _propTypes.default.func,
182
-
183
- /** The value of the Button Toggle Group */
184
- value: _propTypes.default.string,
185
-
186
- /** Aria label for rendered help component */
187
- helpAriaLabel: _propTypes.default.string
112
+ "error": _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),
113
+ "fieldHelp": _propTypes.default.string,
114
+ "fieldHelpInline": _propTypes.default.bool,
115
+ "helpAriaLabel": _propTypes.default.string,
116
+ "id": _propTypes.default.string.isRequired,
117
+ "info": _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),
118
+ "inputWidth": _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
119
+ "label": _propTypes.default.string,
120
+ "labelAlign": _propTypes.default.oneOf(["left", "right"]),
121
+ "labelHelp": _propTypes.default.node,
122
+ "labelInline": _propTypes.default.bool,
123
+ "labelSpacing": _propTypes.default.oneOf([1, 2]),
124
+ "labelWidth": _propTypes.default.number,
125
+ "m": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
126
+ "__@toStringTag": _propTypes.default.string.isRequired,
127
+ "description": _propTypes.default.string,
128
+ "toString": _propTypes.default.func.isRequired,
129
+ "valueOf": _propTypes.default.func.isRequired
130
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
131
+ "__@toStringTag": _propTypes.default.string.isRequired,
132
+ "description": _propTypes.default.string,
133
+ "toString": _propTypes.default.func.isRequired,
134
+ "valueOf": _propTypes.default.func.isRequired
135
+ }), _propTypes.default.string]),
136
+ "margin": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
137
+ "__@toStringTag": _propTypes.default.string.isRequired,
138
+ "description": _propTypes.default.string,
139
+ "toString": _propTypes.default.func.isRequired,
140
+ "valueOf": _propTypes.default.func.isRequired
141
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
142
+ "__@toStringTag": _propTypes.default.string.isRequired,
143
+ "description": _propTypes.default.string,
144
+ "toString": _propTypes.default.func.isRequired,
145
+ "valueOf": _propTypes.default.func.isRequired
146
+ }), _propTypes.default.string]),
147
+ "marginBottom": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
148
+ "__@toStringTag": _propTypes.default.string.isRequired,
149
+ "description": _propTypes.default.string,
150
+ "toString": _propTypes.default.func.isRequired,
151
+ "valueOf": _propTypes.default.func.isRequired
152
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
153
+ "__@toStringTag": _propTypes.default.string.isRequired,
154
+ "description": _propTypes.default.string,
155
+ "toString": _propTypes.default.func.isRequired,
156
+ "valueOf": _propTypes.default.func.isRequired
157
+ }), _propTypes.default.string]),
158
+ "marginLeft": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
159
+ "__@toStringTag": _propTypes.default.string.isRequired,
160
+ "description": _propTypes.default.string,
161
+ "toString": _propTypes.default.func.isRequired,
162
+ "valueOf": _propTypes.default.func.isRequired
163
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
164
+ "__@toStringTag": _propTypes.default.string.isRequired,
165
+ "description": _propTypes.default.string,
166
+ "toString": _propTypes.default.func.isRequired,
167
+ "valueOf": _propTypes.default.func.isRequired
168
+ }), _propTypes.default.string]),
169
+ "marginRight": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
170
+ "__@toStringTag": _propTypes.default.string.isRequired,
171
+ "description": _propTypes.default.string,
172
+ "toString": _propTypes.default.func.isRequired,
173
+ "valueOf": _propTypes.default.func.isRequired
174
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
175
+ "__@toStringTag": _propTypes.default.string.isRequired,
176
+ "description": _propTypes.default.string,
177
+ "toString": _propTypes.default.func.isRequired,
178
+ "valueOf": _propTypes.default.func.isRequired
179
+ }), _propTypes.default.string]),
180
+ "marginTop": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
181
+ "__@toStringTag": _propTypes.default.string.isRequired,
182
+ "description": _propTypes.default.string,
183
+ "toString": _propTypes.default.func.isRequired,
184
+ "valueOf": _propTypes.default.func.isRequired
185
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
186
+ "__@toStringTag": _propTypes.default.string.isRequired,
187
+ "description": _propTypes.default.string,
188
+ "toString": _propTypes.default.func.isRequired,
189
+ "valueOf": _propTypes.default.func.isRequired
190
+ }), _propTypes.default.string]),
191
+ "marginX": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
192
+ "__@toStringTag": _propTypes.default.string.isRequired,
193
+ "description": _propTypes.default.string,
194
+ "toString": _propTypes.default.func.isRequired,
195
+ "valueOf": _propTypes.default.func.isRequired
196
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
197
+ "__@toStringTag": _propTypes.default.string.isRequired,
198
+ "description": _propTypes.default.string,
199
+ "toString": _propTypes.default.func.isRequired,
200
+ "valueOf": _propTypes.default.func.isRequired
201
+ }), _propTypes.default.string]),
202
+ "marginY": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
203
+ "__@toStringTag": _propTypes.default.string.isRequired,
204
+ "description": _propTypes.default.string,
205
+ "toString": _propTypes.default.func.isRequired,
206
+ "valueOf": _propTypes.default.func.isRequired
207
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
208
+ "__@toStringTag": _propTypes.default.string.isRequired,
209
+ "description": _propTypes.default.string,
210
+ "toString": _propTypes.default.func.isRequired,
211
+ "valueOf": _propTypes.default.func.isRequired
212
+ }), _propTypes.default.string]),
213
+ "mb": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
214
+ "__@toStringTag": _propTypes.default.string.isRequired,
215
+ "description": _propTypes.default.string,
216
+ "toString": _propTypes.default.func.isRequired,
217
+ "valueOf": _propTypes.default.func.isRequired
218
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
219
+ "__@toStringTag": _propTypes.default.string.isRequired,
220
+ "description": _propTypes.default.string,
221
+ "toString": _propTypes.default.func.isRequired,
222
+ "valueOf": _propTypes.default.func.isRequired
223
+ }), _propTypes.default.string]),
224
+ "ml": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
225
+ "__@toStringTag": _propTypes.default.string.isRequired,
226
+ "description": _propTypes.default.string,
227
+ "toString": _propTypes.default.func.isRequired,
228
+ "valueOf": _propTypes.default.func.isRequired
229
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
230
+ "__@toStringTag": _propTypes.default.string.isRequired,
231
+ "description": _propTypes.default.string,
232
+ "toString": _propTypes.default.func.isRequired,
233
+ "valueOf": _propTypes.default.func.isRequired
234
+ }), _propTypes.default.string]),
235
+ "mr": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
236
+ "__@toStringTag": _propTypes.default.string.isRequired,
237
+ "description": _propTypes.default.string,
238
+ "toString": _propTypes.default.func.isRequired,
239
+ "valueOf": _propTypes.default.func.isRequired
240
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
241
+ "__@toStringTag": _propTypes.default.string.isRequired,
242
+ "description": _propTypes.default.string,
243
+ "toString": _propTypes.default.func.isRequired,
244
+ "valueOf": _propTypes.default.func.isRequired
245
+ }), _propTypes.default.string]),
246
+ "mt": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
247
+ "__@toStringTag": _propTypes.default.string.isRequired,
248
+ "description": _propTypes.default.string,
249
+ "toString": _propTypes.default.func.isRequired,
250
+ "valueOf": _propTypes.default.func.isRequired
251
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
252
+ "__@toStringTag": _propTypes.default.string.isRequired,
253
+ "description": _propTypes.default.string,
254
+ "toString": _propTypes.default.func.isRequired,
255
+ "valueOf": _propTypes.default.func.isRequired
256
+ }), _propTypes.default.string]),
257
+ "mx": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
258
+ "__@toStringTag": _propTypes.default.string.isRequired,
259
+ "description": _propTypes.default.string,
260
+ "toString": _propTypes.default.func.isRequired,
261
+ "valueOf": _propTypes.default.func.isRequired
262
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
263
+ "__@toStringTag": _propTypes.default.string.isRequired,
264
+ "description": _propTypes.default.string,
265
+ "toString": _propTypes.default.func.isRequired,
266
+ "valueOf": _propTypes.default.func.isRequired
267
+ }), _propTypes.default.string]),
268
+ "my": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
269
+ "__@toStringTag": _propTypes.default.string.isRequired,
270
+ "description": _propTypes.default.string,
271
+ "toString": _propTypes.default.func.isRequired,
272
+ "valueOf": _propTypes.default.func.isRequired
273
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
274
+ "__@toStringTag": _propTypes.default.string.isRequired,
275
+ "description": _propTypes.default.string,
276
+ "toString": _propTypes.default.func.isRequired,
277
+ "valueOf": _propTypes.default.func.isRequired
278
+ }), _propTypes.default.string]),
279
+ "name": _propTypes.default.string.isRequired,
280
+ "onBlur": _propTypes.default.func,
281
+ "onChange": _propTypes.default.func,
282
+ "validationOnLabel": _propTypes.default.bool,
283
+ "value": _propTypes.default.string,
284
+ "warning": _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool])
188
285
  };
189
286
  ButtonToggleGroup.displayName = "ButtonToggleGroup";
190
287
  var _default = ButtonToggleGroup;
@@ -0,0 +1,4 @@
1
+ import { ButtonToggleGroupProps } from ".";
2
+ import { ValidationProps } from "../../__internal__/validations";
3
+ declare const StyledButtonToggleGroup: import("styled-components").StyledComponent<"div", any, ValidationProps & Pick<ButtonToggleGroupProps, "inputWidth">, never>;
4
+ export default StyledButtonToggleGroup;
@@ -17,7 +17,7 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
17
17
 
18
18
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
19
 
20
- const ButtonToggleGroupStyle = _styledComponents.default.div`
20
+ const StyledButtonToggleGroup = _styledComponents.default.div`
21
21
  display: flex;
22
22
 
23
23
  ${({
@@ -50,5 +50,5 @@ const ButtonToggleGroupStyle = _styledComponents.default.div`
50
50
  margin-left: 4px;
51
51
  }
52
52
  `;
53
- var _default = ButtonToggleGroupStyle;
53
+ var _default = StyledButtonToggleGroup;
54
54
  exports.default = _default;
@@ -1 +1,2 @@
1
- export { default } from "./button-toggle-group";
1
+ export { default } from "./button-toggle-group.component";
2
+ export type { ButtonToggleGroupProps } from "./button-toggle-group.component";
@@ -0,0 +1,37 @@
1
+ import React from "react";
2
+ export interface DrawerSidebarContextProps {
3
+ isInSidebar: boolean;
4
+ }
5
+ export interface DrawerProps {
6
+ /** Duration of a animation */
7
+ animationDuration?: string;
8
+ /** Specify an aria-label for the Drawer component */
9
+ "aria-label"?: string;
10
+ /** Sets color of sidebar's background */
11
+ backgroundColor?: string;
12
+ children: React.ReactNode;
13
+ /** Set the default state of expansion of the Drawer if component is meant to be used as uncontrolled */
14
+ defaultExpanded?: boolean;
15
+ /** Sets the expansion state of the Drawer if component is meant to be used as controlled */
16
+ expanded?: boolean;
17
+ expandedWidth?: string;
18
+ /** Sets custom height to Drawer component */
19
+ height?: string;
20
+ /** Callback fired when expansion state changes, onChange(event: object, isExpanded: boolean) */
21
+ onChange?: (e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>, isExpanded: boolean) => void;
22
+ sidebar?: React.ReactNode;
23
+ /** Enables expand/collapse button that controls drawer */
24
+ showControls?: boolean;
25
+ /** Sets the heading of the drawer */
26
+ title?: React.ReactNode;
27
+ /** Content to display inside of a footer */
28
+ footer?: React.ReactNode;
29
+ /** Makes the header of the drawer sticky. Title prop must also be set. */
30
+ stickyHeader?: boolean;
31
+ /** Makes the footer of the drawer sticky. Footer prop must also be set. */
32
+ stickyFooter?: boolean;
33
+ }
34
+ declare const DrawerSidebarContext: React.Context<{}>;
35
+ export declare const Drawer: ({ defaultExpanded, expanded, onChange, children, expandedWidth, sidebar, animationDuration, backgroundColor, title, footer, showControls, height, stickyHeader, stickyFooter, ...rest }: DrawerProps) => JSX.Element;
36
+ export { DrawerSidebarContext };
37
+ export default Drawer;
@@ -3,14 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.DrawerSidebarContext = void 0;
6
+ exports.default = exports.DrawerSidebarContext = exports.Drawer = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
- var _classnames = _interopRequireDefault(require("classnames"));
13
-
14
12
  var _invariant = _interopRequireDefault(require("invariant"));
15
13
 
16
14
  var _guid = _interopRequireDefault(require("../../__internal__/utils/helpers/guid"));
@@ -52,17 +50,17 @@ const Drawer = ({
52
50
  stickyFooter,
53
51
  ...rest
54
52
  }) => {
55
- const drawerSidebarContentRef = (0, _react.useRef)();
56
- const scrollableContentRef = (0, _react.useRef)();
53
+ const drawerSidebarContentRef = (0, _react.useRef)(null);
54
+ const scrollableContentRef = (0, _react.useRef)(null);
57
55
  const isControlled = (0, _react.useRef)(expanded !== undefined);
58
56
  const [isOpening, setIsOpening] = (0, _react.useState)(false);
59
57
  const [isClosing, setIsClosing] = (0, _react.useState)(false);
60
58
  const [isExpanded, setIsExpanded] = (0, _react.useState)(isControlled.current ? expanded : defaultExpanded);
61
- const timer = (0, _react.useRef)();
59
+ const timer = (0, _react.useRef)(null);
62
60
  const getAnimationDuration = (0, _react.useCallback)(() => {
63
61
  if (animationDuration.indexOf("ms") !== -1) {
64
62
  const animationTime = animationDuration.substring(0, animationDuration.length - 2);
65
- return animationTime;
63
+ return parseInt(animationTime);
66
64
  }
67
65
 
68
66
  if (animationDuration.indexOf(".") !== -1 || animationDuration.indexOf("s") !== -1) {
@@ -70,11 +68,14 @@ const Drawer = ({
70
68
  return parseFloat(animationTime) * 1000;
71
69
  }
72
70
 
73
- return animationDuration;
71
+ return parseInt(animationDuration);
74
72
  }, [animationDuration]);
75
73
  const toggleAnimation = (0, _react.useCallback)(() => {
76
74
  const timeout = getAnimationDuration();
77
- clearTimeout(timer.current);
75
+
76
+ if (timer.current) {
77
+ clearTimeout(timer.current);
78
+ }
78
79
 
79
80
  if (!isExpanded) {
80
81
  setIsClosing(false);
@@ -105,14 +106,16 @@ const Drawer = ({
105
106
  }, [expanded, toggleAnimation, previousValue, showControls]);
106
107
  (0, _react.useEffect)(() => {
107
108
  return function cleanup() {
108
- clearTimeout(timer.current);
109
+ if (timer.current) {
110
+ clearTimeout(timer.current);
111
+ }
109
112
  };
110
113
  }, []);
111
114
  const toggleDrawer = (0, _react.useCallback)(ev => {
112
115
  setIsExpanded(!isExpanded);
113
116
  if (onChange) onChange(ev, !isExpanded);
114
117
 
115
- if (isExpanded) {
118
+ if (isExpanded && drawerSidebarContentRef.current) {
116
119
  drawerSidebarContentRef.current.scrollTop = 0;
117
120
  }
118
121
 
@@ -121,20 +124,29 @@ const Drawer = ({
121
124
  const guid = (0, _react.useRef)((0, _guid.default)());
122
125
  const sidebarId = `DrawerSidebar_${guid.current}`;
123
126
  const getClassNames = (0, _react.useCallback)(() => {
124
- return (0, _classnames.default)(isExpanded ? "open" : "closed", isOpening ? "opening" : "", isClosing ? "closing" : "");
127
+ const classes = [isExpanded ? "open" : "closed"];
128
+
129
+ if (isOpening) {
130
+ classes.push("opening");
131
+ }
132
+
133
+ if (isClosing) {
134
+ classes.push("closing");
135
+ }
136
+
137
+ return classes.join(" ");
125
138
  }, [isExpanded, isOpening, isClosing]);
126
139
 
127
140
  const getControls = () => {
128
141
  if (showControls === undefined) return null;
129
- return /*#__PURE__*/_react.default.createElement(_drawer.StyledButton, {
142
+ return /*#__PURE__*/_react.default.createElement(_drawer.StyledSidebarToggleButton, {
130
143
  "aria-label": "toggle sidebar",
131
144
  "aria-expanded": isExpanded,
132
145
  "aria-controls": sidebarId,
133
146
  "data-element": "drawer-toggle",
134
147
  onClick: toggleDrawer,
135
148
  isExpanded: isExpanded,
136
- animationDuration: animationDuration,
137
- stickyHeader: stickyHeader
149
+ animationDuration: animationDuration
138
150
  }, /*#__PURE__*/_react.default.createElement(_icon.default, {
139
151
  type: "chevron_right"
140
152
  }));
@@ -170,47 +182,23 @@ const Drawer = ({
170
182
  }, footer))), /*#__PURE__*/_react.default.createElement(_drawer.StyledDrawerChildren, null, children));
171
183
  };
172
184
 
185
+ exports.Drawer = Drawer;
173
186
  Drawer.propTypes = {
174
- children: _propTypes.default.node.isRequired,
175
-
176
- /** Set the default state of expansion of the Drawer if component is meant to be used as uncontrolled */
177
- defaultExpanded: _propTypes.default.bool,
178
-
179
- /** Sets the expansion state of the Drawer if component is meant to be used as controlled */
180
- expanded: _propTypes.default.bool,
181
-
182
- /** Callback fired when expansion state changes, onChange(event: object, isExpanded: boolean) */
183
- onChange: _propTypes.default.func,
184
-
185
- /* Sidebar object either html or react component */
186
- sidebar: _propTypes.default.node,
187
-
188
- /* The (% or px) width of the expanded sidebar */
189
- expandedWidth: _propTypes.default.string,
190
-
191
- /** Duration of a animation */
192
- animationDuration: _propTypes.default.string,
193
-
194
- /** Sets color of sidebar's background */
195
- backgroundColor: _propTypes.default.string,
196
-
197
- /** Sets custom height to Drawer component */
198
- height: _propTypes.default.string,
199
-
200
- /** Sets the heading of the drawer */
201
- title: _propTypes.default.node,
202
-
203
- /** Enables expand/collapse button that controls drawer */
204
- showControls: _propTypes.default.bool,
205
-
206
- /** Content to display inside of a footer */
207
- footer: _propTypes.default.node,
208
-
209
- /** Makes the header of the drawer sticky. Title prop must also be set. */
210
- stickyHeader: _propTypes.default.bool,
211
-
212
- /** Makes the footer of the drawer sticky. Footer prop must also be set. */
213
- stickyFooter: _propTypes.default.bool
187
+ "animationDuration": _propTypes.default.string,
188
+ "aria-label": _propTypes.default.string,
189
+ "backgroundColor": _propTypes.default.string,
190
+ "children": _propTypes.default.node,
191
+ "defaultExpanded": _propTypes.default.bool,
192
+ "expanded": _propTypes.default.bool,
193
+ "expandedWidth": _propTypes.default.string,
194
+ "footer": _propTypes.default.node,
195
+ "height": _propTypes.default.string,
196
+ "onChange": _propTypes.default.func,
197
+ "showControls": _propTypes.default.bool,
198
+ "sidebar": _propTypes.default.node,
199
+ "stickyFooter": _propTypes.default.bool,
200
+ "stickyHeader": _propTypes.default.bool,
201
+ "title": _propTypes.default.node
214
202
  };
215
203
  var _default = Drawer;
216
204
  exports.default = _default;
@@ -0,0 +1,27 @@
1
+ declare const StyledSidebarHeader: import("styled-components").StyledComponent<"div", any, {
2
+ isExpanded?: boolean | undefined;
3
+ }, never>;
4
+ declare const StyledSidebarTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ declare const StyledDrawerChildren: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ interface StyledDrawerSidebarProps {
7
+ isExpanded?: boolean;
8
+ hasControls: boolean;
9
+ }
10
+ declare const StyledDrawerSidebar: import("styled-components").StyledComponent<"div", any, import("../box").BoxProps & StyledDrawerSidebarProps, never>;
11
+ interface StyledDrawerContentProps {
12
+ animationDuration?: string;
13
+ backgroundColor?: string;
14
+ expandedWidth: string;
15
+ }
16
+ declare const StyledDrawerContent: import("styled-components").StyledComponent<"div", any, StyledDrawerContentProps, never>;
17
+ interface StyledSidebarToggleButtonProps {
18
+ animationDuration?: string;
19
+ isExpanded?: boolean;
20
+ }
21
+ declare const StyledSidebarToggleButton: import("styled-components").StyledComponent<"button", any, {
22
+ type: "button";
23
+ } & StyledSidebarToggleButtonProps, "type">;
24
+ declare const StyledDrawerWrapper: import("styled-components").StyledComponent<"div", any, {
25
+ height: string;
26
+ }, never>;
27
+ export { StyledSidebarHeader, StyledDrawerWrapper, StyledDrawerContent, StyledDrawerChildren, StyledDrawerSidebar, StyledSidebarTitle, StyledSidebarToggleButton, };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.StyledButton = exports.StyledSidebarTitle = exports.StyledDrawerSidebar = exports.StyledDrawerChildren = exports.StyledDrawerContent = exports.StyledDrawerWrapper = exports.StyledSidebarHeader = void 0;
6
+ exports.StyledSidebarToggleButton = exports.StyledSidebarTitle = exports.StyledDrawerSidebar = exports.StyledDrawerChildren = exports.StyledDrawerContent = exports.StyledDrawerWrapper = exports.StyledSidebarHeader = void 0;
7
7
 
8
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
9
 
@@ -187,7 +187,7 @@ const StyledDrawerContent = _styledComponents.default.div`
187
187
  }
188
188
  `;
189
189
  exports.StyledDrawerContent = StyledDrawerContent;
190
- const StyledButton = _styledComponents.default.button.attrs({
190
+ const StyledSidebarToggleButton = _styledComponents.default.button.attrs({
191
191
  type: "button"
192
192
  })`
193
193
  ${({
@@ -223,7 +223,7 @@ const StyledButton = _styledComponents.default.button.attrs({
223
223
  `}
224
224
  `}
225
225
  `;
226
- exports.StyledButton = StyledButton;
226
+ exports.StyledSidebarToggleButton = StyledSidebarToggleButton;
227
227
  const StyledDrawerWrapper = _styledComponents.default.div`
228
228
  display: flex;
229
229
  height: ${({
@@ -1 +1,2 @@
1
- export { default, DrawerSidebarContext } from "./drawer";
1
+ export { default, DrawerSidebarContext } from "./drawer.component";
2
+ export type { DrawerSidebarContextProps, DrawerProps, } from "./drawer.component";
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import Locale from "../../locales";
3
+ export interface I18nProviderProps {
4
+ locale?: Partial<Locale>;
5
+ children: React.ReactNode;
6
+ }
7
+ export declare const I18nProvider: ({ locale, children }: I18nProviderProps) => JSX.Element;
8
+ export default I18nProvider;