@carbon/ibm-products 2.17.0 → 2.17.2

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 (59) hide show
  1. package/css/index-full-carbon.css +584 -187
  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 +84 -8
  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 +90 -8
  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 +138 -8
  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/CreateSidePanel/CreateSidePanel.js +7 -1
  18. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +6 -4
  19. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +3 -1
  20. package/es/components/Datagrid/Datagrid/DatagridRow.js +13 -3
  21. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +19 -1
  22. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +8 -0
  23. package/es/components/Datagrid/Datagrid/addons/stateReducer.js +67 -24
  24. package/es/components/Datagrid/useExpandedRow.js +3 -6
  25. package/es/components/Datagrid/useFocusRowExpander.js +40 -0
  26. package/es/components/Datagrid/useNestedRowExpander.js +9 -0
  27. package/es/components/Datagrid/useNestedRows.js +1 -5
  28. package/es/components/Datagrid/useRowExpander.js +9 -0
  29. package/es/components/Datagrid/useSelectRows.js +23 -11
  30. package/es/components/EditSidePanel/EditSidePanel.js +8 -2
  31. package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -0
  32. package/es/components/SidePanel/SidePanel.js +39 -19
  33. package/es/global/js/hooks/useCreateComponentStepChange.js +1 -1
  34. package/es/global/js/package-settings.js +0 -2
  35. package/lib/components/CreateSidePanel/CreateSidePanel.js +7 -1
  36. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +6 -4
  37. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +3 -1
  38. package/lib/components/Datagrid/Datagrid/DatagridRow.js +13 -3
  39. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +19 -1
  40. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +8 -0
  41. package/lib/components/Datagrid/Datagrid/addons/stateReducer.js +68 -25
  42. package/lib/components/Datagrid/useExpandedRow.js +2 -5
  43. package/lib/components/Datagrid/useFocusRowExpander.js +45 -0
  44. package/lib/components/Datagrid/useNestedRowExpander.js +9 -0
  45. package/lib/components/Datagrid/useNestedRows.js +1 -5
  46. package/lib/components/Datagrid/useRowExpander.js +9 -0
  47. package/lib/components/Datagrid/useSelectRows.js +23 -11
  48. package/lib/components/EditSidePanel/EditSidePanel.js +8 -2
  49. package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -0
  50. package/lib/components/SidePanel/SidePanel.js +38 -18
  51. package/lib/global/js/hooks/useCreateComponentStepChange.js +1 -1
  52. package/lib/global/js/package-settings.js +0 -2
  53. package/package.json +5 -5
  54. package/scss/components/CreateTearsheet/_create-tearsheet.scss +6 -0
  55. package/scss/components/Datagrid/styles/_useExpandedRow.scss +21 -0
  56. package/scss/components/Datagrid/styles/_useNestedRows.scss +1 -1
  57. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +9 -0
  58. package/scss/components/SidePanel/_side-panel.scss +22 -6
  59. package/scss/components/WebTerminal/_web-terminal.scss +5 -0
@@ -17,7 +17,7 @@ var _react2 = require("@carbon/react");
17
17
  var _SidePanel = require("../SidePanel");
18
18
  require("../../global/js/utils/props-helper");
19
19
  var _uuidv = _interopRequireDefault(require("../../global/js/utils/uuidv4"));
20
- var _excluded = ["children", "className", "disableSubmit", "formTitle", "formDescription", "onRequestClose", "onRequestSubmit", "open", "placement", "primaryButtonText", "secondaryButtonText", "selectorPrimaryFocus", "selectorPageContent", "size", "slideIn", "subtitle", "title"];
20
+ var _excluded = ["children", "className", "disableSubmit", "id", "formTitle", "formDescription", "onRequestClose", "onRequestSubmit", "open", "placement", "primaryButtonText", "secondaryButtonText", "selectorPrimaryFocus", "selectorPageContent", "size", "slideIn", "subtitle", "title"];
21
21
  /**
22
22
  * Copyright IBM Corp. 2021, 2021
23
23
  *
@@ -48,6 +48,7 @@ var EditSidePanel = exports.EditSidePanel = /*#__PURE__*/_react.default.forwardR
48
48
  var children = _ref.children,
49
49
  className = _ref.className,
50
50
  disableSubmit = _ref.disableSubmit,
51
+ id = _ref.id,
51
52
  formTitle = _ref.formTitle,
52
53
  formDescription = _ref.formDescription,
53
54
  onRequestClose = _ref.onRequestClose,
@@ -87,7 +88,8 @@ var EditSidePanel = exports.EditSidePanel = /*#__PURE__*/_react.default.forwardR
87
88
  onRequestClose: onRequestClose,
88
89
  title: title,
89
90
  subtitle: subtitle,
90
- selectorPrimaryFocus: selectorPrimaryFocus
91
+ selectorPrimaryFocus: selectorPrimaryFocus,
92
+ id: id
91
93
  }, (0, _devtools.getDevtoolsProps)(componentName)), {
92
94
  placement: placement,
93
95
  slideIn: slideIn,
@@ -139,6 +141,10 @@ EditSidePanel.propTypes = {
139
141
  * Specifies a required field that provides a title for a form
140
142
  */
141
143
  formTitle: _propTypes.default.node.isRequired,
144
+ /**
145
+ * Unique identifier
146
+ */
147
+ id: _propTypes.default.string,
142
148
  /**
143
149
  * Specifies an optional handler which is called when the CreateSidePanel
144
150
  * is closed.
@@ -51,6 +51,7 @@ var NoDataEmptyState = exports.NoDataEmptyState = /*#__PURE__*/_react.default.fo
51
51
  className: (0, _classnames.default)(blockClass, className, "".concat(blockClass, "-position--").concat(illustrationPosition), "".concat(blockClass, "-type--noData")),
52
52
  ref: ref
53
53
  }, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement(_NoDataIllustration.NoDataIllustration, {
54
+ title: title,
54
55
  theme: illustrationTheme,
55
56
  size: size
56
57
  }), /*#__PURE__*/_react.default.createElement(_EmptyStateContent.EmptyStateContent, {
@@ -26,7 +26,7 @@ var _react2 = require("@carbon/react");
26
26
  var _icons = require("@carbon/react/icons");
27
27
  var _ActionSet = require("../ActionSet");
28
28
  var _variants = require("./motion/variants");
29
- var _excluded = ["actionToolbarButtons", "actions", "animateTitle", "children", "className", "closeIconDescription", "condensedActions", "currentStep", "includeOverlay", "labelText", "navigationBackIconDescription", "onNavigationBack", "onRequestClose", "onUnmount", "open", "placement", "preventCloseOnClickOutside", "selectorPageContent", "selectorPrimaryFocus", "size", "slideIn", "subtitle", "title"],
29
+ var _excluded = ["actionToolbarButtons", "actions", "animateTitle", "children", "className", "closeIconDescription", "condensedActions", "currentStep", "id", "includeOverlay", "labelText", "navigationBackIconDescription", "onNavigationBack", "onRequestClose", "onUnmount", "open", "placement", "preventCloseOnClickOutside", "selectorPageContent", "selectorPrimaryFocus", "size", "slideIn", "slug", "subtitle", "title"],
30
30
  _excluded2 = ["label", "kind", "icon", "tooltipPosition", "tooltipAlignment", "leading", "disabled", "className", "onClick"];
31
31
  /**
32
32
  * Copyright IBM Corp. 2020, 2023
@@ -72,6 +72,8 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
72
72
  condensedActions = _ref.condensedActions,
73
73
  _ref$currentStep = _ref.currentStep,
74
74
  currentStep = _ref$currentStep === void 0 ? defaults.currentStep : _ref$currentStep,
75
+ _ref$id = _ref.id,
76
+ id = _ref$id === void 0 ? blockClass : _ref$id,
75
77
  includeOverlay = _ref.includeOverlay,
76
78
  labelText = _ref.labelText,
77
79
  _ref$navigationBackIc = _ref.navigationBackIconDescription,
@@ -88,6 +90,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
88
90
  _ref$size = _ref.size,
89
91
  size = _ref$size === void 0 ? defaults.size : _ref$size,
90
92
  slideIn = _ref.slideIn,
93
+ slug = _ref.slug,
91
94
  subtitle = _ref.subtitle,
92
95
  title = _ref.title,
93
96
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -112,6 +115,10 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
112
115
  var reducedMotion = typeof window !== 'undefined' && (_window = window) !== null && _window !== void 0 && _window.matchMedia ? window.matchMedia('(prefers-reduced-motion: reduce)') : {
113
116
  matches: true
114
117
  };
118
+ var getActionsContainerElement = (0, _react.useCallback)(function () {
119
+ var sidePanelOuter = document.querySelector("#".concat(id));
120
+ return sidePanelOuter && sidePanelOuter.querySelector(".".concat(blockClass, "__actions-container"));
121
+ }, [id]);
115
122
 
116
123
  // scroll panel to top going between steps
117
124
  (0, _react.useEffect)(function () {
@@ -119,7 +126,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
119
126
  if (panelRef && panelRef.current) {
120
127
  var _document$querySelect;
121
128
  var scrollableSection = panelRef.current.querySelector(".".concat(blockClass, "__inner-content"));
122
- var sidePanelOuter = document.querySelector("#".concat(blockClass, "-outer"));
129
+ var sidePanelOuter = document.querySelector("#".concat(id));
123
130
  var initialTitleHeight = (_document$querySelect = document.querySelector(".".concat(blockClass, "__title-container"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.offsetHeight;
124
131
  scrollableSection.scrollTop = 0;
125
132
  // The size of the panel has changed while it is still opened
@@ -131,7 +138,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
131
138
  sidePanelOuter === null || sidePanelOuter === void 0 || (_sidePanelOuter$style = sidePanelOuter.style) === null || _sidePanelOuter$style === void 0 || _sidePanelOuter$style.setProperty("--".concat(blockClass, "--title-container-height"), "".concat(Number(initialTitleHeight), "px"));
132
139
  }
133
140
  }
134
- }, [currentStep, ref, size, previousState === null || previousState === void 0 ? void 0 : previousState.size]);
141
+ }, [currentStep, ref, size, previousState === null || previousState === void 0 ? void 0 : previousState.size, id]);
135
142
 
136
143
  // set initial focus when side panel opens
137
144
  (0, _react.useEffect)(function () {
@@ -155,13 +162,13 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
155
162
  (0, _react.useEffect)(function () {
156
163
  if (open && actions && actions.length && animationComplete) {
157
164
  var _sidePanelOuter$style2;
158
- var sidePanelOuter = document.querySelector("#".concat(blockClass, "-outer"));
165
+ var sidePanelOuter = document.querySelector("#".concat(id));
159
166
  var actionsContainer = getActionsContainerElement();
160
167
  var actionsHeight = (actionsContainer === null || actionsContainer === void 0 ? void 0 : actionsContainer.offsetHeight) + 16; // add additional 1rem spacing to bottom padding
161
168
  actionsHeight = "".concat(Math.round(actionsHeight / 16), "rem");
162
169
  sidePanelOuter === null || sidePanelOuter === void 0 || (_sidePanelOuter$style2 = sidePanelOuter.style) === null || _sidePanelOuter$style2 === void 0 || _sidePanelOuter$style2.setProperty("--".concat(blockClass, "--content-bottom-padding"), actionsHeight);
163
170
  }
164
- }, [actions, condensedActions, open, animationComplete]);
171
+ }, [actions, condensedActions, open, animationComplete, id, getActionsContainerElement]);
165
172
 
166
173
  // Add console warning if labelText is provided without a title.
167
174
  // This combination is not allowed.
@@ -176,23 +183,19 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
176
183
  var _sidePanelOuter$style3;
177
184
  var height = _ref2.height;
178
185
  setPanelHeight(height);
179
- var sidePanelOuter = document.querySelector("#".concat(blockClass, "-outer"));
186
+ var sidePanelOuter = document.querySelector("#".concat(id));
180
187
  var actionsContainer = getActionsContainerElement();
181
188
  var actionsHeight = (actionsContainer === null || actionsContainer === void 0 ? void 0 : actionsContainer.offsetHeight) + 16; // add additional 1rem spacing to bottom padding
182
189
  actionsHeight = "".concat(Math.round(actionsHeight / 16), "rem");
183
190
  sidePanelOuter === null || sidePanelOuter === void 0 || (_sidePanelOuter$style3 = sidePanelOuter.style) === null || _sidePanelOuter$style3 === void 0 || _sidePanelOuter$style3.setProperty("--".concat(blockClass, "--content-bottom-padding"), actionsHeight);
184
191
  };
185
- var getActionsContainerElement = function getActionsContainerElement() {
186
- var sidePanelOuter = document.querySelector("#".concat(blockClass, "-outer"));
187
- return sidePanelOuter && sidePanelOuter.querySelector(".".concat(blockClass, "__actions-container"));
188
- };
189
192
 
190
193
  // Title and subtitle scroll animation
191
194
  (0, _react.useEffect)(function () {
192
195
  if (open && animateTitle && animationComplete && title && title.length && !reducedMotion.matches) {
193
196
  var _document$querySelect2, _document$querySelect3, _document$querySelect4;
194
- var sidePanelOuter = document.querySelector("#".concat(blockClass, "-outer"));
195
- var sidePanelScrollArea = document.querySelector("#".concat(blockClass, "-outer .").concat(blockClass, "__inner-content"));
197
+ var sidePanelOuter = document.querySelector("#".concat(id));
198
+ var sidePanelScrollArea = document.querySelector("#".concat(id, " .").concat(blockClass, "__inner-content"));
196
199
  var sidePanelTitleElement = document.querySelector(".".concat(blockClass, "__title-text"));
197
200
  var sidePanelCollapsedTitleElement = document.querySelector(".".concat(blockClass, "__collapsed-title-text"));
198
201
  var sidePanelSubtitleElement = document.querySelector(".".concat("".concat(blockClass, "__subtitle-text")));
@@ -267,7 +270,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
267
270
  });
268
271
  }
269
272
  if (open && !animateTitle) {
270
- var _sidePanelOuter = document.querySelector("#".concat(blockClass, "-outer"));
273
+ var _sidePanelOuter = document.querySelector("#".concat(id));
271
274
  var _sidePanelTitleElement = document.querySelector(".".concat(blockClass, "__title-container .").concat(blockClass, "__title-text"));
272
275
  var _sidePanelSubtitleElement = document.querySelector(".".concat(blockClass, "__subtitle-text"));
273
276
  var actionToolbarElement = document.querySelector(".".concat(blockClass, "__action-toolbar"));
@@ -281,7 +284,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
281
284
  _sidePanelOuter === null || _sidePanelOuter === void 0 || _sidePanelOuter.style.setProperty("--".concat(blockClass, "--action-bar-container-height"), "".concat(sidePanelActionBarElementHeight, "px"));
282
285
  _sidePanelOuter === null || _sidePanelOuter === void 0 || _sidePanelOuter.style.setProperty("--".concat(blockClass, "--label-text-height"), "".concat(labelHeight, "px"));
283
286
  }
284
- }, [open, animateTitle, animationComplete, panelHeight, title, size, reducedMotion.matches]);
287
+ }, [open, animateTitle, animationComplete, panelHeight, title, size, reducedMotion.matches, id]);
285
288
 
286
289
  // click outside functionality if `includeOverlay` prop is set
287
290
  (0, _react.useEffect)(function () {
@@ -378,9 +381,16 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
378
381
  }
379
382
  };
380
383
  var primaryActionContainerClassNames = (0, _classnames.default)(["".concat(blockClass, "__actions-container"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__actions-container-condensed"), condensedActions)]);
381
- var mainPanelClassNames = (0, _classnames.default)([blockClass, className, "".concat(blockClass, "__container"), "".concat(blockClass, "__container--").concat(size), (_ref5 = {}, (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-right-placement"), placement === 'right'), (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-left-placement"), placement === 'left'), (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-with-action-toolbar"), actionToolbarButtons && actionToolbarButtons.length), (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-without-overlay"), !includeOverlay && !slideIn), (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-is-animating"), !animationComplete || !open), _ref5)]);
384
+ var mainPanelClassNames = (0, _classnames.default)([blockClass, className, "".concat(blockClass, "__container"), "".concat(blockClass, "__container--").concat(size), (_ref5 = {}, (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-right-placement"), placement === 'right'), (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-left-placement"), placement === 'left'), (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-with-action-toolbar"), actionToolbarButtons && actionToolbarButtons.length), (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-without-overlay"), !includeOverlay && !slideIn), (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container-is-animating"), !animationComplete || !open), (0, _defineProperty2.default)(_ref5, "".concat(blockClass, "__container--has-slug"), slug), _ref5)]);
382
385
  var renderHeader = function renderHeader() {
383
386
  var _cx, _cx2;
387
+ var normalizedSlug;
388
+ if (slug) {
389
+ normalizedSlug = /*#__PURE__*/_react.default.cloneElement(slug, {
390
+ // slug size is sm unless actions and size > md
391
+ size: actions.length && /l/.test(size) ? 'md' : 'sm'
392
+ });
393
+ }
384
394
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
385
395
  className: (0, _classnames.default)("".concat(blockClass, "__title-container"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__on-detail-step"), currentStep > 0), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__on-detail-step-without-title"), currentStep > 0 && !title), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container--no-title-animation"), !animateTitle), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container-is-animating"), !animationComplete || !open), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container-without-title"), !title), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container--reduced-motion"), reducedMotion.matches), _cx))
386
396
  }, currentStep > 0 && /*#__PURE__*/_react.default.createElement(_react2.Button, {
@@ -398,7 +408,9 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
398
408
  onClick: onNavigationBack
399
409
  }), title && title.length && labelText && labelText.length && /*#__PURE__*/_react.default.createElement("p", {
400
410
  className: "".concat(blockClass, "__label-text")
401
- }, labelText), title && title.length && renderTitle()), /*#__PURE__*/_react.default.createElement(_react2.Button, {
411
+ }, labelText), title && title.length && renderTitle()), /*#__PURE__*/_react.default.createElement("div", {
412
+ className: "".concat(blockClass, "__slug-and-close")
413
+ }, normalizedSlug, /*#__PURE__*/_react.default.createElement(_react2.Button, {
402
414
  "aria-label": closeIconDescription,
403
415
  kind: "ghost",
404
416
  size: "sm",
@@ -411,7 +423,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
411
423
  className: "".concat(blockClass, "__close-button"),
412
424
  onClick: onRequestClose,
413
425
  ref: sidePanelCloseRef
414
- }), subtitle && /*#__PURE__*/_react.default.createElement("p", {
426
+ })), subtitle && /*#__PURE__*/_react.default.createElement("p", {
415
427
  className: (0, _classnames.default)("".concat(blockClass, "__subtitle-text"), (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "__subtitle-text-no-animation"), !animateTitle), (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "__subtitle-text-no-animation-no-action-toolbar"), !animateTitle && (!actionToolbarButtons || !actionToolbarButtons.length)), (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "__subtitle-text-is-animating"), !animationComplete && animateTitle), (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "__subtitle-without-title"), !title), _cx2))
416
428
  }, subtitle), actionToolbarButtons && actionToolbarButtons.length && /*#__PURE__*/_react.default.createElement("div", {
417
429
  className: (0, _classnames.default)("".concat(blockClass, "__action-toolbar"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__action-toolbar-no-animation"), !animateTitle))
@@ -455,7 +467,7 @@ var SidePanel = exports.SidePanel = /*#__PURE__*/_react.default.forwardRef(funct
455
467
  var contentRef = ref || sidePanelRef;
456
468
  (0, _useResizeObserver.useResizeObserver)(contentRef, handleResize);
457
469
  return /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, null, open && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, (0, _extends2.default)({}, (0, _devtools.getDevtoolsProps)(componentName), rest, {
458
- id: "".concat(blockClass, "-outer"),
470
+ id: id,
459
471
  className: mainPanelClassNames,
460
472
  onBlur: handleBlur,
461
473
  ref: contentRef,
@@ -563,6 +575,10 @@ SidePanel.propTypes = {
563
575
  * Sets the current step of the side panel
564
576
  */
565
577
  currentStep: _propTypes.default.number,
578
+ /**
579
+ * Unique identifier
580
+ */
581
+ id: _propTypes.default.string,
566
582
  /**
567
583
  * Determines whether the side panel should render with an overlay
568
584
  */
@@ -622,6 +638,10 @@ SidePanel.propTypes = {
622
638
  * Determines if this panel slides in
623
639
  */
624
640
  slideIn: _propTypes.default.bool,
641
+ /**
642
+ * Provide a `Slug` component to be rendered inside the `SidePanel` component
643
+ */
644
+ slug: _propTypes.default.node,
625
645
  /**
626
646
  * Sets the subtitle text
627
647
  */
@@ -73,7 +73,7 @@ var useCreateComponentStepChange = exports.useCreateComponentStepChange = functi
73
73
  (0, _react.useEffect)(function () {
74
74
  var onUnmount = function onUnmount() {
75
75
  if (componentName !== 'CreateFullPage') {
76
- setCurrentStep(0);
76
+ setCurrentStep(1);
77
77
  }
78
78
  setIsSubmitting(false);
79
79
  onClose();
@@ -85,8 +85,6 @@ var defaults = {
85
85
  'default-portal-target-body': true,
86
86
  'Datagrid.useInlineEdit': false,
87
87
  'Datagrid.useEditableCell': false,
88
- 'Datagrid.useExpandedRow': false,
89
- 'Datagrid.useNestedRows': false,
90
88
  'Datagrid.useFiltering': false,
91
89
  'Datagrid.useCustomizeColumns': false,
92
90
  'ExampleComponent.secondaryIcon': 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": "2.17.0",
4
+ "version": "2.17.2",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -74,7 +74,7 @@
74
74
  },
75
75
  "dependencies": {
76
76
  "@babel/runtime": "^7.22.10",
77
- "@carbon/ibm-products-styles": "^2.16.0",
77
+ "@carbon/ibm-products-styles": "^2.17.2",
78
78
  "@carbon/telemetry": "^0.1.0",
79
79
  "@dnd-kit/core": "^6.0.8",
80
80
  "@dnd-kit/sortable": "^7.0.2",
@@ -89,11 +89,11 @@
89
89
  "@carbon/grid": "^11.21.1",
90
90
  "@carbon/layout": "^11.20.1",
91
91
  "@carbon/motion": "^11.16.1",
92
- "@carbon/react": "^1.41.1",
93
- "@carbon/themes": "^11.26.1",
92
+ "@carbon/react": "^1.44.0",
93
+ "@carbon/themes": "^11.28.0",
94
94
  "@carbon/type": "^11.25.1",
95
95
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0",
96
96
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
97
97
  },
98
- "gitHead": "cbd2be0fa314e4d82473c33609e3fc0d665c79b2"
98
+ "gitHead": "7b7eda56917b98f508478035f87c17ca75c46375"
99
99
  }
@@ -87,6 +87,12 @@ $tearsheet-fieldset-class: #{c4p-settings.$pkg-prefix}--tearsheet-create__step--
87
87
  overflow-x: hidden;
88
88
  }
89
89
 
90
+ .#{$create-tearsheet-block-class}
91
+ .#{$create-tearsheet-block-class}__content
92
+ .#{c4p-settings.$carbon-prefix}--form {
93
+ height: inherit;
94
+ }
95
+
90
96
  .#{$create-tearsheet-block-class}
91
97
  .#{$create-tearsheet-block-class}__content
92
98
  .#{c4p-settings.$carbon-prefix}--grid {
@@ -71,3 +71,24 @@
71
71
  td {
72
72
  background: $layer-hover;
73
73
  }
74
+
75
+ .#{variables.$block-class}
76
+ .#{c4p-settings.$carbon-prefix}--data-table
77
+ tbody
78
+ tr:hover
79
+ td.#{variables.$block-class}__expanded-row-cell-wrapper,
80
+ .#{variables.$block-class}
81
+ .#{c4p-settings.$carbon-prefix}--data-table
82
+ td.#{variables.$block-class}__expanded-row-cell-wrapper,
83
+ .#{variables.$block-class}
84
+ .#{c4p-settings.$carbon-prefix}--data-table
85
+ .#{variables.$block-class}__carbon-row-expanded
86
+ td.#{variables.$block-class}__expandable-row-cell {
87
+ border: none;
88
+ }
89
+
90
+ .#{variables.$block-class}
91
+ .#{c4p-settings.$carbon-prefix}--data-table
92
+ td.#{variables.$block-class}__expanded-row-cell-wrapper {
93
+ padding: 0;
94
+ }
@@ -41,7 +41,7 @@
41
41
 
42
42
  .#{$block-class}
43
43
  tr.#{$block-class}__carbon-nested-row
44
- + :not(tr.#{$block-class}__carbon-nested-row)::before {
44
+ + :not(tr.#{$block-class}__carbon-nested-row)::after {
45
45
  position: absolute;
46
46
  /* stylelint-disable-next-line carbon/layout-token-use */
47
47
  top: -1px;
@@ -84,3 +84,12 @@
84
84
  .#{variables.$block-class}__row-size__row-settings-trigger--open.#{c4p-settings.$carbon-prefix}--btn--ghost {
85
85
  background-color: $layer-02;
86
86
  }
87
+
88
+ .#{variables.$block-class}
89
+ table.#{c4p-settings.$carbon-prefix}--data-table--xl.#{variables.$block-class}__vertical-align-center
90
+ td.#{variables.$block-class}__expandable-row-cell,
91
+ .#{variables.$block-class}
92
+ table.#{c4p-settings.$carbon-prefix}--data-table--xl.#{variables.$block-class}__vertical-align-top
93
+ td.#{variables.$block-class}__expandable-row-cell {
94
+ padding-top: $spacing-03;
95
+ }
@@ -45,7 +45,8 @@ $action-set-block-class: #{c4p-settings.$pkg-prefix}--action-set;
45
45
  @mixin setCommonTitleStyles() {
46
46
  display: -webkit-box;
47
47
  overflow: hidden;
48
- padding-right: $spacing-09;
48
+ /* stylelint-disable-next-line carbon/layout-token-use -- custom css property set below */
49
+ padding-right: var(--#{$block-class}--title-padding-right);
49
50
  -webkit-box-orient: vertical;
50
51
  -webkit-line-clamp: 2;
51
52
  }
@@ -61,6 +62,7 @@ $action-set-block-class: #{c4p-settings.$pkg-prefix}--action-set;
61
62
  --#{$block-class}--content-bottom-padding: #{$spacing-10};
62
63
  --#{$block-class}--collapsed-title-y-position: 1rem;
63
64
  --#{$block-class}--label-text-height: 0;
65
+ --#{$block-class}--title-padding-right: #{$spacing-09};
64
66
 
65
67
  position: fixed;
66
68
  // Need to disable stylelint until dart sass namespace support is added
@@ -140,6 +142,9 @@ $action-set-block-class: #{c4p-settings.$pkg-prefix}--action-set;
140
142
  background-color: transparent;
141
143
  }
142
144
  }
145
+ &.#{$block-class}__container--has-slug {
146
+ --#{$block-class}--title-padding-right: #{$spacing-12};
147
+ }
143
148
  &.#{$block-class}__container-is-animating {
144
149
  pointer-events: none;
145
150
  }
@@ -174,7 +179,7 @@ $action-set-block-class: #{c4p-settings.$pkg-prefix}--action-set;
174
179
  @include type.type-style('label-01');
175
180
 
176
181
  overflow: hidden;
177
- padding-right: $spacing-05;
182
+ padding-right: var(--#{$block-class}--title-padding-right);
178
183
  opacity: var(--#{$block-class}--subtitle-opacity);
179
184
  text-overflow: ellipsis;
180
185
  transform: translateY(var(--#{$block-class}--title-y-position));
@@ -244,6 +249,10 @@ $action-set-block-class: #{c4p-settings.$pkg-prefix}--action-set;
244
249
  overflow-x: hidden;
245
250
  }
246
251
 
252
+ &.#{$block-class}__container--has-slug .#{$block-class}__inner-content {
253
+ @include utilities.ai-gradient('bottom');
254
+ }
255
+
247
256
  .#{$block-class}__inner-content-with-actions {
248
257
  height: calc(
249
258
  100vh - (var(--#{$block-class}--content-bottom-padding) + 2rem)
@@ -330,19 +339,26 @@ $action-set-block-class: #{c4p-settings.$pkg-prefix}--action-set;
330
339
  }
331
340
 
332
341
  .#{c4p-settings.$carbon-prefix}--btn.#{$block-class}__close-button {
333
- position: absolute;
334
- z-index: 5;
335
- top: $spacing-03;
336
- right: $spacing-05;
337
342
  display: flex;
338
343
  align-items: center;
339
344
  justify-content: center;
345
+ margin: $spacing-03;
346
+ margin-bottom: 0;
340
347
  }
341
348
 
342
349
  .#{c4p-settings.$carbon-prefix}--btn.#{$block-class}__close-button
343
350
  .#{c4p-settings.$carbon-prefix}--btn__icon {
344
351
  margin: 0;
345
352
  }
353
+
354
+ .#{$block-class}__slug-and-close {
355
+ position: fixed;
356
+ z-index: 5;
357
+ top: 0;
358
+ right: 0;
359
+ display: flex;
360
+ }
361
+
346
362
  .#{$block-class}__body-content {
347
363
  padding: $spacing-05;
348
364
  padding-top: 0;
@@ -78,6 +78,11 @@ $block-class: #{$pkg-prefix}--web-terminal;
78
78
  @include theme($g100);
79
79
  }
80
80
 
81
+ .#{$block-class}__documentation-overflow
82
+ .#{$carbon-prefix}--overflow-menu-options__btn {
83
+ text-decoration: none;
84
+ }
85
+
81
86
  // Terminal body styles
82
87
  .#{$block-class}__body {
83
88
  height: 100%;