@carbon/ibm-products 1.15.0 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. package/README.md +30 -27
  2. package/css/components/Datagrid/styles/datagrid.css +4 -0
  3. package/css/components/Datagrid/styles/datagrid.css.map +1 -1
  4. package/css/components/Datagrid/styles/index.css +5 -1
  5. package/css/components/Datagrid/styles/index.css.map +1 -1
  6. package/css/components/Datagrid/styles/useNestedRows.css +1 -1
  7. package/css/index-full-carbon.css +195 -88
  8. package/css/index-full-carbon.css.map +1 -1
  9. package/css/index-full-carbon.min.css +7 -4
  10. package/css/index-full-carbon.min.css.map +1 -1
  11. package/css/index-without-carbon-released-only.css +9 -3
  12. package/css/index-without-carbon-released-only.css.map +1 -1
  13. package/css/index-without-carbon-released-only.min.css +4 -1
  14. package/css/index-without-carbon-released-only.min.css.map +1 -1
  15. package/css/index-without-carbon.css +78 -22
  16. package/css/index-without-carbon.css.map +1 -1
  17. package/css/index-without-carbon.min.css +6 -3
  18. package/css/index-without-carbon.min.css.map +1 -1
  19. package/css/index.css +104 -53
  20. package/css/index.css.map +1 -1
  21. package/css/index.min.css +7 -4
  22. package/css/index.min.css.map +1 -1
  23. package/es/components/AddSelect/AddSelect.js +39 -10
  24. package/es/components/AddSelect/AddSelectColumn.js +31 -73
  25. package/es/components/AddSelect/AddSelectFilter.js +48 -5
  26. package/es/components/AddSelect/AddSelectSort.js +61 -0
  27. package/es/components/AddSelect/add-select-utils.js +21 -0
  28. package/es/components/AddSelect/hooks/useItemSort.js +20 -0
  29. package/es/components/DataSpreadsheet/DataSpreadsheet.js +38 -15
  30. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +93 -46
  31. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +82 -6
  32. package/es/components/DataSpreadsheet/hooks/index.js +3 -1
  33. package/es/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +65 -19
  34. package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +60 -0
  35. package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +153 -0
  36. package/es/components/DataSpreadsheet/utils/checkSelectedHeaderCell.js +16 -0
  37. package/es/components/DataSpreadsheet/utils/createCellSelectionArea.js +11 -6
  38. package/es/components/DataSpreadsheet/utils/generateData.js +17 -9
  39. package/es/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +30 -0
  40. package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +6 -2
  41. package/es/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +34 -0
  42. package/es/components/Datagrid/Datagrid/Datagrid.js +24 -12
  43. package/es/components/Datagrid/Datagrid/DatagridHead.js +8 -16
  44. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +10 -10
  45. package/es/components/Datagrid/Datagrid/DatagridRow.js +12 -2
  46. package/es/components/Datagrid/Datagrid/index.js +6 -7
  47. package/es/components/Datagrid/index.js +1 -1
  48. package/es/components/Datagrid/useNestedRows.js +3 -3
  49. package/es/components/Datagrid/useRowExpander.js +1 -1
  50. package/es/components/ExportModal/ExportModal.js +10 -5
  51. package/es/components/SidePanel/SidePanel.js +5 -1
  52. package/es/components/WebTerminal/WebTerminal.js +36 -11
  53. package/es/components/WebTerminal/WebTerminalContentWrapper.js +49 -0
  54. package/es/components/WebTerminal/index.js +2 -1
  55. package/es/components/index.js +1 -1
  56. package/es/global/js/package-settings.js +1 -0
  57. package/lib/components/AddSelect/AddSelect.js +40 -10
  58. package/lib/components/AddSelect/AddSelectColumn.js +32 -71
  59. package/lib/components/AddSelect/AddSelectFilter.js +47 -4
  60. package/lib/components/AddSelect/AddSelectSort.js +79 -0
  61. package/lib/components/AddSelect/add-select-utils.js +29 -2
  62. package/lib/components/AddSelect/hooks/useItemSort.js +33 -0
  63. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +37 -14
  64. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +96 -45
  65. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +85 -6
  66. package/lib/components/DataSpreadsheet/hooks/index.js +17 -1
  67. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +68 -18
  68. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +74 -0
  69. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +161 -0
  70. package/lib/components/DataSpreadsheet/utils/checkSelectedHeaderCell.js +26 -0
  71. package/lib/components/DataSpreadsheet/utils/createCellSelectionArea.js +11 -6
  72. package/lib/components/DataSpreadsheet/utils/generateData.js +17 -9
  73. package/lib/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +40 -0
  74. package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +6 -2
  75. package/lib/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +45 -0
  76. package/lib/components/Datagrid/Datagrid/Datagrid.js +25 -8
  77. package/lib/components/Datagrid/Datagrid/DatagridHead.js +8 -16
  78. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +10 -10
  79. package/lib/components/Datagrid/Datagrid/DatagridRow.js +14 -2
  80. package/lib/components/Datagrid/Datagrid/index.js +3 -5
  81. package/lib/components/Datagrid/index.js +2 -2
  82. package/lib/components/Datagrid/useNestedRows.js +3 -3
  83. package/lib/components/Datagrid/useRowExpander.js +1 -1
  84. package/lib/components/ExportModal/ExportModal.js +9 -4
  85. package/lib/components/SidePanel/SidePanel.js +5 -1
  86. package/lib/components/WebTerminal/WebTerminal.js +36 -10
  87. package/lib/components/WebTerminal/WebTerminalContentWrapper.js +58 -0
  88. package/lib/components/WebTerminal/index.js +9 -1
  89. package/lib/components/index.js +6 -0
  90. package/lib/global/js/package-settings.js +1 -0
  91. package/package.json +14 -13
  92. package/scss/components/AddSelect/_add-select.scss +15 -2
  93. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +38 -14
  94. package/scss/components/Datagrid/styles/datagrid.scss +8 -0
  95. package/scss/components/Datagrid/styles/useNestedRows.scss +1 -1
  96. package/scss/components/SidePanel/_side-panel.scss +22 -3
  97. package/scss/components/WebTerminal/_storybook-styles.scss +5 -0
  98. package/scss/components/WebTerminal/_web-terminal.scss +14 -4
@@ -9,5 +9,13 @@ Object.defineProperty(exports, "WebTerminal", {
9
9
  return _WebTerminal.WebTerminal;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "WebTerminalContentWrapper", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _WebTerminalContentWrapper.WebTerminalContentWrapper;
16
+ }
17
+ });
18
+
19
+ var _WebTerminal = require("./WebTerminal");
12
20
 
13
- var _WebTerminal = require("./WebTerminal");
21
+ var _WebTerminalContentWrapper = require("./WebTerminalContentWrapper");
@@ -297,6 +297,12 @@ Object.defineProperty(exports, "WebTerminal", {
297
297
  return _WebTerminal.WebTerminal;
298
298
  }
299
299
  });
300
+ Object.defineProperty(exports, "WebTerminalContentWrapper", {
301
+ enumerable: true,
302
+ get: function get() {
303
+ return _WebTerminal.WebTerminalContentWrapper;
304
+ }
305
+ });
300
306
 
301
307
  var _AboutModal = require("./AboutModal");
302
308
 
@@ -64,6 +64,7 @@ var defaults = {
64
64
  ToolbarButton: false,
65
65
  ToolbarGroup: false,
66
66
  WebTerminal: false,
67
+ WebTerminalContentWrapper: false,
67
68
  EditSidePanel: false,
68
69
  CancelableTextEdit: false,
69
70
  InlineEdit: false,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "1.15.0",
4
+ "version": "1.18.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -50,22 +50,23 @@
50
50
  "upgrade-dependencies": "npm-check-updates -u --dep dev,peer,prod --color --reject '/(carbon|^react$|^react-dom$|^chalk$|^react-dnd|^namor)/'"
51
51
  },
52
52
  "devDependencies": {
53
- "@babel/cli": "^7.17.6",
54
- "@babel/core": "^7.17.9",
55
- "babel-preset-ibm-cloud-cognitive": "^0.14.13",
53
+ "@babel/cli": "^7.17.10",
54
+ "@babel/core": "^7.17.10",
55
+ "babel-preset-ibm-cloud-cognitive": "^0.14.15",
56
56
  "chalk": "^4.1.2",
57
57
  "change-case": "^4.1.2",
58
58
  "copyfiles": "^2.4.1",
59
59
  "cross-env": "^7.0.3",
60
- "fs-extra": "^10.0.1",
60
+ "fs-extra": "^10.1.0",
61
61
  "glob": "^8.0.1",
62
- "jest": "^27.5.1",
63
- "jest-config-ibm-cloud-cognitive": "^0.23.15",
62
+ "jest": "^28.0.3",
63
+ "jest-config-ibm-cloud-cognitive": "^0.23.18",
64
+ "jest-environment-jsdom": "^28.1.0",
64
65
  "namor": "^1.1.2",
65
- "npm-check-updates": "^12.5.9",
66
+ "npm-check-updates": "^12.5.11",
66
67
  "npm-run-all": "^4.1.5",
67
68
  "rimraf": "^3.0.2",
68
- "sass": "^1.50.0",
69
+ "sass": "^1.51.0",
69
70
  "yargs": "^17.4.1"
70
71
  },
71
72
  "dependencies": {
@@ -76,7 +77,7 @@
76
77
  "react-dnd-html5-backend": "^15.1.3",
77
78
  "react-resize-detector": "^7.0.0",
78
79
  "react-table": "^7.7.0",
79
- "react-window": "^1.8.6"
80
+ "react-window": "^1.8.7"
80
81
  },
81
82
  "peerDependencies": {
82
83
  "@carbon/colors": "^10.37.1",
@@ -86,11 +87,11 @@
86
87
  "@carbon/motion": "^10.29.0",
87
88
  "@carbon/themes": "^10.54.0",
88
89
  "@carbon/type": "^10.44.0",
89
- "carbon-components": "^10.56.0",
90
- "carbon-components-react": "^7.56.0",
90
+ "carbon-components": "^10.57.1",
91
+ "carbon-components-react": "^7.57.1",
91
92
  "carbon-icons": "^7.0.7",
92
93
  "react": "^16.8.6 || ^17.0.1",
93
94
  "react-dom": "^16.8.6 || ^17.0.1"
94
95
  },
95
- "gitHead": "202e15e26448cefc31d5ea1796b4d4b8b126a246"
96
+ "gitHead": "6bf1f85853417a8b5142207318b12290254201bf"
96
97
  }
@@ -100,6 +100,12 @@
100
100
  }
101
101
  }
102
102
 
103
+ .#{$block-class}__sub-header {
104
+ display: flex;
105
+ align-items: end;
106
+ justify-content: space-between;
107
+ }
108
+
103
109
  // sidebar
104
110
 
105
111
  .#{$block-class}__sidebar-header {
@@ -228,6 +234,13 @@
228
234
  grid-gap: $spacing-05 2rem;
229
235
  grid-template-columns: repeat(2, 1fr);
230
236
  }
237
+
238
+ &-applied {
239
+ display: flex;
240
+ align-items: center;
241
+ padding: $spacing-03;
242
+ background: $ui-01;
243
+ }
231
244
  }
232
245
 
233
246
  .#{$block-class}__global-filter-button-set
@@ -248,7 +261,7 @@
248
261
  }
249
262
 
250
263
  // the influencer sidebar needs to be even with the buttons
251
- .#{$block-class} .#{$tearsheet-class} .#{$tearsheet-class}__influencer {
264
+ .#{$block-class} .#{$tearsheet-class}__influencer {
252
265
  max-width: 29rem;
253
266
  flex: 0 0 50%;
254
267
  }
@@ -257,7 +270,7 @@
257
270
  color: $text-02;
258
271
  }
259
272
 
260
- .#{$block-class} .#{$tearsheet-class} .#{$tearsheet-class}__content {
273
+ .#{$block-class} .#{$tearsheet-class}__content {
261
274
  display: flex;
262
275
  flex-direction: column;
263
276
  }
@@ -81,7 +81,13 @@
81
81
  }
82
82
  }
83
83
  .#{$block-class}__th--select-all {
84
- min-width: calc(#{$spacing-10} - #{$spacing-02});
84
+ width: $spacing-10;
85
+ }
86
+ .#{$block-class}__td-th--cell-container,
87
+ .#{$block-class}__select-all-cell-container {
88
+ position: sticky;
89
+ z-index: 4;
90
+ left: 0;
85
91
  }
86
92
  .#{$block-class}__td-th.#{$block-class}__td {
87
93
  @include carbon--font-weight('semibold');
@@ -165,6 +171,7 @@
165
171
 
166
172
  &[data-active-row-index='header'],
167
173
  &[data-active-column-index='header'] {
174
+ z-index: 4;
168
175
  background-color: transparent;
169
176
  }
170
177
 
@@ -173,19 +180,6 @@
173
180
  outline: 0;
174
181
  }
175
182
  }
176
- .#{$block-class}__active-cell--highlight.#{$block-class}__active-cell--with-selection {
177
- &::before {
178
- position: absolute;
179
- top: 0;
180
- left: 0;
181
- display: block;
182
- width: 100%;
183
- height: 100%;
184
- background-color: $interactive-01;
185
- content: '';
186
- opacity: 0.25;
187
- }
188
- }
189
183
  .#{$block-class}__selection-area--element {
190
184
  position: absolute;
191
185
  z-index: 2;
@@ -203,11 +197,41 @@
203
197
  content: '';
204
198
  opacity: 0.2;
205
199
  }
200
+ &.#{$block-class}__selection-area--element-cloned {
201
+ z-index: 4;
202
+
203
+ &::before {
204
+ background-color: $ui-05;
205
+ opacity: 0.25;
206
+ }
207
+ }
208
+ }
209
+ .#{$block-class}__reorder-indicator-line {
210
+ position: absolute;
211
+ z-index: 4;
212
+ width: $spacing-01;
213
+ background-color: $interactive-01;
206
214
  }
207
215
  .#{$block-class}__th--active-header,
208
216
  .#{$block-class}__td-th--active-header.#{$block-class}__td {
209
217
  background-color: $hover-selected-ui;
210
218
  }
219
+ .#{$block-class}__th--selected-header,
220
+ .#{$block-class}__td-th--selected-header.#{$block-class}__td {
221
+ background-color: $inverse-02;
222
+ color: $text-04;
223
+
224
+ &:focus,
225
+ &:hover {
226
+ background-color: $inverse-02;
227
+ }
228
+ }
229
+ .#{$block-class}__th--selected-header.#{$block-class}__th {
230
+ cursor: grab;
231
+ }
232
+ .#{$block-class}__th--selected-header-reorder-active.#{$block-class}__th {
233
+ cursor: grabbing;
234
+ }
211
235
  .#{$block-class}__list--container {
212
236
  overscroll-behavior: none;
213
237
  }
@@ -316,3 +316,11 @@
316
316
  width: 100%;
317
317
  flex-direction: column;
318
318
  }
319
+
320
+ .#{$block-class}__carbon-row-expanded {
321
+ // Border applied to nested rows only on open chevron hover
322
+ &.#{$block-class}__carbon-row-expanded-hover-active
323
+ ~ .#{$block-class}__carbon-nested-row {
324
+ border-left: 1px solid $interactive-01;
325
+ }
326
+ }
@@ -9,7 +9,7 @@
9
9
  @import './variables';
10
10
 
11
11
  .#{$carbon-prefix}--data-table tr.#{$block-class}__carbon-nested-row {
12
- border-left: 2px solid $interactive-01;
12
+ border-left: 1px solid transparent;
13
13
 
14
14
  .#{$block-class}__cell {
15
15
  border-bottom: 1px solid $ui-03;
@@ -278,7 +278,10 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
278
278
  position: fixed;
279
279
  z-index: 2;
280
280
  // stylelint-disable-next-line carbon/layout-token-use
281
- top: calc(var(--#{$block-class}--title-text-height) + #{$spacing-09});
281
+ top: calc(
282
+ var(--#{$block-class}--title-text-height) +
283
+ var(--#{$block-class}--label-text-height) + #{$spacing-09}
284
+ );
282
285
  background-color: $ui-01;
283
286
  }
284
287
 
@@ -298,7 +301,10 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
298
301
  .#{$block-class}__title-container.#{$block-class}__title-container--no-title-animation {
299
302
  position: fixed;
300
303
  top: $spacing-09;
301
- height: var(--#{$block-class}--title-text-height);
304
+ height: calc(
305
+ var(--#{$block-class}--title-text-height) +
306
+ var(--#{$block-class}--label-text-height)
307
+ );
302
308
  }
303
309
 
304
310
  .#{$block-class}__inner-content {
@@ -308,7 +314,8 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
308
314
  margin-top: calc(
309
315
  var(--#{$block-class}--title-text-height) +
310
316
  var(--#{$block-class}--subtitle-container-height) +
311
- var(--#{$block-class}--action-bar-container-height)
317
+ var(--#{$block-class}--action-bar-container-height) +
318
+ var(--#{$block-class}--label-text-height)
312
319
  );
313
320
  overflow-x: hidden;
314
321
  }
@@ -331,6 +338,18 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
331
338
  padding-top: $spacing-05;
332
339
  }
333
340
 
341
+ .#{$block-class}__inner-content.#{$block-class}__static-inner-content-no-actions {
342
+ height: calc(
343
+ 100vh -
344
+ calc(
345
+ var(--#{$block-class}--title-text-height) +
346
+ var(--#{$block-class}--subtitle-container-height) +
347
+ var(--#{$block-class}--action-bar-container-height) +
348
+ var(--#{$block-class}--label-text-height)
349
+ )
350
+ );
351
+ }
352
+
334
353
  .#{$block-class}__action-toolbar.#{$block-class}__action-toolbar-no-animation {
335
354
  position: fixed;
336
355
  // stylelint-disable-next-line carbon/layout-token-use
@@ -2,6 +2,11 @@
2
2
 
3
3
  @import '../../global/styles/project-settings';
4
4
 
5
+ .sb-show-main.sb-main-centered #root {
6
+ padding: 0 !important;
7
+ margin: 0 !important;
8
+ }
9
+
5
10
  .example-terminal {
6
11
  padding: $spacing-05;
7
12
  color: $gray-10;
@@ -5,25 +5,25 @@ $web-terminal-width: 36.5rem;
5
5
  $block-class: #{$pkg-prefix}--web-terminal;
6
6
 
7
7
  @keyframes web-terminal-entrance {
8
- 0% {
8
+ from {
9
9
  opacity: 0;
10
10
  // stylelint-disable-next-line carbon/layout-token-use
11
11
  transform: translateX(#{$web-terminal-width});
12
12
  }
13
13
 
14
- 100% {
14
+ to {
15
15
  opacity: 1;
16
16
  transform: translateX(0);
17
17
  }
18
18
  }
19
19
 
20
20
  @keyframes web-terminal-exit {
21
- 0% {
21
+ from {
22
22
  opacity: 1;
23
23
  transform: translateX(0);
24
24
  }
25
25
 
26
- 100% {
26
+ to {
27
27
  opacity: 0;
28
28
  // stylelint-disable-next-line carbon/layout-token-use
29
29
  transform: translateX(#{$web-terminal-width});
@@ -70,3 +70,13 @@ $block-class: #{$pkg-prefix}--web-terminal;
70
70
  .#{$block-class}__body {
71
71
  height: 100%;
72
72
  }
73
+
74
+ // Terminal wrapper styles
75
+ .#{$block-class}-content-wrapper {
76
+ width: 100vw;
77
+ height: 100%;
78
+ }
79
+
80
+ .#{$block-class}-content-wrapper--open {
81
+ width: calc(100vw - #{$web-terminal-width});
82
+ }