@carbon/ibm-products 1.50.0 → 1.51.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. package/css/index-full-carbon.css +42 -18
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +2 -2
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +38 -11
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +42 -18
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +2 -2
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +42 -18
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +2 -2
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +8 -8
  18. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
  19. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +17 -2
  20. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +8 -4
  21. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
  22. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +14 -0
  23. package/es/components/Datagrid/useFiltering.js +4 -2
  24. package/es/components/Datagrid/useOnRowClick.js +9 -1
  25. package/es/components/Datagrid/useSelectRows.js +2 -0
  26. package/es/components/EditInPlace/EditInPlace.js +43 -0
  27. package/es/components/EditInPlace/index.js +8 -0
  28. package/es/components/InlineEdit/InlineEdit.js +5 -1
  29. package/es/components/InlineEditV1/InlineEditV1.js +5 -2
  30. package/es/components/InlineEditV2/InlineEditV2.js +51 -15
  31. package/es/components/index.js +1 -0
  32. package/es/global/js/package-settings.js +1 -0
  33. package/es/settings.js +15 -0
  34. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +2 -1
  35. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
  36. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +17 -2
  37. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +8 -4
  38. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
  39. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +15 -0
  40. package/lib/components/Datagrid/useFiltering.js +4 -2
  41. package/lib/components/Datagrid/useOnRowClick.js +9 -1
  42. package/lib/components/Datagrid/useSelectRows.js +2 -0
  43. package/lib/components/EditInPlace/EditInPlace.js +46 -0
  44. package/lib/components/EditInPlace/index.js +12 -0
  45. package/lib/components/InlineEdit/InlineEdit.js +5 -1
  46. package/lib/components/InlineEditV1/InlineEditV1.js +5 -2
  47. package/lib/components/InlineEditV2/InlineEditV2.js +53 -16
  48. package/lib/components/index.js +7 -0
  49. package/lib/global/js/package-settings.js +1 -0
  50. package/lib/settings.js +16 -1
  51. package/package.json +2 -2
  52. package/scss/components/Datagrid/styles/_useSelectAllToggle.scss +10 -7
  53. package/scss/components/InlineEditV2/_inline-edit-v2.scss +52 -11
  54. package/scss/components/InlineEditV2/_storybook-styles.scss +9 -2
@@ -12,9 +12,21 @@ var _constants = require("./constants");
12
12
  * LICENSE file in the root directory of this source tree.
13
13
  */
14
14
 
15
+ var applyInitialFilters = function applyInitialFilters(filterState, initialFilters) {
16
+ Object.keys(filterState).forEach(function (key) {
17
+ var hasInitialFilter = initialFilters.find(function (filter) {
18
+ return filter.id === key;
19
+ });
20
+ if (hasInitialFilter) {
21
+ filterState[key].value = hasInitialFilter.value;
22
+ }
23
+ });
24
+ };
25
+
15
26
  // This functions takes the filters passed in and makes an object to track it's state
16
27
  var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
17
28
  var variation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.FLYOUT;
29
+ var initialFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
18
30
  var initialFilterState = {};
19
31
  var setInitialState = function setInitialState(_ref) {
20
32
  var type = _ref.type,
@@ -71,6 +83,9 @@ var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
71
83
  } else {
72
84
  console.error('No variation passed into useInitialStateFromFilters');
73
85
  }
86
+ if (initialFilters.length > 0) {
87
+ applyInitialFilters(initialFilterState, initialFilters);
88
+ }
74
89
  return initialFilterState;
75
90
  };
76
91
  exports.getInitialStateFromFilters = getInitialStateFromFilters;
@@ -64,11 +64,13 @@ var useFiltering = function useFiltering(hooks) {
64
64
  setAllFilters = instance.setAllFilters,
65
65
  setFilter = instance.setFilter,
66
66
  headers = instance.headers,
67
- data = instance.data;
67
+ data = instance.data,
68
+ state = instance.state;
68
69
  var defaultProps = {
69
70
  variation: 'flyout',
70
71
  updateMethod: _constants.BATCH,
71
- panelIconDescription: 'Open filter panel'
72
+ panelIconDescription: 'Open filter panel',
73
+ initialFilters: state.filters
72
74
  };
73
75
  var getFilterFlyoutProps = function getFilterFlyoutProps() {
74
76
  return _objectSpread(_objectSpread(_objectSpread({}, defaultProps), filterProps), {}, {
@@ -30,9 +30,17 @@ var useOnRowClick = function useOnRowClick(hooks) {
30
30
  toggleRowSelected(id, true);
31
31
  }
32
32
  };
33
+ var onKeyDown = function onKeyDown(event) {
34
+ var key = event.key;
35
+ if (key === 'Enter') {
36
+ onClick();
37
+ }
38
+ };
33
39
  return [props, {
34
- onClick: onClick
40
+ onClick: onClick,
41
+ onKeyDown: onKeyDown
35
42
  }, {
43
+ tabIndex: 0,
36
44
  style: {
37
45
  cursor: 'pointer'
38
46
  }
@@ -73,6 +73,7 @@ var SelectRow = function SelectRow(datagridState) {
73
73
  radio = datagridState.radio,
74
74
  toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
75
75
  onRadioSelect = datagridState.onRadioSelect,
76
+ onRowSelect = datagridState.onRowSelect,
76
77
  columns = datagridState.columns,
77
78
  withStickyColumn = datagridState.withStickyColumn;
78
79
  var _useState = (0, _react.useState)(window.innerWidth),
@@ -105,6 +106,7 @@ var SelectRow = function SelectRow(datagridState) {
105
106
  }
106
107
  }
107
108
  onChange(e);
109
+ onRowSelect === null || onRowSelect === void 0 ? void 0 : onRowSelect(row, e);
108
110
  },
109
111
  id: "".concat(tableId, "-").concat(row.index),
110
112
  name: "".concat(tableId, "-").concat(row.index, "-name"),
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.EditInPlace = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _settings = require("../../settings");
14
+ var _InlineEditV = require("../InlineEditV1");
15
+ var _InlineEditV2 = require("../InlineEditV2");
16
+ var _excluded = ["v2"];
17
+ 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); }
18
+ 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; }
19
+ 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; }
20
+ 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; }
21
+ /**
22
+ * this is a wrapper component that will allow us to support the rename of InlineEdit to EditInPlace
23
+ *
24
+ * if the user passes in the v2 feature flag the v2 version of the component will be rendered
25
+ * since this is a temporary solution the named export should just remain InlineEdit unlike how
26
+ * Card works as a base layer for Productive and Expressive cards.
27
+ */
28
+
29
+ var componentName = 'EditInPlace';
30
+ var EditInPlace = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
31
+ var v2 = _ref.v2,
32
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
33
+ var props = _objectSpread(_objectSpread({}, rest), {}, {
34
+ ref: ref
35
+ });
36
+ if (v2 === true) {
37
+ return /*#__PURE__*/_react.default.createElement(_InlineEditV2.InlineEditV2, props);
38
+ }
39
+ return /*#__PURE__*/_react.default.createElement(_InlineEditV.InlineEditV1, props);
40
+ });
41
+ exports.EditInPlace = EditInPlace;
42
+ exports.EditInPlace = EditInPlace = _settings.pkg.checkComponentEnabled(EditInPlace, componentName);
43
+ EditInPlace.displayName = componentName;
44
+ EditInPlace.propTypes = {
45
+ v2: _propTypes.default.bool
46
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "EditInPlace", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _EditInPlace.EditInPlace;
10
+ }
11
+ });
12
+ var _EditInPlace = require("./EditInPlace");
@@ -38,8 +38,12 @@ var InlineEdit = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
38
38
  return /*#__PURE__*/_react.default.createElement(_InlineEditV.InlineEditV1, props);
39
39
  });
40
40
  exports.InlineEdit = InlineEdit;
41
- exports.InlineEdit = InlineEdit = _settings.pkg.checkComponentEnabled(InlineEdit, componentName);
41
+ InlineEdit.deprecated = {
42
+ details: "The InlineEdit component is being renamed to EditInPlace in the next major version of @carbon/ibm-products. You can prepare by updating your usage of InlineEdit to EditInPlace.",
43
+ level: 'warn'
44
+ };
42
45
  InlineEdit.displayName = componentName;
46
+ exports.InlineEdit = InlineEdit = _settings.pkg.checkComponentEnabled(InlineEdit, componentName);
43
47
  InlineEdit.propTypes = {
44
48
  v2: _propTypes.default.bool
45
49
  };
@@ -15,7 +15,6 @@ var _react = _interopRequireWildcard(require("react"));
15
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
16
16
  var _classnames = _interopRequireDefault(require("classnames"));
17
17
  var _devtools = require("../../global/js/utils/devtools");
18
- var _pconsole = _interopRequireDefault(require("../../global/js/utils/pconsole"));
19
18
  var _settings = require("../../settings");
20
19
  var _carbonComponentsReact = require("carbon-components-react");
21
20
  var _iconsReact = require("@carbon/icons-react");
@@ -79,7 +78,6 @@ var InlineEditV1 = /*#__PURE__*/_react.default.forwardRef(function (_ref, refIn)
79
78
  var showValidation = invalid; // || warn;
80
79
  var validationText = invalidText; // || warnText;
81
80
  var validationIcon = showValidation ? /*#__PURE__*/_react.default.createElement(_iconsReact.WarningFilled16, null) : null;
82
- _pconsole.default.warn("".concat(componentName, ": the v1 version of this component is being deprecated. please switch to the v2 component as soon as possible."));
83
81
 
84
82
  // sanitize the tooltip values
85
83
  var alignIsObject = (0, _typeof2.default)(buttonTooltipAlignment) === 'object';
@@ -301,6 +299,11 @@ var InlineEditV1 = /*#__PURE__*/_react.default.forwardRef(function (_ref, refIn)
301
299
  // is used in preference to relying on function.name.
302
300
  exports.InlineEditV1 = InlineEditV1;
303
301
  InlineEditV1.displayName = componentName;
302
+ InlineEditV1.deprecated = {
303
+ level: 'warn',
304
+ details: "The v1 version of this component is being deprecated. please switch to the v2 component as soon as possible."
305
+ };
306
+ _settings.pkg.logDeprecated(InlineEditV1, componentName);
304
307
 
305
308
  // The types and DocGen commentary for the component props,
306
309
  // in alphabetical order (for consistency).
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.InlineEditV2 = void 0;
8
+ exports.deprecatedProps = exports.InlineEditV2 = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -17,22 +17,32 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
  var _iconsReact = require("@carbon/icons-react");
18
18
  var _settings = require("../../settings");
19
19
  var _devtools = require("../../global/js/utils/devtools");
20
- var _excluded = ["cancelLabel", "editLabel", "id", "invalid", "invalidLabel", "labelText", "onCancel", "onChange", "onSave", "saveLabel", "value"];
20
+ var _excluded = ["cancelLabel", "editAlwaysVisible", "editLabel", "id", "inheritTypography", "invalid", "invalidLabel", "invalidText", "labelText", "onCancel", "onChange", "onSave", "size", "saveLabel", "value"];
21
21
  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); }
22
22
  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; }
23
+ 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; }
24
+ 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; }
23
25
  var componentName = 'InlineEditV2';
24
26
  var blockClass = "".concat(_settings.pkg.prefix, "--inline-edit-v2");
27
+ var defaults = {
28
+ size: 'sm'
29
+ };
25
30
  var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
26
31
  var _cx;
27
32
  var cancelLabel = _ref.cancelLabel,
33
+ editAlwaysVisible = _ref.editAlwaysVisible,
28
34
  editLabel = _ref.editLabel,
29
35
  id = _ref.id,
36
+ inheritTypography = _ref.inheritTypography,
30
37
  invalid = _ref.invalid,
31
- invalidLabel = _ref.invalidLabel,
38
+ deprecated_invalidLabel = _ref.invalidLabel,
39
+ invalidText = _ref.invalidText,
32
40
  labelText = _ref.labelText,
33
41
  onCancel = _ref.onCancel,
34
42
  onChange = _ref.onChange,
35
43
  onSave = _ref.onSave,
44
+ _ref$size = _ref.size,
45
+ size = _ref$size === void 0 ? defaults.size : _ref$size,
36
46
  saveLabel = _ref.saveLabel,
37
47
  value = _ref.value,
38
48
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -130,7 +140,7 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
130
140
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
131
141
  ref: ref
132
142
  }, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement("div", {
133
- className: (0, _classnames.default)(blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--focused"), focused), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--invalid"), invalid), _cx)),
143
+ className: (0, _classnames.default)(blockClass, "".concat(blockClass, "--").concat(size), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--focused"), focused), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--invalid"), invalid), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--inherit-type"), inheritTypography), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--overflows"), inputRef.current && inputRef.current.scrollWidth > inputRef.current.offsetWidth), _cx)),
134
144
  onFocus: onFocusHandler,
135
145
  onBlur: onBlurHandler
136
146
  }, /*#__PURE__*/_react.default.createElement("label", {
@@ -138,7 +148,7 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
138
148
  htmlFor: id
139
149
  }, labelText), /*#__PURE__*/_react.default.createElement("input", {
140
150
  id: id,
141
- className: (0, _classnames.default)("".concat(blockClass, "__text-input"), "".concat(_settings.carbon.prefix, "--text-input"), "".concat(_settings.carbon.prefix, "--text-input--sm")),
151
+ className: (0, _classnames.default)("".concat(blockClass, "__text-input"), "".concat(_settings.carbon.prefix, "--text-input"), "".concat(_settings.carbon.prefix, "--text-input--").concat(size)),
142
152
  type: "text",
143
153
  value: value,
144
154
  onChange: onChangeHandler,
@@ -147,13 +157,16 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
147
157
  ,
148
158
  onKeyDown: onKeyHandler
149
159
  }), /*#__PURE__*/_react.default.createElement("div", {
160
+ className: "".concat(blockClass, "__ellipsis"),
161
+ "aria-hidden": !focused
162
+ }, "\u2026"), /*#__PURE__*/_react.default.createElement("div", {
150
163
  className: "".concat(blockClass, "__toolbar")
151
- }, focused ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, invalid && /*#__PURE__*/_react.default.createElement(_iconsReact.WarningFilled16, {
164
+ }, invalid && /*#__PURE__*/_react.default.createElement(_iconsReact.WarningFilled16, {
152
165
  className: "".concat(blockClass, "__warning-icon")
153
- }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
166
+ }), focused ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
154
167
  hasIconOnly: true,
155
168
  renderIcon: _iconsReact.Close24,
156
- size: "sm",
169
+ size: size,
157
170
  iconDescription: cancelLabel,
158
171
  onClick: onCancelHandler,
159
172
  kind: "ghost",
@@ -163,7 +176,7 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
163
176
  }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
164
177
  hasIconOnly: true,
165
178
  renderIcon: _iconsReact.Checkmark24,
166
- size: "sm",
179
+ size: size,
167
180
  iconDescription: saveLabel,
168
181
  onClick: onSaveHandler,
169
182
  kind: "ghost",
@@ -172,12 +185,12 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
172
185
  className: "".concat(blockClass, "__btn ").concat(blockClass, "__btn-save"),
173
186
  disabled: !canSave
174
187
  })) : /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
175
- className: "".concat(blockClass, "__btn ").concat(blockClass, "__btn-edit"),
188
+ className: (0, _classnames.default)("".concat(blockClass, "__btn"), "".concat(blockClass, "__btn-edit"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__btn-edit--always-visible"), editAlwaysVisible)),
176
189
  hasIconOnly: true
177
190
  // renderIcon={readOnly ? EditOff24 : Edit24}
178
191
  ,
179
192
  renderIcon: _iconsReact.Edit24,
180
- size: "sm"
193
+ size: size
181
194
  // iconDescription={readOnly ? readOnlyLabel : editLabel}
182
195
  ,
183
196
  iconDescription: editLabel,
@@ -185,17 +198,29 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
185
198
  kind: "ghost",
186
199
  tabIndex: 0,
187
200
  key: "edit"
188
- }))), focused && invalid && /*#__PURE__*/_react.default.createElement("p", {
201
+ }))), invalid && /*#__PURE__*/_react.default.createElement("p", {
189
202
  className: "".concat(blockClass, "__warning-text")
190
- }, invalidLabel));
203
+ }, invalidText !== null && invalidText !== void 0 ? invalidText : deprecated_invalidLabel));
191
204
  });
192
205
  exports.InlineEditV2 = InlineEditV2;
193
206
  InlineEditV2.displayName = componentName;
194
- InlineEditV2.propTypes = {
207
+ var deprecatedProps = {
208
+ /**
209
+ * **Deprecated**
210
+ * invalidLabel was misnamed, using invalidText to match Carbon
211
+ */
212
+ invalidText: _propTypes.default.string
213
+ };
214
+ exports.deprecatedProps = deprecatedProps;
215
+ InlineEditV2.propTypes = _objectSpread({
195
216
  /**
196
217
  * label for cancel button
197
218
  */
198
219
  cancelLabel: _propTypes.default.string.isRequired,
220
+ /**
221
+ * By default the edit icon is shown on hover only.
222
+ */
223
+ editAlwaysVisible: _propTypes.default.bool,
199
224
  /**
200
225
  * label for edit button
201
226
  */
@@ -204,6 +229,14 @@ InlineEditV2.propTypes = {
204
229
  * Specify a custom id for the input
205
230
  */
206
231
  id: _propTypes.default.string.isRequired,
232
+ /**
233
+ * inheritTypography - causes the text entry field to inherit typography settings
234
+ * assigned to the container. This is useful when editing titles for instance.
235
+ *
236
+ * NOTE: The size property limits the vertical size of the input element.
237
+ * Inherited font's should be selected to fit within the size selected.
238
+ */
239
+ inheritTypography: _propTypes.default.bool,
207
240
  /**
208
241
  * determines if the input is invalid
209
242
  */
@@ -211,7 +244,7 @@ InlineEditV2.propTypes = {
211
244
  /**
212
245
  * text that is displayed if the input is invalid
213
246
  */
214
- invalidLabel: _propTypes.default.string,
247
+ invalidText: _propTypes.default.string,
215
248
  /**
216
249
  * Provide the text that will be read by a screen reader when visiting this control
217
250
  */
@@ -240,11 +273,15 @@ InlineEditV2.propTypes = {
240
273
  * label for save button
241
274
  */
242
275
  saveLabel: _propTypes.default.string.isRequired,
276
+ /**
277
+ * vertical size of control
278
+ */
279
+ size: _propTypes.default.oneOf(['sm', 'md', 'lg']),
243
280
  /**
244
281
  * current value of the input
245
282
  */
246
283
  value: _propTypes.default.string.isRequired
247
- };
284
+ }, deprecatedProps);
248
285
  InlineEditV2.defaultProps = {
249
286
  invalid: false,
250
287
  invalidLabel: ''
@@ -99,6 +99,12 @@ Object.defineProperty(exports, "EditFullPage", {
99
99
  return _EditFullPage.EditFullPage;
100
100
  }
101
101
  });
102
+ Object.defineProperty(exports, "EditInPlace", {
103
+ enumerable: true,
104
+ get: function get() {
105
+ return _EditInPlace.EditInPlace;
106
+ }
107
+ });
102
108
  Object.defineProperty(exports, "EditSidePanel", {
103
109
  enumerable: true,
104
110
  get: function get() {
@@ -497,4 +503,5 @@ var _EditTearsheetNarrow = require("./EditTearsheetNarrow");
497
503
  var _EditFullPage = require("./EditFullPage");
498
504
  var _EditUpdateCards = require("./EditUpdateCards");
499
505
  var _InlineEdit = require("./InlineEdit");
506
+ var _EditInPlace = require("./EditInPlace");
500
507
  var _NonLinearReading = require("./NonLinearReading");
@@ -25,6 +25,7 @@ var defaults = {
25
25
  CreateTearsheet: true,
26
26
  CreateTearsheetStep: true,
27
27
  CreateTearsheetDivider: true,
28
+ EditInPlace: true,
28
29
  EmptyState: true,
29
30
  ErrorEmptyState: true,
30
31
  ExportModal: true,
package/lib/settings.js CHANGED
@@ -10,6 +10,7 @@ var _packageSettings = _interopRequireDefault(require("./global/js/package-setti
10
10
  var _carbonComponents = require("carbon-components");
11
11
  var _react = _interopRequireDefault(require("react"));
12
12
  var _themes = require("@carbon/themes");
13
+ var _pconsole = _interopRequireDefault(require("./global/js/utils/pconsole"));
13
14
  var carbon = {
14
15
  get prefix() {
15
16
  return _carbonComponents.settings.prefix;
@@ -21,14 +22,28 @@ var carbon = {
21
22
  return _themes.themes;
22
23
  }
23
24
  };
25
+ exports.carbon = carbon;
26
+ var componentDeprecatedWarning = function componentDeprecatedWarning(name, details) {
27
+ return "Carbon for IBM Products (WARNING): Component \"".concat(name, "\" is deprecated. ").concat(details);
28
+ };
29
+ _packageSettings.default.logDeprecated = function (component, name) {
30
+ if (component !== null && component !== void 0 && component.deprecated) {
31
+ var _pconsole$level;
32
+ var _component$deprecated = component.deprecated,
33
+ level = _component$deprecated.level,
34
+ details = _component$deprecated.details;
35
+ var logUsing = (_pconsole$level = _pconsole.default === null || _pconsole.default === void 0 ? void 0 : _pconsole.default[level]) !== null && _pconsole$level !== void 0 ? _pconsole$level : _pconsole.default.error;
36
+ logUsing(componentDeprecatedWarning(name || component.displayName, details));
37
+ }
38
+ };
24
39
 
25
40
  // Check that a component is enabled. This function returns a stub which checks
26
41
  // the component status on first use and then renders as the component or as
27
42
  // a Canary placeholder initialized with the name of the replaced component.
28
43
  // Note that the returned stub carries any other properties which had already
29
44
  // been assigned (eg propTypes, displayName, etc).
30
- exports.carbon = carbon;
31
45
  _packageSettings.default.checkComponentEnabled = function (component, name) {
46
+ _packageSettings.default.logDeprecated(component, name);
32
47
  if (component.render) {
33
48
  // The component is a forward-ref, so make a stub forward-ref.
34
49
  var forward = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "1.50.0",
4
+ "version": "1.51.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -95,5 +95,5 @@
95
95
  "react": "^16.8.6 || ^17.0.1",
96
96
  "react-dom": "^16.8.6 || ^17.0.1"
97
97
  },
98
- "gitHead": "e43b934e57b218780d73621961ec30056d0cf122"
98
+ "gitHead": "fb3bdbfbe2b40dc57f5c9657e83c9ef48ccd2520"
99
99
  }
@@ -1,10 +1,9 @@
1
- /*
2
- * Licensed Materials - Property of IBM
3
- * 5724-Q36
4
- * (c) Copyright IBM Corp. 2021
5
- * US Government Users Restricted Rights - Use, duplication or disclosure
6
- * restricted by GSA ADP Schedule Contract with IBM Corp.
7
- */
1
+ //
2
+ // Copyright IBM Corp. 2021, 2023
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
+ //
8
7
 
9
8
  @import './variables';
10
9
 
@@ -29,3 +28,7 @@ th.#{$block-class}__select-all-toggle-on {
29
28
  th.#{$block-class}__select-all-toggle-on.button {
30
29
  margin-left: $spacing-01;
31
30
  }
31
+
32
+ .#{$block-class}__select-all-toggle-overflow.#{$carbon-prefix}--overflow-menu-options--sm.#{$carbon-prefix}--overflow-menu-options[data-floating-menu-direction='bottom']::after {
33
+ width: $spacing-13;
34
+ }
@@ -15,6 +15,8 @@
15
15
  $carbon-input: #{$carbon-prefix}--text-input;
16
16
 
17
17
  .#{$block-class} {
18
+ --#{$block-class}--size: #{$spacing-07};
19
+
18
20
  display: flex;
19
21
  align-items: center;
20
22
  background: transparent;
@@ -24,11 +26,24 @@
24
26
  cursor: not-allowed;
25
27
  }
26
28
 
29
+ &--sm {
30
+ --#{$block-class}--size: #{$spacing-07};
31
+ }
32
+
33
+ &--md {
34
+ --#{$block-class}--size: #{$spacing-08};
35
+ }
36
+
37
+ &--lg {
38
+ --#{$block-class}--size: #{$spacing-09};
39
+ }
40
+
27
41
  &:hover {
28
42
  background: $field-01;
29
43
  }
30
44
 
31
- &:hover .#{$block-class}__btn-edit {
45
+ &:hover .#{$block-class}__btn-edit,
46
+ .#{$block-class}__btn-edit.#{$block-class}__btn-edit--always-visible {
32
47
  visibility: visible;
33
48
  }
34
49
 
@@ -36,6 +51,10 @@
36
51
  visibility: hidden;
37
52
  }
38
53
 
54
+ &--invalid {
55
+ outline: 2px solid $support-01;
56
+ }
57
+
39
58
  &--focused {
40
59
  background: $field-01;
41
60
  outline: 2px solid $focus;
@@ -45,12 +64,31 @@
45
64
  flex: 1;
46
65
  }
47
66
 
67
+ &--inherit-type .#{$block-class}__text-input {
68
+ /* match font of container */
69
+ font-size: inherit;
70
+ font-weight: inherit;
71
+ letter-spacing: inherit;
72
+ line-height: inherit;
73
+ }
74
+
75
+ &__ellipsis {
76
+ position: relative;
77
+ margin-left: calc(-1 * $spacing-05);
78
+ opacity: 0;
79
+ }
80
+
81
+ &--overflows:not(.#{$block-class}--focused) .#{$block-class}__ellipsis {
82
+ opacity: 1;
83
+ }
84
+
48
85
  &__text-input-label {
49
86
  display: none;
50
87
  }
51
88
 
52
89
  &__warning-icon {
53
- margin: $spacing-03;
90
+ width: $spacing-05;
91
+ margin: auto $spacing-03 auto auto;
54
92
  color: $support-01;
55
93
  }
56
94
 
@@ -70,11 +108,11 @@
70
108
  outline: none;
71
109
  }
72
110
 
73
- .#{$block-class}-readonly .#{$block-class}__text-input.#{$carbon-input},
74
- .#{$block-class}-readonly
75
- .#{$carbon-prefix}--btn.#{$carbon-prefix}--btn--icon-only.#{$carbon-prefix}--tooltip__trigger {
76
- cursor: not-allowed;
77
- }
111
+ // .#{$block-class}--readonly .#{$block-class}__text-input.#{$carbon-input},
112
+ // .#{$block-class}--readonly
113
+ // .#{$carbon-prefix}--btn.#{$carbon-prefix}--btn--icon-only.#{$carbon-prefix}--tooltip__trigger {
114
+ // cursor: not-allowed;
115
+ // }
78
116
 
79
117
  .#{$block-class}__text-input.#{$carbon-input}:focus,
80
118
  .#{$block-class}__text-input.#{$carbon-input}:active {
@@ -82,8 +120,8 @@
82
120
  }
83
121
 
84
122
  .#{$block-class}__toolbar {
85
- --toolbar-width: #{$spacing-07};
86
- --toolbar-width-focussed: #{$spacing-10};
123
+ --toolbar-width: var(--#{$block-class}--size);
124
+ --toolbar-width-focussed: calc(2 * var(--#{$block-class}--size));
87
125
 
88
126
  // animation div
89
127
  display: inline-flex;
@@ -92,8 +130,11 @@
92
130
  }
93
131
 
94
132
  .#{$block-class}--invalid .#{$block-class}__toolbar {
95
- --toolbar-width: #{$spacing-07};
96
- --toolbar-width-focussed: #{$spacing-12};
133
+ // width of invalid icon is always $spacing-07 ($spacing-05 + 2 * $spacing-03 margin)
134
+ --toolbar-width: calc(var(--#{$block-class}--size) + #{$spacing-07});
135
+ --toolbar-width-focussed: calc(
136
+ 2 * var(--#{$block-class}--size) + #{$spacing-07}
137
+ );
97
138
  }
98
139
 
99
140
  @keyframes slide-in {
@@ -4,6 +4,13 @@
4
4
  // This source code is licensed under the Apache-2.0 license found in the
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
- .inline-edit-v2-example {
8
- width: 15rem;
7
+
8
+ @import '../../global/styles/display-box';
9
+
10
+ $block-class: 'inline-edit-v2-example';
11
+
12
+ .#{$block-class}__viewport {
13
+ // width: 300px; // larger than standard size needed by text input at standard font size (html input attribute size)
14
+ // stylelint-disable-next-line carbon/layout-token-use
15
+ margin: 100px;
9
16
  }