@carbon/ibm-products 2.21.0 → 2.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. package/README.md +8 -4
  2. package/css/index-full-carbon.css +559 -357
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +1 -1
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +227 -267
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +1 -1
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +271 -295
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +1 -1
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +251 -298
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +1 -1
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/Datagrid/Datagrid/DatagridContent.js +8 -3
  19. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +14 -4
  20. package/es/components/Datagrid/Datagrid/DatagridRow.js +6 -1
  21. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -3
  22. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +2 -2
  23. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +30 -72
  24. package/es/components/Datagrid/Datagrid/addons/Slug/ColumnHeaderSlug.js +26 -0
  25. package/es/components/Datagrid/useDefaultStringRenderer.js +3 -3
  26. package/es/components/Datagrid/useRowIsMouseOver.js +3 -1
  27. package/es/components/Datagrid/useSortableColumns.js +15 -5
  28. package/es/components/DelimitedList/DelimitedList.docs-page.js +15 -0
  29. package/es/components/DelimitedList/DelimitedList.js +73 -0
  30. package/es/components/DelimitedList/index.js +8 -0
  31. package/es/components/FilterSummary/FilterSummary.js +100 -19
  32. package/es/components/SidePanel/SidePanel.js +145 -189
  33. package/es/components/TagSet/TagSet.js +31 -7
  34. package/es/components/TagSet/TagSetOverflow.js +13 -8
  35. package/es/components/index.js +2 -1
  36. package/es/global/js/hooks/useResizeObserver.js +5 -2
  37. package/es/global/js/package-settings.js +1 -0
  38. package/lib/components/Datagrid/Datagrid/DatagridContent.js +8 -3
  39. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +14 -4
  40. package/lib/components/Datagrid/Datagrid/DatagridRow.js +6 -1
  41. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -3
  42. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +2 -2
  43. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +30 -72
  44. package/lib/components/Datagrid/Datagrid/addons/Slug/ColumnHeaderSlug.js +36 -0
  45. package/lib/components/Datagrid/useDefaultStringRenderer.js +3 -3
  46. package/lib/components/Datagrid/useRowIsMouseOver.js +3 -1
  47. package/lib/components/Datagrid/useSortableColumns.js +15 -5
  48. package/lib/components/DelimitedList/DelimitedList.docs-page.js +25 -0
  49. package/lib/components/DelimitedList/DelimitedList.js +78 -0
  50. package/lib/components/DelimitedList/index.js +12 -0
  51. package/lib/components/FilterSummary/FilterSummary.js +103 -23
  52. package/lib/components/SidePanel/SidePanel.js +145 -189
  53. package/lib/components/TagSet/TagSet.js +31 -7
  54. package/lib/components/TagSet/TagSetOverflow.js +12 -7
  55. package/lib/components/index.js +8 -1
  56. package/lib/global/js/hooks/useResizeObserver.js +5 -2
  57. package/lib/global/js/package-settings.js +1 -0
  58. package/package.json +9 -8
  59. package/scss/components/CreateSidePanel/_create-side-panel.scss +1 -38
  60. package/scss/components/Datagrid/_datagrid.scss +4 -0
  61. package/scss/components/Datagrid/styles/_datagrid.scss +24 -1
  62. package/scss/components/Datagrid/styles/_useStickyColumn.scss +2 -0
  63. package/scss/components/DelimitedList/_carbon-imports.scss +9 -0
  64. package/scss/components/DelimitedList/_delimited-list.scss +27 -0
  65. package/scss/components/DelimitedList/_index-with-carbon.scss +9 -0
  66. package/scss/components/DelimitedList/_index.scss +8 -0
  67. package/scss/components/EditSidePanel/_edit-side-panel.scss +0 -18
  68. package/scss/components/FilterSummary/_filter-summary.scss +22 -1
  69. package/scss/components/SidePanel/_side-panel-variables.scss +5 -1
  70. package/scss/components/SidePanel/_side-panel.scss +155 -187
  71. package/scss/components/_index-with-carbon.scss +1 -0
  72. package/scss/components/_index.scss +1 -0
  73. package/telemetry.yml +790 -0
@@ -7,20 +7,26 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
- var _react = require("@carbon/react");
13
- var _react2 = _interopRequireWildcard(require("react"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _react2 = require("@carbon/react");
15
+ var _framerMotion = require("framer-motion");
16
+ var _icons = require("@carbon/react/icons");
14
17
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
18
  var _classnames = _interopRequireDefault(require("classnames"));
16
19
  var _TagSet = require("../TagSet");
17
20
  var _settings = require("../../settings");
18
21
  var _uuidv = _interopRequireDefault(require("../../global/js/utils/uuidv4"));
22
+ var _motionConstants = require("../../global/js/utils/motionConstants");
23
+ var _hooks = require("../../global/js/hooks");
24
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
19
25
  var _devtools = require("../../global/js/utils/devtools");
20
26
  var _excluded = ["className", "clearFiltersText", "clearFilters", "filters", "renderLabel", "overflowType", "clearButtonInline"],
21
27
  _excluded2 = ["key", "value"];
22
28
  /**
23
- * Copyright IBM Corp. 2022, 2023
29
+ * Copyright IBM Corp. 2022, 2024
24
30
  *
25
31
  * This source code is licensed under the Apache-2.0 license found in the
26
32
  * LICENSE file in the root directory of this source tree.
@@ -30,8 +36,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
30
36
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
37
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
38
  var blockClass = "".concat(_settings.pkg.prefix, "--filter-summary");
33
- var FilterSummary = /*#__PURE__*/_react2.default.forwardRef(function (_ref, ref) {
34
- var _filterSummaryClearBu;
39
+ var FilterSummary = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
40
+ var _viewAllButtonRef$cur, _filterSummaryClearBu;
35
41
  var _ref$className = _ref.className,
36
42
  className = _ref$className === void 0 ? '' : _ref$className,
37
43
  _ref$clearFiltersText = _ref.clearFiltersText,
@@ -56,30 +62,104 @@ var FilterSummary = /*#__PURE__*/_react2.default.forwardRef(function (_ref, ref)
56
62
  label: (_renderLabel = renderLabel === null || renderLabel === void 0 ? void 0 : renderLabel(key, value)) !== null && _renderLabel !== void 0 ? _renderLabel : "".concat(key, ": ").concat(value)
57
63
  });
58
64
  });
59
- var filterSummaryClearButton = (0, _react2.useRef)();
60
- var filterSummaryRef = (0, _react2.useRef)();
61
- var localRef = ref || filterSummaryRef;
62
- return /*#__PURE__*/_react2.default.createElement("div", (0, _extends2.default)({}, (0, _devtools.getDevtoolsProps)(componentName), {
65
+ var filterSummaryClearButton = (0, _react.useRef)();
66
+ var viewAllButtonRef = (0, _react.useRef)();
67
+ var filterSummaryRef = (0, _react.useRef)();
68
+ var localRef = filterSummaryRef || ref;
69
+ var _useState = (0, _react.useState)(0),
70
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
71
+ overflowCount = _useState2[0],
72
+ setOverflowCount = _useState2[1];
73
+ var _useState3 = (0, _react.useState)(false),
74
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
75
+ multiline = _useState4[0],
76
+ setMultiline = _useState4[1];
77
+ var previousState = (0, _hooks.usePreviousValue)({
78
+ multiline: multiline
79
+ });
80
+ var handleViewAll = function handleViewAll() {
81
+ if (overflowCount === 0) {
82
+ setMultiline(false);
83
+ return;
84
+ }
85
+ setMultiline(function (prev) {
86
+ return !prev;
87
+ });
88
+ };
89
+ var viewAllWidth = typeof (viewAllButtonRef === null || viewAllButtonRef === void 0 || (_viewAllButtonRef$cur = viewAllButtonRef.current) === null || _viewAllButtonRef$cur === void 0 ? void 0 : _viewAllButtonRef$cur.offsetWidth) === 'undefined' ? 0 : overflowCount > 0 ? 48 : 0;
90
+ var measurementOffset = (filterSummaryClearButton === null || filterSummaryClearButton === void 0 || (_filterSummaryClearBu = filterSummaryClearButton.current) === null || _filterSummaryClearBu === void 0 ? void 0 : _filterSummaryClearBu.offsetWidth) + viewAllWidth;
91
+ var renderTagSet = function renderTagSet(type) {
92
+ return /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, {
93
+ key: type,
94
+ initial: {
95
+ opacity: 0,
96
+ y: -16
97
+ },
98
+ animate: {
99
+ opacity: 1,
100
+ y: 0
101
+ },
102
+ exit: {
103
+ opacity: 0,
104
+ y: -16
105
+ },
106
+ transition: {
107
+ duration: _motionConstants.DURATIONS.moderate01,
108
+ ease: _motionConstants.EASINGS.productive.entrance
109
+ }
110
+ }, /*#__PURE__*/_react.default.createElement(_TagSet.TagSet, {
111
+ allTagsModalSearchLabel: "Search all tags",
112
+ allTagsModalSearchPlaceholderText: "Search all tags",
113
+ allTagsModalTitle: "All tags",
114
+ showAllTagsLabel: "View all tags",
115
+ tags: tagFilters,
116
+ overflowType: overflowType,
117
+ className: (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__clear-button-inline"), clearButtonInline)),
118
+ containingElementRef: localRef,
119
+ measurementOffset: measurementOffset,
120
+ onOverflowTagChange: function onOverflowTagChange(overflowTags) {
121
+ return setOverflowCount(overflowTags.length);
122
+ },
123
+ multiline: multiline
124
+ }));
125
+ };
126
+ (0, _hooks.useWindowResize)(function () {
127
+ var handleFilterSummaryResize = function handleFilterSummaryResize() {
128
+ var _localRef$current;
129
+ if (multiline && (localRef === null || localRef === void 0 || (_localRef$current = localRef.current) === null || _localRef$current === void 0 ? void 0 : _localRef$current.offsetHeight) <= 50) {
130
+ setMultiline(false);
131
+ }
132
+ };
133
+ var filterResize = (0, _debounce.default)(handleFilterSummaryResize, 500);
134
+ filterResize();
135
+ }, [previousState === null || previousState === void 0 ? void 0 : previousState.multiline, multiline]);
136
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, (0, _devtools.getDevtoolsProps)(componentName), {
63
137
  id: filterSummaryId
64
138
  }, rest, {
65
139
  ref: localRef,
66
- className: (0, _classnames.default)([blockClass, className])
67
- }), /*#__PURE__*/_react2.default.createElement(_TagSet.TagSet, {
68
- allTagsModalSearchLabel: "Search all tags",
69
- allTagsModalSearchPlaceholderText: "Search all tags",
70
- allTagsModalTitle: "All tags",
71
- showAllTagsLabel: "View all tags",
72
- tags: tagFilters,
73
- overflowType: overflowType,
74
- className: (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__clear-button-inline"), clearButtonInline)),
75
- containingElementRef: localRef,
76
- measurementOffset: filterSummaryClearButton === null || filterSummaryClearButton === void 0 || (_filterSummaryClearBu = filterSummaryClearButton.current) === null || _filterSummaryClearBu === void 0 ? void 0 : _filterSummaryClearBu.offsetWidth
77
- }), /*#__PURE__*/_react2.default.createElement(_react.Button, {
140
+ className: (0, _classnames.default)([blockClass, className], (0, _defineProperty2.default)({}, "".concat(blockClass, "__expanded"), multiline))
141
+ }), /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, {
142
+ mode: "wait",
143
+ exitBeforeEnter: true
144
+ }, !multiline && renderTagSet('single'), multiline && renderTagSet('multiline')), /*#__PURE__*/_react.default.createElement(_react2.Button, {
78
145
  kind: "ghost",
79
146
  size: "sm",
80
147
  onClick: clearFilters,
81
- ref: filterSummaryClearButton
82
- }, clearFiltersText));
148
+ ref: filterSummaryClearButton,
149
+ className: "".concat(blockClass, "__clear-all-button")
150
+ }, clearFiltersText), (overflowCount > 0 || multiline) && /*#__PURE__*/_react.default.createElement("div", {
151
+ className: "".concat(blockClass, "__view-all--wrapper")
152
+ }, /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
153
+ ref: viewAllButtonRef,
154
+ kind: "ghost",
155
+ label: 'View all',
156
+ className: "".concat(blockClass, "__view-all--trigger"),
157
+ align: "left",
158
+ onClick: handleViewAll,
159
+ size: "sm"
160
+ }, /*#__PURE__*/_react.default.createElement(_icons.ChevronDown, {
161
+ className: (0, _classnames.default)("".concat(blockClass, "__view-all--chevron"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__view-all--chevron-multiline"), multiline))
162
+ }))));
83
163
  });
84
164
  var componentName = 'FilterSummary';
85
165
  FilterSummary.displayName = componentName;