@carbon/ibm-products 2.11.0 → 2.11.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. package/css/index-full-carbon.css +11 -7
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +11 -7
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +3 -3
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +10 -6
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +2 -2
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +30 -37
  14. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -0
  15. package/es/components/Datagrid/Extensions/ExpandableRow/ExpandableRow.docs-page.js +1 -1
  16. package/es/components/Datagrid/useNestedRowExpander.js +22 -9
  17. package/es/components/Datagrid/useRowExpander.js +22 -9
  18. package/es/components/Datagrid/utils/DatagridActions.js +1 -1
  19. package/es/components/Datagrid/utils/getArgTypes.js +12 -0
  20. package/es/components/EditTearsheet/EditTearsheet.js +47 -38
  21. package/es/components/EditTearsheet/EditTearsheetForm.js +6 -0
  22. package/es/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +6 -1
  23. package/es/components/Saving/Saving.js +2 -2
  24. package/es/components/Tearsheet/Tearsheet.js +2 -2
  25. package/es/components/Tearsheet/TearsheetNarrow.js +2 -2
  26. package/es/components/Tearsheet/TearsheetShell.js +2 -2
  27. package/es/global/js/hooks/useRetrieveFormTitles.js +20 -0
  28. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +30 -37
  29. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -0
  30. package/lib/components/Datagrid/Extensions/ExpandableRow/ExpandableRow.docs-page.js +1 -1
  31. package/lib/components/Datagrid/useNestedRowExpander.js +24 -9
  32. package/lib/components/Datagrid/useRowExpander.js +24 -9
  33. package/lib/components/Datagrid/utils/DatagridActions.js +1 -1
  34. package/lib/components/Datagrid/utils/getArgTypes.js +12 -0
  35. package/lib/components/EditTearsheet/EditTearsheet.js +47 -38
  36. package/lib/components/EditTearsheet/EditTearsheetForm.js +6 -0
  37. package/lib/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +6 -1
  38. package/lib/components/Saving/Saving.js +2 -2
  39. package/lib/components/Tearsheet/Tearsheet.js +2 -2
  40. package/lib/components/Tearsheet/TearsheetNarrow.js +2 -2
  41. package/lib/components/Tearsheet/TearsheetShell.js +2 -2
  42. package/lib/global/js/hooks/useRetrieveFormTitles.js +28 -0
  43. package/package.json +5 -5
  44. package/scss/components/Datagrid/_datagrid.scss +9 -0
  45. package/scss/components/Datagrid/styles/_datagrid.scss +1 -0
  46. package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +1 -0
  47. package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +1 -0
  48. package/scss/components/FilterSummary/_filter-summary.scss +1 -0
@@ -93,6 +93,18 @@ var ARG_TYPES = {
93
93
  },
94
94
  description: 'This value controls the height of the expanded content area. _This value is set/passed inside of the `datagridState` object._'
95
95
  },
96
+ expanderButtonTitleExpanded: {
97
+ control: {
98
+ type: 'text'
99
+ },
100
+ description: 'This value controls the expander title/aria-label when expanded. _This value is set/passed inside of the `datagridState` object._'
101
+ },
102
+ expanderButtonTitleCollapsed: {
103
+ control: {
104
+ type: 'text'
105
+ },
106
+ description: 'This value controls the expander title/aria-label when expanded. _This value is set/passed inside of the `datagridState` object._'
107
+ },
96
108
  customizeColumnsProps: {
97
109
  control: 'object',
98
110
  description: 'This is an object containing all of the props used with the column customization extension. _This value is set/passed inside of the `datagridState` object._'
@@ -16,9 +16,9 @@ var _react2 = require("@carbon/react");
16
16
  var _settings = require("../../settings");
17
17
  var _devtools = require("../../global/js/utils/devtools");
18
18
  var _TearsheetShell = require("../Tearsheet/TearsheetShell");
19
- var _excluded = ["cancelButtonText", "children", "className", "description", "influencerWidth", "label", "onClose", "open", "submitButtonText", "title", "verticalPosition", "onHandleModalClick"];
19
+ var _excluded = ["cancelButtonText", "children", "className", "description", "influencerWidth", "label", "onClose", "open", "submitButtonText", "title", "verticalPosition", "onHandleModalClick", "onFormChange", "sideNavAriaLabel"];
20
20
  /**
21
- * Copyright IBM Corp. 2022, 2022
21
+ * Copyright IBM Corp. 2022, 2023
22
22
  *
23
23
  * This source code is licensed under the Apache-2.0 license found in the
24
24
  * LICENSE file in the root directory of this source tree.
@@ -42,7 +42,8 @@ var FormNumberContext = /*#__PURE__*/(0, _react.createContext)(0);
42
42
  exports.FormNumberContext = FormNumberContext;
43
43
  var defaults = {
44
44
  verticalPosition: 'normal',
45
- influencerWidth: 'narrow'
45
+ influencerWidth: 'narrow',
46
+ sideNavAriaLabel: 'Side navigation'
46
47
  };
47
48
 
48
49
  /**
@@ -63,40 +64,43 @@ var EditTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
63
64
  _ref$verticalPosition = _ref.verticalPosition,
64
65
  verticalPosition = _ref$verticalPosition === void 0 ? defaults.verticalPosition : _ref$verticalPosition,
65
66
  onHandleModalClick = _ref.onHandleModalClick,
67
+ onFormChange = _ref.onFormChange,
68
+ _ref$sideNavAriaLabel = _ref.sideNavAriaLabel,
69
+ sideNavAriaLabel = _ref$sideNavAriaLabel === void 0 ? defaults.sideNavAriaLabel : _ref$sideNavAriaLabel,
66
70
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
67
71
  var _useState = (0, _react.useState)(0),
68
72
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
69
73
  currentForm = _useState2[0],
70
74
  setCurrentForm = _useState2[1];
75
+ var _useState3 = (0, _react.useState)([]),
76
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
77
+ formTitles = _useState4[0],
78
+ setFormTitles = _useState4[1];
71
79
  var contentRef = (0, _react.useRef)();
72
- var handleCurrentForm = function handleCurrentForm(form) {
73
- setCurrentForm(form);
80
+ var handleCurrentForm = function handleCurrentForm(formIndex) {
81
+ setCurrentForm(formIndex);
82
+ if (onFormChange) {
83
+ onFormChange(formIndex);
84
+ }
74
85
  };
75
- var sideNavItems = [{
76
- label: 'Topic Name'
77
- }, {
78
- label: 'Location'
79
- }, {
80
- label: 'Partitions'
81
- }, {
82
- label: 'Message retention'
83
- }];
84
- var influencer = /*#__PURE__*/_react.default.createElement("div", {
85
- className: "tearsheet-stories__dummy-influencer-block"
86
- }, /*#__PURE__*/_react.default.createElement(_react2.SideNav, {
87
- "aria-label": "Side navigation",
88
- className: "".concat(blockClass, "__side-nav"),
89
- expanded: true,
90
- isFixedNav: false
91
- }, /*#__PURE__*/_react.default.createElement(_react2.SideNavItems, null, sideNavItems.map(function (item, index) {
92
- return /*#__PURE__*/_react.default.createElement(_react2.SideNavMenuItem, {
93
- key: index,
94
- onClick: function onClick() {
95
- return handleCurrentForm(index);
96
- },
97
- isActive: currentForm === index
98
- }, item.label);
99
- }))));
86
+ function defaultInfluencer() {
87
+ return /*#__PURE__*/_react.default.createElement("div", {
88
+ className: "".concat(blockClass, "__side-nav-wrapper")
89
+ }, /*#__PURE__*/_react.default.createElement(_react2.SideNav, {
90
+ "aria-label": sideNavAriaLabel,
91
+ className: "".concat(blockClass, "__side-nav"),
92
+ expanded: true,
93
+ isFixedNav: false
94
+ }, /*#__PURE__*/_react.default.createElement(_react2.SideNavItems, null, formTitles.map(function (title, index) {
95
+ return /*#__PURE__*/_react.default.createElement(_react2.SideNavMenuItem, {
96
+ key: index,
97
+ onClick: function onClick() {
98
+ return handleCurrentForm(index);
99
+ },
100
+ isActive: currentForm === index
101
+ }, title);
102
+ }))));
103
+ }
100
104
  return /*#__PURE__*/_react.default.createElement(_TearsheetShell.TearsheetShell, (0, _extends2.default)({}, rest, (0, _devtools.getDevtoolsProps)(componentName), {
101
105
  actions: [{
102
106
  label: submitButtonText,
@@ -110,7 +114,7 @@ var EditTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
110
114
  className: (0, _classnames.default)(blockClass, className),
111
115
  description: description,
112
116
  hasCloseIcon: false,
113
- influencer: influencer,
117
+ influencer: defaultInfluencer(),
114
118
  influencerPosition: "left",
115
119
  influencerWidth: influencerWidth,
116
120
  label: label,
@@ -126,7 +130,8 @@ var EditTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
126
130
  role: "main"
127
131
  }, /*#__PURE__*/_react.default.createElement(_react2.Form, null, /*#__PURE__*/_react.default.createElement(FormContext.Provider, {
128
132
  value: {
129
- currentForm: currentForm
133
+ currentForm: currentForm,
134
+ setFormTitles: setFormTitles
130
135
  }
131
136
  }, _react.default.Children.map(children, function (child, index) {
132
137
  return /*#__PURE__*/_react.default.createElement(FormNumberContext.Provider, {
@@ -162,12 +167,6 @@ EditTearsheet.propTypes = {
162
167
  * A description of the flow, displayed in the header area of the tearsheet.
163
168
  */
164
169
  description: _propTypes.default.node,
165
- /**
166
- * The content for the influencer section of the tearsheet, displayed
167
- * alongside the main content. This is typically a menu, or filter, or
168
- * progress indicator, or similar.
169
- */
170
- influencer: _propTypes.default.element,
171
170
  /**
172
171
  * Used to set the size of the influencer
173
172
  */
@@ -184,6 +183,12 @@ EditTearsheet.propTypes = {
184
183
  * Returning `false` here prevents the modal from closing.
185
184
  */
186
185
  onClose: _propTypes.default.func,
186
+ /**
187
+ * An optional handler that is called when a user changes forms via clicking
188
+ * an influencer nav item.
189
+ * Returns the index of the selected form.
190
+ */
191
+ onFormChange: _propTypes.default.func,
187
192
  /**
188
193
  * Specifies whether the tearsheet is currently open.
189
194
  */
@@ -192,6 +197,10 @@ EditTearsheet.propTypes = {
192
197
  * Specifies whether the tearsheet is currently open.
193
198
  */
194
199
  open: _propTypes.default.bool,
200
+ /**
201
+ * Specifies the aria label for the SideNav from Carbon UIShell
202
+ */
203
+ sideNavAriaLabel: _propTypes.default.string,
195
204
  /**
196
205
  * The submit button text
197
206
  */
@@ -16,6 +16,7 @@ var _react2 = require("@carbon/react");
16
16
  var _EditTearsheet = require("./EditTearsheet");
17
17
  var _settings = require("../../settings");
18
18
  var _pconsole = _interopRequireDefault(require("../../global/js/utils/pconsole"));
19
+ var _useRetrieveFormTitles = require("../../global/js/hooks/useRetrieveFormTitles");
19
20
  var _excluded = ["children", "className", "description", "fieldsetLegendText", "hasFieldset", "subtitle", "title"];
20
21
  /**
21
22
  * Copyright IBM Corp. 2022, 2022
@@ -45,6 +46,11 @@ var EditTearsheetForm = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref)
45
46
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
46
47
  var formContext = (0, _react.useContext)(_EditTearsheet.FormContext);
47
48
  var formNumber = (0, _react.useContext)(_EditTearsheet.FormNumberContext);
49
+ (0, _useRetrieveFormTitles.useRetrieveFormTitles)({
50
+ formContext: formContext,
51
+ formNumber: formNumber,
52
+ title: title
53
+ });
48
54
  return formContext ? /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
49
55
  className: (0, _classnames.default)(blockClass, className, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__form--hidden-form"), formNumber !== (formContext === null || formContext === void 0 ? void 0 : formContext.currentForm)), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__form--visible-form"), formNumber === (formContext === null || formContext === void 0 ? void 0 : formContext.currentForm)), _cx)),
50
56
  ref: ref
@@ -13,6 +13,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _settings = require("../../../settings");
14
14
  var _EditTearsheet = require("../EditTearsheet");
15
15
  var _EditTearsheetForm = require("../EditTearsheetForm");
16
+ var _addonActions = require("@storybook/addon-actions");
16
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
19
  /* eslint-disable react/prop-types */
@@ -82,6 +83,9 @@ var MultiFormEditTearsheet = function MultiFormEditTearsheet(_ref) {
82
83
  var handleModalClick = function handleModalClick() {
83
84
  setOpen(!open);
84
85
  };
86
+ var handleFormChange = function handleFormChange() {
87
+ (0, _addonActions.action)('handleFormChange')();
88
+ };
85
89
  return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("style", null, ".".concat(blockClass, " { opacity: 0 }"), ";"), /*#__PURE__*/_react.default.createElement(_react2.Button, {
86
90
  onClick: handleModalClick
87
91
  }, open ? 'Close EditTearsheet' : 'Open EditTearsheet'), /*#__PURE__*/_react.default.createElement(_EditTearsheet.EditTearsheet, {
@@ -94,7 +98,8 @@ var MultiFormEditTearsheet = function MultiFormEditTearsheet(_ref) {
94
98
  title: title,
95
99
  open: open,
96
100
  onHandleModalClick: handleModalClick,
97
- onClose: clearCreateData
101
+ onClose: clearCreateData,
102
+ onFormChange: handleFormChange
98
103
  }, /*#__PURE__*/_react.default.createElement(_EditTearsheetForm.EditTearsheetForm, {
99
104
  title: "Topic name",
100
105
  fieldsetLegendText: "Topic information",
@@ -48,7 +48,7 @@ var Saving = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
48
48
  text: defaultText,
49
49
  iconDescription: defaultIconDescription,
50
50
  icon: function icon(props) {
51
- return /*#__PURE__*/_react.default.createElement(_icons.CheckmarkOutline, (0, _extends2.default)({
51
+ return /*#__PURE__*/_react.default.createElement(_icons.Save, (0, _extends2.default)({
52
52
  size: 16
53
53
  }, props));
54
54
  }
@@ -65,7 +65,7 @@ var Saving = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
65
65
  text: successText,
66
66
  iconDescription: successIconDescription,
67
67
  icon: function icon(props) {
68
- return /*#__PURE__*/_react.default.createElement(_icons.Save, (0, _extends2.default)({
68
+ return /*#__PURE__*/_react.default.createElement(_icons.CheckmarkOutline, (0, _extends2.default)({
69
69
  size: 16
70
70
  }, props));
71
71
  }
@@ -182,9 +182,9 @@ Tearsheet.propTypes = _objectSpread({
182
182
  */
183
183
  open: _propTypes.default.bool,
184
184
  /**
185
- * The DOM node the tearsheet should be rendered within. Defaults to document.body.
185
+ * The DOM element that the tearsheet should be rendered within. Defaults to document.body.
186
186
  */
187
- portalTarget: _propTypes.default.node,
187
+ portalTarget: _propTypes.default.instanceOf(Element),
188
188
  /**
189
189
  * Specify a CSS selector that matches the DOM element that should be focused when the Modal opens
190
190
  */
@@ -148,9 +148,9 @@ TearsheetNarrow.propTypes = _objectSpread({
148
148
  */
149
149
  open: _propTypes.default.bool,
150
150
  /**
151
- * The DOM node the tearsheet should be rendered within. Defaults to document.body.
151
+ * The DOM element that the tearsheet should be rendered within. Defaults to document.body.
152
152
  */
153
- portalTarget: _propTypes.default.node,
153
+ portalTarget: _propTypes.default.instanceOf(Element),
154
154
  /**
155
155
  * The main title of the tearsheet, displayed in the header area.
156
156
  */
@@ -394,9 +394,9 @@ TearsheetShell.propTypes = _objectSpread({
394
394
  */
395
395
  open: _propTypes.default.bool,
396
396
  /**
397
- * The DOM node the tearsheet should be rendered within. Defaults to document.body.
397
+ * The DOM element that the tearsheet should be rendered within. Defaults to document.body.
398
398
  */
399
- portalTarget: _propTypes.default.node,
399
+ portalTarget: _propTypes.default.instanceOf(Element),
400
400
  /**
401
401
  * Specifies the width of the tearsheet, 'narrow' or 'wide'.
402
402
  */
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useRetrieveFormTitles = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _react = require("react");
10
+ var useRetrieveFormTitles = function useRetrieveFormTitles(_ref) {
11
+ var formContext = _ref.formContext,
12
+ formNumber = _ref.formNumber,
13
+ title = _ref.title;
14
+ (0, _react.useEffect)(function () {
15
+ if (formContext) {
16
+ formContext.setFormTitles(function (prev) {
17
+ var prevTitle = prev[formNumber];
18
+ if (prevTitle !== title) {
19
+ var clone = (0, _toConsumableArray2.default)(prev);
20
+ clone[formNumber] = title;
21
+ return clone;
22
+ }
23
+ return prev;
24
+ });
25
+ }
26
+ }, [title, formContext, formNumber]);
27
+ };
28
+ exports.useRetrieveFormTitles = useRetrieveFormTitles;
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.11.0",
4
+ "version": "2.11.2",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -57,9 +57,6 @@
57
57
  "devDependencies": {
58
58
  "@babel/cli": "^7.22.10",
59
59
  "@babel/core": "^7.22.10",
60
- "@dnd-kit/core": "^6.0.8",
61
- "@dnd-kit/sortable": "^7.0.2",
62
- "@dnd-kit/utilities": "^3.2.1",
63
60
  "babel-preset-ibm-cloud-cognitive": "^0.14.39",
64
61
  "chalk": "^4.1.2",
65
62
  "change-case": "^4.1.2",
@@ -80,6 +77,9 @@
80
77
  "dependencies": {
81
78
  "@babel/runtime": "^7.22.10",
82
79
  "@carbon/telemetry": "^0.1.0",
80
+ "@dnd-kit/core": "^6.0.8",
81
+ "@dnd-kit/sortable": "^7.0.2",
82
+ "@dnd-kit/utilities": "^3.2.1",
83
83
  "framer-motion": "^6.5.1 < 7",
84
84
  "immutability-helper": "^3.1.1",
85
85
  "lodash": "^4.17.21",
@@ -96,5 +96,5 @@
96
96
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0",
97
97
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
98
98
  },
99
- "gitHead": "512f13bb07b7b8c7bdbd1ea97d2bc1e86de3fabf"
99
+ "gitHead": "d71f0ee356f0489be891d4b216e0f98b3e8c81ce"
100
100
  }
@@ -31,6 +31,7 @@ $block-class: #{c4p-settings.$pkg-prefix}--datagrid;
31
31
  .#{$block-class}__datagridWrap {
32
32
  display: block;
33
33
  width: 100%;
34
+
34
35
  :global(.#{c4p-settings.$carbon-prefix}--checkbox) {
35
36
  display: none;
36
37
  }
@@ -70,3 +71,11 @@ $block-class: #{c4p-settings.$pkg-prefix}--datagrid;
70
71
  }
71
72
  }
72
73
  }
74
+
75
+ // firefox fix for issue mentioned in 3442
76
+ .#{$block-class}
77
+ .#{c4p-settings.$carbon-prefix}--menu-button__trigger:not(
78
+ .#{c4p-settings.$carbon-prefix}--btn--ghost
79
+ ) {
80
+ min-width: auto;
81
+ }
@@ -6,6 +6,7 @@
6
6
  //
7
7
 
8
8
  @use '@carbon/styles/scss/theme' as *;
9
+ @use '@carbon/layout/scss/convert' as *;
9
10
  @use '@carbon/styles/scss/spacing' as *;
10
11
  @use '@carbon/react/scss/components/button/tokens' as *;
11
12
  @use '../../../global/styles/project-settings' as c4p-settings;
@@ -9,6 +9,7 @@
9
9
  // stylelint-disable carbon/layout-token-use
10
10
 
11
11
  @use '@carbon/styles/scss/theme' as *;
12
+ @use '@carbon/layout/scss/convert' as *;
12
13
  @use '@carbon/styles/scss/spacing' as *;
13
14
  @use '@carbon/styles/scss/type' as *;
14
15
  @use '@carbon/layout' as *;
@@ -8,6 +8,7 @@
8
8
 
9
9
  @use '../variables' as *;
10
10
  @use '@carbon/styles/scss/theme' as *;
11
+ @use '@carbon/layout/scss/convert' as *;
11
12
  @use '@carbon/styles/scss/spacing' as *;
12
13
  @use '@carbon/styles/scss/type' as *;
13
14
  @use '../../../../global/styles/project-settings' as c4p-settings;
@@ -5,6 +5,7 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
  @use '../../global/styles/project-settings' as *;
8
+ @use '@carbon/layout/scss/convert' as *;
8
9
  @use '@carbon/styles/scss/spacing' as *;
9
10
  @use '@carbon/styles/scss/theme' as *;
10
11