@carbon/ibm-products 2.0.0-rc.7 → 2.0.0-rc.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. package/README.md +2 -2
  2. package/css/index-full-carbon.css +135 -27
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +4 -2
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +0 -6
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +1 -1
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +135 -27
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +4 -2
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +135 -27
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +4 -2
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/ActionBar/ActionBarOverflowItems.js +1 -0
  19. package/es/components/AddSelect/AddSelect.js +6 -3
  20. package/es/components/AddSelect/AddSelectBody.js +50 -26
  21. package/es/components/AddSelect/AddSelectBreadcrumbs.js +1 -1
  22. package/es/components/AddSelect/AddSelectColumn.js +3 -3
  23. package/es/components/AddSelect/AddSelectFilter.js +5 -3
  24. package/es/components/AddSelect/AddSelectList.js +6 -5
  25. package/es/components/AddSelect/AddSelectMetaPanel.js +6 -0
  26. package/es/components/AddSelect/AddSelectSidebar.js +5 -2
  27. package/es/components/AddSelect/AddSelectSort.js +1 -1
  28. package/es/components/AddSelect/add-select-utils.js +7 -0
  29. package/es/components/AddSelect/hooks/useItemSort.js +6 -0
  30. package/es/components/AddSelect/hooks/useParentSelect.js +6 -0
  31. package/es/components/AddSelect/hooks/usePath.js +15 -1
  32. package/es/components/AddSelect/index.js +1 -1
  33. package/es/components/CreateFullPage/CreateFullPage.js +4 -1
  34. package/es/components/DataSpreadsheet/DataSpreadsheet.js +2 -1
  35. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +10 -1
  36. package/es/components/Datagrid/Datagrid/DatagridRow.js +41 -2
  37. package/es/components/Datagrid/useNestedRows.js +14 -2
  38. package/es/components/Datagrid/utils/DatagridActions.js +130 -46
  39. package/es/components/InlineEdit/InlineEdit.js +27 -427
  40. package/es/components/InlineEditV1/InlineEditV1.js +447 -0
  41. package/es/components/InlineEditV1/index.js +7 -0
  42. package/es/components/InlineEditV2/InlineEditV2.js +289 -0
  43. package/es/components/InlineEditV2/index.js +7 -0
  44. package/es/components/MultiAddSelect/MultiAddSelect.js +14 -7
  45. package/es/components/MultiAddSelect/index.js +6 -0
  46. package/es/components/PageHeader/PageHeaderTitle.js +2 -4
  47. package/es/components/SingleAddSelect/SingleAddSelect.js +6 -0
  48. package/es/components/SingleAddSelect/index.js +6 -0
  49. package/es/global/js/package-settings.js +3 -1
  50. package/lib/components/ActionBar/ActionBarOverflowItems.js +1 -0
  51. package/lib/components/AddSelect/AddSelect.js +5 -2
  52. package/lib/components/AddSelect/AddSelectBody.js +45 -25
  53. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +1 -1
  54. package/lib/components/AddSelect/AddSelectColumn.js +2 -2
  55. package/lib/components/AddSelect/AddSelectFilter.js +4 -2
  56. package/lib/components/AddSelect/AddSelectList.js +5 -4
  57. package/lib/components/AddSelect/AddSelectMetaPanel.js +6 -0
  58. package/lib/components/AddSelect/AddSelectSidebar.js +4 -1
  59. package/lib/components/AddSelect/AddSelectSort.js +1 -1
  60. package/lib/components/AddSelect/add-select-utils.js +7 -0
  61. package/lib/components/AddSelect/hooks/useItemSort.js +6 -0
  62. package/lib/components/AddSelect/hooks/useParentSelect.js +6 -0
  63. package/lib/components/AddSelect/hooks/usePath.js +9 -1
  64. package/lib/components/CreateFullPage/CreateFullPage.js +4 -1
  65. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +2 -1
  66. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +10 -1
  67. package/lib/components/Datagrid/Datagrid/DatagridRow.js +42 -2
  68. package/lib/components/Datagrid/useNestedRows.js +15 -2
  69. package/lib/components/Datagrid/utils/DatagridActions.js +134 -44
  70. package/lib/components/InlineEdit/InlineEdit.js +27 -428
  71. package/lib/components/InlineEditV1/InlineEditV1.js +464 -0
  72. package/lib/components/InlineEditV1/index.js +13 -0
  73. package/lib/components/InlineEditV2/InlineEditV2.js +309 -0
  74. package/lib/components/InlineEditV2/index.js +13 -0
  75. package/lib/components/MultiAddSelect/MultiAddSelect.js +14 -7
  76. package/lib/components/PageHeader/PageHeaderTitle.js +2 -4
  77. package/lib/components/SingleAddSelect/SingleAddSelect.js +6 -0
  78. package/lib/global/js/package-settings.js +3 -1
  79. package/package.json +2 -2
  80. package/scss/components/AddSelect/_add-select.scss +24 -25
  81. package/scss/components/AddSelect/_index.scss +1 -1
  82. package/scss/components/AddSelect/_storybook-styles.scss +1 -1
  83. package/scss/components/Datagrid/_storybook-styles.scss +5 -0
  84. package/scss/components/Datagrid/styles/_datagrid.scss +49 -4
  85. package/scss/components/{InlineEdit → InlineEditV1}/_carbon-imports.scss +0 -0
  86. package/scss/components/{InlineEdit → InlineEditV1}/_index-with-carbon.scss +1 -1
  87. package/scss/components/{InlineEdit → InlineEditV1}/_index.scss +1 -1
  88. package/scss/components/{InlineEdit/_inline-edit.scss → InlineEditV1/_inline-edit-v1.scss} +0 -0
  89. package/scss/components/{InlineEdit → InlineEditV1}/_storybook-styles.scss +0 -0
  90. package/scss/components/InlineEditV2/_carbon-imports.scss +9 -0
  91. package/scss/components/InlineEditV2/_index-with-carbon.scss +9 -0
  92. package/scss/components/InlineEditV2/_index.scss +10 -0
  93. package/scss/components/InlineEditV2/_inline-edit-v2.scss +83 -0
  94. package/scss/components/InlineEditV2/_storybook-styles.scss +9 -0
  95. package/scss/components/MultiAddSelect/_multi-add-select.scss +7 -0
  96. package/scss/components/MultiAddSelect/_storybook-styles.scss +1 -1
  97. package/scss/components/PageHeader/_page-header.scss +0 -4
  98. package/scss/components/SingleAddSelect/_carbon-imports.scss +1 -1
  99. package/scss/components/SingleAddSelect/_index-with-carbon.scss +1 -1
  100. package/scss/components/SingleAddSelect/_index.scss +7 -0
  101. package/scss/components/SingleAddSelect/_single-add-select.scss +7 -0
  102. package/scss/components/SingleAddSelect/_storybook-styles.scss +1 -1
  103. package/scss/components/_index-released-only-with-carbon.scss +1 -1
  104. package/scss/components/_index-released-only.scss +1 -1
  105. package/scss/components/_index-with-carbon.scss +2 -1
  106. package/scss/components/_index.scss +2 -1
@@ -0,0 +1,289 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["cancelLabel", "editLabel", "id", "invalid", "invalidLabel", "labelText", "onCancel", "onChange", "onSave", "saveLabel", "value"];
6
+
7
+ /**
8
+ * Copyright IBM Corp. 2022, 2022
9
+ *
10
+ * This source code is licensed under the Apache-2.0 license found in the
11
+ * LICENSE file in the root directory of this source tree.
12
+ */
13
+ import React, { useState, useEffect, forwardRef, useRef } from 'react';
14
+ import { Button } from '@carbon/react';
15
+ import cx from 'classnames';
16
+ import PropTypes from 'prop-types';
17
+ import { Edit, Checkmark, Close, // EditOff,
18
+ WarningFilled } from '@carbon/react/icons';
19
+ import { pkg, carbon } from '../../settings';
20
+ import { getDevtoolsProps } from '../../global/js/utils/devtools';
21
+ var componentName = 'InlineEditV2';
22
+ var blockClass = "".concat(pkg.prefix, "--inline-edit-v2");
23
+ export var InlineEditV2 = /*#__PURE__*/forwardRef(function (_ref, ref) {
24
+ var cancelLabel = _ref.cancelLabel,
25
+ editLabel = _ref.editLabel,
26
+ id = _ref.id,
27
+ invalid = _ref.invalid,
28
+ invalidLabel = _ref.invalidLabel,
29
+ labelText = _ref.labelText,
30
+ onCancel = _ref.onCancel,
31
+ onChange = _ref.onChange,
32
+ onSave = _ref.onSave,
33
+ saveLabel = _ref.saveLabel,
34
+ value = _ref.value,
35
+ rest = _objectWithoutProperties(_ref, _excluded);
36
+
37
+ var _useState = useState(false),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ focused = _useState2[0],
40
+ setFocused = _useState2[1];
41
+
42
+ var _useState3 = useState(''),
43
+ _useState4 = _slicedToArray(_useState3, 2),
44
+ initialValue = _useState4[0],
45
+ setInitialValue = _useState4[1];
46
+
47
+ var _useState5 = useState(false),
48
+ _useState6 = _slicedToArray(_useState5, 2),
49
+ dirtyInput = _useState6[0],
50
+ setDirtyInput = _useState6[1];
51
+
52
+ var inputRef = useRef(null);
53
+ var canSave = value !== initialValue && !invalid;
54
+ var escaping = useRef(false);
55
+ useEffect(function () {
56
+ if (!initialValue && !dirtyInput) {
57
+ setInitialValue(value);
58
+ }
59
+ }, [initialValue, dirtyInput, value]);
60
+
61
+ var isTargetingChild = function isTargetingChild(_ref2) {
62
+ var currentTarget = _ref2.currentTarget,
63
+ relatedTarget = _ref2.relatedTarget;
64
+ return currentTarget.contains(relatedTarget);
65
+ };
66
+
67
+ var onChangeHandler = function onChangeHandler(_ref3) {
68
+ var target = _ref3.target;
69
+
70
+ if (!dirtyInput) {
71
+ setDirtyInput(true);
72
+ }
73
+
74
+ onChange(target.value);
75
+ };
76
+
77
+ var onFocusHandler = function onFocusHandler(e) {
78
+ // if (readOnly) {
79
+ // return;
80
+ // }
81
+ if (!isTargetingChild(e)) {
82
+ inputRef.current.focus();
83
+ setFocused(true);
84
+ }
85
+ };
86
+
87
+ var onSaveHandler = function onSaveHandler() {
88
+ setInitialValue(value);
89
+ setFocused(false);
90
+ setDirtyInput(false);
91
+ onSave();
92
+ };
93
+
94
+ var onCancelHandler = function onCancelHandler() {
95
+ setFocused(false);
96
+ setDirtyInput(false);
97
+ onCancel(initialValue);
98
+ };
99
+
100
+ var onBlurHandler = function onBlurHandler(e) {
101
+ // if (readOnly || escaping.current) {
102
+ if (escaping.current) {
103
+ return;
104
+ }
105
+
106
+ if (!isTargetingChild(e)) {
107
+ if (canSave) {
108
+ onSaveHandler();
109
+ } else {
110
+ onCancelHandler();
111
+ }
112
+ }
113
+ };
114
+
115
+ var returnHandler = function returnHandler() {
116
+ if (canSave) {
117
+ onSaveHandler();
118
+ }
119
+ };
120
+
121
+ var escapeHandler = function escapeHandler() {
122
+ onCancelHandler();
123
+ };
124
+
125
+ var onKeyHandler = function onKeyHandler(e) {
126
+ // to prevent blur handler from being called twice add additional state to check if escape is being used
127
+ escaping.current = true;
128
+
129
+ switch (e.key) {
130
+ case 'Escape':
131
+ inputRef.current.blur();
132
+ escapeHandler();
133
+ break;
134
+
135
+ case 'Enter':
136
+ inputRef.current.blur();
137
+ returnHandler();
138
+ break;
139
+
140
+ default:
141
+ break;
142
+ }
143
+
144
+ escaping.current = false;
145
+ };
146
+
147
+ return /*#__PURE__*/React.createElement("div", _extends({}, rest, {
148
+ ref: ref
149
+ }, getDevtoolsProps(componentName)), /*#__PURE__*/React.createElement("div", {
150
+ className: cx(blockClass, _defineProperty({}, "".concat(blockClass, "-focused"), focused)),
151
+ onFocus: onFocusHandler,
152
+ onBlur: onBlurHandler
153
+ }, /*#__PURE__*/React.createElement("label", {
154
+ className: "".concat(blockClass, "__text-input-label"),
155
+ htmlFor: id
156
+ }, labelText), /*#__PURE__*/React.createElement("input", {
157
+ id: id,
158
+ className: cx("".concat(blockClass, "__text-input"), "".concat(carbon.prefix, "--text-input"), "".concat(carbon.prefix, "--text-input--sm")),
159
+ type: "text",
160
+ value: value,
161
+ onChange: onChangeHandler,
162
+ ref: inputRef // readOnly={readOnly}
163
+ ,
164
+ onKeyDown: onKeyHandler
165
+ }), focused ? /*#__PURE__*/React.createElement(React.Fragment, null, invalid && /*#__PURE__*/React.createElement(WarningFilled, {
166
+ size: 16,
167
+ className: "".concat(blockClass, "__warning-icon")
168
+ }), /*#__PURE__*/React.createElement(Button, {
169
+ hasIconOnly: true,
170
+ renderIcon: function renderIcon() {
171
+ return /*#__PURE__*/React.createElement(Close, {
172
+ size: 24
173
+ });
174
+ },
175
+ size: "sm",
176
+ iconDescription: cancelLabel,
177
+ onClick: onCancelHandler,
178
+ kind: "ghost",
179
+ tabIndex: 0,
180
+ key: "cancel",
181
+ className: "".concat(blockClass, "__btn ").concat(blockClass, "__btn-cancel")
182
+ }), /*#__PURE__*/React.createElement(Button, {
183
+ hasIconOnly: true,
184
+ renderIcon: function renderIcon() {
185
+ return /*#__PURE__*/React.createElement(Checkmark, {
186
+ size: 24
187
+ });
188
+ },
189
+ size: "sm",
190
+ iconDescription: saveLabel,
191
+ onClick: onSaveHandler,
192
+ kind: "ghost",
193
+ tabIndex: 0,
194
+ key: "save",
195
+ className: "".concat(blockClass, "__btn ").concat(blockClass, "__btn-save"),
196
+ disabled: !canSave
197
+ })) : /*#__PURE__*/React.createElement(Button, {
198
+ className: "".concat(blockClass, "__btn ").concat(blockClass, "__btn-edit"),
199
+ hasIconOnly: true // renderIcon={readOnly ? EditOff24 : Edit24}
200
+ ,
201
+ renderIcon: function renderIcon() {
202
+ return /*#__PURE__*/React.createElement(Edit, {
203
+ size: 24
204
+ });
205
+ },
206
+ size: "sm" // iconDescription={readOnly ? readOnlyLabel : editLabel}
207
+ ,
208
+ iconDescription: editLabel,
209
+ onClick: onFocusHandler,
210
+ kind: "ghost",
211
+ tabIndex: 0,
212
+ key: "edit"
213
+ })), focused && invalid && /*#__PURE__*/React.createElement("p", {
214
+ className: "".concat(blockClass, "__warning-text")
215
+ }, invalidLabel));
216
+ });
217
+ InlineEditV2 = pkg.checkComponentEnabled(InlineEditV2, componentName);
218
+ InlineEditV2.displayName = componentName;
219
+ InlineEditV2.propTypes = {
220
+ /**
221
+ * label for cancel button
222
+ */
223
+ cancelLabel: PropTypes.string.isRequired,
224
+
225
+ /**
226
+ * label for edit button
227
+ */
228
+ editLabel: PropTypes.string.isRequired,
229
+
230
+ /**
231
+ * Specify a custom id for the input
232
+ */
233
+ id: PropTypes.string.isRequired,
234
+
235
+ /**
236
+ * determines if the input is invalid
237
+ */
238
+ invalid: PropTypes.bool,
239
+
240
+ /**
241
+ * text that is displayed if the input is invalid
242
+ */
243
+ invalidLabel: PropTypes.string,
244
+
245
+ /**
246
+ * Provide the text that will be read by a screen reader when visiting this control
247
+ */
248
+ labelText: PropTypes.string.isRequired,
249
+
250
+ /**
251
+ * handler that is called when the cancel button is pressed or when the user removes focus from the input and there is no new value
252
+ */
253
+ onCancel: PropTypes.func.isRequired,
254
+
255
+ /**
256
+ * handler that is called when the input is updated
257
+ */
258
+ onChange: PropTypes.func.isRequired,
259
+
260
+ /**
261
+ * handler that is called when the save button is pressed or when the user removes focus from the input if it has a new value
262
+ */
263
+ onSave: PropTypes.func.isRequired,
264
+
265
+ /**
266
+ * determines if the input is in readOnly mode
267
+ */
268
+ // readOnly: PropTypes.bool,
269
+
270
+ /**
271
+ * label for the edit button that displays when in read only mode
272
+ */
273
+ // readOnlyLabel: PropTypes.string,
274
+
275
+ /**
276
+ * label for save button
277
+ */
278
+ saveLabel: PropTypes.string.isRequired,
279
+
280
+ /**
281
+ * current value of the input
282
+ */
283
+ value: PropTypes.string.isRequired
284
+ };
285
+ InlineEditV2.defaultProps = {
286
+ invalid: false,
287
+ invalidLabel: '' // readOnly: false,
288
+
289
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright IBM Corp. 2022, 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
+ export { InlineEditV2 } from './InlineEditV2';
@@ -1,4 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ //
3
+ // Copyright IBM Corp. 2022, 2022
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
+ //
2
8
  import React, { forwardRef } from 'react';
3
9
  import PropTypes from 'prop-types';
4
10
  import { AddSelect } from '../AddSelect';
@@ -64,6 +70,11 @@ MultiAddSelect.propTypes = {
64
70
  */
65
71
  globalSearchPlaceholder: PropTypes.string,
66
72
 
73
+ /**
74
+ * the theme for the empty state illustration
75
+ */
76
+ illustrationTheme: PropTypes.oneOf(['light', 'dark']),
77
+
67
78
  /**
68
79
  * title that displays in the sidebar / influencer
69
80
  */
@@ -84,7 +95,8 @@ MultiAddSelect.propTypes = {
84
95
  avatar: PropTypes.shape({
85
96
  alt: PropTypes.string,
86
97
  icon: PropTypes.func,
87
- src: PropTypes.string
98
+ src: PropTypes.string,
99
+ theme: PropTypes.oneOf(['light', 'dark'])
88
100
  }),
89
101
  children: PropTypes.object,
90
102
  icon: PropTypes.func,
@@ -145,15 +157,10 @@ MultiAddSelect.propTypes = {
145
157
  */
146
158
  open: PropTypes.bool,
147
159
 
148
- /**
149
- * description for the remove item icon
150
- */
151
- removeIconDescription: PropTypes.string,
152
-
153
160
  /**
154
161
  * text that displays when displaying filtered items
155
162
  */
156
- searchResultsLabel: PropTypes.string,
163
+ searchResultsTitle: PropTypes.string,
157
164
 
158
165
  /**
159
166
  * header text
@@ -1 +1,7 @@
1
+ //
2
+ // Copyright IBM Corp. 2022, 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
+ //
1
7
  export { MultiAddSelect } from './MultiAddSelect';
@@ -65,12 +65,10 @@ export var PageHeaderTitle = function PageHeaderTitle(_ref) {
65
65
  titleText = asText;
66
66
  }
67
67
 
68
- return /*#__PURE__*/React.createElement("div", {
68
+ return /*#__PURE__*/React.createElement("h1", {
69
69
  className: cx("".concat(blockClass, "__title"), _defineProperty({}, "".concat(blockClass, "__title--editable"), isEditable), _defineProperty({}, "".concat(blockClass, "__title--fades"), hasBreadcrumbRow)),
70
70
  title: titleText
71
- }, /*#__PURE__*/React.createElement("h1", {
72
- className: "".concat(blockClass, "__title-wrapper")
73
- }, titleInnards));
71
+ }, titleInnards);
74
72
  };
75
73
  export var inlineEditRequired = function inlineEditRequired(_ref2) {
76
74
  var onSave = _ref2.onSave;
@@ -1,4 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ //
3
+ // Copyright IBM Corp. 2022
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
+ //
2
8
  import React, { forwardRef } from 'react';
3
9
  import PropTypes from 'prop-types';
4
10
  import { AddSelect } from '../AddSelect';
@@ -1 +1,7 @@
1
+ //
2
+ // Copyright IBM Corp. 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
+ //
1
7
  export { SingleAddSelect } from './SingleAddSelect';
@@ -36,6 +36,7 @@ var defaults = {
36
36
  HTTPErrorOther: true,
37
37
  ImportModal: true,
38
38
  InlineEdit: true,
39
+ InlineEditV1: true,
39
40
  NotificationsPanel: true,
40
41
  NoDataEmptyState: true,
41
42
  NoTagsEmptyState: true,
@@ -70,7 +71,8 @@ var defaults = {
70
71
  EditTearsheet: false,
71
72
  EditTearsheetNarrow: false,
72
73
  EditFullPage: false,
73
- EditUpdateCards: false
74
+ EditUpdateCards: false,
75
+ InlineEditV2: false
74
76
  /* new component flags here - comment used by generate CLI */
75
77
 
76
78
  },
@@ -59,6 +59,7 @@ var ActionBarOverflowItems = function ActionBarOverflowItems(_ref) {
59
59
  var ItemIcon = item.props.renderIcon;
60
60
  return /*#__PURE__*/_react.default.createElement(_react2.OverflowMenuItem, {
61
61
  className: "".concat(blockClass, "__item"),
62
+ onClick: item.props.onClick,
62
63
  itemText: /*#__PURE__*/_react.default.createElement("div", {
63
64
  className: "".concat(blockClass, "__item-content"),
64
65
  "aria-describedby": "".concat(internalId.current, "-").concat(index, "--item-label")
@@ -67,12 +67,14 @@ AddSelect.propTypes = {
67
67
  label: _propTypes.default.string
68
68
  })),
69
69
  globalFiltersIconDescription: _propTypes.default.string,
70
+ globalFiltersLabel: _propTypes.default.string,
70
71
  globalFiltersPlaceholderText: _propTypes.default.string,
71
72
  globalFiltersPrimaryButtonText: _propTypes.default.string,
72
73
  globalFiltersSecondaryButtonText: _propTypes.default.string,
73
74
  globalSearchLabel: _propTypes.default.string.isRequired,
74
75
  globalSearchPlaceholder: _propTypes.default.string,
75
76
  globalSortBy: _propTypes.default.array,
77
+ illustrationTheme: _propTypes.default.oneOf(['light', 'dark']),
76
78
  influencerTitle: _propTypes.default.string,
77
79
  items: _propTypes.default.shape({
78
80
  modifiers: _propTypes.default.shape({
@@ -86,7 +88,8 @@ AddSelect.propTypes = {
86
88
  avatar: _propTypes.default.shape({
87
89
  alt: _propTypes.default.string,
88
90
  icon: _propTypes.default.func,
89
- src: _propTypes.default.string
91
+ src: _propTypes.default.string,
92
+ theme: _propTypes.default.oneOf(['light', 'dark'])
90
93
  }),
91
94
  children: _propTypes.default.object,
92
95
  icon: _propTypes.default.func,
@@ -120,7 +123,7 @@ AddSelect.propTypes = {
120
123
  * portal target for the all tags modal
121
124
  */
122
125
  portalTarget: _propTypes.default.node,
123
- searchResultsLabel: _propTypes.default.string,
126
+ searchResultsTitle: _propTypes.default.string,
124
127
  sortByLabel: _propTypes.default.string,
125
128
  title: _propTypes.default.string.isRequired
126
129
  };
@@ -51,16 +51,19 @@ var _usePath2 = _interopRequireDefault(require("./hooks/usePath"));
51
51
 
52
52
  var _settings = require("../../settings");
53
53
 
54
- var _excluded = ["className", "clearFiltersText", "closeIconDescription", "columnInputPlaceholder", "defaultModifiers", "description", "filterByLabel", "globalFilterOpts", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "globalSearchLabel", "globalSearchPlaceholder", "globalSortBy", "influencerTitle", "items", "itemsLabel", "metaIconDescription", "metaPanelTitle", "multi", "navIconDescription", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "normalizedItems", "onClose", "onCloseButtonText", "onSubmit", "onSubmitButtonText", "open", "portalTarget", "searchResultsLabel", "sortByLabel", "title", "useNormalizedItems"];
54
+ var _excluded = ["className", "clearFiltersText", "closeIconDescription", "columnInputPlaceholder", "defaultModifiers", "description", "filterByLabel", "globalFilterOpts", "globalFiltersLabel", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "globalSearchLabel", "globalSearchPlaceholder", "globalSortBy", "illustrationTheme", "influencerTitle", "items", "itemsLabel", "metaIconDescription", "metaPanelTitle", "multi", "navIconDescription", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "normalizedItems", "onClose", "onCloseButtonText", "onSubmit", "onSubmitButtonText", "open", "portalTarget", "searchResultsTitle", "title", "useNormalizedItems"];
55
55
 
56
56
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
57
57
 
58
58
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
59
59
 
60
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
61
+
62
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
63
+
60
64
  var blockClass = "".concat(_settings.pkg.prefix, "--add-select");
61
65
  var componentName = 'AddSelectBody';
62
-
63
- var AddSelectBody = function AddSelectBody(_ref) {
66
+ var AddSelectBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
64
67
  var _cx, _path$;
65
68
 
66
69
  var className = _ref.className,
@@ -71,6 +74,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
71
74
  description = _ref.description,
72
75
  filterByLabel = _ref.filterByLabel,
73
76
  globalFilterOpts = _ref.globalFilterOpts,
77
+ globalFiltersLabel = _ref.globalFiltersLabel,
74
78
  globalFiltersIconDescription = _ref.globalFiltersIconDescription,
75
79
  globalFiltersPlaceholderText = _ref.globalFiltersPlaceholderText,
76
80
  globalFiltersPrimaryButtonText = _ref.globalFiltersPrimaryButtonText,
@@ -78,6 +82,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
78
82
  globalSearchLabel = _ref.globalSearchLabel,
79
83
  globalSearchPlaceholder = _ref.globalSearchPlaceholder,
80
84
  globalSortBy = _ref.globalSortBy,
85
+ illustrationTheme = _ref.illustrationTheme,
81
86
  influencerTitle = _ref.influencerTitle,
82
87
  items = _ref.items,
83
88
  itemsLabel = _ref.itemsLabel,
@@ -96,8 +101,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
96
101
  onSubmitButtonText = _ref.onSubmitButtonText,
97
102
  open = _ref.open,
98
103
  portalTarget = _ref.portalTarget,
99
- searchResultsLabel = _ref.searchResultsLabel,
100
- sortByLabel = _ref.sortByLabel,
104
+ searchResultsTitle = _ref.searchResultsTitle,
101
105
  title = _ref.title,
102
106
  useNormalizedItems = _ref.useNormalizedItems,
103
107
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -146,7 +150,8 @@ var AddSelectBody = function AddSelectBody(_ref) {
146
150
  var _usePath = (0, _usePath2.default)(itemsLabel),
147
151
  path = _usePath.path,
148
152
  setPath = _usePath.setPath,
149
- pathOnclick = _usePath.pathOnclick;
153
+ pathOnclick = _usePath.pathOnclick,
154
+ resetPath = _usePath.resetPath;
150
155
 
151
156
  var resetState = function resetState() {
152
157
  setSingleSelection('');
@@ -154,6 +159,11 @@ var AddSelectBody = function AddSelectBody(_ref) {
154
159
  setSearchTerm('');
155
160
  setAppliedGlobalFilters({});
156
161
  setDisplayMetaPanel({});
162
+ setAppliedModifiers(defaultModifiers);
163
+ setSortAttribute('');
164
+ setSortDirection('');
165
+ setParentSelected(null);
166
+ resetPath();
157
167
  };
158
168
 
159
169
  var onCloseHandler = function onCloseHandler() {
@@ -161,7 +171,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
161
171
  onClose();
162
172
  };
163
173
 
164
- var classNames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx));
174
+ var tearsheetClassnames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx));
165
175
  var globalFilterKeys = Object.keys(appliedGlobalFilters);
166
176
  var globalFiltersApplied = globalFilterKeys.length > 0; // handlers
167
177
 
@@ -235,12 +245,12 @@ var AddSelectBody = function AddSelectBody(_ref) {
235
245
  setDisplayMetaPanel: setDisplayMetaPanel,
236
246
  parentId: path[0].id
237
247
  };
238
- var commonTearsheetProps = {
239
- className: classNames,
248
+
249
+ var commonTearsheetProps = _objectSpread(_objectSpread({}, rest), {}, {
250
+ className: tearsheetClassnames,
240
251
  open: open,
241
252
  title: title,
242
253
  description: description,
243
- closeIconDescription: 'temp description',
244
254
  actions: [{
245
255
  label: onCloseButtonText,
246
256
  kind: 'secondary',
@@ -251,12 +261,15 @@ var AddSelectBody = function AddSelectBody(_ref) {
251
261
  onClick: submitHandler,
252
262
  disabled: multi ? multiSelection.length === 0 : !singleSelection
253
263
  }],
254
- portalTarget: portalTarget
255
- };
264
+ portalTarget: portalTarget,
265
+ ref: ref
266
+ });
267
+
256
268
  var sidebarProps = {
257
269
  appliedModifiers: appliedModifiers,
258
270
  closeIconDescription: closeIconDescription,
259
271
  displayMetalPanel: displayMetalPanel,
272
+ illustrationTheme: illustrationTheme,
260
273
  influencerTitle: influencerTitle,
261
274
  items: useNormalizedItems ? normalizedItems : items.entries,
262
275
  metaPanelTitle: metaPanelTitle,
@@ -277,6 +290,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
277
290
  handleSearch: handleSearch,
278
291
  multi: multi,
279
292
  filterOpts: globalFilterOpts,
293
+ filtersLabel: globalFiltersLabel,
280
294
  handleFilter: handleFilter,
281
295
  primaryButtonText: globalFiltersPrimaryButtonText,
282
296
  secondaryButtonText: globalFiltersSecondaryButtonText,
@@ -288,14 +302,14 @@ var AddSelectBody = function AddSelectBody(_ref) {
288
302
  }), /*#__PURE__*/_react.default.createElement("div", {
289
303
  className: (0, _classnames.default)("".concat(blockClass, "__sub-header"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__sub-header-multi"), multi))
290
304
  }, /*#__PURE__*/_react.default.createElement("div", {
291
- className: "".concat(blockClass, "__tag-container")
305
+ className: "".concat(blockClass, "__tags")
292
306
  }, showBreadsCrumbs ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
293
307
  path: path,
294
308
  onClick: pathOnclick,
295
309
  multi: multi
296
310
  }) : /*#__PURE__*/_react.default.createElement("p", {
297
- className: "".concat(blockClass, "__tag-container-label")
298
- }, searchTerm ? searchResultsLabel : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_react2.Tag, {
311
+ className: "".concat(blockClass, "__tags-label")
312
+ }, searchTerm ? searchResultsTitle : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_react2.Tag, {
299
313
  type: "gray",
300
314
  size: "sm"
301
315
  }, itemsToDisplay.length)), showSort && /*#__PURE__*/_react.default.createElement(_AddSelectSort.AddSelectSort, {
@@ -304,8 +318,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
304
318
  setSortDirection: setSortDirection,
305
319
  sortAttribute: sortAttribute,
306
320
  sortDirection: sortDirection,
307
- sortBy: globalSortBy,
308
- sortByLabel: sortByLabel
321
+ sortBy: globalSortBy
309
322
  }))), displayColumnView ? /*#__PURE__*/_react.default.createElement("div", {
310
323
  className: "".concat(blockClass, "__columns")
311
324
  }, /*#__PURE__*/_react.default.createElement(_AddSelectColumn.AddSelectColumn, (0, _extends2.default)({}, commonListProps, {
@@ -325,15 +338,19 @@ var AddSelectBody = function AddSelectBody(_ref) {
325
338
  className: "".concat(blockClass, "__body")
326
339
  }, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
327
340
  subtitle: noResultsDescription,
328
- title: noResultsTitle
341
+ title: noResultsTitle,
342
+ illustrationTheme: illustrationTheme
329
343
  }))));
330
344
 
331
- return /*#__PURE__*/_react.default.createElement("div", rest, multi ? /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
332
- influencer: multi && /*#__PURE__*/_react.default.createElement(_AddSelectSidebar.AddSelectSidebar, sidebarProps),
333
- influencerPosition: "right"
334
- }), body) : /*#__PURE__*/_react.default.createElement(_Tearsheet.TearsheetNarrow, commonTearsheetProps, body));
335
- };
345
+ if (multi) {
346
+ return /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
347
+ influencer: multi && /*#__PURE__*/_react.default.createElement(_AddSelectSidebar.AddSelectSidebar, sidebarProps),
348
+ influencerPosition: "right"
349
+ }), body);
350
+ }
336
351
 
352
+ return /*#__PURE__*/_react.default.createElement(_Tearsheet.TearsheetNarrow, commonTearsheetProps, body);
353
+ });
337
354
  exports.AddSelectBody = AddSelectBody;
338
355
  AddSelectBody.propTypes = {
339
356
  className: _propTypes.default.string,
@@ -345,12 +362,14 @@ AddSelectBody.propTypes = {
345
362
  filterByLabel: _propTypes.default.string,
346
363
  globalFilterOpts: _propTypes.default.array,
347
364
  globalFiltersIconDescription: _propTypes.default.string,
365
+ globalFiltersLabel: _propTypes.default.string,
348
366
  globalFiltersPlaceholderText: _propTypes.default.string,
349
367
  globalFiltersPrimaryButtonText: _propTypes.default.string,
350
368
  globalFiltersSecondaryButtonText: _propTypes.default.string,
351
369
  globalSearchLabel: _propTypes.default.string.isRequired,
352
370
  globalSearchPlaceholder: _propTypes.default.string,
353
371
  globalSortBy: _propTypes.default.array,
372
+ illustrationTheme: _propTypes.default.oneOf(['light', 'dark']),
354
373
  influencerTitle: _propTypes.default.string,
355
374
  items: _propTypes.default.shape({
356
375
  modifiers: _propTypes.default.shape({
@@ -364,7 +383,8 @@ AddSelectBody.propTypes = {
364
383
  avatar: _propTypes.default.shape({
365
384
  alt: _propTypes.default.string,
366
385
  icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
367
- src: _propTypes.default.string
386
+ src: _propTypes.default.string,
387
+ theme: _propTypes.default.oneOf(['light', 'dark'])
368
388
  }),
369
389
  children: _propTypes.default.object,
370
390
  icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
@@ -395,7 +415,7 @@ AddSelectBody.propTypes = {
395
415
  onSubmitButtonText: _propTypes.default.string,
396
416
  open: _propTypes.default.bool,
397
417
  portalTarget: _propTypes.default.node,
398
- searchResultsLabel: _propTypes.default.string,
418
+ searchResultsTitle: _propTypes.default.string,
399
419
  sortByLabel: _propTypes.default.string,
400
420
  title: _propTypes.default.string,
401
421
  useNormalizedItems: _propTypes.default.bool
@@ -20,7 +20,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
20
20
  var _settings = require("../../settings");
21
21
 
22
22
  //
23
- // Copyright IBM Corp. 2022
23
+ // Copyright IBM Corp. 2022, 2022
24
24
  //
25
25
  // This source code is licensed under the Apache-2.0 license found in the
26
26
  // LICENSE file in the root directory of this source tree.