@carbon/ibm-products 1.54.2 → 1.55.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. package/css/index-full-carbon.css +1312 -108
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +1200 -1
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +2 -2
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +1310 -106
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +3 -3
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/APIKeyModal/APIKeyModal.js +25 -21
  14. package/es/components/ActionBar/ActionBar.js +5 -5
  15. package/es/components/Carousel/Carousel.js +237 -0
  16. package/es/components/Carousel/CarouselItem.js +66 -0
  17. package/es/components/Carousel/index.js +9 -0
  18. package/es/components/Carousel/utils.js +98 -0
  19. package/es/components/CreateFullPage/CreateFullPage.js +4 -2
  20. package/es/components/CreateModal/CreateModal.js +2 -1
  21. package/es/components/CreateSidePanel/CreateSidePanel.js +6 -2
  22. package/es/components/CreateTearsheet/CreateTearsheet.js +3 -1
  23. package/es/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +6 -2
  24. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +1 -1
  25. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +3 -2
  26. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +2 -1
  27. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.js +13 -0
  28. package/es/components/Datagrid/index.js +2 -1
  29. package/es/components/Datagrid/useActionsColumn.js +13 -7
  30. package/es/components/Datagrid/useOnRowClick.js +20 -4
  31. package/es/components/Datagrid/useSortableColumns.js +27 -3
  32. package/es/components/Datagrid/utils/DatagridActions.js +6 -6
  33. package/es/components/Datagrid/utils/getArgTypes.js +4 -0
  34. package/es/components/EditSidePanel/EditSidePanel.js +7 -3
  35. package/es/components/FilterSummary/FilterSummary.js +7 -3
  36. package/es/components/Guidebanner/Guidebanner.js +229 -0
  37. package/es/components/Guidebanner/GuidebannerElement.js +71 -0
  38. package/es/components/Guidebanner/GuidebannerElementButton.js +76 -0
  39. package/es/components/Guidebanner/GuidebannerElementLink.js +56 -0
  40. package/es/components/Guidebanner/index.js +11 -0
  41. package/es/components/InlineTip/InlineTip.js +228 -0
  42. package/es/components/InlineTip/InlineTipButton.js +89 -0
  43. package/es/components/InlineTip/InlineTipLink.js +89 -0
  44. package/es/components/InlineTip/index.js +10 -0
  45. package/es/components/InlineTip/utils.js +36 -0
  46. package/es/components/SteppedAnimatedMedia/SteppedAnimatedMedia.js +164 -0
  47. package/es/components/SteppedAnimatedMedia/assets/index.js +4 -0
  48. package/es/components/SteppedAnimatedMedia/index.js +8 -0
  49. package/es/components/Tearsheet/TearsheetShell.js +2 -1
  50. package/es/components/index.js +4 -2
  51. package/es/global/js/hooks/useResizeObserver.js +1 -1
  52. package/es/global/js/package-settings.js +2 -0
  53. package/lib/components/APIKeyModal/APIKeyModal.js +25 -21
  54. package/lib/components/ActionBar/ActionBar.js +5 -5
  55. package/lib/components/Carousel/Carousel.js +238 -0
  56. package/lib/components/Carousel/CarouselItem.js +66 -0
  57. package/lib/components/Carousel/index.js +19 -0
  58. package/lib/components/Carousel/utils.js +108 -0
  59. package/lib/components/CreateFullPage/CreateFullPage.js +4 -2
  60. package/lib/components/CreateModal/CreateModal.js +2 -1
  61. package/lib/components/CreateSidePanel/CreateSidePanel.js +6 -2
  62. package/lib/components/CreateTearsheet/CreateTearsheet.js +3 -1
  63. package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +6 -2
  64. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +1 -1
  65. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +3 -2
  66. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +8 -1
  67. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.js +20 -0
  68. package/lib/components/Datagrid/index.js +8 -1
  69. package/lib/components/Datagrid/useActionsColumn.js +13 -7
  70. package/lib/components/Datagrid/useOnRowClick.js +20 -4
  71. package/lib/components/Datagrid/useSortableColumns.js +27 -3
  72. package/lib/components/Datagrid/utils/DatagridActions.js +6 -6
  73. package/lib/components/Datagrid/utils/getArgTypes.js +4 -0
  74. package/lib/components/EditSidePanel/EditSidePanel.js +7 -3
  75. package/lib/components/FilterSummary/FilterSummary.js +7 -3
  76. package/lib/components/Guidebanner/Guidebanner.js +229 -0
  77. package/lib/components/Guidebanner/GuidebannerElement.js +67 -0
  78. package/lib/components/Guidebanner/GuidebannerElementButton.js +71 -0
  79. package/lib/components/Guidebanner/GuidebannerElementLink.js +52 -0
  80. package/lib/components/Guidebanner/index.js +33 -0
  81. package/lib/components/InlineTip/InlineTip.js +228 -0
  82. package/lib/components/InlineTip/InlineTipButton.js +86 -0
  83. package/lib/components/InlineTip/InlineTipLink.js +86 -0
  84. package/lib/components/InlineTip/index.js +26 -0
  85. package/lib/components/InlineTip/utils.js +44 -0
  86. package/lib/components/SteppedAnimatedMedia/SteppedAnimatedMedia.js +165 -0
  87. package/lib/components/SteppedAnimatedMedia/assets/index.js +12 -0
  88. package/lib/components/SteppedAnimatedMedia/index.js +12 -0
  89. package/lib/components/Tearsheet/TearsheetShell.js +2 -1
  90. package/lib/components/index.js +21 -1
  91. package/lib/global/js/hooks/useResizeObserver.js +1 -1
  92. package/lib/global/js/package-settings.js +2 -0
  93. package/package.json +5 -5
  94. package/scss/components/Carousel/_carousel.scss +80 -0
  95. package/scss/components/Carousel/_index.scss +8 -0
  96. package/scss/components/Carousel/_storybook-styles.scss +10 -0
  97. package/scss/components/Datagrid/_storybook-styles.scss +5 -0
  98. package/scss/components/Datagrid/styles/_datagrid.scss +1 -1
  99. package/scss/components/Guidebanner/_guidebanner.scss +257 -0
  100. package/scss/components/Guidebanner/_index.scss +8 -0
  101. package/scss/components/Guidebanner/_storybook-styles.scss +20 -0
  102. package/scss/components/InlineTip/_index.scss +8 -0
  103. package/scss/components/InlineTip/_inline-tip.scss +231 -0
  104. package/scss/components/InlineTip/_storybook-styles.scss +21 -0
  105. package/scss/components/SteppedAnimatedMedia/_index.scss +8 -0
  106. package/scss/components/SteppedAnimatedMedia/_stepped-animated-media.scss +34 -0
  107. package/scss/components/SteppedAnimatedMedia/_storybook-styles.scss +12 -0
  108. package/scss/components/_index.scss +4 -0
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GuidebannerElement = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _devtools = require("../../global/js/utils/devtools");
14
+ var _settings = require("../../settings");
15
+ var _excluded = ["button", "className", "description", "title"];
16
+ // Carbon and package components we use.
17
+ /* TODO: @import(s) of carbon components and other package components. */
18
+
19
+ // The block part of our conventional BEM class names (blockClass__E--M).
20
+ var blockClass = "".concat(_settings.pkg.prefix, "--guidebanner__element");
21
+ var componentName = 'GuidebannerElement';
22
+
23
+ /**
24
+ * The GuidebannerElement is a required child component of the Guidebanner,
25
+ * and acts as a container for a CarouselItem.
26
+ */
27
+ var GuidebannerElement = function GuidebannerElement(_ref) {
28
+ var button = _ref.button,
29
+ className = _ref.className,
30
+ description = _ref.description,
31
+ title = _ref.title,
32
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
33
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
34
+ className: (0, _classnames.default)(blockClass, className)
35
+ }, (0, _devtools.getDevtoolsProps)(componentName)), title && /*#__PURE__*/_react.default.createElement("h2", {
36
+ className: "".concat(blockClass, "-title")
37
+ }, title), description && /*#__PURE__*/_react.default.createElement("p", {
38
+ className: "".concat(blockClass, "-content")
39
+ }, description), button && /*#__PURE__*/_react.default.createElement("div", {
40
+ className: "".concat(blockClass, "-buttons")
41
+ }, button));
42
+ };
43
+
44
+ // The types and DocGen commentary for the component props,
45
+ // in alphabetical order (for consistency).
46
+ // See https://www.npmjs.com/package/prop-types#usage.
47
+ exports.GuidebannerElement = GuidebannerElement;
48
+ GuidebannerElement.propTypes = {
49
+ /**
50
+ * An optional button can be rendered below the description.
51
+ * This can be a link, button, Coachmark button, etc.
52
+ */
53
+ button: _propTypes.default.node,
54
+ /**
55
+ * Provide an optional class to be applied to the containing node.
56
+ */
57
+ className: _propTypes.default.string,
58
+ /**
59
+ * The description of the element.
60
+ */
61
+
62
+ description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired,
63
+ /**
64
+ * The title of the element.
65
+ */
66
+ title: _propTypes.default.string
67
+ };
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GuidebannerElementButton = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _carbonComponentsReact = require("carbon-components-react");
14
+ var _iconsReact = require("@carbon/icons-react");
15
+ var _devtools = require("../../global/js/utils/devtools");
16
+ var _settings = require("../../settings");
17
+ var _excluded = ["children", "className", "type"];
18
+ // Carbon and package components we use.
19
+ /* TODO: @import(s) of carbon components and other package components. */
20
+
21
+ // The block part of our conventional BEM class names (blockClass__E--M).
22
+ var blockClass = "".concat(_settings.pkg.prefix, "--guidebanner__element-button");
23
+ var componentName = 'GuidebannerElementButton';
24
+
25
+ /**
26
+ * One of two buttons styled specifically for the GuidebannerElement.
27
+ */
28
+ var GuidebannerElementButton = function GuidebannerElementButton(_ref) {
29
+ var children = _ref.children,
30
+ className = _ref.className,
31
+ type = _ref.type,
32
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
33
+ if (type === 'primary') {
34
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, (0, _extends2.default)({}, rest, {
35
+ className: (0, _classnames.default)(blockClass, className),
36
+ iconDescription: 'Crossroads',
37
+ kind: "tertiary",
38
+ renderIcon: _iconsReact.Crossroads16,
39
+ role: "button",
40
+ size: "md"
41
+ }, (0, _devtools.getDevtoolsProps)(componentName)), children);
42
+ }
43
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, (0, _extends2.default)({}, rest, {
44
+ className: (0, _classnames.default)(blockClass, className),
45
+ kind: "ghost",
46
+ role: "button",
47
+ size: "md"
48
+ }, (0, _devtools.getDevtoolsProps)(componentName)), children);
49
+ };
50
+
51
+ // The types and DocGen commentary for the component props,
52
+ // in alphabetical order (for consistency).
53
+ // See https://www.npmjs.com/package/prop-types#usage.
54
+ exports.GuidebannerElementButton = GuidebannerElementButton;
55
+ GuidebannerElementButton.propTypes = {
56
+ /**
57
+ * Provide the contents of the GuidebannerElementButton.
58
+ */
59
+ children: _propTypes.default.node.isRequired,
60
+ /**
61
+ * Provide an optional class to be applied to the containing node.
62
+ */
63
+ className: _propTypes.default.string,
64
+ /**
65
+ * If type is "primary", then return a tertiary button with the "crossroads" icon,
66
+ * else return a ghost button.
67
+ */
68
+ type: _propTypes.default.string
69
+
70
+ /* TODO: add types and DocGen for all props. */
71
+ };
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.GuidebannerElementLink = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _carbonComponentsReact = require("carbon-components-react");
14
+ var _devtools = require("../../global/js/utils/devtools");
15
+ var _settings = require("../../settings");
16
+ var _excluded = ["children", "className"];
17
+ // Carbon and package components we use.
18
+ /* TODO: @import(s) of carbon components and other package components. */
19
+
20
+ // The block part of our conventional BEM class names (blockClass__E--M).
21
+ var blockClass = "".concat(_settings.pkg.prefix, "--guidebanner__element-link");
22
+ var componentName = 'GuidebannerElementLink';
23
+
24
+ /**
25
+ * A link styled specifically for the GuidebannerElement.
26
+ */
27
+ var GuidebannerElementLink = function GuidebannerElementLink(_ref) {
28
+ var children = _ref.children,
29
+ className = _ref.className,
30
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Link, (0, _extends2.default)({}, rest, {
32
+ className: (0, _classnames.default)(blockClass, className),
33
+ kind: "ghost",
34
+ role: "link",
35
+ size: "md"
36
+ }, (0, _devtools.getDevtoolsProps)(componentName)), children);
37
+ };
38
+
39
+ // The types and DocGen commentary for the component props,
40
+ // in alphabetical order (for consistency).
41
+ // See https://www.npmjs.com/package/prop-types#usage.
42
+ exports.GuidebannerElementLink = GuidebannerElementLink;
43
+ GuidebannerElementLink.propTypes = {
44
+ /**
45
+ * Provide the contents of the GuidebannerElementLink.
46
+ */
47
+ children: _propTypes.default.node.isRequired,
48
+ /**
49
+ * Provide an optional class to be applied to the containing node.
50
+ */
51
+ className: _propTypes.default.string
52
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Guidebanner", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Guidebanner.Guidebanner;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "GuidebannerElement", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _GuidebannerElement.GuidebannerElement;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "GuidebannerElementButton", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _GuidebannerElementButton.GuidebannerElementButton;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "GuidebannerElementLink", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _GuidebannerElementLink.GuidebannerElementLink;
28
+ }
29
+ });
30
+ var _Guidebanner = require("./Guidebanner");
31
+ var _GuidebannerElement = require("./GuidebannerElement");
32
+ var _GuidebannerElementButton = require("./GuidebannerElementButton");
33
+ var _GuidebannerElementLink = require("./GuidebannerElementLink");
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.InlineTip = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _iconsReact = require("@carbon/icons-react");
14
+ var _carbonComponentsReact = require("carbon-components-react");
15
+ var _propTypes = _interopRequireDefault(require("prop-types"));
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+ var _utils = require("./utils");
18
+ var _SteppedAnimatedMedia = require("../SteppedAnimatedMedia");
19
+ var _devtools = require("../../global/js/utils/devtools");
20
+ var _settings = require("../../settings");
21
+ var _excluded = ["children", "className", "closeIconDescription", "collapsible", "collapseButtonLabel", "expandButtonLabel", "narrow", "onClick", "onClose", "tertiaryButtonLabel", "action", "title", "media"];
22
+ 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); }
23
+ 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; }
24
+ // Carbon and package components we use.
25
+ /* TODO: @import(s) of carbon components and other package components. */
26
+
27
+ // The block part of our conventional BEM class names (blockClass__E--M).
28
+ var blockClass = "".concat(_settings.pkg.prefix, "--inline-tip");
29
+ var componentName = 'InlineTip';
30
+
31
+ // NOTE: the component SCSS is not imported here: it is rolled up separately.
32
+
33
+ // Default values can be included here and then assigned to the prop params,
34
+ // e.g. prop = defaults.prop,
35
+ // This gathers default values together neatly and ensures non-primitive
36
+ // values are initialized early to avoid react making unnecessary re-renders.
37
+ // Note that default values are not required for props that are 'required',
38
+ // nor for props where the component can apply undefined values reasonably.
39
+ // Default values should be provided when the component needs to make a choice
40
+ // or assumption when a prop is not supplied.
41
+
42
+ // Default values for props
43
+ var defaults = {
44
+ closeIconDescription: 'Close',
45
+ collapsible: false,
46
+ collapseButtonLabel: 'Read less',
47
+ expandButtonLabel: 'Read more',
48
+ narrow: false,
49
+ onClick: function onClick() {},
50
+ onClose: function onClose() {}
51
+ };
52
+
53
+ /**
54
+ * TODO: A description of the component.
55
+ */
56
+ var InlineTip = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
57
+ var children = _ref.children,
58
+ className = _ref.className,
59
+ _ref$closeIconDescrip = _ref.closeIconDescription,
60
+ closeIconDescription = _ref$closeIconDescrip === void 0 ? defaults.closeIconDescription : _ref$closeIconDescrip,
61
+ _ref$collapsible = _ref.collapsible,
62
+ collapsible = _ref$collapsible === void 0 ? defaults.collapsible : _ref$collapsible,
63
+ _ref$collapseButtonLa = _ref.collapseButtonLabel,
64
+ collapseButtonLabel = _ref$collapseButtonLa === void 0 ? defaults.collapseButtonLabel : _ref$collapseButtonLa,
65
+ _ref$expandButtonLabe = _ref.expandButtonLabel,
66
+ expandButtonLabel = _ref$expandButtonLabe === void 0 ? defaults.expandButtonLabel : _ref$expandButtonLabe,
67
+ _ref$narrow = _ref.narrow,
68
+ narrow = _ref$narrow === void 0 ? defaults.narrow : _ref$narrow,
69
+ onClick = _ref.onClick,
70
+ onClose = _ref.onClose,
71
+ tertiaryButtonLabel = _ref.tertiaryButtonLabel,
72
+ action = _ref.action,
73
+ _ref$title = _ref.title,
74
+ title = _ref$title === void 0 ? defaults.title : _ref$title,
75
+ media = _ref.media,
76
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
77
+ var _useState = (0, _react.useState)(collapsible),
78
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
79
+ isCollapsed = _useState2[0],
80
+ setIsCollapsed = _useState2[1];
81
+ var previewText = (0, _react.useMemo)(function () {
82
+ return (0, _utils.getComponentText)(_react.default.Children.toArray(children));
83
+ }, [children]);
84
+ var childrenToRender = children;
85
+ if (!media && collapsible && isCollapsed) {
86
+ childrenToRender = /*#__PURE__*/_react.default.createElement("p", {
87
+ className: "".concat(blockClass, "__preview-text")
88
+ }, previewText);
89
+ }
90
+
91
+ // If `collapsible` is changed after initial render...
92
+ (0, _react.useEffect)(function () {
93
+ setIsCollapsed(collapsible);
94
+ }, [collapsible]);
95
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
96
+ className: (0, _classnames.default)(blockClass,
97
+ // Apply the block class to the main HTML element
98
+ className,
99
+ // Apply any supplied class names to the main HTML element.
100
+ [collapsible ? "".concat(blockClass, "__collapsible") : null], [isCollapsed ? "".concat(blockClass, "__collapsible-collapsed") : null], [narrow ? "".concat(blockClass, "__narrow") : "".concat(blockClass, "__wide")], [media ? "".concat(blockClass, "__has-media") : null]),
101
+ ref: ref,
102
+ role: "complementary"
103
+ }, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
104
+ kind: "ghost",
105
+ size: "lg",
106
+ renderIcon: _iconsReact.Close16,
107
+ iconDescription: closeIconDescription,
108
+ hasIconOnly: true,
109
+ className: "".concat(blockClass, "__close-icon"),
110
+ onClick: onClose
111
+ }), (!media && narrow || !narrow) && /*#__PURE__*/_react.default.createElement("div", {
112
+ className: "".concat(blockClass, "__icon-idea"),
113
+ tabIndex: -1
114
+ }, /*#__PURE__*/_react.default.createElement(_iconsReact.Idea20, null)), /*#__PURE__*/_react.default.createElement("div", {
115
+ className: "".concat(blockClass, "__content")
116
+ }, /*#__PURE__*/_react.default.createElement("h6", {
117
+ className: "".concat(blockClass, "__title")
118
+ }, title), /*#__PURE__*/_react.default.createElement("section", {
119
+ className: "".concat(blockClass, "__body")
120
+ }, childrenToRender, action && (!collapsible || collapsible && !isCollapsed) && /*#__PURE__*/_react.default.createElement("div", {
121
+ className: "".concat(blockClass, "__secondary-btn")
122
+ }, action)), (collapsible || tertiaryButtonLabel) && /*#__PURE__*/_react.default.createElement("footer", {
123
+ className: "".concat(blockClass, "__footer")
124
+ }, collapsible && !media && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
125
+ className: "".concat(blockClass, "__toggle-btn"),
126
+ kind: "ghost",
127
+ size: "md",
128
+ onClick: function onClick() {
129
+ setIsCollapsed(function (prevState) {
130
+ return !prevState;
131
+ });
132
+ }
133
+ }, isCollapsed ? expandButtonLabel : collapseButtonLabel), tertiaryButtonLabel && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
134
+ className: "".concat(blockClass, "__close-btn"),
135
+ size: "md",
136
+ onClick: onClick,
137
+ kind: "tertiary",
138
+ renderIcon: _iconsReact.Crossroads16
139
+ }, tertiaryButtonLabel))), media && (media.render ? /*#__PURE__*/_react.default.createElement("div", {
140
+ className: "".concat(blockClass, "__media")
141
+ }, media.render()) : /*#__PURE__*/_react.default.createElement(_SteppedAnimatedMedia.SteppedAnimatedMedia, {
142
+ className: "".concat(blockClass, "__media"),
143
+ filePaths: media.filePaths
144
+ })));
145
+ });
146
+
147
+ // Return a placeholder if not released and not enabled by feature flag
148
+ exports.InlineTip = InlineTip;
149
+ exports.InlineTip = InlineTip = _settings.pkg.checkComponentEnabled(InlineTip, componentName);
150
+
151
+ // The display name of the component, used by React. Note that displayName
152
+ // is used in preference to relying on function.name.
153
+ InlineTip.displayName = componentName;
154
+
155
+ // The types and DocGen commentary for the component props,
156
+ // in alphabetical order (for consistency).
157
+ // See https://www.npmjs.com/package/prop-types#usage.
158
+ InlineTip.propTypes = {
159
+ /**
160
+ * Optional "call to action" ghost button or link that can appear
161
+ * directly below the content. This component comes with pre-styled
162
+ * elements available to use: `InlineTipLink` and `InlineTipButton`.
163
+ */
164
+ action: _propTypes.default.node,
165
+ /**
166
+ * Provide the contents of the InlineTip.
167
+ */
168
+ children: _propTypes.default.node.isRequired,
169
+ /**
170
+ * Provide an optional class to be applied to the containing node.
171
+ */
172
+ className: _propTypes.default.string,
173
+ /**
174
+ * Tooltip text and aria label for the Close button icon.
175
+ */
176
+ closeIconDescription: _propTypes.default.string,
177
+ /**
178
+ * The label for the collapse button.
179
+ * This button is not visible if `media` is specified.
180
+ */
181
+ collapseButtonLabel: _propTypes.default.string,
182
+ /**
183
+ * If set to `true`, it will truncate the body text to
184
+ * one line and expose an expand/collapse button toggle.
185
+ *
186
+ * This feature is disabled if `media` is specified.
187
+ */
188
+ collapsible: _propTypes.default.bool,
189
+ /**
190
+ * The label for the expand button.
191
+ * This button is not visible if `media` is specified.
192
+ */
193
+ expandButtonLabel: _propTypes.default.string,
194
+ /**
195
+ * The object describing an image in one of two shapes.
196
+ * - If a single media element is required, use `{render}`.
197
+ * - If a stepped animation is required, use `{filePaths}`.
198
+ *
199
+ * Enabling `media` disables the `collapsible` feature.
200
+ */
201
+ media: _propTypes.default.oneOfType([_propTypes.default.shape({
202
+ render: _propTypes.default.func
203
+ }), _propTypes.default.shape({
204
+ filePaths: _propTypes.default.string
205
+ })]),
206
+ /**
207
+ * Set to `true` to arrange the information in a format
208
+ * that is easier to read in a limited space.
209
+ */
210
+ narrow: _propTypes.default.bool,
211
+ /**
212
+ * Function to call when the tertiary button is clicked.
213
+ */
214
+ onClick: _propTypes.default.func,
215
+ /**
216
+ * Function to call when the InlineTip is closed via the "X" button.
217
+ */
218
+ onClose: _propTypes.default.func,
219
+ /**
220
+ * Defining the label will show a the tertiary button with the crossroads icon.
221
+ * You will still need to define the `onClose` method to trigger a callback.
222
+ */
223
+ tertiaryButtonLabel: _propTypes.default.string,
224
+ /**
225
+ * The title of the InlineTip.
226
+ */
227
+ title: _propTypes.default.string.isRequired
228
+ };
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.InlineTipButton = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _carbonComponentsReact = require("carbon-components-react");
14
+ var _devtools = require("../../global/js/utils/devtools");
15
+ var _settings = require("../../settings");
16
+ var _excluded = ["children", "className"];
17
+ // Carbon and package components we use.
18
+ /* TODO: @import(s) of carbon components and other package components. */
19
+
20
+ // The block part of our conventional BEM class names (blockClass__E--M).
21
+ var blockClass = "".concat(_settings.pkg.prefix, "--inline-tip__button");
22
+ var componentName = 'InlineTipButton';
23
+
24
+ // NOTE: the component SCSS is not imported here: it is rolled up separately.
25
+
26
+ // Default values can be included here and then assigned to the prop params,
27
+ // e.g. prop = defaults.prop,
28
+ // This gathers default values together neatly and ensures non-primitive
29
+ // values are initialized early to avoid react making unnecessary re-renders.
30
+ // Note that default values are not required for props that are 'required',
31
+ // nor for props where the component can apply undefined values reasonably.
32
+ // Default values should be provided when the component needs to make a choice
33
+ // or assumption when a prop is not supplied.
34
+
35
+ // Default values for props
36
+ // const defaults = {
37
+ // /* TODO: add defaults for relevant props if needed */
38
+ // };
39
+
40
+ /**
41
+ * TODO: A description of the component.
42
+ */
43
+ var InlineTipButton = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
44
+ var children = _ref.children,
45
+ className = _ref.className,
46
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
47
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, (0, _extends2.default)({}, rest, {
48
+ className: (0, _classnames.default)(blockClass,
49
+ // Apply the block class to the main HTML element
50
+ className,
51
+ // Apply any supplied class names to the main HTML element.
52
+ // example: `${blockClass}__template-string-class-${kind}-n-${size}`,
53
+ {
54
+ // switched classes dependant on props or state
55
+ // example: [`${blockClass}__here-if-small`]: size === 'sm',
56
+ }),
57
+ ref: ref
58
+ }, (0, _devtools.getDevtoolsProps)(componentName), {
59
+ size: "md",
60
+ kind: "ghost"
61
+ }), children);
62
+ });
63
+
64
+ // Return a placeholder if not released and not enabled by feature flag
65
+ exports.InlineTipButton = InlineTipButton;
66
+ exports.InlineTipButton = InlineTipButton = _settings.pkg.checkComponentEnabled(InlineTipButton, componentName);
67
+
68
+ // The display name of the component, used by React. Note that displayName
69
+ // is used in preference to relying on function.name.
70
+ InlineTipButton.displayName = componentName;
71
+
72
+ // The types and DocGen commentary for the component props,
73
+ // in alphabetical order (for consistency).
74
+ // See https://www.npmjs.com/package/prop-types#usage.
75
+ InlineTipButton.propTypes = {
76
+ /**
77
+ * Provide the contents of the InlineTipButton.
78
+ */
79
+ children: _propTypes.default.node.isRequired,
80
+ /**
81
+ * Provide an optional class to be applied to the containing node.
82
+ */
83
+ className: _propTypes.default.string
84
+
85
+ /* TODO: add types and DocGen for all props. */
86
+ };
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.InlineTipLink = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _iconsReact = require("@carbon/icons-react");
14
+ var _carbonComponentsReact = require("carbon-components-react");
15
+ var _devtools = require("../../global/js/utils/devtools");
16
+ var _settings = require("../../settings");
17
+ var _excluded = ["children", "className"];
18
+ // Carbon and package components we use.
19
+ /* TODO: @import(s) of carbon components and other package components. */
20
+
21
+ // The block part of our conventional BEM class names (blockClass__E--M).
22
+ var blockClass = "".concat(_settings.pkg.prefix, "--inline-tip__link");
23
+ var componentName = 'InlineTipLink';
24
+
25
+ // NOTE: the component SCSS is not imported here: it is rolled up separately.
26
+
27
+ // Default values can be included here and then assigned to the prop params,
28
+ // e.g. prop = defaults.prop,
29
+ // This gathers default values together neatly and ensures non-primitive
30
+ // values are initialized early to avoid react making unnecessary re-renders.
31
+ // Note that default values are not required for props that are 'required',
32
+ // nor for props where the component can apply undefined values reasonably.
33
+ // Default values should be provided when the component needs to make a choice
34
+ // or assumption when a prop is not supplied.
35
+
36
+ // Default values for props
37
+ // const defaults = {
38
+ // /* TODO: add defaults for relevant props if needed */
39
+ // };
40
+
41
+ /**
42
+ * TODO: A description of the component.
43
+ */
44
+ var InlineTipLink = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
45
+ var children = _ref.children,
46
+ className = _ref.className,
47
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
48
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Link, (0, _extends2.default)({}, rest, {
49
+ className: (0, _classnames.default)(blockClass,
50
+ // Apply the block class to the main HTML element
51
+ className,
52
+ // Apply any supplied class names to the main HTML element.
53
+ // example: `${blockClass}__template-string-class-${kind}-n-${size}`,
54
+ {
55
+ // switched classes dependant on props or state
56
+ // example: [`${blockClass}__here-if-small`]: size === 'sm',
57
+ }),
58
+ ref: ref
59
+ }, (0, _devtools.getDevtoolsProps)(componentName), {
60
+ renderIcon: _iconsReact.Launch16
61
+ }), children);
62
+ });
63
+
64
+ // Return a placeholder if not released and not enabled by feature flag
65
+ exports.InlineTipLink = InlineTipLink;
66
+ exports.InlineTipLink = InlineTipLink = _settings.pkg.checkComponentEnabled(InlineTipLink, componentName);
67
+
68
+ // The display name of the component, used by React. Note that displayName
69
+ // is used in preference to relying on function.name.
70
+ InlineTipLink.displayName = componentName;
71
+
72
+ // The types and DocGen commentary for the component props,
73
+ // in alphabetical order (for consistency).
74
+ // See https://www.npmjs.com/package/prop-types#usage.
75
+ InlineTipLink.propTypes = {
76
+ /**
77
+ * Provide the contents of the InlineTipLink.
78
+ */
79
+ children: _propTypes.default.node.isRequired,
80
+ /**
81
+ * Provide an optional class to be applied to the containing node.
82
+ */
83
+ className: _propTypes.default.string
84
+
85
+ /* TODO: add types and DocGen for all props. */
86
+ };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "InlineTip", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _InlineTip.InlineTip;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "InlineTipButton", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _InlineTipButton.InlineTipButton;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "InlineTipLink", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _InlineTipLink.InlineTipLink;
22
+ }
23
+ });
24
+ var _InlineTip = require("./InlineTip");
25
+ var _InlineTipButton = require("./InlineTipButton");
26
+ var _InlineTipLink = require("./InlineTipLink");