@madie/madie-design-system 1.2.62 → 2.0.1
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/.babelrc +14 -2
- package/.eslintrc.js +1 -1
- package/.storybook/.babelrc +2 -1
- package/.storybook/main.js +3 -11
- package/.storybook/preview.js +1 -1
- package/components/Accordion/index.jsx +32 -36
- package/components/AutoComplete/AutoComplete.jsx +2 -17
- package/components/Button/Button.stories.js +0 -7
- package/components/Button/index.js +34 -44
- package/components/DateField/DateField.jsx +2 -15
- package/components/DateField/DateField.stories.jsx +23 -10
- package/components/DateTimeField/DateTimeField.jsx +7 -11
- package/components/DateTimeField/DateTimeField.stories.jsx +29 -19
- package/components/InputLabel/index.jsx +1 -6
- package/components/Instant/Instant.stories.js +14 -6
- package/components/Instant/index.jsx +0 -16
- package/components/Link/index.js +14 -33
- package/components/MadieAlert/MadieAlert.stories.js +35 -29
- package/components/MadieAlert/index.jsx +5 -44
- package/components/MadieConfirmDialog/MadieConfirmDialog.stories.js +17 -32
- package/components/MadieConfirmDialog/index.jsx +0 -8
- package/components/MadieDeleteDialog/MadieDeleteDialog.stories.js +9 -24
- package/components/MadieDeleteDialog/index.jsx +0 -7
- package/components/MadieDialog/MadieDialog.stories.js +45 -121
- package/components/MadieDialog/index.jsx +4 -23
- package/components/MadieDiscardDialog/MadieDiscardDialog.stories.js +5 -12
- package/components/MadieDiscardDialog/index.jsx +0 -7
- package/components/MadieSpinner/MadieSpinner.stories.js +1 -9
- package/components/MadieSpinner/index.jsx +0 -5
- package/components/MadieTooltip/MadieTooltip.stories.js +7 -2
- package/components/MadieTooltip/index.jsx +0 -6
- package/components/MadieTooltipIcon/index.jsx +0 -5
- package/components/Modal/Modal.jsx +31 -43
- package/components/Modal/Modal.stories.js +18 -89
- package/components/Modal/index.jsx +6 -8
- package/components/NumberInput/NumberInput.stories.js +50 -67
- package/components/NumberInput/index.jsx +0 -13
- package/components/Pagination/index.jsx +0 -17
- package/components/Popover/Popover.stories.js +6 -14
- package/components/Popover/index.js +0 -23
- package/components/RadioButton/RadioButton.jsx +5 -15
- package/components/RadioButton/RadioButton.stories.jsx +6 -2
- package/components/ReadOnlyTextField/ReadOnlyTextField.stories.js +3 -8
- package/components/ReadOnlyTextField/index.jsx +1 -9
- package/components/RichTextEditor/RichTextEditor.stories.js +10 -8
- package/components/RichTextEditor/index.jsx +14 -30
- package/components/SanitizedContent/index.jsx +0 -8
- package/components/Search/Search.stories.js +2 -4
- package/components/Search/index.js +26 -40
- package/components/Select/Select.stories.js +59 -164
- package/components/Select/index.jsx +2 -17
- package/components/Tabs/Tab.js +29 -25
- package/components/Tabs/TabPanel.js +15 -19
- package/components/Tabs/Tabs.stories.js +43 -211
- package/components/Tabs/index.js +10 -28
- package/components/TextArea/TextArea.stories.js +87 -113
- package/components/TextArea/index.jsx +2 -14
- package/components/TextField/TextField.stories.js +100 -129
- package/components/TextField/index.jsx +2 -17
- package/components/TimeField/TimeField.jsx +0 -10
- package/components/TimeField/TimeField.stories.js +18 -8
- package/components/Toast/Toast.stories.js +42 -102
- package/components/Toast/index.jsx +0 -14
- package/components/TruncateText/TruncateText.stories.js +22 -17
- package/components/TruncateText/index.js +0 -8
- package/components/hooks/useGetConfig.js +2 -2
- package/components/{index.js → index.mjs} +37 -57
- package/dist/index.js +3 -1
- package/dist/index.js.LICENSE.txt +16 -0
- package/dist/index.js.map +1 -0
- package/dist/react/index.html +1 -1
- package/dist/react/index.mjs +103 -0
- package/dist/react/{index.js.LICENSE.txt → index.mjs.LICENSE.txt} +3 -52
- package/dist/react/index.mjs.map +1 -0
- package/dist/react/package.json +1 -0
- package/eslint.config.cjs +59 -0
- package/index.js +7 -9
- package/jest.config.mjs +10 -0
- package/lib/Chevron.jsx +2 -10
- package/package.json +57 -82
- package/styles/_main.scss +4 -3
- package/test/components/Accordion.test.js +1 -1
- package/test/components/AutoComplete.test.js +11 -6
- package/test/components/Button.test.js +13 -19
- package/test/components/DateField.test.js +25 -29
- package/test/components/DateTimeField.test.js +21 -25
- package/test/components/Instant.test.js +1 -1
- package/test/components/MadieAlert.test.js +22 -22
- package/test/components/MadieConfirmDialog.test.js +42 -64
- package/test/components/MadieDeleteDialog.test.js +51 -69
- package/test/components/MadieDialog.test.js +13 -13
- package/test/components/MadieDiscardDialog.test.js +28 -45
- package/test/components/MadieSpinner.test.js +12 -17
- package/test/components/Modal.test.js +115 -0
- package/test/components/Pagination.test.js +2 -2
- package/test/components/RadioButton.test.js +7 -7
- package/test/components/ReadOnlyTextField.test.js +4 -2
- package/test/components/RichTextEditor.test.js +90 -6
- package/test/components/Search.test.js +75 -0
- package/test/components/Select.test.js +97 -107
- package/test/components/Tabs.test.js +22 -24
- package/test/components/TextArea.test.js +78 -92
- package/test/components/TextField.test.js +128 -147
- package/test/components/Toast.test.js +67 -78
- package/test/components/TruncateText.test.js +75 -0
- package/test/components/index.test.js +23 -0
- package/webpack.config.mjs +79 -0
- package/webpack.config.react.mjs +72 -0
- package/.eslintignore +0 -5
- package/components/Alert/Alert.stories.js +0 -70
- package/components/Alert/index.js +0 -55
- package/components/Breadcrumb/Breadcrumb.md +0 -28
- package/components/Breadcrumb/Breadcrumb.stories.js +0 -76
- package/components/Breadcrumb/index.js +0 -92
- package/components/CalloutBox/CalloutBox.stories.js +0 -94
- package/components/CalloutBox/index.js +0 -109
- package/components/Card/Card.stories.js +0 -163
- package/components/Card/index.js +0 -144
- package/components/Dropdown/Dropdown.stories.js +0 -94
- package/components/Dropdown/index.js +0 -85
- package/components/Error/Collapsible.jsx +0 -93
- package/components/Error/ErrorUI.jsx +0 -31
- package/components/Error/error.js +0 -26
- package/components/FlashNotification/FlashNotificationUI.jsx +0 -91
- package/components/FlashNotification/index.js +0 -30
- package/components/Footer/Footer.stories.js +0 -20
- package/components/Footer/FooterUI.jsx +0 -137
- package/components/Footer/LegacyFooterUI.jsx +0 -204
- package/components/Footer/SocialLinks.jsx +0 -63
- package/components/Footer/Subscribe.jsx +0 -34
- package/components/Footer/footer.js +0 -30
- package/components/Infotip/Infotip.jsx +0 -75
- package/components/Infotip/Infotip.stories.js +0 -52
- package/components/Infotip/InfotipIcon.jsx +0 -41
- package/components/Infotip/index.js +0 -3
- package/components/Link/Link.stories.js +0 -82
- package/components/NotificationBanner/NotificationBanner.stories.js +0 -23
- package/components/NotificationBanner/index.js +0 -279
- package/components/Spinner/index.js +0 -9
- package/components/TextInput/TextInput.stories.js +0 -118
- package/components/TextInput/index.js +0 -137
- package/components/Tooltip/Tooltip.jsx +0 -88
- package/components/Tooltip/Tooltip.stories.js +0 -80
- package/components/Tooltip/index.js +0 -3
- package/components/Tooltip/position.js +0 -76
- package/components/UnwrappedSpinner/index.js +0 -8
- package/dist/browser.js +0 -1
- package/dist/react/index.js +0 -185
- package/dist/react/index.js.map +0 -1
- package/jest.config.js +0 -17
- package/test/components/ErrorUI.test.js +0 -32
- package/test/components/FooterUI.test.js +0 -122
- package/test/components/Infotip.test.js +0 -76
- package/test/components/Tooltip.test.js +0 -147
- package/webpack.config.js +0 -124
- package/webpack.config.react.js +0 -104
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import React, { Component } from "react";
|
|
2
|
-
import PropTypes from "prop-types";
|
|
3
|
-
import reactDOM from "react-dom";
|
|
4
|
-
import { CloseXIcon } from "../../lib/SvgComponents.jsx";
|
|
5
|
-
|
|
6
|
-
class FlashNotification extends Component {
|
|
7
|
-
constructor(props) {
|
|
8
|
-
super(props);
|
|
9
|
-
this.state = { isClosed: true };
|
|
10
|
-
this._closeFlashNotification = this.closeFlashNotification.bind(this);
|
|
11
|
-
this._fadeOutNotification = this.fadeOutNotification.bind(this);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
render() {
|
|
15
|
-
return (
|
|
16
|
-
<div
|
|
17
|
-
className={
|
|
18
|
-
this.state.isClosed
|
|
19
|
-
? "flash-notification notification-closed"
|
|
20
|
-
: "flash-notification"
|
|
21
|
-
}
|
|
22
|
-
ref={(elem) => {
|
|
23
|
-
this.element = elem;
|
|
24
|
-
}}
|
|
25
|
-
>
|
|
26
|
-
<div className={this.props.success ? "success" : "error"}>
|
|
27
|
-
<div className="icon"></div>
|
|
28
|
-
<div className="text-content">
|
|
29
|
-
<p className="title-text">{this.props.titleText}</p>
|
|
30
|
-
<p className="body-text">{this.props.bodyText}</p>
|
|
31
|
-
</div>
|
|
32
|
-
<div className="close-notification-container">
|
|
33
|
-
<button
|
|
34
|
-
className="closeNotification"
|
|
35
|
-
aria-label="Close notification"
|
|
36
|
-
onClick={this._closeFlashNotification}
|
|
37
|
-
>
|
|
38
|
-
<svg className="close-icon" aria-hidden="true">
|
|
39
|
-
{/* <use xlinkHref="#closex" /> */}
|
|
40
|
-
<CloseXIcon />
|
|
41
|
-
</svg>
|
|
42
|
-
</button>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
componentDidMount() {
|
|
50
|
-
setTimeout(
|
|
51
|
-
function () {
|
|
52
|
-
this.setState({ isClosed: false });
|
|
53
|
-
}.bind(this),
|
|
54
|
-
250
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
this.timer = setTimeout(
|
|
58
|
-
function () {
|
|
59
|
-
this._fadeOutNotification();
|
|
60
|
-
}.bind(this),
|
|
61
|
-
10000
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
fadeOutNotification() {
|
|
66
|
-
this.setState({ isClosed: true });
|
|
67
|
-
setTimeout(
|
|
68
|
-
function () {
|
|
69
|
-
reactDOM.unmountComponentAtNode(this.element.parentElement);
|
|
70
|
-
if (typeof this.props.onClose === "function") {
|
|
71
|
-
this.props.onClose();
|
|
72
|
-
}
|
|
73
|
-
}.bind(this),
|
|
74
|
-
500
|
|
75
|
-
);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
closeFlashNotification() {
|
|
79
|
-
clearTimeout(this.timer);
|
|
80
|
-
this._fadeOutNotification();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
FlashNotification.propTypes = {
|
|
85
|
-
bodyText: PropTypes.string,
|
|
86
|
-
success: PropTypes.bool.isRequired,
|
|
87
|
-
titleText: PropTypes.string,
|
|
88
|
-
onClose: PropTypes.func,
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
export default FlashNotification;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { render } from "react-dom";
|
|
3
|
-
import FlashNotificationUI from "./FlashNotificationUI";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Renders the Confirmation/Error Flash Component
|
|
7
|
-
*/
|
|
8
|
-
export default class FlashNotification {
|
|
9
|
-
/**
|
|
10
|
-
* @param {Object} options - An object containing content and config data
|
|
11
|
-
* @param {Boolean} options.success - Whether to render a confirmation or error notification
|
|
12
|
-
* @param {String} options.titleText - The title text displayed on the notification
|
|
13
|
-
* @param {String} options.bodyText - The body text displayed on the notification
|
|
14
|
-
* @param {HTMLElement} options.rootElement - Elem inside which to render
|
|
15
|
-
*/
|
|
16
|
-
constructor(options) {
|
|
17
|
-
if (options.hasOwnProperty("rootElement")) {
|
|
18
|
-
render(
|
|
19
|
-
<FlashNotificationUI
|
|
20
|
-
success={options.success}
|
|
21
|
-
titleText={options.titleText}
|
|
22
|
-
bodyText={options.bodyText}
|
|
23
|
-
/>,
|
|
24
|
-
options.rootElement
|
|
25
|
-
);
|
|
26
|
-
} else {
|
|
27
|
-
render(<FlashNotificationUI />, options);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import Footer from "./FooterUI";
|
|
3
|
-
import { withKnobs, boolean, text } from "@storybook/addon-knobs";
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
title: "Footer",
|
|
7
|
-
component: Footer,
|
|
8
|
-
decorators: [withKnobs],
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export const ExampleFooter = () => (
|
|
12
|
-
<Footer
|
|
13
|
-
isFullWidth={boolean("isFullWidth", false)}
|
|
14
|
-
buildVersion={text("buildVersion", "BUILD VERSION")}
|
|
15
|
-
isNewFooter={boolean("isNewFooter", false)}
|
|
16
|
-
showHcdResearch={boolean("showHcdResearch", false)}
|
|
17
|
-
/>
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
ExampleFooter.storyName = "example Footer";
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import PropTypes from "prop-types";
|
|
3
|
-
|
|
4
|
-
import LegacyFooterUI from "./LegacyFooterUI";
|
|
5
|
-
|
|
6
|
-
const FooterUI = (props) => {
|
|
7
|
-
const isNewFooter = props.isNewFooter;
|
|
8
|
-
const isIESupportPage = props.isIESupportPage;
|
|
9
|
-
const signUpNowLink = props.showHcdResearch
|
|
10
|
-
? "/about/hcd-research"
|
|
11
|
-
: "mailto:madie@cms.hhs.gov?subject=Sign up for feedback sessions";
|
|
12
|
-
|
|
13
|
-
// Default footer assets
|
|
14
|
-
const assets = {
|
|
15
|
-
...{
|
|
16
|
-
hhsLogo: (
|
|
17
|
-
<img
|
|
18
|
-
className="hhs-logo"
|
|
19
|
-
alt="Department of Health & Human Services USA"
|
|
20
|
-
src="/images/hhs-logo-black.svg"
|
|
21
|
-
/>
|
|
22
|
-
),
|
|
23
|
-
madieLogo: (
|
|
24
|
-
<img
|
|
25
|
-
className="qpp-logo"
|
|
26
|
-
src="/images/qpp_logo_rgb_color.png"
|
|
27
|
-
alt="MADiE Measure Authoring Development Integrated Environment logo"
|
|
28
|
-
/>
|
|
29
|
-
),
|
|
30
|
-
},
|
|
31
|
-
...props.assets,
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const setLink = (link) => {
|
|
35
|
-
return isIESupportPage ? "/" : link;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
if (isNewFooter) {
|
|
39
|
-
return (
|
|
40
|
-
<>
|
|
41
|
-
{!isIESupportPage && (
|
|
42
|
-
<div className="feedback-session-sign-up" />
|
|
43
|
-
)}
|
|
44
|
-
<footer aria-label="Site footer" className="global-footer">
|
|
45
|
-
<div className="build-version" id="build-version">
|
|
46
|
-
{props.buildVersion}
|
|
47
|
-
</div>
|
|
48
|
-
|
|
49
|
-
<div className="responsive-container">
|
|
50
|
-
<div className="other-links">
|
|
51
|
-
<hr className="divider-top" />
|
|
52
|
-
<ul className="small">
|
|
53
|
-
<li>
|
|
54
|
-
<a
|
|
55
|
-
href={setLink(
|
|
56
|
-
"https://harp.cms.gov/login/terms-of-use"
|
|
57
|
-
)}
|
|
58
|
-
aria-label="Terms of Use"
|
|
59
|
-
data-track-category="FooterNav"
|
|
60
|
-
data-track-action="OpenTermsOfService"
|
|
61
|
-
data-track-label="Terms of Use"
|
|
62
|
-
>
|
|
63
|
-
Terms of Use
|
|
64
|
-
</a>
|
|
65
|
-
</li>
|
|
66
|
-
<li className="divider"></li>{" "}
|
|
67
|
-
<li>
|
|
68
|
-
<a
|
|
69
|
-
href={setLink(
|
|
70
|
-
"https://www.cms.gov/privacy"
|
|
71
|
-
)}
|
|
72
|
-
aria-label="Privacy Policy"
|
|
73
|
-
data-track-category="FooterNav"
|
|
74
|
-
data-track-action="OpenPrivacyPolicy"
|
|
75
|
-
data-track-label="Privacy Policy"
|
|
76
|
-
>
|
|
77
|
-
Privacy Policy
|
|
78
|
-
</a>
|
|
79
|
-
</li>
|
|
80
|
-
<li className="divider"></li>{" "}
|
|
81
|
-
<li>
|
|
82
|
-
<a
|
|
83
|
-
href={setLink(
|
|
84
|
-
"https://www.hhs.gov/web/governance/digital-strategy/it-policy-archive/hhs-rules-of-behavior-for-the-use-of-hhs-information-and-it-resources-policy.html"
|
|
85
|
-
)}
|
|
86
|
-
aria-label="Rules of Behavior"
|
|
87
|
-
data-track-category="FooterNav"
|
|
88
|
-
data-track-action="OpenRulesofBehavior"
|
|
89
|
-
data-track-label="Rules of Behavior"
|
|
90
|
-
>
|
|
91
|
-
Rules of Behavior
|
|
92
|
-
</a>
|
|
93
|
-
</li>
|
|
94
|
-
</ul>
|
|
95
|
-
<hr className="divider-bottom" />
|
|
96
|
-
</div>
|
|
97
|
-
<div className="qpp-hhs-logo-container">
|
|
98
|
-
<div className="qpp-logo-container">
|
|
99
|
-
{assets.qppLogo}
|
|
100
|
-
</div>
|
|
101
|
-
<div className="hhs-logo-container">
|
|
102
|
-
{assets.hhsLogo}
|
|
103
|
-
<p>
|
|
104
|
-
A federal government website managed and
|
|
105
|
-
paid for by the U.S Centers for Medicare
|
|
106
|
-
& Medicaid Services. 7500 Security
|
|
107
|
-
Boulevard, Baltimore MD 21244
|
|
108
|
-
</p>
|
|
109
|
-
</div>
|
|
110
|
-
</div>
|
|
111
|
-
</div>
|
|
112
|
-
</footer>
|
|
113
|
-
</>
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
return (
|
|
117
|
-
<LegacyFooterUI
|
|
118
|
-
buildVersion={props.buildVersion}
|
|
119
|
-
isFullWidth={props.isFullWidth}
|
|
120
|
-
signUpNowLink={signUpNowLink}
|
|
121
|
-
/>
|
|
122
|
-
);
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
FooterUI.propTypes = {
|
|
126
|
-
buildVersion: PropTypes.string,
|
|
127
|
-
isFullWidth: PropTypes.bool,
|
|
128
|
-
isNewFooter: PropTypes.bool,
|
|
129
|
-
isIESupportPage: PropTypes.bool,
|
|
130
|
-
showHcdResearch: PropTypes.bool,
|
|
131
|
-
assets: PropTypes.shape({
|
|
132
|
-
cmsLogo: PropTypes.element,
|
|
133
|
-
madieLogo: PropTypes.element,
|
|
134
|
-
}),
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
export default FooterUI;
|
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import PropTypes from "prop-types";
|
|
3
|
-
import InfoTip from "../Infotip/Infotip";
|
|
4
|
-
|
|
5
|
-
const infoTipLabel =
|
|
6
|
-
"When dialing 711, you will automatically be connected to a TRS Communications Assistant who will relay your conversation to the help desk agent with strict confidentiality.";
|
|
7
|
-
|
|
8
|
-
const LegacyFooterUI = ({ buildVersion, isFullWidth, signUpNowLink }) => {
|
|
9
|
-
return (
|
|
10
|
-
<footer className="legacy-footer">
|
|
11
|
-
<div className="build-version" id="build-version">
|
|
12
|
-
{buildVersion}
|
|
13
|
-
</div>
|
|
14
|
-
<div className="banner">
|
|
15
|
-
<div
|
|
16
|
-
className={
|
|
17
|
-
isFullWidth
|
|
18
|
-
? "container-full-width"
|
|
19
|
-
: "responsive-container"
|
|
20
|
-
}
|
|
21
|
-
>
|
|
22
|
-
<div className="row">
|
|
23
|
-
<div className="col-sm-12 col-md-12 col-lg-12">
|
|
24
|
-
<span>Help shape the future of MADiE</span> by
|
|
25
|
-
participating in user feedback sessions.{" "}
|
|
26
|
-
<a className="email-note-link" href={signUpNowLink}>
|
|
27
|
-
Send us an email to sign up
|
|
28
|
-
</a>
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
<div
|
|
34
|
-
className={
|
|
35
|
-
isFullWidth
|
|
36
|
-
? "container-full-width"
|
|
37
|
-
: "responsive-container"
|
|
38
|
-
}
|
|
39
|
-
>
|
|
40
|
-
<div className="row">
|
|
41
|
-
<div
|
|
42
|
-
className={
|
|
43
|
-
isFullWidth
|
|
44
|
-
? "col-sm-12 col-md-8 col-lg-8"
|
|
45
|
-
: "col-sm-8 col-md-9 col-lg-9"
|
|
46
|
-
}
|
|
47
|
-
>
|
|
48
|
-
<div className="logo-container">
|
|
49
|
-
<img
|
|
50
|
-
src="/images/qpp_logo_reversed.png"
|
|
51
|
-
alt="Quality Payment Program"
|
|
52
|
-
className="qpp-logo"
|
|
53
|
-
/>
|
|
54
|
-
<div className="social-container">
|
|
55
|
-
<a
|
|
56
|
-
rel="noopener noreferrer"
|
|
57
|
-
target="_blank"
|
|
58
|
-
className="social-link"
|
|
59
|
-
href="https://twitter.com/CMSGov"
|
|
60
|
-
aria-label="Follow us on Twitter. This link opens in a new window."
|
|
61
|
-
>
|
|
62
|
-
<span className="glyphicon glyphicon-twitter"></span>
|
|
63
|
-
</a>
|
|
64
|
-
<a
|
|
65
|
-
rel="noopener noreferrer"
|
|
66
|
-
target="_blank"
|
|
67
|
-
className="social-link"
|
|
68
|
-
href="https://www.youtube.com/playlist?list=PLaV7m2-zFKpj_6fBsqav6GvFzzq9oOpkk"
|
|
69
|
-
aria-label="Follow us on YouTube. This link opens in a new window."
|
|
70
|
-
>
|
|
71
|
-
<span className="glyphicon glyphicon-youtube"></span>
|
|
72
|
-
</a>
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
<div className="links">
|
|
76
|
-
<ul>
|
|
77
|
-
<li>
|
|
78
|
-
<a
|
|
79
|
-
href="/developers"
|
|
80
|
-
data-track-category="FooterNav"
|
|
81
|
-
data-track-action="OpenDeveloperTools"
|
|
82
|
-
data-track-label="Quality Payment Program"
|
|
83
|
-
>
|
|
84
|
-
Developer Tools
|
|
85
|
-
</a>
|
|
86
|
-
</li>
|
|
87
|
-
<li>
|
|
88
|
-
<a
|
|
89
|
-
href="/about/resource-library"
|
|
90
|
-
data-track-category="FooterNav"
|
|
91
|
-
data-track-action="OpenEducationAndTools"
|
|
92
|
-
data-track-label="Education and Tools"
|
|
93
|
-
>
|
|
94
|
-
Resource Library
|
|
95
|
-
</a>
|
|
96
|
-
</li>
|
|
97
|
-
<li>
|
|
98
|
-
<a
|
|
99
|
-
href="/glossary"
|
|
100
|
-
data-track-category="FooterNav"
|
|
101
|
-
data-track-action="OpenGlossary"
|
|
102
|
-
data-track-label="Glossary"
|
|
103
|
-
>
|
|
104
|
-
Glossary
|
|
105
|
-
</a>
|
|
106
|
-
</li>
|
|
107
|
-
<li>
|
|
108
|
-
<a
|
|
109
|
-
href="/resources/help-and-support"
|
|
110
|
-
data-track-category="FooterNav"
|
|
111
|
-
data-track-action="OpenHelpAndSupport"
|
|
112
|
-
data-track-label="Help and Support"
|
|
113
|
-
>
|
|
114
|
-
Help and Support
|
|
115
|
-
</a>
|
|
116
|
-
</li>
|
|
117
|
-
</ul>
|
|
118
|
-
<ul className="small">
|
|
119
|
-
<li>
|
|
120
|
-
<a
|
|
121
|
-
href="https://www.cms.gov/privacy"
|
|
122
|
-
data-track-category="FooterNav"
|
|
123
|
-
data-track-action="OpenPrivacyDisclaimer"
|
|
124
|
-
data-track-label="Notice of Privacy and Disclaimer"
|
|
125
|
-
>
|
|
126
|
-
CMS Privacy Notice
|
|
127
|
-
</a>
|
|
128
|
-
</li>
|
|
129
|
-
<span className="divider"></span>
|
|
130
|
-
<li>
|
|
131
|
-
<a
|
|
132
|
-
href="https://www.cms.gov/About-CMS/Agency-Information/Aboutwebsite/Policiesforaccessibility"
|
|
133
|
-
data-track-category="FooterNav"
|
|
134
|
-
data-track-action="OpenAccessibility"
|
|
135
|
-
data-track-label="Accessibility"
|
|
136
|
-
>
|
|
137
|
-
Accessibility
|
|
138
|
-
</a>
|
|
139
|
-
</li>
|
|
140
|
-
<span className="divider"></span>
|
|
141
|
-
<li>
|
|
142
|
-
<a
|
|
143
|
-
className="adobe-link"
|
|
144
|
-
rel="noopener noreferrer"
|
|
145
|
-
target="_blank"
|
|
146
|
-
href="https://get.adobe.com/reader"
|
|
147
|
-
data-track-category="FooterNav"
|
|
148
|
-
data-track-action="DownloadAdobeReader"
|
|
149
|
-
data-track-label="AdobeReader"
|
|
150
|
-
>
|
|
151
|
-
<svg className="icon">
|
|
152
|
-
<use xlinkHref="#icon-download" />
|
|
153
|
-
</svg>
|
|
154
|
-
Download Adobe Reader
|
|
155
|
-
</a>
|
|
156
|
-
</li>
|
|
157
|
-
<span className="divider"></span>
|
|
158
|
-
<li>
|
|
159
|
-
<a
|
|
160
|
-
href="mailto:sb-mat-help@semanticbits.com"
|
|
161
|
-
className="email-link"
|
|
162
|
-
>
|
|
163
|
-
sb-mat-help@semanticbits.com
|
|
164
|
-
</a>
|
|
165
|
-
</li>
|
|
166
|
-
<li>
|
|
167
|
-
1-866-288-8292 (TRS: 711)
|
|
168
|
-
<div className="footer-trs-infotip">
|
|
169
|
-
<InfoTip
|
|
170
|
-
lightIcon
|
|
171
|
-
label={infoTipLabel}
|
|
172
|
-
/>
|
|
173
|
-
</div>
|
|
174
|
-
</li>
|
|
175
|
-
</ul>
|
|
176
|
-
</div>
|
|
177
|
-
</div>
|
|
178
|
-
<div
|
|
179
|
-
className={
|
|
180
|
-
isFullWidth
|
|
181
|
-
? "col-sm-12 col-md-4 col-lg-4"
|
|
182
|
-
: "col-sm-4 col-md-3 col-lg-3"
|
|
183
|
-
}
|
|
184
|
-
>
|
|
185
|
-
<div className="hhs-logo-container">
|
|
186
|
-
<img
|
|
187
|
-
alt="Department of Health & Human Services USA"
|
|
188
|
-
src="/images/hhs-logo-white.svg"
|
|
189
|
-
/>
|
|
190
|
-
</div>
|
|
191
|
-
</div>
|
|
192
|
-
</div>
|
|
193
|
-
</div>
|
|
194
|
-
</footer>
|
|
195
|
-
);
|
|
196
|
-
};
|
|
197
|
-
|
|
198
|
-
LegacyFooterUI.propTypes = {
|
|
199
|
-
buildVersion: PropTypes.string,
|
|
200
|
-
isFullWidth: PropTypes.bool,
|
|
201
|
-
signUpNowLink: PropTypes.string,
|
|
202
|
-
};
|
|
203
|
-
|
|
204
|
-
export default LegacyFooterUI;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
|
|
3
|
-
const SocialLinks = () => (
|
|
4
|
-
<div className="social-container">
|
|
5
|
-
<a
|
|
6
|
-
rel="noopener noreferrer"
|
|
7
|
-
target="_blank"
|
|
8
|
-
className="social-link"
|
|
9
|
-
href="https://twitter.com/CMSGov"
|
|
10
|
-
aria-label="Follow us on Twitter. This link opens in a new window."
|
|
11
|
-
>
|
|
12
|
-
<svg width="19px" height="16px" viewBox="0 0 19 16">
|
|
13
|
-
<g stroke="none" strokeWidth="1" fill="none" fillRule="evenodd">
|
|
14
|
-
<g
|
|
15
|
-
transform="translate(-763.000000, -177.000000)"
|
|
16
|
-
fill="#242424"
|
|
17
|
-
fillRule="nonzero"
|
|
18
|
-
>
|
|
19
|
-
<g transform="translate(763.000000, 140.000000)">
|
|
20
|
-
<g transform="translate(0.000000, 37.000000)">
|
|
21
|
-
<path
|
|
22
|
-
d="M16.9243259,4.73901817 C16.9243259,4.57725788 16.9243259,4.41549759 16.916868,4.25373729 C17.6626567,3.71698723 18.3114928,3.05524058 18.826087,2.30526104 C18.1250456,2.6067234 17.3867149,2.81260014 16.6260105,2.90083303 C17.4240043,2.43025763 18.0206352,1.68763083 18.3040349,0.812654705 C17.5507884,1.25381914 16.7304209,1.56263424 15.8727639,1.72439454 C14.425934,0.202377237 12.0021209,0.128849832 10.4583384,1.56263424 C9.46643951,2.48172682 9.04133999,3.8566893 9.35457121,5.16547712 C6.28192201,5.01106957 3.41063575,3.5846379 1.47158528,1.22440818 C0.457312727,2.94494947 0.971906889,5.15077164 2.65738922,6.26103547 C2.04584253,6.24632999 1.45666951,6.0845697 0.919701685,5.79046007 C0.919701685,5.80516555 0.919701685,5.81987104 0.919701685,5.83457652 C0.919701685,7.62864522 2.20245815,9.17272074 3.99235089,9.53300502 C3.42555152,9.68741258 2.83637849,9.7094708 2.26212124,9.59917969 C2.76179963,11.1359025 4.20117171,12.1873444 5.83444883,12.2167553 C4.4771135,13.2681972 2.80654695,13.8343583 1.08377519,13.8343583 C0.778001843,13.8343583 0.4722285,13.8123 0.173913043,13.7828891 C1.93397424,14.8784474 3.96251934,15.4666667 6.04326965,15.4666667 C13.0760565,15.4666667 16.9243259,9.71682354 16.9243259,4.73901817 Z"
|
|
23
|
-
id="twitter-icon"
|
|
24
|
-
></path>
|
|
25
|
-
</g>
|
|
26
|
-
</g>
|
|
27
|
-
</g>
|
|
28
|
-
</g>
|
|
29
|
-
</svg>
|
|
30
|
-
</a>
|
|
31
|
-
<a
|
|
32
|
-
rel="noopener noreferrer"
|
|
33
|
-
target="_blank"
|
|
34
|
-
className="social-link"
|
|
35
|
-
href="https://www.youtube.com/playlist?list=PLaV7m2-zFKpj_6fBsqav6GvFzzq9oOpkk"
|
|
36
|
-
aria-label="Follow us on YouTube. This link opens in a new window."
|
|
37
|
-
>
|
|
38
|
-
<svg width="19px" height="14px" viewBox="0 0 19 14">
|
|
39
|
-
<g stroke="none" strokeWidth="1" fill="none" fillRule="evenodd">
|
|
40
|
-
<g
|
|
41
|
-
transform="translate(-801.000000, -179.000000)"
|
|
42
|
-
fill="#242424"
|
|
43
|
-
fillRule="nonzero"
|
|
44
|
-
>
|
|
45
|
-
<g transform="translate(763.000000, 140.000000)">
|
|
46
|
-
<g
|
|
47
|
-
id="Group"
|
|
48
|
-
transform="translate(38.000000, 39.000000)"
|
|
49
|
-
>
|
|
50
|
-
<path
|
|
51
|
-
d="M17.7486957,2.84298208 C17.551087,2.10010036 16.9670652,1.51515412 16.2265217,1.3162724 C14.8843478,0.955555556 9.5,0.955555556 9.5,0.955555556 C9.5,0.955555556 4.11565217,0.955555556 2.77347826,1.3162724 C2.03293478,1.51515412 1.44891304,2.10010036 1.25130435,2.84298208 C0.891304348,4.19030824 0.891304348,7 0.891304348,7 C0.891304348,7 0.891304348,9.80969176 1.25130435,11.1570179 C1.44891304,11.8998996 2.03293478,12.4848459 2.77347826,12.6837276 C4.11565217,13.0444444 9.5,13.0444444 9.5,13.0444444 C9.5,13.0444444 14.8843478,13.0444444 16.2265217,12.6837276 C16.9670652,12.4848459 17.551087,11.8998996 17.7486957,11.1570179 C18.1086957,9.80969176 18.1086957,7 18.1086957,7 C18.1086957,7 18.1086957,4.19030824 17.7486957,2.84298208 Z M7.73913043,9.5513405 L7.73913043,4.4486595 L12.2391304,7 L7.73913043,9.5513405 Z"
|
|
52
|
-
id="Youtube-icon"
|
|
53
|
-
></path>
|
|
54
|
-
</g>
|
|
55
|
-
</g>
|
|
56
|
-
</g>
|
|
57
|
-
</g>
|
|
58
|
-
</svg>
|
|
59
|
-
</a>
|
|
60
|
-
</div>
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
export default SocialLinks;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
|
|
3
|
-
const Subscribe = () => (
|
|
4
|
-
<div className="subscriber-form">
|
|
5
|
-
<form
|
|
6
|
-
action="https://public.govdelivery.com/accounts/USCMS/subscriber/qualify"
|
|
7
|
-
target="_blank"
|
|
8
|
-
acceptCharset="UTF-8"
|
|
9
|
-
method="get"
|
|
10
|
-
rel="noopener noreferrer"
|
|
11
|
-
>
|
|
12
|
-
<input type="hidden" name="topic_id" value="USCMS_12196" />
|
|
13
|
-
<label className="sr-only" htmlFor="email-subscribe">
|
|
14
|
-
Email address
|
|
15
|
-
</label>
|
|
16
|
-
<input
|
|
17
|
-
id="email-subscribe"
|
|
18
|
-
className="form-control"
|
|
19
|
-
type="email"
|
|
20
|
-
name="email"
|
|
21
|
-
placeholder="Enter your Email"
|
|
22
|
-
/>
|
|
23
|
-
<button
|
|
24
|
-
className="btn btn-subscribe js-subscribe-submit"
|
|
25
|
-
type="submit"
|
|
26
|
-
name="commit"
|
|
27
|
-
>
|
|
28
|
-
Subscribe
|
|
29
|
-
</button>
|
|
30
|
-
</form>
|
|
31
|
-
</div>
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
export default Subscribe;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/* global buildVersion */
|
|
2
|
-
// buildVersion above is defined in webpack.config.js
|
|
3
|
-
import React from "react";
|
|
4
|
-
import { render } from "react-dom";
|
|
5
|
-
import FooterUI from "./FooterUI";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Renders the QPP Footer content.
|
|
9
|
-
*/
|
|
10
|
-
export default class Footer {
|
|
11
|
-
/**
|
|
12
|
-
* @param {Object} options - An object containing content and config data
|
|
13
|
-
* @param {HTMLElement} options.rootElement - Elem inside which to render
|
|
14
|
-
*/
|
|
15
|
-
constructor(options) {
|
|
16
|
-
if (options.hasOwnProperty("rootElement")) {
|
|
17
|
-
render(
|
|
18
|
-
<FooterUI
|
|
19
|
-
buildVersion={buildVersion}
|
|
20
|
-
isFullWidth={options.isFullWidth}
|
|
21
|
-
isNewFooter={options.isNewFooter}
|
|
22
|
-
showHcdResearch={options.showHcdResearch}
|
|
23
|
-
/>,
|
|
24
|
-
options.rootElement
|
|
25
|
-
);
|
|
26
|
-
} else {
|
|
27
|
-
render(<FooterUI buildVersion={buildVersion} />, options);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|