@carbon/ibm-products 2.43.2-canary.7 → 2.44.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/css/index-full-carbon.css +35 -3
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css.map +1 -1
  6. package/css/index-without-carbon-released-only.min.css.map +1 -1
  7. package/css/index-without-carbon.css +35 -3
  8. package/css/index-without-carbon.css.map +1 -1
  9. package/css/index-without-carbon.min.css +1 -1
  10. package/css/index-without-carbon.min.css.map +1 -1
  11. package/css/index.css +35 -3
  12. package/css/index.css.map +1 -1
  13. package/css/index.min.css +1 -1
  14. package/css/index.min.css.map +1 -1
  15. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +23 -21
  16. package/es/components/ConditionBuilder/ConditionBuilder.js +67 -20
  17. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
  18. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +129 -0
  19. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +6 -4
  20. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +5 -1
  21. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +16 -4
  22. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
  23. package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +2 -2
  24. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -11
  25. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +36 -32
  26. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +0 -1
  27. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +7 -2
  28. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +6 -1
  29. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -10
  30. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +39 -36
  31. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +12 -10
  32. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
  33. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +24 -16
  34. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +19 -4
  35. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
  36. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +109 -0
  37. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
  38. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +58 -33
  39. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +4 -6
  40. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +14 -5
  41. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -2
  42. package/es/components/ConditionBuilder/utils/util.d.ts +1 -0
  43. package/es/components/ConditionBuilder/utils/util.js +16 -1
  44. package/es/components/DataSpreadsheet/DataSpreadsheet.js +12 -7
  45. package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +4 -1
  46. package/es/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +34 -2
  47. package/es/components/Datagrid/Datagrid/Datagrid.js +2 -1
  48. package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  49. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +11 -1
  50. package/es/components/Datagrid/Datagrid/DatagridRow.js +13 -2
  51. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
  52. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
  53. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
  54. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +6 -3
  55. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
  56. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +21 -16
  57. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +21 -3
  58. package/es/components/Datagrid/types/index.d.ts +18 -4
  59. package/es/components/Datagrid/useActionsColumn.d.ts +8 -1
  60. package/es/components/Datagrid/useActionsColumn.js +7 -6
  61. package/es/components/Datagrid/useColumnRightAlign.d.ts +8 -1
  62. package/es/components/Datagrid/useColumnRightAlign.js +4 -3
  63. package/es/components/Datagrid/useInlineEdit.js +12 -2
  64. package/es/components/Datagrid/useNestedRows.js +32 -13
  65. package/es/components/Decorator/Decorator.js +2 -1
  66. package/es/components/DecoratorBase/DecoratorBase.js +3 -5
  67. package/es/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
  68. package/es/components/DecoratorLink/DecoratorLink.js +2 -1
  69. package/es/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
  70. package/es/components/Tearsheet/Tearsheet.d.ts +8 -1
  71. package/es/components/Tearsheet/Tearsheet.js +9 -1
  72. package/es/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
  73. package/es/components/Tearsheet/TearsheetNarrow.js +12 -0
  74. package/es/components/Tearsheet/TearsheetShell.d.ts +10 -0
  75. package/es/components/Tearsheet/TearsheetShell.js +17 -3
  76. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +23 -21
  77. package/lib/components/ConditionBuilder/ConditionBuilder.js +67 -20
  78. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
  79. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +137 -0
  80. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +6 -3
  81. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +5 -1
  82. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +16 -4
  83. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
  84. package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +2 -2
  85. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -11
  86. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +36 -32
  87. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +0 -1
  88. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +7 -2
  89. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +6 -1
  90. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -10
  91. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +39 -36
  92. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +12 -10
  93. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
  94. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +23 -15
  95. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +20 -5
  96. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
  97. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +117 -0
  98. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
  99. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +56 -31
  100. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +4 -6
  101. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +14 -4
  102. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -2
  103. package/lib/components/ConditionBuilder/utils/util.d.ts +1 -0
  104. package/lib/components/ConditionBuilder/utils/util.js +17 -0
  105. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +12 -7
  106. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +4 -1
  107. package/lib/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +34 -2
  108. package/lib/components/Datagrid/Datagrid/Datagrid.js +2 -1
  109. package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  110. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +11 -1
  111. package/lib/components/Datagrid/Datagrid/DatagridRow.js +13 -2
  112. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
  113. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
  114. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
  115. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +6 -3
  116. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
  117. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +21 -16
  118. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +21 -3
  119. package/lib/components/Datagrid/types/index.d.ts +18 -4
  120. package/lib/components/Datagrid/useActionsColumn.d.ts +8 -1
  121. package/lib/components/Datagrid/useActionsColumn.js +7 -6
  122. package/lib/components/Datagrid/useColumnRightAlign.d.ts +8 -1
  123. package/lib/components/Datagrid/useColumnRightAlign.js +4 -3
  124. package/lib/components/Datagrid/useInlineEdit.js +12 -2
  125. package/lib/components/Datagrid/useNestedRows.js +32 -13
  126. package/lib/components/Decorator/Decorator.js +2 -1
  127. package/lib/components/DecoratorBase/DecoratorBase.js +3 -5
  128. package/lib/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
  129. package/lib/components/DecoratorLink/DecoratorLink.js +2 -1
  130. package/lib/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
  131. package/lib/components/Tearsheet/Tearsheet.d.ts +8 -1
  132. package/lib/components/Tearsheet/Tearsheet.js +9 -1
  133. package/lib/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
  134. package/lib/components/Tearsheet/TearsheetNarrow.js +12 -0
  135. package/lib/components/Tearsheet/TearsheetShell.d.ts +10 -0
  136. package/lib/components/Tearsheet/TearsheetShell.js +16 -2
  137. package/package.json +5 -5
  138. package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +9 -1
  139. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +26 -1
  140. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +1 -0
  141. package/scss/components/StatusIcon/_status-icon.scss +4 -4
  142. package/scss/components/StringFormatter/_string-formatter.scss +2 -2
  143. package/scss/components/UserProfileImage/_user-profile-image.scss +6 -2
  144. package/telemetry.yml +8 -3
  145. package/es/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
  146. package/es/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -16
  147. package/lib/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
  148. package/lib/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -20
@@ -16,7 +16,7 @@ import { DatagridSlug } from './addons/Slug/DatagridSlug.js';
16
16
 
17
17
  var _SkeletonText;
18
18
  var _excluded = ["className"],
19
- _excluded2 = ["children"];
19
+ _excluded2 = ["style", "children"];
20
20
  var blockClass = "".concat(pkg.prefix, "--datagrid");
21
21
  var rowHeights = {
22
22
  xs: 24,
@@ -39,7 +39,8 @@ var DatagridRow = function DatagridRow(datagridState) {
39
39
  withExpandedRows = datagridState.withExpandedRows,
40
40
  withMouseHover = datagridState.withMouseHover,
41
41
  setMouseOverRowIndex = datagridState.setMouseOverRowIndex,
42
- headers = datagridState.headers;
42
+ headers = datagridState.headers,
43
+ visibleColumns = datagridState.visibleColumns;
43
44
  var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
44
45
  var isExpanded = _ref.isExpanded,
45
46
  subRows = _ref.subRows;
@@ -115,6 +116,9 @@ var DatagridRow = function DatagridRow(datagridState) {
115
116
  return /*#__PURE__*/isValidElement(r === null || r === void 0 || (_r$original = r.original) === null || _r$original === void 0 ? void 0 : _r$original.slug);
116
117
  });
117
118
  var rowClassNames = cx("".concat(blockClass, "__carbon-row"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), "".concat(carbon.prefix, "--data-table--selected"), row.isSelected), "".concat(blockClass, "__slug--row"), /*#__PURE__*/isValidElement(row === null || row === void 0 || (_row$original = row.original) === null || _row$original === void 0 ? void 0 : _row$original.slug)));
119
+ var withActionsColumn = headers ? !!headers.filter(function (header) {
120
+ return header.isAction;
121
+ }).length : false;
118
122
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
119
123
  key: key
120
124
  }, /*#__PURE__*/React__default.createElement(TableRow, _extends({}, rowProps, {
@@ -136,6 +140,7 @@ var DatagridRow = function DatagridRow(datagridState) {
136
140
  var cellProps = cell.getCellProps();
137
141
  // eslint-disable-next-line no-unused-vars
138
142
  var _ref2 = cellProps,
143
+ style = _ref2.style,
139
144
  children = _ref2.children,
140
145
  restProps = _objectWithoutProperties(_ref2, _excluded2);
141
146
  var columnClassname = cell === null || cell === void 0 || (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : _cell$column.className;
@@ -150,9 +155,15 @@ var DatagridRow = function DatagridRow(datagridState) {
150
155
  var associatedHeader = headers === null || headers === void 0 ? void 0 : headers.filter(function (h) {
151
156
  return h.id === cell.column.id;
152
157
  });
158
+ var lastVisibleIndex = withActionsColumn ? 2 : 1;
159
+ var lastVisibleFlexStyle = index === visibleColumns.length - lastVisibleIndex ? '1 1 0' : '0 0 auto';
160
+ if (style) {
161
+ style.flex = lastVisibleFlexStyle;
162
+ }
153
163
  return /*#__PURE__*/React__default.createElement(TableCell, _extends({
154
164
  className: cx("".concat(blockClass, "__cell"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__expandable-row-cell"), row.canExpand && index === 0), "".concat(blockClass, "__expandable-row-cell--is-expanded"), row.isExpanded && index === 0), "".concat(blockClass, "__slug--cell"), associatedHeader && associatedHeader.length && /*#__PURE__*/isValidElement((_associatedHeader$ = associatedHeader[0]) === null || _associatedHeader$ === void 0 ? void 0 : _associatedHeader$.slug)), columnClassname)
155
165
  }, restProps, {
166
+ style: style,
156
167
  key: cell.column.id,
157
168
  title: title
158
169
  }), content);
@@ -209,7 +209,12 @@ var FilterFlyout = function FilterFlyout(_ref) {
209
209
  closeFlyout();
210
210
  cancel();
211
211
  });
212
- useSubscribeToEventEmitter(CLEAR_FILTERS, reset);
212
+
213
+ // tableId is passed in from the event emitter from the FilterSummary component
214
+ // in DatagridContent
215
+ useSubscribeToEventEmitter(CLEAR_FILTERS, function (tableId) {
216
+ reset(tableId);
217
+ });
213
218
  useEffect(function reflectLastAppliedFiltersWhenReactTableUpdates() {
214
219
  lastAppliedFilters.current = JSON.stringify(reactTableFiltersState);
215
220
  }, [reactTableFiltersState, lastAppliedFilters]);
@@ -183,7 +183,12 @@ var FilterPanel = function FilterPanel(_ref) {
183
183
  var _filterPanelRef$curre;
184
184
  (_filterPanelRef$curre = filterPanelRef.current) === null || _filterPanelRef$curre === void 0 || _filterPanelRef$curre.style.setProperty('--filter-panel-min-height', rem(filterPanelMinHeight));
185
185
  }, [filterPanelMinHeight]);
186
- useSubscribeToEventEmitter(CLEAR_FILTERS, reset);
186
+
187
+ // tableId is passed in from the event emitter from the FilterSummary component
188
+ // in DatagridContent
189
+ useSubscribeToEventEmitter(CLEAR_FILTERS, function (tableId) {
190
+ reset(tableId);
191
+ });
187
192
  var getScrollableContainerHeight = function getScrollableContainerHeight() {
188
193
  var _filterHeadingRef$cur, _filterSearchRef$curr, _actionSetRef$current;
189
194
  var filterHeadingHeight = (_filterHeadingRef$cur = filterHeadingRef.current) === null || _filterHeadingRef$cur === void 0 ? void 0 : _filterHeadingRef$cur.getBoundingClientRect().height;
@@ -3,16 +3,18 @@ export function clearSingleFilter({ key, value }: {
3
3
  key: any;
4
4
  value: any;
5
5
  }, setAllFilters: any, state: any): void;
6
- export function FilterProvider({ children, filters, filterProps }: {
6
+ export function FilterProvider({ children, filters, filterProps, tableId }: {
7
7
  children: any;
8
8
  filters: any;
9
9
  filterProps: any;
10
+ tableId: any;
10
11
  }): import("react/jsx-runtime").JSX.Element;
11
12
  export namespace FilterProvider {
12
13
  namespace propTypes {
13
14
  let children: PropTypes.Validator<NonNullable<NonNullable<PropTypes.ReactNodeLike>>>;
14
15
  let filterProps: PropTypes.Requireable<object>;
15
16
  let filters: PropTypes.Validator<(object | null | undefined)[]>;
17
+ let tableId: PropTypes.Requireable<string>;
16
18
  }
17
19
  }
18
20
  import React from 'react';
@@ -156,7 +156,8 @@ var filteringReducer = function filteringReducer(state, action) {
156
156
  var FilterProvider = function FilterProvider(_ref4) {
157
157
  var children = _ref4.children,
158
158
  filters = _ref4.filters,
159
- filterProps = _ref4.filterProps;
159
+ filterProps = _ref4.filterProps,
160
+ tableId = _ref4.tableId;
160
161
  var _ref5 = filterProps || {},
161
162
  renderDateLabel = _ref5.renderDateLabel;
162
163
  var filterTags = prepareFiltersForTags(filters, renderDateLabel);
@@ -177,7 +178,8 @@ var FilterProvider = function FilterProvider(_ref4) {
177
178
  panelOpen: panelOpen,
178
179
  setPanelOpen: setPanelOpen,
179
180
  state: state,
180
- dispatch: dispatch
181
+ dispatch: dispatch,
182
+ tableId: tableId
181
183
  };
182
184
  return /*#__PURE__*/React__default.createElement(FilterContext.Provider, {
183
185
  value: value
@@ -186,7 +188,8 @@ var FilterProvider = function FilterProvider(_ref4) {
186
188
  FilterProvider.propTypes = {
187
189
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
188
190
  filterProps: PropTypes.object,
189
- filters: PropTypes.arrayOf(PropTypes.object).isRequired
191
+ filters: PropTypes.arrayOf(PropTypes.object).isRequired,
192
+ tableId: PropTypes.string
190
193
  };
191
194
 
192
195
  export { FilterContext, FilterProvider, clearSingleFilter };
@@ -15,7 +15,7 @@ declare function useFilters({ updateMethod, filters, setAllFilters, variation, r
15
15
  prevFiltersObjectArrayRef: React.MutableRefObject<string>;
16
16
  prevFiltersRef: React.MutableRefObject<string>;
17
17
  revertToPreviousFilters: () => void;
18
- reset: () => void;
18
+ reset: (tableId: any) => void;
19
19
  renderFilter: ({ type, column, props: components }: {
20
20
  type: any;
21
21
  column: any;
@@ -28,7 +28,8 @@ var useFilters = function useFilters(_ref) {
28
28
  isFetching = _ref.isFetching;
29
29
  var _useContext = useContext(FilterContext),
30
30
  state = _useContext.state,
31
- localDispatch = _useContext.dispatch;
31
+ localDispatch = _useContext.dispatch,
32
+ contextTableId = _useContext.tableId;
32
33
  var savedFilters = state.savedFilters;
33
34
  /** State */
34
35
  var _useState = useState(getInitialStateFromFilters(filters, variation, reactTableFiltersState)),
@@ -69,24 +70,28 @@ var useFilters = function useFilters(_ref) {
69
70
  holdingLastAppliedFiltersRef.current = JSON.parse(prevFiltersObjectArrayRef.current);
70
71
  holdingPrevFiltersObjectArrayRef.current = JSON.parse(lastAppliedFilters.current);
71
72
  }, [setAllFilters]);
72
- var reset = useCallback(function () {
73
- // When we reset we want the "initialFilters" to be an empty array
74
- var resetFiltersArray = [];
73
+ var reset = useCallback(function (tableId) {
74
+ // only reset filters if tableid of the datagrid that triggered "clear filters"
75
+ // matches the table id stored in its context instance
76
+ if (tableId === contextTableId) {
77
+ // When we reset we want the "initialFilters" to be an empty array
78
+ var resetFiltersArray = [];
75
79
 
76
- // Get the initial values for the filters
77
- var initialFiltersState = getInitialStateFromFilters(filters, variation, resetFiltersArray);
78
- var initialFiltersObjectArray = [];
80
+ // Get the initial values for the filters
81
+ var initialFiltersState = getInitialStateFromFilters(filters, variation, resetFiltersArray);
82
+ var initialFiltersObjectArray = [];
79
83
 
80
- // Set the state to the initial values
81
- setFiltersState(initialFiltersState);
82
- setFiltersObjectArray(initialFiltersObjectArray);
83
- setAllFilters([]);
84
+ // Set the state to the initial values
85
+ setFiltersState(initialFiltersState);
86
+ setFiltersObjectArray(initialFiltersObjectArray);
87
+ setAllFilters([]);
84
88
 
85
- // Update their respective refs so everything is in sync
86
- prevFiltersRef.current = JSON.stringify(initialFiltersState);
87
- prevFiltersObjectArrayRef.current = JSON.stringify(initialFiltersObjectArray);
88
- lastAppliedFilters.current = JSON.stringify([]);
89
- }, [filters, setAllFilters, variation]);
89
+ // Update their respective refs so everything is in sync
90
+ prevFiltersRef.current = JSON.stringify(initialFiltersState);
91
+ prevFiltersObjectArrayRef.current = JSON.stringify(initialFiltersObjectArray);
92
+ lastAppliedFilters.current = JSON.stringify([]);
93
+ }
94
+ }, [filters, setAllFilters, variation, contextTableId]);
90
95
  var applyFilters = function applyFilters(_ref2) {
91
96
  var column = _ref2.column,
92
97
  value = _ref2.value,
@@ -19,7 +19,7 @@ import { InlineEditButton } from '../InlineEditButton/InlineEditButton.js';
19
19
 
20
20
  var blockClass = "".concat(pkg.prefix, "--datagrid");
21
21
  var InlineEditCell = function InlineEditCell(_ref) {
22
- var _config$validator, _value$text;
22
+ var _config$validator;
23
23
  var cell = _ref.cell,
24
24
  config = _ref.config,
25
25
  _ref$disabledCell = _ref.disabledCell,
@@ -447,6 +447,24 @@ var InlineEditCell = function InlineEditCell(_ref) {
447
447
  ref: textInputRef
448
448
  }));
449
449
  };
450
+ var getLabel = function getLabel() {
451
+ var _value$text, _checkStaticCell;
452
+ var checkStaticCell = function checkStaticCell(val) {
453
+ if (_typeof(val) === 'object' && val !== null && val !== void 0 && val.isStaticCell) {
454
+ return val === null || val === void 0 ? void 0 : val.value;
455
+ }
456
+ };
457
+ switch (type) {
458
+ case 'selection':
459
+ checkStaticCell(value);
460
+ return (_value$text = value === null || value === void 0 ? void 0 : value.text) !== null && _value$text !== void 0 ? _value$text : value;
461
+ case 'date':
462
+ checkStaticCell(value);
463
+ return buildDate(value);
464
+ default:
465
+ return (_checkStaticCell = checkStaticCell(value)) !== null && _checkStaticCell !== void 0 ? _checkStaticCell : value;
466
+ }
467
+ };
450
468
  return (
451
469
  /*#__PURE__*/
452
470
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
@@ -455,7 +473,7 @@ var InlineEditCell = function InlineEditCell(_ref) {
455
473
  "data-cell-id": cellId,
456
474
  "data-column-index": columnIndex,
457
475
  "data-row-index": cell.row.index,
458
- "data-disabled": disabledCell,
476
+ "data-disabled": disabledCell || nonEditCell,
459
477
  "data-inline-type": type,
460
478
  onClick: !nonEditCell ? handleInlineCellClick : addActiveState,
461
479
  onKeyDown: !nonEditCell ? handleKeyDown : null,
@@ -463,7 +481,7 @@ var InlineEditCell = function InlineEditCell(_ref) {
463
481
  }, !nonEditCell && !disabledCell && renderRegularCell(), (!inEditMode || disabledCell) && /*#__PURE__*/React__default.createElement(InlineEditButton, {
464
482
  isActiveCell: cellId === activeCellId,
465
483
  renderIcon: setRenderIcon(),
466
- label: type === 'selection' ? (_value$text = value === null || value === void 0 ? void 0 : value.text) !== null && _value$text !== void 0 ? _value$text : value : type === 'date' ? buildDate(value) : value,
484
+ label: getLabel(),
467
485
  disabledCell: disabledCell,
468
486
  labelIcon: (value === null || value === void 0 ? void 0 : value.icon) || null,
469
487
  placeholder: placeholder,
@@ -5,10 +5,10 @@ import { RadioButtonProps } from '@carbon/react/lib/components/RadioButton/Radio
5
5
  import { RadioButtonGroupProps } from '@carbon/react/lib/components/RadioButtonGroup/RadioButtonGroup';
6
6
  import { CheckboxProps } from '@carbon/react/lib/components/Checkbox';
7
7
  import { NumberInputProps } from '@carbon/react/lib/components/NumberInput/NumberInput';
8
- import { CSSProperties, JSXElementConstructor, MutableRefObject, ReactNode, TouchEventHandler } from 'react';
9
- import { Cell, Column, ColumnInstance, FilterValue, Filters, HeaderGroup, Meta, Row, TableCommonProps, TableDispatch, TableInstance, TableToggleAllRowsSelectedProps, UseExpandedRowProps, UseFiltersInstanceProps, UsePaginationInstanceProps, UseResizeColumnsColumnProps, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectRowProps, UseRowSelectState, UseSortByColumnProps, UseTableHooks } from 'react-table';
8
+ import React, { CSSProperties, ComponentType, FunctionComponent, JSXElementConstructor, MutableRefObject, ReactNode, TouchEventHandler } from 'react';
9
+ import { Cell, Column, ColumnInstance, FilterValue, Filters, HeaderGroup, Meta, Row, TableCommonProps, TableDispatch, TableInstance, TableToggleAllRowsSelectedProps, UseExpandedRowProps, UseFiltersInstanceProps, UsePaginationInstanceProps, UseResizeColumnsColumnProps, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectRowProps, UseRowSelectState, UseSortByColumnProps, UseSortByOptions, UseTableHooks } from 'react-table';
10
10
  import { CarbonIconType } from '@carbon/react/icons';
11
- import { type ButtonProps } from '@carbon/react';
11
+ import { IconButton, type ButtonProps } from '@carbon/react';
12
12
  import { TableBatchActionsProps } from '@carbon/react/lib/components/DataTable/TableBatchActions';
13
13
  export type Size = 'xs' | 'sm' | 'md' | 'lg';
14
14
  export interface ResizerProps {
@@ -85,9 +85,10 @@ export interface DataGridToggleAllRowsProps extends TableToggleAllRowsSelectedPr
85
85
  }
86
86
  export interface DatagridTableHooks<T extends object = any> extends UseTableHooks<T> {
87
87
  }
88
- export interface DatagridColumn<T extends object = any> extends ColumnInstance<T> {
88
+ export interface DatagridColumn<T extends object = any> extends ColumnInstance<T>, UseSortByOptions<T> {
89
89
  sticky?: 'left' | 'right';
90
90
  className?: string;
91
+ rightAlignedColumn?: boolean;
91
92
  disableSortBy?: boolean;
92
93
  centerAlignedColumn?: boolean;
93
94
  }
@@ -100,6 +101,7 @@ export interface DatagridRow<T extends object = any> extends Omit<Row<T>, 'cells
100
101
  RowExpansionRenderer?: (state?: DataGridState) => void;
101
102
  cells: Array<DataGridCell>;
102
103
  isSkeleton?: boolean;
104
+ hasExpanded?: boolean;
103
105
  }
104
106
  export interface DataGridHeader<T extends object = any> extends ColumnInstance, UseResizeColumnsColumnProps<T>, UseSortByColumnProps<T> {
105
107
  className(className: any, arg1: {
@@ -120,6 +122,16 @@ interface DataGridTableState extends UseResizeColumnsState<any>, UseRowSelectSta
120
122
  }
121
123
  export interface DataGridTableInstance<T extends object = any> extends TableInstance<T> {
122
124
  }
125
+ export interface RowAction {
126
+ id?: string;
127
+ itemText?: string;
128
+ icon?: ComponentType | FunctionComponent;
129
+ align?: React.ComponentProps<typeof IconButton>['align'];
130
+ shouldHideMenuItem?: (...args: any[]) => void;
131
+ shouldDisableMenuItem?: (...args: any[]) => void;
132
+ disabled?: boolean;
133
+ onClick?: (...args: any[]) => void;
134
+ }
123
135
  export interface DataGridState<T extends object = any> extends TableCommonProps, UsePaginationInstanceProps<T>, Omit<TableInstance<T>, 'state' | 'headers' | 'rows' | 'columns'>, Omit<UseFiltersInstanceProps<T>, 'rows'>, UseRowSelectInstanceProps<T>, Pick<UseRowSelectInstanceProps<T>, 'toggleAllRowsSelected'> {
124
136
  withVirtualScroll?: boolean;
125
137
  DatagridPagination?: JSXElementConstructor<any>;
@@ -142,6 +154,7 @@ export interface DataGridState<T extends object = any> extends TableCommonProps,
142
154
  batchActions?: boolean;
143
155
  row: DatagridRow;
144
156
  rows: Array<DatagridRow<any>>;
157
+ rowActions?: RowAction[];
145
158
  columns: Array<DatagridColumn>;
146
159
  key?: any;
147
160
  rowSize?: Size;
@@ -217,4 +230,5 @@ export interface ResizeHeaderProps {
217
230
  isFetching?: boolean;
218
231
  }
219
232
  export type VisibleColumns<T extends object = {}> = (allColumns: Array<ColumnInstance<T>>, meta: Meta<T>) => Array<Column<T>>;
233
+ export type NodeFuncType = (props: any) => ReactNode;
220
234
  export {};
@@ -1,2 +1,9 @@
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
+ */
7
+ import { Hooks } from 'react-table';
8
+ declare const useActionsColumn: (hooks: Hooks) => void;
1
9
  export default useActionsColumn;
2
- declare function useActionsColumn(hooks: any): void;
@@ -17,9 +17,10 @@ var _excluded = ["align", "id", "itemText", "onClick", "icon", "shouldHideMenuIt
17
17
  var blockClass = "".concat(pkg.prefix, "--datagrid");
18
18
  var useActionsColumn = function useActionsColumn(hooks) {
19
19
  var useAttachActionsOnInstance = function useAttachActionsOnInstance(instance) {
20
- var rowActions = instance.rowActions,
21
- isFetching = instance.isFetching,
22
- selectedRowIds = instance.state.selectedRowIds;
20
+ var _ref = instance,
21
+ rowActions = _ref.rowActions,
22
+ isFetching = _ref.isFetching,
23
+ selectedRowIds = _ref.state.selectedRowIds;
23
24
  var getDisabledState = function getDisabledState(rowIndex) {
24
25
  var selectedRowIndexes = Object.keys(selectedRowIds).map(function (n) {
25
26
  return Number(n);
@@ -79,10 +80,10 @@ var useActionsColumn = function useActionsColumn(hooks) {
79
80
  return;
80
81
  }
81
82
  e.stopPropagation();
82
- _onClick(id, row, e);
83
+ _onClick === null || _onClick === void 0 || _onClick(id, row, e);
83
84
  },
84
85
  disabled: isDisabledByRow
85
- }), /*#__PURE__*/React__default.createElement(Icon, null)));
86
+ }), Icon && /*#__PURE__*/React__default.createElement(Icon, null)));
86
87
  })), !isFetching && (rowActions.length > 2 || isColumnSticky) && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(OverflowMenu, {
87
88
  align: "left",
88
89
  size: "sm",
@@ -108,7 +109,7 @@ var useActionsColumn = function useActionsColumn(hooks) {
108
109
  disabled: isDisabledByRow,
109
110
  onClick: function onClick(e) {
110
111
  e.stopPropagation();
111
- _onClick2(id, row, e);
112
+ _onClick2 === null || _onClick2 === void 0 || _onClick2(id, row, e);
112
113
  },
113
114
  key: id
114
115
  }));
@@ -1,2 +1,9 @@
1
+ /**
2
+ * Copyright IBM Corp. 2020, 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
+ */
7
+ import { Hooks } from 'react-table';
8
+ declare const useColumnRightAlign: (hooks: Hooks) => void;
1
9
  export default useColumnRightAlign;
2
- declare function useColumnRightAlign(hooks: any): void;
@@ -13,16 +13,17 @@ import { pkg } from '../../settings.js';
13
13
  var blockClass = "".concat(pkg.prefix, "--datagrid");
14
14
  var useColumnRightAlign = function useColumnRightAlign(hooks) {
15
15
  var RightAlignRenderer = function RightAlignRenderer(tableProps, column) {
16
+ var _tableProps$column, _column$Cell;
16
17
  return /*#__PURE__*/React__default.createElement("div", {
17
18
  className: cx("".concat(blockClass, "__right-align-cell-renderer"), {
18
- sortDisabled: !tableProps.isTableSortable || tableProps.column.disableSortBy === true
19
+ sortDisabled: !tableProps.isTableSortable || (tableProps === null || tableProps === void 0 || (_tableProps$column = tableProps.column) === null || _tableProps$column === void 0 ? void 0 : _tableProps$column.disableSortBy) === true
19
20
  })
20
- }, column.Cell(tableProps));
21
+ }, column === null || column === void 0 || (_column$Cell = column.Cell) === null || _column$Cell === void 0 ? void 0 : _column$Cell.call(column, tableProps));
21
22
  };
22
23
  var RightAlignHeader = function RightAlignHeader(headerProp, column) {
23
24
  return /*#__PURE__*/React__default.createElement("div", {
24
25
  className: "".concat(blockClass, "__right-align-header")
25
- }, typeof column.Header === 'function' ? column.Header(headerProp) : column.Header);
26
+ }, typeof column.Header === 'function' ? (column === null || column === void 0 ? void 0 : column.Header.bind(column))(headerProp) : column.Header);
26
27
  };
27
28
  var rightAlignedColumns = function rightAlignedColumns(columns) {
28
29
  var columnsWithDefaultCells = columns.map(function (column) {
@@ -5,6 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ import { typeof as _typeof } from '../../_virtual/_rollupPluginBabelHelpers.js';
8
9
  import React__default from 'react';
9
10
  import { pkg } from '../../settings.js';
10
11
  import cx from 'classnames';
@@ -13,12 +14,13 @@ import { InlineEditCell } from './Datagrid/addons/InlineEdit/InlineEditCell/Inli
13
14
  var blockClass = "".concat(pkg.prefix, "--datagrid");
14
15
  var useInlineEdit = function useInlineEdit(hooks) {
15
16
  var addInlineEdit = function addInlineEdit(props, _ref) {
16
- var _cell$column, _cell$column2;
17
+ var _cell$column, _cell$column2, _cell$value, _cell$value2, _cell$value3;
17
18
  var cell = _ref.cell,
18
19
  instance = _ref.instance;
19
20
  var columnInlineEditConfig = cell.column.inlineEdit;
20
21
  var inlineEditType = (_cell$column = cell.column) === null || _cell$column === void 0 || (_cell$column = _cell$column.inlineEdit) === null || _cell$column === void 0 ? void 0 : _cell$column.type;
21
22
  var isDisabled = (_cell$column2 = cell.column) === null || _cell$column2 === void 0 ? void 0 : _cell$column2.isDisabled;
23
+ var staticCell = _typeof(cell.value) === 'object' && cell.column.id === ((_cell$value = cell.value) === null || _cell$value === void 0 ? void 0 : _cell$value.columnId) && ((_cell$value2 = cell.value) === null || _cell$value2 === void 0 ? void 0 : _cell$value2.isStaticCell);
22
24
  var renderInlineEditComponent = function renderInlineEditComponent(type) {
23
25
  return /*#__PURE__*/React__default.createElement(InlineEditCell, {
24
26
  config: columnInlineEditConfig,
@@ -38,7 +40,15 @@ var useInlineEdit = function useInlineEdit(hooks) {
38
40
  return [props, {
39
41
  className: cx("".concat(blockClass, "__cell"), "".concat(blockClass, "__cell-inline-edit")),
40
42
  role: 'gridcell',
41
- children: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, inlineEditType === 'text' && renderInlineEditComponent(inlineEditType), inlineEditType === 'number' && renderInlineEditComponent(inlineEditType), inlineEditType === 'selection' && renderInlineEditComponent(inlineEditType), inlineEditType === 'date' && renderInlineEditComponent(inlineEditType), !inlineEditType && /*#__PURE__*/React__default.createElement(InlineEditCell, {
43
+ children: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, !staticCell && inlineEditType === 'text' && renderInlineEditComponent(inlineEditType), !staticCell && inlineEditType === 'number' && renderInlineEditComponent(inlineEditType), !staticCell && inlineEditType === 'selection' && renderInlineEditComponent(inlineEditType), !staticCell && inlineEditType === 'date' && renderInlineEditComponent(inlineEditType), staticCell && /*#__PURE__*/React__default.createElement(InlineEditCell, {
44
+ config: columnInlineEditConfig,
45
+ tabIndex: -1,
46
+ value: (_cell$value3 = cell.value) === null || _cell$value3 === void 0 ? void 0 : _cell$value3.value,
47
+ cell: cell,
48
+ instance: instance,
49
+ nonEditCell: true,
50
+ type: "text"
51
+ }), !inlineEditType && /*#__PURE__*/React__default.createElement(InlineEditCell, {
42
52
  config: columnInlineEditConfig,
43
53
  tabIndex: -1,
44
54
  value: cell.value,
@@ -15,33 +15,52 @@ var blockClass = "".concat(pkg.prefix, "--datagrid");
15
15
  var useNestedRows = function useNestedRows(hooks) {
16
16
  useNestedRowExpander(hooks);
17
17
  var useInstance = function useInstance(instance) {
18
+ useEffect(function () {
19
+ var _ref = instance,
20
+ rows = _ref.rows;
21
+ var defaultExpandedRows = rows.filter(function (row) {
22
+ var _row$original;
23
+ return row === null || row === void 0 || (_row$original = row.original) === null || _row$original === void 0 ? void 0 : _row$original.defaultExpanded;
24
+ });
25
+ if (defaultExpandedRows !== null && defaultExpandedRows !== void 0 && defaultExpandedRows.length) {
26
+ defaultExpandedRows.map(function (defaultExpandedRow) {
27
+ if (!(defaultExpandedRow !== null && defaultExpandedRow !== void 0 && defaultExpandedRow.isExpanded) && !(defaultExpandedRow !== null && defaultExpandedRow !== void 0 && defaultExpandedRow.hasExpanded)) {
28
+ var _defaultExpandedRow$t;
29
+ defaultExpandedRow === null || defaultExpandedRow === void 0 || (_defaultExpandedRow$t = defaultExpandedRow.toggleRowExpanded) === null || _defaultExpandedRow$t === void 0 || _defaultExpandedRow$t.call(defaultExpandedRow);
30
+ defaultExpandedRow.hasExpanded = true;
31
+ return;
32
+ }
33
+ });
34
+ }
35
+ }, [instance, instance.rows]);
18
36
  // This useEffect will expand rows if they exist in the initialState obj
19
37
  useEffect(function () {
20
38
  var rows = instance.rows,
21
39
  initialState = instance.initialState;
22
- var _ref = initialState,
23
- expandedRowIds = _ref.expandedRowIds;
40
+ var _ref2 = initialState,
41
+ expandedRowIds = _ref2.expandedRowIds;
24
42
  if (expandedRowIds) {
25
43
  Object.keys(expandedRowIds).forEach(function (key) {
44
+ var _row$0$original;
26
45
  var row = rows.filter(function (r) {
27
- return r.id.toString() === key.toString();
46
+ var _r$original;
47
+ return r.id.toString() === key.toString() || ((_r$original = r.original) === null || _r$original === void 0 || (_r$original = _r$original.id) === null || _r$original === void 0 ? void 0 : _r$original.toString()) === key.toString();
28
48
  });
29
- if (row !== null && row !== void 0 && row.length && key.toString() === row[0].id.toString()) {
30
- var _row$;
31
- (_row$ = row[0]) === null || _row$ === void 0 || _row$.toggleRowExpanded();
49
+ if (row.length && key.toString() === row[0].id.toString() || row.length && key.toString() === ((_row$0$original = row[0].original) === null || _row$0$original === void 0 || (_row$0$original = _row$0$original.id) === null || _row$0$original === void 0 ? void 0 : _row$0$original.toString())) {
50
+ row[0].toggleRowExpanded();
32
51
  }
33
52
  });
34
53
  }
35
54
  }, [instance]);
36
55
  var marginLeft = 24;
37
- var getRowProps = function getRowProps(props, _ref2) {
38
- var row = _ref2.row;
56
+ var getRowProps = function getRowProps(props, _ref3) {
57
+ var row = _ref3.row;
39
58
  return [props, {
40
59
  className: cx(_defineProperty(_defineProperty({}, "".concat(blockClass, "__carbon-nested-row"), row.depth > 0), "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded))
41
60
  }];
42
61
  };
43
- var getRowStyles = function getRowStyles(props, _ref3) {
44
- var row = _ref3.row;
62
+ var getRowStyles = function getRowStyles(props, _ref4) {
63
+ var row = _ref4.row;
45
64
  return [props, {
46
65
  style: {
47
66
  paddingLeft: "".concat(row.depth > 1 ? marginLeft * 2 + (row.depth - 1) * (marginLeft + marginLeft / 3) : row.depth === 1 ? marginLeft * 2 : 0, "px")
@@ -51,9 +70,9 @@ var useNestedRows = function useNestedRows(hooks) {
51
70
  var getIndentation = function getIndentation(depth) {
52
71
  return 32 * depth + 16;
53
72
  }; // row indentation padding
54
- var getCellProps = function getCellProps(props, _ref4) {
55
- var cell = _ref4.cell,
56
- instance = _ref4.instance;
73
+ var getCellProps = function getCellProps(props, _ref5) {
74
+ var cell = _ref5.cell,
75
+ instance = _ref5.instance;
57
76
  // we add a dynamic -ve margin right only if the cell is resized below minimum width i.e 50px, else we set the width based on indentation at different levels
58
77
  var isFirstCell = instance.columns.findIndex(function (c) {
59
78
  return c.id === cell.column.id;
@@ -87,7 +87,8 @@ Decorator.propTypes = {
87
87
  */
88
88
  small: PropTypes.bool,
89
89
  /**
90
- * Determines the theme of the component.
90
+ * Override the default theme of the component.
91
+ * Useful if you want "invert" the component's theme.
91
92
  */
92
93
  theme: PropTypes.oneOf(['light', 'dark']),
93
94
  /**
@@ -23,8 +23,7 @@ var defaults = {
23
23
  onContextMenu: function onContextMenu() {},
24
24
  onContextMenuLabel: function onContextMenuLabel() {},
25
25
  onContextMenuValue: function onContextMenuValue() {},
26
- scoreThresholds: [0, 4, 7, 10],
27
- theme: 'light'
26
+ scoreThresholds: [0, 4, 7, 10]
28
27
  };
29
28
 
30
29
  /**
@@ -56,8 +55,7 @@ var DecoratorBase = /*#__PURE__*/React__default.forwardRef(function (_ref, ref)
56
55
  _ref$scoreThresholds = _ref.scoreThresholds,
57
56
  scoreThresholds = _ref$scoreThresholds === void 0 ? defaults.scoreThresholds : _ref$scoreThresholds,
58
57
  small = _ref.small,
59
- _ref$theme = _ref.theme,
60
- theme = _ref$theme === void 0 ? defaults.theme : _ref$theme,
58
+ theme = _ref.theme,
61
59
  truncateValue = _ref.truncateValue,
62
60
  value = _ref.value,
63
61
  valueTitle = _ref.valueTitle,
@@ -67,7 +65,7 @@ var DecoratorBase = /*#__PURE__*/React__default.forwardRef(function (_ref, ref)
67
65
  var _value = truncate(value, truncateValue);
68
66
 
69
67
  // These class names apply to all types of DecoratorBase.
70
- var classNames = cx(blockClass, className, "".concat(blockClass, "--").concat(theme), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "--sm"), small), "".concat(blockClass, "--truncate-end"), truncateValue === 'end'), "".concat(blockClass, "--truncate-start"), truncateValue === 'start'), "".concat(blockClass, "--truncate-midline"), truncateValue === null || truncateValue === void 0 ? void 0 : truncateValue.maxLength));
68
+ var classNames = cx(blockClass, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "--").concat(theme), theme), "".concat(blockClass, "--sm"), small), "".concat(blockClass, "--truncate-end"), truncateValue === 'end'), "".concat(blockClass, "--truncate-start"), truncateValue === 'start'), "".concat(blockClass, "--truncate-midline"), truncateValue === null || truncateValue === void 0 ? void 0 : truncateValue.maxLength));
71
69
 
72
70
  // These properties apply to all <DecoratorIcons>.
73
71
  var decoratorIconsProps = {
@@ -111,7 +111,8 @@ DecoratorDualButton.propTypes = {
111
111
  */
112
112
  small: PropTypes.bool,
113
113
  /**
114
- * Determines the theme of the component.
114
+ * Override the default theme of the component.
115
+ * Useful if you want "invert" the component's theme.
115
116
  */
116
117
  theme: PropTypes.oneOf(['light', 'dark']),
117
118
  /**
@@ -101,7 +101,8 @@ DecoratorLink.propTypes = {
101
101
  */
102
102
  small: PropTypes.bool,
103
103
  /**
104
- * Determines the theme of the component.
104
+ * Override the default theme of the component.
105
+ * Useful if you want "invert" the component's theme.
105
106
  */
106
107
  theme: PropTypes.oneOf(['light', 'dark']),
107
108
  /**
@@ -101,7 +101,8 @@ DecoratorSingleButton.propTypes = {
101
101
  */
102
102
  small: PropTypes.bool,
103
103
  /**
104
- * Determines the theme of the component.
104
+ * Override the default theme of the component.
105
+ * Useful if you want "invert" the component's theme.
105
106
  */
106
107
  theme: PropTypes.oneOf(['light', 'dark']),
107
108
  /**
@@ -99,9 +99,16 @@ interface TearsheetProps extends PropsWithChildren {
99
99
  */
100
100
  portalTarget: ReactNode;
101
101
  /**
102
- * Specify a CSS selector that matches the DOM element that should be focused when the Modal opens
102
+ * Specify a CSS selector that matches the DOM element that should be
103
+ * focused when the Modal opens.
103
104
  */
104
105
  selectorPrimaryFocus?: string;
106
+ /**
107
+ * Specify the CSS selectors that match the floating menus.
108
+ *
109
+ * See https://react.carbondesignsystem.com/?path=/docs/components-composedmodal--overview#focus-management
110
+ */
111
+ selectorsFloatingMenus?: string[];
105
112
  /**
106
113
  * The main title of the tearsheet, displayed in the header area.
107
114
  */
@@ -190,9 +190,17 @@ Tearsheet.propTypes = _objectSpread2({
190
190
  /**@ts-ignore */
191
191
  portalTarget: portalType,
192
192
  /**
193
- * Specify a CSS selector that matches the DOM element that should be focused when the Modal opens
193
+ * Specify a CSS selector that matches the DOM element that should be
194
+ * focused when the Modal opens.
194
195
  */
195
196
  selectorPrimaryFocus: PropTypes.string,
197
+ /**
198
+ * Specify the CSS selectors that match the floating menus.
199
+ *
200
+ * See https://react.carbondesignsystem.com/?path=/docs/components-composedmodal--overview#focus-management
201
+ */
202
+ /**@ts-ignore*/
203
+ selectorsFloatingMenus: PropTypes.arrayOf(PropTypes.string),
196
204
  /**
197
205
  * The main title of the tearsheet, displayed in the header area.
198
206
  */