@carbon/ibm-products 2.38.0 → 2.39.0
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +227 -0
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +1 -1
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon.css +227 -0
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +1 -1
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +227 -0
- package/css/index.css.map +1 -1
- package/css/index.min.css +1 -1
- package/css/index.min.css.map +1 -1
- package/es/components/Card/Card.js +50 -9
- package/es/components/Card/CardFooter.d.ts +5 -1
- package/es/components/Card/CardFooter.js +11 -1
- package/es/components/Carousel/Carousel.d.ts +6 -2
- package/es/components/Checklist/Checklist.d.ts +100 -2
- package/es/components/Checklist/Checklist.js +9 -5
- package/es/components/Checklist/Checklist.types.d.ts +19 -0
- package/es/components/Checklist/Checklist.types.js +22 -0
- package/es/components/Checklist/ChecklistChart.d.ts +5 -1
- package/es/components/Checklist/ChecklistChart.js +9 -4
- package/es/components/Checklist/ChecklistIcon.d.ts +5 -1
- package/es/components/Checklist/ChecklistIcon.js +9 -4
- package/es/components/CoachmarkButton/CoachmarkButton.d.ts +19 -2
- package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.d.ts +46 -2
- package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +5 -4
- package/es/components/CreateInfluencer/CreateInfluencer.d.ts +55 -17
- package/es/components/DataSpreadsheet/DataSpreadsheet.d.ts +67 -2
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +48 -27
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +139 -2
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +46 -31
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +89 -2
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +34 -25
- package/es/components/DataSpreadsheet/types/index.d.ts +30 -0
- package/es/components/GetStartedCard/GetStartedCard.d.ts +5 -0
- package/es/components/GetStartedCard/GetStartedCard.js +82 -0
- package/es/components/GetStartedCard/index.d.ts +1 -0
- package/es/components/Guidebanner/Guidebanner.js +2 -2
- package/es/components/NotificationsPanel/NotificationsPanel.d.ts +162 -1
- package/es/components/NotificationsPanel/NotificationsPanel.js +10 -10
- package/es/components/SidePanel/SidePanel.js +1 -1
- package/es/components/TagOverflow/TagOverflow.d.ts +5 -0
- package/es/components/TagOverflow/TagOverflow.js +153 -29
- package/es/components/TagOverflow/TagOverflowModal.d.ts +29 -0
- package/es/components/TagOverflow/TagOverflowModal.js +112 -0
- package/es/components/TagOverflow/TagOverflowPopover.d.ts +2 -0
- package/es/components/TagOverflow/TagOverflowPopover.js +135 -0
- package/es/components/index.d.ts +1 -0
- package/es/global/js/package-settings.d.ts +1 -0
- package/es/global/js/package-settings.js +1 -0
- package/es/index.js +1 -0
- package/es/settings.d.ts +1 -0
- package/lib/components/Card/Card.js +50 -9
- package/lib/components/Card/CardFooter.d.ts +5 -1
- package/lib/components/Card/CardFooter.js +11 -1
- package/lib/components/Carousel/Carousel.d.ts +6 -2
- package/lib/components/Checklist/Checklist.d.ts +100 -2
- package/lib/components/Checklist/Checklist.js +9 -5
- package/lib/components/Checklist/Checklist.types.d.ts +19 -0
- package/lib/components/Checklist/Checklist.types.js +27 -0
- package/lib/components/Checklist/ChecklistChart.d.ts +5 -1
- package/lib/components/Checklist/ChecklistChart.js +14 -9
- package/lib/components/Checklist/ChecklistIcon.d.ts +5 -1
- package/lib/components/Checklist/ChecklistIcon.js +9 -4
- package/lib/components/CoachmarkButton/CoachmarkButton.d.ts +19 -2
- package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.d.ts +46 -2
- package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +5 -4
- package/lib/components/CreateInfluencer/CreateInfluencer.d.ts +55 -17
- package/lib/components/DataSpreadsheet/DataSpreadsheet.d.ts +67 -2
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +48 -27
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +139 -2
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +46 -31
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +89 -2
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +34 -25
- package/lib/components/DataSpreadsheet/types/index.d.ts +30 -0
- package/lib/components/GetStartedCard/GetStartedCard.d.ts +5 -0
- package/lib/components/GetStartedCard/GetStartedCard.js +88 -0
- package/lib/components/GetStartedCard/index.d.ts +1 -0
- package/lib/components/Guidebanner/Guidebanner.js +2 -2
- package/lib/components/NotificationsPanel/NotificationsPanel.d.ts +162 -1
- package/lib/components/NotificationsPanel/NotificationsPanel.js +10 -10
- package/lib/components/SidePanel/SidePanel.js +1 -1
- package/lib/components/TagOverflow/TagOverflow.d.ts +5 -0
- package/lib/components/TagOverflow/TagOverflow.js +154 -28
- package/lib/components/TagOverflow/TagOverflowModal.d.ts +29 -0
- package/lib/components/TagOverflow/TagOverflowModal.js +121 -0
- package/lib/components/TagOverflow/TagOverflowPopover.d.ts +2 -0
- package/lib/components/TagOverflow/TagOverflowPopover.js +144 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/global/js/package-settings.d.ts +1 -0
- package/lib/global/js/package-settings.js +1 -0
- package/lib/index.js +5 -0
- package/lib/settings.d.ts +1 -0
- package/package.json +3 -3
- package/scss/components/GetStartedCard/_carbon-imports.scss +9 -0
- package/scss/components/GetStartedCard/_get-started-card.scss +135 -0
- package/scss/components/GetStartedCard/_index-with-carbon.scss +9 -0
- package/scss/components/GetStartedCard/_index.scss +8 -0
- package/scss/components/TagOverflow/_tag-overflow.scss +157 -0
- package/scss/components/_index-with-carbon.scss +1 -0
- package/scss/components/_index.scss +1 -0
- package/telemetry.yml +23 -16
@@ -0,0 +1,112 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2020, 2024
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
9
|
+
import React__default, { useState } from 'react';
|
10
|
+
import PropTypes from '../../node_modules/prop-types/index.js';
|
11
|
+
import cx from 'classnames';
|
12
|
+
import { ComposedModal, ModalHeader, Search, ModalBody, Tag } from '@carbon/react';
|
13
|
+
import { pkg } from '../../settings.js';
|
14
|
+
import { prepareProps } from '../../global/js/utils/props-helper.js';
|
15
|
+
import { usePortalTarget } from '../../global/js/hooks/usePortalTarget.js';
|
16
|
+
|
17
|
+
var _excluded = ["allTags", "className", "title", "onClose", "open", "portalTarget", "searchLabel", "searchPlaceholder"],
|
18
|
+
_excluded2 = ["label", "id"];
|
19
|
+
var componentName = 'TagOverflowModal';
|
20
|
+
var blockClass = "".concat(pkg.prefix, "--tag-overflow-modal");
|
21
|
+
|
22
|
+
// Default values for props
|
23
|
+
var defaults = {
|
24
|
+
// marked as required by TagSet if needed, default used to satisfy <Search /> component
|
25
|
+
searchLabel: ''
|
26
|
+
};
|
27
|
+
var TagOverflowModal = function TagOverflowModal(_ref) {
|
28
|
+
var allTags = _ref.allTags,
|
29
|
+
className = _ref.className,
|
30
|
+
title = _ref.title,
|
31
|
+
onClose = _ref.onClose,
|
32
|
+
open = _ref.open,
|
33
|
+
portalTargetIn = _ref.portalTarget,
|
34
|
+
_ref$searchLabel = _ref.searchLabel,
|
35
|
+
searchLabel = _ref$searchLabel === void 0 ? defaults.searchLabel : _ref$searchLabel,
|
36
|
+
searchPlaceholder = _ref.searchPlaceholder,
|
37
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
38
|
+
var _useState = useState(''),
|
39
|
+
_useState2 = _slicedToArray(_useState, 2),
|
40
|
+
search = _useState2[0],
|
41
|
+
setSearch = _useState2[1];
|
42
|
+
var renderPortalUse = usePortalTarget(portalTargetIn);
|
43
|
+
var getFilteredItems = function getFilteredItems() {
|
44
|
+
var newFilteredModalTags = [];
|
45
|
+
if (open) {
|
46
|
+
if (search === '') {
|
47
|
+
newFilteredModalTags = allTags.slice(0);
|
48
|
+
} else {
|
49
|
+
var lCaseSearch = search.toLocaleLowerCase();
|
50
|
+
allTags.forEach(function (tag) {
|
51
|
+
var _tag$dataSearch, _tag$label;
|
52
|
+
var dataSearch = (_tag$dataSearch = tag['data-search']) === null || _tag$dataSearch === void 0 || (_tag$dataSearch = _tag$dataSearch.toLocaleLowerCase()) === null || _tag$dataSearch === void 0 ? void 0 : _tag$dataSearch.indexOf(lCaseSearch);
|
53
|
+
var labelSearch = (_tag$label = tag.label) === null || _tag$label === void 0 || (_tag$label = _tag$label.toLocaleLowerCase()) === null || _tag$label === void 0 ? void 0 : _tag$label.indexOf(lCaseSearch);
|
54
|
+
if (dataSearch > -1 || labelSearch > -1) {
|
55
|
+
newFilteredModalTags.push(tag);
|
56
|
+
}
|
57
|
+
});
|
58
|
+
}
|
59
|
+
}
|
60
|
+
return newFilteredModalTags;
|
61
|
+
};
|
62
|
+
var handleSearch = function handleSearch(evt) {
|
63
|
+
setSearch(evt.target.value || '');
|
64
|
+
};
|
65
|
+
return renderPortalUse( /*#__PURE__*/React__default.createElement(ComposedModal, _extends({}, rest, {
|
66
|
+
containerClassName: "".concat(blockClass, "__container"),
|
67
|
+
className: cx(className, blockClass),
|
68
|
+
size: "sm",
|
69
|
+
"aria-label": "Search all",
|
70
|
+
open: open,
|
71
|
+
onClose: onClose
|
72
|
+
}), /*#__PURE__*/React__default.createElement(ModalHeader, {
|
73
|
+
className: "".concat(blockClass, "__header"),
|
74
|
+
closeModal: onClose,
|
75
|
+
title: title
|
76
|
+
}, /*#__PURE__*/React__default.createElement(Search, {
|
77
|
+
"data-modal-primary-focus": true,
|
78
|
+
className: "".concat(blockClass, "__search"),
|
79
|
+
labelText: searchLabel,
|
80
|
+
placeholder: searchPlaceholder,
|
81
|
+
onChange: handleSearch,
|
82
|
+
size: "lg"
|
83
|
+
})), /*#__PURE__*/React__default.createElement(ModalBody, {
|
84
|
+
className: "".concat(blockClass, "__body"),
|
85
|
+
hasForm: true
|
86
|
+
}, getFilteredItems().map(function (_ref2) {
|
87
|
+
var label = _ref2.label,
|
88
|
+
id = _ref2.id,
|
89
|
+
other = _objectWithoutProperties(_ref2, _excluded2);
|
90
|
+
return /*#__PURE__*/React__default.createElement(Tag, _extends({}, other, {
|
91
|
+
filter: false,
|
92
|
+
key: id
|
93
|
+
}), label);
|
94
|
+
})), /*#__PURE__*/React__default.createElement("div", {
|
95
|
+
className: "".concat(blockClass, "__fade")
|
96
|
+
})));
|
97
|
+
};
|
98
|
+
TagOverflowModal.propTypes = {
|
99
|
+
allTags: PropTypes.arrayOf(PropTypes.shape(_objectSpread2(_objectSpread2({}, prepareProps(Tag.propTypes, 'filter')), {}, {
|
100
|
+
label: PropTypes.string.isRequired
|
101
|
+
}))),
|
102
|
+
className: PropTypes.string,
|
103
|
+
onClose: PropTypes.func,
|
104
|
+
open: PropTypes.bool,
|
105
|
+
portalTarget: PropTypes.node,
|
106
|
+
searchLabel: PropTypes.string,
|
107
|
+
searchPlaceholder: PropTypes.string,
|
108
|
+
title: PropTypes.string
|
109
|
+
};
|
110
|
+
TagOverflowModal.displayName = componentName;
|
111
|
+
|
112
|
+
export { TagOverflowModal };
|
@@ -0,0 +1,135 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2020, 2024
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends, defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
9
|
+
import React__default, { useRef } from 'react';
|
10
|
+
import PropTypes from '../../node_modules/prop-types/index.js';
|
11
|
+
import cx from 'classnames';
|
12
|
+
import { Popover, Tag, PopoverContent, Link } from '@carbon/react';
|
13
|
+
import { pkg } from '../../settings.js';
|
14
|
+
import { useClickOutside } from '../../global/js/hooks/useClickOutside.js';
|
15
|
+
|
16
|
+
var _excluded = ["allTagsModalSearchThreshold", "className", "onShowAllClick", "overflowAlign", "overflowTags", "overflowType", "showAllTagsLabel", "popoverOpen", "setPopoverOpen"];
|
17
|
+
var componentName = 'TagOverflowPopover';
|
18
|
+
var blockClass = "".concat(pkg.prefix, "--tag-overflow-popover");
|
19
|
+
|
20
|
+
// Default values for props
|
21
|
+
var defaults = {
|
22
|
+
allTagsModalSearchThreshold: 10,
|
23
|
+
overflowAlign: 'bottom'
|
24
|
+
};
|
25
|
+
var TagOverflowPopover = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
26
|
+
var _ref$allTagsModalSear = _ref.allTagsModalSearchThreshold,
|
27
|
+
allTagsModalSearchThreshold = _ref$allTagsModalSear === void 0 ? defaults.allTagsModalSearchThreshold : _ref$allTagsModalSear,
|
28
|
+
className = _ref.className,
|
29
|
+
onShowAllClick = _ref.onShowAllClick,
|
30
|
+
_ref$overflowAlign = _ref.overflowAlign,
|
31
|
+
overflowAlign = _ref$overflowAlign === void 0 ? defaults.overflowAlign : _ref$overflowAlign,
|
32
|
+
overflowTags = _ref.overflowTags,
|
33
|
+
overflowType = _ref.overflowType,
|
34
|
+
showAllTagsLabel = _ref.showAllTagsLabel,
|
35
|
+
popoverOpen = _ref.popoverOpen,
|
36
|
+
setPopoverOpen = _ref.setPopoverOpen,
|
37
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
38
|
+
var localRef = useRef();
|
39
|
+
var overflowTagContent = useRef(null);
|
40
|
+
useClickOutside(ref || localRef, function () {
|
41
|
+
if (popoverOpen) {
|
42
|
+
setPopoverOpen(false);
|
43
|
+
}
|
44
|
+
});
|
45
|
+
var handleShowAllTagsClick = function handleShowAllTagsClick(evt) {
|
46
|
+
evt.stopPropagation();
|
47
|
+
evt.preventDefault();
|
48
|
+
setPopoverOpen(false);
|
49
|
+
onShowAllClick();
|
50
|
+
};
|
51
|
+
var handleEscKeyPress = function handleEscKeyPress(event) {
|
52
|
+
var key = event.key;
|
53
|
+
if (key === 'Escape') {
|
54
|
+
setPopoverOpen(false);
|
55
|
+
}
|
56
|
+
};
|
57
|
+
var getOverflowPopoverItems = function getOverflowPopoverItems() {
|
58
|
+
return overflowTags.filter(function (_, index) {
|
59
|
+
return overflowTags.length > allTagsModalSearchThreshold ? index < allTagsModalSearchThreshold : index <= allTagsModalSearchThreshold;
|
60
|
+
});
|
61
|
+
};
|
62
|
+
return /*#__PURE__*/React__default.createElement("span", _extends({}, rest, {
|
63
|
+
"aria-hidden": overflowTags.length === 0,
|
64
|
+
className: cx(blockClass, _defineProperty({}, "".concat(blockClass, "--hidden"), overflowTags.length === 0)),
|
65
|
+
ref: ref || localRef
|
66
|
+
}), /*#__PURE__*/React__default.createElement(Popover, {
|
67
|
+
align: overflowAlign,
|
68
|
+
className: cx(className, "".concat(blockClass, "__el")),
|
69
|
+
dropShadow: true,
|
70
|
+
highContrast: true,
|
71
|
+
onKeyDown: handleEscKeyPress,
|
72
|
+
open: popoverOpen
|
73
|
+
}, /*#__PURE__*/React__default.createElement(Tag, {
|
74
|
+
onClick: function onClick() {
|
75
|
+
return setPopoverOpen(!popoverOpen);
|
76
|
+
},
|
77
|
+
className: cx("".concat(blockClass, "__trigger"))
|
78
|
+
}, "+", overflowTags.length), /*#__PURE__*/React__default.createElement(PopoverContent, null, /*#__PURE__*/React__default.createElement("div", {
|
79
|
+
ref: overflowTagContent,
|
80
|
+
className: "".concat(blockClass, "__content")
|
81
|
+
}, /*#__PURE__*/React__default.createElement("ul", {
|
82
|
+
className: "".concat(blockClass, "__tag-list")
|
83
|
+
}, getOverflowPopoverItems().map(function (tag) {
|
84
|
+
return /*#__PURE__*/React__default.createElement("li", {
|
85
|
+
className: cx("".concat(blockClass, "__tag-item"), _defineProperty(_defineProperty({}, "".concat(blockClass, "__tag-item--default"), overflowType === 'default'), "".concat(blockClass, "__tag-item--tag"), overflowType === 'tag')),
|
86
|
+
key: tag.id
|
87
|
+
}, tag.label);
|
88
|
+
})), overflowTags.length > allTagsModalSearchThreshold && /*#__PURE__*/React__default.createElement(Link, {
|
89
|
+
className: "".concat(blockClass, "__show-all-tags-link"),
|
90
|
+
href: "",
|
91
|
+
onClick: handleShowAllTagsClick,
|
92
|
+
role: "button"
|
93
|
+
}, showAllTagsLabel)))));
|
94
|
+
});
|
95
|
+
TagOverflowPopover.displayName = componentName;
|
96
|
+
TagOverflowPopover.propTypes = {
|
97
|
+
/**
|
98
|
+
* count of overflowTags over which a modal is offered
|
99
|
+
*/
|
100
|
+
allTagsModalSearchThreshold: PropTypes.number,
|
101
|
+
/**
|
102
|
+
* className
|
103
|
+
*/
|
104
|
+
className: PropTypes.string,
|
105
|
+
/**
|
106
|
+
* function to execute on clicking show all
|
107
|
+
*/
|
108
|
+
onShowAllClick: PropTypes.func.isRequired,
|
109
|
+
/**
|
110
|
+
* overflowAlign from the standard tooltip
|
111
|
+
*/
|
112
|
+
overflowAlign: PropTypes.oneOf(['top', 'top-left', 'top-right', 'bottom', 'bottom-left', 'bottom-right', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top']),
|
113
|
+
/**
|
114
|
+
* tags shown in overflow
|
115
|
+
*/
|
116
|
+
overflowTags: PropTypes.arrayOf(PropTypes.object).isRequired,
|
117
|
+
/**
|
118
|
+
* Type of rendering displayed inside of the tag overflow component
|
119
|
+
*/
|
120
|
+
overflowType: PropTypes.oneOf(['default', 'tag']),
|
121
|
+
/**
|
122
|
+
* Open state of the popover
|
123
|
+
*/
|
124
|
+
popoverOpen: PropTypes.bool,
|
125
|
+
/**
|
126
|
+
* Setter function for the popoverOpen state value
|
127
|
+
*/
|
128
|
+
setPopoverOpen: PropTypes.func,
|
129
|
+
/**
|
130
|
+
* label for the overflow show all tags link
|
131
|
+
*/
|
132
|
+
showAllTagsLabel: PropTypes.string
|
133
|
+
};
|
134
|
+
|
135
|
+
export { TagOverflowPopover };
|
package/es/components/index.d.ts
CHANGED
@@ -54,6 +54,7 @@ export { StatusIndicator } from "./StatusIndicator";
|
|
54
54
|
export { TagOverflow } from "./TagOverflow";
|
55
55
|
export { ActionBar } from "./ActionBar";
|
56
56
|
export { ConditionBuilder } from "./ConditionBuilder";
|
57
|
+
export { GetStartedCard } from "./GetStartedCard";
|
57
58
|
export { ComboButton, ComboButtonItem } from "./ComboButton";
|
58
59
|
export { CreateFullPage, CreateFullPageStep } from "./CreateFullPage";
|
59
60
|
export { CreateTearsheet, CreateTearsheetStep, CreateTearsheetDivider } from "./CreateTearsheet";
|
package/es/index.js
CHANGED
@@ -132,3 +132,4 @@ export { FilterPanelGroup } from './components/FilterPanel/FilterPanelGroup/Filt
|
|
132
132
|
export { FilterPanelLabel } from './components/FilterPanel/FilterPanelLabel/FilterPanelLabel.js';
|
133
133
|
export { FilterPanelSearch } from './components/FilterPanel/FilterPanelSearch/FilterPanelSearch.js';
|
134
134
|
export { ConditionBuilder } from './components/ConditionBuilder/ConditionBuilder.js';
|
135
|
+
export { GetStartedCard } from './components/GetStartedCard/GetStartedCard.js';
|
package/es/settings.d.ts
CHANGED
@@ -13,6 +13,7 @@ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelper
|
|
13
13
|
var React = require('react');
|
14
14
|
var cx = require('classnames');
|
15
15
|
var react = require('@carbon/react');
|
16
|
+
var icons = require('@carbon/react/icons');
|
16
17
|
var index = require('../../node_modules/prop-types/index.js');
|
17
18
|
var CardHeader = require('./CardHeader.js');
|
18
19
|
var CardFooter = require('./CardFooter.js');
|
@@ -23,7 +24,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
23
24
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
24
25
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
25
26
|
|
26
|
-
var
|
27
|
+
var _Incomplete, _CheckmarkOutline;
|
28
|
+
var _excluded = ["actionIcons", "actionsPlacement", "metadata", "children", "className", "clickZone", "description", "disabled", "footerActionIcon", "getStarted", "label", "media", "mediaPosition", "onClick", "onKeyDown", "onPrimaryButtonClick", "overflowActions", "overflowAriaLabel", "onSecondaryButtonClick", "pictogram", "primaryButtonDisabled", "primaryButtonHref", "primaryButtonIcon", "primaryButtonKind", "primaryButtonPlacement", "primaryButtonText", "productive", "secondaryButtonDisabled", "secondaryButtonHref", "secondaryButtonIcon", "secondaryButtonKind", "secondaryButtonPlacement", "secondaryButtonText", "slug", "status", "sequence", "title", "titleSize"],
|
27
29
|
_excluded2 = ["id"],
|
28
30
|
_excluded3 = ["id", "icon", "onClick", "iconDescription", "href"];
|
29
31
|
var componentName = 'Card';
|
@@ -47,11 +49,16 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
47
49
|
actionIcons = _ref$actionIcons === void 0 ? defaults.actionIcons : _ref$actionIcons,
|
48
50
|
_ref$actionsPlacement = _ref.actionsPlacement,
|
49
51
|
actionsPlacement = _ref$actionsPlacement === void 0 ? defaults.actionsPlacement : _ref$actionsPlacement,
|
52
|
+
_ref$metadata = _ref.metadata,
|
53
|
+
metadata = _ref$metadata === void 0 ? defaults.actionIcons : _ref$metadata,
|
50
54
|
children = _ref.children,
|
51
55
|
className = _ref.className,
|
52
56
|
_ref$clickZone = _ref.clickZone,
|
53
57
|
clickZone = _ref$clickZone === void 0 ? defaults.clickZone : _ref$clickZone,
|
54
58
|
description = _ref.description,
|
59
|
+
disabled = _ref.disabled,
|
60
|
+
footerActionIcon = _ref.footerActionIcon,
|
61
|
+
getStarted = _ref.getStarted,
|
55
62
|
label = _ref.label,
|
56
63
|
media = _ref.media,
|
57
64
|
_ref$mediaPosition = _ref.mediaPosition,
|
@@ -83,12 +90,18 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
83
90
|
secondaryButtonPlacement = _ref$secondaryButtonP === void 0 ? defaults.secondaryButtonPlacement : _ref$secondaryButtonP,
|
84
91
|
secondaryButtonText = _ref.secondaryButtonText,
|
85
92
|
slug = _ref.slug,
|
93
|
+
status = _ref.status,
|
94
|
+
sequence = _ref.sequence,
|
86
95
|
title = _ref.title,
|
87
96
|
_ref$titleSize = _ref.titleSize,
|
88
97
|
titleSize = _ref$titleSize === void 0 ? defaults.titleSize : _ref$titleSize,
|
89
98
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
99
|
+
var getIcons = function getIcons() {
|
100
|
+
return getStarted ? metadata : actionIcons;
|
101
|
+
};
|
90
102
|
var blockClass = "".concat(settings.pkg.prefix, "--card");
|
91
|
-
var hasActions =
|
103
|
+
var hasActions = getIcons().length > 0 || overflowActions.length > 0 || !!primaryButtonText && primaryButtonPlacement === 'top';
|
104
|
+
var hasHeaderActions = hasActions && actionsPlacement === 'top';
|
92
105
|
var hasFooterActions = hasActions && actionsPlacement === 'bottom';
|
93
106
|
var hasFooterButton = !!secondaryButtonText || !!primaryButtonText && primaryButtonPlacement === 'bottom';
|
94
107
|
var hasBottomBar = hasFooterActions || hasFooterButton;
|
@@ -120,13 +133,21 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
120
133
|
}, rest));
|
121
134
|
})));
|
122
135
|
}
|
123
|
-
var icons =
|
136
|
+
var icons = getIcons().map(function (_ref3) {
|
124
137
|
var id = _ref3.id,
|
125
138
|
Icon = _ref3.icon,
|
126
139
|
onClick = _ref3.onClick,
|
127
140
|
iconDescription = _ref3.iconDescription,
|
128
141
|
href = _ref3.href,
|
129
142
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref3, _excluded3);
|
143
|
+
if (getStarted) {
|
144
|
+
return /*#__PURE__*/React__default["default"].createElement("span", {
|
145
|
+
key: id,
|
146
|
+
className: "".concat(blockClass, "__icon")
|
147
|
+
}, /*#__PURE__*/React__default["default"].createElement(Icon, {
|
148
|
+
"aria-label": iconDescription
|
149
|
+
}), iconDescription);
|
150
|
+
}
|
130
151
|
if (productive) {
|
131
152
|
return /*#__PURE__*/React__default["default"].createElement(react.Button, _rollupPluginBabelHelpers["extends"]({}, rest, {
|
132
153
|
key: id,
|
@@ -166,7 +187,7 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
166
187
|
var clickable = hasClickEvent && !productive || hasClickEvent && productive && clickZone === 'one';
|
167
188
|
var cardProps = _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, rest), {}, {
|
168
189
|
ref: ref,
|
169
|
-
className: cx__default["default"](blockClass, _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__productive"), productive), "".concat(blockClass, "__clickable"), clickable), "".concat(blockClass, "__media-left"), mediaPosition === 'left'), "".concat(blockClass, "--has-slug"), !!slug), className)
|
190
|
+
className: cx__default["default"](blockClass, _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__disabled"), disabled), "".concat(blockClass, "__get-started"), getStarted), "".concat(blockClass, "__productive"), productive), "".concat(blockClass, "__clickable"), clickable), "".concat(blockClass, "__media-left"), mediaPosition === 'left'), "".concat(blockClass, "--has-slug"), !!slug), className)
|
170
191
|
}, clickable && clickableProps);
|
171
192
|
return cardProps;
|
172
193
|
};
|
@@ -182,7 +203,7 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
182
203
|
var getHeaderProps = function getHeaderProps() {
|
183
204
|
return {
|
184
205
|
actions: actionsPlacement === 'top' ? getActions() : '',
|
185
|
-
noActionIcons:
|
206
|
+
noActionIcons: getIcons().length > 0 && actionsPlacement === 'top' ? false : true,
|
186
207
|
actionsPlacement: actionsPlacement,
|
187
208
|
onPrimaryButtonClick: onPrimaryButtonClick,
|
188
209
|
onSecondaryButtonClick: onSecondaryButtonClick,
|
@@ -191,7 +212,7 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
191
212
|
primaryButtonText: primaryButtonText,
|
192
213
|
primaryButtonDisabled: primaryButtonDisabled,
|
193
214
|
description: description,
|
194
|
-
hasActions:
|
215
|
+
hasActions: hasHeaderActions,
|
195
216
|
inClickableCard: hasClickEvent,
|
196
217
|
label: label,
|
197
218
|
secondaryButtonDisabled: secondaryButtonDisabled,
|
@@ -215,6 +236,8 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
215
236
|
return {
|
216
237
|
actions: actionsPlacement === 'bottom' ? getActions() : '',
|
217
238
|
actionsPlacement: actionsPlacement,
|
239
|
+
disabled: disabled,
|
240
|
+
footerActionIcon: footerActionIcon,
|
218
241
|
hasActions: hasFooterActions,
|
219
242
|
hasButton: hasFooterButton,
|
220
243
|
onPrimaryButtonClick: onPrimaryButtonClick,
|
@@ -234,13 +257,21 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
234
257
|
secondaryButtonText: secondaryButtonText
|
235
258
|
};
|
236
259
|
};
|
237
|
-
return /*#__PURE__*/React__default["default"].createElement("div", getCardProps(), media && /*#__PURE__*/React__default["default"].createElement("div", {
|
260
|
+
return /*#__PURE__*/React__default["default"].createElement("div", getCardProps(), !getStarted && media && /*#__PURE__*/React__default["default"].createElement("div", {
|
238
261
|
className: "".concat(blockClass, "__media")
|
239
262
|
}, media), Pictogram && /*#__PURE__*/React__default["default"].createElement("div", {
|
240
263
|
className: "".concat(blockClass, "__pictogram")
|
241
|
-
}, /*#__PURE__*/React__default["default"].createElement(Pictogram, null)), /*#__PURE__*/React__default["default"].createElement("div", {
|
264
|
+
}, /*#__PURE__*/React__default["default"].createElement(Pictogram, null)), getStarted && sequence && /*#__PURE__*/React__default["default"].createElement("div", {
|
265
|
+
className: "".concat(blockClass, "__sequence")
|
266
|
+
}, sequence), getStarted && status && /*#__PURE__*/React__default["default"].createElement("div", {
|
267
|
+
className: "".concat(blockClass, "__status")
|
268
|
+
}, status === 'incomplete' && (_Incomplete || (_Incomplete = /*#__PURE__*/React__default["default"].createElement(icons.Incomplete, null))), status === 'complete' && (_CheckmarkOutline || (_CheckmarkOutline = /*#__PURE__*/React__default["default"].createElement(icons.CheckmarkOutline, null)))), /*#__PURE__*/React__default["default"].createElement("div", {
|
242
269
|
className: "".concat(blockClass, "__content-container")
|
243
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", getHeaderBodyProps(), /*#__PURE__*/React__default["default"].createElement(
|
270
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", getHeaderBodyProps(), /*#__PURE__*/React__default["default"].createElement("div", {
|
271
|
+
className: "".concat(blockClass, "__header-container")
|
272
|
+
}, /*#__PURE__*/React__default["default"].createElement(CardHeader.CardHeader, getHeaderProps()), /*#__PURE__*/React__default["default"].createElement("div", getBodyProps(), children)), getStarted && media && /*#__PURE__*/React__default["default"].createElement("div", {
|
273
|
+
className: "".concat(blockClass, "__media")
|
274
|
+
}, media)), hasBottomBar && /*#__PURE__*/React__default["default"].createElement(CardFooter.CardFooter, getFooterProps())));
|
244
275
|
});
|
245
276
|
Card.propTypes = {
|
246
277
|
actionIcons: index["default"].arrayOf(index["default"].shape({
|
@@ -256,9 +287,17 @@ Card.propTypes = {
|
|
256
287
|
className: index["default"].string,
|
257
288
|
clickZone: index["default"].oneOf(['one', 'two', 'three']),
|
258
289
|
description: index["default"].oneOfType([index["default"].string, index["default"].object, index["default"].node]),
|
290
|
+
disabled: index["default"].bool,
|
291
|
+
footerActionIcon: index["default"].oneOfType([index["default"].func, index["default"].object]),
|
292
|
+
getStarted: index["default"].bool,
|
259
293
|
label: index["default"].oneOfType([index["default"].string, index["default"].object, index["default"].node]),
|
260
294
|
media: index["default"].node,
|
261
295
|
mediaPosition: index["default"].oneOf(['top', 'left']),
|
296
|
+
metadata: index["default"].arrayOf(index["default"].shape({
|
297
|
+
id: index["default"].string,
|
298
|
+
icon: index["default"].oneOfType([index["default"].func, index["default"].object]),
|
299
|
+
iconDescription: index["default"].string
|
300
|
+
})),
|
262
301
|
onClick: index["default"].func,
|
263
302
|
onKeyDown: index["default"].func,
|
264
303
|
onPrimaryButtonClick: index["default"].func,
|
@@ -284,11 +323,13 @@ Card.propTypes = {
|
|
284
323
|
secondaryButtonKind: index["default"].oneOf(['secondary', 'ghost']),
|
285
324
|
secondaryButtonPlacement: index["default"].oneOf(['top', 'bottom']),
|
286
325
|
secondaryButtonText: index["default"].string,
|
326
|
+
sequence: index["default"].number,
|
287
327
|
/**
|
288
328
|
* **Experimental:** For all cases a `Slug` component can be provided.
|
289
329
|
* Clickable tiles only accept a boolean value of true and display a hollow slug.
|
290
330
|
*/
|
291
331
|
slug: index["default"].oneOfType([index["default"].node, index["default"].bool]),
|
332
|
+
status: index["default"].oneOf(['complete', 'incomplete']),
|
292
333
|
title: index["default"].oneOfType([index["default"].string, index["default"].object, index["default"].node]),
|
293
334
|
titleSize: index["default"].oneOf(['default', 'large'])
|
294
335
|
};
|
@@ -1,5 +1,7 @@
|
|
1
|
-
export function CardFooter({ actions, hasActions, hasButton, onPrimaryButtonClick, onSecondaryButtonClick, primaryButtonDisabled, primaryButtonHref, primaryButtonIcon, primaryButtonKind, primaryButtonPlacement, primaryButtonText, productive, secondaryButtonDisabled, secondaryButtonHref, secondaryButtonIcon, secondaryButtonKind, secondaryButtonPlacement, secondaryButtonText, }: {
|
1
|
+
export function CardFooter({ actions, disabled, footerActionIcon: FooterActionIcon, hasActions, hasButton, onPrimaryButtonClick, onSecondaryButtonClick, primaryButtonDisabled, primaryButtonHref, primaryButtonIcon, primaryButtonKind, primaryButtonPlacement, primaryButtonText, productive, secondaryButtonDisabled, secondaryButtonHref, secondaryButtonIcon, secondaryButtonKind, secondaryButtonPlacement, secondaryButtonText, }: {
|
2
2
|
actions?: any[] | undefined;
|
3
|
+
disabled: any;
|
4
|
+
footerActionIcon: any;
|
3
5
|
hasActions: any;
|
4
6
|
hasButton: any;
|
5
7
|
onPrimaryButtonClick: any;
|
@@ -21,6 +23,8 @@ export function CardFooter({ actions, hasActions, hasButton, onPrimaryButtonClic
|
|
21
23
|
export namespace CardFooter {
|
22
24
|
export namespace propTypes {
|
23
25
|
let actions: PropTypes.Requireable<NonNullable<any[] | PropTypes.ReactNodeLike>>;
|
26
|
+
let disabled: PropTypes.Requireable<boolean>;
|
27
|
+
let footerActionIcon: PropTypes.Requireable<object>;
|
24
28
|
let hasActions: PropTypes.Requireable<boolean>;
|
25
29
|
let hasButton: PropTypes.Requireable<boolean>;
|
26
30
|
let onPrimaryButtonClick: PropTypes.Requireable<(...args: any[]) => any>;
|
@@ -15,12 +15,14 @@ var cx = require('classnames');
|
|
15
15
|
var react = require('@carbon/react');
|
16
16
|
var index = require('../../node_modules/prop-types/index.js');
|
17
17
|
var settings = require('../../settings.js');
|
18
|
+
var icons = require('@carbon/react/icons');
|
18
19
|
|
19
20
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
20
21
|
|
21
22
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
22
23
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
23
24
|
|
25
|
+
var _Error;
|
24
26
|
var componentName = 'CardFooter';
|
25
27
|
var defaults = {
|
26
28
|
actions: Object.freeze([]),
|
@@ -31,6 +33,8 @@ var defaults = {
|
|
31
33
|
var CardFooter = function CardFooter(_ref) {
|
32
34
|
var _ref$actions = _ref.actions,
|
33
35
|
actions = _ref$actions === void 0 ? defaults.actions : _ref$actions,
|
36
|
+
disabled = _ref.disabled,
|
37
|
+
FooterActionIcon = _ref.footerActionIcon,
|
34
38
|
hasActions = _ref.hasActions,
|
35
39
|
hasButton = _ref.hasButton,
|
36
40
|
onPrimaryButtonClick = _ref.onPrimaryButtonClick,
|
@@ -72,10 +76,16 @@ var CardFooter = function CardFooter(_ref) {
|
|
72
76
|
disabled: primaryButtonDisabled
|
73
77
|
}, primaryButtonText), hasActions && /*#__PURE__*/React__default["default"].createElement("div", {
|
74
78
|
className: "".concat(blockClass, "__actions")
|
75
|
-
}, actions)
|
79
|
+
}, actions), FooterActionIcon && /*#__PURE__*/React__default["default"].createElement("div", {
|
80
|
+
className: "".concat(blockClass, "__action-icon")
|
81
|
+
}, disabled ? _Error || (_Error = /*#__PURE__*/React__default["default"].createElement(icons.Error, {
|
82
|
+
size: 16
|
83
|
+
})) : /*#__PURE__*/React__default["default"].createElement(FooterActionIcon, null)));
|
76
84
|
};
|
77
85
|
CardFooter.propTypes = {
|
78
86
|
actions: index["default"].oneOfType([index["default"].array, index["default"].node]),
|
87
|
+
disabled: index["default"].bool,
|
88
|
+
footerActionIcon: index["default"].oneOfType([index["default"].func, index["default"].object]),
|
79
89
|
hasActions: index["default"].bool,
|
80
90
|
hasButton: index["default"].bool,
|
81
91
|
onPrimaryButtonClick: index["default"].func,
|
@@ -5,7 +5,7 @@
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
6
6
|
*/
|
7
7
|
import React, { ReactNode } from 'react';
|
8
|
-
interface CarouselProps {
|
8
|
+
export interface CarouselProps {
|
9
9
|
/**
|
10
10
|
* Provide the contents of the Carousel.
|
11
11
|
*/
|
@@ -41,6 +41,10 @@ interface CarouselProps {
|
|
41
41
|
* a value between 0 and 1.
|
42
42
|
*/
|
43
43
|
onScroll?: (scrollPercent: number) => void;
|
44
|
+
/**
|
45
|
+
* Additional props passed to the component.
|
46
|
+
*/
|
47
|
+
[key: string]: any;
|
44
48
|
}
|
45
49
|
/**
|
46
50
|
* The Carousel acts as a scaffold for other Novice to Pro content.
|
@@ -58,5 +62,5 @@ interface CarouselProps {
|
|
58
62
|
* 2. From the right-aligned position, when scrolling left,
|
59
63
|
* the left-most item should again be left-aligned.
|
60
64
|
*/
|
61
|
-
declare const Carousel: React.ForwardRefExoticComponent<CarouselProps & React.RefAttributes<HTMLDivElement>>;
|
65
|
+
declare const Carousel: React.ForwardRefExoticComponent<Omit<CarouselProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
62
66
|
export { Carousel };
|