@carbon/react 1.7.0 → 1.9.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 (87) hide show
  1. package/es/components/ComposedModal/ComposedModal.js +1 -1
  2. package/es/components/ComposedModal/index.js +4 -4
  3. package/es/components/ComposedModal/next/ComposedModal.js +1 -1
  4. package/es/components/DataTable/DataTable.js +1 -1
  5. package/es/components/DataTable/Table.js +10 -2
  6. package/es/components/DataTable/TableContainer.js +20 -5
  7. package/es/components/DataTable/TableContext.js +15 -0
  8. package/es/components/DataTable/TableSelectRow.js +1 -1
  9. package/es/components/FileUploader/FileUploader.js +8 -1
  10. package/es/components/FileUploader/FileUploaderButton.js +3 -1
  11. package/es/components/FileUploader/FileUploaderDropContainer.js +3 -1
  12. package/es/components/FileUploader/FileUploaderItem.js +3 -1
  13. package/es/components/InlineLoading/InlineLoading.js +9 -5
  14. package/es/components/Loading/Loading.js +7 -18
  15. package/es/components/Menu/Menu.js +1 -1
  16. package/es/components/Modal/Modal.js +204 -273
  17. package/es/components/Modal/index.js +2 -8
  18. package/es/components/ModalWrapper/ModalWrapper.js +1 -1
  19. package/es/components/MultiSelect/FilterableMultiSelect.js +345 -386
  20. package/es/components/MultiSelect/index.js +4 -8
  21. package/es/components/Notification/Notification.js +322 -189
  22. package/es/components/NumberInput/NumberInput.Skeleton.js +3 -4
  23. package/es/components/NumberInput/NumberInput.js +308 -359
  24. package/es/components/RadioButton/RadioButton.js +58 -99
  25. package/es/components/RadioButton/index.js +2 -8
  26. package/es/components/RadioButtonGroup/RadioButtonGroup.js +72 -121
  27. package/es/components/RadioButtonGroup/index.js +2 -8
  28. package/es/components/Slider/Slider.js +2 -1
  29. package/es/components/Switch/Switch.js +0 -1
  30. package/es/components/TreeView/TreeView.js +19 -11
  31. package/es/components/UIShell/HeaderMenu.js +1 -1
  32. package/es/components/UIShell/HeaderMenuButton.js +4 -0
  33. package/es/components/UIShell/SideNavLink.js +6 -9
  34. package/es/index.js +10 -9
  35. package/es/internal/createClassWrapper.js +2 -5
  36. package/lib/components/ComposedModal/index.js +7 -7
  37. package/lib/components/ComposedModal/next/ComposedModal.js +1 -1
  38. package/lib/components/DataTable/DataTable.js +5 -5
  39. package/lib/components/DataTable/Table.js +9 -1
  40. package/lib/components/DataTable/TableContainer.js +19 -4
  41. package/lib/components/DataTable/TableContext.js +19 -0
  42. package/lib/components/DataTable/TableSelectRow.js +2 -2
  43. package/lib/components/FileUploader/FileUploader.js +8 -1
  44. package/lib/components/FileUploader/FileUploaderButton.js +3 -1
  45. package/lib/components/FileUploader/FileUploaderDropContainer.js +3 -1
  46. package/lib/components/FileUploader/FileUploaderItem.js +3 -1
  47. package/lib/components/InlineLoading/InlineLoading.js +9 -5
  48. package/lib/components/Loading/Loading.js +6 -17
  49. package/lib/components/Menu/Menu.js +1 -1
  50. package/lib/components/Modal/Modal.js +201 -270
  51. package/lib/components/Modal/index.js +2 -25
  52. package/lib/components/ModalWrapper/ModalWrapper.js +2 -2
  53. package/lib/components/MultiSelect/FilterableMultiSelect.js +341 -382
  54. package/lib/components/MultiSelect/index.js +5 -28
  55. package/lib/components/Notification/Notification.js +321 -188
  56. package/lib/components/NumberInput/NumberInput.Skeleton.js +3 -4
  57. package/lib/components/NumberInput/NumberInput.js +305 -376
  58. package/lib/components/RadioButton/RadioButton.js +57 -99
  59. package/lib/components/RadioButton/index.js +2 -25
  60. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +68 -117
  61. package/lib/components/RadioButtonGroup/index.js +2 -25
  62. package/lib/components/Slider/Slider.js +2 -1
  63. package/lib/components/Switch/Switch.js +0 -1
  64. package/lib/components/TreeView/TreeView.js +18 -10
  65. package/lib/components/UIShell/HeaderMenu.js +1 -0
  66. package/lib/components/UIShell/HeaderMenuButton.js +4 -0
  67. package/lib/components/UIShell/SideNavLink.js +6 -9
  68. package/lib/index.js +95 -95
  69. package/lib/internal/createClassWrapper.js +2 -5
  70. package/package.json +7 -7
  71. package/scss/utilities/_hide-at-breakpoint.scss +9 -0
  72. package/es/components/Modal/next/Modal.js +0 -274
  73. package/es/components/MultiSelect/next/FilterableMultiSelect.js +0 -544
  74. package/es/components/Notification/index.js +0 -42
  75. package/es/components/Notification/next/Notification.js +0 -663
  76. package/es/components/RadioButton/next/RadioButton.js +0 -130
  77. package/es/components/RadioButtonGroup/next/RadioButtonGroup.js +0 -141
  78. package/es/internal/FeatureFlags.js +0 -52
  79. package/es/prop-types/requiredIfValueExists.js +0 -32
  80. package/lib/components/Modal/next/Modal.js +0 -284
  81. package/lib/components/MultiSelect/next/FilterableMultiSelect.js +0 -556
  82. package/lib/components/Notification/index.js +0 -51
  83. package/lib/components/Notification/next/Notification.js +0 -677
  84. package/lib/components/RadioButton/next/RadioButton.js +0 -140
  85. package/lib/components/RadioButtonGroup/next/RadioButtonGroup.js +0 -151
  86. package/lib/internal/FeatureFlags.js +0 -56
  87. package/lib/prop-types/requiredIfValueExists.js +0 -36
@@ -17,7 +17,6 @@ var iconsReact = require('@carbon/icons-react');
17
17
  var toggleClass = require('../../tools/toggleClass.js');
18
18
  var Button = require('../Button/Button.js');
19
19
  var ButtonSet = require('../ButtonSet/ButtonSet.js');
20
- var deprecate = require('../../prop-types/deprecate.js');
21
20
  var requiredIfGivenPropIsTruthy = require('../../prop-types/requiredIfGivenPropIsTruthy.js');
22
21
  var wrapFocus = require('../../internal/wrapFocus.js');
23
22
  var setupGetInstanceId = require('../../tools/setupGetInstanceId.js');
@@ -29,297 +28,229 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
29
28
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
29
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
31
30
 
32
- var _defineProperty2;
31
+ var _Modal$propTypes;
33
32
 
34
- var _excluded = ["modalHeading", "modalLabel", "modalAriaLabel", "passiveModal", "hasForm", "secondaryButtonText", "primaryButtonText", "open", "onRequestClose", "onRequestSubmit", "onSecondarySubmit", "iconDescription", "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"];
35
34
  var getInstanceId = setupGetInstanceId["default"]();
35
+ var Modal = /*#__PURE__*/React__default["default"].forwardRef(function Modal(_ref, ref) {
36
+ var _classNames;
37
+
38
+ var children = _ref.children,
39
+ className = _ref.className,
40
+ modalHeading = _ref.modalHeading,
41
+ modalLabel = _ref.modalLabel,
42
+ modalAriaLabel = _ref.modalAriaLabel,
43
+ passiveModal = _ref.passiveModal,
44
+ secondaryButtonText = _ref.secondaryButtonText,
45
+ primaryButtonText = _ref.primaryButtonText,
46
+ open = _ref.open,
47
+ onRequestClose = _ref.onRequestClose,
48
+ onRequestSubmit = _ref.onRequestSubmit,
49
+ onSecondarySubmit = _ref.onSecondarySubmit,
50
+ primaryButtonDisabled = _ref.primaryButtonDisabled,
51
+ danger = _ref.danger,
52
+ alert = _ref.alert,
53
+ secondaryButtons = _ref.secondaryButtons,
54
+ selectorPrimaryFocus = _ref.selectorPrimaryFocus,
55
+ selectorsFloatingMenus = _ref.selectorsFloatingMenus,
56
+ shouldSubmitOnEnter = _ref.shouldSubmitOnEnter,
57
+ size = _ref.size,
58
+ hasScrollingContent = _ref.hasScrollingContent,
59
+ closeButtonLabel = _ref.closeButtonLabel,
60
+ preventCloseOnClickOutside = _ref.preventCloseOnClickOutside,
61
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
62
+
63
+ var prefix = usePrefix.usePrefix();
64
+ var button = React.useRef();
65
+ var secondaryButton = React.useRef();
66
+ var innerModal = React.useRef();
67
+ var startTrap = React.useRef();
68
+ var endTrap = React.useRef();
69
+ var modalInstanceId = "modal-".concat(getInstanceId());
70
+ var modalLabelId = "".concat(prefix, "--modal-header__label--").concat(modalInstanceId);
71
+ var modalHeadingId = "".concat(prefix, "--modal-header__heading--").concat(modalInstanceId);
72
+ var modalBodyId = "".concat(prefix, "--modal-body--").concat(modalInstanceId);
73
+ var modalCloseButtonClass = "".concat(prefix, "--modal-close");
74
+
75
+ function isCloseButton(element) {
76
+ return !onSecondarySubmit && element === secondaryButton.current || element.classList.contains(modalCloseButtonClass);
77
+ }
36
78
 
37
- var Modal = /*#__PURE__*/function (_Component) {
38
- _rollupPluginBabelHelpers.inherits(Modal, _Component);
39
-
40
- var _super = _rollupPluginBabelHelpers.createSuper(Modal);
41
-
42
- function Modal() {
43
- var _this;
44
-
45
- _rollupPluginBabelHelpers.classCallCheck(this, Modal);
79
+ function handleKeyDown(evt) {
80
+ if (open) {
81
+ if (evt.which === 27) {
82
+ onRequestClose(evt);
83
+ }
46
84
 
47
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
48
- args[_key] = arguments[_key];
85
+ if (evt.which === 13 && shouldSubmitOnEnter && !isCloseButton(evt.target)) {
86
+ onRequestSubmit(evt);
87
+ }
49
88
  }
89
+ }
50
90
 
51
- _this = _super.call.apply(_super, [this].concat(args));
52
-
53
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "button", /*#__PURE__*/React__default["default"].createRef());
54
-
55
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "secondaryButton", /*#__PURE__*/React__default["default"].createRef());
56
-
57
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "outerModal", /*#__PURE__*/React__default["default"].createRef());
58
-
59
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "innerModal", /*#__PURE__*/React__default["default"].createRef());
60
-
61
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "startTrap", /*#__PURE__*/React__default["default"].createRef());
62
-
63
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "endTrap", /*#__PURE__*/React__default["default"].createRef());
64
-
65
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "modalInstanceId", "modal-".concat(getInstanceId()));
66
-
67
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "modalLabelId", "".concat(_this.context, "--modal-header__label--").concat(_this.modalInstanceId));
68
-
69
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "modalHeadingId", "".concat(_this.context, "--modal-header__heading--").concat(_this.modalInstanceId));
70
-
71
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "modalBodyId", "".concat(_this.context, "--modal-body--").concat(_this.modalInstanceId));
72
-
73
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "modalCloseButtonClass", "".concat(_this.context, "--modal-close"));
74
-
75
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "isCloseButton", function (element) {
76
- return !_this.props.onSecondarySubmit && element === _this.secondaryButton.current || element.classList.contains(_this.modalCloseButtonClass);
77
- });
78
-
79
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "handleKeyDown", function (evt) {
80
- if (_this.props.open) {
81
- if (evt.which === 27) {
82
- _this.props.onRequestClose(evt);
83
- }
84
-
85
- if (evt.which === 13 && _this.props.shouldSubmitOnEnter && !_this.isCloseButton(evt.target)) {
86
- _this.props.onRequestSubmit(evt);
87
- }
88
- }
89
- });
91
+ function handleMousedown(evt) {
92
+ if (innerModal.current && !innerModal.current.contains(evt.target) && !wrapFocus.elementOrParentIsFloatingMenu(evt.target, selectorsFloatingMenus) && !preventCloseOnClickOutside) {
93
+ onRequestClose(evt);
94
+ }
95
+ }
90
96
 
91
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "handleMousedown", function (evt) {
92
- if (_this.innerModal.current && !_this.innerModal.current.contains(evt.target) && !wrapFocus.elementOrParentIsFloatingMenu(evt.target, _this.props.selectorsFloatingMenus) && !_this.props.preventCloseOnClickOutside) {
93
- _this.props.onRequestClose(evt);
94
- }
95
- });
97
+ function handleBlur(_ref2) {
98
+ var oldActiveNode = _ref2.target,
99
+ currentActiveNode = _ref2.relatedTarget;
100
+
101
+ if (open && currentActiveNode && oldActiveNode) {
102
+ var bodyNode = innerModal.current;
103
+ var startTrapNode = startTrap.current;
104
+ var endTrapNode = endTrap.current;
105
+ wrapFocus["default"]({
106
+ bodyNode: bodyNode,
107
+ startTrapNode: startTrapNode,
108
+ endTrapNode: endTrapNode,
109
+ currentActiveNode: currentActiveNode,
110
+ oldActiveNode: oldActiveNode,
111
+ selectorsFloatingMenus: selectorsFloatingMenus
112
+ });
113
+ }
114
+ }
96
115
 
97
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "handleBlur", function (_ref) {
98
- var oldActiveNode = _ref.target,
99
- currentActiveNode = _ref.relatedTarget;
100
- var _this$props = _this.props,
101
- open = _this$props.open,
102
- selectorsFloatingMenus = _this$props.selectorsFloatingMenus;
116
+ var onSecondaryButtonClick = onSecondarySubmit ? onSecondarySubmit : onRequestClose;
117
+ 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 contentClasses = cx__default["default"]("".concat(prefix, "--modal-content"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--modal-scroll-content"), hasScrollingContent));
120
+ var footerClasses = cx__default["default"]("".concat(prefix, "--modal-footer"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--modal-footer--three-button"), Array.isArray(secondaryButtons) && secondaryButtons.length === 2));
121
+ var modalButton = /*#__PURE__*/React__default["default"].createElement("button", {
122
+ className: modalCloseButtonClass,
123
+ type: "button",
124
+ onClick: onRequestClose,
125
+ title: ariaLabel,
126
+ "aria-label": closeButtonLabel ? closeButtonLabel : 'close',
127
+ ref: button
128
+ }, /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, {
129
+ size: 20,
130
+ "aria-hidden": "true",
131
+ tabIndex: "-1",
132
+ className: "".concat(modalCloseButtonClass, "__icon")
133
+ }));
134
+ var ariaLabel = modalLabel || ['aria-label'] || modalAriaLabel || modalHeading;
135
+ var getAriaLabelledBy = modalLabel ? modalLabelId : modalHeadingId;
136
+ var hasScrollingContentProps = hasScrollingContent ? {
137
+ tabIndex: 0,
138
+ role: 'region',
139
+ 'aria-label': ariaLabel,
140
+ 'aria-labelledby': getAriaLabelledBy
141
+ } : {};
142
+ var alertDialogProps = {};
143
+
144
+ if (alert && passiveModal) {
145
+ alertDialogProps.role = 'alert';
146
+ }
103
147
 
104
- if (open && currentActiveNode && oldActiveNode) {
105
- var bodyNode = _this.innerModal.current;
106
- var startTrapNode = _this.startTrap.current;
107
- var endTrapNode = _this.endTrap.current;
108
- wrapFocus["default"]({
109
- bodyNode: bodyNode,
110
- startTrapNode: startTrapNode,
111
- endTrapNode: endTrapNode,
112
- currentActiveNode: currentActiveNode,
113
- oldActiveNode: oldActiveNode,
114
- selectorsFloatingMenus: selectorsFloatingMenus
115
- });
116
- }
117
- });
148
+ if (alert && !passiveModal) {
149
+ alertDialogProps.role = 'alertdialog';
150
+ alertDialogProps['aria-describedby'] = modalBodyId;
151
+ }
118
152
 
119
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "initialFocus", function (focusContainerElement) {
120
- var containerElement = focusContainerElement || _this.innerModal.current;
121
- var primaryFocusElement = containerElement ? containerElement.querySelector(_this.props.selectorPrimaryFocus) : null;
153
+ React.useEffect(function () {
154
+ return function () {
155
+ toggleClass["default"](document.body, "".concat(prefix, "--body--with-modal-open"), false);
156
+ };
157
+ }, [prefix]);
158
+ React.useEffect(function () {
159
+ toggleClass["default"](document.body, "".concat(prefix, "--body--with-modal-open"), open);
160
+ }, [open, prefix]);
161
+ React.useEffect(function () {
162
+ var initialFocus = function initialFocus(focusContainerElement) {
163
+ var containerElement = focusContainerElement || innerModal.current;
164
+ var primaryFocusElement = containerElement ? containerElement.querySelector(selectorPrimaryFocus) : null;
122
165
 
123
166
  if (primaryFocusElement) {
124
167
  return primaryFocusElement;
125
168
  }
126
169
 
127
- return _this.button && _this.button.current;
128
- });
170
+ return button && button.current;
171
+ };
129
172
 
130
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "focusButton", function (focusContainerElement) {
131
- var target = _this.initialFocus(focusContainerElement);
173
+ var focusButton = function focusButton(focusContainerElement) {
174
+ var target = initialFocus(focusContainerElement);
132
175
 
133
176
  if (target) {
134
177
  target.focus();
135
178
  }
136
- });
137
-
138
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "handleTransitionEnd", function (evt) {
139
- if (evt.target === evt.currentTarget && // Not to handle `onTransitionEnd` on child DOM nodes
140
- _this.outerModal.current && _this.outerModal.current.offsetWidth && _this.outerModal.current.offsetHeight && _this.beingOpen) {
141
- _this.focusButton(evt.currentTarget);
142
-
143
- _this.beingOpen = false;
144
- }
145
- });
146
-
147
- return _this;
148
- }
149
-
150
- _rollupPluginBabelHelpers.createClass(Modal, [{
151
- key: "componentDidUpdate",
152
- value: function componentDidUpdate(prevProps) {
153
- if (!prevProps.open && this.props.open) {
154
- this.beingOpen = true;
155
- } else if (prevProps.open && !this.props.open) {
156
- this.beingOpen = false;
157
- }
158
-
159
- toggleClass["default"](document.body, "".concat(this.context, "--body--with-modal-open"), this.props.open);
160
- }
161
- }, {
162
- key: "componentWillUnmount",
163
- value: function componentWillUnmount() {
164
- toggleClass["default"](document.body, "".concat(this.context, "--body--with-modal-open"), false);
165
- }
166
- }, {
167
- key: "componentDidMount",
168
- value: function componentDidMount() {
169
- toggleClass["default"](document.body, "".concat(this.context, "--body--with-modal-open"), this.props.open);
170
-
171
- if (!this.props.open) {
172
- return;
173
- }
174
-
175
- this.focusButton(this.innerModal.current);
176
- }
177
- }, {
178
- key: "render",
179
- value: function render() {
180
- var _classNames, _classNames3;
181
-
182
- var _this$props2 = this.props,
183
- modalHeading = _this$props2.modalHeading,
184
- modalLabel = _this$props2.modalLabel,
185
- modalAriaLabel = _this$props2.modalAriaLabel,
186
- passiveModal = _this$props2.passiveModal,
187
- hasForm = _this$props2.hasForm,
188
- secondaryButtonText = _this$props2.secondaryButtonText,
189
- primaryButtonText = _this$props2.primaryButtonText,
190
- open = _this$props2.open,
191
- onRequestClose = _this$props2.onRequestClose,
192
- onRequestSubmit = _this$props2.onRequestSubmit,
193
- onSecondarySubmit = _this$props2.onSecondarySubmit,
194
- iconDescription = _this$props2.iconDescription,
195
- primaryButtonDisabled = _this$props2.primaryButtonDisabled,
196
- danger = _this$props2.danger,
197
- alert = _this$props2.alert,
198
- secondaryButtons = _this$props2.secondaryButtons;
199
- _this$props2.selectorPrimaryFocus;
200
- _this$props2.selectorsFloatingMenus;
201
- _this$props2.shouldSubmitOnEnter;
202
- var size = _this$props2.size,
203
- hasScrollingContent = _this$props2.hasScrollingContent,
204
- closeButtonLabel = _this$props2.closeButtonLabel;
205
- _this$props2.preventCloseOnClickOutside;
206
- var other = _rollupPluginBabelHelpers.objectWithoutProperties(_this$props2, _excluded);
207
-
208
- var prefix = this.context;
209
- var onSecondaryButtonClick = onSecondarySubmit ? onSecondarySubmit : onRequestClose;
210
- var modalClasses = cx__default["default"]((_classNames = {}, _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--modal"), true), _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--modal-tall"), !passiveModal), _rollupPluginBabelHelpers.defineProperty(_classNames, 'is-visible', open), _rollupPluginBabelHelpers.defineProperty(_classNames, "".concat(prefix, "--modal--danger"), this.props.danger), _rollupPluginBabelHelpers.defineProperty(_classNames, this.props.className, this.props.className), _classNames));
211
- var containerClasses = cx__default["default"]("".concat(prefix, "--modal-container"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--modal-container--").concat(size), size));
212
- var contentClasses = cx__default["default"]("".concat(prefix, "--modal-content"), (_classNames3 = {}, _rollupPluginBabelHelpers.defineProperty(_classNames3, "".concat(prefix, "--modal-content--with-form"), hasForm), _rollupPluginBabelHelpers.defineProperty(_classNames3, "".concat(prefix, "--modal-scroll-content"), hasScrollingContent), _classNames3));
213
- var footerClasses = cx__default["default"]("".concat(prefix, "--modal-footer"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--modal-footer--three-button"), Array.isArray(secondaryButtons) && secondaryButtons.length === 2));
214
- var modalButton = /*#__PURE__*/React__default["default"].createElement("button", {
215
- className: this.modalCloseButtonClass,
216
- type: "button",
217
- onClick: onRequestClose,
218
- title: ariaLabel ? ariaLabel : iconDescription,
219
- "aria-label": closeButtonLabel ? closeButtonLabel : 'close',
220
- ref: this.button
221
- }, /*#__PURE__*/React__default["default"].createElement(iconsReact.Close, {
222
- size: 20,
223
- "aria-hidden": "true",
224
- tabIndex: "-1",
225
- className: "".concat(this.modalCloseButtonClass, "__icon")
226
- }));
227
- var ariaLabel = modalLabel || this.props['aria-label'] || modalAriaLabel || modalHeading;
228
- var getAriaLabelledBy = modalLabel ? this.modalLabelId : this.modalHeadingId;
229
- var hasScrollingContentProps = hasScrollingContent ? {
230
- tabIndex: 0,
231
- role: 'region',
232
- 'aria-label': ariaLabel,
233
- 'aria-labelledby': getAriaLabelledBy
234
- } : {};
235
- var alertDialogProps = {};
236
-
237
- if (alert && passiveModal) {
238
- alertDialogProps.role = 'alert';
239
- }
240
-
241
- if (alert && !passiveModal) {
242
- alertDialogProps.role = 'alertdialog';
243
- alertDialogProps['aria-describedby'] = this.modalBodyId;
244
- }
179
+ };
245
180
 
246
- var modalBody = /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
247
- ref: this.innerModal,
248
- role: "dialog"
249
- }, alertDialogProps, {
250
- className: containerClasses,
251
- "aria-label": ariaLabel,
252
- "aria-modal": "true",
253
- tabIndex: "-1"
254
- }), /*#__PURE__*/React__default["default"].createElement("div", {
255
- className: "".concat(prefix, "--modal-header")
256
- }, passiveModal && modalButton, modalLabel && /*#__PURE__*/React__default["default"].createElement("h2", {
257
- id: this.modalLabelId,
258
- className: "".concat(prefix, "--modal-header__label")
259
- }, modalLabel), /*#__PURE__*/React__default["default"].createElement("h3", {
260
- id: this.modalHeadingId,
261
- className: "".concat(prefix, "--modal-header__heading")
262
- }, modalHeading), !passiveModal && modalButton), /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
263
- id: this.modalBodyId,
264
- className: contentClasses
265
- }, hasScrollingContentProps, {
266
- "aria-labelledby": getAriaLabelledBy
267
- }), this.props.children), hasScrollingContent && /*#__PURE__*/React__default["default"].createElement("div", {
268
- className: "".concat(prefix, "--modal-content--overflow-indicator")
269
- }), !passiveModal && /*#__PURE__*/React__default["default"].createElement(ButtonSet["default"], {
270
- className: footerClasses
271
- }, Array.isArray(secondaryButtons) && secondaryButtons.length <= 2 ? secondaryButtons.map(function (_ref2, i) {
272
- var buttonText = _ref2.buttonText,
273
- onButtonClick = _ref2.onClick;
274
- return /*#__PURE__*/React__default["default"].createElement(Button["default"], {
275
- key: "".concat(buttonText, "-").concat(i),
276
- kind: "secondary",
277
- onClick: onButtonClick
278
- }, buttonText);
279
- }) : secondaryButtonText && /*#__PURE__*/React__default["default"].createElement(Button["default"], {
280
- kind: "secondary",
281
- onClick: onSecondaryButtonClick,
282
- ref: this.secondaryButton
283
- }, secondaryButtonText), /*#__PURE__*/React__default["default"].createElement(Button["default"], {
284
- kind: danger ? 'danger' : 'primary',
285
- disabled: primaryButtonDisabled,
286
- onClick: onRequestSubmit,
287
- ref: this.button
288
- }, primaryButtonText)));
289
- return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({}, other, {
290
- onKeyDown: this.handleKeyDown,
291
- onMouseDown: this.handleMousedown,
292
- onBlur: this.handleBlur,
293
- className: modalClasses,
294
- role: "presentation",
295
- onTransitionEnd: this.props.open ? this.handleTransitionEnd : undefined,
296
- ref: this.outerModal
297
- }), /*#__PURE__*/React__default["default"].createElement("span", {
298
- ref: this.startTrap,
299
- tabIndex: "0",
300
- role: "link",
301
- className: "".concat(prefix, "--visually-hidden")
302
- }, "Focus sentinel"), modalBody, /*#__PURE__*/React__default["default"].createElement("span", {
303
- ref: this.endTrap,
304
- tabIndex: "0",
305
- role: "link",
306
- className: "".concat(prefix, "--visually-hidden")
307
- }, "Focus sentinel"));
181
+ if (open) {
182
+ focusButton(innerModal.current);
308
183
  }
309
- }]);
310
-
311
- return Modal;
312
- }(React.Component);
313
-
314
- _rollupPluginBabelHelpers.defineProperty(Modal, "contextType", usePrefix.PrefixContext);
315
-
316
- _rollupPluginBabelHelpers.defineProperty(Modal, "propTypes", (_defineProperty2 = {
184
+ }, [open, selectorPrimaryFocus]);
185
+ var modalBody = /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
186
+ ref: innerModal,
187
+ role: "dialog"
188
+ }, alertDialogProps, {
189
+ className: containerClasses,
190
+ "aria-label": ariaLabel,
191
+ "aria-modal": "true",
192
+ tabIndex: "-1"
193
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
194
+ className: "".concat(prefix, "--modal-header")
195
+ }, passiveModal && modalButton, modalLabel && /*#__PURE__*/React__default["default"].createElement("h2", {
196
+ id: modalLabelId,
197
+ className: "".concat(prefix, "--modal-header__label")
198
+ }, modalLabel), /*#__PURE__*/React__default["default"].createElement("h3", {
199
+ id: modalHeadingId,
200
+ className: "".concat(prefix, "--modal-header__heading")
201
+ }, modalHeading), !passiveModal && modalButton), /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
202
+ id: modalBodyId,
203
+ className: contentClasses
204
+ }, hasScrollingContentProps, {
205
+ "aria-labelledby": getAriaLabelledBy
206
+ }), children), hasScrollingContent && /*#__PURE__*/React__default["default"].createElement("div", {
207
+ className: "".concat(prefix, "--modal-content--overflow-indicator")
208
+ }), !passiveModal && /*#__PURE__*/React__default["default"].createElement(ButtonSet["default"], {
209
+ className: footerClasses
210
+ }, Array.isArray(secondaryButtons) && secondaryButtons.length <= 2 ? secondaryButtons.map(function (_ref3, i) {
211
+ var buttonText = _ref3.buttonText,
212
+ onButtonClick = _ref3.onClick;
213
+ return /*#__PURE__*/React__default["default"].createElement(Button["default"], {
214
+ key: "".concat(buttonText, "-").concat(i),
215
+ kind: "secondary",
216
+ onClick: onButtonClick
217
+ }, buttonText);
218
+ }) : secondaryButtonText && /*#__PURE__*/React__default["default"].createElement(Button["default"], {
219
+ kind: "secondary",
220
+ onClick: onSecondaryButtonClick,
221
+ ref: secondaryButton
222
+ }, secondaryButtonText), /*#__PURE__*/React__default["default"].createElement(Button["default"], {
223
+ kind: danger ? 'danger' : 'primary',
224
+ disabled: primaryButtonDisabled,
225
+ onClick: onRequestSubmit,
226
+ ref: button
227
+ }, primaryButtonText)));
228
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({}, rest, {
229
+ onKeyDown: handleKeyDown,
230
+ onMouseDown: handleMousedown,
231
+ onBlur: handleBlur,
232
+ className: modalClasses,
233
+ role: "presentation",
234
+ ref: ref
235
+ }), /*#__PURE__*/React__default["default"].createElement("span", {
236
+ ref: startTrap,
237
+ tabIndex: "0",
238
+ role: "link",
239
+ className: "".concat(prefix, "--visually-hidden")
240
+ }, "Focus sentinel"), modalBody, /*#__PURE__*/React__default["default"].createElement("span", {
241
+ ref: endTrap,
242
+ tabIndex: "0",
243
+ role: "link",
244
+ className: "".concat(prefix, "--visually-hidden")
245
+ }, "Focus sentinel"));
246
+ });
247
+ Modal.propTypes = (_Modal$propTypes = {
317
248
  /**
318
249
  * Specify whether the Modal is displaying an alert, error or warning
319
250
  * Should go hand in hand with the danger prop.
320
251
  */
321
252
  alert: PropTypes__default["default"].bool
322
- }, _rollupPluginBabelHelpers.defineProperty(_defineProperty2, 'aria-label', requiredIfGivenPropIsTruthy["default"]('hasScrollingContent', PropTypes__default["default"].string)), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "children", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "className", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "closeButtonLabel", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "danger", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "focusTrap", deprecate["default"](PropTypes__default["default"].bool, "\nThe prop `focusTrap` for Modal has been deprecated, as the feature of `focusTrap` runs by default.")), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "hasForm", deprecate["default"](PropTypes__default["default"].bool, "\nThe prop `hasForm` for Modal has been deprecated, as the feature of `hasForm` runs by default.")), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "hasScrollingContent", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "iconDescription", deprecate["default"](PropTypes__default["default"].string, 'The iconDescription prop is no longer needed and can be safely removed. This prop will be removed in the next major release of Carbon.')), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "id", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "modalAriaLabel", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "modalHeading", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "modalLabel", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "onKeyDown", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "onRequestClose", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "onRequestSubmit", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "onSecondarySubmit", PropTypes__default["default"].func), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "open", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "passiveModal", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "preventCloseOnClickOutside", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "primaryButtonDisabled", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "primaryButtonText", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "secondaryButtonText", PropTypes__default["default"].node), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "secondaryButtons", function secondaryButtons(props, propName, componentName) {
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) {
323
254
  if (props.secondaryButtons) {
324
255
  if (!Array.isArray(props.secondaryButtons) || props.secondaryButtons.length !== 2) {
325
256
  return new Error("".concat(propName, " needs to be an array of two button config objects"));
@@ -335,9 +266,8 @@ _rollupPluginBabelHelpers.defineProperty(Modal, "propTypes", (_defineProperty2 =
335
266
  }
336
267
 
337
268
  return null;
338
- }), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "selectorPrimaryFocus", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "selectorsFloatingMenus", PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "shouldSubmitOnEnter", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_defineProperty2, "size", PropTypes__default["default"].oneOf(['xs', 'sm', 'md', 'lg'])), _defineProperty2));
339
-
340
- _rollupPluginBabelHelpers.defineProperty(Modal, "defaultProps", {
269
+ }), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "selectorPrimaryFocus", PropTypes__default["default"].string), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "selectorsFloatingMenus", PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "shouldSubmitOnEnter", PropTypes__default["default"].bool), _rollupPluginBabelHelpers.defineProperty(_Modal$propTypes, "size", PropTypes__default["default"].oneOf(['xs', 'sm', 'md', 'lg'])), _Modal$propTypes);
270
+ Modal.defaultProps = {
341
271
  onRequestClose: function onRequestClose() {},
342
272
  onRequestSubmit: function onRequestSubmit() {},
343
273
  primaryButtonDisabled: false,
@@ -348,6 +278,7 @@ _rollupPluginBabelHelpers.defineProperty(Modal, "defaultProps", {
348
278
  preventCloseOnClickOutside: false,
349
279
  selectorPrimaryFocus: '[data-modal-primary-focus]',
350
280
  hasScrollingContent: false
351
- });
281
+ };
282
+ var Modal$1 = Modal;
352
283
 
353
- exports["default"] = Modal;
284
+ exports["default"] = Modal$1;
@@ -9,31 +9,8 @@
9
9
 
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
- var FeatureFlags = require('@carbon/feature-flags');
13
- var Modal$2 = require('./next/Modal.js');
14
- var Modal$3 = require('./Modal.js');
12
+ var Modal = require('./Modal.js');
15
13
 
16
- function _interopNamespace(e) {
17
- if (e && e.__esModule) return e;
18
- var n = Object.create(null);
19
- if (e) {
20
- Object.keys(e).forEach(function (k) {
21
- if (k !== 'default') {
22
- var d = Object.getOwnPropertyDescriptor(e, k);
23
- Object.defineProperty(n, k, d.get ? d : {
24
- enumerable: true,
25
- get: function () { return e[k]; }
26
- });
27
- }
28
- });
29
- }
30
- n["default"] = e;
31
- return Object.freeze(n);
32
- }
33
14
 
34
- var FeatureFlags__namespace = /*#__PURE__*/_interopNamespace(FeatureFlags);
35
15
 
36
- var Modal = FeatureFlags__namespace.enabled('enable-v11-release') ? Modal$2["default"] : Modal$3["default"];
37
- var Modal$1 = Modal;
38
-
39
- exports["default"] = Modal$1;
16
+ exports["default"] = Modal["default"];
@@ -12,7 +12,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
12
12
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
13
  var PropTypes = require('prop-types');
14
14
  var React = require('react');
15
- var index = require('../Modal/index.js');
15
+ var Modal = require('../Modal/Modal.js');
16
16
  var Button = require('../Button/Button.js');
17
17
  var types = require('../../prop-types/types.js');
18
18
 
@@ -124,7 +124,7 @@ var ModalWrapper = /*#__PURE__*/function (_React$Component) {
124
124
  iconDescription: triggerButtonIconDescription,
125
125
  onClick: this.handleOpen,
126
126
  ref: this.triggerButton
127
- }, buttonTriggerText), /*#__PURE__*/React__default["default"].createElement(index["default"], _rollupPluginBabelHelpers["extends"]({
127
+ }, buttonTriggerText), /*#__PURE__*/React__default["default"].createElement(Modal["default"], _rollupPluginBabelHelpers["extends"]({
128
128
  ref: this.modal
129
129
  }, props), children));
130
130
  }