carbon-react 114.17.5 → 114.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/esm/__internal__/checkable-input/checkable-input.component.js +5 -1
  2. package/esm/__internal__/fieldset/fieldset.component.js +27 -23
  3. package/esm/__internal__/form-field/form-field.component.js +2 -2
  4. package/esm/__internal__/form-spacing-provider/form-spacing-context.d.ts +5 -0
  5. package/esm/__internal__/form-spacing-provider/form-spacing-context.js +2 -0
  6. package/esm/__internal__/form-spacing-provider/form-spacing-provider.component.d.ts +7 -0
  7. package/esm/__internal__/form-spacing-provider/form-spacing-provider.component.js +18 -0
  8. package/esm/__internal__/form-spacing-provider/index.d.ts +3 -0
  9. package/esm/__internal__/form-spacing-provider/index.js +2 -0
  10. package/esm/components/checkbox/checkbox-group.component.js +4 -1
  11. package/esm/components/checkbox/checkbox.component.js +7 -5
  12. package/esm/components/date/date.component.js +5 -2
  13. package/esm/components/date-range/date-range.component.js +8 -2
  14. package/esm/components/fieldset/fieldset.component.js +7 -3
  15. package/esm/components/form/form.component.js +5 -1
  16. package/esm/components/form/form.config.d.ts +10 -0
  17. package/esm/components/form/form.config.js +11 -1
  18. package/esm/components/form/form.style.js +2 -35
  19. package/esm/components/inline-inputs/inline-inputs.component.d.ts +3 -2
  20. package/esm/components/inline-inputs/inline-inputs.component.js +166 -4
  21. package/esm/components/inline-inputs/inline-inputs.style.js +3 -0
  22. package/esm/components/multi-action-button/multi-action-button.component.js +2 -1
  23. package/esm/components/numeral-date/numeral-date.component.js +4 -1
  24. package/esm/components/select/filterable-select/filterable-select.component.js +4 -2
  25. package/esm/components/select/multi-select/multi-select.component.js +4 -2
  26. package/esm/components/select/select-textbox/select-textbox.component.js +4 -1
  27. package/esm/components/select/simple-select/simple-select.component.js +4 -2
  28. package/esm/components/split-button/split-button.component.js +2 -1
  29. package/esm/components/switch/switch.component.js +3 -2
  30. package/esm/components/textarea/textarea.component.js +7 -6
  31. package/esm/hooks/__internal__/useFormSpacing/add-form-spacing/index.d.ts +3 -0
  32. package/esm/hooks/__internal__/useFormSpacing/add-form-spacing/index.js +30 -0
  33. package/esm/hooks/__internal__/useFormSpacing/index.d.ts +3 -0
  34. package/esm/hooks/__internal__/useFormSpacing/index.js +11 -0
  35. package/lib/__internal__/checkable-input/checkable-input.component.js +5 -1
  36. package/lib/__internal__/fieldset/fieldset.component.js +28 -23
  37. package/lib/__internal__/form-field/form-field.component.js +3 -3
  38. package/lib/__internal__/form-spacing-provider/form-spacing-context.d.ts +5 -0
  39. package/lib/__internal__/form-spacing-provider/form-spacing-context.js +14 -0
  40. package/lib/__internal__/form-spacing-provider/form-spacing-provider.component.d.ts +7 -0
  41. package/lib/__internal__/form-spacing-provider/form-spacing-provider.component.js +30 -0
  42. package/lib/__internal__/form-spacing-provider/index.d.ts +3 -0
  43. package/lib/__internal__/form-spacing-provider/index.js +23 -0
  44. package/lib/__internal__/form-spacing-provider/package.json +6 -0
  45. package/lib/components/checkbox/checkbox-group.component.js +5 -1
  46. package/lib/components/checkbox/checkbox.component.js +8 -6
  47. package/lib/components/date/date.component.js +6 -2
  48. package/lib/components/date-range/date-range.component.js +8 -2
  49. package/lib/components/fieldset/fieldset.component.js +9 -4
  50. package/lib/components/form/form.component.js +7 -1
  51. package/lib/components/form/form.config.d.ts +10 -0
  52. package/lib/components/form/form.config.js +13 -2
  53. package/lib/components/form/form.style.js +2 -38
  54. package/lib/components/inline-inputs/inline-inputs.component.d.ts +3 -2
  55. package/lib/components/inline-inputs/inline-inputs.component.js +168 -4
  56. package/lib/components/inline-inputs/inline-inputs.style.js +4 -0
  57. package/lib/components/multi-action-button/multi-action-button.component.js +2 -1
  58. package/lib/components/numeral-date/numeral-date.component.js +5 -1
  59. package/lib/components/select/filterable-select/filterable-select.component.js +4 -1
  60. package/lib/components/select/multi-select/multi-select.component.js +4 -1
  61. package/lib/components/select/select-textbox/select-textbox.component.js +4 -1
  62. package/lib/components/select/simple-select/simple-select.component.js +4 -1
  63. package/lib/components/split-button/split-button.component.js +2 -1
  64. package/lib/components/switch/switch.component.js +4 -3
  65. package/lib/components/textarea/textarea.component.js +7 -6
  66. package/lib/hooks/__internal__/useFormSpacing/add-form-spacing/index.d.ts +3 -0
  67. package/lib/hooks/__internal__/useFormSpacing/add-form-spacing/index.js +39 -0
  68. package/lib/hooks/__internal__/useFormSpacing/add-form-spacing/package.json +6 -0
  69. package/lib/hooks/__internal__/useFormSpacing/index.d.ts +3 -0
  70. package/lib/hooks/__internal__/useFormSpacing/index.js +26 -0
  71. package/lib/hooks/__internal__/useFormSpacing/package.json +6 -0
  72. package/package.json +2 -2
@@ -13,16 +13,22 @@ var _label = _interopRequireDefault(require("../../__internal__/label"));
13
13
 
14
14
  var _inlineInputs = _interopRequireWildcard(require("./inline-inputs.style"));
15
15
 
16
+ var _formSpacingProvider = _interopRequireDefault(require("../../__internal__/form-spacing-provider"));
17
+
16
18
  var _guid = _interopRequireDefault(require("../../__internal__/utils/helpers/guid"));
17
19
 
18
20
  var _useIsAboveBreakpoint = _interopRequireDefault(require("../../hooks/__internal__/useIsAboveBreakpoint"));
19
21
 
22
+ var _useFormSpacing = _interopRequireDefault(require("../../hooks/__internal__/useFormSpacing"));
23
+
20
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
25
 
22
26
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
23
27
 
24
28
  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; }
25
29
 
30
+ 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); }
31
+
26
32
  const InlineInputsContext = /*#__PURE__*/_react.default.createContext({});
27
33
 
28
34
  exports.InlineInputsContext = InlineInputsContext;
@@ -50,7 +56,8 @@ const InlineInputs = ({
50
56
  inputWidth,
51
57
  labelInline = true,
52
58
  labelWidth,
53
- required
59
+ required,
60
+ ...rest
54
61
  }) => {
55
62
  const labelId = (0, _react.useRef)((0, _guid.default)());
56
63
  const largeScreen = (0, _useIsAboveBreakpoint.default)(adaptiveLabelBreakpoint);
@@ -70,17 +77,20 @@ const InlineInputs = ({
70
77
  }, label);
71
78
  }
72
79
 
73
- return /*#__PURE__*/_react.default.createElement(_inlineInputs.default, {
80
+ const marginProps = (0, _useFormSpacing.default)(rest);
81
+ return /*#__PURE__*/_react.default.createElement(_inlineInputs.default, _extends({
74
82
  gutter: gutter,
75
83
  "data-component": "inline-inputs",
76
84
  className: className,
77
85
  labelWidth: labelWidth,
78
86
  labelInline: inlineLabel
79
- }, renderLabel(), /*#__PURE__*/_react.default.createElement(_inlineInputs.StyledContentContainer, {
87
+ }, marginProps), renderLabel(), /*#__PURE__*/_react.default.createElement(_inlineInputs.StyledContentContainer, {
80
88
  gutter: gutter,
81
89
  "data-element": "inline-inputs-container",
82
90
  inputWidth: inputWidth
83
- }, columnWrapper(children, gutter, label ? labelId.current : undefined)));
91
+ }, /*#__PURE__*/_react.default.createElement(_formSpacingProvider.default, {
92
+ marginBottom: undefined
93
+ }, columnWrapper(children, gutter, label ? labelId.current : undefined))));
84
94
  };
85
95
 
86
96
  InlineInputs.propTypes = {
@@ -93,6 +103,160 @@ InlineInputs.propTypes = {
93
103
  "label": _propTypes.default.string,
94
104
  "labelInline": _propTypes.default.bool,
95
105
  "labelWidth": _propTypes.default.number,
106
+ "m": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
107
+ "__@toStringTag": _propTypes.default.string.isRequired,
108
+ "description": _propTypes.default.string,
109
+ "toString": _propTypes.default.func.isRequired,
110
+ "valueOf": _propTypes.default.func.isRequired
111
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
117
+ "margin": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
118
+ "__@toStringTag": _propTypes.default.string.isRequired,
119
+ "description": _propTypes.default.string,
120
+ "toString": _propTypes.default.func.isRequired,
121
+ "valueOf": _propTypes.default.func.isRequired
122
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
128
+ "marginBottom": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
129
+ "__@toStringTag": _propTypes.default.string.isRequired,
130
+ "description": _propTypes.default.string,
131
+ "toString": _propTypes.default.func.isRequired,
132
+ "valueOf": _propTypes.default.func.isRequired
133
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
139
+ "marginLeft": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
140
+ "__@toStringTag": _propTypes.default.string.isRequired,
141
+ "description": _propTypes.default.string,
142
+ "toString": _propTypes.default.func.isRequired,
143
+ "valueOf": _propTypes.default.func.isRequired
144
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
150
+ "marginRight": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
151
+ "__@toStringTag": _propTypes.default.string.isRequired,
152
+ "description": _propTypes.default.string,
153
+ "toString": _propTypes.default.func.isRequired,
154
+ "valueOf": _propTypes.default.func.isRequired
155
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
161
+ "marginTop": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
162
+ "__@toStringTag": _propTypes.default.string.isRequired,
163
+ "description": _propTypes.default.string,
164
+ "toString": _propTypes.default.func.isRequired,
165
+ "valueOf": _propTypes.default.func.isRequired
166
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
172
+ "marginX": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
173
+ "__@toStringTag": _propTypes.default.string.isRequired,
174
+ "description": _propTypes.default.string,
175
+ "toString": _propTypes.default.func.isRequired,
176
+ "valueOf": _propTypes.default.func.isRequired
177
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
183
+ "marginY": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
184
+ "__@toStringTag": _propTypes.default.string.isRequired,
185
+ "description": _propTypes.default.string,
186
+ "toString": _propTypes.default.func.isRequired,
187
+ "valueOf": _propTypes.default.func.isRequired
188
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
194
+ "mb": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
195
+ "__@toStringTag": _propTypes.default.string.isRequired,
196
+ "description": _propTypes.default.string,
197
+ "toString": _propTypes.default.func.isRequired,
198
+ "valueOf": _propTypes.default.func.isRequired
199
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _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]),
205
+ "ml": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
206
+ "__@toStringTag": _propTypes.default.string.isRequired,
207
+ "description": _propTypes.default.string,
208
+ "toString": _propTypes.default.func.isRequired,
209
+ "valueOf": _propTypes.default.func.isRequired
210
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
211
+ "__@toStringTag": _propTypes.default.string.isRequired,
212
+ "description": _propTypes.default.string,
213
+ "toString": _propTypes.default.func.isRequired,
214
+ "valueOf": _propTypes.default.func.isRequired
215
+ }), _propTypes.default.string]),
216
+ "mr": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
217
+ "__@toStringTag": _propTypes.default.string.isRequired,
218
+ "description": _propTypes.default.string,
219
+ "toString": _propTypes.default.func.isRequired,
220
+ "valueOf": _propTypes.default.func.isRequired
221
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
222
+ "__@toStringTag": _propTypes.default.string.isRequired,
223
+ "description": _propTypes.default.string,
224
+ "toString": _propTypes.default.func.isRequired,
225
+ "valueOf": _propTypes.default.func.isRequired
226
+ }), _propTypes.default.string]),
227
+ "mt": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
228
+ "__@toStringTag": _propTypes.default.string.isRequired,
229
+ "description": _propTypes.default.string,
230
+ "toString": _propTypes.default.func.isRequired,
231
+ "valueOf": _propTypes.default.func.isRequired
232
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
233
+ "__@toStringTag": _propTypes.default.string.isRequired,
234
+ "description": _propTypes.default.string,
235
+ "toString": _propTypes.default.func.isRequired,
236
+ "valueOf": _propTypes.default.func.isRequired
237
+ }), _propTypes.default.string]),
238
+ "mx": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
239
+ "__@toStringTag": _propTypes.default.string.isRequired,
240
+ "description": _propTypes.default.string,
241
+ "toString": _propTypes.default.func.isRequired,
242
+ "valueOf": _propTypes.default.func.isRequired
243
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
244
+ "__@toStringTag": _propTypes.default.string.isRequired,
245
+ "description": _propTypes.default.string,
246
+ "toString": _propTypes.default.func.isRequired,
247
+ "valueOf": _propTypes.default.func.isRequired
248
+ }), _propTypes.default.string]),
249
+ "my": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
250
+ "__@toStringTag": _propTypes.default.string.isRequired,
251
+ "description": _propTypes.default.string,
252
+ "toString": _propTypes.default.func.isRequired,
253
+ "valueOf": _propTypes.default.func.isRequired
254
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
255
+ "__@toStringTag": _propTypes.default.string.isRequired,
256
+ "description": _propTypes.default.string,
257
+ "toString": _propTypes.default.func.isRequired,
258
+ "valueOf": _propTypes.default.func.isRequired
259
+ }), _propTypes.default.string]),
96
260
  "required": _propTypes.default.bool
97
261
  };
98
262
  InlineInputs.displayName = "InlineInputs";
@@ -7,6 +7,8 @@ exports.default = exports.StyledInlineInput = exports.StyledContentContainer = v
7
7
 
8
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
9
 
10
+ var _styledSystem = require("styled-system");
11
+
10
12
  var _inputPresentation = _interopRequireDefault(require("../../__internal__/input/input-presentation.style"));
11
13
 
12
14
  var _label = require("../../__internal__/label/label.style");
@@ -61,6 +63,8 @@ const StyledContentContainer = _styledComponents.default.div`
61
63
  `;
62
64
  exports.StyledContentContainer = StyledContentContainer;
63
65
  const StyledInlineInputs = _styledComponents.default.div`
66
+ ${_styledSystem.margin}
67
+
64
68
  display: ${({
65
69
  labelInline
66
70
  }) => labelInline ? `flex` : `block`};
@@ -138,6 +138,7 @@ const MultiActionButton = ({
138
138
  if (buttonRef.current === document.activeElement) return;
139
139
  setShowAdditionalButtons(false);
140
140
  }, []);
141
+ const marginProps = (0, _utils.filterStyledSystemMarginProps)(rest);
141
142
  return /*#__PURE__*/_react.default.createElement(_multiActionButton.StyledMultiActionButton, _extends({
142
143
  "aria-haspopup": "true",
143
144
  onMouseLeave: hideButtonsIfTriggerNotFocused,
@@ -148,7 +149,7 @@ const MultiActionButton = ({
148
149
  "data-role": dataRole,
149
150
  displayed: showAdditionalButtons,
150
151
  width: width
151
- }, (0, _utils.filterStyledSystemMarginProps)(rest)), /*#__PURE__*/_react.default.createElement(_button.default, _extends({
152
+ }, marginProps), /*#__PURE__*/_react.default.createElement(_button.default, _extends({
152
153
  "aria-haspopup": "true",
153
154
  "aria-expanded": showAdditionalButtons,
154
155
  "aria-label": "Show more",
@@ -37,6 +37,8 @@ var _carbonProvider = require("../carbon-provider/carbon-provider.component");
37
37
 
38
38
  var _numeralDateContext = _interopRequireDefault(require("./numeral-date-context"));
39
39
 
40
+ var _formSpacingProvider = _interopRequireDefault(require("../../__internal__/form-spacing-provider"));
41
+
40
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
43
 
42
44
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -252,6 +254,8 @@ const NumeralDate = ({
252
254
  isMiddle: isMiddle,
253
255
  isEnd: isEnd,
254
256
  hasValidationIcon: hasValidationIcon
257
+ }, /*#__PURE__*/_react.default.createElement(_formSpacingProvider.default, {
258
+ marginBottom: undefined
255
259
  }, /*#__PURE__*/_react.default.createElement(_textbox.default, _extends({}, index === 0 && {
256
260
  id: uniqueId
257
261
  }, {
@@ -286,7 +290,7 @@ const NumeralDate = ({
286
290
  }, {
287
291
  size: size,
288
292
  tooltipPosition: tooltipPosition
289
- }))));
293
+ })))));
290
294
  })))));
291
295
  };
292
296
 
@@ -31,6 +31,8 @@ var _logger = _interopRequireDefault(require("../../../__internal__/utils/logger
31
31
 
32
32
  var _useStableCallback = _interopRequireDefault(require("../../../hooks/__internal__/useStableCallback"));
33
33
 
34
+ var _useFormSpacing = _interopRequireDefault(require("../../../hooks/__internal__/useFormSpacing"));
35
+
34
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
37
 
36
38
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -466,6 +468,7 @@ const FilterableSelect = /*#__PURE__*/_react.default.forwardRef(({
466
468
  virtualScrollOverscan: virtualScrollOverscan
467
469
  }, children);
468
470
 
471
+ const marginProps = (0, _useFormSpacing.default)(textboxProps);
469
472
  return /*#__PURE__*/_react.default.createElement(_select.default, _extends({
470
473
  hasTextCursor: true,
471
474
  readOnly: readOnly,
@@ -474,7 +477,7 @@ const FilterableSelect = /*#__PURE__*/_react.default.forwardRef(({
474
477
  "data-role": dataRole,
475
478
  "data-element": dataElement,
476
479
  isOpen: isOpen
477
- }, (0, _utils.filterStyledSystemMarginProps)(textboxProps)), /*#__PURE__*/_react.default.createElement("div", {
480
+ }, marginProps), /*#__PURE__*/_react.default.createElement("div", {
478
481
  ref: containerRef
479
482
  }, /*#__PURE__*/_react.default.createElement(_selectTextbox.default, _extends({
480
483
  activeDescendantId: activeDescendantId,
@@ -35,6 +35,8 @@ var _logger = _interopRequireDefault(require("../../../__internal__/utils/logger
35
35
 
36
36
  var _useStableCallback = _interopRequireDefault(require("../../../hooks/__internal__/useStableCallback"));
37
37
 
38
+ var _useFormSpacing = _interopRequireDefault(require("../../../hooks/__internal__/useFormSpacing"));
39
+
38
40
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
41
 
40
42
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -481,6 +483,7 @@ const MultiSelect = /*#__PURE__*/_react.default.forwardRef(({
481
483
  virtualScrollOverscan: virtualScrollOverscan
482
484
  }, children);
483
485
 
486
+ const marginProps = (0, _useFormSpacing.default)(textboxProps);
484
487
  return /*#__PURE__*/_react.default.createElement(_multiSelect.StyledSelectMultiSelect, _extends({
485
488
  disabled: disabled,
486
489
  readOnly: readOnly,
@@ -490,7 +493,7 @@ const MultiSelect = /*#__PURE__*/_react.default.forwardRef(({
490
493
  "data-role": dataRole,
491
494
  "data-element": dataElement,
492
495
  isOpen: isOpen
493
- }, (0, _utils.filterStyledSystemMarginProps)(textboxProps)), /*#__PURE__*/_react.default.createElement("div", {
496
+ }, marginProps), /*#__PURE__*/_react.default.createElement("div", {
494
497
  ref: containerRef
495
498
  }, /*#__PURE__*/_react.default.createElement(_multiSelect.StyledAccessibilityLabelContainer, {
496
499
  "data-element": "accessibility-label",
@@ -167,7 +167,10 @@ const SelectTextbox = /*#__PURE__*/_react.default.forwardRef(({
167
167
  onChange: onChange,
168
168
  value: selectedValue,
169
169
  placeholder: hasTextCursor ? placeholder || l.select.placeholder() : undefined
170
- }, getInputAriaAttributes(), getTextboxProps()), !hasTextCursor && renderSelectText());
170
+ }, getInputAriaAttributes(), getTextboxProps(), {
171
+ my: 0 // prevents any form spacing being applied
172
+
173
+ }), !hasTextCursor && renderSelectText());
171
174
  });
172
175
 
173
176
  const formInputPropTypes = {
@@ -31,6 +31,8 @@ var _isNavigationKey = _interopRequireDefault(require("../utils/is-navigation-ke
31
31
 
32
32
  var _logger = _interopRequireDefault(require("../../../__internal__/utils/logger"));
33
33
 
34
+ var _useFormSpacing = _interopRequireDefault(require("../../../hooks/__internal__/useFormSpacing"));
35
+
34
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
37
 
36
38
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -384,6 +386,7 @@ const SimpleSelect = /*#__PURE__*/_react.default.forwardRef(({
384
386
  virtualScrollOverscan: virtualScrollOverscan
385
387
  }, children);
386
388
 
389
+ const marginProps = (0, _useFormSpacing.default)(props);
387
390
  return /*#__PURE__*/_react.default.createElement(_select.default, _extends({
388
391
  transparent: transparent,
389
392
  disabled: disabled,
@@ -392,7 +395,7 @@ const SimpleSelect = /*#__PURE__*/_react.default.forwardRef(({
392
395
  "data-role": dataRole,
393
396
  "data-element": dataElement,
394
397
  isOpen: isOpen
395
- }, (0, _utils.filterStyledSystemMarginProps)(props)), /*#__PURE__*/_react.default.createElement("div", {
398
+ }, marginProps), /*#__PURE__*/_react.default.createElement("div", {
396
399
  ref: containerRef
397
400
  }, /*#__PURE__*/_react.default.createElement(_selectTextbox.default, _extends({
398
401
  "aria-controls": selectListId.current,
@@ -202,12 +202,13 @@ const SplitButton = ({
202
202
  }
203
203
 
204
204
  const handleClick = (0, _useClickAwayListener.default)(hideButtons);
205
+ const marginProps = (0, _utils.filterStyledSystemMarginProps)(rest);
205
206
  return /*#__PURE__*/_react.default.createElement(_splitButton.default, _extends({
206
207
  "aria-haspopup": "true",
207
208
  onMouseLeave: hideButtonsIfTriggerNotFocused,
208
209
  onClick: handleClick,
209
210
  ref: splitButtonNode
210
- }, componentTags(), (0, _utils.filterStyledSystemMarginProps)(rest)), renderMainButton(), renderAdditionalButtons());
211
+ }, componentTags(), marginProps), renderMainButton(), renderAdditionalButtons());
211
212
  };
212
213
 
213
214
  exports.SplitButton = SplitButton;
@@ -19,10 +19,10 @@ var _useIsAboveBreakpoint = _interopRequireDefault(require("../../hooks/__intern
19
19
 
20
20
  var _tooltipProvider = require("../../__internal__/tooltip-provider");
21
21
 
22
- var _utils = require("../../style/utils");
23
-
24
22
  var _logger = _interopRequireDefault(require("../../__internal__/utils/logger"));
25
23
 
24
+ var _useFormSpacing = _interopRequireDefault(require("../../hooks/__internal__/useFormSpacing"));
25
+
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
27
 
28
28
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -84,6 +84,7 @@ const Switch = /*#__PURE__*/_react.default.forwardRef(({
84
84
  }
85
85
 
86
86
  const shouldValidationBeOnLabel = labelInline && !reverse ? true : validationOnLabel;
87
+ const marginProps = (0, _useFormSpacing.default)(rest);
87
88
  const switchStyleProps = {
88
89
  "data-component": dataComponent,
89
90
  "data-role": dataRole,
@@ -95,7 +96,7 @@ const Switch = /*#__PURE__*/_react.default.forwardRef(({
95
96
  reverse: !reverse,
96
97
  // switched to preserve backward compatibility
97
98
  size,
98
- ...(0, _utils.filterStyledSystemMarginProps)(rest)
99
+ ...marginProps
99
100
  };
100
101
  const switchSliderProps = {
101
102
  checked: isControlled ? checked : checkedInternal,
@@ -19,8 +19,6 @@ var _input2 = _interopRequireDefault(require("../../__internal__/input/input.com
19
19
 
20
20
  var _inputBehaviour = require("../../__internal__/input-behaviour");
21
21
 
22
- var _utils = require("../../style/utils");
23
-
24
22
  var _inputIconToggle = _interopRequireDefault(require("../../__internal__/input-icon-toggle"));
25
23
 
26
24
  var _guid = _interopRequireDefault(require("../../__internal__/utils/helpers/guid"));
@@ -41,6 +39,8 @@ var _box = _interopRequireDefault(require("../box"));
41
39
 
42
40
  var _logger = _interopRequireDefault(require("../../__internal__/utils/logger"));
43
41
 
42
+ var _useFormSpacing = _interopRequireDefault(require("../../hooks/__internal__/useFormSpacing"));
43
+
44
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
45
 
46
46
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -89,7 +89,7 @@ const Textarea = /*#__PURE__*/_react.default.forwardRef(({
89
89
  "data-role": dataRole,
90
90
  helpAriaLabel,
91
91
  inputRef,
92
- ...props
92
+ ...rest
93
93
  }, ref) => {
94
94
  const {
95
95
  validationRedesignOptIn
@@ -204,7 +204,7 @@ const Textarea = /*#__PURE__*/_react.default.forwardRef(({
204
204
  id: id,
205
205
  as: "textarea",
206
206
  inputRef: inputRef
207
- }, props)), children, /*#__PURE__*/_react.default.createElement(_inputIconToggle.default, {
207
+ }, rest)), children, /*#__PURE__*/_react.default.createElement(_inputIconToggle.default, {
208
208
  disabled: disabled,
209
209
  readOnly: readOnly,
210
210
  inputIcon: inputIcon,
@@ -216,6 +216,7 @@ const Textarea = /*#__PURE__*/_react.default.forwardRef(({
216
216
  useValidationIcon: !(validationRedesignOptIn || validationOnLabel)
217
217
  }));
218
218
 
219
+ const marginProps = (0, _useFormSpacing.default)(rest);
219
220
  return /*#__PURE__*/_react.default.createElement(_tooltipProvider.TooltipProvider, {
220
221
  tooltipPosition: tooltipPosition,
221
222
  helpAriaLabel: helpAriaLabel
@@ -225,7 +226,7 @@ const Textarea = /*#__PURE__*/_react.default.forwardRef(({
225
226
  "data-role": dataRole,
226
227
  "data-element": dataElement,
227
228
  hasIcon: hasIconInside
228
- }, (0, _utils.filterStyledSystemMarginProps)(props)), /*#__PURE__*/_react.default.createElement(_formField.default, {
229
+ }, marginProps), /*#__PURE__*/_react.default.createElement(_formField.default, {
229
230
  fieldHelp: computeLabelPropValues(fieldHelp),
230
231
  fieldHelpId: fieldHelpId,
231
232
  error: error,
@@ -240,7 +241,7 @@ const Textarea = /*#__PURE__*/_react.default.forwardRef(({
240
241
  labelWidth: computeLabelPropValues(labelWidth),
241
242
  labelHelp: computeLabelPropValues(labelHelp),
242
243
  labelSpacing: labelSpacing,
243
- isRequired: props.required,
244
+ isRequired: rest.required,
244
245
  useValidationIcon: computeLabelPropValues(validationOnLabel),
245
246
  adaptiveLabelBreakpoint: adaptiveLabelBreakpoint,
246
247
  validationRedesignOptIn: validationRedesignOptIn
@@ -0,0 +1,3 @@
1
+ import { MarginProps } from "styled-system";
2
+ declare const _default: (marginProps: MarginProps, formMarginBottom?: string | undefined) => MarginProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>>;
3
+ export default _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _default = (marginProps, formMarginBottom) => {
9
+ if (!formMarginBottom) {
10
+ return marginProps;
11
+ }
12
+
13
+ const copiedProps = { ...marginProps
14
+ };
15
+ const {
16
+ mb,
17
+ marginBottom,
18
+ mt,
19
+ marginTop,
20
+ my,
21
+ marginY,
22
+ m,
23
+ margin
24
+ } = copiedProps;
25
+ const hasCustomMarginBottom = [mb, marginBottom, my, marginY, m, margin].some(prop => prop !== undefined);
26
+ const hasCustomMarginTop = [mt, marginTop, my, marginY, m, margin].some(prop => prop !== undefined);
27
+
28
+ if (!hasCustomMarginBottom) {
29
+ copiedProps.mb = formMarginBottom;
30
+ }
31
+
32
+ if (!hasCustomMarginTop) {
33
+ copiedProps.mt = 0;
34
+ }
35
+
36
+ return copiedProps;
37
+ };
38
+
39
+ exports.default = _default;
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../../../../../esm/hooks/__internal__/useFormSpacing/add-form-spacing/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1,3 @@
1
+ import { MarginProps } from "styled-system";
2
+ declare const _default: (props: Record<string, unknown> | MarginProps) => MarginProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>>;
3
+ export default _default;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _utils = require("../../../style/utils");
11
+
12
+ var _formSpacingProvider = require("../../../__internal__/form-spacing-provider");
13
+
14
+ var _addFormSpacing = _interopRequireDefault(require("./add-form-spacing"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ var _default = props => {
19
+ const {
20
+ marginBottom
21
+ } = (0, _react.useContext)(_formSpacingProvider.FormSpacingContext);
22
+ const marginProps = (0, _addFormSpacing.default)((0, _utils.filterStyledSystemMarginProps)(props), marginBottom);
23
+ return marginProps;
24
+ };
25
+
26
+ exports.default = _default;
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../../../../esm/hooks/__internal__/useFormSpacing/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "114.17.5",
3
+ "version": "114.18.0",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "files": [
6
6
  "lib",
@@ -121,6 +121,7 @@
121
121
  "draft-js": "^0.11.7",
122
122
  "enzyme": "^3.3.0",
123
123
  "enzyme-to-json": "^3.4.0",
124
+ "esbuild": "^0.14.47",
124
125
  "eslint": "^7.25.0",
125
126
  "eslint-config-airbnb": "^18.2.0",
126
127
  "eslint-config-prettier": "^6.15.0",
@@ -175,7 +176,6 @@
175
176
  "crypto-js": "~3.3.0",
176
177
  "date-fns": "^2.26.0",
177
178
  "dotenv": "^10.0.0",
178
- "esbuild": "^0.14.47",
179
179
  "immutable": "~3.8.2",
180
180
  "invariant": "^2.2.4",
181
181
  "lodash": "^4.17.20",