@carbon/react 1.17.0-rc.1 → 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.
@@ -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 };
@@ -113,7 +113,10 @@ var TextArea = /*#__PURE__*/React__default.forwardRef(function TextArea(_ref, re
113
113
  className: textareaClasses,
114
114
  "aria-invalid": invalid || null,
115
115
  "aria-describedby": invalid ? errorId : null,
116
- disabled: other.disabled
116
+ disabled: other.disabled,
117
+ style: other.cols ? {} : {
118
+ width: "100%"
119
+ }
117
120
  }));
118
121
  return /*#__PURE__*/React__default.createElement("div", {
119
122
  className: enabled ? cx("".concat(prefix, "--form-item"), className) : "".concat(prefix, "--form-item")
@@ -234,7 +237,6 @@ TextArea.defaultProps = {
234
237
  onClick: function onClick() {},
235
238
  placeholder: '',
236
239
  rows: 4,
237
- cols: 50,
238
240
  invalid: false,
239
241
  invalidText: '',
240
242
  helperText: '',
package/es/index.js CHANGED
@@ -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';
@@ -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;
@@ -123,7 +123,10 @@ var TextArea = /*#__PURE__*/React__default["default"].forwardRef(function TextAr
123
123
  className: textareaClasses,
124
124
  "aria-invalid": invalid || null,
125
125
  "aria-describedby": invalid ? errorId : null,
126
- disabled: other.disabled
126
+ disabled: other.disabled,
127
+ style: other.cols ? {} : {
128
+ width: "100%"
129
+ }
127
130
  }));
128
131
  return /*#__PURE__*/React__default["default"].createElement("div", {
129
132
  className: enabled ? cx__default["default"]("".concat(prefix, "--form-item"), className) : "".concat(prefix, "--form-item")
@@ -244,7 +247,6 @@ TextArea.defaultProps = {
244
247
  onClick: function onClick() {},
245
248
  placeholder: '',
246
249
  rows: 4,
247
- cols: 50,
248
250
  invalid: false,
249
251
  invalidText: '',
250
252
  helperText: '',
package/lib/index.js CHANGED
@@ -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');
@@ -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.1",
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.1",
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",
@@ -135,5 +135,5 @@
135
135
  "**/*.scss",
136
136
  "**/*.css"
137
137
  ],
138
- "gitHead": "01475a0713de3b5243b747ffe7036f652ae5c22f"
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';