@carbon/react 1.17.0-rc.0 → 1.17.0-rc.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.
@@ -19,7 +19,7 @@ import { usePrefix } from '../../internal/usePrefix.js';
19
19
  var _ModalBody$propTypes, _ComposedModal$propTy;
20
20
 
21
21
  var _excluded = ["className", "children", "hasForm", "hasScrollingContent"],
22
- _excluded2 = ["aria-labelledby", "aria-label", "children", "className", "containerClassName", "danger", "onClose", "onKeyDown", "open", "preventCloseOnClickOutside", "selectorPrimaryFocus", "selectorsFloatingMenus", "size"];
22
+ _excluded2 = ["aria-labelledby", "aria-label", "children", "className", "containerClassName", "danger", "isFullWidth", "onClose", "onKeyDown", "open", "preventCloseOnClickOutside", "selectorPrimaryFocus", "selectorsFloatingMenus", "size"];
23
23
  var ModalBody = /*#__PURE__*/React__default.forwardRef(function ModalBody(_ref, ref) {
24
24
  var _cx;
25
25
 
@@ -53,6 +53,7 @@ var ComposedModal = /*#__PURE__*/React__default.forwardRef(function ComposedModa
53
53
  customClassName = _ref2.className,
54
54
  containerClassName = _ref2.containerClassName,
55
55
  danger = _ref2.danger,
56
+ isFullWidth = _ref2.isFullWidth,
56
57
  onClose = _ref2.onClose,
57
58
  onKeyDown = _ref2.onKeyDown,
58
59
  open = _ref2.open,
@@ -129,7 +130,7 @@ var ComposedModal = /*#__PURE__*/React__default.forwardRef(function ComposedModa
129
130
  }
130
131
 
131
132
  var modalClass = cx((_cx2 = {}, _defineProperty(_cx2, "".concat(prefix, "--modal"), true), _defineProperty(_cx2, 'is-visible', isOpen), _defineProperty(_cx2, customClassName, customClassName), _defineProperty(_cx2, "".concat(prefix, "--modal--danger"), danger), _cx2));
132
- var containerClass = cx((_cx3 = {}, _defineProperty(_cx3, "".concat(prefix, "--modal-container"), true), _defineProperty(_cx3, "".concat(prefix, "--modal-container--").concat(size), size), _defineProperty(_cx3, containerClassName, containerClassName), _cx3)); // Generate aria-label based on Modal Header label if one is not provided (L253)
133
+ var containerClass = cx((_cx3 = {}, _defineProperty(_cx3, "".concat(prefix, "--modal-container"), true), _defineProperty(_cx3, "".concat(prefix, "--modal-container--").concat(size), size), _defineProperty(_cx3, "".concat(prefix, "--modal-container--full-width"), isFullWidth), _defineProperty(_cx3, containerClassName, containerClassName), _cx3)); // Generate aria-label based on Modal Header label if one is not provided (L253)
133
134
 
134
135
  var generatedAriaLabel;
135
136
  var childrenWithProps = React__default.Children.toArray(children).map(function (child) {
@@ -216,7 +217,7 @@ var ComposedModal = /*#__PURE__*/React__default.forwardRef(function ComposedModa
216
217
  className: "".concat(prefix, "--visually-hidden")
217
218
  }, "Focus sentinel")));
218
219
  });
219
- ComposedModal.propTypes = (_ComposedModal$propTy = {}, _defineProperty(_ComposedModal$propTy, 'aria-label', PropTypes.string), _defineProperty(_ComposedModal$propTy, 'aria-labelledby', PropTypes.string), _defineProperty(_ComposedModal$propTy, "children", PropTypes.node), _defineProperty(_ComposedModal$propTy, "className", PropTypes.string), _defineProperty(_ComposedModal$propTy, "containerClassName", PropTypes.string), _defineProperty(_ComposedModal$propTy, "danger", PropTypes.bool), _defineProperty(_ComposedModal$propTy, "onClose", PropTypes.func), _defineProperty(_ComposedModal$propTy, "onKeyDown", PropTypes.func), _defineProperty(_ComposedModal$propTy, "open", PropTypes.bool), _defineProperty(_ComposedModal$propTy, "preventCloseOnClickOutside", PropTypes.bool), _defineProperty(_ComposedModal$propTy, "selectorPrimaryFocus", PropTypes.string), _defineProperty(_ComposedModal$propTy, "selectorsFloatingMenus", PropTypes.arrayOf(PropTypes.string)), _defineProperty(_ComposedModal$propTy, "size", PropTypes.oneOf(['xs', 'sm', 'md', 'lg'])), _ComposedModal$propTy);
220
+ ComposedModal.propTypes = (_ComposedModal$propTy = {}, _defineProperty(_ComposedModal$propTy, 'aria-label', PropTypes.string), _defineProperty(_ComposedModal$propTy, 'aria-labelledby', PropTypes.string), _defineProperty(_ComposedModal$propTy, "children", PropTypes.node), _defineProperty(_ComposedModal$propTy, "className", PropTypes.string), _defineProperty(_ComposedModal$propTy, "containerClassName", PropTypes.string), _defineProperty(_ComposedModal$propTy, "danger", PropTypes.bool), _defineProperty(_ComposedModal$propTy, "isFullWidth", PropTypes.bool), _defineProperty(_ComposedModal$propTy, "onClose", PropTypes.func), _defineProperty(_ComposedModal$propTy, "onKeyDown", PropTypes.func), _defineProperty(_ComposedModal$propTy, "open", PropTypes.bool), _defineProperty(_ComposedModal$propTy, "preventCloseOnClickOutside", PropTypes.bool), _defineProperty(_ComposedModal$propTy, "selectorPrimaryFocus", PropTypes.string), _defineProperty(_ComposedModal$propTy, "selectorsFloatingMenus", PropTypes.arrayOf(PropTypes.string)), _defineProperty(_ComposedModal$propTy, "size", PropTypes.oneOf(['xs', 'sm', 'md', 'lg'])), _ComposedModal$propTy);
220
221
  ComposedModal.defaultProps = {
221
222
  onKeyDown: function onKeyDown() {},
222
223
  selectorPrimaryFocus: '[data-modal-primary-focus]'
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, typeof as _typeof, objectSpread2 as _objectSpread2, extends as _extends, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import PropTypes from 'prop-types';
10
- import React__default, { useRef, useEffect } from 'react';
10
+ import React__default, { useContext, useRef, useEffect } from 'react';
11
11
  import cx from 'classnames';
12
12
  import flatpickr from 'flatpickr';
13
13
  import l10n from '../../node_modules/flatpickr/dist/l10n/index.js';
@@ -18,10 +18,12 @@ import carbonFlatpickrRangePlugin from './plugins/rangePlugin.js';
18
18
  import deprecate from '../../prop-types/deprecate.js';
19
19
  import { usePrefix } from '../../internal/usePrefix.js';
20
20
  import { useSavedCallback } from '../../internal/useSavedCallback.js';
21
+ import { WarningFilled, WarningAltFilled } from '@carbon/icons-react';
22
+ import { FormContext } from '../FluidForm/FormContext.js';
21
23
  import { match } from '../../internal/keyboard/match.js';
22
24
  import { ArrowDown } from '../../internal/keyboard/keys.js';
23
25
 
24
- var _excluded = ["allowInput", "appendTo", "children", "className", "closeOnSelect", "dateFormat", "datePickerType", "disable", "enable", "inline", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
26
+ var _excluded = ["allowInput", "appendTo", "children", "className", "closeOnSelect", "dateFormat", "datePickerType", "disable", "enable", "inline", "invalid", "invalidText", "warn", "warnText", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
25
27
 
26
28
  l10n.en.weekdays.shorthand.forEach(function (_day, index) {
27
29
  var currentDay = l10n.en.weekdays.shorthand;
@@ -161,6 +163,10 @@ var DatePicker = /*#__PURE__*/React__default.forwardRef(function DatePicker(_ref
161
163
  disable = _ref.disable,
162
164
  enable = _ref.enable,
163
165
  inline = _ref.inline,
166
+ invalid = _ref.invalid,
167
+ invalidText = _ref.invalidText,
168
+ warn = _ref.warn,
169
+ warnText = _ref.warnText,
164
170
  _ref$light = _ref.light,
165
171
  light = _ref$light === void 0 ? false : _ref$light,
166
172
  _ref$locale = _ref.locale,
@@ -176,6 +182,10 @@ var DatePicker = /*#__PURE__*/React__default.forwardRef(function DatePicker(_ref
176
182
  rest = _objectWithoutProperties(_ref, _excluded);
177
183
 
178
184
  var prefix = usePrefix();
185
+
186
+ var _useContext = useContext(FormContext),
187
+ isFluid = _useContext.isFluid;
188
+
179
189
  var startInputField = useRef(null);
180
190
  var endInputField = useRef(null);
181
191
  var calendarRef = useRef(null);
@@ -388,12 +398,36 @@ var DatePicker = /*#__PURE__*/React__default.forwardRef(function DatePicker(_ref
388
398
  startInputField.current.value = value;
389
399
  }
390
400
  }, [value, prefix]);
401
+ var fluidError;
402
+
403
+ if (isFluid) {
404
+ if (invalid) {
405
+ fluidError = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(WarningFilled, {
406
+ className: "".concat(prefix, "--date-picker__icon ").concat(prefix, "--date-picker__icon--invalid")
407
+ }), /*#__PURE__*/React__default.createElement("hr", {
408
+ className: "".concat(prefix, "--date-picker__divider")
409
+ }), /*#__PURE__*/React__default.createElement("div", {
410
+ className: "".concat(prefix, "--form-requirement")
411
+ }, invalidText));
412
+ }
413
+
414
+ if (warn && !invalid) {
415
+ fluidError = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(WarningAltFilled, {
416
+ className: "".concat(prefix, "--date-picker__icon ").concat(prefix, "--date-picker__icon--warn")
417
+ }), /*#__PURE__*/React__default.createElement("hr", {
418
+ className: "".concat(prefix, "--date-picker__divider")
419
+ }), /*#__PURE__*/React__default.createElement("div", {
420
+ className: "".concat(prefix, "--form-requirement")
421
+ }, warnText));
422
+ }
423
+ }
424
+
391
425
  return /*#__PURE__*/React__default.createElement("div", _extends({
392
426
  className: wrapperClasses,
393
427
  ref: ref
394
428
  }, rest), /*#__PURE__*/React__default.createElement("div", {
395
429
  className: datePickerClasses
396
- }, childrenWithProps));
430
+ }, childrenWithProps), fluidError);
397
431
  });
398
432
  DatePicker.propTypes = {
399
433
  /**
@@ -451,6 +485,16 @@ DatePicker.propTypes = {
451
485
  */
452
486
  inline: PropTypes.bool,
453
487
 
488
+ /**
489
+ * Specify whether or not the control is invalid (Fluid only)
490
+ */
491
+ invalid: PropTypes.bool,
492
+
493
+ /**
494
+ * Provide the text that is displayed when the control is in error state (Fluid Only)
495
+ */
496
+ invalidText: PropTypes.node,
497
+
454
498
  /**
455
499
  * `true` to use the light version.
456
500
  */
@@ -556,7 +600,17 @@ DatePicker.propTypes = {
556
600
  * The value of the date value provided to flatpickr, could
557
601
  * be a date, a date number, a date string, an array of dates.
558
602
  */
559
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object])), PropTypes.object, PropTypes.number])
603
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object])), PropTypes.object, PropTypes.number]),
604
+
605
+ /**
606
+ * Specify whether the control is currently in warning state (Fluid only)
607
+ */
608
+ warn: PropTypes.bool,
609
+
610
+ /**
611
+ * Provide the text that is displayed when the control is in warning state (Fluid only)
612
+ */
613
+ warnText: PropTypes.node
560
614
  };
561
615
  var DatePicker$1 = DatePicker;
562
616
 
@@ -9,12 +9,13 @@ import { objectWithoutProperties as _objectWithoutProperties, defineProperty as
9
9
  import { WarningFilled, WarningAltFilled, Calendar } from '@carbon/icons-react';
10
10
  import cx from 'classnames';
11
11
  import PropTypes from 'prop-types';
12
- import React__default from 'react';
12
+ import React__default, { useContext } from 'react';
13
13
  import { usePrefix } from '../../internal/usePrefix.js';
14
+ import { FormContext } from '../FluidForm/FormContext.js';
14
15
 
15
16
  var _excluded = ["datePickerType", "disabled", "helperText", "hideLabel", "id", "invalid", "invalidText", "labelText", "onClick", "onChange", "pattern", "placeholder", "size", "type", "warn", "warnText"];
16
17
  var DatePickerInput = /*#__PURE__*/React__default.forwardRef(function DatePickerInput(props, ref) {
17
- var _cx, _cx2, _cx4;
18
+ var _cx, _cx2, _cx4, _cx5;
18
19
 
19
20
  var datePickerType = props.datePickerType,
20
21
  _props$disabled = props.disabled,
@@ -42,6 +43,10 @@ var DatePickerInput = /*#__PURE__*/React__default.forwardRef(function DatePicker
42
43
  rest = _objectWithoutProperties(props, _excluded);
43
44
 
44
45
  var prefix = usePrefix();
46
+
47
+ var _useContext = useContext(FormContext),
48
+ isFluid = _useContext.isFluid;
49
+
45
50
  var datePickerInputProps = {
46
51
  id: id,
47
52
  onChange: function onChange(event) {
@@ -61,8 +66,8 @@ var DatePickerInput = /*#__PURE__*/React__default.forwardRef(function DatePicker
61
66
  var wrapperClasses = cx("".concat(prefix, "--date-picker-input__wrapper"), (_cx = {}, _defineProperty(_cx, "".concat(prefix, "--date-picker-input__wrapper--invalid"), invalid), _defineProperty(_cx, "".concat(prefix, "--date-picker-input__wrapper--warn"), warn), _cx));
62
67
  var labelClasses = cx("".concat(prefix, "--label"), (_cx2 = {}, _defineProperty(_cx2, "".concat(prefix, "--visually-hidden"), hideLabel), _defineProperty(_cx2, "".concat(prefix, "--label--disabled"), disabled), _cx2));
63
68
  var helperTextClasses = cx("".concat(prefix, "--form__helper-text"), _defineProperty({}, "".concat(prefix, "--form__helper-text--disabled"), disabled));
64
- var inputClasses = cx("".concat(prefix, "--date-picker__input"), (_cx4 = {}, _defineProperty(_cx4, "".concat(prefix, "--date-picker__input--").concat(size), size), _defineProperty(_cx4, "".concat(prefix, "--date-picker__input--invalid"), invalid), _cx4));
65
- var containerClasses = cx("".concat(prefix, "--date-picker-container"), _defineProperty({}, "".concat(prefix, "--date-picker--nolabel"), !labelText));
69
+ var inputClasses = cx("".concat(prefix, "--date-picker__input"), (_cx4 = {}, _defineProperty(_cx4, "".concat(prefix, "--date-picker__input--").concat(size), size), _defineProperty(_cx4, "".concat(prefix, "--date-picker__input--invalid"), invalid), _defineProperty(_cx4, "".concat(prefix, "--date-picker__input--warn"), warn), _cx4));
70
+ var containerClasses = cx("".concat(prefix, "--date-picker-container"), (_cx5 = {}, _defineProperty(_cx5, "".concat(prefix, "--date-picker--nolabel"), !labelText), _defineProperty(_cx5, "".concat(prefix, "--date-picker--fluid--invalid"), isFluid && invalid), _defineProperty(_cx5, "".concat(prefix, "--date-picker--fluid--warn"), isFluid && warn), _cx5));
66
71
  var input = invalid ? /*#__PURE__*/React__default.createElement("input", _extends({}, rest, datePickerInputProps, {
67
72
  disabled: disabled,
68
73
  ref: ref,
@@ -80,15 +85,21 @@ var DatePickerInput = /*#__PURE__*/React__default.forwardRef(function DatePicker
80
85
  className: labelClasses
81
86
  }, labelText), /*#__PURE__*/React__default.createElement("div", {
82
87
  className: wrapperClasses
83
- }, input, /*#__PURE__*/React__default.createElement(DatePickerIcon, {
88
+ }, input, isFluid && /*#__PURE__*/React__default.createElement(DatePickerIcon, {
89
+ datePickerType: datePickerType
90
+ }), /*#__PURE__*/React__default.createElement(DatePickerIcon, {
84
91
  datePickerType: datePickerType,
85
92
  invalid: invalid,
86
93
  warn: warn
87
- })), invalid && /*#__PURE__*/React__default.createElement("div", {
94
+ })), invalid && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isFluid && /*#__PURE__*/React__default.createElement("hr", {
95
+ className: "".concat(prefix, "--date-picker__divider")
96
+ }), /*#__PURE__*/React__default.createElement("div", {
88
97
  className: "".concat(prefix, "--form-requirement")
89
- }, invalidText), warn && /*#__PURE__*/React__default.createElement("div", {
98
+ }, invalidText)), warn && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isFluid && /*#__PURE__*/React__default.createElement("hr", {
99
+ className: "".concat(prefix, "--date-picker__divider")
100
+ }), /*#__PURE__*/React__default.createElement("div", {
90
101
  className: "".concat(prefix, "--form-requirement")
91
- }, warnText), helperText && /*#__PURE__*/React__default.createElement("div", {
102
+ }, warnText)), helperText && /*#__PURE__*/React__default.createElement("div", {
92
103
  className: helperTextClasses
93
104
  }, helperText));
94
105
  });
@@ -196,8 +207,13 @@ function DatePickerIcon(_ref) {
196
207
  warn = _ref.warn;
197
208
  var prefix = usePrefix();
198
209
 
210
+ var _useContext2 = useContext(FormContext),
211
+ isFluid = _useContext2.isFluid;
212
+
199
213
  if (datePickerType === 'simple' && !invalid && !warn) {
200
- return null;
214
+ if (!isFluid) {
215
+ return null;
216
+ }
201
217
  }
202
218
 
203
219
  if (invalid) {
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2022
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import PropTypes from 'prop-types';
10
+ import React__default from 'react';
11
+ import cx from 'classnames';
12
+ import DatePicker from '../DatePicker/DatePicker.js';
13
+ import { usePrefix } from '../../internal/usePrefix.js';
14
+ import { FormContext } from '../FluidForm/FormContext.js';
15
+
16
+ var _excluded = ["className", "children", "invalid", "invalidText", "warn", "warnText"];
17
+ var FluidDatePicker = /*#__PURE__*/React__default.forwardRef(function FluidDatePicker(_ref, ref) {
18
+ var _classnames;
19
+
20
+ var className = _ref.className,
21
+ children = _ref.children,
22
+ invalid = _ref.invalid,
23
+ invalidText = _ref.invalidText,
24
+ warn = _ref.warn,
25
+ warnText = _ref.warnText,
26
+ other = _objectWithoutProperties(_ref, _excluded);
27
+
28
+ var prefix = usePrefix();
29
+ var classNames = cx(className, (_classnames = {}, _defineProperty(_classnames, "".concat(prefix, "--date-picker--fluid"), true), _defineProperty(_classnames, "".concat(prefix, "--date-picker--fluid--invalid"), invalid), _defineProperty(_classnames, "".concat(prefix, "--date-picker--fluid--warn"), warn), _classnames));
30
+ return /*#__PURE__*/React__default.createElement(FormContext.Provider, {
31
+ value: {
32
+ isFluid: true
33
+ }
34
+ }, /*#__PURE__*/React__default.createElement(DatePicker, _extends({
35
+ invalid: invalid,
36
+ invalidText: invalidText,
37
+ warn: warn,
38
+ warnText: warnText,
39
+ className: classNames,
40
+ ref: ref
41
+ }, other), children));
42
+ });
43
+ FluidDatePicker.propTypes = {
44
+ /**
45
+ * The child node(s)
46
+ */
47
+ children: PropTypes.node,
48
+
49
+ /**
50
+ * Specify an optional className to be applied to the outer FluidForm wrapper
51
+ */
52
+ className: PropTypes.string,
53
+
54
+ /**
55
+ * Specify whether or not the control is invalid
56
+ */
57
+ invalid: PropTypes.bool,
58
+
59
+ /**
60
+ * Provide the text that is displayed when the control is in error state
61
+ */
62
+ invalidText: PropTypes.node,
63
+
64
+ /**
65
+ * Specify whether the control is currently in warning state
66
+ */
67
+ warn: PropTypes.bool,
68
+
69
+ /**
70
+ * Provide the text that is displayed when the control is in warning state
71
+ */
72
+ warnText: PropTypes.node
73
+ };
74
+ var FluidDatePicker$1 = FluidDatePicker;
75
+
76
+ export { FluidDatePicker$1 as default };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2022
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import React__default from 'react';
10
+ import DatePickerInput from '../DatePickerInput/DatePickerInput.js';
11
+ import { FormContext } from '../FluidForm/FormContext.js';
12
+
13
+ var FluidDatePickerInput = /*#__PURE__*/React__default.forwardRef(function FluidDatePickerInput(_ref, ref) {
14
+ var other = _extends({}, _ref);
15
+
16
+ return /*#__PURE__*/React__default.createElement(FormContext.Provider, {
17
+ value: {
18
+ isFluid: true
19
+ }
20
+ }, /*#__PURE__*/React__default.createElement(DatePickerInput, _extends({
21
+ ref: ref
22
+ }, other)));
23
+ });
24
+ var FluidDatePickerInput$1 = FluidDatePickerInput;
25
+
26
+ export { FluidDatePickerInput$1 as default };
@@ -20,10 +20,10 @@ import { usePrefix } from '../../internal/usePrefix.js';
20
20
 
21
21
  var _Modal$propTypes;
22
22
 
23
- var _excluded = ["children", "className", "modalHeading", "modalLabel", "modalAriaLabel", "passiveModal", "secondaryButtonText", "primaryButtonText", "open", "onRequestClose", "onRequestSubmit", "onSecondarySubmit", "primaryButtonDisabled", "danger", "alert", "secondaryButtons", "selectorPrimaryFocus", "selectorsFloatingMenus", "shouldSubmitOnEnter", "size", "hasScrollingContent", "closeButtonLabel", "preventCloseOnClickOutside"];
23
+ var _excluded = ["children", "className", "modalHeading", "modalLabel", "modalAriaLabel", "passiveModal", "secondaryButtonText", "primaryButtonText", "open", "onRequestClose", "onRequestSubmit", "onSecondarySubmit", "primaryButtonDisabled", "danger", "alert", "secondaryButtons", "selectorPrimaryFocus", "selectorsFloatingMenus", "shouldSubmitOnEnter", "size", "hasScrollingContent", "closeButtonLabel", "preventCloseOnClickOutside", "isFullWidth"];
24
24
  var getInstanceId = setupGetInstanceId();
25
25
  var Modal = /*#__PURE__*/React__default.forwardRef(function Modal(_ref, ref) {
26
- var _classNames;
26
+ var _classNames, _classNames2;
27
27
 
28
28
  var children = _ref.children,
29
29
  className = _ref.className,
@@ -48,6 +48,7 @@ var Modal = /*#__PURE__*/React__default.forwardRef(function Modal(_ref, ref) {
48
48
  hasScrollingContent = _ref.hasScrollingContent,
49
49
  closeButtonLabel = _ref.closeButtonLabel,
50
50
  preventCloseOnClickOutside = _ref.preventCloseOnClickOutside,
51
+ isFullWidth = _ref.isFullWidth,
51
52
  rest = _objectWithoutProperties(_ref, _excluded);
52
53
 
53
54
  var prefix = usePrefix();
@@ -105,7 +106,7 @@ var Modal = /*#__PURE__*/React__default.forwardRef(function Modal(_ref, ref) {
105
106
 
106
107
  var onSecondaryButtonClick = onSecondarySubmit ? onSecondarySubmit : onRequestClose;
107
108
  var modalClasses = cx("".concat(prefix, "--modal"), (_classNames = {}, _defineProperty(_classNames, "".concat(prefix, "--modal-tall"), !passiveModal), _defineProperty(_classNames, 'is-visible', open), _defineProperty(_classNames, "".concat(prefix, "--modal--danger"), danger), _defineProperty(_classNames, className, className), _classNames));
108
- var containerClasses = cx("".concat(prefix, "--modal-container"), _defineProperty({}, "".concat(prefix, "--modal-container--").concat(size), size));
109
+ var containerClasses = cx("".concat(prefix, "--modal-container"), (_classNames2 = {}, _defineProperty(_classNames2, "".concat(prefix, "--modal-container--").concat(size), size), _defineProperty(_classNames2, "".concat(prefix, "--modal-container--full-width"), isFullWidth), _classNames2));
109
110
  var contentClasses = cx("".concat(prefix, "--modal-content"), _defineProperty({}, "".concat(prefix, "--modal-scroll-content"), hasScrollingContent));
110
111
  var footerClasses = cx("".concat(prefix, "--modal-footer"), _defineProperty({}, "".concat(prefix, "--modal-footer--three-button"), Array.isArray(secondaryButtons) && secondaryButtons.length === 2));
111
112
  var modalButton = /*#__PURE__*/React__default.createElement("button", {
@@ -240,7 +241,7 @@ Modal.propTypes = (_Modal$propTypes = {
240
241
  * Should go hand in hand with the danger prop.
241
242
  */
242
243
  alert: PropTypes.bool
243
- }, _defineProperty(_Modal$propTypes, 'aria-label', requiredIfGivenPropIsTruthy('hasScrollingContent', PropTypes.string)), _defineProperty(_Modal$propTypes, "children", PropTypes.node), _defineProperty(_Modal$propTypes, "className", PropTypes.string), _defineProperty(_Modal$propTypes, "closeButtonLabel", PropTypes.string), _defineProperty(_Modal$propTypes, "danger", PropTypes.bool), _defineProperty(_Modal$propTypes, "hasScrollingContent", PropTypes.bool), _defineProperty(_Modal$propTypes, "id", PropTypes.string), _defineProperty(_Modal$propTypes, "modalAriaLabel", PropTypes.string), _defineProperty(_Modal$propTypes, "modalHeading", PropTypes.node), _defineProperty(_Modal$propTypes, "modalLabel", PropTypes.node), _defineProperty(_Modal$propTypes, "onKeyDown", PropTypes.func), _defineProperty(_Modal$propTypes, "onRequestClose", PropTypes.func), _defineProperty(_Modal$propTypes, "onRequestSubmit", PropTypes.func), _defineProperty(_Modal$propTypes, "onSecondarySubmit", PropTypes.func), _defineProperty(_Modal$propTypes, "open", PropTypes.bool), _defineProperty(_Modal$propTypes, "passiveModal", PropTypes.bool), _defineProperty(_Modal$propTypes, "preventCloseOnClickOutside", PropTypes.bool), _defineProperty(_Modal$propTypes, "primaryButtonDisabled", PropTypes.bool), _defineProperty(_Modal$propTypes, "primaryButtonText", PropTypes.node), _defineProperty(_Modal$propTypes, "secondaryButtonText", PropTypes.node), _defineProperty(_Modal$propTypes, "secondaryButtons", function secondaryButtons(props, propName, componentName) {
244
+ }, _defineProperty(_Modal$propTypes, 'aria-label', requiredIfGivenPropIsTruthy('hasScrollingContent', PropTypes.string)), _defineProperty(_Modal$propTypes, "children", PropTypes.node), _defineProperty(_Modal$propTypes, "className", PropTypes.string), _defineProperty(_Modal$propTypes, "closeButtonLabel", PropTypes.string), _defineProperty(_Modal$propTypes, "danger", PropTypes.bool), _defineProperty(_Modal$propTypes, "hasScrollingContent", PropTypes.bool), _defineProperty(_Modal$propTypes, "id", PropTypes.string), _defineProperty(_Modal$propTypes, "isFullWidth", PropTypes.bool), _defineProperty(_Modal$propTypes, "modalAriaLabel", PropTypes.string), _defineProperty(_Modal$propTypes, "modalHeading", PropTypes.node), _defineProperty(_Modal$propTypes, "modalLabel", PropTypes.node), _defineProperty(_Modal$propTypes, "onKeyDown", PropTypes.func), _defineProperty(_Modal$propTypes, "onRequestClose", PropTypes.func), _defineProperty(_Modal$propTypes, "onRequestSubmit", PropTypes.func), _defineProperty(_Modal$propTypes, "onSecondarySubmit", PropTypes.func), _defineProperty(_Modal$propTypes, "open", PropTypes.bool), _defineProperty(_Modal$propTypes, "passiveModal", PropTypes.bool), _defineProperty(_Modal$propTypes, "preventCloseOnClickOutside", PropTypes.bool), _defineProperty(_Modal$propTypes, "primaryButtonDisabled", PropTypes.bool), _defineProperty(_Modal$propTypes, "primaryButtonText", PropTypes.node), _defineProperty(_Modal$propTypes, "secondaryButtonText", PropTypes.node), _defineProperty(_Modal$propTypes, "secondaryButtons", function secondaryButtons(props, propName, componentName) {
244
245
  if (props.secondaryButtons) {
245
246
  if (!Array.isArray(props.secondaryButtons) || props.secondaryButtons.length !== 2) {
246
247
  return new Error("".concat(propName, " needs to be an array of two button config objects"));
@@ -53,13 +53,19 @@ var RadioButtonGroup = /*#__PURE__*/React__default.forwardRef(function RadioButt
53
53
  function getRadioButtons() {
54
54
  var mappedChildren = React__default.Children.map(children, function (radioButton) {
55
55
  var value = radioButton.props.value;
56
- return /*#__PURE__*/React__default.cloneElement(radioButton, {
56
+ var newProps = {
57
57
  name: name,
58
58
  key: value,
59
59
  value: value,
60
60
  onChange: handleOnChange,
61
61
  checked: value === selected
62
- });
62
+ };
63
+
64
+ if (!selected && radioButton.props.checked) {
65
+ newProps.checked = true;
66
+ }
67
+
68
+ return /*#__PURE__*/React__default.cloneElement(radioButton, newProps);
63
69
  });
64
70
  return mappedChildren;
65
71
  }
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, defineProperty as _defineProperty, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import PropTypes from 'prop-types';
10
- import React__default, { useContext, useState } from 'react';
10
+ import React__default, { useContext, useState, useEffect } from 'react';
11
11
  import cx from 'classnames';
12
12
  import deprecate from '../../prop-types/deprecate.js';
13
13
  import { WarningFilled } from '@carbon/icons-react';
@@ -49,6 +49,11 @@ var TextArea = /*#__PURE__*/React__default.forwardRef(function TextArea(_ref, re
49
49
  textCount = _useState2[0],
50
50
  setTextCount = _useState2[1];
51
51
 
52
+ var _useState3 = useState(''),
53
+ _useState4 = _slicedToArray(_useState3, 2),
54
+ ariaAnnouncement = _useState4[0],
55
+ setAriaAnnouncement = _useState4[1];
56
+
52
57
  var textareaProps = {
53
58
  id: id,
54
59
  onChange: function onChange(evt) {
@@ -72,6 +77,15 @@ var TextArea = /*#__PURE__*/React__default.forwardRef(function TextArea(_ref, re
72
77
  textareaProps.maxLength = maxCount;
73
78
  }
74
79
 
80
+ useEffect(function () {
81
+ var lastTen = maxCount - 10;
82
+
83
+ if (textCount >= lastTen) {
84
+ setAriaAnnouncement("".concat(maxCount - textCount, " characters left."));
85
+ } else {
86
+ setAriaAnnouncement('');
87
+ }
88
+ }, [textCount, maxCount]);
75
89
  var labelClasses = cx("".concat(prefix, "--label"), (_classNames = {}, _defineProperty(_classNames, "".concat(prefix, "--visually-hidden"), hideLabel && !isFluid), _defineProperty(_classNames, "".concat(prefix, "--label--disabled"), disabled), _classNames));
76
90
  var label = labelText ? /*#__PURE__*/React__default.createElement("label", {
77
91
  htmlFor: id,
@@ -99,7 +113,10 @@ var TextArea = /*#__PURE__*/React__default.forwardRef(function TextArea(_ref, re
99
113
  className: textareaClasses,
100
114
  "aria-invalid": invalid || null,
101
115
  "aria-describedby": invalid ? errorId : null,
102
- disabled: other.disabled
116
+ disabled: other.disabled,
117
+ style: other.cols ? {} : {
118
+ width: "100%"
119
+ }
103
120
  }));
104
121
  return /*#__PURE__*/React__default.createElement("div", {
105
122
  className: enabled ? cx("".concat(prefix, "--form-item"), className) : "".concat(prefix, "--form-item")
@@ -110,7 +127,10 @@ var TextArea = /*#__PURE__*/React__default.forwardRef(function TextArea(_ref, re
110
127
  "data-invalid": invalid || null
111
128
  }, invalid && !isFluid && /*#__PURE__*/React__default.createElement(WarningFilled, {
112
129
  className: "".concat(prefix, "--text-area__invalid-icon")
113
- }), input, isFluid && /*#__PURE__*/React__default.createElement("hr", {
130
+ }), input, /*#__PURE__*/React__default.createElement("span", {
131
+ className: "".concat(prefix, "--text-area__counter-alert"),
132
+ role: "alert"
133
+ }, ariaAnnouncement), isFluid && /*#__PURE__*/React__default.createElement("hr", {
114
134
  className: "".concat(prefix, "--text-area__divider")
115
135
  }), isFluid && invalid ? error : null), invalid && !isFluid ? error : helper);
116
136
  });
@@ -217,7 +237,6 @@ TextArea.defaultProps = {
217
237
  onClick: function onClick() {},
218
238
  placeholder: '',
219
239
  rows: 4,
220
- cols: 50,
221
240
  invalid: false,
222
241
  invalidText: '',
223
242
  helperText: '',
package/es/index.js CHANGED
@@ -18,6 +18,7 @@ export { ClassPrefix } from './components/ClassPrefix/index.js';
18
18
  export { default as CodeSnippetSkeleton } from './components/CodeSnippet/CodeSnippet.Skeleton.js';
19
19
  export { default as CodeSnippet } from './components/CodeSnippet/CodeSnippet.js';
20
20
  export { default as ComboBox } from './components/ComboBox/ComboBox.js';
21
+ import './components/ContainedList/index.js';
21
22
  export { default as ContentSwitcher } from './components/ContentSwitcher/index.js';
22
23
  export { default as Copy } from './components/Copy/Copy.js';
23
24
  export { default as CopyButton } from './components/CopyButton/CopyButton.js';
@@ -95,7 +96,6 @@ export { default as SliderSkeleton } from './components/Slider/Slider.Skeleton.j
95
96
  export { default as TextInputSkeleton } from './components/TextInput/TextInput.Skeleton.js';
96
97
  export { default as ToggleSmallSkeleton } from './components/ToggleSmall/ToggleSmall.Skeleton.js';
97
98
  export { default as IconSkeleton } from './components/Icon/Icon.Skeleton.js';
98
- import './components/ContainedList/index.js';
99
99
  export { FeatureFlags as unstable_FeatureFlags, useFeatureFlag as unstable_useFeatureFlag, useFeatureFlags as unstable_useFeatureFlags } from './components/FeatureFlags/index.js';
100
100
  export { Heading, Section } from './components/Heading/index.js';
101
101
  export { IconButton } from './components/IconButton/index.js';
@@ -109,6 +109,7 @@ export { DefinitionTooltip } from './components/Tooltip/next/DefinitionTooltip.j
109
109
  export { GlobalTheme, Theme, useTheme } from './components/Theme/index.js';
110
110
  export { usePrefix } from './internal/usePrefix.js';
111
111
  export { default as AspectRatio } from './components/AspectRatio/AspectRatio.js';
112
+ export { default as ContainedListItem } from './components/ContainedList/ContainedListItem/ContainedListItem.js';
112
113
  export { default as Row } from './components/Grid/Row.js';
113
114
  export { default as Column } from './components/Grid/Column.js';
114
115
  export { default as NumberInputSkeleton } from './components/NumberInput/NumberInput.Skeleton.js';
@@ -121,7 +122,6 @@ export { default as SideNavFooter } from './components/UIShell/SideNavFooter.js'
121
122
  export { default as SideNavIcon } from './components/UIShell/SideNavIcon.js';
122
123
  export { default as SideNavItem } from './components/UIShell/SideNavItem.js';
123
124
  export { default as SideNavLinkText } from './components/UIShell/SideNavLinkText.js';
124
- export { default as unstable_ContainedListItem } from './components/ContainedList/ContainedListItem/ContainedListItem.js';
125
125
  export { default as unstable_useContextMenu } from './components/ContextMenu/useContextMenu.js';
126
126
  export { default as unstable__FluidTextArea } from './components/FluidTextArea/FluidTextArea.js';
127
127
  export { default as unstable__FluidTextAreaSkeleton } from './components/FluidTextArea/FluidTextArea.Skeleton.js';
@@ -135,10 +135,10 @@ export { default as unstable_MenuSelectableItem } from './components/Menu/MenuSe
135
135
  export { default as unstable_PageSelector } from './components/Pagination/experimental/PageSelector.js';
136
136
  export { default as unstable_Pagination } from './components/Pagination/experimental/Pagination.js';
137
137
  export { default as ProgressBar } from './components/ProgressBar/ProgressBar.js';
138
+ export { default as ContainedList } from './components/ContainedList/ContainedList.js';
138
139
  export { default as MultiSelect } from './components/MultiSelect/MultiSelect.js';
139
140
  export { default as TextInput } from './components/TextInput/TextInput.js';
140
141
  export { default as TreeView } from './components/TreeView/TreeView.js';
141
- export { default as unstable_ContainedList } from './components/ContainedList/ContainedList.js';
142
142
  export { default as unstable_Menu } from './components/Menu/Menu.js';
143
143
  export { default as Breadcrumb } from './components/Breadcrumb/Breadcrumb.js';
144
144
  export { default as BreadcrumbItem } from './components/Breadcrumb/BreadcrumbItem.js';
@@ -201,6 +201,8 @@ export { default as SideNavMenuItem } from './components/UIShell/SideNavMenuItem
201
201
  export { default as SideNavSwitcher } from './components/UIShell/SideNavSwitcher.js';
202
202
  export { default as unstable__FluidComboBox } from './components/FluidComboBox/FluidComboBox.js';
203
203
  export { default as unstable__FluidComboBoxSkeleton } from './components/FluidComboBox/FluidComboBox.Skeleton.js';
204
+ export { default as unstable__FluidDatePicker } from './components/FluidDatePicker/FluidDatePicker.js';
205
+ export { default as unstable__FluidDatePickerInput } from './components/FluidDatePickerInput/FluidDatePickerInput.js';
204
206
  export { default as unstable__FluidDropdown } from './components/FluidDropdown/FluidDropdown.js';
205
207
  export { default as unstable__FluidDropdownSkeleton } from './components/FluidDropdown/FluidDropdown.Skeleton.js';
206
208
  export { default as unstable__FluidMultiSelect } from './components/FluidMultiSelect/FluidMultiSelect.js';
@@ -29,7 +29,7 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
29
29
  var _ModalBody$propTypes, _ComposedModal$propTy;
30
30
 
31
31
  var _excluded = ["className", "children", "hasForm", "hasScrollingContent"],
32
- _excluded2 = ["aria-labelledby", "aria-label", "children", "className", "containerClassName", "danger", "onClose", "onKeyDown", "open", "preventCloseOnClickOutside", "selectorPrimaryFocus", "selectorsFloatingMenus", "size"];
32
+ _excluded2 = ["aria-labelledby", "aria-label", "children", "className", "containerClassName", "danger", "isFullWidth", "onClose", "onKeyDown", "open", "preventCloseOnClickOutside", "selectorPrimaryFocus", "selectorsFloatingMenus", "size"];
33
33
  var ModalBody = /*#__PURE__*/React__default["default"].forwardRef(function ModalBody(_ref, ref) {
34
34
  var _cx;
35
35
 
@@ -63,6 +63,7 @@ var ComposedModal = /*#__PURE__*/React__default["default"].forwardRef(function C
63
63
  customClassName = _ref2.className,
64
64
  containerClassName = _ref2.containerClassName,
65
65
  danger = _ref2.danger,
66
+ isFullWidth = _ref2.isFullWidth,
66
67
  onClose = _ref2.onClose,
67
68
  onKeyDown = _ref2.onKeyDown,
68
69
  open = _ref2.open,
@@ -139,7 +140,7 @@ var ComposedModal = /*#__PURE__*/React__default["default"].forwardRef(function C
139
140
  }
140
141
 
141
142
  var modalClass = cx__default["default"]((_cx2 = {}, _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--modal"), true), _rollupPluginBabelHelpers.defineProperty(_cx2, 'is-visible', isOpen), _rollupPluginBabelHelpers.defineProperty(_cx2, customClassName, customClassName), _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--modal--danger"), danger), _cx2));
142
- var containerClass = cx__default["default"]((_cx3 = {}, _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--modal-container"), true), _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--modal-container--").concat(size), size), _rollupPluginBabelHelpers.defineProperty(_cx3, containerClassName, containerClassName), _cx3)); // Generate aria-label based on Modal Header label if one is not provided (L253)
143
+ var containerClass = cx__default["default"]((_cx3 = {}, _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--modal-container"), true), _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--modal-container--").concat(size), size), _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--modal-container--full-width"), isFullWidth), _rollupPluginBabelHelpers.defineProperty(_cx3, containerClassName, containerClassName), _cx3)); // Generate aria-label based on Modal Header label if one is not provided (L253)
143
144
 
144
145
  var generatedAriaLabel;
145
146
  var childrenWithProps = React__default["default"].Children.toArray(children).map(function (child) {
@@ -226,7 +227,7 @@ var ComposedModal = /*#__PURE__*/React__default["default"].forwardRef(function C
226
227
  className: "".concat(prefix, "--visually-hidden")
227
228
  }, "Focus sentinel")));
228
229
  });
229
- ComposedModal.propTypes = (_ComposedModal$propTy = {}, _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, 'aria-label', PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, 'aria-labelledby', PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "children", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "className", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "containerClassName", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "danger", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "onClose", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "onKeyDown", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "open", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "preventCloseOnClickOutside", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "selectorPrimaryFocus", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "selectorsFloatingMenus", PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "size", PropTypes__default["default"].oneOf(['xs', 'sm', 'md', 'lg'])), _ComposedModal$propTy);
230
+ ComposedModal.propTypes = (_ComposedModal$propTy = {}, _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, 'aria-label', PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, 'aria-labelledby', PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "children", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "className", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "containerClassName", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "danger", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "isFullWidth", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "onClose", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "onKeyDown", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "open", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "preventCloseOnClickOutside", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "selectorPrimaryFocus", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "selectorsFloatingMenus", PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)), _rollupPluginBabelHelpers.defineProperty(_ComposedModal$propTy, "size", PropTypes__default["default"].oneOf(['xs', 'sm', 'md', 'lg'])), _ComposedModal$propTy);
230
231
  ComposedModal.defaultProps = {
231
232
  onKeyDown: function onKeyDown() {},
232
233
  selectorPrimaryFocus: '[data-modal-primary-focus]'
@@ -22,6 +22,8 @@ var rangePlugin = require('./plugins/rangePlugin.js');
22
22
  var deprecate = require('../../prop-types/deprecate.js');
23
23
  var usePrefix = require('../../internal/usePrefix.js');
24
24
  var useSavedCallback = require('../../internal/useSavedCallback.js');
25
+ var iconsReact = require('@carbon/icons-react');
26
+ var FormContext = require('../FluidForm/FormContext.js');
25
27
  var match = require('../../internal/keyboard/match.js');
26
28
  var keys = require('../../internal/keyboard/keys.js');
27
29
 
@@ -32,7 +34,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
34
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
33
35
  var flatpickr__default = /*#__PURE__*/_interopDefaultLegacy(flatpickr);
34
36
 
35
- var _excluded = ["allowInput", "appendTo", "children", "className", "closeOnSelect", "dateFormat", "datePickerType", "disable", "enable", "inline", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
37
+ var _excluded = ["allowInput", "appendTo", "children", "className", "closeOnSelect", "dateFormat", "datePickerType", "disable", "enable", "inline", "invalid", "invalidText", "warn", "warnText", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
36
38
 
37
39
  index["default"].en.weekdays.shorthand.forEach(function (_day, index$1) {
38
40
  var currentDay = index["default"].en.weekdays.shorthand;
@@ -172,6 +174,10 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Date
172
174
  disable = _ref.disable,
173
175
  enable = _ref.enable,
174
176
  inline = _ref.inline,
177
+ invalid = _ref.invalid,
178
+ invalidText = _ref.invalidText,
179
+ warn = _ref.warn,
180
+ warnText = _ref.warnText,
175
181
  _ref$light = _ref.light,
176
182
  light = _ref$light === void 0 ? false : _ref$light,
177
183
  _ref$locale = _ref.locale,
@@ -187,6 +193,10 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Date
187
193
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
188
194
 
189
195
  var prefix = usePrefix.usePrefix();
196
+
197
+ var _useContext = React.useContext(FormContext.FormContext),
198
+ isFluid = _useContext.isFluid;
199
+
190
200
  var startInputField = React.useRef(null);
191
201
  var endInputField = React.useRef(null);
192
202
  var calendarRef = React.useRef(null);
@@ -399,12 +409,36 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Date
399
409
  startInputField.current.value = value;
400
410
  }
401
411
  }, [value, prefix]);
412
+ var fluidError;
413
+
414
+ if (isFluid) {
415
+ if (invalid) {
416
+ fluidError = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningFilled, {
417
+ className: "".concat(prefix, "--date-picker__icon ").concat(prefix, "--date-picker__icon--invalid")
418
+ }), /*#__PURE__*/React__default["default"].createElement("hr", {
419
+ className: "".concat(prefix, "--date-picker__divider")
420
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
421
+ className: "".concat(prefix, "--form-requirement")
422
+ }, invalidText));
423
+ }
424
+
425
+ if (warn && !invalid) {
426
+ fluidError = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningAltFilled, {
427
+ className: "".concat(prefix, "--date-picker__icon ").concat(prefix, "--date-picker__icon--warn")
428
+ }), /*#__PURE__*/React__default["default"].createElement("hr", {
429
+ className: "".concat(prefix, "--date-picker__divider")
430
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
431
+ className: "".concat(prefix, "--form-requirement")
432
+ }, warnText));
433
+ }
434
+ }
435
+
402
436
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
403
437
  className: wrapperClasses,
404
438
  ref: ref
405
439
  }, rest), /*#__PURE__*/React__default["default"].createElement("div", {
406
440
  className: datePickerClasses
407
- }, childrenWithProps));
441
+ }, childrenWithProps), fluidError);
408
442
  });
409
443
  DatePicker.propTypes = {
410
444
  /**
@@ -462,6 +496,16 @@ DatePicker.propTypes = {
462
496
  */
463
497
  inline: PropTypes__default["default"].bool,
464
498
 
499
+ /**
500
+ * Specify whether or not the control is invalid (Fluid only)
501
+ */
502
+ invalid: PropTypes__default["default"].bool,
503
+
504
+ /**
505
+ * Provide the text that is displayed when the control is in error state (Fluid Only)
506
+ */
507
+ invalidText: PropTypes__default["default"].node,
508
+
465
509
  /**
466
510
  * `true` to use the light version.
467
511
  */
@@ -567,7 +611,17 @@ DatePicker.propTypes = {
567
611
  * The value of the date value provided to flatpickr, could
568
612
  * be a date, a date number, a date string, an array of dates.
569
613
  */
570
- value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].arrayOf(PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number, PropTypes__default["default"].object])), PropTypes__default["default"].object, PropTypes__default["default"].number])
614
+ value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].arrayOf(PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number, PropTypes__default["default"].object])), PropTypes__default["default"].object, PropTypes__default["default"].number]),
615
+
616
+ /**
617
+ * Specify whether the control is currently in warning state (Fluid only)
618
+ */
619
+ warn: PropTypes__default["default"].bool,
620
+
621
+ /**
622
+ * Provide the text that is displayed when the control is in warning state (Fluid only)
623
+ */
624
+ warnText: PropTypes__default["default"].node
571
625
  };
572
626
  var DatePicker$1 = DatePicker;
573
627
 
@@ -15,6 +15,7 @@ var cx = require('classnames');
15
15
  var PropTypes = require('prop-types');
16
16
  var React = require('react');
17
17
  var usePrefix = require('../../internal/usePrefix.js');
18
+ var FormContext = require('../FluidForm/FormContext.js');
18
19
 
19
20
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
21
 
@@ -24,7 +25,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
25
 
25
26
  var _excluded = ["datePickerType", "disabled", "helperText", "hideLabel", "id", "invalid", "invalidText", "labelText", "onClick", "onChange", "pattern", "placeholder", "size", "type", "warn", "warnText"];
26
27
  var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function DatePickerInput(props, ref) {
27
- var _cx, _cx2, _cx4;
28
+ var _cx, _cx2, _cx4, _cx5;
28
29
 
29
30
  var datePickerType = props.datePickerType,
30
31
  _props$disabled = props.disabled,
@@ -52,6 +53,10 @@ var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function
52
53
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
53
54
 
54
55
  var prefix = usePrefix.usePrefix();
56
+
57
+ var _useContext = React.useContext(FormContext.FormContext),
58
+ isFluid = _useContext.isFluid;
59
+
55
60
  var datePickerInputProps = {
56
61
  id: id,
57
62
  onChange: function onChange(event) {
@@ -71,8 +76,8 @@ var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function
71
76
  var wrapperClasses = cx__default["default"]("".concat(prefix, "--date-picker-input__wrapper"), (_cx = {}, _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--date-picker-input__wrapper--invalid"), invalid), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--date-picker-input__wrapper--warn"), warn), _cx));
72
77
  var labelClasses = cx__default["default"]("".concat(prefix, "--label"), (_cx2 = {}, _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--visually-hidden"), hideLabel), _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--label--disabled"), disabled), _cx2));
73
78
  var helperTextClasses = cx__default["default"]("".concat(prefix, "--form__helper-text"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--form__helper-text--disabled"), disabled));
74
- var inputClasses = cx__default["default"]("".concat(prefix, "--date-picker__input"), (_cx4 = {}, _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--").concat(size), size), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--invalid"), invalid), _cx4));
75
- var containerClasses = cx__default["default"]("".concat(prefix, "--date-picker-container"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--date-picker--nolabel"), !labelText));
79
+ var inputClasses = cx__default["default"]("".concat(prefix, "--date-picker__input"), (_cx4 = {}, _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--").concat(size), size), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--invalid"), invalid), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--warn"), warn), _cx4));
80
+ var containerClasses = cx__default["default"]("".concat(prefix, "--date-picker-container"), (_cx5 = {}, _rollupPluginBabelHelpers.defineProperty(_cx5, "".concat(prefix, "--date-picker--nolabel"), !labelText), _rollupPluginBabelHelpers.defineProperty(_cx5, "".concat(prefix, "--date-picker--fluid--invalid"), isFluid && invalid), _rollupPluginBabelHelpers.defineProperty(_cx5, "".concat(prefix, "--date-picker--fluid--warn"), isFluid && warn), _cx5));
76
81
  var input = invalid ? /*#__PURE__*/React__default["default"].createElement("input", _rollupPluginBabelHelpers["extends"]({}, rest, datePickerInputProps, {
77
82
  disabled: disabled,
78
83
  ref: ref,
@@ -90,15 +95,21 @@ var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function
90
95
  className: labelClasses
91
96
  }, labelText), /*#__PURE__*/React__default["default"].createElement("div", {
92
97
  className: wrapperClasses
93
- }, input, /*#__PURE__*/React__default["default"].createElement(DatePickerIcon, {
98
+ }, input, isFluid && /*#__PURE__*/React__default["default"].createElement(DatePickerIcon, {
99
+ datePickerType: datePickerType
100
+ }), /*#__PURE__*/React__default["default"].createElement(DatePickerIcon, {
94
101
  datePickerType: datePickerType,
95
102
  invalid: invalid,
96
103
  warn: warn
97
- })), invalid && /*#__PURE__*/React__default["default"].createElement("div", {
104
+ })), invalid && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
105
+ className: "".concat(prefix, "--date-picker__divider")
106
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
98
107
  className: "".concat(prefix, "--form-requirement")
99
- }, invalidText), warn && /*#__PURE__*/React__default["default"].createElement("div", {
108
+ }, invalidText)), warn && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
109
+ className: "".concat(prefix, "--date-picker__divider")
110
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
100
111
  className: "".concat(prefix, "--form-requirement")
101
- }, warnText), helperText && /*#__PURE__*/React__default["default"].createElement("div", {
112
+ }, warnText)), helperText && /*#__PURE__*/React__default["default"].createElement("div", {
102
113
  className: helperTextClasses
103
114
  }, helperText));
104
115
  });
@@ -206,8 +217,13 @@ function DatePickerIcon(_ref) {
206
217
  warn = _ref.warn;
207
218
  var prefix = usePrefix.usePrefix();
208
219
 
220
+ var _useContext2 = React.useContext(FormContext.FormContext),
221
+ isFluid = _useContext2.isFluid;
222
+
209
223
  if (datePickerType === 'simple' && !invalid && !warn) {
210
- return null;
224
+ if (!isFluid) {
225
+ return null;
226
+ }
211
227
  }
212
228
 
213
229
  if (invalid) {
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2022
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
+ var PropTypes = require('prop-types');
14
+ var React = require('react');
15
+ var cx = require('classnames');
16
+ var DatePicker = require('../DatePicker/DatePicker.js');
17
+ var usePrefix = require('../../internal/usePrefix.js');
18
+ var FormContext = require('../FluidForm/FormContext.js');
19
+
20
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
+
22
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
23
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
+ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
25
+
26
+ var _excluded = ["className", "children", "invalid", "invalidText", "warn", "warnText"];
27
+ var FluidDatePicker = /*#__PURE__*/React__default["default"].forwardRef(function FluidDatePicker(_ref, ref) {
28
+ var _classnames;
29
+
30
+ var className = _ref.className,
31
+ children = _ref.children,
32
+ invalid = _ref.invalid,
33
+ invalidText = _ref.invalidText,
34
+ warn = _ref.warn,
35
+ warnText = _ref.warnText,
36
+ other = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
37
+
38
+ var prefix = usePrefix.usePrefix();
39
+ var classNames = cx__default["default"](className, (_classnames = {}, _rollupPluginBabelHelpers.defineProperty(_classnames, "".concat(prefix, "--date-picker--fluid"), true), _rollupPluginBabelHelpers.defineProperty(_classnames, "".concat(prefix, "--date-picker--fluid--invalid"), invalid), _rollupPluginBabelHelpers.defineProperty(_classnames, "".concat(prefix, "--date-picker--fluid--warn"), warn), _classnames));
40
+ return /*#__PURE__*/React__default["default"].createElement(FormContext.FormContext.Provider, {
41
+ value: {
42
+ isFluid: true
43
+ }
44
+ }, /*#__PURE__*/React__default["default"].createElement(DatePicker["default"], _rollupPluginBabelHelpers["extends"]({
45
+ invalid: invalid,
46
+ invalidText: invalidText,
47
+ warn: warn,
48
+ warnText: warnText,
49
+ className: classNames,
50
+ ref: ref
51
+ }, other), children));
52
+ });
53
+ FluidDatePicker.propTypes = {
54
+ /**
55
+ * The child node(s)
56
+ */
57
+ children: PropTypes__default["default"].node,
58
+
59
+ /**
60
+ * Specify an optional className to be applied to the outer FluidForm wrapper
61
+ */
62
+ className: PropTypes__default["default"].string,
63
+
64
+ /**
65
+ * Specify whether or not the control is invalid
66
+ */
67
+ invalid: PropTypes__default["default"].bool,
68
+
69
+ /**
70
+ * Provide the text that is displayed when the control is in error state
71
+ */
72
+ invalidText: PropTypes__default["default"].node,
73
+
74
+ /**
75
+ * Specify whether the control is currently in warning state
76
+ */
77
+ warn: PropTypes__default["default"].bool,
78
+
79
+ /**
80
+ * Provide the text that is displayed when the control is in warning state
81
+ */
82
+ warnText: PropTypes__default["default"].node
83
+ };
84
+ var FluidDatePicker$1 = FluidDatePicker;
85
+
86
+ exports["default"] = FluidDatePicker$1;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Copyright IBM Corp. 2016, 2022
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
+ var React = require('react');
14
+ var DatePickerInput = require('../DatePickerInput/DatePickerInput.js');
15
+ var FormContext = require('../FluidForm/FormContext.js');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
+
21
+ var FluidDatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function FluidDatePickerInput(_ref, ref) {
22
+ var other = _rollupPluginBabelHelpers["extends"]({}, _ref);
23
+
24
+ return /*#__PURE__*/React__default["default"].createElement(FormContext.FormContext.Provider, {
25
+ value: {
26
+ isFluid: true
27
+ }
28
+ }, /*#__PURE__*/React__default["default"].createElement(DatePickerInput["default"], _rollupPluginBabelHelpers["extends"]({
29
+ ref: ref
30
+ }, other)));
31
+ });
32
+ var FluidDatePickerInput$1 = FluidDatePickerInput;
33
+
34
+ exports["default"] = FluidDatePickerInput$1;
@@ -30,10 +30,10 @@ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
30
30
 
31
31
  var _Modal$propTypes;
32
32
 
33
- var _excluded = ["children", "className", "modalHeading", "modalLabel", "modalAriaLabel", "passiveModal", "secondaryButtonText", "primaryButtonText", "open", "onRequestClose", "onRequestSubmit", "onSecondarySubmit", "primaryButtonDisabled", "danger", "alert", "secondaryButtons", "selectorPrimaryFocus", "selectorsFloatingMenus", "shouldSubmitOnEnter", "size", "hasScrollingContent", "closeButtonLabel", "preventCloseOnClickOutside"];
33
+ var _excluded = ["children", "className", "modalHeading", "modalLabel", "modalAriaLabel", "passiveModal", "secondaryButtonText", "primaryButtonText", "open", "onRequestClose", "onRequestSubmit", "onSecondarySubmit", "primaryButtonDisabled", "danger", "alert", "secondaryButtons", "selectorPrimaryFocus", "selectorsFloatingMenus", "shouldSubmitOnEnter", "size", "hasScrollingContent", "closeButtonLabel", "preventCloseOnClickOutside", "isFullWidth"];
34
34
  var getInstanceId = setupGetInstanceId["default"]();
35
35
  var Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_ref, ref) {
36
- var _classNames;
36
+ var _classNames, _classNames2;
37
37
 
38
38
  var children = _ref.children,
39
39
  className = _ref.className,
@@ -58,6 +58,7 @@ var Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_re
58
58
  hasScrollingContent = _ref.hasScrollingContent,
59
59
  closeButtonLabel = _ref.closeButtonLabel,
60
60
  preventCloseOnClickOutside = _ref.preventCloseOnClickOutside,
61
+ isFullWidth = _ref.isFullWidth,
61
62
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
62
63
 
63
64
  var prefix = usePrefix.usePrefix();
@@ -115,7 +116,7 @@ var Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_re
115
116
 
116
117
  var onSecondaryButtonClick = onSecondarySubmit ? onSecondarySubmit : onRequestClose;
117
118
  var modalClasses = cx__default["default"]("".concat(prefix, "--modal"), (_classNames = {}, _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--modal-tall"), !passiveModal), _rollupPluginBabelHelpers.defineProperty(_classNames, 'is-visible', open), _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--modal--danger"), danger), _rollupPluginBabelHelpers.defineProperty(_classNames, className, className), _classNames));
118
- var containerClasses = cx__default["default"]("".concat(prefix, "--modal-container"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--modal-container--").concat(size), size));
119
+ var containerClasses = cx__default["default"]("".concat(prefix, "--modal-container"), (_classNames2 = {}, _rollupPluginBabelHelpers.defineProperty(_classNames2, "".concat(prefix, "--modal-container--").concat(size), size), _rollupPluginBabelHelpers.defineProperty(_classNames2, "".concat(prefix, "--modal-container--full-width"), isFullWidth), _classNames2));
119
120
  var contentClasses = cx__default["default"]("".concat(prefix, "--modal-content"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--modal-scroll-content"), hasScrollingContent));
120
121
  var footerClasses = cx__default["default"]("".concat(prefix, "--modal-footer"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--modal-footer--three-button"), Array.isArray(secondaryButtons) && secondaryButtons.length === 2));
121
122
  var modalButton = /*#__PURE__*/React__default["default"].createElement("button", {
@@ -250,7 +251,7 @@ Modal.propTypes = (_Modal$propTypes = {
250
251
  * Should go hand in hand with the danger prop.
251
252
  */
252
253
  alert: PropTypes__default["default"].bool
253
- }, _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, 'aria-label', requiredIfGivenPropIsTruthy["default"]('hasScrollingContent', PropTypes__default["default"].string)), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "children", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "className", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "closeButtonLabel", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "danger", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "hasScrollingContent", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "id", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "modalAriaLabel", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "modalHeading", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "modalLabel", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "onKeyDown", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "onRequestClose", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "onRequestSubmit", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "onSecondarySubmit", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "open", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "passiveModal", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "preventCloseOnClickOutside", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "primaryButtonDisabled", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "primaryButtonText", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "secondaryButtonText", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "secondaryButtons", function secondaryButtons(props, propName, componentName) {
254
+ }, _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, 'aria-label', requiredIfGivenPropIsTruthy["default"]('hasScrollingContent', PropTypes__default["default"].string)), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "children", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "className", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "closeButtonLabel", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "danger", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "hasScrollingContent", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "id", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "isFullWidth", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "modalAriaLabel", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "modalHeading", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "modalLabel", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "onKeyDown", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "onRequestClose", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "onRequestSubmit", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "onSecondarySubmit", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "open", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "passiveModal", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "preventCloseOnClickOutside", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "primaryButtonDisabled", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "primaryButtonText", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "secondaryButtonText", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "secondaryButtons", function secondaryButtons(props, propName, componentName) {
254
255
  if (props.secondaryButtons) {
255
256
  if (!Array.isArray(props.secondaryButtons) || props.secondaryButtons.length !== 2) {
256
257
  return new Error("".concat(propName, " needs to be an array of two button config objects"));
@@ -63,13 +63,19 @@ var RadioButtonGroup = /*#__PURE__*/React__default["default"].forwardRef(functio
63
63
  function getRadioButtons() {
64
64
  var mappedChildren = React__default["default"].Children.map(children, function (radioButton) {
65
65
  var value = radioButton.props.value;
66
- return /*#__PURE__*/React__default["default"].cloneElement(radioButton, {
66
+ var newProps = {
67
67
  name: name,
68
68
  key: value,
69
69
  value: value,
70
70
  onChange: handleOnChange,
71
71
  checked: value === selected
72
- });
72
+ };
73
+
74
+ if (!selected && radioButton.props.checked) {
75
+ newProps.checked = true;
76
+ }
77
+
78
+ return /*#__PURE__*/React__default["default"].cloneElement(radioButton, newProps);
73
79
  });
74
80
  return mappedChildren;
75
81
  }
@@ -59,6 +59,11 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function TextAr
59
59
  textCount = _useState2[0],
60
60
  setTextCount = _useState2[1];
61
61
 
62
+ var _useState3 = React.useState(''),
63
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
64
+ ariaAnnouncement = _useState4[0],
65
+ setAriaAnnouncement = _useState4[1];
66
+
62
67
  var textareaProps = {
63
68
  id: id,
64
69
  onChange: function onChange(evt) {
@@ -82,6 +87,15 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function TextAr
82
87
  textareaProps.maxLength = maxCount;
83
88
  }
84
89
 
90
+ React.useEffect(function () {
91
+ var lastTen = maxCount - 10;
92
+
93
+ if (textCount >= lastTen) {
94
+ setAriaAnnouncement("".concat(maxCount - textCount, " characters left."));
95
+ } else {
96
+ setAriaAnnouncement('');
97
+ }
98
+ }, [textCount, maxCount]);
85
99
  var labelClasses = cx__default["default"]("".concat(prefix, "--label"), (_classNames = {}, _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--visually-hidden"), hideLabel && !isFluid), _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--label--disabled"), disabled), _classNames));
86
100
  var label = labelText ? /*#__PURE__*/React__default["default"].createElement("label", {
87
101
  htmlFor: id,
@@ -109,7 +123,10 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function TextAr
109
123
  className: textareaClasses,
110
124
  "aria-invalid": invalid || null,
111
125
  "aria-describedby": invalid ? errorId : null,
112
- disabled: other.disabled
126
+ disabled: other.disabled,
127
+ style: other.cols ? {} : {
128
+ width: "100%"
129
+ }
113
130
  }));
114
131
  return /*#__PURE__*/React__default["default"].createElement("div", {
115
132
  className: enabled ? cx__default["default"]("".concat(prefix, "--form-item"), className) : "".concat(prefix, "--form-item")
@@ -120,7 +137,10 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function TextAr
120
137
  "data-invalid": invalid || null
121
138
  }, invalid && !isFluid && /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningFilled, {
122
139
  className: "".concat(prefix, "--text-area__invalid-icon")
123
- }), input, isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
140
+ }), input, /*#__PURE__*/React__default["default"].createElement("span", {
141
+ className: "".concat(prefix, "--text-area__counter-alert"),
142
+ role: "alert"
143
+ }, ariaAnnouncement), isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
124
144
  className: "".concat(prefix, "--text-area__divider")
125
145
  }), isFluid && invalid ? error : null), invalid && !isFluid ? error : helper);
126
146
  });
@@ -227,7 +247,6 @@ TextArea.defaultProps = {
227
247
  onClick: function onClick() {},
228
248
  placeholder: '',
229
249
  rows: 4,
230
- cols: 50,
231
250
  invalid: false,
232
251
  invalidText: '',
233
252
  helperText: '',
package/lib/index.js CHANGED
@@ -22,6 +22,7 @@ var index$9 = require('./components/ClassPrefix/index.js');
22
22
  var CodeSnippet_Skeleton = require('./components/CodeSnippet/CodeSnippet.Skeleton.js');
23
23
  var CodeSnippet = require('./components/CodeSnippet/CodeSnippet.js');
24
24
  var ComboBox = require('./components/ComboBox/ComboBox.js');
25
+ require('./components/ContainedList/index.js');
25
26
  var index = require('./components/ContentSwitcher/index.js');
26
27
  var Copy = require('./components/Copy/Copy.js');
27
28
  var CopyButton = require('./components/CopyButton/CopyButton.js');
@@ -99,7 +100,6 @@ var Slider_Skeleton = require('./components/Slider/Slider.Skeleton.js');
99
100
  var TextInput_Skeleton = require('./components/TextInput/TextInput.Skeleton.js');
100
101
  var ToggleSmall_Skeleton = require('./components/ToggleSmall/ToggleSmall.Skeleton.js');
101
102
  var Icon_Skeleton = require('./components/Icon/Icon.Skeleton.js');
102
- require('./components/ContainedList/index.js');
103
103
  var index$d = require('./components/FeatureFlags/index.js');
104
104
  var index$e = require('./components/Heading/index.js');
105
105
  var index$f = require('./components/IconButton/index.js');
@@ -113,6 +113,7 @@ var DefinitionTooltip = require('./components/Tooltip/next/DefinitionTooltip.js'
113
113
  var index$k = require('./components/Theme/index.js');
114
114
  var usePrefix = require('./internal/usePrefix.js');
115
115
  var AspectRatio = require('./components/AspectRatio/AspectRatio.js');
116
+ var ContainedListItem = require('./components/ContainedList/ContainedListItem/ContainedListItem.js');
116
117
  var Row = require('./components/Grid/Row.js');
117
118
  var Column = require('./components/Grid/Column.js');
118
119
  var NumberInput_Skeleton = require('./components/NumberInput/NumberInput.Skeleton.js');
@@ -125,7 +126,6 @@ var SideNavFooter = require('./components/UIShell/SideNavFooter.js');
125
126
  var SideNavIcon = require('./components/UIShell/SideNavIcon.js');
126
127
  var SideNavItem = require('./components/UIShell/SideNavItem.js');
127
128
  var SideNavLinkText = require('./components/UIShell/SideNavLinkText.js');
128
- var ContainedListItem = require('./components/ContainedList/ContainedListItem/ContainedListItem.js');
129
129
  var useContextMenu = require('./components/ContextMenu/useContextMenu.js');
130
130
  var FluidTextArea = require('./components/FluidTextArea/FluidTextArea.js');
131
131
  var FluidTextArea_Skeleton = require('./components/FluidTextArea/FluidTextArea.Skeleton.js');
@@ -139,10 +139,10 @@ var MenuSelectableItem = require('./components/Menu/MenuSelectableItem.js');
139
139
  var PageSelector = require('./components/Pagination/experimental/PageSelector.js');
140
140
  var Pagination$1 = require('./components/Pagination/experimental/Pagination.js');
141
141
  var ProgressBar = require('./components/ProgressBar/ProgressBar.js');
142
+ var ContainedList = require('./components/ContainedList/ContainedList.js');
142
143
  var MultiSelect = require('./components/MultiSelect/MultiSelect.js');
143
144
  var TextInput = require('./components/TextInput/TextInput.js');
144
145
  var TreeView = require('./components/TreeView/TreeView.js');
145
- var ContainedList = require('./components/ContainedList/ContainedList.js');
146
146
  var Menu = require('./components/Menu/Menu.js');
147
147
  var Breadcrumb = require('./components/Breadcrumb/Breadcrumb.js');
148
148
  var BreadcrumbItem = require('./components/Breadcrumb/BreadcrumbItem.js');
@@ -205,6 +205,8 @@ var SideNavMenuItem = require('./components/UIShell/SideNavMenuItem.js');
205
205
  var SideNavSwitcher = require('./components/UIShell/SideNavSwitcher.js');
206
206
  var FluidComboBox = require('./components/FluidComboBox/FluidComboBox.js');
207
207
  var FluidComboBox_Skeleton = require('./components/FluidComboBox/FluidComboBox.Skeleton.js');
208
+ var FluidDatePicker = require('./components/FluidDatePicker/FluidDatePicker.js');
209
+ var FluidDatePickerInput = require('./components/FluidDatePickerInput/FluidDatePickerInput.js');
208
210
  var FluidDropdown = require('./components/FluidDropdown/FluidDropdown.js');
209
211
  var FluidDropdown_Skeleton = require('./components/FluidDropdown/FluidDropdown.Skeleton.js');
210
212
  var FluidMultiSelect = require('./components/FluidMultiSelect/FluidMultiSelect.js');
@@ -338,6 +340,7 @@ exports.Theme = index$k.Theme;
338
340
  exports.useTheme = index$k.useTheme;
339
341
  exports.usePrefix = usePrefix.usePrefix;
340
342
  exports.AspectRatio = AspectRatio["default"];
343
+ exports.ContainedListItem = ContainedListItem["default"];
341
344
  exports.Row = Row["default"];
342
345
  exports.Column = Column["default"];
343
346
  exports.NumberInputSkeleton = NumberInput_Skeleton["default"];
@@ -350,7 +353,6 @@ exports.SideNavFooter = SideNavFooter["default"];
350
353
  exports.SideNavIcon = SideNavIcon["default"];
351
354
  exports.SideNavItem = SideNavItem["default"];
352
355
  exports.SideNavLinkText = SideNavLinkText["default"];
353
- exports.unstable_ContainedListItem = ContainedListItem["default"];
354
356
  exports.unstable_useContextMenu = useContextMenu["default"];
355
357
  exports.unstable__FluidTextArea = FluidTextArea["default"];
356
358
  exports.unstable__FluidTextAreaSkeleton = FluidTextArea_Skeleton["default"];
@@ -364,10 +366,10 @@ exports.unstable_MenuSelectableItem = MenuSelectableItem["default"];
364
366
  exports.unstable_PageSelector = PageSelector["default"];
365
367
  exports.unstable_Pagination = Pagination$1["default"];
366
368
  exports.ProgressBar = ProgressBar["default"];
369
+ exports.ContainedList = ContainedList["default"];
367
370
  exports.MultiSelect = MultiSelect["default"];
368
371
  exports.TextInput = TextInput["default"];
369
372
  exports.TreeView = TreeView["default"];
370
- exports.unstable_ContainedList = ContainedList["default"];
371
373
  exports.unstable_Menu = Menu["default"];
372
374
  exports.Breadcrumb = Breadcrumb["default"];
373
375
  exports.BreadcrumbItem = BreadcrumbItem["default"];
@@ -441,6 +443,8 @@ exports.SideNavMenuItem = SideNavMenuItem["default"];
441
443
  exports.SideNavSwitcher = SideNavSwitcher["default"];
442
444
  exports.unstable__FluidComboBox = FluidComboBox["default"];
443
445
  exports.unstable__FluidComboBoxSkeleton = FluidComboBox_Skeleton["default"];
446
+ exports.unstable__FluidDatePicker = FluidDatePicker["default"];
447
+ exports.unstable__FluidDatePickerInput = FluidDatePickerInput["default"];
444
448
  exports.unstable__FluidDropdown = FluidDropdown["default"];
445
449
  exports.unstable__FluidDropdownSkeleton = FluidDropdown_Skeleton["default"];
446
450
  exports.unstable__FluidMultiSelect = FluidMultiSelect["default"];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/react",
3
3
  "description": "React components for the Carbon Design System",
4
- "version": "1.17.0-rc.0",
4
+ "version": "1.17.0-rc.2",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -46,7 +46,7 @@
46
46
  "@carbon/feature-flags": "^0.9.0",
47
47
  "@carbon/icons-react": "^11.10.0",
48
48
  "@carbon/layout": "^11.7.0",
49
- "@carbon/styles": "^1.17.0-rc.0",
49
+ "@carbon/styles": "^1.17.0-rc.2",
50
50
  "@carbon/telemetry": "0.1.0",
51
51
  "classnames": "2.3.2",
52
52
  "copy-to-clipboard": "^3.3.1",
@@ -73,7 +73,7 @@
73
73
  "@babel/preset-env": "^7.18.2",
74
74
  "@babel/preset-react": "^7.17.12",
75
75
  "@carbon/test-utils": "^10.26.0",
76
- "@carbon/themes": "^11.11.0",
76
+ "@carbon/themes": "^11.11.1-rc.0",
77
77
  "@rollup/plugin-babel": "^5.3.0",
78
78
  "@rollup/plugin-commonjs": "^21.0.0",
79
79
  "@rollup/plugin-node-resolve": "^13.0.0",
@@ -135,5 +135,5 @@
135
135
  "**/*.scss",
136
136
  "**/*.css"
137
137
  ],
138
- "gitHead": "707f5b292f95f7146576a1995350f47582a3b39b"
138
+ "gitHead": "a6650fd95565a79d30bef8ba0e0c4ed011d25931"
139
139
  }
@@ -0,0 +1,9 @@
1
+ // Code generated by @carbon/react. DO NOT EDIT.
2
+ //
3
+ // Copyright IBM Corp. 2018, 2018
4
+ //
5
+ // This source code is licensed under the Apache-2.0 license found in the
6
+ // LICENSE file in the root directory of this source tree.
7
+ //
8
+
9
+ @forward '@carbon/styles/scss/components/fluid-date-picker/fluid-date-picker';
@@ -0,0 +1,9 @@
1
+ // Code generated by @carbon/react. DO NOT EDIT.
2
+ //
3
+ // Copyright IBM Corp. 2018, 2018
4
+ //
5
+ // This source code is licensed under the Apache-2.0 license found in the
6
+ // LICENSE file in the root directory of this source tree.
7
+ //
8
+
9
+ @forward '@carbon/styles/scss/components/fluid-date-picker';