@conduction/components 2.2.20 → 2.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,6 +4,11 @@
4
4
 
5
5
  - **Version 2.2 (breaking changes from 2.1.x)**
6
6
 
7
+ - 2.2.22: Updated Jumbotron component to be more customizable.
8
+ - 2.2.21:
9
+ - Removed warning from HorizontalOverflowWrapper.
10
+ - Added Jumbotron component.
11
+ - Updated card-header to align hover states.
7
12
  - 2.2.20: Updated primary top nav to have more types.
8
13
  - 2.2.19: Refactored primary top nav to simplify sub-items.
9
14
  - 2.2.18:
@@ -24,6 +24,16 @@
24
24
  border-bottom-color: var(--conduction-card-header-hover-border-bottom-color);
25
25
  }
26
26
 
27
+ .container:before {
28
+ z-index: 1;
29
+ content: "";
30
+ position: absolute;
31
+ top: 0;
32
+ right: 0;
33
+ bottom: 0;
34
+ left: 0;
35
+ }
36
+
27
37
  .title > * {
28
38
  color: var(--conduction-card-header-title-color) !important;
29
39
  }
@@ -33,6 +33,7 @@
33
33
  border-bottom: var(--conduction-card-wrapper-border-bottom-width, var(--conduction-card-wrapper-border-width))
34
34
  var(--conduction-card-wrapper-border-bottom-style, var(--conduction-card-wrapper-border-style))
35
35
  var(--conduction-card-wrapper-border-bottom-color, var(--conduction-card-wrapper-border-color));
36
+ position: relative;
36
37
  }
37
38
 
38
39
  .container:hover {
@@ -32,5 +32,5 @@ export const HorizontalOverflowWrapper = ({ children, ariaLabels }) => {
32
32
  setCanScrollRight(wrapperRef.current.scrollLeft + wrapperRef.current.clientWidth < wrapperRef.current.scrollWidth);
33
33
  setCanScrollLeft(wrapperRef.current.scrollLeft > 0);
34
34
  };
35
- return (_jsxs("div", { className: styles.container, children: [canScrollLeft && (_jsx(Button, { className: clsx(styles.scrollButton, styles.left), onClick: scrollLeft, appearance: "secondary-action-button", "aria-label": ariaLabels.scrollLeftButton, children: _jsx(FontAwesomeIcon, { icon: faChevronLeft }) })), canScrollRight && (_jsx(Button, { className: clsx(styles.scrollButton, styles.right), onClick: scrollRight, appearance: "secondary-action-button", "aria-label": ariaLabels.scrollRightButton, children: _jsx(FontAwesomeIcon, { icon: faChevronRight }) })), _jsx("div", { ref: wrapperRef, className: styles.wrapper, onScroll: checkScrollDirections, children: children })] }));
35
+ return (_jsxs("div", { className: styles.container, children: [canScrollLeft && (_jsx(Button, { className: clsx(styles.scrollButton), onClick: scrollLeft, appearance: "secondary-action-button", "aria-label": ariaLabels.scrollLeftButton, children: _jsx(FontAwesomeIcon, { icon: faChevronLeft }) })), canScrollRight && (_jsx(Button, { className: clsx(styles.scrollButton, styles.right), onClick: scrollRight, appearance: "secondary-action-button", "aria-label": ariaLabels.scrollRightButton, children: _jsx(FontAwesomeIcon, { icon: faChevronRight }) })), _jsx("div", { ref: wrapperRef, className: styles.wrapper, onScroll: checkScrollDirections, children: children })] }));
36
36
  };
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ interface JumbotronProps {
3
+ title: string;
4
+ ariaLabel: {
5
+ container: string;
6
+ card: string;
7
+ };
8
+ role: string;
9
+ subTitle?: string;
10
+ description?: string;
11
+ image?: {
12
+ placement: "false" | "background" | "right";
13
+ url: string;
14
+ };
15
+ isCard?: boolean;
16
+ container?: boolean;
17
+ searchForm?: {
18
+ element: JSX.Element;
19
+ show: boolean;
20
+ };
21
+ }
22
+ export declare const Jumbotron: React.FC<JumbotronProps>;
23
+ export {};
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as styles from "./Jumbotron.module.css";
3
+ import clsx from "clsx";
4
+ import { Paragraph, Page, PageContent, Heading1, Image } from "@utrecht/component-library-react/dist/css-module";
5
+ import { Container } from "../container/Container";
6
+ import { CardWrapper } from "../card";
7
+ export const Jumbotron = ({ title, ariaLabel, role, subTitle, description, image, isCard, searchForm, container, }) => {
8
+ return (_jsx(OptionalContainer, { ...{ container }, children: _jsx("div", { "aria-label": ariaLabel.container, role: role, style: {
9
+ backgroundImage: image?.placement === "background" ? `url(${image.url})` : "",
10
+ }, className: clsx(image?.placement === "background" && styles.backgroundImageWrapper, image?.placement === "right" && styles.rightImageWrapper), children: _jsx(Page, { children: _jsx(PageContent, { children: _jsx(ImageContainer, { image: { placement: image?.placement ?? "false", url: image?.url ?? "" }, children: _jsxs(SearchForm, { searchForm: { show: searchForm?.show ?? false, element: searchForm?.element ?? _jsx(_Fragment, {}) }, children: [isCard && (_jsx(JumbotronCard, { ...{ title, ariaLabel, role, subTitle, description, image, isCard, searchForm } })), !isCard && (_jsx(JumbotronContent, { ...{ title, ariaLabel, role, subTitle, description, image, isCard, searchForm } }))] }) }) }) }) }) }));
11
+ };
12
+ const OptionalContainer = ({ children, container }) => {
13
+ if (container === true)
14
+ return _jsx(Container, { layoutClassName: styles.wrapper, children: children });
15
+ return _jsx(_Fragment, { children: children });
16
+ };
17
+ const ImageContainer = ({ children, image }) => {
18
+ if (image.placement === "right")
19
+ return (_jsxs("div", { className: styles.imageRightContainer, children: [children, _jsx(Image, { src: image.url, alt: "jumbotron-image", className: styles.image })] }));
20
+ if (image.placement === "false" || image.placement === "background")
21
+ return _jsx(_Fragment, { children: children });
22
+ return _jsx(_Fragment, { children: children });
23
+ };
24
+ const SearchForm = ({ children, searchForm, }) => {
25
+ if (searchForm.show)
26
+ return (_jsxs("section", { className: clsx(styles.headerSearchForm), children: [children, searchForm.element] }));
27
+ return _jsx(_Fragment, { children: children });
28
+ };
29
+ const JumbotronCard = ({ title, ariaLabel, subTitle, description, image, searchForm }) => {
30
+ return (_jsxs(CardWrapper, { "aria-label": ariaLabel.card, role: "contentinfo", className: styles.card, children: [_jsxs(Heading1, { className: clsx(image?.placement === "right" ? styles.cardAndImageTitle : styles.cardTitle), children: [title, " "] }), _jsx("span", { className: styles.cardSubTitle, children: subTitle }), _jsx(Paragraph, { className: styles.cardDescription, children: description })] }));
31
+ };
32
+ const JumbotronContent = ({ title, subTitle, description, image, searchForm }) => {
33
+ return (_jsxs("div", { children: [_jsx(Heading1, { className: clsx(clsx(styles.title, !subTitle && styles.titleSingle)), children: title }), subTitle && _jsx("span", { className: styles.subTitle, children: subTitle }), description && _jsx(Paragraph, { className: styles.description, children: description })] }));
34
+ };
@@ -0,0 +1,88 @@
1
+ .wrapper {
2
+ padding-block-start: 72px;
3
+ padding-block-end: 72px;
4
+ width: auto !important;
5
+ }
6
+
7
+ .backgroundImageWrapper {
8
+ background-size: cover;
9
+ background-position: 48% 39%;
10
+ max-width: 100%;
11
+ padding: 5rem 0 10rem;
12
+ }
13
+
14
+ .rightImageWrapper {
15
+ padding-block: 48px;
16
+ background-color: var(--utrecht-page-header-background-color) !important;
17
+ }
18
+
19
+ .imageRightContainer {
20
+ display: flex;
21
+ margin: auto;
22
+ justify-content: space-between;
23
+ gap: var(--utrecht-space-inline-xl);
24
+ align-items: center;
25
+ }
26
+
27
+ .headerSearchForm > *:not(:last-child) {
28
+ margin-block-end: 32px;
29
+ }
30
+
31
+ .headerSearchForm > .subHeading2 {
32
+ width: 100%;
33
+ max-width: 800px;
34
+ margin-block-end: 48px;
35
+ }
36
+
37
+ .card {
38
+ width: fit-content;
39
+ padding-inline-start: 48px;
40
+ padding-inline-end: 48px;
41
+ padding-block-start: 40px;
42
+ padding-block-end: 40px;
43
+ border-bottom: var(--conduction-card-wrapper-border-width) var(--conduction-card-wrapper-border-style) var(--conduction-card-wrapper-border-color);
44
+ }
45
+
46
+ .card:hover {
47
+ background-color: var(--conduction-card-wrapper-background-color);
48
+ cursor: default;
49
+ border-bottom: var(--conduction-card-wrapper-border-width) var(--conduction-card-wrapper-border-style) var(--conduction-card-wrapper-border-color);
50
+ }
51
+
52
+ .cardTitle,
53
+ .cardAndImageTitle {
54
+ border-block-end: var(--conduction-card-wrapper-header-border-block-end);
55
+ color: var(--conduction-card-header-title-color, var(--conduction-card-wrapper-color)) !important;
56
+ }
57
+
58
+ .cardAndImageTitle {
59
+ width: max-content;
60
+ }
61
+
62
+ .cardSubTitle,
63
+ .subTitle {
64
+ position: relative;
65
+ font-style: italic;
66
+ display: block;
67
+ margin-block-end: var(--utrecht-space-block-md);
68
+ font-size: var(--utrecht-document-font-size);
69
+ }
70
+
71
+ .cardDescription {
72
+ color: var(--conduction-card-wrapper-color) !important;
73
+ }
74
+
75
+ .image {
76
+ width: 50% !important;
77
+ object-fit: contain;
78
+ }
79
+
80
+ .title,
81
+ .description,
82
+ .subTitle {
83
+ color: var(--utrecht-page-header-color) !important;
84
+ }
85
+
86
+ .titleSingle {
87
+ margin-block-end: var(--utrecht-space-block-2xs);
88
+ }
package/lib/index.d.ts CHANGED
@@ -24,4 +24,5 @@ import { ToolTip } from "./components/toolTip/ToolTip";
24
24
  import { Pagination } from "./components/Pagination/Pagination";
25
25
  import { Tabs, TabList, Tab, TabPanel } from "./components/tabs/Tabs";
26
26
  import { HorizontalOverflowWrapper } from "./components/horizontalOverflowWrapper/HorizontalOverflowWrapper";
27
- export { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, Container, Breadcrumbs, InputText, InputPassword, InputEmail, InputDate, InputNumber, InputFile, Textarea, InputCheckbox, SelectMultiple, SelectSingle, ImageDivider, AuthenticatedLogo, UnauthenticatedLogo, MetaIcon, PrivateRoute, PrimaryTopNav, SecondaryTopNav, Tag, NotificationPopUp, QuoteWrapper, Pagination, BadgeCounter, CodeBlock, ToolTip, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, Tabs, TabList, Tab, TabPanel, HorizontalOverflowWrapper, };
27
+ import { Jumbotron } from "./components/jumbotron/Jumbotron";
28
+ export { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, Container, Breadcrumbs, InputText, InputPassword, InputEmail, InputDate, InputNumber, InputFile, Textarea, InputCheckbox, SelectMultiple, SelectSingle, ImageDivider, AuthenticatedLogo, UnauthenticatedLogo, MetaIcon, PrivateRoute, PrimaryTopNav, SecondaryTopNav, Tag, NotificationPopUp, QuoteWrapper, Pagination, BadgeCounter, CodeBlock, ToolTip, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, Tabs, TabList, Tab, TabPanel, HorizontalOverflowWrapper, Jumbotron, };
package/lib/index.js CHANGED
@@ -17,4 +17,5 @@ import { ToolTip } from "./components/toolTip/ToolTip";
17
17
  import { Pagination } from "./components/Pagination/Pagination";
18
18
  import { Tabs, TabList, Tab, TabPanel } from "./components/tabs/Tabs";
19
19
  import { HorizontalOverflowWrapper } from "./components/horizontalOverflowWrapper/HorizontalOverflowWrapper";
20
- export { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, Container, Breadcrumbs, InputText, InputPassword, InputEmail, InputDate, InputNumber, InputFile, Textarea, InputCheckbox, SelectMultiple, SelectSingle, ImageDivider, AuthenticatedLogo, UnauthenticatedLogo, MetaIcon, PrivateRoute, PrimaryTopNav, SecondaryTopNav, Tag, NotificationPopUp, QuoteWrapper, Pagination, BadgeCounter, CodeBlock, ToolTip, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, Tabs, TabList, Tab, TabPanel, HorizontalOverflowWrapper, };
20
+ import { Jumbotron } from "./components/jumbotron/Jumbotron";
21
+ export { DownloadCard, HorizontalImageCard, ImageAndDetailsCard, DetailsCard, InfoCard, Container, Breadcrumbs, InputText, InputPassword, InputEmail, InputDate, InputNumber, InputFile, Textarea, InputCheckbox, SelectMultiple, SelectSingle, ImageDivider, AuthenticatedLogo, UnauthenticatedLogo, MetaIcon, PrivateRoute, PrimaryTopNav, SecondaryTopNav, Tag, NotificationPopUp, QuoteWrapper, Pagination, BadgeCounter, CodeBlock, ToolTip, CardWrapper, CardHeader, CardHeaderTitle, CardHeaderDate, Tabs, TabList, Tab, TabPanel, HorizontalOverflowWrapper, Jumbotron, };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@conduction/components",
3
- "version": "2.2.20",
3
+ "version": "2.2.22",
4
4
  "description": "React (Gatsby) components used within the Conduction Skeleton Application (and its implementations)",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -24,6 +24,16 @@
24
24
  border-bottom-color: var(--conduction-card-header-hover-border-bottom-color);
25
25
  }
26
26
 
27
+ .container:before {
28
+ z-index: 1;
29
+ content: "";
30
+ position: absolute;
31
+ top: 0;
32
+ right: 0;
33
+ bottom: 0;
34
+ left: 0;
35
+ }
36
+
27
37
  .title > * {
28
38
  color: var(--conduction-card-header-title-color) !important;
29
39
  }
@@ -33,6 +33,7 @@
33
33
  border-bottom: var(--conduction-card-wrapper-border-bottom-width, var(--conduction-card-wrapper-border-width))
34
34
  var(--conduction-card-wrapper-border-bottom-style, var(--conduction-card-wrapper-border-style))
35
35
  var(--conduction-card-wrapper-border-bottom-color, var(--conduction-card-wrapper-border-color));
36
+ position: relative;
36
37
  }
37
38
 
38
39
  .container:hover {
@@ -52,7 +52,7 @@ export const HorizontalOverflowWrapper: React.FC<HorizontalOverflowWrapperProps>
52
52
  <div className={styles.container}>
53
53
  {canScrollLeft && (
54
54
  <Button
55
- className={clsx(styles.scrollButton, styles.left)}
55
+ className={clsx(styles.scrollButton)}
56
56
  onClick={scrollLeft}
57
57
  appearance="secondary-action-button"
58
58
  aria-label={ariaLabels.scrollLeftButton}
@@ -0,0 +1,88 @@
1
+ .wrapper {
2
+ padding-block-start: 72px;
3
+ padding-block-end: 72px;
4
+ width: auto !important;
5
+ }
6
+
7
+ .backgroundImageWrapper {
8
+ background-size: cover;
9
+ background-position: 48% 39%;
10
+ max-width: 100%;
11
+ padding: 5rem 0 10rem;
12
+ }
13
+
14
+ .rightImageWrapper {
15
+ padding-block: 48px;
16
+ background-color: var(--utrecht-page-header-background-color) !important;
17
+ }
18
+
19
+ .imageRightContainer {
20
+ display: flex;
21
+ margin: auto;
22
+ justify-content: space-between;
23
+ gap: var(--utrecht-space-inline-xl);
24
+ align-items: center;
25
+ }
26
+
27
+ .headerSearchForm > *:not(:last-child) {
28
+ margin-block-end: 32px;
29
+ }
30
+
31
+ .headerSearchForm > .subHeading2 {
32
+ width: 100%;
33
+ max-width: 800px;
34
+ margin-block-end: 48px;
35
+ }
36
+
37
+ .card {
38
+ width: fit-content;
39
+ padding-inline-start: 48px;
40
+ padding-inline-end: 48px;
41
+ padding-block-start: 40px;
42
+ padding-block-end: 40px;
43
+ border-bottom: var(--conduction-card-wrapper-border-width) var(--conduction-card-wrapper-border-style) var(--conduction-card-wrapper-border-color);
44
+ }
45
+
46
+ .card:hover {
47
+ background-color: var(--conduction-card-wrapper-background-color);
48
+ cursor: default;
49
+ border-bottom: var(--conduction-card-wrapper-border-width) var(--conduction-card-wrapper-border-style) var(--conduction-card-wrapper-border-color);
50
+ }
51
+
52
+ .cardTitle,
53
+ .cardAndImageTitle {
54
+ border-block-end: var(--conduction-card-wrapper-header-border-block-end);
55
+ color: var(--conduction-card-header-title-color, var(--conduction-card-wrapper-color)) !important;
56
+ }
57
+
58
+ .cardAndImageTitle {
59
+ width: max-content;
60
+ }
61
+
62
+ .cardSubTitle,
63
+ .subTitle {
64
+ position: relative;
65
+ font-style: italic;
66
+ display: block;
67
+ margin-block-end: var(--utrecht-space-block-md);
68
+ font-size: var(--utrecht-document-font-size);
69
+ }
70
+
71
+ .cardDescription {
72
+ color: var(--conduction-card-wrapper-color) !important;
73
+ }
74
+
75
+ .image {
76
+ width: 50% !important;
77
+ object-fit: contain;
78
+ }
79
+
80
+ .title,
81
+ .description,
82
+ .subTitle {
83
+ color: var(--utrecht-page-header-color) !important;
84
+ }
85
+
86
+ .titleSingle {
87
+ margin-block-end: var(--utrecht-space-block-2xs);
88
+ }
@@ -0,0 +1,151 @@
1
+ import * as React from "react";
2
+ import * as styles from "./Jumbotron.module.css";
3
+ import clsx from "clsx";
4
+ import { Paragraph, Page, PageContent, Heading1, Image } from "@utrecht/component-library-react/dist/css-module";
5
+ import { Container } from "../container/Container";
6
+ import { CardWrapper } from "../card";
7
+
8
+ interface JumbotronProps {
9
+ title: string;
10
+ ariaLabel: {
11
+ container: string;
12
+ card: string;
13
+ };
14
+ role: string;
15
+ subTitle?: string;
16
+ description?: string;
17
+ image?: {
18
+ placement: "false" | "background" | "right";
19
+ url: string;
20
+ };
21
+ isCard?: boolean;
22
+ container?: boolean;
23
+ searchForm?: {
24
+ element: JSX.Element;
25
+ show: boolean;
26
+ };
27
+ }
28
+
29
+ export const Jumbotron: React.FC<JumbotronProps> = ({
30
+ title,
31
+ ariaLabel,
32
+ role,
33
+ subTitle,
34
+ description,
35
+ image,
36
+ isCard,
37
+ searchForm,
38
+ container,
39
+ }) => {
40
+ return (
41
+ <OptionalContainer {...{ container }}>
42
+ <div
43
+ aria-label={ariaLabel.container}
44
+ role={role}
45
+ style={{
46
+ backgroundImage: image?.placement === "background" ? `url(${image.url})` : "",
47
+ }}
48
+ className={clsx(
49
+ image?.placement === "background" && styles.backgroundImageWrapper,
50
+ image?.placement === "right" && styles.rightImageWrapper,
51
+ )}
52
+ >
53
+ <Page>
54
+ <PageContent>
55
+ <ImageContainer image={{ placement: image?.placement ?? "false", url: image?.url ?? "" }}>
56
+ <SearchForm searchForm={{ show: searchForm?.show ?? false, element: searchForm?.element ?? <></> }}>
57
+ {isCard && (
58
+ <JumbotronCard {...{ title, ariaLabel, role, subTitle, description, image, isCard, searchForm }} />
59
+ )}
60
+ {!isCard && (
61
+ <JumbotronContent {...{ title, ariaLabel, role, subTitle, description, image, isCard, searchForm }} />
62
+ )}
63
+ </SearchForm>
64
+ </ImageContainer>
65
+ </PageContent>
66
+ </Page>
67
+ </div>
68
+ </OptionalContainer>
69
+ );
70
+ };
71
+
72
+ interface ContainerProps {
73
+ children: React.ReactNode;
74
+ container: boolean | undefined;
75
+ }
76
+
77
+ const OptionalContainer: React.FC<ContainerProps> = ({ children, container }) => {
78
+ if (container === true) return <Container layoutClassName={styles.wrapper}>{children}</Container>;
79
+
80
+ return <>{children}</>;
81
+ };
82
+
83
+ interface ImageContainerProps {
84
+ children: React.ReactNode;
85
+ image: {
86
+ placement: "false" | "background" | "right";
87
+ url: string;
88
+ };
89
+ }
90
+
91
+ const ImageContainer: React.FC<ImageContainerProps> = ({ children, image }) => {
92
+ if (image.placement === "right")
93
+ return (
94
+ <div className={styles.imageRightContainer}>
95
+ {children}
96
+ {<Image src={image.url} alt={"jumbotron-image"} className={styles.image} />}
97
+ </div>
98
+ );
99
+
100
+ if (image.placement === "false" || image.placement === "background") return <>{children}</>;
101
+
102
+ return <>{children}</>;
103
+ };
104
+
105
+ interface SearchFormProps {
106
+ children: React.ReactNode;
107
+ searchForm: {
108
+ element: JSX.Element;
109
+ show: boolean;
110
+ };
111
+ }
112
+
113
+ const SearchForm: React.FC<SearchFormProps> = ({
114
+ children,
115
+
116
+ searchForm,
117
+ }) => {
118
+ if (searchForm.show)
119
+ return (
120
+ <section className={clsx(styles.headerSearchForm)}>
121
+ {children}
122
+ {searchForm.element}
123
+ </section>
124
+ );
125
+
126
+ return <>{children}</>;
127
+ };
128
+
129
+ const JumbotronCard: React.FC<JumbotronProps> = ({ title, ariaLabel, subTitle, description, image, searchForm }) => {
130
+ return (
131
+ <CardWrapper aria-label={ariaLabel.card} role="contentinfo" className={styles.card}>
132
+ <Heading1 className={clsx(image?.placement === "right" ? styles.cardAndImageTitle : styles.cardTitle)}>
133
+ {title}{" "}
134
+ </Heading1>
135
+ <span className={styles.cardSubTitle}>{subTitle}</span>
136
+
137
+ <Paragraph className={styles.cardDescription}>{description}</Paragraph>
138
+ </CardWrapper>
139
+ );
140
+ };
141
+
142
+ const JumbotronContent: React.FC<JumbotronProps> = ({ title, subTitle, description, image, searchForm }) => {
143
+ return (
144
+ <div>
145
+ <Heading1 className={clsx(clsx(styles.title, !subTitle && styles.titleSingle))}>{title}</Heading1>
146
+ {subTitle && <span className={styles.subTitle}>{subTitle}</span>}
147
+
148
+ {description && <Paragraph className={styles.description}>{description}</Paragraph>}
149
+ </div>
150
+ );
151
+ };
package/src/index.ts CHANGED
@@ -41,6 +41,7 @@ import { ToolTip } from "./components/toolTip/ToolTip";
41
41
  import { Pagination } from "./components/Pagination/Pagination";
42
42
  import { Tabs, TabList, Tab, TabPanel } from "./components/tabs/Tabs";
43
43
  import { HorizontalOverflowWrapper } from "./components/horizontalOverflowWrapper/HorizontalOverflowWrapper";
44
+ import { Jumbotron } from "./components/jumbotron/Jumbotron";
44
45
 
45
46
  export {
46
47
  DownloadCard,
@@ -83,4 +84,5 @@ export {
83
84
  Tab,
84
85
  TabPanel,
85
86
  HorizontalOverflowWrapper,
87
+ Jumbotron,
86
88
  };