carbon-react 109.0.2 → 109.1.2

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 (66) hide show
  1. package/esm/__internal__/focus-trap/focus-trap.component.js +8 -11
  2. package/esm/__internal__/label/label.component.d.ts +1 -1
  3. package/esm/__internal__/label/label.component.js +2 -2
  4. package/esm/components/checkbox/checkbox-group.component.js +0 -5
  5. package/esm/components/checkbox/checkbox-group.d.ts +0 -2
  6. package/esm/components/checkbox/checkbox.component.js +1 -3
  7. package/esm/components/date/date.component.js +4 -7
  8. package/esm/components/flat-table/sort/sort.component.js +2 -1
  9. package/esm/components/flat-table/sort/sort.style.js +0 -1
  10. package/esm/components/help/help.component.d.ts +43 -0
  11. package/esm/components/help/help.component.js +194 -84
  12. package/esm/components/help/help.config.d.ts +1 -0
  13. package/esm/components/help/help.style.d.ts +4 -1
  14. package/esm/components/help/index.d.ts +2 -1
  15. package/esm/components/inline-inputs/inline-inputs.component.d.ts +5 -9
  16. package/esm/components/inline-inputs/inline-inputs.component.js +14 -2
  17. package/esm/components/inline-inputs/inline-inputs.style.d.ts +18 -3
  18. package/esm/components/inline-inputs/inline-inputs.style.js +6 -2
  19. package/esm/components/menu/__internal__/submenu/submenu.component.js +4 -6
  20. package/esm/components/multi-action-button/multi-action-button.component.js +4 -13
  21. package/esm/components/popover-container/popover-container.component.d.ts +1 -1
  22. package/esm/components/popover-container/popover-container.component.js +5 -9
  23. package/esm/components/split-button/split-button.component.js +4 -11
  24. package/esm/hooks/__internal__/useClickAwayListener/index.d.ts +1 -0
  25. package/esm/hooks/__internal__/useClickAwayListener/index.js +1 -0
  26. package/esm/hooks/__internal__/useClickAwayListener/useClickAwayListener.d.ts +3 -0
  27. package/esm/hooks/__internal__/useClickAwayListener/useClickAwayListener.js +23 -0
  28. package/lib/__internal__/focus-trap/focus-trap.component.js +8 -11
  29. package/lib/__internal__/label/label.component.d.ts +1 -1
  30. package/lib/__internal__/label/label.component.js +2 -2
  31. package/lib/components/checkbox/checkbox-group.component.js +0 -5
  32. package/lib/components/checkbox/checkbox-group.d.ts +0 -2
  33. package/lib/components/checkbox/checkbox.component.js +1 -3
  34. package/lib/components/date/date.component.js +4 -7
  35. package/lib/components/flat-table/sort/sort.component.js +2 -1
  36. package/lib/components/flat-table/sort/sort.style.js +0 -1
  37. package/lib/components/help/help.component.d.ts +43 -0
  38. package/lib/components/help/help.component.js +194 -87
  39. package/lib/components/help/help.config.d.ts +1 -0
  40. package/lib/components/help/help.style.d.ts +4 -1
  41. package/lib/components/help/index.d.ts +2 -1
  42. package/lib/components/inline-inputs/inline-inputs.component.d.ts +5 -9
  43. package/lib/components/inline-inputs/inline-inputs.component.js +15 -2
  44. package/lib/components/inline-inputs/inline-inputs.style.d.ts +18 -3
  45. package/lib/components/inline-inputs/inline-inputs.style.js +6 -2
  46. package/lib/components/menu/__internal__/submenu/submenu.component.js +4 -6
  47. package/lib/components/multi-action-button/multi-action-button.component.js +5 -13
  48. package/lib/components/popover-container/popover-container.component.d.ts +1 -1
  49. package/lib/components/popover-container/popover-container.component.js +5 -9
  50. package/lib/components/split-button/split-button.component.js +5 -11
  51. package/lib/hooks/__internal__/useClickAwayListener/index.d.ts +1 -0
  52. package/lib/{__internal__/click-away-wrapper → hooks/__internal__/useClickAwayListener}/index.js +2 -2
  53. package/lib/hooks/__internal__/useClickAwayListener/package.json +6 -0
  54. package/lib/hooks/__internal__/useClickAwayListener/useClickAwayListener.d.ts +3 -0
  55. package/lib/hooks/__internal__/useClickAwayListener/useClickAwayListener.js +33 -0
  56. package/package.json +1 -1
  57. package/esm/__internal__/click-away-wrapper/click-away-wrapper.component.d.ts +0 -12
  58. package/esm/__internal__/click-away-wrapper/click-away-wrapper.component.js +0 -43
  59. package/esm/__internal__/click-away-wrapper/index.d.ts +0 -2
  60. package/esm/__internal__/click-away-wrapper/index.js +0 -1
  61. package/esm/components/help/help.d.ts +0 -41
  62. package/lib/__internal__/click-away-wrapper/click-away-wrapper.component.d.ts +0 -12
  63. package/lib/__internal__/click-away-wrapper/click-away-wrapper.component.js +0 -59
  64. package/lib/__internal__/click-away-wrapper/index.d.ts +0 -2
  65. package/lib/__internal__/click-away-wrapper/package.json +0 -6
  66. package/lib/components/help/help.d.ts +0 -41
@@ -3,14 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.Help = 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 _propTypes2 = _interopRequireDefault(require("@styled-system/prop-types"));
13
-
14
12
  var _icon = _interopRequireDefault(require("../icon"));
15
13
 
16
14
  var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags/tags"));
@@ -23,8 +21,6 @@ var _tooltipProvider = require("../../__internal__/tooltip-provider");
23
21
 
24
22
  var _utils = require("../../style/utils");
25
23
 
26
- var _help2 = require("./help.config");
27
-
28
24
  var _guid = _interopRequireDefault(require("../../__internal__/utils/helpers/guid"));
29
25
 
30
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -35,23 +31,21 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
35
31
 
36
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); }
37
33
 
38
- const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default.space);
39
-
40
34
  const Help = ({
35
+ as,
36
+ ariaLabel = "help",
37
+ children,
41
38
  className,
42
39
  href,
43
40
  helpId,
44
- children,
45
- tabIndex,
46
- as,
47
- tooltipPosition,
48
41
  isFocused,
49
- type,
50
- tooltipId,
42
+ tabIndex = 0,
51
43
  tooltipBgColor,
52
44
  tooltipFontColor,
53
45
  tooltipFlipOverrides,
54
- ariaLabel = "help",
46
+ tooltipId,
47
+ tooltipPosition = "top",
48
+ type = "help",
55
49
  ...rest
56
50
  }) => {
57
51
  const defaultTooltipId = (0, _react.useRef)((0, _guid.default)());
@@ -61,23 +55,25 @@ const Help = ({
61
55
  helpAriaLabel
62
56
  } = (0, _react.useContext)(_tooltipProvider.TooltipContext);
63
57
  (0, _react.useEffect)(() => {
58
+ function handleKeyPress(ev) {
59
+ if (_events.default.isEscKey(ev)) {
60
+ var _helpElement$current;
61
+
62
+ helpElement === null || helpElement === void 0 ? void 0 : (_helpElement$current = helpElement.current) === null || _helpElement$current === void 0 ? void 0 : _helpElement$current.blur();
63
+ updateTooltipVisible(false);
64
+ }
65
+ }
66
+
64
67
  document.addEventListener("keydown", handleKeyPress);
65
68
  return function cleanup() {
66
69
  document.removeEventListener("keydown", handleKeyPress);
67
70
  };
68
71
  });
69
- const tagType = as || href && "a";
72
+ const tagType = as || href && "a" || "div";
70
73
 
71
- function handleKeyPress(ev) {
72
- if (_events.default.isEscKey(ev)) {
73
- helpElement.current.blur();
74
- updateTooltipVisible(false);
75
- }
76
- }
77
-
78
- function handleFocusBlur(bool) {
74
+ function handleFocusBlur(isVisible) {
79
75
  return () => {
80
- updateTooltipVisible(bool);
76
+ updateTooltipVisible(isVisible);
81
77
  };
82
78
  }
83
79
 
@@ -90,7 +86,9 @@ const Help = ({
90
86
  id: helpId,
91
87
  ref: helpElement,
92
88
  onClick: () => {
93
- helpElement.current.focus();
89
+ var _helpElement$current2;
90
+
91
+ helpElement === null || helpElement === void 0 ? void 0 : (_helpElement$current2 = helpElement.current) === null || _helpElement$current2 === void 0 ? void 0 : _helpElement$current2.focus();
94
92
  },
95
93
  onFocus: handleFocusBlur(true),
96
94
  onBlur: handleFocusBlur(false),
@@ -117,68 +115,177 @@ const Help = ({
117
115
  }));
118
116
  };
119
117
 
120
- Help.propTypes = { ...marginPropTypes,
121
-
122
- /** [Legacy] A custom class name for the component. */
123
- className: _propTypes.default.string,
124
-
125
- /** Message to display in tooltip */
126
- children: _propTypes.default.node,
127
-
128
- /** The unique id of the component */
129
- helpId: _propTypes.default.string,
130
-
131
- /** Overrides the default tabindex of the component */
132
- tabIndex: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
133
-
134
- /** Overrides the default 'as' attribute of the Help component */
135
- as: _propTypes.default.string,
136
-
137
- /** Position of tooltip relative to target */
138
- tooltipPosition: _propTypes.default.oneOf(["bottom", "left", "right", "top"]),
139
-
140
- /** A path for the anchor */
141
- href: _propTypes.default.string,
142
-
143
- /** A boolean received from IconWrapper */
144
- isFocused: _propTypes.default.bool,
145
-
146
- /** <a href="https://brand.sage.com/d/NdbrveWvNheA/foundations#/icons/icons" target="_blank">List of supported icons</a>
147
- *
148
- * Icon to display, can be received from label component
149
- *
150
- */
151
- type: _propTypes.default.string,
152
-
153
- /** Override background color of the Tooltip, provide any color from palette or any valid css color value. */
154
- tooltipBgColor: _propTypes.default.string,
155
-
156
- /** Override font color of the Tooltip, provide any color from palette or any valid css color value. */
157
- tooltipFontColor: _propTypes.default.string,
158
-
159
- /** Overrides the default flip behaviour of the Tooltip, must be an array containing some or all of ["top", "bottom", "left", "right"] (see https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements) */
160
- tooltipFlipOverrides: (props, propName, componentName) => {
161
- const prop = props[propName];
162
- const isValid = prop && Array.isArray(prop) && prop.every(placement => _help2.HELP_POSITIONS.includes(placement));
163
-
164
- if (!prop || isValid) {
165
- return null;
166
- }
167
-
168
- return new Error( // eslint-disable-next-line max-len
169
- `The \`${propName}\` prop supplied to \`${componentName}\` must be an array containing some or all of ["top", "bottom", "left", "right"].`);
170
- },
171
-
172
- /** Id passed to the tooltip container, used for accessibility purposes. */
173
- tooltipId: _propTypes.default.string,
174
-
175
- /** Aria label */
176
- ariaLabel: _propTypes.default.string
177
- };
178
- Help.defaultProps = {
179
- tooltipPosition: "top",
180
- tabIndex: 0,
181
- type: "help"
118
+ exports.Help = Help;
119
+ Help.propTypes = {
120
+ "ariaLabel": _propTypes.default.string,
121
+ "as": _propTypes.default.oneOf(["a", "abbr", "address", "animate", "animateMotion", "animateTransform", "area", "article", "aside", "audio", "b", "base", "bdi", "bdo", "big", "blockquote", "body", "br", "button", "canvas", "caption", "circle", "cite", "clipPath", "code", "col", "colgroup", "data", "datalist", "dd", "defs", "del", "desc", "details", "dfn", "dialog", "div", "dl", "dt", "ellipse", "em", "embed", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "fieldset", "figcaption", "figure", "filter", "footer", "foreignObject", "form", "g", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "image", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "line", "linearGradient", "link", "main", "map", "mark", "marker", "mask", "menu", "menuitem", "meta", "metadata", "meter", "mpath", "nav", "noindex", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "path", "pattern", "picture", "polygon", "polyline", "pre", "progress", "q", "radialGradient", "rect", "rp", "rt", "ruby", "s", "samp", "script", "section", "select", "slot", "small", "source", "span", "stop", "strong", "style", "sub", "summary", "sup", "svg", "switch", "symbol", "table", "tbody", "td", "template", "text", "textarea", "textPath", "tfoot", "th", "thead", "time", "title", "tr", "track", "tspan", "u", "ul", "use", "var", "video", "view", "wbr", "webview"]),
122
+ "children": _propTypes.default.node,
123
+ "className": _propTypes.default.string,
124
+ "helpId": _propTypes.default.string,
125
+ "href": _propTypes.default.string,
126
+ "isFocused": _propTypes.default.bool,
127
+ "m": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
128
+ "__@toStringTag": _propTypes.default.string.isRequired,
129
+ "description": _propTypes.default.string,
130
+ "toString": _propTypes.default.func.isRequired,
131
+ "valueOf": _propTypes.default.func.isRequired
132
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
133
+ "__@toStringTag": _propTypes.default.string.isRequired,
134
+ "description": _propTypes.default.string,
135
+ "toString": _propTypes.default.func.isRequired,
136
+ "valueOf": _propTypes.default.func.isRequired
137
+ }), _propTypes.default.string]),
138
+ "margin": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
139
+ "__@toStringTag": _propTypes.default.string.isRequired,
140
+ "description": _propTypes.default.string,
141
+ "toString": _propTypes.default.func.isRequired,
142
+ "valueOf": _propTypes.default.func.isRequired
143
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
144
+ "__@toStringTag": _propTypes.default.string.isRequired,
145
+ "description": _propTypes.default.string,
146
+ "toString": _propTypes.default.func.isRequired,
147
+ "valueOf": _propTypes.default.func.isRequired
148
+ }), _propTypes.default.string]),
149
+ "marginBottom": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
150
+ "__@toStringTag": _propTypes.default.string.isRequired,
151
+ "description": _propTypes.default.string,
152
+ "toString": _propTypes.default.func.isRequired,
153
+ "valueOf": _propTypes.default.func.isRequired
154
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
155
+ "__@toStringTag": _propTypes.default.string.isRequired,
156
+ "description": _propTypes.default.string,
157
+ "toString": _propTypes.default.func.isRequired,
158
+ "valueOf": _propTypes.default.func.isRequired
159
+ }), _propTypes.default.string]),
160
+ "marginLeft": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
161
+ "__@toStringTag": _propTypes.default.string.isRequired,
162
+ "description": _propTypes.default.string,
163
+ "toString": _propTypes.default.func.isRequired,
164
+ "valueOf": _propTypes.default.func.isRequired
165
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
166
+ "__@toStringTag": _propTypes.default.string.isRequired,
167
+ "description": _propTypes.default.string,
168
+ "toString": _propTypes.default.func.isRequired,
169
+ "valueOf": _propTypes.default.func.isRequired
170
+ }), _propTypes.default.string]),
171
+ "marginRight": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
172
+ "__@toStringTag": _propTypes.default.string.isRequired,
173
+ "description": _propTypes.default.string,
174
+ "toString": _propTypes.default.func.isRequired,
175
+ "valueOf": _propTypes.default.func.isRequired
176
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
177
+ "__@toStringTag": _propTypes.default.string.isRequired,
178
+ "description": _propTypes.default.string,
179
+ "toString": _propTypes.default.func.isRequired,
180
+ "valueOf": _propTypes.default.func.isRequired
181
+ }), _propTypes.default.string]),
182
+ "marginTop": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
183
+ "__@toStringTag": _propTypes.default.string.isRequired,
184
+ "description": _propTypes.default.string,
185
+ "toString": _propTypes.default.func.isRequired,
186
+ "valueOf": _propTypes.default.func.isRequired
187
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
188
+ "__@toStringTag": _propTypes.default.string.isRequired,
189
+ "description": _propTypes.default.string,
190
+ "toString": _propTypes.default.func.isRequired,
191
+ "valueOf": _propTypes.default.func.isRequired
192
+ }), _propTypes.default.string]),
193
+ "marginX": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
194
+ "__@toStringTag": _propTypes.default.string.isRequired,
195
+ "description": _propTypes.default.string,
196
+ "toString": _propTypes.default.func.isRequired,
197
+ "valueOf": _propTypes.default.func.isRequired
198
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
199
+ "__@toStringTag": _propTypes.default.string.isRequired,
200
+ "description": _propTypes.default.string,
201
+ "toString": _propTypes.default.func.isRequired,
202
+ "valueOf": _propTypes.default.func.isRequired
203
+ }), _propTypes.default.string]),
204
+ "marginY": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
205
+ "__@toStringTag": _propTypes.default.string.isRequired,
206
+ "description": _propTypes.default.string,
207
+ "toString": _propTypes.default.func.isRequired,
208
+ "valueOf": _propTypes.default.func.isRequired
209
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
210
+ "__@toStringTag": _propTypes.default.string.isRequired,
211
+ "description": _propTypes.default.string,
212
+ "toString": _propTypes.default.func.isRequired,
213
+ "valueOf": _propTypes.default.func.isRequired
214
+ }), _propTypes.default.string]),
215
+ "mb": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
216
+ "__@toStringTag": _propTypes.default.string.isRequired,
217
+ "description": _propTypes.default.string,
218
+ "toString": _propTypes.default.func.isRequired,
219
+ "valueOf": _propTypes.default.func.isRequired
220
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
221
+ "__@toStringTag": _propTypes.default.string.isRequired,
222
+ "description": _propTypes.default.string,
223
+ "toString": _propTypes.default.func.isRequired,
224
+ "valueOf": _propTypes.default.func.isRequired
225
+ }), _propTypes.default.string]),
226
+ "ml": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
227
+ "__@toStringTag": _propTypes.default.string.isRequired,
228
+ "description": _propTypes.default.string,
229
+ "toString": _propTypes.default.func.isRequired,
230
+ "valueOf": _propTypes.default.func.isRequired
231
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
232
+ "__@toStringTag": _propTypes.default.string.isRequired,
233
+ "description": _propTypes.default.string,
234
+ "toString": _propTypes.default.func.isRequired,
235
+ "valueOf": _propTypes.default.func.isRequired
236
+ }), _propTypes.default.string]),
237
+ "mr": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
238
+ "__@toStringTag": _propTypes.default.string.isRequired,
239
+ "description": _propTypes.default.string,
240
+ "toString": _propTypes.default.func.isRequired,
241
+ "valueOf": _propTypes.default.func.isRequired
242
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
243
+ "__@toStringTag": _propTypes.default.string.isRequired,
244
+ "description": _propTypes.default.string,
245
+ "toString": _propTypes.default.func.isRequired,
246
+ "valueOf": _propTypes.default.func.isRequired
247
+ }), _propTypes.default.string]),
248
+ "mt": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
249
+ "__@toStringTag": _propTypes.default.string.isRequired,
250
+ "description": _propTypes.default.string,
251
+ "toString": _propTypes.default.func.isRequired,
252
+ "valueOf": _propTypes.default.func.isRequired
253
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
254
+ "__@toStringTag": _propTypes.default.string.isRequired,
255
+ "description": _propTypes.default.string,
256
+ "toString": _propTypes.default.func.isRequired,
257
+ "valueOf": _propTypes.default.func.isRequired
258
+ }), _propTypes.default.string]),
259
+ "mx": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
260
+ "__@toStringTag": _propTypes.default.string.isRequired,
261
+ "description": _propTypes.default.string,
262
+ "toString": _propTypes.default.func.isRequired,
263
+ "valueOf": _propTypes.default.func.isRequired
264
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
265
+ "__@toStringTag": _propTypes.default.string.isRequired,
266
+ "description": _propTypes.default.string,
267
+ "toString": _propTypes.default.func.isRequired,
268
+ "valueOf": _propTypes.default.func.isRequired
269
+ }), _propTypes.default.string]),
270
+ "my": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
271
+ "__@toStringTag": _propTypes.default.string.isRequired,
272
+ "description": _propTypes.default.string,
273
+ "toString": _propTypes.default.func.isRequired,
274
+ "valueOf": _propTypes.default.func.isRequired
275
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
276
+ "__@toStringTag": _propTypes.default.string.isRequired,
277
+ "description": _propTypes.default.string,
278
+ "toString": _propTypes.default.func.isRequired,
279
+ "valueOf": _propTypes.default.func.isRequired
280
+ }), _propTypes.default.string]),
281
+ "tabIndex": _propTypes.default.number,
282
+ "tooltipBgColor": _propTypes.default.string,
283
+ "tooltipFlipOverrides": _propTypes.default.arrayOf(_propTypes.default.oneOf(["bottom", "left", "right", "top"])),
284
+ "tooltipFontColor": _propTypes.default.string,
285
+ "tooltipId": _propTypes.default.string,
286
+ "tooltipPosition": _propTypes.default.oneOf(["bottom", "left", "right", "top"]),
287
+ "type": _propTypes.default.oneOf(["add", "admin", "alert", "analysis", "arrow_down", "arrow_left_boxed", "arrow_left_right_small", "arrow_left_small", "arrow_left", "arrow_right_small", "arrow_right", "arrow_up", "arrow", "attach", "bank", "basket_with_squares", "basket", "bin", "block_arrow_right", "blocked_square", "blocked", "bold", "boxed_shapes", "bulk_destroy", "bullet_list_dotted", "bullet_list_numbers", "bullet_list", "business", "calendar_today", "calendar", "call", "camera", "card_view", "caret_down", "caret_large_down", "caret_large_left", "caret_large_right", "caret_large_up", "caret_left", "caret_right", "caret_up", "cart", "chart_bar", "chart_line", "chart_pie", "chat_notes", "chat", "chevron_down_thick", "chevron_down", "chevron_left_thick", "chevron_left", "chevron_right_thick", "chevron_right", "chevron_up_thick", "chevron_up", "circle_with_dots", "circles_connection", "clock", "close", "coins", "collaborate", "computer_clock", "connect", "contacts", "copy", "create", "credit_card_slash", "credit_card", "cross_circle", "cross", "csv", "delete", "delivery", "disconnect", "disputed", "document_right_align", "document_tick", "document_vertical_lines", "download", "draft", "drag_vertical", "drag", "dropdown", "duplicate", "edit", "edited", "ellipsis_horizontal", "ellipsis_vertical", "email_switch", "email", "entry", "envelope_dollar", "envelope_euro", "error_square", "error", "euro", "expand", "factory", "favourite_lined", "favourite", "fax", "feedback", "file_excel", "file_generic", "file_image", "file_pdf", "file_word", "files_leaning", "filter_new", "filter", "fit_height", "fit_width", "flag", "folder", "gift", "go", "graph", "grid", "help", "hide", "home", "image", "in_progress", "in_transit", "individual", "info", "italic", "key", "ledger_arrow_left", "ledger_arrow_right", "ledger", "lightbulb_off", "lightbulb_on", "link", "list_view", "location", "locked", "logout", "lookup", "marker", "message", "minus_large", "minus", "mobile", "money_bag", "none", "old_warning", "pause_circle", "pause", "pdf", "people_switch", "people", "person_info", "person_tick", "person", "phone", "piggy_bank", "play_circle", "play", "plus_large", "plus", "pound", "print", "progress", "progressed", "question_hollow", "question_mark", "question", "refresh_clock", "refresh", "remove", "sage_coin", "save", "scan", "search", "services", "settings_old", "settings", "share", "shop", "sort_down", "sort_up", "spanner", "split_container", "split", "square_dot", "squares_nine", "stacked_boxes", "stacked_squares", "submitted", "sync", "tag", "talk", "three_boxes", "tick_circle", "tick", "true_tick", "undo", "unlocked", "upload", "uploaded", "video", "view", "warning"])
182
288
  };
289
+ Help.displayName = "Help";
183
290
  var _default = Help;
184
291
  exports.default = _default;
@@ -0,0 +1 @@
1
+ export declare const HELP_POSITIONS: string[];
@@ -1,2 +1,5 @@
1
+ interface StyledHelpProps {
2
+ href?: string;
3
+ }
4
+ declare const StyledHelp: import("styled-components").StyledComponent<"div", any, StyledHelpProps, never>;
1
5
  export default StyledHelp;
2
- declare const StyledHelp: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1 +1,2 @@
1
- export { default } from "./help";
1
+ export { default } from "./help.component";
2
+ export type { HelpProps } from "./help.component";
@@ -1,27 +1,23 @@
1
1
  import React from "react";
2
+ import { StyledContentContainerProps, StyledInlineInputsProps } from "./inline-inputs.style";
2
3
  interface InlineInputsContextProps {
3
4
  ariaLabelledBy?: string;
4
5
  }
5
- declare type GutterOptions = "none" | "extra-small" | "small" | "medium-small" | "medium" | "medium-large" | "large" | "extra-large";
6
- export interface InlineInputsProps {
6
+ export interface InlineInputsProps extends StyledContentContainerProps, StyledInlineInputsProps {
7
+ /** Breakpoint for adaptive label (inline label change to top aligned). Enables the adaptive behaviour when set */
8
+ adaptiveLabelBreakpoint?: number;
7
9
  /** Children elements */
8
10
  children?: React.ReactNode;
9
11
  /** [Legacy prop] A custom class name for the component. */
10
12
  className?: string;
11
- /** Gutter prop gets passed down to Row component if false gutter value is "none" */
12
- gutter?: GutterOptions;
13
13
  /** The id of the corresponding input control for the label */
14
14
  htmlFor?: string;
15
- /** Width of the inline inputs container in percentage */
16
- inputWidth?: number;
17
15
  /** Defines the label text for the heading. */
18
16
  label?: string;
19
- /** Width of a label in percentage */
20
- labelWidth?: number;
21
17
  }
22
18
  export declare const InlineInputsContext: React.Context<InlineInputsContextProps>;
23
19
  declare const InlineInputs: {
24
- ({ label, htmlFor, children, className, gutter, inputWidth, labelWidth, }: InlineInputsProps): JSX.Element;
20
+ ({ adaptiveLabelBreakpoint, label, htmlFor, children, className, gutter, inputWidth, labelInline, labelWidth, }: InlineInputsProps): JSX.Element;
25
21
  displayName: string;
26
22
  };
27
23
  export default InlineInputs;
@@ -15,6 +15,8 @@ var _inlineInputs = _interopRequireWildcard(require("./inline-inputs.style"));
15
15
 
16
16
  var _guid = _interopRequireDefault(require("../../__internal__/utils/helpers/guid"));
17
17
 
18
+ var _useIsAboveBreakpoint = _interopRequireDefault(require("../../hooks/__internal__/useIsAboveBreakpoint"));
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
20
22
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -39,21 +41,29 @@ const columnWrapper = (children, gutter, labelId) => {
39
41
  };
40
42
 
41
43
  const InlineInputs = ({
44
+ adaptiveLabelBreakpoint,
42
45
  label,
43
46
  htmlFor,
44
47
  children = null,
45
48
  className = "",
46
49
  gutter = "none",
47
50
  inputWidth,
51
+ labelInline = true,
48
52
  labelWidth
49
53
  }) => {
50
54
  const labelId = (0, _react.useRef)((0, _guid.default)());
55
+ const largeScreen = (0, _useIsAboveBreakpoint.default)(adaptiveLabelBreakpoint);
56
+ let inlineLabel = labelInline;
57
+
58
+ if (adaptiveLabelBreakpoint) {
59
+ inlineLabel = largeScreen;
60
+ }
51
61
 
52
62
  function renderLabel() {
53
63
  if (!label) return null;
54
64
  return /*#__PURE__*/_react.default.createElement(_label.default, {
55
65
  labelId: labelId.current,
56
- inline: true,
66
+ inline: inlineLabel,
57
67
  htmlFor: htmlFor
58
68
  }, label);
59
69
  }
@@ -62,7 +72,8 @@ const InlineInputs = ({
62
72
  gutter: gutter,
63
73
  "data-component": "inline-inputs",
64
74
  className: className,
65
- labelWidth: labelWidth
75
+ labelWidth: labelWidth,
76
+ labelInline: inlineLabel
66
77
  }, renderLabel(), /*#__PURE__*/_react.default.createElement(_inlineInputs.StyledContentContainer, {
67
78
  gutter: gutter,
68
79
  "data-element": "inline-inputs-container",
@@ -71,12 +82,14 @@ const InlineInputs = ({
71
82
  };
72
83
 
73
84
  InlineInputs.propTypes = {
85
+ "adaptiveLabelBreakpoint": _propTypes.default.number,
74
86
  "children": _propTypes.default.node,
75
87
  "className": _propTypes.default.string,
76
88
  "gutter": _propTypes.default.oneOf(["extra-large", "extra-small", "large", "medium-large", "medium-small", "medium", "none", "small"]),
77
89
  "htmlFor": _propTypes.default.string,
78
90
  "inputWidth": _propTypes.default.number,
79
91
  "label": _propTypes.default.string,
92
+ "labelInline": _propTypes.default.bool,
80
93
  "labelWidth": _propTypes.default.number
81
94
  };
82
95
  InlineInputs.displayName = "InlineInputs";
@@ -1,6 +1,21 @@
1
1
  import { InlineInputsProps } from "./inline-inputs.component";
2
- declare const StyledInlineInput: import("styled-components").StyledComponent<"div", any, Pick<InlineInputsProps, "gutter">, never>;
3
- declare const StyledContentContainer: import("styled-components").StyledComponent<"div", any, Pick<InlineInputsProps, "inputWidth" | "gutter">, never>;
4
- declare const StyledInlineInputs: import("styled-components").StyledComponent<"div", any, Pick<InlineInputsProps, "gutter" | "labelWidth">, never>;
2
+ declare type GutterOptions = "none" | "extra-small" | "small" | "medium-small" | "medium" | "medium-large" | "large" | "extra-large";
3
+ interface StyledInlineInputProps {
4
+ /** Gutter prop gets passed down to Row component if false gutter value is "none" */
5
+ gutter?: GutterOptions;
6
+ }
7
+ export interface StyledContentContainerProps extends StyledInlineInputProps {
8
+ /** Width of the inline inputs container in percentage */
9
+ inputWidth?: number;
10
+ }
11
+ export interface StyledInlineInputsProps extends StyledInlineInputProps {
12
+ /** Width of a label in percentage */
13
+ labelWidth?: number;
14
+ /** @ignore @private */
15
+ labelInline?: boolean;
16
+ }
17
+ declare const StyledInlineInput: import("styled-components").StyledComponent<"div", any, InlineInputsProps, never>;
18
+ declare const StyledContentContainer: import("styled-components").StyledComponent<"div", any, InlineInputsProps, never>;
19
+ declare const StyledInlineInputs: import("styled-components").StyledComponent<"div", any, InlineInputsProps, never>;
5
20
  export { StyledContentContainer, StyledInlineInput };
6
21
  export default StyledInlineInputs;
@@ -61,12 +61,16 @@ const StyledContentContainer = _styledComponents.default.div`
61
61
  `;
62
62
  exports.StyledContentContainer = StyledContentContainer;
63
63
  const StyledInlineInputs = _styledComponents.default.div`
64
- display: flex;
64
+ display: ${({
65
+ labelInline
66
+ }) => labelInline ? `flex` : `block`};
65
67
  align-items: center;
66
68
 
67
69
  ${_label.StyledLabelContainer} {
68
70
  width: auto;
69
- margin-bottom: 0;
71
+ margin-bottom: ${({
72
+ labelInline
73
+ }) => labelInline ? `0px` : `8px`};
70
74
  padding-right: 16px;
71
75
  flex: 0 0 ${({
72
76
  labelWidth
@@ -27,7 +27,7 @@ var _scrollableBlock = _interopRequireDefault(require("../../scrollable-block"))
27
27
 
28
28
  var _submenu2 = _interopRequireDefault(require("./submenu.context"));
29
29
 
30
- var _clickAwayWrapper = _interopRequireDefault(require("../../../../__internal__/click-away-wrapper"));
30
+ var _useClickAwayListener = _interopRequireDefault(require("../../../../hooks/__internal__/useClickAwayListener"));
31
31
 
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
 
@@ -232,6 +232,7 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
232
232
  } // eslint-disable-next-line react-hooks/exhaustive-deps
233
233
 
234
234
  }, [characterString]);
235
+ (0, _useClickAwayListener.default)([submenuRef], handleClickAway);
235
236
 
236
237
  if (inFullscreenView) {
237
238
  return /*#__PURE__*/_react.default.createElement(_submenu.StyledSubmenuWrapper, {
@@ -265,10 +266,7 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
265
266
  }, child))));
266
267
  }
267
268
 
268
- return /*#__PURE__*/_react.default.createElement(_clickAwayWrapper.default, {
269
- handleClickAway: handleClickAway,
270
- targets: [submenuRef]
271
- }, /*#__PURE__*/_react.default.createElement(_submenu.StyledSubmenuWrapper, {
269
+ return /*#__PURE__*/_react.default.createElement(_submenu.StyledSubmenuWrapper, {
272
270
  "data-component": "submenu-wrapper",
273
271
  onMouseOver: !clickToOpen ? () => openSubmenu() : undefined,
274
272
  onMouseLeave: () => closeSubmenu(),
@@ -306,7 +304,7 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
306
304
  updateFocusIndex: setSubmenuFocusIndex,
307
305
  itemIndex: child.type === _menuItem2.default ? index : undefined
308
306
  }
309
- }, child)))));
307
+ }, child))));
310
308
  });
311
309
 
312
310
  Submenu.propTypes = {
@@ -9,6 +9,8 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
+ var _useClickAwayListener = _interopRequireDefault(require("../../hooks/__internal__/useClickAwayListener"));
13
+
12
14
  var _multiActionButton = require("./multi-action-button.style");
13
15
 
14
16
  var _button = _interopRequireWildcard(require("../button"));
@@ -125,31 +127,20 @@ const MultiActionButton = ({
125
127
  (_additionalButtons$cu = additionalButtons.current[nextIndex].current) === null || _additionalButtons$cu === void 0 ? void 0 : _additionalButtons$cu.focus();
126
128
  }
127
129
  }, [buttonChildren, hideButtons]);
128
- const handleClickOutside = (0, _react.useCallback)(({
129
- target
130
- }) => {
131
- var _ref$current, _buttonContainer$curr;
132
-
133
- if (!((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contains(target)) && !((_buttonContainer$curr = buttonContainer.current) !== null && _buttonContainer$curr !== void 0 && _buttonContainer$curr.contains(target))) {
134
- hideButtons();
135
- }
136
- }, [hideButtons]);
137
130
  const addListeners = (0, _react.useCallback)(() => {
138
131
  /* istanbul ignore else */
139
132
  if (!listening.current) {
140
- document.addEventListener("click", handleClickOutside);
141
133
  document.addEventListener("keydown", handleKeyDown);
142
134
  listening.current = true;
143
135
  }
144
- }, [handleKeyDown, handleClickOutside]);
136
+ }, [handleKeyDown]);
145
137
  const removeListeners = (0, _react.useCallback)(() => {
146
138
  /* istanbul ignore else */
147
139
  if (listening.current) {
148
- document.removeEventListener("click", handleClickOutside);
149
140
  document.removeEventListener("keydown", handleKeyDown);
150
141
  listening.current = false;
151
142
  }
152
- }, [handleKeyDown, handleClickOutside]);
143
+ }, [handleKeyDown]);
153
144
  (0, _react.useEffect)(() => {
154
145
  if (showAdditionalButtons) {
155
146
  addListeners();
@@ -220,6 +211,7 @@ const MultiActionButton = ({
220
211
  ref: buttonContainer
221
212
  }, childrenWithProps()));
222
213
 
214
+ (0, _useClickAwayListener.default)([ref], hideButtons);
223
215
  return /*#__PURE__*/_react.default.createElement(_multiActionButton.StyledMultiActionButton, _extends({
224
216
  "aria-haspopup": "true",
225
217
  onMouseLeave: hideButtons,
@@ -36,7 +36,7 @@ export interface PopoverContainerProps extends PaddingProps {
36
36
  /** Sets the popover container dialog header name */
37
37
  title?: string;
38
38
  /** Callback fires when close icon clicked */
39
- onClose?: (ev: React.MouseEvent<HTMLElement>) => void;
39
+ onClose?: (ev: React.MouseEvent<HTMLElement> | Event) => void;
40
40
  /** if `true` the popover-container is open */
41
41
  open?: boolean;
42
42
  /** Callback fires when open component is clicked */