@carbon/ibm-products 1.58.0 → 1.59.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. package/css/index-full-carbon.css +23 -0
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +21 -0
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +2 -2
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +21 -0
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +2 -2
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/Checklist/Checklist.js +3 -3
  14. package/es/components/Checklist/ChecklistChart.js +3 -9
  15. package/es/components/CreateFullPage/CreateFullPage.js +25 -3
  16. package/es/components/Datagrid/Datagrid/DatagridContent.js +8 -6
  17. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +2 -1
  18. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +26 -13
  19. package/es/components/Datagrid/Datagrid/DatagridRow.js +41 -33
  20. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +34 -18
  21. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +2 -37
  22. package/es/components/Datagrid/useExpandedRow.js +1 -1
  23. package/es/components/Datagrid/utils/DatagridPagination.js +1 -1
  24. package/es/components/InlineTip/InlineTip.js +5 -1
  25. package/es/components/InlineTip/InlineTipButton.js +1 -8
  26. package/es/components/InlineTip/InlineTipLink.js +1 -8
  27. package/es/global/js/utils/test-helper.js +2 -2
  28. package/lib/components/Checklist/Checklist.js +3 -3
  29. package/lib/components/Checklist/ChecklistChart.js +3 -9
  30. package/lib/components/CreateFullPage/CreateFullPage.js +24 -2
  31. package/lib/components/Datagrid/Datagrid/DatagridContent.js +8 -6
  32. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +2 -1
  33. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +26 -13
  34. package/lib/components/Datagrid/Datagrid/DatagridRow.js +41 -33
  35. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +35 -19
  36. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +2 -40
  37. package/lib/components/Datagrid/useExpandedRow.js +1 -1
  38. package/lib/components/Datagrid/utils/DatagridPagination.js +1 -1
  39. package/lib/components/InlineTip/InlineTip.js +4 -0
  40. package/lib/components/InlineTip/InlineTipButton.js +2 -9
  41. package/lib/components/InlineTip/InlineTipLink.js +2 -9
  42. package/lib/global/js/utils/test-helper.js +2 -2
  43. package/package.json +10 -10
  44. package/scss/components/ComboButton/_combo-button.scss +2 -1
  45. package/scss/components/Datagrid/styles/_datagrid.scss +5 -0
  46. package/scss/components/Datagrid/styles/_useExpandedRow.scss +10 -0
  47. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +6 -1
  48. package/scss/components/Toolbar/_toolbar.scss +6 -3
@@ -13,7 +13,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _devtools = require("../../global/js/utils/devtools");
14
14
  var _settings = require("../../settings");
15
15
  var _clamp = _interopRequireDefault(require("lodash/clamp"));
16
- var _excluded = ["className", "ariaLabelledById", "value", "theme"];
16
+ var _excluded = ["className", "value", "theme"];
17
17
  // Carbon and package components we use.
18
18
  /* TODO: @import(s) of carbon components and other package components. */
19
19
 
@@ -42,17 +42,15 @@ var defaults = {
42
42
  */
43
43
  var ChecklistChart = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
44
44
  var className = _ref.className,
45
- ariaLabelledById = _ref.ariaLabelledById,
46
45
  value = _ref.value,
47
46
  _ref$theme = _ref.theme,
48
47
  theme = _ref$theme === void 0 ? defaults.theme : _ref$theme,
49
48
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
50
49
  var numDegrees = (0, _clamp.default)(value * 360, 0, 360);
51
- var circleColor = theme === 'light' ? '#c6c6c6' : '#525252'; // $gray-30, $gray-70
52
- var progressColor = theme === 'light' ? '#6929c4' : '#A56EFF'; // $purple-70, $purple-50
50
+ var circleColor = theme === 'light' ? '#e0e0e0' : '#525252'; // $ui-03 (-ish)
51
+ var progressColor = theme === 'light' ? '#a56eff' : '#a56eff'; // $purple-50
53
52
 
54
53
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
55
- "aria-labelledby": ariaLabelledById,
56
54
  className: (0, _classnames.default)(blockClass, className),
57
55
  style: {
58
56
  backgroundImage: "conic-gradient(".concat(progressColor, " ").concat(numDegrees, "deg, ").concat(circleColor, " ").concat(numDegrees, "deg 360deg)"),
@@ -75,10 +73,6 @@ var ChecklistChart = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
75
73
  // See https://www.npmjs.com/package/prop-types#usage.
76
74
  exports.ChecklistChart = ChecklistChart;
77
75
  ChecklistChart.propTypes = {
78
- /**
79
- * Id of the parent's aria-label for accessibility.
80
- */
81
- ariaLabelledById: _propTypes.default.string.isRequired,
82
76
  /**
83
77
  * Optional class name for this component.
84
78
  */
@@ -19,7 +19,8 @@ var _CreateInfluencer = require("../CreateInfluencer");
19
19
  var _ActionSet = require("../ActionSet");
20
20
  var _hooks = require("../../global/js/hooks");
21
21
  var _lastIndexInArray = require("../../global/js/utils/lastIndexInArray");
22
- var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "modalDangerButtonText", "modalDescription", "modalSecondaryButtonText", "modalTitle", "nextButtonText", "onClose", "onRequestSubmit", "firstFocusElement", "submitButtonText", "title"];
22
+ var _getNumberOfHiddenSteps = require("../../global/js/utils/getNumberOfHiddenSteps");
23
+ var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "initialStep", "modalDangerButtonText", "modalDescription", "modalSecondaryButtonText", "modalTitle", "nextButtonText", "onClose", "onRequestSubmit", "firstFocusElement", "submitButtonText", "title"];
23
24
  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); }
24
25
  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; }
25
26
  var blockClass = "".concat(_settings.pkg.prefix, "--create-full-page");
@@ -40,6 +41,7 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
40
41
  cancelButtonText = _ref.cancelButtonText,
41
42
  children = _ref.children,
42
43
  className = _ref.className,
44
+ initialStep = _ref.initialStep,
43
45
  modalDangerButtonText = _ref.modalDangerButtonText,
44
46
  modalDescription = _ref.modalDescription,
45
47
  modalSecondaryButtonText = _ref.modalSecondaryButtonText,
@@ -110,7 +112,11 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
110
112
  if (lastItem !== lastIncludedStep) {
111
113
  setLastIncludedStep(lastItem);
112
114
  }
113
- }, [stepData, firstIncludedStep, lastIncludedStep]);
115
+ if (open && initialStep) {
116
+ var numberOfHiddenSteps = (0, _getNumberOfHiddenSteps.getNumberOfHiddenSteps)(stepData, initialStep);
117
+ setCurrentStep(Number(initialStep + numberOfHiddenSteps));
118
+ }
119
+ }, [stepData, firstIncludedStep, lastIncludedStep, initialStep]);
114
120
  (0, _hooks.useCreateComponentFocus)({
115
121
  previousState: previousState,
116
122
  currentStep: currentStep,
@@ -119,6 +125,16 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
119
125
  firstFocusElement: firstFocusElement
120
126
  });
121
127
  (0, _hooks.useValidCreateStepCount)(stepData.length, componentName);
128
+ (0, _hooks.useResetCreateComponent)({
129
+ firstIncludedStep: firstIncludedStep,
130
+ previousState: previousState,
131
+ open: open,
132
+ setCurrentStep: setCurrentStep,
133
+ stepData: stepData,
134
+ initialStep: initialStep,
135
+ totalSteps: stepData === null || stepData === void 0 ? void 0 : stepData.length,
136
+ componentName: componentName
137
+ });
122
138
  (0, _hooks.useCreateComponentStepChange)({
123
139
  firstIncludedStep: firstIncludedStep,
124
140
  lastIncludedStep: lastIncludedStep,
@@ -243,6 +259,12 @@ CreateFullPage.propTypes = {
243
259
  * Specifies elements to focus on first on render.
244
260
  */
245
261
  firstFocusElement: _propTypes.default.string,
262
+ /**
263
+ * This can be used to open the component to a step other than the first step.
264
+ * For example, a create flow was previously in progress, data was saved, and
265
+ * is now being completed.
266
+ */
267
+ initialStep: _propTypes.default.number,
246
268
  /**
247
269
  * The primary 'danger' button text in the modal
248
270
  */
@@ -29,7 +29,7 @@ var _constants = require("./addons/Filtering/constants");
29
29
  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); }
30
30
  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; }
31
31
  /**
32
- * Copyright IBM Corp. 2022, 2022
32
+ * Copyright IBM Corp. 2022, 2023
33
33
  *
34
34
  * This source code is licensed under the Apache-2.0 license found in the
35
35
  * LICENSE file in the root directory of this source tree.
@@ -72,8 +72,10 @@ var DatagridContent = function DatagridContent(_ref) {
72
72
  DatagridActions = datagridState.DatagridActions,
73
73
  totalColumnsWidth = datagridState.totalColumnsWidth,
74
74
  gridRef = datagridState.gridRef,
75
- state = datagridState.state;
76
- var rows = DatagridPagination && datagridState.page || datagridState.rows;
75
+ state = datagridState.state,
76
+ page = datagridState.page,
77
+ rows = datagridState.rows;
78
+ var contentRows = DatagridPagination && page || rows;
77
79
  var gridAreaRef = (0, _react.useRef)();
78
80
  var multiKeyTrackingRef = (0, _react.useRef)();
79
81
  (0, _hooks.useClickOutside)(gridAreaRef, function (target) {
@@ -111,8 +113,8 @@ var DatagridContent = function DatagridContent(_ref) {
111
113
  return (0, _handleGridFocus.handleGridFocus)(inlineEditState, dispatch);
112
114
  } : null,
113
115
  title: title
114
- }), !withVirtualScroll ? /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState) : null, /*#__PURE__*/_react.default.createElement(_DatagridBody.default, (0, _extends2.default)({}, datagridState, {
115
- rows: rows
116
+ }), !withVirtualScroll && /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState), /*#__PURE__*/_react.default.createElement(_DatagridBody.default, (0, _extends2.default)({}, datagridState, {
117
+ rows: contentRows
116
118
  })));
117
119
  };
118
120
  var _useMultipleKeyTracki = (0, _hooks2.useMultipleKeyTracking)({
@@ -163,7 +165,7 @@ var DatagridContent = function DatagridContent(_ref) {
163
165
  }, renderTable()) : withVirtualScroll ? /*#__PURE__*/_react.default.createElement("div", {
164
166
  className: "".concat(blockClass, "__virtualScrollContainer"),
165
167
  ref: gridRef
166
- }, renderTable()) : renderTable()))), (rows === null || rows === void 0 ? void 0 : rows.length) > 0 && !isFetching && DatagridPagination && /*#__PURE__*/_react.default.createElement(DatagridPagination, datagridState), CustomizeColumnsTearsheet && /*#__PURE__*/_react.default.createElement(CustomizeColumnsTearsheet, {
168
+ }, renderTable()) : renderTable()))), (contentRows === null || contentRows === void 0 ? void 0 : contentRows.length) > 0 && !isFetching && DatagridPagination && /*#__PURE__*/_react.default.createElement(DatagridPagination, datagridState), CustomizeColumnsTearsheet && /*#__PURE__*/_react.default.createElement(CustomizeColumnsTearsheet, {
167
169
  instance: datagridState
168
170
  }));
169
171
  };
@@ -45,7 +45,8 @@ var DatagridEmptyBody = function DatagridEmptyBody(datagridState) {
45
45
  }), {
46
46
  className: "".concat(blockClass, "__empty-state-body")
47
47
  }), /*#__PURE__*/_react.default.createElement(TableRow, null, /*#__PURE__*/_react.default.createElement(TableCell, {
48
- colSpan: headers.length
48
+ colSpan: headers.length,
49
+ className: "".concat(blockClass, "__empty-state-cell")
49
50
  }, emptyStateType === 'error' && /*#__PURE__*/_react.default.createElement(_EmptyStates.ErrorEmptyState, emptyStateProps), emptyStateType === 'noData' && /*#__PURE__*/_react.default.createElement(_EmptyStates.NoDataEmptyState, emptyStateProps), emptyStateType === 'notFound' && /*#__PURE__*/_react.default.createElement(_EmptyStates.NotFoundEmptyState, emptyStateProps))));
50
51
  };
51
52
  var _default = DatagridEmptyBody;
@@ -7,28 +7,41 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _settings = require("../../../settings");
10
- /*
11
- * Licensed Materials - Property of IBM
12
- * 5724-Q36
13
- * (c) Copyright IBM Corp. 2020
14
- * US Government Users Restricted Rights - Use, duplication or disclosure
15
- * restricted by GSA ADP Schedule Contract with IBM Corp.
10
+ /**
11
+ * Copyright IBM Corp. 2020, 2023
12
+ *
13
+ * This source code is licensed under the Apache-2.0 license found in the
14
+ * LICENSE file in the root directory of this source tree.
16
15
  */
17
16
 
18
17
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
19
18
 
20
19
  // eslint-disable-next-line react/prop-types
21
- var DatagridExpandedRow = function DatagridExpandedRow(PreviousRowRenderer, ExpandedRowContentComponent) {
20
+ var DatagridExpandedRow = function DatagridExpandedRow(ExpandedRowContentComponent) {
22
21
  return function (datagridState) {
23
22
  var row = datagridState.row;
24
23
  var _ref = row || {},
25
24
  expandedContentHeight = _ref.expandedContentHeight;
26
- if (!row.isExpanded) {
27
- return PreviousRowRenderer(datagridState);
28
- }
29
- return /*#__PURE__*/_react.default.createElement("div", {
30
- className: "".concat(blockClass, "__expanded-row")
31
- }, PreviousRowRenderer(datagridState), /*#__PURE__*/_react.default.createElement("div", {
25
+ var toggleParentHoverClass = function toggleParentHoverClass(event, eventType) {
26
+ var _event$target, _event$target$parentN;
27
+ if (event !== null && event !== void 0 && (_event$target = event.target) !== null && _event$target !== void 0 && (_event$target$parentN = _event$target.parentNode) !== null && _event$target$parentN !== void 0 && _event$target$parentN.previousElementSibling) {
28
+ var parentNode = event.target.parentNode.previousElementSibling;
29
+ if (eventType === 'enter') {
30
+ parentNode.classList.add("".concat(blockClass, "__expandable-row--hover"));
31
+ } else {
32
+ parentNode.classList.remove("".concat(blockClass, "__expandable-row--hover"));
33
+ }
34
+ }
35
+ };
36
+ return /*#__PURE__*/_react.default.createElement("tr", {
37
+ className: "".concat(blockClass, "__expanded-row"),
38
+ onMouseEnter: function onMouseEnter(event) {
39
+ return toggleParentHoverClass(event, 'enter');
40
+ },
41
+ onMouseLeave: function onMouseLeave(event) {
42
+ return toggleParentHoverClass(event);
43
+ }
44
+ }, /*#__PURE__*/_react.default.createElement("div", {
32
45
  className: "".concat(blockClass, "__expanded-row-content"),
33
46
  style: {
34
47
  height: expandedContentHeight ? expandedContentHeight : null
@@ -15,6 +15,8 @@ var _classnames = _interopRequireDefault(require("classnames"));
15
15
  var _commonColumnIds = require("../common-column-ids");
16
16
  var _settings = require("../../../settings");
17
17
  var _excluded = ["children"];
18
+ 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; }
19
+ 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; }
18
20
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
19
21
  var TableRow = _carbonComponentsReact.DataTable.TableRow,
20
22
  TableCell = _carbonComponentsReact.DataTable.TableCell;
@@ -31,7 +33,8 @@ var DatagridRow = function DatagridRow(datagridState) {
31
33
  var _cx;
32
34
  var row = datagridState.row,
33
35
  rowSize = datagridState.rowSize,
34
- withNestedRows = datagridState.withNestedRows;
36
+ withNestedRows = datagridState.withNestedRows,
37
+ prepareRow = datagridState.prepareRow;
35
38
  var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
36
39
  var isExpanded = _ref.isExpanded,
37
40
  subRows = _ref.subRows;
@@ -46,6 +49,9 @@ var DatagridRow = function DatagridRow(datagridState) {
46
49
  };
47
50
  var hoverHandler = function hoverHandler(event) {
48
51
  var _hoverRow$style, _hoverRow$style2, _hoverRow$style3;
52
+ if (!withNestedRows) {
53
+ return;
54
+ }
49
55
  var subRowCount = getVisibleNestedRowCount(row);
50
56
  var totalNestedRowIndicatorHeight = (0, _layout.px)(subRowCount * rowHeights[rowSize]);
51
57
  var hoverRow = event.target.closest(".".concat(blockClass, "__carbon-row-expanded"));
@@ -62,48 +68,50 @@ var DatagridRow = function DatagridRow(datagridState) {
62
68
  el.classList.remove("".concat(blockClass, "__carbon-row-expanded-hover-active"));
63
69
  });
64
70
  };
65
- return /*#__PURE__*/_react.default.createElement(TableRow, (0, _extends2.default)({
66
- className: (0, _classnames.default)("".concat(blockClass, "__carbon-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), (0, _defineProperty2.default)(_cx, "".concat(_settings.carbon.prefix, "--data-table--selected"), row.isSelected), _cx))
71
+ var renderExpandedRow = function renderExpandedRow() {
72
+ if (row.isExpanded) {
73
+ var _row$RowExpansionRend;
74
+ prepareRow(row);
75
+ return row === null || row === void 0 ? void 0 : (_row$RowExpansionRend = row.RowExpansionRenderer) === null || _row$RowExpansionRend === void 0 ? void 0 : _row$RowExpansionRend.call(row, _objectSpread(_objectSpread({}, datagridState), {}, {
76
+ row: row
77
+ }));
78
+ }
79
+ return null;
80
+ };
81
+ var handleMouseLeave = function handleMouseLeave(event) {
82
+ var hoverRow = event.target.closest(".".concat(blockClass, "__carbon-row-expanded"));
83
+ hoverRow === null || hoverRow === void 0 ? void 0 : hoverRow.classList.remove("".concat(blockClass, "__carbon-row-expanded-hover-active"));
84
+ };
85
+ var handleOnKeyUp = function handleOnKeyUp(event) {
86
+ if (!withNestedRows) {
87
+ return;
88
+ }
89
+ if (event.key === 'Enter' || event.key === 'Space') {
90
+ focusRemover();
91
+ hoverHandler(event);
92
+ }
93
+ };
94
+ var rowClassNames = (0, _classnames.default)("".concat(blockClass, "__carbon-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), (0, _defineProperty2.default)(_cx, "".concat(_settings.carbon.prefix, "--data-table--selected"), row.isSelected), _cx));
95
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(TableRow, (0, _extends2.default)({
96
+ className: rowClassNames
67
97
  }, row.getRowProps({
68
98
  role: false
69
99
  }), {
70
100
  key: row.id,
71
- onMouseEnter: function onMouseEnter(event) {
72
- if (!withNestedRows) {
73
- return;
74
- }
75
- hoverHandler(event);
76
- },
77
- onMouseLeave: function onMouseLeave(event) {
78
- var hoverRow = event.target.closest(".".concat(blockClass, "__carbon-row-expanded"));
79
- hoverRow === null || hoverRow === void 0 ? void 0 : hoverRow.classList.remove("".concat(blockClass, "__carbon-row-expanded-hover-active"));
80
- },
81
- onFocus: function onFocus(event) {
82
- if (!withNestedRows) {
83
- return;
84
- }
85
- hoverHandler(event);
86
- },
87
- onBlur: function onBlur() {
88
- focusRemover();
89
- },
90
- onKeyUp: function onKeyUp(event) {
91
- if (!withNestedRows) {
92
- return;
93
- }
94
- if (event.key === 'Enter' || event.key === 'Space') {
95
- focusRemover();
96
- hoverHandler(event);
97
- }
98
- }
101
+ onMouseEnter: hoverHandler,
102
+ onMouseLeave: handleMouseLeave,
103
+ onFocus: hoverHandler,
104
+ onBlur: focusRemover,
105
+ onKeyUp: handleOnKeyUp
99
106
  }), row.cells.map(function (cell, index) {
107
+ var _cell$column;
100
108
  var cellProps = cell.getCellProps({
101
109
  role: false
102
110
  });
103
111
  var children = cellProps.children,
104
112
  restProps = (0, _objectWithoutProperties2.default)(cellProps, _excluded);
105
113
  var content = children || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !row.isSkeleton && cell.render('Cell'), row.isSkeleton && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.SkeletonText, null));
106
- if (cell && cell.column && cell.column.id === _commonColumnIds.selectionColumnId) {
114
+ if ((cell === null || cell === void 0 ? void 0 : (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : _cell$column.id) === _commonColumnIds.selectionColumnId) {
107
115
  // directly render component without the wrapping TableCell
108
116
  return cell.render('Cell', {
109
117
  key: cell.column.id
@@ -114,7 +122,7 @@ var DatagridRow = function DatagridRow(datagridState) {
114
122
  }, restProps, {
115
123
  key: cell.column.id
116
124
  }), content);
117
- }));
125
+ })), renderExpandedRow());
118
126
  };
119
127
  var _default = DatagridRow;
120
128
  exports.default = _default;
@@ -10,7 +10,7 @@ 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"));
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
- var React = _interopRequireWildcard(require("react"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
  var _iconsReact = require("@carbon/icons-react");
16
16
  var _carbonComponentsReact = require("carbon-components-react");
@@ -20,35 +20,51 @@ var _settings = require("../../../../../settings");
20
20
  var _excluded = ["legendText"];
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
- var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
23
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid__row-size");
24
24
  var RowSizeDropdown = function RowSizeDropdown(_ref) {
25
25
  var _ref$legendText = _ref.legendText,
26
26
  legendText = _ref$legendText === void 0 ? 'Row height' : _ref$legendText,
27
27
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
28
- var buttonRef = React.useRef({});
29
- var _React$useState = React.useState(false),
30
- _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
31
- isOpen = _React$useState2[0],
32
- setIsOpen = _React$useState2[1];
33
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_carbonComponentsReact.Button, {
28
+ var buttonRef = (0, _react.useRef)(null);
29
+ var _useState = (0, _react.useState)(false),
30
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
31
+ isOpen = _useState2[0],
32
+ setIsOpen = _useState2[1];
33
+ var onCloseHandler = function onCloseHandler() {
34
+ setIsOpen(false);
35
+ };
36
+ var onBlurHandler = function onBlurHandler(e) {
37
+ if (!e.currentTarget.contains(e.relatedTarget)) {
38
+ onCloseHandler();
39
+ }
40
+ };
41
+ var onClickHandler = function onClickHandler() {
42
+ setIsOpen(!isOpen);
43
+ };
44
+ var onKeyHandler = function onKeyHandler(e) {
45
+ if (e.key === 'Escape') {
46
+ onCloseHandler();
47
+ }
48
+ };
49
+ return /*#__PURE__*/_react.default.createElement("div", {
50
+ tabIndex: -1,
51
+ className: blockClass,
52
+ role: "presentation",
53
+ onBlur: onBlurHandler,
54
+ onKeyDown: onKeyHandler
55
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
56
+ tabIndex: 0,
34
57
  hasIconOnly: true,
35
58
  ref: buttonRef,
36
59
  kind: "ghost",
37
60
  tooltipPosition: "bottom",
38
61
  renderIcon: _iconsReact.Settings16,
39
- onClick: function onClick() {
40
- return setIsOpen(function (prevOpen) {
41
- return !prevOpen;
42
- });
43
- },
44
62
  iconDescription: legendText,
45
- className: (0, _classnames.default)("".concat(blockClass, "__row-size-button"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__row-size-button--open"), isOpen))
46
- }), isOpen && /*#__PURE__*/React.createElement(_RowSizeRadioGroup.default, (0, _extends2.default)({}, props, {
63
+ className: (0, _classnames.default)("".concat(blockClass, "-button"), (0, _defineProperty2.default)({}, "".concat(blockClass, "-button--open"), isOpen)),
64
+ onClick: onClickHandler
65
+ }), isOpen && /*#__PURE__*/_react.default.createElement(_RowSizeRadioGroup.default, (0, _extends2.default)({}, props, {
47
66
  legendText: legendText,
48
- buttonRef: buttonRef,
49
- hideRadioGroup: function hideRadioGroup() {
50
- setIsOpen(false);
51
- }
67
+ buttonRef: buttonRef
52
68
  })));
53
69
  };
54
70
  RowSizeDropdown.propTypes = {
@@ -1,19 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireDefault(require("react"));
10
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _layout = require("@carbon/layout");
12
10
  var _carbonComponentsReact = require("carbon-components-react");
13
11
  var _isArray = _interopRequireDefault(require("lodash/isArray"));
14
12
  var _settings = require("../../../../../settings");
15
- 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); }
16
- 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; }
17
13
  /* eslint-disable react/default-props-match-prop-types */
18
14
  // @flow
19
15
  /*
@@ -29,9 +25,7 @@ var RowSizeRadioGroup = function RowSizeRadioGroup(_ref) {
29
25
  var rowSizes = _ref.rowSizes,
30
26
  selectedOption = _ref.selectedOption,
31
27
  datagridName = _ref.datagridName,
32
- buttonRef = _ref.buttonRef,
33
28
  onChange = _ref.onChange,
34
- hideRadioGroup = _ref.hideRadioGroup,
35
29
  legendText = _ref.legendText,
36
30
  _ref$rowSizeLabels = _ref.rowSizeLabels,
37
31
  rowSizeLabels = _ref$rowSizeLabels === void 0 ? {
@@ -41,25 +35,9 @@ var RowSizeRadioGroup = function RowSizeRadioGroup(_ref) {
41
35
  sm: 'Small',
42
36
  xs: 'Extra small'
43
37
  } : _ref$rowSizeLabels;
44
- var _getDropdownPosition = getDropdownPosition(buttonRef.current),
45
- top = _getDropdownPosition.top,
46
- right = _getDropdownPosition.right;
47
- (0, _react.useEffect)(function () {
48
- window.addEventListener('click', hideRadioGroup);
49
- return function () {
50
- window.removeEventListener('click', hideRadioGroup);
51
- };
52
- }, [hideRadioGroup]);
53
38
  return /*#__PURE__*/_react.default.createElement("div", {
54
39
  className: "".concat(blockClass, "__row-size-dropdown"),
55
- style: {
56
- top: (0, _layout.rem)(top),
57
- right: (0, _layout.rem)(right)
58
- },
59
- role: "presentation",
60
- onClick: function onClick(e) {
61
- e.stopPropagation();
62
- }
40
+ role: "presentation"
63
41
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.RadioButtonGroup, {
64
42
  legendText: legendText,
65
43
  name: "row-height-group",
@@ -93,21 +71,6 @@ var getBackwardCompatibleRowSize = function getBackwardCompatibleRowSize(rowSize
93
71
 
94
72
  return rowSizeMap[rowSize] || rowSize;
95
73
  };
96
- var getDropdownPosition = function getDropdownPosition(buttonEle) {
97
- var parent = buttonEle.parentElement;
98
- if (parent instanceof HTMLElement) {
99
- var top = buttonEle.offsetTop + buttonEle.offsetHeight;
100
- var right = parent.offsetWidth - (buttonEle.offsetLeft + buttonEle.offsetWidth);
101
- return {
102
- top: top,
103
- right: right
104
- };
105
- }
106
- return {
107
- top: 0,
108
- right: 0
109
- };
110
- };
111
74
  RowSizeRadioGroup.defaultProps = {
112
75
  rowSizes: [{
113
76
  value: 'xl' // 64
@@ -126,7 +89,6 @@ RowSizeRadioGroup.defaultProps = {
126
89
  RowSizeRadioGroup.propTypes = {
127
90
  buttonRef: _propTypes.default.any.isRequired,
128
91
  datagridName: _propTypes.default.string,
129
- hideRadioGroup: _propTypes.default.func.isRequired,
130
92
  legendText: _propTypes.default.string,
131
93
  onChange: _propTypes.default.func.isRequired,
132
94
  rowSizeLabels: _propTypes.default.object,
@@ -33,7 +33,7 @@ var useExpandedRow = function useExpandedRow(hooks) {
33
33
  return _objectSpread(_objectSpread({}, row), {}, {
34
34
  canExpand: row.original && !row.original.notExpandable,
35
35
  expandedContentHeight: expandedRowsHeight[row.index] || expandedContentHeight,
36
- RowRenderer: (0, _DatagridExpandedRow.default)(row.RowRenderer, ExpandedRowContentComponent)
36
+ RowExpansionRenderer: (0, _DatagridExpandedRow.default)(ExpandedRowContentComponent)
37
37
  });
38
38
  });
39
39
  Object.assign(instance, {
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _carbonComponentsReact = require("carbon-components-react");
10
10
  /* eslint-disable react/prop-types */
11
11
  /**
12
- * Copyright IBM Corp. 2022, 2022
12
+ * Copyright IBM Corp. 2022, 2023
13
13
  *
14
14
  * This source code is licensed under the Apache-2.0 license found in the
15
15
  * LICENSE file in the root directory of this source tree.
@@ -17,6 +17,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
17
17
  var _utils = require("./utils");
18
18
  var _SteppedAnimatedMedia = require("../SteppedAnimatedMedia");
19
19
  var _devtools = require("../../global/js/utils/devtools");
20
+ var _uuidv = _interopRequireDefault(require("../../global/js/utils/uuidv4"));
20
21
  var _settings = require("../../settings");
21
22
  var _excluded = ["children", "className", "closeIconDescription", "collapsible", "collapseButtonLabel", "expandButtonLabel", "narrow", "onClick", "onClose", "tertiaryButtonLabel", "action", "title", "media"];
22
23
  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); }
@@ -78,6 +79,7 @@ var InlineTip = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
78
79
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
79
80
  isCollapsed = _useState2[0],
80
81
  setIsCollapsed = _useState2[1];
82
+ var labelId = (0, _react.useRef)((0, _uuidv.default)()).current;
81
83
  var previewText = (0, _react.useMemo)(function () {
82
84
  return (0, _utils.getComponentText)(_react.default.Children.toArray(children));
83
85
  }, [children]);
@@ -93,6 +95,7 @@ var InlineTip = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
93
95
  setIsCollapsed(collapsible);
94
96
  }, [collapsible]);
95
97
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
98
+ "aria-labelledby": labelId,
96
99
  className: (0, _classnames.default)(blockClass,
97
100
  // Apply the block class to the main HTML element
98
101
  className,
@@ -114,6 +117,7 @@ var InlineTip = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
114
117
  }, /*#__PURE__*/_react.default.createElement(_iconsReact.Idea20, null)), /*#__PURE__*/_react.default.createElement("div", {
115
118
  className: "".concat(blockClass, "__content")
116
119
  }, /*#__PURE__*/_react.default.createElement("h6", {
120
+ id: labelId,
117
121
  className: "".concat(blockClass, "__title")
118
122
  }, title), /*#__PURE__*/_react.default.createElement("section", {
119
123
  className: "".concat(blockClass, "__body")
@@ -38,7 +38,7 @@ var componentName = 'InlineTipButton';
38
38
  // };
39
39
 
40
40
  /**
41
- * TODO: A description of the component.
41
+ * TODO: A standard Carbon button, styled specifically for use inside InlineTip.
42
42
  */
43
43
  var InlineTipButton = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
44
44
  var children = _ref.children,
@@ -61,17 +61,10 @@ var InlineTipButton = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
61
61
  }), children);
62
62
  });
63
63
 
64
- // Return a placeholder if not released and not enabled by feature flag
65
- exports.InlineTipButton = InlineTipButton;
66
- exports.InlineTipButton = InlineTipButton = _settings.pkg.checkComponentEnabled(InlineTipButton, componentName);
67
-
68
- // The display name of the component, used by React. Note that displayName
69
- // is used in preference to relying on function.name.
70
- InlineTipButton.displayName = componentName;
71
-
72
64
  // The types and DocGen commentary for the component props,
73
65
  // in alphabetical order (for consistency).
74
66
  // See https://www.npmjs.com/package/prop-types#usage.
67
+ exports.InlineTipButton = InlineTipButton;
75
68
  InlineTipButton.propTypes = {
76
69
  /**
77
70
  * Provide the contents of the InlineTipButton.
@@ -39,7 +39,7 @@ var componentName = 'InlineTipLink';
39
39
  // };
40
40
 
41
41
  /**
42
- * TODO: A description of the component.
42
+ * TODO: A standard Carbon link, styled specifically for use inside InlineTip.
43
43
  */
44
44
  var InlineTipLink = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
45
45
  var children = _ref.children,
@@ -61,17 +61,10 @@ var InlineTipLink = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
61
61
  }), children);
62
62
  });
63
63
 
64
- // Return a placeholder if not released and not enabled by feature flag
65
- exports.InlineTipLink = InlineTipLink;
66
- exports.InlineTipLink = InlineTipLink = _settings.pkg.checkComponentEnabled(InlineTipLink, componentName);
67
-
68
- // The display name of the component, used by React. Note that displayName
69
- // is used in preference to relying on function.name.
70
- InlineTipLink.displayName = componentName;
71
-
72
64
  // The types and DocGen commentary for the component props,
73
65
  // in alphabetical order (for consistency).
74
66
  // See https://www.npmjs.com/package/prop-types#usage.
67
+ exports.InlineTipLink = InlineTipLink;
75
68
  InlineTipLink.propTypes = {
76
69
  /**
77
70
  * Provide the contents of the InlineTipLink.
@@ -119,7 +119,7 @@ var makeMatcherArray = function makeMatcherArray(args) {
119
119
  * A helper function to enable a test to expect a single call to
120
120
  * console.warn, for example when intentionally using a deprecated prop
121
121
  * or supplying invalid parameters for the purposes of the test.
122
- * @param {string|regex|Function|[]} message the expected parameters for the call to
122
+ * @param {string | regex | Function | []} message the expected parameters for the call to
123
123
  * console.warn, which must be called exactly once. A single string or regex or an
124
124
  * expect matcher can be used to match a single-argument call to console.warn (most common),
125
125
  * while an array of strings and/or regex and/or expect matchers can be used to match a
@@ -233,7 +233,7 @@ var expectLogging = function expectLogging(_ref2, test) {
233
233
  * A helper function to enable a test to expect a single call to
234
234
  * console.error, for example when intentionally omitting a required prop
235
235
  * or supplying an invalid prop type or value for the purposes of the test.
236
- * @param {string|regex|Function|[]} message the expected parameters for the call to
236
+ * @param {string | regex | Function | []} message the expected parameters for the call to
237
237
  * console.error, which must be called exactly once. A single string or regex or an
238
238
  * expect matcher can be used to match a single-argument call to console.error (most common),
239
239
  * while an array of strings and/or regex and/or expect matchers can be used to match a