carbon-react 109.7.0 → 110.0.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 (45) hide show
  1. package/esm/__internal__/checkable-input/checkable-input-svg-wrapper.style.d.ts +2 -0
  2. package/esm/__internal__/checkable-input/checkable-input.style.d.ts +2 -0
  3. package/esm/__internal__/checkable-input/hidden-checkable-input.style.d.ts +2 -0
  4. package/esm/components/checkbox/checkbox.style.d.ts +3 -0
  5. package/esm/components/date/date.component.js +17 -15
  6. package/esm/components/dismissible-box/dismissible-box.component.d.ts +1 -1
  7. package/esm/components/dismissible-box/dismissible-box.component.js +1 -0
  8. package/esm/components/fieldset/fieldset.component.d.ts +11 -0
  9. package/esm/components/fieldset/fieldset.component.js +158 -17
  10. package/esm/components/fieldset/fieldset.style.d.ts +8 -0
  11. package/esm/components/fieldset/index.d.ts +2 -1
  12. package/esm/components/grid/grid-container/grid-container.component.js +4 -23
  13. package/esm/components/link/link.component.d.ts +0 -2
  14. package/esm/components/link/link.component.js +0 -4
  15. package/esm/components/menu/__internal__/submenu/submenu.component.js +6 -8
  16. package/esm/components/multi-action-button/multi-action-button.component.js +2 -1
  17. package/esm/components/popover-container/popover-container.component.js +2 -3
  18. package/esm/components/split-button/split-button.component.js +2 -1
  19. package/esm/components/text-editor/__internal__/editor-link/editor-link.component.js +3 -4
  20. package/esm/hooks/__internal__/useClickAwayListener/useClickAwayListener.d.ts +1 -2
  21. package/esm/hooks/__internal__/useClickAwayListener/useClickAwayListener.js +20 -18
  22. package/lib/__internal__/checkable-input/checkable-input-svg-wrapper.style.d.ts +2 -0
  23. package/lib/__internal__/checkable-input/checkable-input.style.d.ts +2 -0
  24. package/lib/__internal__/checkable-input/hidden-checkable-input.style.d.ts +2 -0
  25. package/lib/components/checkbox/checkbox.style.d.ts +3 -0
  26. package/lib/components/date/date.component.js +17 -15
  27. package/lib/components/dismissible-box/dismissible-box.component.d.ts +1 -1
  28. package/lib/components/dismissible-box/dismissible-box.component.js +2 -1
  29. package/lib/components/fieldset/fieldset.component.d.ts +11 -0
  30. package/lib/components/fieldset/fieldset.component.js +158 -19
  31. package/lib/components/fieldset/fieldset.style.d.ts +8 -0
  32. package/lib/components/fieldset/index.d.ts +2 -1
  33. package/lib/components/grid/grid-container/grid-container.component.js +4 -30
  34. package/lib/components/link/link.component.d.ts +0 -2
  35. package/lib/components/link/link.component.js +0 -4
  36. package/lib/components/menu/__internal__/submenu/submenu.component.js +6 -8
  37. package/lib/components/multi-action-button/multi-action-button.component.js +2 -1
  38. package/lib/components/popover-container/popover-container.component.js +2 -3
  39. package/lib/components/split-button/split-button.component.js +2 -1
  40. package/lib/components/text-editor/__internal__/editor-link/editor-link.component.js +3 -4
  41. package/lib/hooks/__internal__/useClickAwayListener/useClickAwayListener.d.ts +1 -2
  42. package/lib/hooks/__internal__/useClickAwayListener/useClickAwayListener.js +20 -18
  43. package/package.json +1 -1
  44. package/esm/components/fieldset/fieldset.d.ts +0 -15
  45. package/lib/components/fieldset/fieldset.d.ts +0 -15
@@ -69,7 +69,6 @@ const DateInput = ({
69
69
  const wrapperRef = (0, _react.useRef)();
70
70
  const parentRef = (0, _react.useRef)();
71
71
  const inputRef = (0, _react.useRef)();
72
- const pickerRef = (0, _react.useRef)();
73
72
  const alreadyFocused = (0, _react.useRef)(false);
74
73
  const isBlurBlocked = (0, _react.useRef)(false);
75
74
  const focusedViaPicker = (0, _react.useRef)(false);
@@ -114,6 +113,19 @@ const DateInput = ({
114
113
  return ev;
115
114
  };
116
115
 
116
+ const handleClickAway = () => {
117
+ if (open) {
118
+ alreadyFocused.current = true;
119
+ inputRef.current.focus();
120
+ isBlurBlocked.current = false;
121
+ inputRef.current.blur();
122
+ setOpen(false);
123
+ alreadyFocused.current = false;
124
+ }
125
+ };
126
+
127
+ const handleClickInside = (0, _useClickAwayListener.default)(handleClickAway, "mousedown");
128
+
117
129
  const handleChange = ev => {
118
130
  isInitialValue.current = false;
119
131
  onChange(buildCustomEvent(ev));
@@ -220,6 +232,8 @@ const DateInput = ({
220
232
  };
221
233
 
222
234
  const handleMouseDown = ev => {
235
+ handleClickInside(ev);
236
+
223
237
  if (disabled || readOnly) {
224
238
  return;
225
239
  }
@@ -241,8 +255,9 @@ const DateInput = ({
241
255
  handleMouseDown(e);
242
256
  };
243
257
 
244
- const handlePickerMouseDown = () => {
258
+ const handlePickerMouseDown = ev => {
245
259
  isBlurBlocked.current = true;
260
+ handleClickInside(ev);
246
261
  };
247
262
 
248
263
  const assignInput = input => {
@@ -292,18 +307,6 @@ const DateInput = ({
292
307
  return value;
293
308
  };
294
309
 
295
- const handleClickAway = () => {
296
- if (open) {
297
- alreadyFocused.current = true;
298
- inputRef.current.focus();
299
- isBlurBlocked.current = false;
300
- inputRef.current.blur();
301
- setOpen(false);
302
- alreadyFocused.current = false;
303
- }
304
- };
305
-
306
- (0, _useClickAwayListener.default)([parentRef, pickerRef], handleClickAway, "mousedown");
307
310
  return /*#__PURE__*/_react.default.createElement(_date.default, _extends({
308
311
  ref: wrapperRef,
309
312
  role: "presentation",
@@ -341,7 +344,6 @@ const DateInput = ({
341
344
  onDayClick: handleDayClick,
342
345
  minDate: minDate,
343
346
  maxDate: maxDate,
344
- ref: pickerRef,
345
347
  pickerMouseDown: handlePickerMouseDown,
346
348
  open: open
347
349
  }));
@@ -13,5 +13,5 @@ export interface DismissibleBoxProps extends SpaceProps, StyledDismissibleBoxPro
13
13
  * Please note this component has a minWidth of 600px */
14
14
  width?: number | string;
15
15
  }
16
- declare const DismissibleBox: ({ children, onClose, ...rest }: DismissibleBoxProps) => JSX.Element;
16
+ export declare const DismissibleBox: ({ children, onClose, ...rest }: DismissibleBoxProps) => JSX.Element;
17
17
  export default DismissibleBox;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.DismissibleBox = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
@@ -37,6 +37,7 @@ const DismissibleBox = ({
37
37
  color: "--colorsActionMinor500"
38
38
  }))));
39
39
 
40
+ exports.DismissibleBox = DismissibleBox;
40
41
  DismissibleBox.propTypes = {
41
42
  "alignContent": _propTypes.default.oneOfType([_propTypes.default.oneOf(["-moz-initial", "baseline", "center", "end", "flex-end", "flex-start", "inherit", "initial", "normal", "revert", "space-around", "space-between", "space-evenly", "start", "stretch", "unset"]), _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(["-moz-initial", "baseline", "center", "end", "flex-end", "flex-start", "inherit", "initial", "normal", "revert", "space-around", "space-between", "space-evenly", "start", "stretch", "unset", null]), _propTypes.default.shape({
42
43
  "__@iterator": _propTypes.default.func.isRequired,
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { MarginProps } from "styled-system";
3
+ import { StyledFieldsetProps } from "./fieldset.style";
4
+ export interface FieldsetProps extends StyledFieldsetProps, MarginProps {
5
+ /** Child elements */
6
+ children?: React.ReactNode;
7
+ /** The text for the fieldsets legend element. */
8
+ legend?: string;
9
+ }
10
+ declare const Fieldset: ({ children, inline, legend, ...rest }: FieldsetProps) => JSX.Element;
11
+ export default Fieldset;
@@ -9,8 +9,6 @@ var _react = _interopRequireDefault(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 _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags/tags"));
15
13
 
16
14
  var _utils = require("../../style/utils");
@@ -23,11 +21,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
23
21
 
24
22
  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); }
25
23
 
26
- const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default.space);
27
-
28
24
  const Fieldset = ({
29
25
  children,
30
- inline,
26
+ inline = false,
31
27
  legend,
32
28
  ...rest
33
29
  }) => {
@@ -54,20 +50,163 @@ const Fieldset = ({
54
50
  };
55
51
 
56
52
  Fieldset.propTypes = {
57
- /** Filtered styled system margin props */
58
- ...marginPropTypes,
59
-
60
- /** Child elements */
61
- children: _propTypes.default.node,
62
-
63
- /** The text for the fieldsets legend element. */
64
- legend: _propTypes.default.string,
65
-
66
- /** When true, legend is placed in line with the children */
67
- inline: _propTypes.default.bool
68
- };
69
- Fieldset.defaultProps = {
70
- inline: false
53
+ "children": _propTypes.default.node,
54
+ "inline": _propTypes.default.bool,
55
+ "legend": _propTypes.default.string,
56
+ "m": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
57
+ "__@toStringTag": _propTypes.default.string.isRequired,
58
+ "description": _propTypes.default.string,
59
+ "toString": _propTypes.default.func.isRequired,
60
+ "valueOf": _propTypes.default.func.isRequired
61
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
62
+ "__@toStringTag": _propTypes.default.string.isRequired,
63
+ "description": _propTypes.default.string,
64
+ "toString": _propTypes.default.func.isRequired,
65
+ "valueOf": _propTypes.default.func.isRequired
66
+ }), _propTypes.default.string]),
67
+ "margin": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
68
+ "__@toStringTag": _propTypes.default.string.isRequired,
69
+ "description": _propTypes.default.string,
70
+ "toString": _propTypes.default.func.isRequired,
71
+ "valueOf": _propTypes.default.func.isRequired
72
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
73
+ "__@toStringTag": _propTypes.default.string.isRequired,
74
+ "description": _propTypes.default.string,
75
+ "toString": _propTypes.default.func.isRequired,
76
+ "valueOf": _propTypes.default.func.isRequired
77
+ }), _propTypes.default.string]),
78
+ "marginBottom": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
79
+ "__@toStringTag": _propTypes.default.string.isRequired,
80
+ "description": _propTypes.default.string,
81
+ "toString": _propTypes.default.func.isRequired,
82
+ "valueOf": _propTypes.default.func.isRequired
83
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
84
+ "__@toStringTag": _propTypes.default.string.isRequired,
85
+ "description": _propTypes.default.string,
86
+ "toString": _propTypes.default.func.isRequired,
87
+ "valueOf": _propTypes.default.func.isRequired
88
+ }), _propTypes.default.string]),
89
+ "marginLeft": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
90
+ "__@toStringTag": _propTypes.default.string.isRequired,
91
+ "description": _propTypes.default.string,
92
+ "toString": _propTypes.default.func.isRequired,
93
+ "valueOf": _propTypes.default.func.isRequired
94
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
95
+ "__@toStringTag": _propTypes.default.string.isRequired,
96
+ "description": _propTypes.default.string,
97
+ "toString": _propTypes.default.func.isRequired,
98
+ "valueOf": _propTypes.default.func.isRequired
99
+ }), _propTypes.default.string]),
100
+ "marginRight": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
101
+ "__@toStringTag": _propTypes.default.string.isRequired,
102
+ "description": _propTypes.default.string,
103
+ "toString": _propTypes.default.func.isRequired,
104
+ "valueOf": _propTypes.default.func.isRequired
105
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
106
+ "__@toStringTag": _propTypes.default.string.isRequired,
107
+ "description": _propTypes.default.string,
108
+ "toString": _propTypes.default.func.isRequired,
109
+ "valueOf": _propTypes.default.func.isRequired
110
+ }), _propTypes.default.string]),
111
+ "marginTop": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
112
+ "__@toStringTag": _propTypes.default.string.isRequired,
113
+ "description": _propTypes.default.string,
114
+ "toString": _propTypes.default.func.isRequired,
115
+ "valueOf": _propTypes.default.func.isRequired
116
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
117
+ "__@toStringTag": _propTypes.default.string.isRequired,
118
+ "description": _propTypes.default.string,
119
+ "toString": _propTypes.default.func.isRequired,
120
+ "valueOf": _propTypes.default.func.isRequired
121
+ }), _propTypes.default.string]),
122
+ "marginX": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
123
+ "__@toStringTag": _propTypes.default.string.isRequired,
124
+ "description": _propTypes.default.string,
125
+ "toString": _propTypes.default.func.isRequired,
126
+ "valueOf": _propTypes.default.func.isRequired
127
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
133
+ "marginY": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
134
+ "__@toStringTag": _propTypes.default.string.isRequired,
135
+ "description": _propTypes.default.string,
136
+ "toString": _propTypes.default.func.isRequired,
137
+ "valueOf": _propTypes.default.func.isRequired
138
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
144
+ "mb": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
145
+ "__@toStringTag": _propTypes.default.string.isRequired,
146
+ "description": _propTypes.default.string,
147
+ "toString": _propTypes.default.func.isRequired,
148
+ "valueOf": _propTypes.default.func.isRequired
149
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
155
+ "ml": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
156
+ "__@toStringTag": _propTypes.default.string.isRequired,
157
+ "description": _propTypes.default.string,
158
+ "toString": _propTypes.default.func.isRequired,
159
+ "valueOf": _propTypes.default.func.isRequired
160
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
166
+ "mr": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
167
+ "__@toStringTag": _propTypes.default.string.isRequired,
168
+ "description": _propTypes.default.string,
169
+ "toString": _propTypes.default.func.isRequired,
170
+ "valueOf": _propTypes.default.func.isRequired
171
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
177
+ "mt": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
178
+ "__@toStringTag": _propTypes.default.string.isRequired,
179
+ "description": _propTypes.default.string,
180
+ "toString": _propTypes.default.func.isRequired,
181
+ "valueOf": _propTypes.default.func.isRequired
182
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
188
+ "mx": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
189
+ "__@toStringTag": _propTypes.default.string.isRequired,
190
+ "description": _propTypes.default.string,
191
+ "toString": _propTypes.default.func.isRequired,
192
+ "valueOf": _propTypes.default.func.isRequired
193
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
199
+ "my": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
200
+ "__@toStringTag": _propTypes.default.string.isRequired,
201
+ "description": _propTypes.default.string,
202
+ "toString": _propTypes.default.func.isRequired,
203
+ "valueOf": _propTypes.default.func.isRequired
204
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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])
71
210
  };
72
211
  var _default = Fieldset;
73
212
  exports.default = _default;
@@ -0,0 +1,8 @@
1
+ export interface StyledFieldsetProps {
2
+ /** When true, legend is placed in line with the children */
3
+ inline?: boolean;
4
+ }
5
+ declare const FieldsetStyle: import("styled-components").StyledComponent<"fieldset", any, {}, never>;
6
+ declare const LegendContainerStyle: import("styled-components").StyledComponent<"div", any, StyledFieldsetProps, never>;
7
+ declare const FieldsetContentStyle: import("styled-components").StyledComponent<"div", any, StyledFieldsetProps, never>;
8
+ export { FieldsetStyle, LegendContainerStyle, FieldsetContentStyle };
@@ -1 +1,2 @@
1
- export { default } from "./fieldset";
1
+ export { default } from "./fieldset.component";
2
+ export type { FieldsetProps } from "./fieldset.component";
@@ -5,45 +5,19 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.GridContainer = void 0;
7
7
 
8
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
- var _invariant = _interopRequireDefault(require("invariant"));
13
-
14
12
  var _gridContainer = _interopRequireDefault(require("./grid-container.style"));
15
13
 
16
- var _gridItem = _interopRequireDefault(require("../grid-item"));
17
-
18
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
15
 
20
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
21
-
22
- 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; }
23
-
24
16
  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); }
25
17
 
26
- const GridContainer = props => {
27
- const {
28
- children,
29
- ...rest
30
- } = props;
31
- const hasProperChildren = (0, _react.useMemo)(() => {
32
- const incorrectChild = _react.default.Children.toArray(children).find(child => {
33
- if (! /*#__PURE__*/_react.default.isValidElement(child)) {
34
- return true;
35
- }
36
-
37
- return child.type.displayName !== _gridItem.default.displayName;
38
- });
39
-
40
- return !incorrectChild;
41
- }, [children]);
42
- !hasProperChildren ? process.env.NODE_ENV !== "production" ? (0, _invariant.default)(false, `GridContainer only accepts children of type ${_gridItem.default.displayName}.`) : (0, _invariant.default)(false) : void 0;
43
- return /*#__PURE__*/_react.default.createElement(_gridContainer.default, _extends({
44
- "data-component": "grid"
45
- }, rest), children);
46
- };
18
+ const GridContainer = props => /*#__PURE__*/_react.default.createElement(_gridContainer.default, _extends({
19
+ "data-component": "grid"
20
+ }, props));
47
21
 
48
22
  exports.GridContainer = GridContainer;
49
23
  GridContainer.propTypes = {
@@ -15,8 +15,6 @@ export interface LinkProps extends React.AriaAttributes {
15
15
  onKeyDown?: (ev: React.KeyboardEvent<HTMLAnchorElement> | React.KeyboardEvent<HTMLButtonElement>) => void;
16
16
  /** Function called when a mouse down event triggers. */
17
17
  onMouseDown?: (ev: React.MouseEvent<HTMLAnchorElement> | React.MouseEvent<HTMLButtonElement>) => void;
18
- /** Whether to include the link in the tab order of the page */
19
- tabbable?: boolean;
20
18
  /** A message to display as a tooltip to the link. */
21
19
  tooltipMessage?: string;
22
20
  /** Positions the tooltip with the link. */
@@ -42,12 +42,10 @@ const Link = /*#__PURE__*/_react.default.forwardRef(({
42
42
  rel,
43
43
  tooltipMessage,
44
44
  tooltipPosition,
45
- tabbable = true,
46
45
  target,
47
46
  ...rest
48
47
  }, ref) => {
49
48
  const l = (0, _useLocale.default)();
50
- const tabIndex = tabbable && !disabled ? "0" : "-1";
51
49
 
52
50
  const handleOnKeyDown = ev => {
53
51
  if (onKeyDown) {
@@ -90,7 +88,6 @@ const Link = /*#__PURE__*/_react.default.forwardRef(({
90
88
  onMouseDown,
91
89
  onClick,
92
90
  disabled,
93
- tabIndex,
94
91
  target,
95
92
  ref,
96
93
  href,
@@ -182,7 +179,6 @@ Link.propTypes = {
182
179
  "onKeyDown": _propTypes.default.func,
183
180
  "onMouseDown": _propTypes.default.func,
184
181
  "rel": _propTypes.default.string,
185
- "tabbable": _propTypes.default.bool,
186
182
  "target": _propTypes.default.string,
187
183
  "tooltipMessage": _propTypes.default.string,
188
184
  "tooltipPosition": _propTypes.default.oneOf(["bottom", "left", "right", "top"])
@@ -63,7 +63,6 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
63
63
  const [submenuOpen, setSubmenuOpen] = (0, _react.useState)(false);
64
64
  const [submenuFocusIndex, setSubmenuFocusIndex] = (0, _react.useState)(undefined);
65
65
  const [characterString, setCharacterString] = (0, _react.useState)("");
66
- const submenuRef = (0, _react.useRef)();
67
66
 
68
67
  const formattedChildren = _react.default.Children.map(children, child => {
69
68
  if (child.type === _scrollableBlock.default) {
@@ -232,24 +231,23 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
232
231
  } // eslint-disable-next-line react-hooks/exhaustive-deps
233
232
 
234
233
  }, [characterString]);
235
- (0, _useClickAwayListener.default)([submenuRef], handleClickAway);
234
+ const handleClickInside = (0, _useClickAwayListener.default)(handleClickAway);
236
235
 
237
236
  if (inFullscreenView) {
238
237
  return /*#__PURE__*/_react.default.createElement(_submenu.StyledSubmenuWrapper, {
239
238
  "data-component": "submenu-wrapper",
240
- ref: submenuRef,
241
239
  inFullscreenView: inFullscreenView,
242
240
  menuType: menuContext.menuType,
243
- asPassiveItem: asPassiveItem
241
+ asPassiveItem: asPassiveItem,
242
+ onClick: handleClickInside
244
243
  }, /*#__PURE__*/_react.default.createElement(_menuItem.default, _extends({}, rest, {
245
244
  onClick: onClick,
246
245
  className: className,
247
246
  menuType: menuContext.menuType,
248
247
  ref: ref,
249
248
  as: asPassiveItem ? "div" : _link.default,
250
- href: !asPassiveItem ? href : undefined,
249
+ href: href,
251
250
  icon: icon,
252
- tabIndex: asPassiveItem ? -1 : 0,
253
251
  variant: variant,
254
252
  inFullscreenView: inFullscreenView
255
253
  }), title), /*#__PURE__*/_react.default.createElement(_submenu.StyledSubmenu, {
@@ -271,8 +269,8 @@ const Submenu = /*#__PURE__*/_react.default.forwardRef(({
271
269
  "data-component": "submenu-wrapper",
272
270
  onMouseOver: !clickToOpen ? () => openSubmenu() : undefined,
273
271
  onMouseLeave: () => closeSubmenu(),
274
- ref: submenuRef,
275
- isSubmenuOpen: submenuOpen
272
+ isSubmenuOpen: submenuOpen,
273
+ onClick: handleClickInside
276
274
  }, /*#__PURE__*/_react.default.createElement(_menuItem.default, _extends({}, rest, {
277
275
  className: className,
278
276
  menuType: menuContext.menuType,
@@ -136,10 +136,11 @@ const MultiActionButton = ({
136
136
  onKeyDown: handleKeyDown
137
137
  }, childrenWithProps()));
138
138
 
139
- (0, _useClickAwayListener.default)([ref], hideButtons);
139
+ const handleClick = (0, _useClickAwayListener.default)(hideButtons);
140
140
  return /*#__PURE__*/_react.default.createElement(_multiActionButton.StyledMultiActionButton, _extends({
141
141
  "aria-haspopup": "true",
142
142
  onMouseLeave: hideButtons,
143
+ onClick: handleClick,
143
144
  ref: ref,
144
145
  "data-component": "multi-action-button",
145
146
  "data-element": dataElement,
@@ -113,7 +113,6 @@ const PopoverContainer = ({
113
113
  }) => {
114
114
  const isControlled = open !== undefined;
115
115
  const [isOpenInternal, setIsOpenInternal] = (0, _react.useState)(false);
116
- const ref = (0, _react.useRef)(null);
117
116
  const closeButtonRef = (0, _react.useRef)(null);
118
117
  const openButtonRef = (0, _react.useRef)(null);
119
118
  const guid = (0, _react.useRef)((0, _guid.default)());
@@ -164,12 +163,12 @@ const PopoverContainer = ({
164
163
  if (onClose) onClose(e);
165
164
  };
166
165
 
167
- (0, _useClickAwayListener.default)([ref], handleClickAway, "mousedown");
166
+ const handleClick = (0, _useClickAwayListener.default)(handleClickAway, "mousedown");
168
167
  return /*#__PURE__*/_react.default.createElement(_popoverContainer.PopoverContainerWrapperStyle, {
169
168
  "data-component": "popover-container",
170
169
  role: "region",
171
170
  "aria-labelledby": popoverContainerId,
172
- ref: ref
171
+ onMouseDown: handleClick
173
172
  }, renderOpenComponent(renderOpenComponentProps), /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.Transition, {
174
173
  in: isOpen,
175
174
  timeout: {
@@ -201,10 +201,11 @@ const SplitButton = ({
201
201
  }, childrenWithProps()));
202
202
  }
203
203
 
204
- (0, _useClickAwayListener.default)([splitButtonNode], hideButtons);
204
+ const handleClick = (0, _useClickAwayListener.default)(hideButtons);
205
205
  return /*#__PURE__*/_react.default.createElement(_splitButton.default, _extends({
206
206
  "aria-haspopup": "true",
207
207
  onMouseLeave: hideButtons,
208
+ onClick: handleClick,
208
209
  ref: splitButtonNode
209
210
  }, componentTags(), (0, _utils.filterStyledSystemMarginProps)(rest)), renderMainButton(), renderAdditionalButtons());
210
211
  };
@@ -47,12 +47,11 @@ const EditorLink = ({
47
47
 
48
48
  }, [validUrl]);
49
49
  return /*#__PURE__*/_react.default.createElement(_editorLink.default, _extends({
50
- href: validUrl,
50
+ href: !editMode ? validUrl : undefined,
51
51
  title: validUrl,
52
- "aria-label": validUrl,
52
+ "aria-label": !editMode ? validUrl : undefined,
53
53
  target: "_blank",
54
- rel: "noopener noreferrer",
55
- tabbable: !editMode
54
+ rel: "noopener noreferrer"
56
55
  }, rest), children);
57
56
  };
58
57
 
@@ -1,3 +1,2 @@
1
- import React from "react";
2
- declare const _default: (targets: React.RefObject<HTMLElement>[], handleClickAway: (ev: Event) => void, eventTypeId?: "mousedown" | "click") => void;
1
+ declare const _default: (handleClickAway: (ev: Event) => void, eventTypeId?: "mousedown" | "click") => () => void;
3
2
  export default _default;
@@ -7,27 +7,29 @@ exports.default = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
- var _default = (targets, handleClickAway, eventTypeId = "click") => {
11
- const targetsRef = (0, _react.useRef)(targets);
12
- targetsRef.current = targets;
13
- (0, _react.useEffect)(() => {
14
- const fnClickAway = ev => {
15
- const clickedElements = targetsRef.current.filter(targetRef => {
16
- var _targetRef$current;
17
-
18
- return (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.contains(ev === null || ev === void 0 ? void 0 : ev.target);
19
- });
10
+ // Needs to also take Portals into account (so can't just check DOM containment), but ideally without using
11
+ // event.stopPropagation() which could have unexpected and frustrating consequences for consumers.
12
+ // Simple approach taken from https://github.com/facebook/react/issues/10962#issuecomment-444622208
13
+ var _default = (handleClickAway, eventTypeId = "click") => {
14
+ const clickIsInside = (0, _react.useRef)(false);
15
+ const onDocumentClick = (0, _react.useCallback)(ev => {
16
+ if (clickIsInside.current) {
17
+ clickIsInside.current = false;
18
+ return;
19
+ }
20
20
 
21
- if (!(clickedElements !== null && clickedElements !== void 0 && clickedElements.length)) {
22
- handleClickAway(ev);
23
- }
24
- };
25
-
26
- document.addEventListener(eventTypeId, fnClickAway);
21
+ handleClickAway(ev);
22
+ }, [handleClickAway]);
23
+ const onInsideClick = (0, _react.useCallback)(() => {
24
+ clickIsInside.current = true;
25
+ }, []);
26
+ (0, _react.useEffect)(() => {
27
+ document.addEventListener(eventTypeId, onDocumentClick);
27
28
  return function cleanup() {
28
- document.removeEventListener(eventTypeId, fnClickAway);
29
+ document.removeEventListener(eventTypeId, onDocumentClick);
29
30
  };
30
- }, [handleClickAway, eventTypeId]);
31
+ }, [onDocumentClick, eventTypeId]);
32
+ return onInsideClick;
31
33
  };
32
34
 
33
35
  exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "109.7.0",
3
+ "version": "110.0.1",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "engineStrict": true,
6
6
  "engines": {
@@ -1,15 +0,0 @@
1
- import * as React from "react";
2
- import { MarginProps } from "styled-system";
3
-
4
- export interface FieldsetProps extends MarginProps {
5
- /** Child elements */
6
- children?: React.ReactNode;
7
- /** The text for the fieldsets legend element. */
8
- legend?: string;
9
- /** When true, legend is placed in line with the children */
10
- inline?: boolean;
11
- }
12
-
13
- declare function Fieldset(props: FieldsetProps): JSX.Element;
14
-
15
- export default Fieldset;
@@ -1,15 +0,0 @@
1
- import * as React from "react";
2
- import { MarginProps } from "styled-system";
3
-
4
- export interface FieldsetProps extends MarginProps {
5
- /** Child elements */
6
- children?: React.ReactNode;
7
- /** The text for the fieldsets legend element. */
8
- legend?: string;
9
- /** When true, legend is placed in line with the children */
10
- inline?: boolean;
11
- }
12
-
13
- declare function Fieldset(props: FieldsetProps): JSX.Element;
14
-
15
- export default Fieldset;