@carbon/ibm-products 2.29.0 → 2.30.0-alpha.9

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 (36) hide show
  1. package/css/index-full-carbon.css +43 -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 +39 -3
  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 +43 -3
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +43 -3
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AboutModal/AboutModal.js +3 -25
  18. package/es/components/DataSpreadsheet/DataSpreadsheet.js +120 -145
  19. package/es/components/Datagrid/Datagrid/DatagridRow.js +1 -1
  20. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +6 -3
  21. package/es/components/Datagrid/useActionsColumn.js +6 -2
  22. package/es/components/Toolbar/ToolbarButton.d.ts +24 -3
  23. package/es/components/Toolbar/ToolbarButton.js +2 -2
  24. package/lib/components/AboutModal/AboutModal.js +1 -23
  25. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +120 -145
  26. package/lib/components/Datagrid/Datagrid/DatagridRow.js +1 -1
  27. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +6 -3
  28. package/lib/components/Datagrid/useActionsColumn.js +6 -2
  29. package/lib/components/Toolbar/ToolbarButton.d.ts +24 -3
  30. package/lib/components/Toolbar/ToolbarButton.js +2 -2
  31. package/package.json +4 -4
  32. package/scss/components/AboutModal/_about-modal.scss +7 -2
  33. package/scss/components/Datagrid/styles/_useExpandedRow.scss +8 -0
  34. package/scss/components/Datagrid/styles/_useNestedRows.scss +54 -0
  35. package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +1 -1
  36. package/scss/components/TagSet/_tag-set.scss +1 -0
@@ -301,29 +301,121 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
301
301
  updateActiveCellCoordinates({
302
302
  coords: coordinatesClone,
303
303
  updatedValue: {
304
- column: type === 'home' ? 0 : columns.length - 1
304
+ column: type === 'Home' ? 0 : columns.length - 1
305
305
  }
306
306
  });
307
307
  removeCellSelections.removeCellSelections({
308
308
  spreadsheetRef: spreadsheetRef
309
309
  });
310
310
  }, [activeCellCoordinates, updateActiveCellCoordinates, spreadsheetRef, columns.length]);
311
+ var checkforReturnConditon = React.useCallback(function (key) {
312
+ return isEditing || key === 'Meta' || key === 'Control';
313
+ }, [isEditing]);
314
+ var handleArrowkeyPress = React.useCallback(function (arrowKey) {
315
+ event.preventDefault();
316
+ handleInitialArrowPress();
317
+ var coordinatesClone = _rollupPluginBabelHelpers.objectSpread2({}, activeCellCoordinates);
318
+ var updatedValue;
319
+ switch (arrowKey) {
320
+ // Left
321
+ case 'ArrowLeft':
322
+ {
323
+ if (coordinatesClone.column === 'header') {
324
+ return;
325
+ }
326
+ if (typeof coordinatesClone.column === 'number') {
327
+ if (coordinatesClone.column === 0) {
328
+ updatedValue = {
329
+ column: 'header'
330
+ };
331
+ } else {
332
+ updatedValue = {
333
+ column: coordinatesClone.column - 1
334
+ };
335
+ }
336
+ }
337
+ break;
338
+ }
339
+ // Up
340
+ case 'ArrowUp':
341
+ {
342
+ if (coordinatesClone.row === 'header') {
343
+ return;
344
+ }
345
+ if (typeof coordinatesClone.row === 'number') {
346
+ // set row back to header if we are at index 0
347
+ if (coordinatesClone.row === 0) {
348
+ updatedValue = {
349
+ row: 'header'
350
+ };
351
+ } else {
352
+ // if we are at any other index than 0, subtract 1 from current row index
353
+ updatedValue = {
354
+ row: coordinatesClone.row - 1
355
+ };
356
+ }
357
+ }
358
+ break;
359
+ }
360
+ // Right
361
+ case 'ArrowRight':
362
+ {
363
+ if (coordinatesClone.column === 'header') {
364
+ updatedValue = {
365
+ column: 0
366
+ };
367
+ }
368
+ if (typeof coordinatesClone.column === 'number') {
369
+ // Prevent active cell coordinates from updating if the active
370
+ // cell is in the last column, ie we can't go any further to the right
371
+ if (columns.length - 1 === coordinatesClone.column) {
372
+ return;
373
+ } else {
374
+ updatedValue = {
375
+ column: coordinatesClone.column + 1
376
+ };
377
+ }
378
+ }
379
+ break;
380
+ }
381
+ // Down
382
+ case 'ArrowDown':
383
+ {
384
+ if (coordinatesClone.row === 'header') {
385
+ updatedValue = {
386
+ row: 0
387
+ };
388
+ }
389
+ if (typeof coordinatesClone.row === 'number') {
390
+ // Prevent active cell coordinates from updating if the active
391
+ // cell is in the last row, ie we can't go any further down since
392
+ // we are in the last row
393
+ if (rows.length - 1 === coordinatesClone.row) {
394
+ return;
395
+ } else {
396
+ updatedValue = {
397
+ row: coordinatesClone.row + 1
398
+ };
399
+ }
400
+ }
401
+ break;
402
+ }
403
+ }
404
+ if (updatedValue) {
405
+ updateActiveCellCoordinates({
406
+ coords: coordinatesClone,
407
+ updatedValue: updatedValue
408
+ });
409
+ }
410
+ }, [handleInitialArrowPress, updateActiveCellCoordinates, activeCellCoordinates, columns, rows]);
311
411
  var handleKeyPress = React.useCallback(function (event) {
312
412
  var key = event.key;
313
- if (isEditing) {
314
- return;
315
- }
316
413
  // Command keys need to be returned as there is default browser behavior with these keys
317
- if (key === 'Meta' || key === 'Control') {
318
- return;
319
- }
320
- // Prevent arrow keys, home key, and end key from scrolling the page when the data spreadsheet container has focus
321
- if (['End', 'Home', 'ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown'].indexOf(key) > -1 && !isEditing) {
322
- event.preventDefault();
323
- }
324
- if (['Tab'].indexOf(key) > -1 && isEditing) {
414
+ // Needs to be returned in editing mode
415
+ if (checkforReturnConditon(key)) {
325
416
  return;
326
417
  }
418
+
327
419
  // Clear out all cell selection areas if user uses any arrow key, except if the shift key is being held
328
420
  if (['ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown'].indexOf(key) > -1) {
329
421
  if (selectionAreas !== null && selectionAreas !== void 0 && selectionAreas.length && keysPressedList.length < 2 && !handleMultipleKeys.includesShift(keysPressedList)) {
@@ -334,7 +426,7 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
334
426
  });
335
427
  }
336
428
  }
337
- if (!isEditing && (keysPressedList === null || keysPressedList === void 0 ? void 0 : keysPressedList.length) > 1) {
429
+ if ((keysPressedList === null || keysPressedList === void 0 ? void 0 : keysPressedList.length) > 1) {
338
430
  handleMultipleKeys.handleMultipleKeys({
339
431
  activeCellCoordinates: activeCellCoordinates,
340
432
  event: event,
@@ -352,27 +444,24 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
352
444
  usingMac: usingMac
353
445
  });
354
446
  }
355
- var deleteParams = {
356
- selectionAreas: selectionAreas,
357
- currentMatcher: currentMatcher,
358
- rows: rows,
359
- setActiveCellContent: setActiveCellContent,
360
- updateData: updateData,
361
- activeCellCoordinates: activeCellCoordinates
362
- };
447
+
363
448
  // Allow arrow key navigation if there are less than two activeKeys OR
364
449
  // if one of the activeCellCoordinates is in a header position
450
+ // Prevent arrow keys, home key, and end key from scrolling the page when the data spreadsheet container has focus
451
+
365
452
  if (keysPressedList.length < 2 && !handleMultipleKeys.includesShift(keysPressedList) || activeCellCoordinates.row === 'header' || activeCellCoordinates.column === 'header') {
366
453
  switch (key) {
367
- // Backspace
368
454
  case 'Backspace':
369
- {
370
- handleCellDeletion.handleCellDeletion(deleteParams);
371
- break;
372
- }
373
- // Delete
374
455
  case 'Delete':
375
456
  {
457
+ var deleteParams = {
458
+ selectionAreas: selectionAreas,
459
+ currentMatcher: currentMatcher,
460
+ rows: rows,
461
+ setActiveCellContent: setActiveCellContent,
462
+ updateData: updateData,
463
+ activeCellCoordinates: activeCellCoordinates
464
+ };
376
465
  handleCellDeletion.handleCellDeletion(deleteParams);
377
466
  break;
378
467
  }
@@ -390,22 +479,14 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
390
479
  }
391
480
  // HOME
392
481
  case 'Home':
393
- {
394
- if (handleMultipleKeys.includesResourceKey(keysPressedList, usingMac)) {
395
- return;
396
- }
397
- handleHomeEndKey({
398
- type: 'home'
399
- });
400
- break;
401
- }
402
482
  case 'End':
403
483
  {
484
+ event.preventDefault();
404
485
  if (handleMultipleKeys.includesResourceKey(keysPressedList, usingMac)) {
405
486
  return;
406
487
  }
407
488
  handleHomeEndKey({
408
- type: 'end'
489
+ type: key
409
490
  });
410
491
  break;
411
492
  }
@@ -429,122 +510,16 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
429
510
  setActiveCellCoordinates(null);
430
511
  break;
431
512
  }
432
- // Left
433
513
  case 'ArrowLeft':
434
- {
435
- handleInitialArrowPress();
436
- var coordinatesClone = _rollupPluginBabelHelpers.objectSpread2({}, activeCellCoordinates);
437
- if (coordinatesClone.column === 'header') {
438
- return;
439
- }
440
- if (typeof coordinatesClone.column === 'number') {
441
- if (coordinatesClone.column === 0) {
442
- updateActiveCellCoordinates({
443
- coords: coordinatesClone,
444
- updatedValue: {
445
- column: 'header'
446
- }
447
- });
448
- return;
449
- }
450
- updateActiveCellCoordinates({
451
- coords: coordinatesClone,
452
- updatedValue: {
453
- column: coordinatesClone.column - 1
454
- }
455
- });
456
- }
457
- break;
458
- }
459
- // Up
460
514
  case 'ArrowUp':
461
- {
462
- handleInitialArrowPress();
463
- var _coordinatesClone = _rollupPluginBabelHelpers.objectSpread2({}, activeCellCoordinates);
464
- if (_coordinatesClone.row === 'header') {
465
- return;
466
- }
467
- if (typeof _coordinatesClone.row === 'number') {
468
- // set row back to header if we are at index 0
469
- if (_coordinatesClone.row === 0) {
470
- updateActiveCellCoordinates({
471
- coords: _coordinatesClone,
472
- updatedValue: {
473
- row: 'header'
474
- }
475
- });
476
- return;
477
- }
478
- // if we are at any other index than 0, subtract 1 from current row index
479
- updateActiveCellCoordinates({
480
- coords: _coordinatesClone,
481
- updatedValue: {
482
- row: _coordinatesClone.row - 1
483
- }
484
- });
485
- }
486
- break;
487
- }
488
- // Right
489
515
  case 'ArrowRight':
490
- {
491
- handleInitialArrowPress();
492
- var _coordinatesClone2 = _rollupPluginBabelHelpers.objectSpread2({}, activeCellCoordinates);
493
- if (_coordinatesClone2.column === 'header') {
494
- updateActiveCellCoordinates({
495
- coords: _coordinatesClone2,
496
- updatedValue: {
497
- column: 0
498
- }
499
- });
500
- }
501
- if (typeof _coordinatesClone2.column === 'number') {
502
- // Prevent active cell coordinates from updating if the active
503
- // cell is in the last column, ie we can't go any further to the right
504
- if (columns.length - 1 === _coordinatesClone2.column) {
505
- return;
506
- }
507
- updateActiveCellCoordinates({
508
- coords: _coordinatesClone2,
509
- updatedValue: {
510
- column: _coordinatesClone2.column + 1
511
- }
512
- });
513
- }
514
- break;
515
- }
516
- // Down
517
516
  case 'ArrowDown':
518
517
  {
519
- handleInitialArrowPress();
520
- var _coordinatesClone3 = _rollupPluginBabelHelpers.objectSpread2({}, activeCellCoordinates);
521
- if (_coordinatesClone3.row === 'header') {
522
- updateActiveCellCoordinates({
523
- coords: _coordinatesClone3,
524
- updatedValue: {
525
- row: 0
526
- }
527
- });
528
- }
529
- if (typeof _coordinatesClone3.row === 'number') {
530
- // Prevent active cell coordinates from updating if the active
531
- // cell is in the last row, ie we can't go any further down since
532
- // we are in the last row
533
- if (rows.length - 1 === _coordinatesClone3.row) {
534
- return;
535
- }
536
- updateActiveCellCoordinates({
537
- coords: _coordinatesClone3,
538
- updatedValue: {
539
- row: _coordinatesClone3.row + 1
540
- }
541
- });
542
- }
543
- break;
518
+ handleArrowkeyPress(key);
544
519
  }
545
520
  }
546
521
  }
547
- }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac, updateData]);
522
+ }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac, updateData, checkforReturnConditon, handleArrowkeyPress]);
548
523
  var startEditMode = function startEditMode() {
549
524
  setIsEditing(true);
550
525
  setClickAndHoldActive(false);
@@ -162,7 +162,7 @@ var DatagridRow = function DatagridRow(datagridState) {
162
162
  return h.id === cell.column.id;
163
163
  });
164
164
  return /*#__PURE__*/React__default["default"].createElement(react.TableCell, _rollupPluginBabelHelpers["extends"]({
165
- className: cx__default["default"]("".concat(blockClass, "__cell"), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__expandable-row-cell"), row.canExpand && index === 0), "".concat(blockClass, "__slug--cell"), associatedHeader && associatedHeader.length && /*#__PURE__*/React.isValidElement((_associatedHeader$ = associatedHeader[0]) === null || _associatedHeader$ === void 0 ? void 0 : _associatedHeader$.slug)))
165
+ className: cx__default["default"]("".concat(blockClass, "__cell"), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.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__*/React.isValidElement((_associatedHeader$ = associatedHeader[0]) === null || _associatedHeader$ === void 0 ? void 0 : _associatedHeader$.slug)))
166
166
  }, restProps, {
167
167
  key: cell.column.id,
168
168
  title: title
@@ -411,9 +411,12 @@ var useFilters = function useFilters(_ref) {
411
411
  });
412
412
  return updatedFilters[0];
413
413
  };
414
- setFiltersObjectArray(savedFilters);
415
- var filterStateCopy = cleanFilters(filtersState);
416
- setFiltersState(filterStateCopy);
414
+ if (savedFilters && savedFilters.length) {
415
+ var _cleanFilters;
416
+ setFiltersObjectArray(savedFilters);
417
+ var filterStateCopy = (_cleanFilters = cleanFilters(filtersState)) !== null && _cleanFilters !== void 0 ? _cleanFilters : [];
418
+ setFiltersState(filterStateCopy);
419
+ }
417
420
  }
418
421
  if (!isFetching) {
419
422
  setFetchingReset(false);
@@ -21,7 +21,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
21
21
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
22
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
23
23
 
24
- var _excluded = ["align", "id", "itemText", "onClick", "icon", "shouldHideMenuItem"],
24
+ var _excluded = ["align", "id", "itemText", "onClick", "icon", "shouldHideMenuItem", "shouldDisableMenuItem", "disabled"],
25
25
  _excluded2 = ["id", "onClick", "shouldHideMenuItem", "shouldDisableMenuItem", "disabled"];
26
26
  var blockClass = "".concat(settings.pkg.prefix, "--datagrid");
27
27
  var useActionsColumn = function useActionsColumn(hooks) {
@@ -63,8 +63,11 @@ var useActionsColumn = function useActionsColumn(hooks) {
63
63
  _onClick = preparedActionProps.onClick,
64
64
  icon = preparedActionProps.icon,
65
65
  shouldHideMenuItem = preparedActionProps.shouldHideMenuItem,
66
+ shouldDisableMenuItem = preparedActionProps.shouldDisableMenuItem,
67
+ disabled = preparedActionProps.disabled,
66
68
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(preparedActionProps, _excluded);
67
69
  var hidden = typeof shouldHideMenuItem === 'function' && shouldHideMenuItem(row);
70
+ var isDisabledByRow = typeof shouldDisableMenuItem === 'function' ? shouldDisableMenuItem(row) : disabled;
68
71
  if (hidden) {
69
72
  return null;
70
73
  }
@@ -86,7 +89,8 @@ var useActionsColumn = function useActionsColumn(hooks) {
86
89
  }
87
90
  e.stopPropagation();
88
91
  _onClick(id, row, e);
89
- }
92
+ },
93
+ disabled: isDisabledByRow
90
94
  }), /*#__PURE__*/React__default["default"].createElement(Icon, null)));
91
95
  })), !isFetching && (rowActions.length > 2 || isColumnSticky) && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(react.OverflowMenu, {
92
96
  align: "left",
@@ -1,4 +1,25 @@
1
- export const blockClass: string;
2
- /** Toolbar buttons are common functions performed as part of a products interface or an open window. */
3
- export let ToolbarButton: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
1
+ /**
2
+ * Copyright IBM Corp. 2021, 2024
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
+ /// <reference path="../../../src/custom-typings/index.d.ts" />
8
+ import { IconButton } from '@carbon/react';
4
9
  import React from 'react';
10
+ export declare const blockClass: string;
11
+ interface ToolbarButtonProps extends React.ComponentProps<typeof IconButton> {
12
+ /** Determines whether the caret is rendered */
13
+ caret?: boolean;
14
+ /** Provide an optional class to be applied to the containing node */
15
+ className?: string;
16
+ /** Specifies the label for the icon button */
17
+ iconDescription: string;
18
+ /** Specifies the icon to be used by the ToolbarButton component */
19
+ renderIcon: React.ElementType;
20
+ }
21
+ /** Toolbar buttons are common functions performed as part of a products interface or an open window. */
22
+ export declare let ToolbarButton: React.ForwardRefExoticComponent<ToolbarButtonProps & {
23
+ children?: React.ReactNode;
24
+ } & React.RefAttributes<unknown>>;
25
+ export {};
@@ -24,11 +24,11 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
24
 
25
25
  var _excluded = ["caret", "children", "className", "renderIcon", "iconDescription"];
26
26
  var blockClass = "".concat(Toolbar.blockClass, "__button");
27
-
28
27
  /** Toolbar buttons are common functions performed as part of a products interface or an open window. */
29
28
  exports.ToolbarButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
30
29
  var _useContext;
31
- var caret = _ref.caret,
30
+ var _ref$caret = _ref.caret,
31
+ caret = _ref$caret === void 0 ? false : _ref$caret,
32
32
  children = _ref.children,
33
33
  className = _ref.className,
34
34
  renderIcon = _ref.renderIcon,
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": "2.29.0",
4
+ "version": "2.30.0-alpha.9+c0cf58a1e",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -90,7 +90,7 @@
90
90
  },
91
91
  "dependencies": {
92
92
  "@babel/runtime": "^7.23.9",
93
- "@carbon/ibm-products-styles": "^2.28.0",
93
+ "@carbon/ibm-products-styles": "^2.29.0-alpha.9+c0cf58a1e",
94
94
  "@carbon/telemetry": "^0.1.0",
95
95
  "@dnd-kit/core": "^6.0.8",
96
96
  "@dnd-kit/sortable": "^8.0.0",
@@ -107,11 +107,11 @@
107
107
  "@carbon/grid": "^11.21.1",
108
108
  "@carbon/layout": "^11.20.1",
109
109
  "@carbon/motion": "^11.16.1",
110
- "@carbon/react": "^1.51.0",
110
+ "@carbon/react": "^1.51.1",
111
111
  "@carbon/themes": "^11.32.0",
112
112
  "@carbon/type": "^11.25.1",
113
113
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0",
114
114
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
115
115
  },
116
- "gitHead": "b42dcb92fc964b2cbc0f93891937da118da01f60"
116
+ "gitHead": "c0cf58a1e78a4ee8f66b551d39b5705fecd4674e"
117
117
  }
@@ -41,9 +41,14 @@ $block-class: #{c4p-settings.$pkg-prefix}--about-modal;
41
41
 
42
42
  overflow: hidden auto;
43
43
  min-height: $spacing-10;
44
- padding: 0 20% 0 $spacing-05;
45
- margin-bottom: $spacing-06;
46
44
  grid-row: auto;
45
+ padding-block-start: 0;
46
+ padding-inline: $spacing-05 20%;
47
+
48
+ &:not(.#{c4p-settings.$carbon-prefix}--modal-scroll-content) {
49
+ margin-bottom: $spacing-06;
50
+ padding-block-end: 0;
51
+ }
47
52
  }
48
53
 
49
54
  .#{$block-class}
@@ -69,6 +69,7 @@
69
69
  .#{variables.$block-class}
70
70
  .#{variables.$block-class}__expandable-row--hover
71
71
  td {
72
+ border-top: none;
72
73
  background: $layer-hover;
73
74
  }
74
75
 
@@ -87,6 +88,13 @@
87
88
  border: none;
88
89
  }
89
90
 
91
+ .#{variables.$block-class}
92
+ .#{c4p-settings.$carbon-prefix}--data-table
93
+ .#{variables.$block-class}__carbon-row-expanded:hover
94
+ td:not(.#{variables.$block-class}__expandable-row-cell) {
95
+ border-bottom: 1px solid $border-subtle-02;
96
+ }
97
+
90
98
  .#{variables.$block-class}
91
99
  .#{c4p-settings.$carbon-prefix}--data-table
92
100
  td.#{variables.$block-class}__expanded-row-cell-wrapper {
@@ -64,6 +64,60 @@
64
64
  padding-left: $spacing-03;
65
65
  }
66
66
 
67
+ .#{c4p-settings.$carbon-prefix}--data-table
68
+ td.#{$block-class}__expandable-row-cell
69
+ + td,
70
+ .#{c4p-settings.$carbon-prefix}--data-table
71
+ .#{$block-class}__carbon-nested-row:not(
72
+ .#{$block-class}__carbon-row-expandable
73
+ )
74
+ td.#{$block-class}__cell:nth-of-type(2) {
75
+ position: relative;
76
+ }
77
+
78
+ .#{c4p-settings.$carbon-prefix}--data-table
79
+ td.#{$block-class}__expandable-row-cell.#{$block-class}__expandable-row-cell--is-expanded
80
+ + td::before,
81
+ .#{c4p-settings.$carbon-prefix}--data-table
82
+ .#{$block-class}__carbon-nested-row:not(
83
+ .#{$block-class}__carbon-row-expandable
84
+ )
85
+ td.#{$block-class}__cell:nth-of-type(2)::before,
86
+ .#{c4p-settings.$carbon-prefix}--data-table
87
+ .#{$block-class}__carbon-nested-row
88
+ td.#{$block-class}__expandable-row-cell
89
+ + td::before {
90
+ position: absolute;
91
+ /* stylelint-disable-next-line carbon/layout-token-use */
92
+ bottom: -1px;
93
+ left: 0;
94
+ width: 1rem;
95
+ height: 1px;
96
+ background-color: $layer-01;
97
+ content: '';
98
+ transition: background-color $duration-fast-01 motion(entrance, productive);
99
+ }
100
+
101
+ .#{c4p-settings.$carbon-prefix}--data-table
102
+ tr:hover
103
+ td.#{$block-class}__expandable-row-cell.#{$block-class}__expandable-row-cell--is-expanded
104
+ + td::before,
105
+ .#{c4p-settings.$carbon-prefix}--data-table
106
+ .#{$block-class}__carbon-nested-row:hover
107
+ td.#{$block-class}__expandable-row-cell
108
+ + td::before,
109
+ .#{c4p-settings.$carbon-prefix}--data-table
110
+ .#{$block-class}__expandable-row--hover
111
+ td.#{$block-class}__expandable-row-cell
112
+ + td::before,
113
+ .#{c4p-settings.$carbon-prefix}--data-table
114
+ .#{$block-class}__carbon-nested-row:hover:not(
115
+ .#{$block-class}__carbon-row-expandable
116
+ )
117
+ td.#{$block-class}__cell:nth-of-type(2)::before {
118
+ background-color: $layer-hover;
119
+ }
120
+
67
121
  .#{$block-class}__carbon-row-expanded {
68
122
  .#{$block-class}__expandable-row-cell {
69
123
  border-bottom: none;
@@ -41,7 +41,7 @@
41
41
  position: relative;
42
42
  z-index: 0;
43
43
  overflow: auto;
44
- padding: 0 $spacing-05;
44
+ padding: 0 $spacing-05 $spacing-10 $spacing-05;
45
45
  overscroll-behavior: contain;
46
46
  }
47
47
 
@@ -146,6 +146,7 @@ $block-class-modal: #{$_block-class}-modal;
146
146
 
147
147
  .#{$block-class-overflow}__show-all-tags-link {
148
148
  margin-top: $spacing-03;
149
+ color: $link-inverse;
149
150
  }
150
151
 
151
152
  .#{$block-class-overflow}__tag-item.#{$block-class-overflow}__tag-item--tag