@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.
Files changed (103) hide show
  1. package/css/index-full-carbon.css +227 -0
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +227 -0
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +1 -1
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +227 -0
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +1 -1
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/Card/Card.js +50 -9
  14. package/es/components/Card/CardFooter.d.ts +5 -1
  15. package/es/components/Card/CardFooter.js +11 -1
  16. package/es/components/Carousel/Carousel.d.ts +6 -2
  17. package/es/components/Checklist/Checklist.d.ts +100 -2
  18. package/es/components/Checklist/Checklist.js +9 -5
  19. package/es/components/Checklist/Checklist.types.d.ts +19 -0
  20. package/es/components/Checklist/Checklist.types.js +22 -0
  21. package/es/components/Checklist/ChecklistChart.d.ts +5 -1
  22. package/es/components/Checklist/ChecklistChart.js +9 -4
  23. package/es/components/Checklist/ChecklistIcon.d.ts +5 -1
  24. package/es/components/Checklist/ChecklistIcon.js +9 -4
  25. package/es/components/CoachmarkButton/CoachmarkButton.d.ts +19 -2
  26. package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.d.ts +46 -2
  27. package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +5 -4
  28. package/es/components/CreateInfluencer/CreateInfluencer.d.ts +55 -17
  29. package/es/components/DataSpreadsheet/DataSpreadsheet.d.ts +67 -2
  30. package/es/components/DataSpreadsheet/DataSpreadsheet.js +48 -27
  31. package/es/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +139 -2
  32. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +46 -31
  33. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +89 -2
  34. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +34 -25
  35. package/es/components/DataSpreadsheet/types/index.d.ts +30 -0
  36. package/es/components/GetStartedCard/GetStartedCard.d.ts +5 -0
  37. package/es/components/GetStartedCard/GetStartedCard.js +82 -0
  38. package/es/components/GetStartedCard/index.d.ts +1 -0
  39. package/es/components/Guidebanner/Guidebanner.js +2 -2
  40. package/es/components/NotificationsPanel/NotificationsPanel.d.ts +162 -1
  41. package/es/components/NotificationsPanel/NotificationsPanel.js +10 -10
  42. package/es/components/SidePanel/SidePanel.js +1 -1
  43. package/es/components/TagOverflow/TagOverflow.d.ts +5 -0
  44. package/es/components/TagOverflow/TagOverflow.js +153 -29
  45. package/es/components/TagOverflow/TagOverflowModal.d.ts +29 -0
  46. package/es/components/TagOverflow/TagOverflowModal.js +112 -0
  47. package/es/components/TagOverflow/TagOverflowPopover.d.ts +2 -0
  48. package/es/components/TagOverflow/TagOverflowPopover.js +135 -0
  49. package/es/components/index.d.ts +1 -0
  50. package/es/global/js/package-settings.d.ts +1 -0
  51. package/es/global/js/package-settings.js +1 -0
  52. package/es/index.js +1 -0
  53. package/es/settings.d.ts +1 -0
  54. package/lib/components/Card/Card.js +50 -9
  55. package/lib/components/Card/CardFooter.d.ts +5 -1
  56. package/lib/components/Card/CardFooter.js +11 -1
  57. package/lib/components/Carousel/Carousel.d.ts +6 -2
  58. package/lib/components/Checklist/Checklist.d.ts +100 -2
  59. package/lib/components/Checklist/Checklist.js +9 -5
  60. package/lib/components/Checklist/Checklist.types.d.ts +19 -0
  61. package/lib/components/Checklist/Checklist.types.js +27 -0
  62. package/lib/components/Checklist/ChecklistChart.d.ts +5 -1
  63. package/lib/components/Checklist/ChecklistChart.js +14 -9
  64. package/lib/components/Checklist/ChecklistIcon.d.ts +5 -1
  65. package/lib/components/Checklist/ChecklistIcon.js +9 -4
  66. package/lib/components/CoachmarkButton/CoachmarkButton.d.ts +19 -2
  67. package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.d.ts +46 -2
  68. package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +5 -4
  69. package/lib/components/CreateInfluencer/CreateInfluencer.d.ts +55 -17
  70. package/lib/components/DataSpreadsheet/DataSpreadsheet.d.ts +67 -2
  71. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +48 -27
  72. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +139 -2
  73. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +46 -31
  74. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +89 -2
  75. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +34 -25
  76. package/lib/components/DataSpreadsheet/types/index.d.ts +30 -0
  77. package/lib/components/GetStartedCard/GetStartedCard.d.ts +5 -0
  78. package/lib/components/GetStartedCard/GetStartedCard.js +88 -0
  79. package/lib/components/GetStartedCard/index.d.ts +1 -0
  80. package/lib/components/Guidebanner/Guidebanner.js +2 -2
  81. package/lib/components/NotificationsPanel/NotificationsPanel.d.ts +162 -1
  82. package/lib/components/NotificationsPanel/NotificationsPanel.js +10 -10
  83. package/lib/components/SidePanel/SidePanel.js +1 -1
  84. package/lib/components/TagOverflow/TagOverflow.d.ts +5 -0
  85. package/lib/components/TagOverflow/TagOverflow.js +154 -28
  86. package/lib/components/TagOverflow/TagOverflowModal.d.ts +29 -0
  87. package/lib/components/TagOverflow/TagOverflowModal.js +121 -0
  88. package/lib/components/TagOverflow/TagOverflowPopover.d.ts +2 -0
  89. package/lib/components/TagOverflow/TagOverflowPopover.js +144 -0
  90. package/lib/components/index.d.ts +1 -0
  91. package/lib/global/js/package-settings.d.ts +1 -0
  92. package/lib/global/js/package-settings.js +1 -0
  93. package/lib/index.js +5 -0
  94. package/lib/settings.d.ts +1 -0
  95. package/package.json +3 -3
  96. package/scss/components/GetStartedCard/_carbon-imports.scss +9 -0
  97. package/scss/components/GetStartedCard/_get-started-card.scss +135 -0
  98. package/scss/components/GetStartedCard/_index-with-carbon.scss +9 -0
  99. package/scss/components/GetStartedCard/_index.scss +8 -0
  100. package/scss/components/TagOverflow/_tag-overflow.scss +157 -0
  101. package/scss/components/_index-with-carbon.scss +1 -0
  102. package/scss/components/_index.scss +1 -0
  103. 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,2 @@
1
+ export const TagOverflowPopover: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
2
+ import React from 'react';
@@ -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 };
@@ -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";
@@ -96,6 +96,7 @@ declare namespace defaults {
96
96
  let FilterPanelLabel: boolean;
97
97
  let FilterPanelSearch: boolean;
98
98
  let ConditionBuilder: boolean;
99
+ let GetStartedCard: boolean;
99
100
  let Coachmark: boolean;
100
101
  let CoachmarkBeacon: boolean;
101
102
  let CoachmarkButton: boolean;
@@ -95,6 +95,7 @@ var defaults = {
95
95
  FilterPanelLabel: false,
96
96
  FilterPanelSearch: false,
97
97
  ConditionBuilder: false,
98
+ GetStartedCard: false,
98
99
  /* new component flags here - comment used by generate CLI */
99
100
 
100
101
  // Novice to pro components not yet reviewed and released:
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
@@ -82,6 +82,7 @@ export const pkg: {
82
82
  FilterPanelLabel: boolean;
83
83
  FilterPanelSearch: boolean;
84
84
  ConditionBuilder: boolean;
85
+ GetStartedCard: boolean;
85
86
  Coachmark: boolean;
86
87
  CoachmarkBeacon: boolean;
87
88
  CoachmarkButton: boolean;
@@ -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 _excluded = ["actionIcons", "actionsPlacement", "children", "className", "clickZone", "description", "label", "media", "mediaPosition", "onClick", "onKeyDown", "onPrimaryButtonClick", "overflowActions", "overflowAriaLabel", "onSecondaryButtonClick", "pictogram", "primaryButtonDisabled", "primaryButtonHref", "primaryButtonIcon", "primaryButtonKind", "primaryButtonPlacement", "primaryButtonText", "productive", "secondaryButtonDisabled", "secondaryButtonHref", "secondaryButtonIcon", "secondaryButtonKind", "secondaryButtonPlacement", "secondaryButtonText", "slug", "title", "titleSize"],
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 = actionIcons.length > 0 || overflowActions.length > 0 || !!primaryButtonText && primaryButtonPlacement === 'top';
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 = actionIcons.map(function (_ref3) {
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: actionIcons.length > 0 && actionsPlacement === 'top' ? false : true,
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: 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(CardHeader.CardHeader, getHeaderProps()), /*#__PURE__*/React__default["default"].createElement("div", getBodyProps(), children)), hasBottomBar && /*#__PURE__*/React__default["default"].createElement(CardFooter.CardFooter, getFooterProps())));
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 };