@carbon/ibm-products 1.5.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. package/css/index-full-carbon.css +389 -139
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +9 -3
  4. package/css/index-full-carbon.min.css.map +1 -0
  5. package/css/index-without-carbon-released-only.css +33 -27
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +3 -3
  8. package/css/index-without-carbon-released-only.min.css.map +1 -0
  9. package/css/index-without-carbon.css +330 -133
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +9 -3
  12. package/css/index-without-carbon.min.css.map +1 -0
  13. package/css/index.css +332 -135
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +9 -3
  16. package/css/index.min.css.map +1 -0
  17. package/es/components/APIKeyModal/APIKeyModal.js +10 -13
  18. package/es/components/ActionBar/ActionBar.js +0 -3
  19. package/es/components/ActionBar/ActionBarItem.js +2 -6
  20. package/es/components/ActionSet/ActionSet.js +11 -13
  21. package/es/components/AddSelect/AddSelect.js +122 -72
  22. package/es/components/AddSelect/AddSelectBreadcrumbs.js +56 -0
  23. package/es/components/AddSelect/AddSelectList.js +94 -0
  24. package/es/components/AddSelect/AddSelectSidebar.js +110 -0
  25. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +5 -5
  26. package/es/components/ButtonMenu/ButtonMenu.js +6 -4
  27. package/es/components/ButtonMenu/ButtonMenuItem.js +1 -2
  28. package/es/components/Card/Card.js +37 -25
  29. package/es/components/Card/CardFooter.js +14 -10
  30. package/es/components/Card/CardHeader.js +8 -6
  31. package/es/components/Cascade/Cascade.js +5 -4
  32. package/es/components/ComboButton/ComboButton.js +0 -4
  33. package/es/components/ComboButton/ComboButtonItem/index.js +0 -5
  34. package/es/components/CreateFullPage/CreateFullPageStep.js +15 -8
  35. package/es/components/CreateModal/CreateModal.js +1 -4
  36. package/es/components/CreateTearsheet/CreateTearsheet.js +10 -11
  37. package/es/components/CreateTearsheet/CreateTearsheetStep.js +18 -14
  38. package/es/components/DataSpreadsheet/DataSpreadsheet.js +414 -0
  39. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +138 -0
  40. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +64 -0
  41. package/es/components/DataSpreadsheet/createActiveCellFn.js +45 -0
  42. package/es/components/DataSpreadsheet/generateData.js +47 -0
  43. package/es/components/DataSpreadsheet/getCellSize.js +30 -0
  44. package/es/components/{CancelableTextEdit → DataSpreadsheet}/index.js +2 -2
  45. package/es/components/EditSidePanel/EditSidePanel.js +9 -10
  46. package/es/components/EmptyStates/EmptyState.js +8 -7
  47. package/es/components/EmptyStates/EmptyStateContent.js +2 -2
  48. package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +5 -9
  49. package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +5 -9
  50. package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +5 -9
  51. package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +5 -9
  52. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +5 -9
  53. package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +5 -9
  54. package/es/components/ExampleComponent/ExampleComponent.js +12 -13
  55. package/es/components/ExportModal/ExportModal.js +13 -9
  56. package/es/components/ExpressiveCard/ExpressiveCard.js +0 -8
  57. package/es/components/ImportModal/ImportModal.js +7 -5
  58. package/es/components/InlineEdit/InlineEdit.js +256 -88
  59. package/es/components/LoadingBar/LoadingBar.js +13 -17
  60. package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +0 -4
  61. package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +0 -5
  62. package/es/components/ModifiedTabs/ModifiedTabs.js +24 -18
  63. package/es/components/NotificationsPanel/NotificationsPanel.js +125 -89
  64. package/es/components/OptionsTile/OptionsTile.js +6 -9
  65. package/es/components/PageHeader/PageHeader.js +19 -13
  66. package/es/components/PageHeader/PageHeaderTitle.js +10 -6
  67. package/es/components/ProductiveCard/ProductiveCard.js +23 -12
  68. package/es/components/RemoveModal/RemoveModal.js +0 -3
  69. package/es/components/SidePanel/SidePanel.js +54 -32
  70. package/es/components/TagSet/TagSet.js +13 -9
  71. package/es/components/TagSet/TagSetModal.js +16 -12
  72. package/es/components/TagSet/TagSetOverflow.js +21 -13
  73. package/es/components/Tearsheet/Tearsheet.js +27 -18
  74. package/es/components/Tearsheet/TearsheetNarrow.js +18 -15
  75. package/es/components/Tearsheet/TearsheetShell.js +3 -4
  76. package/es/components/Toolbar/ToolbarButton.js +0 -3
  77. package/es/components/WebTerminal/WebTerminal.js +18 -19
  78. package/es/components/index.js +2 -2
  79. package/es/global/js/hooks/index.js +1 -0
  80. package/es/global/js/hooks/useActiveElement.js +27 -0
  81. package/es/global/js/package-settings.js +2 -1
  82. package/es/global/js/utils/Wrap.js +7 -5
  83. package/es/global/js/utils/getScrollbarWidth.js +14 -0
  84. package/es/settings.js +0 -5
  85. package/lib/components/APIKeyModal/APIKeyModal.js +10 -13
  86. package/lib/components/ActionBar/ActionBar.js +0 -3
  87. package/lib/components/ActionBar/ActionBarItem.js +2 -6
  88. package/lib/components/ActionSet/ActionSet.js +11 -13
  89. package/lib/components/AddSelect/AddSelect.js +126 -72
  90. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +71 -0
  91. package/lib/components/AddSelect/AddSelectList.js +112 -0
  92. package/lib/components/AddSelect/AddSelectSidebar.js +122 -0
  93. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +5 -5
  94. package/lib/components/ButtonMenu/ButtonMenu.js +6 -4
  95. package/lib/components/ButtonMenu/ButtonMenuItem.js +1 -2
  96. package/lib/components/Card/Card.js +37 -25
  97. package/lib/components/Card/CardFooter.js +14 -10
  98. package/lib/components/Card/CardHeader.js +8 -6
  99. package/lib/components/Cascade/Cascade.js +5 -4
  100. package/lib/components/ComboButton/ComboButton.js +0 -4
  101. package/lib/components/ComboButton/ComboButtonItem/index.js +0 -5
  102. package/lib/components/CreateFullPage/CreateFullPageStep.js +17 -14
  103. package/lib/components/CreateModal/CreateModal.js +1 -4
  104. package/lib/components/CreateTearsheet/CreateTearsheet.js +10 -11
  105. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +20 -20
  106. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +438 -0
  107. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +161 -0
  108. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +80 -0
  109. package/lib/components/DataSpreadsheet/createActiveCellFn.js +56 -0
  110. package/lib/components/DataSpreadsheet/generateData.js +58 -0
  111. package/lib/components/DataSpreadsheet/getCellSize.js +39 -0
  112. package/lib/components/DataSpreadsheet/index.js +13 -0
  113. package/lib/components/EditSidePanel/EditSidePanel.js +9 -10
  114. package/lib/components/EmptyStates/EmptyState.js +10 -9
  115. package/lib/components/EmptyStates/EmptyStateContent.js +2 -2
  116. package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +4 -8
  117. package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +4 -8
  118. package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +4 -8
  119. package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +4 -8
  120. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +4 -8
  121. package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +4 -8
  122. package/lib/components/ExampleComponent/ExampleComponent.js +12 -13
  123. package/lib/components/ExportModal/ExportModal.js +13 -9
  124. package/lib/components/ExpressiveCard/ExpressiveCard.js +0 -8
  125. package/lib/components/ImportModal/ImportModal.js +7 -5
  126. package/lib/components/InlineEdit/InlineEdit.js +253 -87
  127. package/lib/components/LoadingBar/LoadingBar.js +13 -17
  128. package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +0 -4
  129. package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +0 -5
  130. package/lib/components/ModifiedTabs/ModifiedTabs.js +24 -18
  131. package/lib/components/NotificationsPanel/NotificationsPanel.js +122 -87
  132. package/lib/components/OptionsTile/OptionsTile.js +6 -9
  133. package/lib/components/PageHeader/PageHeader.js +18 -12
  134. package/lib/components/PageHeader/PageHeaderTitle.js +10 -6
  135. package/lib/components/ProductiveCard/ProductiveCard.js +24 -18
  136. package/lib/components/RemoveModal/RemoveModal.js +0 -3
  137. package/lib/components/SidePanel/SidePanel.js +54 -32
  138. package/lib/components/TagSet/TagSet.js +13 -9
  139. package/lib/components/TagSet/TagSetModal.js +17 -13
  140. package/lib/components/TagSet/TagSetOverflow.js +24 -19
  141. package/lib/components/Tearsheet/Tearsheet.js +26 -17
  142. package/lib/components/Tearsheet/TearsheetNarrow.js +18 -15
  143. package/lib/components/Tearsheet/TearsheetShell.js +2 -3
  144. package/lib/components/Toolbar/ToolbarButton.js +0 -3
  145. package/lib/components/WebTerminal/WebTerminal.js +18 -19
  146. package/lib/components/index.js +8 -8
  147. package/lib/global/js/hooks/index.js +8 -0
  148. package/lib/global/js/hooks/useActiveElement.js +39 -0
  149. package/lib/global/js/package-settings.js +2 -1
  150. package/lib/global/js/utils/Wrap.js +7 -5
  151. package/lib/global/js/utils/getScrollbarWidth.js +23 -0
  152. package/lib/settings.js +0 -6
  153. package/package.json +25 -23
  154. package/scss/components/AddSelect/_add-select.scss +59 -5
  155. package/scss/components/BreadcrumbWithOverflow/_index.scss +1 -1
  156. package/scss/components/CreateInfluencer/_create-influencer.scss +4 -4
  157. package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -2
  158. package/scss/components/CreateTearsheetNarrow/_storybook-styles.scss +0 -6
  159. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +102 -0
  160. package/scss/components/{CancelableTextEdit → DataSpreadsheet}/_index.scss +2 -2
  161. package/scss/components/DataSpreadsheet/_storybook-styles.scss +6 -0
  162. package/scss/components/EditSidePanel/_storybook-styles.scss +0 -8
  163. package/scss/components/InlineEdit/_inline-edit.scss +293 -10
  164. package/scss/components/InlineEdit/_storybook-styles.scss +12 -6
  165. package/scss/components/LoadingBar/_storybook-styles.scss +0 -5
  166. package/scss/components/NotificationsPanel/_notifications-panel.scss +2 -2
  167. package/scss/components/OptionsTile/_storybook-styles.scss +0 -7
  168. package/scss/components/PageHeader/_index.scss +1 -1
  169. package/scss/components/PageHeader/_page-header.scss +4 -1
  170. package/scss/components/ProductiveCard/_productive-card.scss +0 -4
  171. package/scss/components/SidePanel/_side-panel.scss +15 -6
  172. package/scss/components/StatusIcon/_index.scss +1 -1
  173. package/scss/components/StatusIcon/_status-icon.scss +4 -4
  174. package/scss/components/TagSet/_index.scss +1 -1
  175. package/scss/components/UserProfileImage/_index.scss +1 -1
  176. package/scss/components/UserProfileImage/_user-profile-image.scss +2 -2
  177. package/scss/components/WebTerminal/_web-terminal.scss +2 -2
  178. package/scss/components/_index.scss +1 -1
  179. package/scss/global/styles/_project-settings.scss +5 -1
  180. package/es/components/CancelableTextEdit/CancelableTextEdit.js +0 -245
  181. package/es/generated/feature-flags/feature-flags.js +0 -15
  182. package/lib/components/CancelableTextEdit/CancelableTextEdit.js +0 -265
  183. package/lib/components/CancelableTextEdit/index.js +0 -13
  184. package/lib/generated/feature-flags/feature-flags.js +0 -22
  185. package/scss/components/CancelableTextEdit/_cancelable-text-edit.scss +0 -211
  186. package/scss/components/CancelableTextEdit/_storybook-styles.scss +0 -15
  187. package/scss/generated/feature-flags/_feature-flags.scss +0 -19
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.DataSpreadsheetBody = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _reactWindow = require("react-window");
19
+
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
22
+ var _settings = require("../../settings");
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
28
+ /**
29
+ * Copyright IBM Corp. 2022, 2022
30
+ *
31
+ * This source code is licensed under the Apache-2.0 license found in the
32
+ * LICENSE file in the root directory of this source tree.
33
+ */
34
+ var blockClass = "".concat(_settings.pkg.prefix, "--data-spreadsheet");
35
+
36
+ var DataSpreadsheetBody = function DataSpreadsheetBody(_ref) {
37
+ var defaultColumn = _ref.defaultColumn,
38
+ getTableBodyProps = _ref.getTableBodyProps,
39
+ id = _ref.id,
40
+ prepareRow = _ref.prepareRow,
41
+ rows = _ref.rows,
42
+ setActiveCellCoordinates = _ref.setActiveCellCoordinates,
43
+ scrollBarSize = _ref.scrollBarSize,
44
+ totalColumnsWidth = _ref.totalColumnsWidth;
45
+ // Make sure that if the cellSize prop changes, the active
46
+ // cell also gets updated with the new size
47
+ (0, _react.useEffect)(function () {
48
+ var listContainer = spreadsheetBodyRef === null || spreadsheetBodyRef === void 0 ? void 0 : spreadsheetBodyRef.current;
49
+ var activeCellButton = listContainer.querySelector(".".concat(blockClass, "__active-cell--highlight"));
50
+
51
+ if (activeCellButton) {
52
+ activeCellButton.style.height = "".concat(defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeight, "px");
53
+ }
54
+ }, [defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeight]); // onClick fn for each cell in the data spreadsheet body,
55
+ // adds the active cell highlight
56
+
57
+ var handleBodyCellClick = (0, _react.useCallback)(function (cell, columnIndex) {
58
+ setActiveCellCoordinates({
59
+ row: cell.row.index,
60
+ column: columnIndex
61
+ });
62
+ }, [setActiveCellCoordinates]); // Renders each cell in the spreadsheet body
63
+
64
+ var RenderRow = (0, _react.useCallback)(function (_ref2) {
65
+ var index = _ref2.index,
66
+ style = _ref2.style;
67
+ var row = rows[index];
68
+ prepareRow(row);
69
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, row.getRowProps({
70
+ style: style
71
+ }), {
72
+ className: (0, _classnames.default)("".concat(blockClass, "__tr")),
73
+ "data-row-index": index
74
+ }), /*#__PURE__*/_react.default.createElement("button", {
75
+ tabIndex: -1,
76
+ "data-row-index": index,
77
+ "data-column-index": "header",
78
+ type: "button",
79
+ className: (0, _classnames.default)("".concat(blockClass, "__td"), "".concat(blockClass, "__td-th"), "".concat(blockClass, "--interactive-cell-element")),
80
+ style: {
81
+ width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
82
+ }
83
+ }, index + 1), row.cells.map(function (cell, index) {
84
+ return /*#__PURE__*/_react.default.createElement("button", (0, _extends2.default)({
85
+ tabIndex: -1,
86
+ "data-row-index": cell.row.index,
87
+ "data-column-index": index
88
+ }, cell.getCellProps(), {
89
+ className: (0, _classnames.default)("".concat(blockClass, "__td"), "".concat(blockClass, "--interactive-cell-element")),
90
+ key: "cell_".concat(index),
91
+ onClick: function onClick() {
92
+ return handleBodyCellClick(cell, index);
93
+ },
94
+ type: "button"
95
+ }), cell.render('Cell'));
96
+ }));
97
+ }, [prepareRow, rows, defaultColumn.rowHeaderWidth, handleBodyCellClick]);
98
+ var spreadsheetBodyRef = (0, _react.useRef)();
99
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
100
+ ref: spreadsheetBodyRef,
101
+ className: (0, _classnames.default)("".concat(blockClass, "__body--container"))
102
+ }, getTableBodyProps()), /*#__PURE__*/_react.default.createElement(_reactWindow.FixedSizeList, {
103
+ className: (0, _classnames.default)("".concat(blockClass, "__list--container"), "".concat(blockClass, "__list--container--").concat(id)),
104
+ height: 400,
105
+ itemCount: rows.length,
106
+ itemSize: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeight,
107
+ width: totalColumnsWidth + scrollBarSize
108
+ }, RenderRow));
109
+ };
110
+
111
+ exports.DataSpreadsheetBody = DataSpreadsheetBody;
112
+ DataSpreadsheetBody.propTypes = {
113
+ /**
114
+ * Default spreadsheet sizing values
115
+ */
116
+ defaultColumn: _propTypes.default.shape({
117
+ rowHeight: _propTypes.default.number,
118
+ rowHeaderWidth: _propTypes.default.number,
119
+ width: _propTypes.default.number
120
+ }),
121
+
122
+ /**
123
+ * Function to set table body prop values
124
+ */
125
+ getTableBodyProps: _propTypes.default.func,
126
+
127
+ /**
128
+ * The spreadsheet id
129
+ */
130
+ id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
131
+
132
+ /**
133
+ * The event handler that is called when the active cell changes
134
+ */
135
+ onActiveCellChange: _propTypes.default.func,
136
+
137
+ /**
138
+ * Prepare row function from react-table
139
+ */
140
+ prepareRow: _propTypes.default.func,
141
+
142
+ /**
143
+ * All of the spreadsheet row data
144
+ */
145
+ rows: _propTypes.default.arrayOf(_propTypes.default.object),
146
+
147
+ /**
148
+ * The scrollbar width
149
+ */
150
+ scrollBarSize: _propTypes.default.number,
151
+
152
+ /**
153
+ * Setter fn for activeCellCoordinates state value
154
+ */
155
+ setActiveCellCoordinates: _propTypes.default.func,
156
+
157
+ /**
158
+ * The total columns width
159
+ */
160
+ totalColumnsWidth: _propTypes.default.number
161
+ };
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DataSpreadsheetHeader = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+
18
+ var _settings = require("../../settings");
19
+
20
+ /**
21
+ * Copyright IBM Corp. 2022, 2022
22
+ *
23
+ * This source code is licensed under the Apache-2.0 license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */
26
+ var blockClass = "".concat(_settings.pkg.prefix, "--data-spreadsheet");
27
+
28
+ var DataSpreadsheetHeader = function DataSpreadsheetHeader(_ref) {
29
+ var defaultColumn = _ref.defaultColumn,
30
+ headerGroups = _ref.headerGroups;
31
+ return /*#__PURE__*/_react.default.createElement("div", {
32
+ className: (0, _classnames.default)("".concat(blockClass, "__header--container"))
33
+ }, headerGroups.map(function (headerGroup, index) {
34
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
35
+ key: "header_".concat(index)
36
+ }, headerGroup.getHeaderGroupProps(), {
37
+ className: "".concat(blockClass, "__tr")
38
+ }), /*#__PURE__*/_react.default.createElement("button", {
39
+ "data-row-index": "header",
40
+ "data-column-index": "header",
41
+ type: "button",
42
+ tabIndex: -1,
43
+ className: (0, _classnames.default)("".concat(blockClass, "__th"), "".concat(blockClass, "--interactive-cell-element")),
44
+ style: {
45
+ width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth,
46
+ height: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeight
47
+ }
48
+ }, "\xA0"), headerGroup.headers.map(function (column, index) {
49
+ return /*#__PURE__*/_react.default.createElement("button", (0, _extends2.default)({
50
+ key: "column_".concat(index),
51
+ "data-row-index": "header",
52
+ "data-column-index": index,
53
+ tabIndex: -1,
54
+ style: {
55
+ height: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeight
56
+ }
57
+ }, column.getHeaderProps(), {
58
+ className: (0, _classnames.default)("".concat(blockClass, "__th"), "".concat(blockClass, "--interactive-cell-element")),
59
+ type: "button"
60
+ }), column.render('Header'));
61
+ }));
62
+ }));
63
+ };
64
+
65
+ exports.DataSpreadsheetHeader = DataSpreadsheetHeader;
66
+ DataSpreadsheetHeader.propTypes = {
67
+ /**
68
+ * Default spreadsheet sizing values
69
+ */
70
+ defaultColumn: _propTypes.default.shape({
71
+ rowHeight: _propTypes.default.number,
72
+ rowHeaderWidth: _propTypes.default.number,
73
+ width: _propTypes.default.number
74
+ }),
75
+
76
+ /**
77
+ * Headers provided from useTable hook
78
+ */
79
+ headerGroups: _propTypes.default.arrayOf(_propTypes.default.object)
80
+ };
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createActiveCellFn = void 0;
7
+
8
+ var _layout = require("@carbon/layout");
9
+
10
+ var _settings = require("../../settings");
11
+
12
+ /**
13
+ * Copyright IBM Corp. 2022, 2022
14
+ *
15
+ * This source code is licensed under the Apache-2.0 license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */
18
+ var createActiveCellFn = function createActiveCellFn(_ref) {
19
+ var placementElement = _ref.placementElement,
20
+ coords = _ref.coords,
21
+ _ref$addToHeader = _ref.addToHeader,
22
+ addToHeader = _ref$addToHeader === void 0 ? false : _ref$addToHeader,
23
+ contextRef = _ref.contextRef,
24
+ _ref$blockClass = _ref.blockClass,
25
+ blockClass = _ref$blockClass === void 0 ? "".concat(_settings.pkg.prefix, "--data-spreadsheet") : _ref$blockClass,
26
+ onActiveCellChange = _ref.onActiveCellChange,
27
+ activeCellValue = _ref.activeCellValue;
28
+
29
+ if (!coords) {
30
+ return;
31
+ } // If the active cell is in the column header row (very first), we need to append this element
32
+ // to `.${blockClass}__header--container`, otherwise it should be appended to `.${blockClass}__listContainer` firstElementChild
33
+
34
+
35
+ var activeElementContainer = addToHeader ? contextRef === null || contextRef === void 0 ? void 0 : contextRef.current.querySelector(".".concat(blockClass, "__header--container")) : contextRef === null || contextRef === void 0 ? void 0 : contextRef.current.querySelector(".".concat(blockClass, "__list--container")).firstElementChild;
36
+ var relativePosition = {
37
+ top: placementElement.getBoundingClientRect().top - activeElementContainer.getBoundingClientRect().top,
38
+ left: placementElement.getBoundingClientRect().left - activeElementContainer.getBoundingClientRect().left
39
+ };
40
+ var activeCellButton = (contextRef === null || contextRef === void 0 ? void 0 : contextRef.current.querySelector(".".concat(blockClass, "__active-cell--highlight"))) || document.createElement('button');
41
+ activeCellButton.classList.add("".concat(blockClass, "__active-cell--highlight"), "".concat(blockClass, "--interactive-cell-element"));
42
+ activeCellButton.style.width = (0, _layout.px)(placementElement === null || placementElement === void 0 ? void 0 : placementElement.offsetWidth);
43
+ activeCellButton.style.height = (0, _layout.px)(placementElement === null || placementElement === void 0 ? void 0 : placementElement.offsetHeight);
44
+ activeCellButton.style.left = (0, _layout.px)(relativePosition.left);
45
+ activeCellButton.style.top = (0, _layout.px)(relativePosition.top);
46
+ activeCellButton.setAttribute('data-active-row-index', typeof (coords === null || coords === void 0 ? void 0 : coords.row) === 'number' ? coords.row : 'header');
47
+ activeCellButton.setAttribute('data-active-column-index', typeof (coords === null || coords === void 0 ? void 0 : coords.column) === 'number' ? coords.column : 'header');
48
+ activeElementContainer.appendChild(activeCellButton);
49
+ activeCellButton.focus();
50
+
51
+ if (typeof (coords === null || coords === void 0 ? void 0 : coords.column) === 'number' && typeof (coords === null || coords === void 0 ? void 0 : coords.row) === 'number') {
52
+ onActiveCellChange(activeCellValue);
53
+ }
54
+ };
55
+
56
+ exports.createActiveCellFn = createActiveCellFn;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.generateData = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+
16
+ // cspell:disable
17
+ var pets = ['dog', 'cat', 'bird', 'lizard', 'frog', 'hamster', 'fish', 'rabbit', 'snake'];
18
+ var petNames = ['Bruno', 'Willow', 'Kona', 'Heidi', 'Rusty', 'Bonnie', 'Cash', 'Gucci', 'Brody', 'Emma', 'Loki', 'Angel', 'Astro', 'Sherman', 'Layla', 'Peanut', 'Grace', 'Mickey', 'Sasha', 'Finn', 'Tucker', 'Bear', 'Mocha', 'Roscoe']; // cspell:enable
19
+
20
+ var range = function range(len) {
21
+ var arr = [];
22
+
23
+ for (var i = 0; i < len; i++) {
24
+ arr.push(i);
25
+ }
26
+
27
+ return arr;
28
+ };
29
+
30
+ var newPet = function newPet() {
31
+ return {
32
+ petType: pets[Math.floor(Math.random() * pets.length)],
33
+ firstName: petNames[Math.floor(Math.random() * petNames.length)],
34
+ age: Math.floor(Math.random() * 30),
35
+ visits: Math.floor(Math.random() * 40),
36
+ health: Math.floor(Math.random() * 100)
37
+ };
38
+ };
39
+
40
+ var generateData = function generateData() {
41
+ for (var _len = arguments.length, lens = new Array(_len), _key = 0; _key < _len; _key++) {
42
+ lens[_key] = arguments[_key];
43
+ }
44
+
45
+ var makeDataLevel = function makeDataLevel() {
46
+ var depth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
47
+ var len = lens[depth];
48
+ return range(len).map(function () {
49
+ return _objectSpread(_objectSpread({}, newPet()), {}, {
50
+ subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined
51
+ });
52
+ });
53
+ };
54
+
55
+ return makeDataLevel();
56
+ };
57
+
58
+ exports.generateData = generateData;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCellSize = void 0;
7
+
8
+ var _layout = require("@carbon/layout");
9
+
10
+ /**
11
+ * Copyright IBM Corp. 2022, 2022
12
+ *
13
+ * This source code is licensed under the Apache-2.0 license found in the
14
+ * LICENSE file in the root directory of this source tree.
15
+ */
16
+ var getSizeInPixels = function getSizeInPixels(carbonSize) {
17
+ return Number(carbonSize.replace('rem', '') * _layout.baseFontSize);
18
+ };
19
+
20
+ var getCellSize = function getCellSize(cellSize) {
21
+ switch (cellSize) {
22
+ case 'compact':
23
+ return getSizeInPixels(_layout.sizeXSmall);
24
+
25
+ case 'standard':
26
+ return getSizeInPixels(_layout.sizeSmall);
27
+
28
+ case 'medium':
29
+ return getSizeInPixels(_layout.sizeMedium);
30
+
31
+ case 'large':
32
+ return getSizeInPixels(_layout.sizeLarge);
33
+
34
+ default:
35
+ return getSizeInPixels(_layout.sizeSmall);
36
+ }
37
+ };
38
+
39
+ exports.getCellSize = getCellSize;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "DataSpreadsheet", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _DataSpreadsheet.DataSpreadsheet;
10
+ }
11
+ });
12
+
13
+ var _DataSpreadsheet = require("./DataSpreadsheet");
@@ -41,7 +41,12 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
41
41
  var blockClass = "".concat(_settings.pkg.prefix, "--edit-side-panel");
42
42
  var sidePanelBlockClass = "".concat(_settings.pkg.prefix, "--side-panel");
43
43
  var componentName = 'EditSidePanel'; // NOTE: the component SCSS is not imported here: it is rolled up separately.
44
+ // Default values for props
44
45
 
46
+ var defaults = {
47
+ placement: 'right',
48
+ size: 'md'
49
+ };
45
50
  /**
46
51
  * TODO: A description of the component.
47
52
  */
@@ -55,12 +60,14 @@ var EditSidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
55
60
  onRequestClose = _ref.onRequestClose,
56
61
  onRequestSubmit = _ref.onRequestSubmit,
57
62
  open = _ref.open,
58
- placement = _ref.placement,
63
+ _ref$placement = _ref.placement,
64
+ placement = _ref$placement === void 0 ? defaults.placement : _ref$placement,
59
65
  primaryButtonText = _ref.primaryButtonText,
60
66
  secondaryButtonText = _ref.secondaryButtonText,
61
67
  selectorPrimaryFocus = _ref.selectorPrimaryFocus,
62
68
  selectorPageContent = _ref.selectorPageContent,
63
- size = _ref.size,
69
+ _ref$size = _ref.size,
70
+ size = _ref$size === void 0 ? defaults.size : _ref$size,
64
71
  slideIn = _ref.slideIn,
65
72
  subtitle = _ref.subtitle,
66
73
  title = _ref.title,
@@ -209,12 +216,4 @@ EditSidePanel.propTypes = {
209
216
  * The title of the CreateSidePanel is usually the product or service name.
210
217
  */
211
218
  title: _propTypes.default.node.isRequired
212
- }; // Default values for component props. Default values are not required for
213
- // props that are required, nor for props where the component can apply
214
- // 'undefined' values reasonably. Default values should be provided when the
215
- // component needs to make a choice or assumption when a prop is not supplied.
216
-
217
- EditSidePanel.defaultProps = {
218
- placement: 'right',
219
- size: 'md'
220
219
  };
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.EmptyStateDefaultProps = exports.EmptyState = void 0;
8
+ exports.defaults = exports.EmptyState = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
@@ -37,7 +37,12 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
37
37
 
38
38
  // The block part of our conventional BEM class names (blockClass__E--M).
39
39
  var blockClass = "".concat(_settings.pkg.prefix, "--empty-state");
40
- var componentName = 'EmptyState';
40
+ var componentName = 'EmptyState'; // Default values for props
41
+
42
+ var defaults = {
43
+ size: 'lg'
44
+ };
45
+ exports.defaults = defaults;
41
46
 
42
47
  var EmptyState = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
43
48
  var action = _ref.action,
@@ -45,7 +50,8 @@ var EmptyState = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
45
50
  illustration = _ref.illustration,
46
51
  illustrationDescription = _ref.illustrationDescription,
47
52
  link = _ref.link,
48
- size = _ref.size,
53
+ _ref$size = _ref.size,
54
+ size = _ref$size === void 0 ? defaults.size : _ref$size,
49
55
  subtitle = _ref.subtitle,
50
56
  title = _ref.title,
51
57
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -73,10 +79,6 @@ var EmptyState = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
73
79
 
74
80
  exports.EmptyState = EmptyState;
75
81
  exports.EmptyState = EmptyState = _settings.pkg.checkComponentEnabled(EmptyState, componentName);
76
- var EmptyStateDefaultProps = {
77
- size: 'lg'
78
- };
79
- exports.EmptyStateDefaultProps = EmptyStateDefaultProps;
80
82
  EmptyState.propTypes = {
81
83
  /**
82
84
  * Empty state action button
@@ -123,12 +125,11 @@ EmptyState.propTypes = {
123
125
  /**
124
126
  * Empty state subtext
125
127
  */
126
- subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired,
128
+ subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
127
129
 
128
130
  /**
129
131
  * Empty state heading
130
132
  */
131
133
  title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired
132
134
  };
133
- EmptyState.defaultProps = EmptyStateDefaultProps;
134
135
  EmptyState.displayName = componentName;
@@ -37,7 +37,7 @@ var EmptyStateContent = function EmptyStateContent(_ref) {
37
37
  title = _ref.title;
38
38
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h3", {
39
39
  className: (0, _classnames.default)("".concat(blockClass, "__header"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__header--small"), size === 'sm'))
40
- }, title), /*#__PURE__*/_react.default.createElement("p", {
40
+ }, title), subtitle && /*#__PURE__*/_react.default.createElement("p", {
41
41
  className: (0, _classnames.default)("".concat(blockClass, "__subtitle"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__subtitle--small"), size === 'sm'))
42
42
  }, subtitle), (action === null || action === void 0 ? void 0 : action.text) && (action === null || action === void 0 ? void 0 : action.onClick) && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, (0, _extends2.default)({}, action, {
43
43
  className: "".concat(blockClass, "__action-button"),
@@ -85,7 +85,7 @@ EmptyStateContent.propTypes = {
85
85
  /**
86
86
  * Empty state subtitle
87
87
  */
88
- subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired,
88
+ subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
89
89
 
90
90
  /**
91
91
  * Empty state title
@@ -46,7 +46,8 @@ var ErrorEmptyState = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
46
46
  className = _ref.className,
47
47
  illustrationTheme = _ref.illustrationTheme,
48
48
  link = _ref.link,
49
- size = _ref.size,
49
+ _ref$size = _ref.size,
50
+ size = _ref$size === void 0 ? _EmptyState.defaults.size : _ref$size,
50
51
  subtitle = _ref.subtitle,
51
52
  title = _ref.title,
52
53
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -114,15 +115,10 @@ ErrorEmptyState.propTypes = {
114
115
  /**
115
116
  * Empty state subtitle
116
117
  */
117
- subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired,
118
+ subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
118
119
 
119
120
  /**
120
121
  * Empty state title
121
122
  */
122
123
  title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired
123
- }; // Default values for component props. Default values are not required for
124
- // props that are required, nor for props where the component can apply
125
- // 'undefined' values reasonably. Default values should be provided when the
126
- // component needs to make a choice or assumption when a prop is not supplied.
127
-
128
- ErrorEmptyState.defaultProps = _EmptyState.EmptyStateDefaultProps;
124
+ };
@@ -46,7 +46,8 @@ var NoDataEmptyState = /*#__PURE__*/_react.default.forwardRef(function (_ref, re
46
46
  className = _ref.className,
47
47
  illustrationTheme = _ref.illustrationTheme,
48
48
  link = _ref.link,
49
- size = _ref.size,
49
+ _ref$size = _ref.size,
50
+ size = _ref$size === void 0 ? _EmptyState.defaults.size : _ref$size,
50
51
  subtitle = _ref.subtitle,
51
52
  title = _ref.title,
52
53
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -114,15 +115,10 @@ NoDataEmptyState.propTypes = {
114
115
  /**
115
116
  * Empty state subtitle
116
117
  */
117
- subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired,
118
+ subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
118
119
 
119
120
  /**
120
121
  * Empty state title
121
122
  */
122
123
  title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired
123
- }; // Default values for component props. Default values are not required for
124
- // props that are required, nor for props where the component can apply
125
- // 'undefined' values reasonably. Default values should be provided when the
126
- // component needs to make a choice or assumption when a prop is not supplied.
127
-
128
- NoDataEmptyState.defaultProps = _EmptyState.EmptyStateDefaultProps;
124
+ };
@@ -46,7 +46,8 @@ var NoTagsEmptyState = /*#__PURE__*/_react.default.forwardRef(function (_ref, re
46
46
  className = _ref.className,
47
47
  illustrationTheme = _ref.illustrationTheme,
48
48
  link = _ref.link,
49
- size = _ref.size,
49
+ _ref$size = _ref.size,
50
+ size = _ref$size === void 0 ? _EmptyState.defaults.size : _ref$size,
50
51
  subtitle = _ref.subtitle,
51
52
  title = _ref.title,
52
53
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -114,15 +115,10 @@ NoTagsEmptyState.propTypes = {
114
115
  /**
115
116
  * Empty state subtitle
116
117
  */
117
- subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired,
118
+ subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
118
119
 
119
120
  /**
120
121
  * Empty state title
121
122
  */
122
123
  title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired
123
- }; // Default values for component props. Default values are not required for
124
- // props that are required, nor for props where the component can apply
125
- // 'undefined' values reasonably. Default values should be provided when the
126
- // component needs to make a choice or assumption when a prop is not supplied.
127
-
128
- NoTagsEmptyState.defaultProps = _EmptyState.EmptyStateDefaultProps;
124
+ };
@@ -46,7 +46,8 @@ var NotFoundEmptyState = /*#__PURE__*/_react.default.forwardRef(function (_ref,
46
46
  className = _ref.className,
47
47
  illustrationTheme = _ref.illustrationTheme,
48
48
  link = _ref.link,
49
- size = _ref.size,
49
+ _ref$size = _ref.size,
50
+ size = _ref$size === void 0 ? _EmptyState.defaults.size : _ref$size,
50
51
  subtitle = _ref.subtitle,
51
52
  title = _ref.title,
52
53
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -114,15 +115,10 @@ NotFoundEmptyState.propTypes = {
114
115
  /**
115
116
  * Empty state subtitle
116
117
  */
117
- subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired,
118
+ subtitle: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
118
119
 
119
120
  /**
120
121
  * Empty state title
121
122
  */
122
123
  title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired
123
- }; // Default values for component props. Default values are not required for
124
- // props that are required, nor for props where the component can apply
125
- // 'undefined' values reasonably. Default values should be provided when the
126
- // component needs to make a choice or assumption when a prop is not supplied.
127
-
128
- NotFoundEmptyState.defaultProps = _EmptyState.EmptyStateDefaultProps;
124
+ };