@carbon/react 1.5.0 → 1.6.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/es/components/ComposedModal/ComposedModal.js +2 -1
  2. package/es/components/ComposedModal/next/ComposedModal.js +2 -1
  3. package/es/components/DatePicker/DatePicker.js +14 -5
  4. package/es/components/FileUploader/FileUploader.js +1 -1
  5. package/es/components/FileUploader/FileUploaderButton.js +1 -1
  6. package/es/components/FileUploader/Filename.js +1 -1
  7. package/es/components/Link/Link.js +6 -3
  8. package/es/components/ListBox/ListBoxPropTypes.js +1 -2
  9. package/es/components/ListBox/ListBoxSelection.js +3 -4
  10. package/es/components/RadioButton/next/RadioButton.js +2 -1
  11. package/es/components/Tabs/next/Tabs.js +42 -4
  12. package/es/components/Toggle/Toggle.js +147 -109
  13. package/es/components/UIShell/SideNav.js +3 -3
  14. package/es/index.js +3 -2
  15. package/lib/components/ComposedModal/ComposedModal.js +2 -1
  16. package/lib/components/ComposedModal/next/ComposedModal.js +2 -1
  17. package/lib/components/DatePicker/DatePicker.js +14 -5
  18. package/lib/components/FileUploader/FileUploader.js +1 -1
  19. package/lib/components/FileUploader/FileUploaderButton.js +1 -1
  20. package/lib/components/FileUploader/Filename.js +1 -1
  21. package/lib/components/Link/Link.js +6 -3
  22. package/lib/components/ListBox/ListBoxPropTypes.js +1 -21
  23. package/lib/components/ListBox/ListBoxSelection.js +3 -4
  24. package/lib/components/RadioButton/next/RadioButton.js +2 -1
  25. package/lib/components/Tabs/next/Tabs.js +42 -4
  26. package/lib/components/Toggle/Toggle.js +146 -107
  27. package/lib/components/UIShell/SideNav.js +3 -3
  28. package/lib/index.js +70 -68
  29. package/package.json +3 -3
  30. package/es/components/Toggle/index.js +0 -19
  31. package/es/components/Toggle/next/Toggle.js +0 -158
  32. package/lib/components/Toggle/index.js +0 -23
  33. package/lib/components/Toggle/next/Toggle.js +0 -169
@@ -223,7 +223,8 @@ var ComposedModal = /*#__PURE__*/function (_Component) {
223
223
  onClick: this.handleClick,
224
224
  onKeyDown: this.handleKeyDown,
225
225
  onTransitionEnd: open ? this.handleTransitionEnd : undefined,
226
- className: modalClass
226
+ className: modalClass,
227
+ tabIndex: "-1"
227
228
  }), /*#__PURE__*/React__default.createElement("span", {
228
229
  ref: this.startSentinel,
229
230
  tabIndex: "0",
@@ -194,7 +194,8 @@ var ComposedModal = /*#__PURE__*/React__default.forwardRef(function ComposedModa
194
194
  onBlur: handleBlur,
195
195
  onClick: handleClick,
196
196
  onKeyDown: handleKeyDown,
197
- className: modalClass
197
+ className: modalClass,
198
+ tabIndex: "-1"
198
199
  }), /*#__PURE__*/React__default.createElement("div", {
199
200
  className: containerClass,
200
201
  role: "dialog",
@@ -20,7 +20,7 @@ import { useSavedCallback } from '../../internal/useSavedCallback.js';
20
20
  import { match } from '../../internal/keyboard/match.js';
21
21
  import { ArrowDown } from '../../internal/keyboard/keys.js';
22
22
 
23
- var _excluded = ["allowInput", "appendTo", "children", "className", "dateFormat", "datePickerType", "disable", "enable", "inline", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
23
+ var _excluded = ["allowInput", "appendTo", "children", "className", "closeOnSelect", "dateFormat", "datePickerType", "disable", "enable", "inline", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
24
24
 
25
25
  l10n.en.weekdays.shorthand.forEach(function (_day, index) {
26
26
  var currentDay = l10n.en.weekdays.shorthand;
@@ -152,6 +152,8 @@ function DatePicker(_ref) {
152
152
  appendTo = _ref.appendTo,
153
153
  children = _ref.children,
154
154
  className = _ref.className,
155
+ _ref$closeOnSelect = _ref.closeOnSelect,
156
+ closeOnSelect = _ref$closeOnSelect === void 0 ? true : _ref$closeOnSelect,
155
157
  _ref$dateFormat = _ref.dateFormat,
156
158
  dateFormat = _ref$dateFormat === void 0 ? 'm/d/Y' : _ref$dateFormat,
157
159
  datePickerType = _ref.datePickerType,
@@ -251,6 +253,7 @@ function DatePicker(_ref) {
251
253
  inline: inline !== null && inline !== void 0 ? inline : false,
252
254
  disableMobile: true,
253
255
  defaultDate: value,
256
+ closeOnSelect: closeOnSelect,
254
257
  mode: datePickerType,
255
258
  allowInput: allowInput !== null && allowInput !== void 0 ? allowInput : true,
256
259
  dateFormat: dateFormat,
@@ -311,7 +314,7 @@ function DatePicker(_ref) {
311
314
  // error with IBM Equal Access Accessibility Checker so we add an aria
312
315
  // role to the container div.
313
316
 
314
- calendar.calendarContainer.setAttribute('role', 'region'); // IBM EAAC requires an aria-label on a role='region'
317
+ calendar.calendarContainer.setAttribute('role', 'application'); // IBM EAAC requires an aria-label on a role='region'
315
318
 
316
319
  calendar.calendarContainer.setAttribute('aria-label', 'calendar-container');
317
320
  }
@@ -375,9 +378,10 @@ function DatePicker(_ref) {
375
378
  }, [inline]);
376
379
  useEffect(function () {
377
380
  if (calendarRef.current) {
378
- calendarRef.current.set({
379
- value: value
380
- });
381
+ if (value !== undefined) {
382
+ calendarRef.current.setDate(value);
383
+ }
384
+
381
385
  updateClassNames(calendarRef.current, prefix); //for simple date picker w/o calendar; initial mount may not have value
382
386
  } else if (!calendarRef.current && value) {
383
387
  startInputField.current.value = value;
@@ -412,6 +416,11 @@ DatePicker.propTypes = {
412
416
  */
413
417
  className: PropTypes.string,
414
418
 
419
+ /**
420
+ * flatpickr prop passthrough. Controls whether the calendar dropdown closes upon selection.
421
+ */
422
+ closeOnSelect: PropTypes.bool,
423
+
415
424
  /**
416
425
  * The date format.
417
426
  */
@@ -224,7 +224,7 @@ _defineProperty(FileUploader, "propTypes", {
224
224
  iconDescription: FeatureFlags.enabled('enable-v11-release') ? PropTypes.string.isRequired : PropTypes.string,
225
225
 
226
226
  /**
227
- * Specify the description text of this <FileUploader>
227
+ * Specify the description text of this `<FileUploader>`
228
228
  */
229
229
  labelDescription: PropTypes.string,
230
230
 
@@ -146,7 +146,7 @@ FileUploaderButton.propTypes = {
146
146
  disabled: PropTypes.bool,
147
147
 
148
148
  /**
149
- * Provide a unique id for the underlying <input> node
149
+ * Provide a unique id for the underlying `<input>` node
150
150
  */
151
151
  id: PropTypes.string,
152
152
 
@@ -69,7 +69,7 @@ Filename.propTypes = {
69
69
  status: PropTypes.oneOf(['edit', 'complete', 'uploading']),
70
70
 
71
71
  /**
72
- * Provide a custom tabIndex value for the <Filename>
72
+ * Provide a custom tabIndex value for the `<Filename>`
73
73
  */
74
74
  tabIndex: PropTypes.string
75
75
  };
@@ -18,9 +18,12 @@ var Link = /*#__PURE__*/React__default.forwardRef(function Link(_ref, ref) {
18
18
  var children = _ref.children,
19
19
  customClassName = _ref.className,
20
20
  href = _ref.href,
21
- disabled = _ref.disabled,
22
- inline = _ref.inline,
23
- visited = _ref.visited,
21
+ _ref$disabled = _ref.disabled,
22
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
23
+ _ref$inline = _ref.inline,
24
+ inline = _ref$inline === void 0 ? false : _ref$inline,
25
+ _ref$visited = _ref.visited,
26
+ visited = _ref$visited === void 0 ? false : _ref$visited,
24
27
  Icon = _ref.renderIcon,
25
28
  size = _ref.size,
26
29
  rest = _objectWithoutProperties(_ref, _excluded);
@@ -6,9 +6,8 @@
6
6
  */
7
7
 
8
8
  import PropTypes from 'prop-types';
9
- import * as FeatureFlags from '@carbon/feature-flags';
10
9
 
11
10
  var ListBoxType = PropTypes.oneOf(['default', 'inline']);
12
- var ListBoxSize = FeatureFlags.enabled('enable-v11-release') ? PropTypes.oneOf(['sm', 'md', 'lg']) : PropTypes.oneOf(['sm', 'md', 'lg', 'xl']);
11
+ var ListBoxSize = PropTypes.oneOf(['sm', 'md', 'lg']);
13
12
 
14
13
  export { ListBoxSize, ListBoxType };
@@ -21,7 +21,7 @@ var _Close, _Close2, _defaultTranslations;
21
21
  * selection.
22
22
  */
23
23
 
24
- var ListBoxSelection = function ListBoxSelection(_ref) {
24
+ function ListBoxSelection(_ref) {
25
25
  var _cx;
26
26
 
27
27
  var clearSelection = _ref.clearSelection,
@@ -88,7 +88,7 @@ var ListBoxSelection = function ListBoxSelection(_ref) {
88
88
  "aria-label": description,
89
89
  title: description
90
90
  }, selectionCount, _Close2 || (_Close2 = /*#__PURE__*/React__default.createElement(Close, null)));
91
- };
91
+ }
92
92
 
93
93
  var translationIds = {
94
94
  'clear.all': 'clear.all',
@@ -143,6 +143,5 @@ ListBoxSelection.defaultProps = {
143
143
  return defaultTranslations[id];
144
144
  }
145
145
  };
146
- var ListBoxSelection$1 = ListBoxSelection;
147
146
 
148
- export { ListBoxSelection$1 as default, translationIds };
147
+ export { ListBoxSelection as default, translationIds };
@@ -50,7 +50,8 @@ var RadioButton = /*#__PURE__*/React__default.forwardRef(function RadioButton(_r
50
50
  id: uniqueId,
51
51
  ref: ref,
52
52
  disabled: disabled,
53
- value: value
53
+ value: value,
54
+ name: name
54
55
  })), /*#__PURE__*/React__default.createElement("label", {
55
56
  htmlFor: uniqueId,
56
57
  className: "".concat(prefix, "--radio-button__label")
@@ -597,6 +597,11 @@ var TabPanel = /*#__PURE__*/React__default.forwardRef(function TabPanel(_ref7, f
597
597
  tabIndex = _useState8[0],
598
598
  setTabIndex = _useState8[1];
599
599
 
600
+ var _useState9 = useState(false),
601
+ _useState10 = _slicedToArray(_useState9, 2),
602
+ interactiveContent = _useState10[0],
603
+ setInteractiveContent = _useState10[1];
604
+
600
605
  var _React$useContext3 = React__default.useContext(TabsContext),
601
606
  selectedIndex = _React$useContext3.selectedIndex,
602
607
  baseId = _React$useContext3.baseId;
@@ -604,14 +609,47 @@ var TabPanel = /*#__PURE__*/React__default.forwardRef(function TabPanel(_ref7, f
604
609
  var index = React__default.useContext(TabPanelContext);
605
610
  var id = "".concat(baseId, "-tabpanel-").concat(index);
606
611
  var tabId = "".concat(baseId, "-tab-").concat(index);
607
- var className = cx("".concat(prefix, "--tab-content"), customClassName); // tabindex should only be 0 if no interactive content in children
612
+ var className = cx("".concat(prefix, "--tab-content"), customClassName, _defineProperty({}, "".concat(prefix, "--tab-content--interactive"), interactiveContent));
613
+ useEffectOnce(function () {
614
+ if (!panel.current) {
615
+ return;
616
+ }
608
617
 
609
- useEffect(function () {
610
- var interactiveContent = getInteractiveContent(panel.current);
618
+ var content = getInteractiveContent(panel.current);
611
619
 
612
- if (interactiveContent) {
620
+ if (content) {
621
+ setInteractiveContent(true);
613
622
  setTabIndex('-1');
614
623
  }
624
+ }); // tabindex should only be 0 if no interactive content in children
625
+
626
+ useEffect(function () {
627
+ if (!panel.current) {
628
+ return;
629
+ }
630
+
631
+ var node = panel.current;
632
+
633
+ function callback() {
634
+ var content = getInteractiveContent(node);
635
+
636
+ if (content) {
637
+ setInteractiveContent(true);
638
+ setTabIndex('-1');
639
+ } else {
640
+ setInteractiveContent(false);
641
+ setTabIndex('0');
642
+ }
643
+ }
644
+
645
+ var observer = new MutationObserver(callback);
646
+ observer.observe(node, {
647
+ childList: true,
648
+ subtree: true
649
+ });
650
+ return function () {
651
+ observer.disconnect(node);
652
+ };
615
653
  }, []);
616
654
  return /*#__PURE__*/React__default.createElement("div", _extends({}, rest, {
617
655
  "aria-labelledby": tabId,
@@ -5,116 +5,154 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, createClass as _createClass, objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
- import PropTypes from 'prop-types';
8
+ import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, defineProperty as _defineProperty, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
10
9
  import React__default from 'react';
10
+ import PropTypes from 'prop-types';
11
11
  import cx from 'classnames';
12
- import setupGetInstanceId from '../../tools/setupGetInstanceId.js';
13
- import { PrefixContext } from '../../internal/usePrefix.js';
14
- import { match } from '../../internal/keyboard/match.js';
15
- import { Enter } from '../../internal/keyboard/keys.js';
16
-
17
- var _path, _defineProperty2, _defineProperty3;
18
-
19
- var _excluded = ["className", "defaultToggled", "toggled", "onChange", "onToggle", "id", "labelText", "labelA", "labelB", "size"];
20
- var getInstanceId = setupGetInstanceId();
21
-
22
- var Toggle = /*#__PURE__*/function (_React$Component) {
23
- _inherits(Toggle, _React$Component);
24
-
25
- var _super = _createSuper(Toggle);
26
-
27
- function Toggle() {
28
- _classCallCheck(this, Toggle);
29
-
30
- return _super.apply(this, arguments);
31
- }
32
-
33
- _createClass(Toggle, [{
34
- key: "render",
35
- value: function render() {
36
- var prefix = this.context;
37
-
38
- var _this$props = this.props,
39
- className = _this$props.className,
40
- defaultToggled = _this$props.defaultToggled,
41
- toggled = _this$props.toggled,
42
- _onChange = _this$props.onChange,
43
- onToggle = _this$props.onToggle,
44
- _this$props$id = _this$props.id,
45
- id = _this$props$id === void 0 ? this.inputId = this.inputId || "__carbon-toggle_".concat(getInstanceId()) : _this$props$id,
46
- labelText = _this$props.labelText,
47
- labelA = _this$props.labelA,
48
- labelB = _this$props.labelB,
49
- size = _this$props.size,
50
- other = _objectWithoutProperties(_this$props, _excluded);
51
-
52
- var input;
53
- var wrapperClasses = cx("".concat(prefix, "--form-item"), _defineProperty({}, className, className));
54
- var toggleClasses = cx("".concat(prefix, "--toggle-input"), _defineProperty({}, "".concat(prefix, "--toggle-input--small"), size === 'sm'));
55
- var checkedProps = {};
56
-
57
- if (typeof toggled !== 'undefined') {
58
- checkedProps.checked = toggled;
59
- } else {
60
- checkedProps.defaultChecked = defaultToggled;
61
- }
62
-
63
- return /*#__PURE__*/React__default.createElement("div", {
64
- className: wrapperClasses
65
- }, /*#__PURE__*/React__default.createElement("input", _extends({}, other, checkedProps, {
66
- "aria-label": null,
67
- type: "checkbox",
68
- id: id,
69
- className: toggleClasses,
70
- onChange: function onChange(evt) {
71
- _onChange && _onChange(evt);
72
- onToggle(input.checked, id, evt);
73
- },
74
- ref: function ref(el) {
75
- input = el;
76
- },
77
- onKeyUp: function onKeyUp(evt) {
78
- if (match(evt, Enter)) {
79
- input.checked = !input.checked;
80
- _onChange && _onChange(evt);
81
- onToggle(input.checked, id, evt);
82
- }
83
- }
84
- })), /*#__PURE__*/React__default.createElement("label", {
85
- className: "".concat(prefix, "--toggle-input__label"),
86
- htmlFor: id,
87
- "aria-label": typeof labelText === 'string' ? null : this.props['aria-label']
88
- }, labelText, /*#__PURE__*/React__default.createElement("span", {
89
- className: "".concat(prefix, "--toggle__switch")
90
- }, size && /*#__PURE__*/React__default.createElement("svg", {
91
- className: "".concat(prefix, "--toggle__check"),
92
- width: "6px",
93
- height: "5px",
94
- viewBox: "0 0 6 5"
95
- }, _path || (_path = /*#__PURE__*/React__default.createElement("path", {
96
- d: "M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z"
97
- }))), /*#__PURE__*/React__default.createElement("span", {
98
- className: "".concat(prefix, "--toggle__text--off"),
99
- "aria-hidden": "true"
100
- }, labelA), /*#__PURE__*/React__default.createElement("span", {
101
- className: "".concat(prefix, "--toggle__text--on"),
102
- "aria-hidden": "true"
103
- }, labelB))));
12
+ import { useControllableState } from '../../internal/useControllableState.js';
13
+ import { usePrefix } from '../../internal/usePrefix.js';
14
+
15
+ var _path;
16
+
17
+ var _excluded = ["className", "defaultToggled", "disabled", "hideLabel", "id", "labelA", "labelB", "labelText", "onClick", "onToggle", "size", "toggled"];
18
+ function Toggle(_ref) {
19
+ var className = _ref.className,
20
+ _ref$defaultToggled = _ref.defaultToggled,
21
+ defaultToggled = _ref$defaultToggled === void 0 ? false : _ref$defaultToggled,
22
+ _ref$disabled = _ref.disabled,
23
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
24
+ _ref$hideLabel = _ref.hideLabel,
25
+ hideLabel = _ref$hideLabel === void 0 ? false : _ref$hideLabel,
26
+ id = _ref.id,
27
+ _ref$labelA = _ref.labelA,
28
+ labelA = _ref$labelA === void 0 ? 'Off' : _ref$labelA,
29
+ _ref$labelB = _ref.labelB,
30
+ labelB = _ref$labelB === void 0 ? 'On' : _ref$labelB,
31
+ labelText = _ref.labelText,
32
+ onClick = _ref.onClick,
33
+ onToggle = _ref.onToggle,
34
+ _ref$size = _ref.size,
35
+ size = _ref$size === void 0 ? 'md' : _ref$size,
36
+ toggled = _ref.toggled,
37
+ other = _objectWithoutProperties(_ref, _excluded);
38
+
39
+ var prefix = usePrefix();
40
+
41
+ var _useControllableState = useControllableState({
42
+ value: toggled,
43
+ onChange: onToggle,
44
+ defaultValue: defaultToggled
45
+ }),
46
+ _useControllableState2 = _slicedToArray(_useControllableState, 2),
47
+ checked = _useControllableState2[0],
48
+ setChecked = _useControllableState2[1];
49
+
50
+ function handleClick(e) {
51
+ setChecked(!checked);
52
+
53
+ if (onClick) {
54
+ onClick(e);
104
55
  }
105
- }]);
106
-
107
- return Toggle;
108
- }(React__default.Component);
109
-
110
- _defineProperty(Toggle, "propTypes", (_defineProperty2 = {}, _defineProperty(_defineProperty2, 'aria-label', PropTypes.string.isRequired), _defineProperty(_defineProperty2, "className", PropTypes.string), _defineProperty(_defineProperty2, "defaultToggled", PropTypes.bool), _defineProperty(_defineProperty2, "id", PropTypes.string.isRequired), _defineProperty(_defineProperty2, "labelA", PropTypes.node.isRequired), _defineProperty(_defineProperty2, "labelB", PropTypes.node.isRequired), _defineProperty(_defineProperty2, "labelText", PropTypes.node), _defineProperty(_defineProperty2, "onChange", PropTypes.func), _defineProperty(_defineProperty2, "onToggle", PropTypes.func), _defineProperty(_defineProperty2, "size", PropTypes.oneOf(['sm', 'md'])), _defineProperty(_defineProperty2, "toggled", PropTypes.bool), _defineProperty2));
111
-
112
- _defineProperty(Toggle, "contextType", PrefixContext);
113
-
114
- _defineProperty(Toggle, "defaultProps", (_defineProperty3 = {
115
- defaultToggled: false
116
- }, _defineProperty(_defineProperty3, 'aria-label', 'Toggle'), _defineProperty(_defineProperty3, "labelA", 'Off'), _defineProperty(_defineProperty3, "labelB", 'On'), _defineProperty(_defineProperty3, "onToggle", function onToggle() {}), _defineProperty3));
117
-
118
- var ToggleClassic = Toggle;
56
+ }
119
57
 
120
- export { ToggleClassic as default };
58
+ var isSm = size === 'sm';
59
+ var sideLabel = hideLabel ? labelText : checked ? labelB : labelA;
60
+ var wrapperClasses = cx("".concat(prefix, "--toggle"), _defineProperty({}, "".concat(prefix, "--toggle--disabled"), disabled), className);
61
+ var labelTextClasses = cx("".concat(prefix, "--toggle__label-text"), _defineProperty({}, "".concat(prefix, "--visually-hidden"), hideLabel));
62
+ var appearanceClasses = cx("".concat(prefix, "--toggle__appearance"), _defineProperty({}, "".concat(prefix, "--toggle__appearance--sm"), isSm));
63
+ var switchClasses = cx("".concat(prefix, "--toggle__switch"), _defineProperty({}, "".concat(prefix, "--toggle__switch--checked"), checked));
64
+ return /*#__PURE__*/React__default.createElement("div", {
65
+ className: wrapperClasses
66
+ }, /*#__PURE__*/React__default.createElement("button", _extends({}, other, {
67
+ id: id,
68
+ className: "".concat(prefix, "--toggle__button"),
69
+ role: "switch",
70
+ type: "button",
71
+ "aria-checked": checked,
72
+ disabled: disabled,
73
+ onClick: handleClick
74
+ })), /*#__PURE__*/React__default.createElement("label", {
75
+ htmlFor: id,
76
+ className: "".concat(prefix, "--toggle__label")
77
+ }, /*#__PURE__*/React__default.createElement("span", {
78
+ className: labelTextClasses
79
+ }, labelText), /*#__PURE__*/React__default.createElement("div", {
80
+ className: appearanceClasses
81
+ }, /*#__PURE__*/React__default.createElement("div", {
82
+ className: switchClasses
83
+ }, isSm && /*#__PURE__*/React__default.createElement("svg", {
84
+ className: "".concat(prefix, "--toggle__check"),
85
+ width: "6px",
86
+ height: "5px",
87
+ viewBox: "0 0 6 5"
88
+ }, _path || (_path = /*#__PURE__*/React__default.createElement("path", {
89
+ d: "M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z"
90
+ })))), /*#__PURE__*/React__default.createElement("span", {
91
+ className: "".concat(prefix, "--toggle__text"),
92
+ "aria-hidden": "true"
93
+ }, sideLabel))));
94
+ }
95
+ Toggle.propTypes = {
96
+ /**
97
+ * Specify a custom className to apply to the form-item node
98
+ */
99
+ className: PropTypes.string,
100
+
101
+ /**
102
+ * Specify whether the toggle should be on by default
103
+ */
104
+ defaultToggled: PropTypes.bool,
105
+
106
+ /**
107
+ * Whether this control should be disabled
108
+ */
109
+ disabled: PropTypes.bool,
110
+
111
+ /**
112
+ * Specify whether the label should be hidden, or not
113
+ */
114
+ hideLabel: PropTypes.bool,
115
+
116
+ /**
117
+ * Provide an id that unique represents the underlying `<button>`
118
+ */
119
+ id: PropTypes.string.isRequired,
120
+
121
+ /**
122
+ * Specify the label for the "off" position
123
+ */
124
+ labelA: PropTypes.node,
125
+
126
+ /**
127
+ * Specify the label for the "on" position
128
+ */
129
+ labelB: PropTypes.node,
130
+
131
+ /**
132
+ * Provide the text that will be read by a screen reader when visiting this
133
+ * control
134
+ */
135
+ labelText: PropTypes.node.isRequired,
136
+
137
+ /**
138
+ * Provide an event listener that is called when the control is clicked
139
+ */
140
+ onClick: PropTypes.func,
141
+
142
+ /**
143
+ * Provide an event listener that is called when the control is toggled
144
+ */
145
+ onToggle: PropTypes.func,
146
+
147
+ /**
148
+ * Specify the size of the Toggle. Currently only supports 'sm' or 'md' (default)
149
+ */
150
+ size: PropTypes.oneOf(['sm', 'md']),
151
+
152
+ /**
153
+ * Specify whether the control is toggled
154
+ */
155
+ toggled: PropTypes.bool
156
+ };
157
+
158
+ export { Toggle, Toggle as default };
@@ -212,15 +212,15 @@ SideNav.propTypes = _objectSpread2(_objectSpread2({}, AriaLabelPropType), {}, {
212
212
  * @param {object} event
213
213
  * @param {boolean} value
214
214
  */
215
- onToggle: PropTypes.func,
216
-
215
+ onToggle: PropTypes.func
217
216
  /**
218
217
  * Provide a custom function for translating all message ids within this
219
218
  * component. This function will take in two arguments: the mesasge Id and the
220
219
  * state of the component. From this, you should return a string representing
221
220
  * the label you want displayed or read by screen readers.
222
221
  */
223
- translateById: PropTypes.func
222
+ // translateById: PropTypes.func,
223
+
224
224
  });
225
225
  var SideNav$1 = SideNav;
226
226
 
package/es/index.js CHANGED
@@ -79,7 +79,8 @@ export { default as RadioTile } from './components/RadioTile/RadioTile.js';
79
79
  export { default as TileGroup } from './components/TileGroup/index.js';
80
80
  export { default as TimePicker } from './components/TimePicker/index.js';
81
81
  export { default as TimePickerSelect } from './components/TimePickerSelect/index.js';
82
- export { default as Toggle } from './components/Toggle/index.js';
82
+ export { default as ToggleSkeleton } from './components/Toggle/Toggle.Skeleton.js';
83
+ export { Toggle } from './components/Toggle/Toggle.js';
83
84
  export { Toggletip, ToggletipActions, ToggletipButton, ToggletipContent, ToggletipLabel } from './components/Toggletip/index.js';
84
85
  export { default as UnorderedList } from './components/UnorderedList/UnorderedList.js';
85
86
  export { default as SkeletonText } from './components/SkeletonText/SkeletonText.js';
@@ -95,7 +96,6 @@ export { default as SearchSkeleton } from './components/Search/Search.Skeleton.j
95
96
  export { default as SliderSkeleton } from './components/Slider/Slider.Skeleton.js';
96
97
  export { default as TabsSkeleton } from './components/Tabs/Tabs.Skeleton.js';
97
98
  export { default as TextInputSkeleton } from './components/TextInput/TextInput.Skeleton.js';
98
- export { default as ToggleSkeleton } from './components/Toggle/Toggle.Skeleton.js';
99
99
  export { default as ToggleSmallSkeleton } from './components/ToggleSmall/ToggleSmall.Skeleton.js';
100
100
  export { default as IconSkeleton } from './components/Icon/Icon.Skeleton.js';
101
101
  export { HeaderNavigation, SideNavMenu } from './components/UIShell/index.js';
@@ -110,6 +110,7 @@ export { HStack, VStack } from './components/Stack/index.js';
110
110
  export { DefinitionTooltip } from './components/Tooltip/next/DefinitionTooltip.js';
111
111
  import './components/TreeView/index.js';
112
112
  export { GlobalTheme, Theme, useTheme } from './components/Theme/index.js';
113
+ export { usePrefix } from './internal/usePrefix.js';
113
114
  export { default as AspectRatio } from './components/AspectRatio/AspectRatio.js';
114
115
  export { default as Filename } from './components/FileUploader/Filename.js';
115
116
  export { default as FileUploaderButton } from './components/FileUploader/FileUploaderButton.js';
@@ -233,7 +233,8 @@ var ComposedModal = /*#__PURE__*/function (_Component) {
233
233
  onClick: this.handleClick,
234
234
  onKeyDown: this.handleKeyDown,
235
235
  onTransitionEnd: open ? this.handleTransitionEnd : undefined,
236
- className: modalClass
236
+ className: modalClass,
237
+ tabIndex: "-1"
237
238
  }), /*#__PURE__*/React__default["default"].createElement("span", {
238
239
  ref: this.startSentinel,
239
240
  tabIndex: "0",
@@ -204,7 +204,8 @@ var ComposedModal = /*#__PURE__*/React__default["default"].forwardRef(function C
204
204
  onBlur: handleBlur,
205
205
  onClick: handleClick,
206
206
  onKeyDown: handleKeyDown,
207
- className: modalClass
207
+ className: modalClass,
208
+ tabIndex: "-1"
208
209
  }), /*#__PURE__*/React__default["default"].createElement("div", {
209
210
  className: containerClass,
210
211
  role: "dialog",
@@ -31,7 +31,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
31
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
32
32
  var flatpickr__default = /*#__PURE__*/_interopDefaultLegacy(flatpickr);
33
33
 
34
- var _excluded = ["allowInput", "appendTo", "children", "className", "dateFormat", "datePickerType", "disable", "enable", "inline", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
34
+ var _excluded = ["allowInput", "appendTo", "children", "className", "closeOnSelect", "dateFormat", "datePickerType", "disable", "enable", "inline", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
35
35
 
36
36
  index["default"].en.weekdays.shorthand.forEach(function (_day, index$1) {
37
37
  var currentDay = index["default"].en.weekdays.shorthand;
@@ -163,6 +163,8 @@ function DatePicker(_ref) {
163
163
  appendTo = _ref.appendTo,
164
164
  children = _ref.children,
165
165
  className = _ref.className,
166
+ _ref$closeOnSelect = _ref.closeOnSelect,
167
+ closeOnSelect = _ref$closeOnSelect === void 0 ? true : _ref$closeOnSelect,
166
168
  _ref$dateFormat = _ref.dateFormat,
167
169
  dateFormat = _ref$dateFormat === void 0 ? 'm/d/Y' : _ref$dateFormat,
168
170
  datePickerType = _ref.datePickerType,
@@ -262,6 +264,7 @@ function DatePicker(_ref) {
262
264
  inline: inline !== null && inline !== void 0 ? inline : false,
263
265
  disableMobile: true,
264
266
  defaultDate: value,
267
+ closeOnSelect: closeOnSelect,
265
268
  mode: datePickerType,
266
269
  allowInput: allowInput !== null && allowInput !== void 0 ? allowInput : true,
267
270
  dateFormat: dateFormat,
@@ -322,7 +325,7 @@ function DatePicker(_ref) {
322
325
  // error with IBM Equal Access Accessibility Checker so we add an aria
323
326
  // role to the container div.
324
327
 
325
- calendar.calendarContainer.setAttribute('role', 'region'); // IBM EAAC requires an aria-label on a role='region'
328
+ calendar.calendarContainer.setAttribute('role', 'application'); // IBM EAAC requires an aria-label on a role='region'
326
329
 
327
330
  calendar.calendarContainer.setAttribute('aria-label', 'calendar-container');
328
331
  }
@@ -386,9 +389,10 @@ function DatePicker(_ref) {
386
389
  }, [inline]);
387
390
  React.useEffect(function () {
388
391
  if (calendarRef.current) {
389
- calendarRef.current.set({
390
- value: value
391
- });
392
+ if (value !== undefined) {
393
+ calendarRef.current.setDate(value);
394
+ }
395
+
392
396
  updateClassNames(calendarRef.current, prefix); //for simple date picker w/o calendar; initial mount may not have value
393
397
  } else if (!calendarRef.current && value) {
394
398
  startInputField.current.value = value;
@@ -423,6 +427,11 @@ DatePicker.propTypes = {
423
427
  */
424
428
  className: PropTypes__default["default"].string,
425
429
 
430
+ /**
431
+ * flatpickr prop passthrough. Controls whether the calendar dropdown closes upon selection.
432
+ */
433
+ closeOnSelect: PropTypes__default["default"].bool,
434
+
426
435
  /**
427
436
  * The date format.
428
437
  */
@@ -253,7 +253,7 @@ _rollupPluginBabelHelpers.defineProperty(FileUploader, "propTypes", {
253
253
  iconDescription: FeatureFlags__namespace.enabled('enable-v11-release') ? PropTypes__default["default"].string.isRequired : PropTypes__default["default"].string,
254
254
 
255
255
  /**
256
- * Specify the description text of this <FileUploader>
256
+ * Specify the description text of this `<FileUploader>`
257
257
  */
258
258
  labelDescription: PropTypes__default["default"].string,
259
259