@carbon/ibm-products 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. package/css/index-full-carbon.css +1766 -1701
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +2 -2
  4. package/css/index-without-carbon-released-only.css +32 -41
  5. package/css/index-without-carbon-released-only.css.map +1 -1
  6. package/css/index-without-carbon-released-only.min.css +2 -2
  7. package/css/index-without-carbon.css +228 -163
  8. package/css/index-without-carbon.css.map +1 -1
  9. package/css/index-without-carbon.min.css +2 -2
  10. package/css/index.css +1767 -1702
  11. package/css/index.css.map +1 -1
  12. package/css/index.min.css +2 -2
  13. package/es/components/APIKeyModal/APIKeyModal.js +25 -29
  14. package/es/components/ActionBar/ActionBar.js +4 -1
  15. package/es/components/AddSelect/AddSelect.js +65 -19
  16. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +19 -15
  17. package/es/components/CancelableTextEdit/CancelableTextEdit.js +60 -22
  18. package/es/components/CreateFullPage/CreateFullPage.js +78 -259
  19. package/es/components/CreateFullPage/CreateFullPageStep.js +58 -14
  20. package/es/components/CreateFullPage/index.js +1 -2
  21. package/es/components/CreateInfluencer/CreateInfluencer.js +23 -225
  22. package/es/components/CreateTearsheet/CreateTearsheet.js +69 -146
  23. package/es/components/CreateTearsheet/CreateTearsheetStep.js +59 -16
  24. package/es/components/CreateTearsheet/index.js +0 -1
  25. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +66 -27
  26. package/es/components/ExportModal/ExportModal.js +4 -2
  27. package/es/components/ImportModal/ImportModal.js +2 -1
  28. package/es/components/InlineEdit/InlineEdit.js +224 -0
  29. package/es/components/InlineEdit/index.js +7 -0
  30. package/es/components/MultiAddSelect/MultiAddSelect.js +16 -0
  31. package/es/components/MultiAddSelect/index.js +1 -0
  32. package/es/components/OptionsTile/OptionsTile.js +36 -15
  33. package/es/components/PageHeader/PageHeader.js +54 -33
  34. package/es/components/PageHeader/PageHeaderTitle.js +78 -7
  35. package/es/components/PageHeader/PageHeaderUtils.js +21 -2
  36. package/es/components/RemoveModal/RemoveModal.js +4 -2
  37. package/es/components/SingleAddSelect/SingleAddSelect.js +15 -0
  38. package/es/components/SingleAddSelect/index.js +1 -0
  39. package/es/components/TagSet/TagSet.js +4 -1
  40. package/es/components/Toolbar/Toolbar.js +69 -8
  41. package/es/components/index.js +4 -2
  42. package/es/global/js/hooks/useCreateComponentFocus.js +15 -19
  43. package/es/global/js/hooks/useCreateComponentStepChange.js +44 -74
  44. package/es/global/js/hooks/useValidCreateStepCount.js +4 -7
  45. package/es/global/js/package-settings.js +4 -2
  46. package/lib/components/APIKeyModal/APIKeyModal.js +25 -29
  47. package/lib/components/ActionBar/ActionBar.js +4 -1
  48. package/lib/components/AddSelect/AddSelect.js +64 -19
  49. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +18 -14
  50. package/lib/components/CancelableTextEdit/CancelableTextEdit.js +61 -22
  51. package/lib/components/CreateFullPage/CreateFullPage.js +78 -259
  52. package/lib/components/CreateFullPage/CreateFullPageStep.js +61 -14
  53. package/lib/components/CreateFullPage/index.js +1 -9
  54. package/lib/components/CreateInfluencer/CreateInfluencer.js +21 -236
  55. package/lib/components/CreateTearsheet/CreateTearsheet.js +71 -148
  56. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +61 -15
  57. package/lib/components/CreateTearsheet/index.js +0 -8
  58. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +67 -35
  59. package/lib/components/ExportModal/ExportModal.js +4 -2
  60. package/lib/components/ImportModal/ImportModal.js +2 -1
  61. package/lib/components/InlineEdit/InlineEdit.js +242 -0
  62. package/lib/components/InlineEdit/index.js +13 -0
  63. package/lib/components/MultiAddSelect/MultiAddSelect.js +37 -0
  64. package/lib/components/MultiAddSelect/index.js +13 -0
  65. package/lib/components/OptionsTile/OptionsTile.js +36 -15
  66. package/lib/components/PageHeader/PageHeader.js +54 -33
  67. package/lib/components/PageHeader/PageHeaderTitle.js +87 -9
  68. package/lib/components/PageHeader/PageHeaderUtils.js +21 -2
  69. package/lib/components/RemoveModal/RemoveModal.js +4 -2
  70. package/lib/components/SingleAddSelect/SingleAddSelect.js +36 -0
  71. package/lib/components/SingleAddSelect/index.js +13 -0
  72. package/lib/components/TagSet/TagSet.js +4 -1
  73. package/lib/components/Toolbar/Toolbar.js +69 -6
  74. package/lib/components/index.js +25 -9
  75. package/lib/global/js/hooks/useCreateComponentFocus.js +15 -19
  76. package/lib/global/js/hooks/useCreateComponentStepChange.js +44 -74
  77. package/lib/global/js/hooks/useValidCreateStepCount.js +4 -7
  78. package/lib/global/js/package-settings.js +4 -2
  79. package/package.json +8 -8
  80. package/scss/components/AddSelect/_add-select.scss +14 -3
  81. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +19 -15
  82. package/scss/components/CancelableTextEdit/_cancelable-text-edit.scss +141 -70
  83. package/scss/components/CreateFullPage/_create-full-page.scss +4 -11
  84. package/scss/components/CreateTearsheet/_create-tearsheet.scss +4 -8
  85. package/scss/components/InlineEdit/_index.scss +8 -0
  86. package/scss/components/InlineEdit/_inline-edit.scss +44 -0
  87. package/scss/components/InlineEdit/_storybook-styles.scss +15 -0
  88. package/scss/components/MultiAddSelect/_index.scss +1 -0
  89. package/scss/components/MultiAddSelect/_multi-add-select.scss +1 -0
  90. package/scss/components/MultiAddSelect/_storybook-styles.scss +6 -0
  91. package/scss/components/PageHeader/_page-header.scss +14 -4
  92. package/scss/components/SingleAddSelect/_index.scss +1 -0
  93. package/scss/components/SingleAddSelect/_single-add-select.scss +1 -0
  94. package/scss/components/SingleAddSelect/_storybook-styles.scss +6 -0
  95. package/scss/components/_index.scss +3 -1
  96. package/es/components/CreateFullPage/CreateFullPageSection.js +0 -53
  97. package/es/components/CreateFullPage/constants.js +0 -8
  98. package/es/components/CreateTearsheet/CreateTearsheetSection.js +0 -83
  99. package/es/components/CreateTearsheet/constants.js +0 -8
  100. package/es/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +0 -327
  101. package/es/global/js/utils/hasValidType.js +0 -94
  102. package/lib/components/CreateFullPage/CreateFullPageSection.js +0 -74
  103. package/lib/components/CreateFullPage/constants.js +0 -16
  104. package/lib/components/CreateTearsheet/CreateTearsheetSection.js +0 -105
  105. package/lib/components/CreateTearsheet/constants.js +0 -17
  106. package/lib/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +0 -354
  107. package/lib/global/js/utils/hasValidType.js +0 -110
@@ -29,7 +29,7 @@ var _NoDataEmptyState = require("../../components/EmptyStates/NoDataEmptyState")
29
29
 
30
30
  var _settings = require("../../settings");
31
31
 
32
- var _excluded = ["actions", "className", "description", "influencerTitle", "inputPlaceholder", "items", "itemsLabel", "multiSelect", "noSelectionDescription", "noSelectionTitle", "open", "title"];
32
+ var _excluded = ["actions", "className", "description", "influencerTitle", "inputPlaceholder", "items", "itemsLabel", "multi", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onSearchFilter", "open", "title"];
33
33
 
34
34
  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); }
35
35
 
@@ -44,26 +44,58 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
44
44
  inputPlaceholder = _ref.inputPlaceholder,
45
45
  items = _ref.items,
46
46
  itemsLabel = _ref.itemsLabel,
47
- multiSelect = _ref.multiSelect,
47
+ multi = _ref.multi,
48
+ noResultsDescription = _ref.noResultsDescription,
49
+ noResultsTitle = _ref.noResultsTitle,
48
50
  noSelectionDescription = _ref.noSelectionDescription,
49
51
  noSelectionTitle = _ref.noSelectionTitle,
52
+ onSearchFilter = _ref.onSearchFilter,
50
53
  open = _ref.open,
51
54
  title = _ref.title,
52
55
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
53
56
  var blockClass = "".concat(_settings.pkg.prefix, "--add-select");
54
-
55
- var _useState = (0, _react.useState)(0),
56
- _useState2 = (0, _slicedToArray2.default)(_useState, 1),
57
- selected = _useState2[0];
58
-
59
57
  var commonTearsheetProps = {
60
58
  open: open,
61
59
  title: title,
62
60
  actions: actions,
63
61
  description: description,
64
62
  closeIconDescription: 'temp description'
63
+ }; // hooks
64
+
65
+ var _useState = (0, _react.useState)(0),
66
+ _useState2 = (0, _slicedToArray2.default)(_useState, 1),
67
+ selected = _useState2[0];
68
+
69
+ var _useState3 = (0, _react.useState)(''),
70
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
71
+ searchTerm = _useState4[0],
72
+ setSearchTerm = _useState4[1]; // handlers
73
+
74
+
75
+ var onSearchHandler = function onSearchHandler(e) {
76
+ var value = e.target.value;
77
+ setSearchTerm(value);
78
+
79
+ if (onSearchFilter) {
80
+ onSearchFilter(value);
81
+ }
82
+ }; // data manipulation
83
+
84
+
85
+ var getFilteredItems = function getFilteredItems() {
86
+ // if the user uses their own filter then they provide the filtered items
87
+ if (onSearchFilter) {
88
+ return items;
89
+ } // by default, just filter results by their label from a single search term
90
+
91
+
92
+ return items.filter(function (i) {
93
+ return i.label.includes(searchTerm);
94
+ });
65
95
  };
66
96
 
97
+ var filteredResults = getFilteredItems(); // sidebar
98
+
67
99
  var influencer = /*#__PURE__*/_react.default.createElement("div", {
68
100
  className: "".concat(blockClass, "__influencer")
69
101
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -79,14 +111,17 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
79
111
  subtitle: noSelectionDescription,
80
112
  title: noSelectionTitle,
81
113
  size: "sm"
82
- })));
114
+ }))); // main content
115
+
83
116
 
84
117
  var body = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
85
118
  className: "".concat(blockClass, "__header")
86
119
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
87
120
  id: "temp-id",
88
121
  labelText: "temp label",
89
- placeholder: inputPlaceholder
122
+ placeholder: inputPlaceholder,
123
+ value: searchTerm,
124
+ onChange: onSearchHandler
90
125
  }), /*#__PURE__*/_react.default.createElement("div", {
91
126
  className: "".concat(blockClass, "__items-label-container")
92
127
  }, /*#__PURE__*/_react.default.createElement("p", {
@@ -94,40 +129,50 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
94
129
  }, itemsLabel), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
95
130
  type: "gray",
96
131
  size: "sm"
97
- }, items.length))), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.StructuredListWrapper, {
132
+ }, filteredResults.length))), filteredResults.length > 0 ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.StructuredListWrapper, {
98
133
  selection: true,
99
134
  className: "".concat(blockClass, "__selections")
100
- }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.StructuredListBody, null, items.map(function (item) {
135
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.StructuredListBody, null, filteredResults.map(function (item) {
101
136
  return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.StructuredListRow, {
102
137
  key: item.id
103
138
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.StructuredListCell, null, /*#__PURE__*/_react.default.createElement("p", null, item.label)));
104
- }))));
139
+ }))) : /*#__PURE__*/_react.default.createElement("div", {
140
+ className: "".concat(blockClass, "__body")
141
+ }, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
142
+ subtitle: noResultsDescription,
143
+ title: noResultsTitle
144
+ })));
105
145
 
106
146
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
107
147
  ref: ref,
108
148
  className: (0, _classnames.default)(className, blockClass)
109
- }, rest), multiSelect ? /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
110
- influencer: multiSelect && influencer,
149
+ }, rest), multi ? /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
150
+ influencer: multi && influencer,
111
151
  influencerPosition: "right"
112
152
  }), body) : /*#__PURE__*/_react.default.createElement(_Tearsheet.TearsheetNarrow, commonTearsheetProps, body));
113
153
  });
114
154
  exports.AddSelect = AddSelect;
115
- exports.AddSelect = AddSelect = _settings.pkg.checkComponentEnabled(AddSelect, componentName);
116
- AddSelect.displayName = componentName;
117
155
  AddSelect.propTypes = {
118
156
  actions: _propTypes.default.array,
119
157
  className: _propTypes.default.string,
120
158
  description: _propTypes.default.string,
121
159
  influencerTitle: _propTypes.default.string,
122
160
  inputPlaceholder: _propTypes.default.string,
123
- items: _propTypes.default.array,
161
+ items: _propTypes.default.arrayOf(_propTypes.default.shape({
162
+ label: _propTypes.default.string,
163
+ id: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
164
+ })),
124
165
  itemsLabel: _propTypes.default.string,
125
- multiSelect: _propTypes.default.bool,
166
+ multi: _propTypes.default.bool,
167
+ noResultsDescription: _propTypes.default.string,
168
+ noResultsTitle: _propTypes.default.string,
126
169
  noSelectionDescription: _propTypes.default.string,
127
170
  noSelectionTitle: _propTypes.default.string,
171
+ onSearchFilter: _propTypes.default.func,
128
172
  open: _propTypes.default.bool,
129
173
  title: _propTypes.default.string
130
174
  };
131
175
  AddSelect.defaultProps = {
132
176
  items: []
133
- };
177
+ };
178
+ AddSelect.displayName = componentName;
@@ -36,7 +36,7 @@ var _uuidv = _interopRequireDefault(require("../../global/js/utils/uuidv4"));
36
36
  require("../../global/js/utils/props-helper");
37
37
 
38
38
  var _excluded = ["breadcrumbs", "className", "maxVisible", "noTrailingSlash", "overflowAriaLabel"],
39
- _excluded2 = ["label", "key", "title"],
39
+ _excluded2 = ["label", "key", "title", "id"],
40
40
  _excluded3 = ["className", "key", "label", "title"];
41
41
 
42
42
  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); }
@@ -122,10 +122,13 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
122
122
  var label = _ref3.label,
123
123
  key = _ref3.key,
124
124
  title = _ref3.title,
125
+ id = _ref3.id,
125
126
  rest = (0, _objectWithoutProperties2.default)(_ref3, _excluded2);
126
127
  return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.BreadcrumbItem, (0, _extends2.default)({
127
128
  key: key
128
129
  }, rest, {
130
+ // ensure id is not duplicated
131
+ "data-original-id": id,
129
132
  title: title !== null && title !== void 0 ? title : label
130
133
  }), label);
131
134
  }))));
@@ -273,7 +276,7 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
273
276
  /* istanbul ignore if */
274
277
  // not sure how to test media queries
275
278
 
276
- if ((_backItem = backItem) !== null && _backItem !== void 0 && _backItem.isCurrentPage) {
279
+ if (backItem.isCurrentPage) {
277
280
  backItem = breadcrumbs[breadcrumbs.length - 2];
278
281
  }
279
282
 
@@ -290,20 +293,21 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
290
293
  ref: breadcrumbItemWithOverflow
291
294
  }, /*#__PURE__*/_react.default.createElement("div", {
292
295
  className: (0, _classnames.default)(["".concat(blockClass, "__space")])
293
- }, hiddenSizingItems, ((_backItem2 = backItem) === null || _backItem2 === void 0 ? void 0 : _backItem2.href) && ((_backItem3 = backItem) === null || _backItem3 === void 0 ? void 0 : _backItem3.title) && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
294
- className: "".concat(blockClass, "__breadcrumb-back-button"),
295
- hasIconOnly: true,
296
- iconDescription: backItem.title,
297
- kind: "ghost",
298
- href: backItem.href,
299
- renderIcon: _iconsReact.ArrowLeft16,
300
- size: "field",
301
- tooltipPosition: "right",
302
- type: "button"
303
- }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Breadcrumb, (0, _extends2.default)({
296
+ }, hiddenSizingItems, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Breadcrumb, (0, _extends2.default)({
304
297
  className: (0, _classnames.default)("".concat(blockClass, "__breadcrumb-container"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__breadcrumb-container-with-items"), displayedBreadcrumbItems.length > 1)),
305
298
  noTrailingSlash: noTrailingSlash
306
- }, other), displayedBreadcrumbItems)));
299
+ }, other), ((_backItem = backItem) === null || _backItem === void 0 ? void 0 : _backItem.href) && (((_backItem2 = backItem) === null || _backItem2 === void 0 ? void 0 : _backItem2.label) || ((_backItem3 = backItem) === null || _backItem3 === void 0 ? void 0 : _backItem3.title)) && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.BreadcrumbItem, {
300
+ className: (0, _classnames.default)("".concat(blockClass, "__breadcrumb-back"))
301
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Link, {
302
+ href: backItem.href,
303
+ renderIcon: function renderIcon() {
304
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TooltipIcon, {
305
+ tooltipText: backItem.title || backItem.label,
306
+ direction: "right",
307
+ renderIcon: _iconsReact.ArrowLeft16
308
+ });
309
+ }
310
+ })), displayedBreadcrumbItems)));
307
311
  }; // Return a placeholder if not released and not enabled by feature flag
308
312
 
309
313
 
@@ -29,9 +29,11 @@ var _propsHelper = require("../../global/js/utils/props-helper");
29
29
 
30
30
  var _settings = require("../../settings");
31
31
 
32
+ var _devtools = require("../../global/js/utils/devtools");
33
+
32
34
  var _iconsReact = require("@carbon/icons-react");
33
35
 
34
- var _excluded = ["className", "inline", "invalid", "invalidText", "labelText", "onChange", "onInput", "revertLabel", "saveLabel", "value", "warn", "warnText"];
36
+ var _excluded = ["className", "hideLabel", "inline", "invalid", "invalidText", "labelText", "onChange", "onInput", "onRevert", "revertDescription", "saveDescription", "saveDisabled", "size", "value", "warn", "warnText"];
35
37
 
36
38
  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); }
37
39
 
@@ -56,14 +58,18 @@ var CancelableTextEdit = /*#__PURE__*/_react.default.forwardRef(function (_ref,
56
58
  var _cx;
57
59
 
58
60
  var className = _ref.className,
61
+ hideLabel = _ref.hideLabel,
59
62
  inline = _ref.inline,
60
63
  invalid = _ref.invalid,
61
64
  invalidText = _ref.invalidText,
62
65
  labelText = _ref.labelText,
63
66
  onChange = _ref.onChange,
64
67
  onInput = _ref.onInput,
65
- revertLabel = _ref.revertLabel,
66
- saveLabel = _ref.saveLabel,
68
+ onRevert = _ref.onRevert,
69
+ revertDescription = _ref.revertDescription,
70
+ saveDescription = _ref.saveDescription,
71
+ saveDisabled = _ref.saveDisabled,
72
+ size = _ref.size,
67
73
  value = _ref.value,
68
74
  warn = _ref.warn,
69
75
  warnText = _ref.warnText,
@@ -100,6 +106,10 @@ var CancelableTextEdit = /*#__PURE__*/_react.default.forwardRef(function (_ref,
100
106
 
101
107
  var handleRevert = function handleRevert() {
102
108
  doInput(value);
109
+
110
+ if (onRevert) {
111
+ onRevert(value);
112
+ }
103
113
  };
104
114
 
105
115
  var handleSave = function handleSave() {
@@ -108,15 +118,19 @@ var CancelableTextEdit = /*#__PURE__*/_react.default.forwardRef(function (_ref,
108
118
  }
109
119
  };
110
120
 
111
- return /*#__PURE__*/_react.default.createElement("div", {
112
- className: (0, _classnames.default)(className, "".concat(blockClass), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--invalid"), invalid), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--warn"), warn), _cx))
121
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
122
+ className: (0, _classnames.default)(className, "".concat(blockClass), "".concat(blockClass, "--").concat(size), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--invalid"), invalid), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--warn"), warn), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--inline"), inline), _cx))
123
+ }, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement("div", {
124
+ className: "".concat(blockClass, "__main")
113
125
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, (0, _extends2.default)({}, (0, _propsHelper.prepareProps)(rest, removeProps), {
114
126
  // it is not permitted to pass children down to TextInput guard against this
115
127
  className: "".concat(blockClass, "__input"),
116
128
  ref: ref,
117
129
  onInput: handleInput,
130
+ size: size,
118
131
  value: liveValue !== null && liveValue !== void 0 ? liveValue : '' // ?? '' prevents controlled components test failure https://reactjs.org/docs/forms.html#controlled-components
119
132
  ,
133
+ hideLabel: hideLabel,
120
134
  inline: inline,
121
135
  invalid: invalid,
122
136
  invalidText: invalidText,
@@ -125,25 +139,29 @@ var CancelableTextEdit = /*#__PURE__*/_react.default.forwardRef(function (_ref,
125
139
  warnText: warnText
126
140
  })), /*#__PURE__*/_react.default.createElement("div", {
127
141
  className: "".concat(blockClass, "__buttons")
128
- }, !inline && labelText && /*#__PURE__*/_react.default.createElement("div", {
142
+ }, !inline && !hideLabel && labelText && /*#__PURE__*/_react.default.createElement("div", {
129
143
  className: "".concat(blockClass, "__label-spacer ").concat(_settings.carbon.prefix, "--label")
130
- }, "\xA0"), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
131
- className: "".concat(blockClass, "__revert ").concat(_settings.carbon.prefix, "--search-close"),
144
+ }, "\xA0"), /*#__PURE__*/_react.default.createElement("div", {
145
+ className: "".concat(blockClass, "__buttons-inner")
146
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
147
+ className: "".concat(blockClass, "__revert"),
132
148
  kind: "ghost",
133
149
  hasIconOnly: true,
134
- iconDescription: revertLabel,
150
+ iconDescription: revertDescription,
135
151
  onClick: handleRevert,
136
152
  renderIcon: _iconsReact.Reset16
137
153
  }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
138
- className: "".concat(blockClass, "__save ").concat(_settings.carbon.prefix, "--search-close"),
154
+ className: "".concat(blockClass, "__save"),
139
155
  kind: "ghost",
140
156
  hasIconOnly: true,
141
- iconDescription: saveLabel,
157
+ iconDescription: saveDescription,
142
158
  onClick: handleSave,
143
159
  renderIcon: _iconsReact.Checkmark16,
144
- disabled: invalid
145
- }))), inline && (showInvalid || showWarn) && /*#__PURE__*/_react.default.createElement("div", {
146
- className: "".concat(_settings.carbon.prefix, "--form-requirement")
160
+ disabled: invalid || saveDisabled || value === liveValue,
161
+ "data-v": value,
162
+ "data-lv": liveValue
163
+ })))), inline && (showInvalid || showWarn) && /*#__PURE__*/_react.default.createElement("div", {
164
+ className: "".concat(blockClass, "__problem ").concat(_settings.carbon.prefix, "--form-requirement")
147
165
  }, showInvalid ? invalidText : warnText));
148
166
  }); // Return a placeholder if not released and not enabled by feature flag
149
167
 
@@ -162,23 +180,28 @@ CancelableTextEdit.propTypes = _objectSpread(_objectSpread({}, (0, _propsHelper.
162
180
  */
163
181
  className: _propTypes.default.string,
164
182
 
183
+ /**
184
+ * hide the label
185
+ */
186
+ hideLabel: _propTypes.default.bool,
187
+
165
188
  /**
166
189
  * inline variant
167
190
  */
168
191
  inline: _propTypes.default.bool,
169
192
 
170
193
  /**
171
- * show invalid for current value
194
+ * set invalid state for input
172
195
  */
173
196
  invalid: _propTypes.default.bool,
174
197
 
175
198
  /**
176
- * invalid text
199
+ * text shown when invalid is true
177
200
  */
178
201
  invalidText: _propTypes.default.string,
179
202
 
180
203
  /**
181
- * labelText for text input
204
+ * label for text input
182
205
  */
183
206
  labelText: _propTypes.default.string,
184
207
 
@@ -192,28 +215,43 @@ CancelableTextEdit.propTypes = _objectSpread(_objectSpread({}, (0, _propsHelper.
192
215
  */
193
216
  onInput: _propTypes.default.func,
194
217
 
218
+ /**
219
+ * method called on revert event
220
+ */
221
+ onRevert: _propTypes.default.func,
222
+
195
223
  /**
196
224
  * label for revert button
197
225
  */
198
- revertLabel: _propTypes.default.string.isRequired,
226
+ revertDescription: _propTypes.default.string.isRequired,
199
227
 
200
228
  /**
201
229
  * label for save button
202
230
  */
203
- saveLabel: _propTypes.default.string.isRequired,
231
+ saveDescription: _propTypes.default.string.isRequired,
232
+
233
+ /**
234
+ * disabled state of the save button
235
+ */
236
+ saveDisabled: _propTypes.default.bool,
237
+
238
+ /**
239
+ * vertical size of control
240
+ */
241
+ size: _propTypes.default.oneOf(['sm', 'md', 'lg']),
204
242
 
205
243
  /**
206
- * unedited value
244
+ * initial/unedited value
207
245
  */
208
246
  value: _propTypes.default.string,
209
247
 
210
248
  /**
211
- * show warning for current value
249
+ * set warn state for input
212
250
  */
213
251
  warn: _propTypes.default.bool,
214
252
 
215
253
  /**
216
- * warn text
254
+ * text shown when warn true
217
255
  */
218
256
  warnText: _propTypes.default.string
219
257
  }); // Default values for component props. Default values are not required for
@@ -223,4 +261,5 @@ CancelableTextEdit.propTypes = _objectSpread(_objectSpread({}, (0, _propsHelper.
223
261
 
224
262
  CancelableTextEdit.defaultProps = {
225
263
  /* TODO: add defaults for relevant props. */
264
+ size: 'md'
226
265
  };