@carbon/ibm-products 1.59.1 → 1.61.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. package/css/index-full-carbon.css +99 -45
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -4
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +9 -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 +89 -30
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +2 -2
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +89 -45
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +3 -3
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/Datagrid/Datagrid/Datagrid.js +2 -1
  18. package/es/components/Datagrid/Datagrid/DatagridContent.js +10 -2
  19. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +4 -4
  20. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +2 -2
  21. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +13 -1
  22. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +3 -15
  23. package/es/components/Datagrid/Datagrid/DraggableElement.js +32 -135
  24. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +14 -38
  25. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -0
  26. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +134 -45
  27. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +7 -6
  28. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +104 -18
  29. package/es/components/Datagrid/Datagrid/addons/Filtering/constants.js +1 -0
  30. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +37 -4
  31. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +6 -12
  32. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +0 -5
  33. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -5
  34. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +4 -3
  35. package/es/components/Datagrid/useFiltering.js +4 -1
  36. package/es/components/Datagrid/useInlineEdit.js +1 -6
  37. package/es/components/Datagrid/useNestedRowExpander.js +22 -9
  38. package/es/components/Datagrid/useRowExpander.js +22 -9
  39. package/es/components/Datagrid/useSortableColumns.js +5 -4
  40. package/es/components/Datagrid/utils/getArgTypes.js +12 -0
  41. package/es/components/EmptyStates/EmptyState.js +1 -1
  42. package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -1
  43. package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -1
  44. package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -1
  45. package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -1
  46. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -1
  47. package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -1
  48. package/es/components/EmptyStates/assets/ErrorIllustration.js +6 -11
  49. package/es/components/EmptyStates/assets/NoDataIllustration.js +6 -11
  50. package/es/components/EmptyStates/assets/NoTagsIllustration.js +6 -12
  51. package/es/components/EmptyStates/assets/NotFoundIllustration.js +6 -12
  52. package/es/components/EmptyStates/assets/NotificationsIllustration.js +6 -12
  53. package/es/components/EmptyStates/assets/UnauthorizedIllustration.js +6 -12
  54. package/es/components/FilterSummary/FilterSummary.js +15 -5
  55. package/es/components/TagSet/TagSet.js +14 -10
  56. package/es/components/TagSet/TagSetOverflow.js +16 -5
  57. package/es/global/js/hooks/useWindowScroll.js +5 -0
  58. package/es/global/js/utils/getNodeTextContent.js +51 -0
  59. package/lib/components/Datagrid/Datagrid/Datagrid.js +2 -1
  60. package/lib/components/Datagrid/Datagrid/DatagridContent.js +9 -1
  61. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +3 -3
  62. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +2 -2
  63. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +13 -1
  64. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +3 -15
  65. package/lib/components/Datagrid/Datagrid/DraggableElement.js +34 -140
  66. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +17 -38
  67. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -0
  68. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +134 -52
  69. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +7 -6
  70. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +104 -24
  71. package/lib/components/Datagrid/Datagrid/addons/Filtering/constants.js +4 -2
  72. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +36 -3
  73. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +6 -12
  74. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +0 -5
  75. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +15 -3
  76. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +7 -3
  77. package/lib/components/Datagrid/useFiltering.js +4 -1
  78. package/lib/components/Datagrid/useInlineEdit.js +1 -6
  79. package/lib/components/Datagrid/useNestedRowExpander.js +24 -9
  80. package/lib/components/Datagrid/useRowExpander.js +24 -9
  81. package/lib/components/Datagrid/useSortableColumns.js +5 -4
  82. package/lib/components/Datagrid/utils/getArgTypes.js +12 -0
  83. package/lib/components/EmptyStates/EmptyState.js +1 -1
  84. package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -1
  85. package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -1
  86. package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -1
  87. package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -1
  88. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -1
  89. package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -1
  90. package/lib/components/EmptyStates/assets/ErrorIllustration.js +6 -11
  91. package/lib/components/EmptyStates/assets/NoDataIllustration.js +6 -11
  92. package/lib/components/EmptyStates/assets/NoTagsIllustration.js +6 -12
  93. package/lib/components/EmptyStates/assets/NotFoundIllustration.js +6 -12
  94. package/lib/components/EmptyStates/assets/NotificationsIllustration.js +6 -12
  95. package/lib/components/EmptyStates/assets/UnauthorizedIllustration.js +6 -12
  96. package/lib/components/FilterSummary/FilterSummary.js +15 -12
  97. package/lib/components/TagSet/TagSet.js +13 -9
  98. package/lib/components/TagSet/TagSetOverflow.js +16 -5
  99. package/lib/global/js/hooks/useWindowScroll.js +6 -0
  100. package/lib/global/js/utils/getNodeTextContent.js +59 -0
  101. package/package.json +8 -7
  102. package/scss/components/Datagrid/_datagrid.scss +2 -1
  103. package/scss/components/Datagrid/styles/_draggableElement.scss +44 -20
  104. package/scss/components/Datagrid/styles/_useInlineEdit.scss +7 -11
  105. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsTearsheet.scss +0 -1
  106. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +42 -1
  107. package/scss/components/TagSet/_tag-set.scss +13 -3
  108. package/es/components/Datagrid/utils/getColTitle.js +0 -25
  109. package/lib/components/Datagrid/utils/getColTitle.js +0 -32
@@ -11,7 +11,6 @@
11
11
  display: flex;
12
12
  align-items: center;
13
13
  margin-right: $spacing-03;
14
- cursor: grab;
15
14
  }
16
15
 
17
16
  .#{$block-class}__draggable-handleStyle.disabled {
@@ -22,32 +21,56 @@
22
21
  fill: $disabled-03;
23
22
  }
24
23
 
24
+ .#{$block-class}__draggable-underlay {
25
+ position: absolute;
26
+ width: 100%;
27
+ }
28
+
29
+ .#{$block-class}__draggable-underlay-item {
30
+ // must match draggable item size
31
+ width: 100%;
32
+ height: $spacing-09;
33
+ border: 2px dashed $focus;
34
+ /* stylelint-disable-next-line carbon/theme-token-use */
35
+ background-color: $blue-10; // not good in dark mode
36
+ }
37
+
25
38
  .#{$block-class}__draggable-handleHolder {
39
+ position: relative;
26
40
  display: flex;
27
41
  height: $spacing-09;
28
- border-bottom: 1px solid $layer-active;
29
- background-color: $layer;
42
+ border-bottom: 1px solid $active-ui;
43
+ background-color: $ui-01;
44
+ cursor: grab;
30
45
  }
31
46
 
32
47
  .#{$block-class}__draggable-handleHolder:hover {
33
- background-color: $layer-hover;
48
+ background-color: $hover-ui;
34
49
  }
35
50
 
36
- .#{$block-class}__draggable-handleHolder-selected {
37
- display: flex;
38
- height: $spacing-09;
39
- border-bottom: 1px solid $layer-active;
40
- background-color: $layer-selected;
51
+ .#{$block-class}__draggable-handleHolder:focus {
52
+ box-shadow: inset 0 0 0 1px $focus;
53
+ outline: none;
41
54
  }
42
55
 
43
- .#{$block-class}__draggable-handleHolder-selected:hover {
44
- background-color: $hover-selected-ui;
56
+ .#{$block-class}__draggable-handleHolder--selected {
57
+ background-color: $selected-ui;
45
58
  }
46
59
 
47
- .#{$block-class}__draggable-handleHolder-isOver {
48
- border: 2px dashed $focus;
49
- /* stylelint-disable-next-line carbon/theme-token-use */
50
- background-color: $blue-10;
60
+ .#{$block-class}__draggable-handleHolder--dragging {
61
+ z-index: 2; // raise above other items in draggable list
62
+ background-color: $highlight;
63
+ color: $text-01;
64
+ outline: none;
65
+ }
66
+
67
+ .#{$block-class}__draggable-handleHolder:active,
68
+ .#{$block-class}__draggable-handleHolder--dragging {
69
+ cursor: grabbing;
70
+ }
71
+
72
+ .#{$block-class}__draggable-handleHolder-selected:hover {
73
+ background-color: $hover-selected-ui;
51
74
  }
52
75
 
53
76
  .#{$block-class}__draggable-handleHolder-droppable {
@@ -65,11 +88,6 @@
65
88
  transition: opacity $duration--moderate-01 motion(entrance, productive);
66
89
  }
67
90
 
68
- .#{$block-class}__draggable-handleHolder-grabbed {
69
- background-color: $highlight;
70
- color: $text-01;
71
- }
72
-
73
91
  .#{$block-class}__draggable-handleHolder--sticky {
74
92
  color: $disabled-03;
75
93
  }
@@ -86,3 +104,9 @@
86
104
  text-transform: none;
87
105
  white-space: nowrap;
88
106
  }
107
+
108
+ .#{$block-class}__draggable-item
109
+ .#{$carbon-prefix}--form-item.#{$carbon-prefix}--checkbox-wrapper {
110
+ max-width: $spacing-06;
111
+ margin-bottom: 0;
112
+ }
@@ -108,18 +108,14 @@ $row-heights: (
108
108
  justify-content: flex-start;
109
109
  }
110
110
  // Always show renderIcon if inline edit columns are less than half of total columns
111
- &:not(
112
- .#{$block-class}__inline-edit-button--edit-less-than-half-of-total-cols
113
- ) {
114
- .#{$block-class}__inline-edit-button-icon {
115
- display: none;
116
- }
111
+ .#{$block-class}__inline-edit-button-icon {
112
+ display: none;
113
+ }
117
114
 
118
- /* stylelint-disable-next-line */
119
- &:hover {
120
- .#{$block-class}__inline-edit-button-icon {
121
- display: block;
122
- }
115
+ &:hover,
116
+ &.#{$block-class}__inline-edit-button--active {
117
+ .#{$block-class}__inline-edit-button-icon {
118
+ display: block;
123
119
  }
124
120
  }
125
121
  }
@@ -23,7 +23,6 @@
23
23
  .#{$block-class}__customize-columns-checkbox-wrapper {
24
24
  display: flex;
25
25
  justify-content: center;
26
- padding-left: $spacing-02;
27
26
  }
28
27
 
29
28
  .#{$block-class}__customize-columns-column-list
@@ -22,7 +22,48 @@
22
22
  }
23
23
 
24
24
  .#{$carbon-prefix}--btn--ghost.#{$block-class}__row-size-button--open {
25
- background-color: $ui-background;
25
+ background-color: $ui-02;
26
26
 
27
27
  box-shadow: 1px 4px 8px -3px $overlay-01, -1px 6px 8px -5px $overlay-01;
28
28
  }
29
+
30
+ // Top align cell content for xl row size
31
+ .#{$block-class}
32
+ table.#{$carbon-prefix}--data-table--xl.#{$block-class}__vertical-align-center
33
+ td,
34
+ .#{$block-class}
35
+ table.#{$carbon-prefix}--data-table--xl.#{$block-class}__vertical-align-top
36
+ td {
37
+ align-items: flex-start;
38
+ padding-top: $spacing-05;
39
+ padding-bottom: $spacing-05;
40
+
41
+ &.#{$block-class}__actions-column-cell {
42
+ padding-left: $spacing-03;
43
+ }
44
+ }
45
+
46
+ // Top align header content for xl row size
47
+ .#{$block-class}
48
+ table.#{$carbon-prefix}--data-table--xl.#{$block-class}__vertical-align-center
49
+ th,
50
+ .#{$block-class}
51
+ table.#{$carbon-prefix}--data-table--xl.#{$block-class}__vertical-align-top
52
+ th {
53
+ .#{$carbon-prefix}--table-header-label {
54
+ align-items: flex-start;
55
+ }
56
+ }
57
+
58
+ // Top align checkbox row header for xl row size
59
+ .#{$block-class}
60
+ table.#{$carbon-prefix}--data-table--xl.#{$block-class}__vertical-align-center
61
+ .#{$block-class}__checkbox-cell
62
+ th.#{$carbon-prefix}--table-column-checkbox {
63
+ align-items: flex-start;
64
+ padding-top: $spacing-04;
65
+ }
66
+
67
+ .#{$block-class}__row-size__row-settings-trigger--open.#{$carbon-prefix}--btn--ghost {
68
+ background-color: $ui-02;
69
+ }
@@ -70,7 +70,7 @@ $block-class-modal: #{$block-class}-modal;
70
70
  }
71
71
 
72
72
  .#{$block-class-overflow}__tooltip
73
- .#{$block-class-overflow}__tag-item
73
+ .#{$block-class-overflow}__tag-item--default
74
74
  .#{$carbon-prefix}--tag {
75
75
  border-radius: 0;
76
76
  }
@@ -127,13 +127,23 @@ $block-class-modal: #{$block-class}-modal;
127
127
  text-align: left;
128
128
  }
129
129
 
130
+ &.#{$carbon-prefix}--tooltip button {
131
+ padding-right: 0;
132
+ }
133
+
130
134
  .#{$block-class-overflow}__show-all-tags-link {
131
135
  display: inline-block;
132
136
  margin: $spacing-03 0 $spacing-02; // to match the tags
133
137
  }
134
138
 
135
- .#{$block-class-overflow}__tag-item,
136
- .#{$block-class-overflow}__tag-item .#{$carbon-prefix}--tag {
139
+ .#{$block-class-overflow}__tag-item.#{$block-class-overflow}__tag-item--tag
140
+ .#{$carbon-prefix}--tag {
141
+ background-color: $inverse-hover-ui;
142
+ }
143
+
144
+ .#{$block-class-overflow}__tag-item.#{$block-class-overflow}__tag-item--default,
145
+ .#{$block-class-overflow}__tag-item.#{$block-class-overflow}__tag-item--default
146
+ .#{$carbon-prefix}--tag {
137
147
  @include carbon--type-style('body-short-01');
138
148
 
139
149
  display: block;
@@ -1,25 +0,0 @@
1
- // This function recursively looks for the nested header element until we can find the key which contains the title.
2
- // This can happen if multiple hooks are used together that manipulate the rendering of the column
3
- // header, such as `useColumnCenterAlign` and `useSortableColumns`.
4
- var getNestedTitle = function getNestedTitle(component) {
5
- if (component && !component.key) {
6
- return getNestedTitle(component.children);
7
- }
8
- if (component && component.key && typeof component.key === 'string') {
9
- return component.key;
10
- }
11
- };
12
- var getColTitle = function getColTitle(col) {
13
- var _col$Header, _col$Header$props;
14
- if (!col) {
15
- return;
16
- }
17
- var checkTitle = function checkTitle() {
18
- if (col.Header().props.children.props && col.Header().props.children.props.title) {
19
- return col.Header().props.children.props.title;
20
- }
21
- return getNestedTitle(col.Header().props.children.props);
22
- };
23
- return typeof (col === null || col === void 0 ? void 0 : col.Header) === 'function' ? checkTitle() : col === null || col === void 0 ? void 0 : (_col$Header = col.Header) === null || _col$Header === void 0 ? void 0 : (_col$Header$props = _col$Header.props) === null || _col$Header$props === void 0 ? void 0 : _col$Header$props.title;
24
- };
25
- export default getColTitle;
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- // This function recursively looks for the nested header element until we can find the key which contains the title.
8
- // This can happen if multiple hooks are used together that manipulate the rendering of the column
9
- // header, such as `useColumnCenterAlign` and `useSortableColumns`.
10
- var getNestedTitle = function getNestedTitle(component) {
11
- if (component && !component.key) {
12
- return getNestedTitle(component.children);
13
- }
14
- if (component && component.key && typeof component.key === 'string') {
15
- return component.key;
16
- }
17
- };
18
- var getColTitle = function getColTitle(col) {
19
- var _col$Header, _col$Header$props;
20
- if (!col) {
21
- return;
22
- }
23
- var checkTitle = function checkTitle() {
24
- if (col.Header().props.children.props && col.Header().props.children.props.title) {
25
- return col.Header().props.children.props.title;
26
- }
27
- return getNestedTitle(col.Header().props.children.props);
28
- };
29
- return typeof (col === null || col === void 0 ? void 0 : col.Header) === 'function' ? checkTitle() : col === null || col === void 0 ? void 0 : (_col$Header = col.Header) === null || _col$Header === void 0 ? void 0 : (_col$Header$props = _col$Header.props) === null || _col$Header$props === void 0 ? void 0 : _col$Header$props.title;
30
- };
31
- var _default = getColTitle;
32
- exports.default = _default;