@madie/madie-design-system 1.0.0 → 1.0.3

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.
Files changed (250) hide show
  1. package/.storybook/main.js +3 -0
  2. package/README.md +2 -3
  3. package/components/Accordion/Accordion.stories.js +11 -11
  4. package/components/Accordion/index.jsx +78 -76
  5. package/components/Alert/Alert.stories.js +60 -51
  6. package/components/Alert/index.js +46 -37
  7. package/components/Breadcrumb/Breadcrumb.stories.js +62 -62
  8. package/components/Breadcrumb/index.js +80 -71
  9. package/components/Button/Button.stories.js +92 -86
  10. package/components/Button/index.js +65 -65
  11. package/components/CalloutBox/CalloutBox.stories.js +75 -75
  12. package/components/CalloutBox/index.js +92 -92
  13. package/components/Card/Card.stories.js +135 -135
  14. package/components/Card/index.js +128 -121
  15. package/components/Dropdown/Dropdown.stories.js +73 -73
  16. package/components/Dropdown/index.js +72 -72
  17. package/components/Error/Collapsible.jsx +75 -70
  18. package/components/Error/ErrorUI.jsx +22 -22
  19. package/components/Error/error.js +20 -20
  20. package/components/FlashNotification/FlashNotificationUI.jsx +77 -77
  21. package/components/FlashNotification/index.js +23 -23
  22. package/components/Footer/Footer.stories.js +13 -13
  23. package/components/Footer/FooterUI.jsx +264 -252
  24. package/components/Footer/LegacyFooterUI.jsx +190 -180
  25. package/components/Footer/SocialLinks.jsx +58 -55
  26. package/components/Footer/Subscribe.jsx +29 -29
  27. package/components/Footer/footer.js +21 -21
  28. package/components/FormControlLabel/index.jsx +23 -0
  29. package/components/Header/Header.stories.js +29 -26
  30. package/components/Header/HeaderAccountMenu.jsx +163 -149
  31. package/components/Header/HeaderCancel.jsx +8 -8
  32. package/components/Header/HeaderContainer.jsx +48 -43
  33. package/components/Header/HeaderLogo.jsx +34 -34
  34. package/components/Header/HeaderMenuButton.js +39 -39
  35. package/components/Header/HeaderMenuItem.jsx +252 -205
  36. package/components/Header/HeaderMenuLink.js +37 -37
  37. package/components/Header/HeaderMenuSignOutButton.js +50 -50
  38. package/components/Header/HeaderMobileButton.js +29 -29
  39. package/components/Header/HeaderUI.jsx +164 -147
  40. package/components/Header/HelpIcon.jsx +15 -15
  41. package/components/Header/ImpersonatorBanner.jsx +50 -47
  42. package/components/Header/NavigationButtonIcon.jsx +21 -21
  43. package/components/Header/header.js +36 -34
  44. package/components/Header/hooks.js +42 -35
  45. package/components/Header/utag-helpers.js +8 -8
  46. package/components/Infotip/Infotip.jsx +48 -48
  47. package/components/Infotip/Infotip.stories.js +32 -30
  48. package/components/Infotip/InfotipIcon.jsx +30 -30
  49. package/components/Infotip/index.js +1 -1
  50. package/components/InputLabel/index.jsx +58 -0
  51. package/components/Link/Link.stories.js +65 -64
  52. package/components/Link/index.js +46 -46
  53. package/components/Modal/LegacyModal.jsx +56 -54
  54. package/components/Modal/Modal.jsx +121 -121
  55. package/components/Modal/Modal.stories.js +152 -144
  56. package/components/Modal/index.jsx +11 -11
  57. package/components/NotificationBanner/NotificationBanner.stories.js +16 -16
  58. package/components/NotificationBanner/index.js +239 -225
  59. package/components/Pagination/index.jsx +212 -0
  60. package/components/SanitizedContent/index.jsx +183 -183
  61. package/components/Search/Search.stories.js +14 -14
  62. package/components/Search/index.js +72 -72
  63. package/components/Select/Select.stories.js +168 -0
  64. package/components/Select/index.jsx +103 -0
  65. package/components/SessionDialog/sessionDialog.js +20 -20
  66. package/components/SessionDialogUI.jsx +231 -219
  67. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +19 -17
  68. package/components/SideNav/Chart/ScoreChart.jsx +238 -229
  69. package/components/SideNav/Chart/__tests__/ScoreChart.test.js +15 -15
  70. package/components/SideNav/Chart/index.js +1 -1
  71. package/components/SideNav/Content/LevelOneContent.jsx +194 -190
  72. package/components/SideNav/Content/LevelTwoContent.jsx +208 -195
  73. package/components/SideNav/Content/index.js +2 -2
  74. package/components/SideNav/Details/IndividualDetails.jsx +10 -10
  75. package/components/SideNav/Details/PracticeDetails.jsx +36 -34
  76. package/components/SideNav/Details/index.js +2 -2
  77. package/components/SideNav/Links/CmsSwitchLink.jsx +32 -32
  78. package/components/SideNav/Links/NavItemInline.jsx +44 -44
  79. package/components/SideNav/Links/NavLinkContainer.jsx +27 -25
  80. package/components/SideNav/Links/NavLinkDrawer.jsx +267 -231
  81. package/components/SideNav/Links/NavLinkInline.jsx +94 -92
  82. package/components/SideNav/Links/NavLinkToggle.jsx +25 -25
  83. package/components/SideNav/Links/index.js +10 -10
  84. package/components/SideNav/SideNav.stories.js +320 -288
  85. package/components/SideNav/UI/SideNavUI.jsx +321 -301
  86. package/components/SideNav/UI/index.js +1 -1
  87. package/components/SideNav/helpers.js +33 -33
  88. package/components/SideNav/index.js +46 -46
  89. package/components/Spinner/index.js +6 -6
  90. package/components/Tabs/Tab.js +19 -19
  91. package/components/Tabs/TabPanel.js +31 -24
  92. package/components/Tabs/Tabs.stories.js +118 -108
  93. package/components/Tabs/index.js +84 -79
  94. package/components/TextField/TextField.stories.js +103 -0
  95. package/components/TextField/index.jsx +80 -0
  96. package/components/TextInput/TextInput.stories.js +84 -84
  97. package/components/TextInput/index.js +123 -123
  98. package/components/Tooltip/Tooltip.jsx +57 -57
  99. package/components/Tooltip/Tooltip.stories.js +50 -50
  100. package/components/Tooltip/index.js +1 -1
  101. package/components/Tooltip/position.js +42 -34
  102. package/components/UnwrappedSpinner/index.js +5 -5
  103. package/components/hooks/useGetConfig.js +64 -55
  104. package/components/index.js +129 -119
  105. package/coverage/clover.xml +1333 -0
  106. package/coverage/coverage-final.json +73 -0
  107. package/coverage/lcov-report/InputLabel/index.html +116 -0
  108. package/coverage/lcov-report/InputLabel/index.jsx.html +214 -0
  109. package/coverage/lcov-report/Select/index.html +116 -0
  110. package/coverage/lcov-report/Select/index.jsx.html +391 -0
  111. package/coverage/lcov-report/Textfield/index.html +116 -0
  112. package/coverage/lcov-report/Textfield/index.jsx.html +322 -0
  113. package/coverage/lcov-report/base.css +224 -0
  114. package/coverage/lcov-report/block-navigation.js +87 -0
  115. package/coverage/lcov-report/favicon.png +0 -0
  116. package/coverage/lcov-report/index.html +506 -0
  117. package/coverage/lcov-report/index.jsx.html +688 -0
  118. package/coverage/lcov-report/prettify.css +1 -0
  119. package/coverage/lcov-report/prettify.js +2 -0
  120. package/coverage/lcov-report/react/components/Accordion/index.html +116 -0
  121. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +370 -0
  122. package/coverage/lcov-report/react/components/Button/index.html +116 -0
  123. package/coverage/lcov-report/react/components/Button/index.js.html +355 -0
  124. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +364 -0
  125. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +178 -0
  126. package/coverage/lcov-report/react/components/Error/error.js.html +163 -0
  127. package/coverage/lcov-report/react/components/Error/index.html +146 -0
  128. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +928 -0
  129. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +697 -0
  130. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +274 -0
  131. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +187 -0
  132. package/coverage/lcov-report/react/components/Footer/footer.js.html +175 -0
  133. package/coverage/lcov-report/react/components/Footer/index.html +176 -0
  134. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +634 -0
  135. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +133 -0
  136. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +289 -0
  137. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +211 -0
  138. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +235 -0
  139. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +922 -0
  140. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +235 -0
  141. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  142. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +196 -0
  143. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +637 -0
  144. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +181 -0
  145. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +265 -0
  146. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +166 -0
  147. package/coverage/lcov-report/react/components/Header/header.js.html +211 -0
  148. package/coverage/lcov-report/react/components/Header/hooks.js.html +262 -0
  149. package/coverage/lcov-report/react/components/Header/index.html +341 -0
  150. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +112 -0
  151. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +310 -0
  152. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +208 -0
  153. package/coverage/lcov-report/react/components/Infotip/index.html +146 -0
  154. package/coverage/lcov-report/react/components/Infotip/index.js.html +94 -0
  155. package/coverage/lcov-report/react/components/InputLabel/index.html +116 -0
  156. package/coverage/lcov-report/react/components/InputLabel/index.jsx.html +214 -0
  157. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +307 -0
  158. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +505 -0
  159. package/coverage/lcov-report/react/components/Modal/index.html +146 -0
  160. package/coverage/lcov-report/react/components/Modal/index.jsx.html +151 -0
  161. package/coverage/lcov-report/react/components/NotificationBanner/index.html +116 -0
  162. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +922 -0
  163. package/coverage/lcov-report/react/components/Pagination/index.html +116 -0
  164. package/coverage/lcov-report/react/components/Pagination/index.jsx.html +721 -0
  165. package/coverage/lcov-report/react/components/SanitizedContent/index.html +116 -0
  166. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +685 -0
  167. package/coverage/lcov-report/react/components/Select/index.html +116 -0
  168. package/coverage/lcov-report/react/components/Select/index.jsx.html +391 -0
  169. package/coverage/lcov-report/react/components/SessionDialog/index.html +116 -0
  170. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +163 -0
  171. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +904 -0
  172. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +172 -0
  173. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +116 -0
  174. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +916 -0
  175. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +131 -0
  176. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +94 -0
  177. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +721 -0
  178. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +772 -0
  179. package/coverage/lcov-report/react/components/SideNav/Content/index.html +146 -0
  180. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +97 -0
  181. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +139 -0
  182. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +226 -0
  183. package/coverage/lcov-report/react/components/SideNav/Details/index.html +146 -0
  184. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +97 -0
  185. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +208 -0
  186. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +247 -0
  187. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +205 -0
  188. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +940 -0
  189. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +412 -0
  190. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +187 -0
  191. package/coverage/lcov-report/react/components/SideNav/Links/index.html +206 -0
  192. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +124 -0
  193. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +1144 -0
  194. package/coverage/lcov-report/react/components/SideNav/UI/index.html +131 -0
  195. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +94 -0
  196. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +232 -0
  197. package/coverage/lcov-report/react/components/SideNav/index.html +131 -0
  198. package/coverage/lcov-report/react/components/SideNav/index.js.html +244 -0
  199. package/coverage/lcov-report/react/components/Textfield/index.html +116 -0
  200. package/coverage/lcov-report/react/components/Textfield/index.jsx.html +322 -0
  201. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +349 -0
  202. package/coverage/lcov-report/react/components/Tooltip/index.html +146 -0
  203. package/coverage/lcov-report/react/components/Tooltip/index.js.html +94 -0
  204. package/coverage/lcov-report/react/components/Tooltip/position.js.html +313 -0
  205. package/coverage/lcov-report/react/components/hooks/index.html +116 -0
  206. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +334 -0
  207. package/coverage/lcov-report/react/components/index.html +116 -0
  208. package/coverage/lcov-report/react/index.html +116 -0
  209. package/coverage/lcov-report/react/index.js.html +178 -0
  210. package/coverage/lcov-report/react/lib/Chevron.jsx.html +181 -0
  211. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1702 -0
  212. package/coverage/lcov-report/react/lib/index.html +146 -0
  213. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +460 -0
  214. package/coverage/lcov-report/react/session/index.html +161 -0
  215. package/coverage/lcov-report/react/session/index.js.html +100 -0
  216. package/coverage/lcov-report/react/session/logout.js.html +280 -0
  217. package/coverage/lcov-report/react/session/refresh.js.html +232 -0
  218. package/coverage/lcov-report/react/session/ttl.js.html +196 -0
  219. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  220. package/coverage/lcov-report/sorter.js +196 -0
  221. package/coverage/lcov.info +3007 -0
  222. package/dist/browser.js +1 -3
  223. package/dist/index.js +1 -3
  224. package/dist/react/index.html +1 -0
  225. package/dist/react/index.js +199 -1
  226. package/dist/react/index.js.LICENSE.txt +37 -1
  227. package/dist/react/index.js.map +1 -1
  228. package/package.json +29 -15
  229. package/storybook-static/favicon.ico +0 -0
  230. package/styles/qppds/components/_button.scss +29 -1
  231. package/test/components/Accordion.test.js +10 -10
  232. package/test/components/ErrorUI.test.js +29 -30
  233. package/test/components/FooterUI.test.js +82 -80
  234. package/test/components/HeaderUI.test.js +42 -38
  235. package/test/components/Infotip.test.js +64 -61
  236. package/test/components/Pagination.test.js +55 -0
  237. package/test/components/Select.test.js +113 -0
  238. package/test/components/SessionDialogUI.test.js +302 -294
  239. package/test/components/SideNavUI.test.js +19 -19
  240. package/test/components/TextField.test.js +50 -0
  241. package/test/components/Tooltip.test.js +133 -133
  242. package/test/index.test.js +6 -6
  243. package/test/session/session.test.js +200 -200
  244. package/test-setup.js +1 -1
  245. package/webpack.config.js +9 -11
  246. package/webpack.config.react.js +7 -2
  247. package/dist/browser.js.LICENSE.txt +0 -54
  248. package/dist/browser.js.map +0 -1
  249. package/dist/index.js.LICENSE.txt +0 -54
  250. package/dist/index.js.map +0 -1
@@ -1,269 +1,281 @@
1
- import React, { useState, useEffect } from 'react';
2
- import PropTypes from 'prop-types';
3
- import axios from 'axios';
1
+ import React, { useState, useEffect } from "react";
2
+ import PropTypes from "prop-types";
3
+ import axios from "axios";
4
4
 
5
- import InfoTip from '../Infotip/Infotip';
6
- import LegacyFooterUI from './LegacyFooterUI';
7
- import Subscribe from './Subscribe';
8
- import SocialLinks from './SocialLinks';
5
+ import InfoTip from "../Infotip/Infotip";
6
+ import LegacyFooterUI from "./LegacyFooterUI";
7
+ import Subscribe from "./Subscribe";
8
+ import SocialLinks from "./SocialLinks";
9
9
 
10
10
  const infoTipLabel =
11
- '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.';
11
+ "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.";
12
12
 
13
13
  const FooterUI = (props) => {
14
- const isNewFooter = props.isNewFooter;
15
- const isIESupportPage = props.isIESupportPage;
16
- const signUpNowLink = props.showHcdResearch
17
- ? '/about/hcd-research'
18
- : 'mailto:QPPUserResearch@cms.hhs.gov?subject=Sign up for feedback sessions&body=Please let us know your role and how many Tax Identification Numbers (TINs) you represent. Don’t send us your actual TINs, that is confidential information that should not be shared with this email address. If you do not represent a practice, let us know what work you do in connection to QPP.';
19
- const [listServ, setListServ] = useState(false);
14
+ const isNewFooter = props.isNewFooter;
15
+ const isIESupportPage = props.isIESupportPage;
16
+ const signUpNowLink = props.showHcdResearch
17
+ ? "/about/hcd-research"
18
+ : "mailto:QPPUserResearch@cms.hhs.gov?subject=Sign up for feedback sessions&body=Please let us know your role and how many Tax Identification Numbers (TINs) you represent. Don’t send us your actual TINs, that is confidential information that should not be shared with this email address. If you do not represent a practice, let us know what work you do in connection to QPP.";
19
+ const [listServ, setListServ] = useState(false);
20
20
 
21
- const setLink = (link) => {
22
- return isIESupportPage ? '/' : link;
23
- };
21
+ const setLink = (link) => {
22
+ return isIESupportPage ? "/" : link;
23
+ };
24
24
 
25
- // The footer content is populated with the following priority order:
26
- // 1. Use the footer content in localStorage if it's there
27
- // 2. If not, make a call to get it from the QPPFE endpoint. Hydrate the localStorage item with the response.
28
- // 3. If the call fails, use the default value
29
- useEffect(() => {
30
- const storageContent = JSON.parse(
31
- localStorage.getItem('qpp_footer_listServ')
32
- );
33
- if (
34
- storageContent?.content &&
35
- new Date().valueOf() < storageContent.expiration
36
- ) {
37
- setListServ(storageContent.listServ);
38
- } else {
39
- const origin = window.location.origin;
40
- axios
41
- .get(
42
- !origin.includes('localhost')
43
- ? `${origin}/config/footer`
44
- : 'https://qpp.cms.gov/config/footer'
45
- )
46
- .then(({ data: { data = {} } }) => {
47
- localStorage.setItem(
48
- 'qpp_footer_listServ',
49
- JSON.stringify({
50
- listServ: data.listServ,
51
- })
52
- );
53
- setListServ(data.listServ);
54
- })
55
- .catch((e) => {
56
- setListServ(false);
57
- });
58
- }
59
- }, []);
60
- if (isNewFooter) {
61
- return (
62
- <>
63
- {!isIESupportPage && (
64
- <div className="feedback-session-sign-up">
65
- <div className="responsive-container">
66
- <hr />
67
- <p>
68
- <strong>Help shape the future of QPP.</strong> Participate in a
69
- user feedback session.{' '}
70
- <a className="email-note-link" href={signUpNowLink}>
71
- Sign up now
72
- </a>
73
- </p>
74
- </div>
75
- </div>
76
- )}
77
- <footer className="global-footer">
78
- <div className="build-version" id="build-version">
79
- {props.buildVersion}
80
- </div>
81
-
82
- <div className="responsive-container">
25
+ // The footer content is populated with the following priority order:
26
+ // 1. Use the footer content in localStorage if it's there
27
+ // 2. If not, make a call to get it from the QPPFE endpoint. Hydrate the localStorage item with the response.
28
+ // 3. If the call fails, use the default value
29
+ useEffect(() => {
30
+ const storageContent = JSON.parse(
31
+ localStorage.getItem("qpp_footer_listServ")
32
+ );
33
+ if (
34
+ storageContent?.content &&
35
+ new Date().valueOf() < storageContent.expiration
36
+ ) {
37
+ setListServ(storageContent.listServ);
38
+ } else {
39
+ const origin = window.location.origin;
40
+ axios
41
+ .get(
42
+ !origin.includes("localhost")
43
+ ? `${origin}/config/footer`
44
+ : "https://qpp.cms.gov/config/footer"
45
+ )
46
+ .then(({ data: { data = {} } }) => {
47
+ localStorage.setItem(
48
+ "qpp_footer_listServ",
49
+ JSON.stringify({
50
+ listServ: data.listServ,
51
+ })
52
+ );
53
+ setListServ(data.listServ);
54
+ })
55
+ .catch((e) => {
56
+ setListServ(false);
57
+ });
58
+ }
59
+ }, []);
60
+ if (isNewFooter) {
61
+ return (
83
62
  <>
84
- {!isIESupportPage && (
85
- <div className="global-footer-container">
86
- <div className="footer-resources">
87
- <p className="sub-title">Resources</p>
88
- <ul>
89
- <li>
90
- <a
91
- href="/about/resource-library"
92
- aria-label="Resource Library"
93
- data-track-category="FooterNav"
94
- data-track-action="OpenEducationAndTools"
95
- data-track-label="Education and Tools"
96
- >
97
- Resource Library
98
- </a>
99
- </li>
100
- <li>
101
- <a
102
- href="/resources/help-and-support"
103
- aria-label="Help and Support"
104
- data-track-category="FooterNav"
105
- data-track-action="OpenHelpAndSupport"
106
- data-track-label="Help and Support"
107
- >
108
- Help and Support
109
- </a>
110
- </li>
111
- <li>
112
- <a
113
- href="/about/small-underserved-rural-practices"
114
- aria-label="Support for Small Practices"
115
- data-track-category="FooterNav"
116
- data-track-action="OpenSupportSmallPractices"
117
- data-track-label="Support for Small Practices"
118
- >
119
- Support for Small Practices
120
- </a>
121
- </li>
122
- <li>
123
- <a
124
- href="/developers"
125
- aria-label="Developer Tools"
126
- data-track-category="FooterNav"
127
- data-track-action="OpenDeveloperTools"
128
- data-track-label="Quality Payment Program"
129
- >
130
- Developer Tools
131
- </a>
132
- </li>
133
- <li>
134
- <a
135
- href="/glossary"
136
- aria-label="Glossary"
137
- data-track-category="FooterNav"
138
- data-track-action="OpenGlossary"
139
- data-track-label="Glossary"
140
- >
141
- Glossary
142
- </a>
143
- </li>
144
- </ul>
145
- </div>
146
- <div className="footer-contact-cms">
147
- <p className="sub-title">Contact CMS</p>
148
- <p className="contact-title">By Phone:</p>
149
- <p>Monday - Friday 8 a.m - 8 p.m ET</p>
150
- <p>
151
- 1-866-288-8292 (TRS: 711)
152
- <span className="footer-trs-infotip">
153
- <InfoTip label={infoTipLabel} />
154
- </span>
155
- </p>
63
+ {!isIESupportPage && (
64
+ <div className="feedback-session-sign-up">
65
+ <div className="responsive-container">
66
+ <hr />
67
+ <p>
68
+ <strong>Help shape the future of QPP.</strong>{" "}
69
+ Participate in a user feedback session.{" "}
70
+ <a
71
+ className="email-note-link"
72
+ href={signUpNowLink}
73
+ >
74
+ Sign up now
75
+ </a>
76
+ </p>
77
+ </div>
78
+ </div>
79
+ )}
80
+ <footer className="global-footer">
81
+ <div className="build-version" id="build-version">
82
+ {props.buildVersion}
83
+ </div>
156
84
 
157
- <p className="contact-title">By Email:</p>
158
- <p>
159
- <a
160
- aria-label="QPP@cms.hhs.gov"
161
- href="mailto:QPP@cms.hhs.gov"
162
- className="email-link"
163
- >
164
- QPP@cms.hhs.gov
165
- </a>
166
- </p>
167
- </div>
168
- <div className="footer-social-newsletter">
169
- <p className="sub-title">Stay Connected</p>
170
- <SocialLinks />
171
- <p className="sub-title">
172
- {listServ
173
- ? 'Sign Up for the QPP Listserv'
174
- : 'Sign Up for the QPP Newsletter'}
175
- </p>
176
- <Subscribe />
177
- </div>
178
- </div>
179
- )}
180
- <hr />
181
- </>
85
+ <div className="responsive-container">
86
+ <>
87
+ {!isIESupportPage && (
88
+ <div className="global-footer-container">
89
+ <div className="footer-resources">
90
+ <p className="sub-title">Resources</p>
91
+ <ul>
92
+ <li>
93
+ <a
94
+ href="/about/resource-library"
95
+ aria-label="Resource Library"
96
+ data-track-category="FooterNav"
97
+ data-track-action="OpenEducationAndTools"
98
+ data-track-label="Education and Tools"
99
+ >
100
+ Resource Library
101
+ </a>
102
+ </li>
103
+ <li>
104
+ <a
105
+ href="/resources/help-and-support"
106
+ aria-label="Help and Support"
107
+ data-track-category="FooterNav"
108
+ data-track-action="OpenHelpAndSupport"
109
+ data-track-label="Help and Support"
110
+ >
111
+ Help and Support
112
+ </a>
113
+ </li>
114
+ <li>
115
+ <a
116
+ href="/about/small-underserved-rural-practices"
117
+ aria-label="Support for Small Practices"
118
+ data-track-category="FooterNav"
119
+ data-track-action="OpenSupportSmallPractices"
120
+ data-track-label="Support for Small Practices"
121
+ >
122
+ Support for Small Practices
123
+ </a>
124
+ </li>
125
+ <li>
126
+ <a
127
+ href="/developers"
128
+ aria-label="Developer Tools"
129
+ data-track-category="FooterNav"
130
+ data-track-action="OpenDeveloperTools"
131
+ data-track-label="Quality Payment Program"
132
+ >
133
+ Developer Tools
134
+ </a>
135
+ </li>
136
+ <li>
137
+ <a
138
+ href="/glossary"
139
+ aria-label="Glossary"
140
+ data-track-category="FooterNav"
141
+ data-track-action="OpenGlossary"
142
+ data-track-label="Glossary"
143
+ >
144
+ Glossary
145
+ </a>
146
+ </li>
147
+ </ul>
148
+ </div>
149
+ <div className="footer-contact-cms">
150
+ <p className="sub-title">Contact CMS</p>
151
+ <p className="contact-title">
152
+ By Phone:
153
+ </p>
154
+ <p>Monday - Friday 8 a.m - 8 p.m ET</p>
155
+ <p>
156
+ 1-866-288-8292 (TRS: 711)
157
+ <span className="footer-trs-infotip">
158
+ <InfoTip label={infoTipLabel} />
159
+ </span>
160
+ </p>
182
161
 
183
- <div className="other-links">
184
- <ul className="small">
185
- <li>
186
- <a
187
- href={setLink('/privacy')}
188
- aria-label="Notice of Privacy and Disclaimer"
189
- data-track-category="FooterNav"
190
- data-track-action="OpenPrivacyDisclaimer"
191
- data-track-label="Notice of Privacy and Disclaimer"
192
- >
193
- CMS Privacy Notice
194
- </a>
195
- </li>
196
- <li className="divider"></li>{' '}
197
- <li>
198
- <a
199
- href={setLink('/accessibility')}
200
- aria-label="Accessibility"
201
- data-track-category="FooterNav"
202
- data-track-action="OpenAccessibility"
203
- data-track-label="Accessibility"
204
- >
205
- Accessibility
206
- </a>
207
- </li>
208
- <li className="divider"></li>{' '}
209
- <li>
210
- <a
211
- aria-label="Download Adobe Reader"
212
- className="adobe-link"
213
- rel="noopener noreferrer"
214
- target="_blank"
215
- href={setLink('https://get.adobe.com/reader')}
216
- data-track-category="FooterNav"
217
- data-track-action="DownloadAdobeReader"
218
- data-track-label="AdobeReader"
219
- >
220
- Download Adobe Reader
221
- </a>
222
- </li>
223
- </ul>
224
- <hr />
225
- </div>
226
- <div className="qpp-hhs-logo-container">
227
- <div className="qpp-logo-container">
228
- <img
229
- className="qpp-logo"
230
- src="/images/qpp_logo_rgb_color.png"
231
- alt="qpp logo"
232
- />
233
- </div>
234
- <div className="hhs-logo-container">
235
- <img
236
- className="hhs-logo"
237
- alt="Department of Health &amp; Human Services USA"
238
- src="/images/hhs-logo-black.svg"
239
- />
240
- <p>
241
- A federal government website managed and paid for by the U.S
242
- Centers for Medicare &amp; Medicaid Services. 7500 Security
243
- Boulevard, Baltimore MD 21244
244
- </p>
245
- </div>
246
- </div>
247
- </div>
248
- </footer>
249
- </>
162
+ <p className="contact-title">
163
+ By Email:
164
+ </p>
165
+ <p>
166
+ <a
167
+ aria-label="QPP@cms.hhs.gov"
168
+ href="mailto:QPP@cms.hhs.gov"
169
+ className="email-link"
170
+ >
171
+ QPP@cms.hhs.gov
172
+ </a>
173
+ </p>
174
+ </div>
175
+ <div className="footer-social-newsletter">
176
+ <p className="sub-title">
177
+ Stay Connected
178
+ </p>
179
+ <SocialLinks />
180
+ <p className="sub-title">
181
+ {listServ
182
+ ? "Sign Up for the QPP Listserv"
183
+ : "Sign Up for the QPP Newsletter"}
184
+ </p>
185
+ <Subscribe />
186
+ </div>
187
+ </div>
188
+ )}
189
+ <hr />
190
+ </>
191
+
192
+ <div className="other-links">
193
+ <ul className="small">
194
+ <li>
195
+ <a
196
+ href={setLink("/privacy")}
197
+ aria-label="Notice of Privacy and Disclaimer"
198
+ data-track-category="FooterNav"
199
+ data-track-action="OpenPrivacyDisclaimer"
200
+ data-track-label="Notice of Privacy and Disclaimer"
201
+ >
202
+ CMS Privacy Notice
203
+ </a>
204
+ </li>
205
+ <li className="divider"></li>{" "}
206
+ <li>
207
+ <a
208
+ href={setLink("/accessibility")}
209
+ aria-label="Accessibility"
210
+ data-track-category="FooterNav"
211
+ data-track-action="OpenAccessibility"
212
+ data-track-label="Accessibility"
213
+ >
214
+ Accessibility
215
+ </a>
216
+ </li>
217
+ <li className="divider"></li>{" "}
218
+ <li>
219
+ <a
220
+ aria-label="Download Adobe Reader"
221
+ className="adobe-link"
222
+ rel="noopener noreferrer"
223
+ target="_blank"
224
+ href={setLink(
225
+ "https://get.adobe.com/reader"
226
+ )}
227
+ data-track-category="FooterNav"
228
+ data-track-action="DownloadAdobeReader"
229
+ data-track-label="AdobeReader"
230
+ >
231
+ Download Adobe Reader
232
+ </a>
233
+ </li>
234
+ </ul>
235
+ <hr />
236
+ </div>
237
+ <div className="qpp-hhs-logo-container">
238
+ <div className="qpp-logo-container">
239
+ <img
240
+ className="qpp-logo"
241
+ src="/images/qpp_logo_rgb_color.png"
242
+ alt="qpp logo"
243
+ />
244
+ </div>
245
+ <div className="hhs-logo-container">
246
+ <img
247
+ className="hhs-logo"
248
+ alt="Department of Health &amp; Human Services USA"
249
+ src="/images/hhs-logo-black.svg"
250
+ />
251
+ <p>
252
+ A federal government website managed and
253
+ paid for by the U.S Centers for Medicare
254
+ &amp; Medicaid Services. 7500 Security
255
+ Boulevard, Baltimore MD 21244
256
+ </p>
257
+ </div>
258
+ </div>
259
+ </div>
260
+ </footer>
261
+ </>
262
+ );
263
+ }
264
+ return (
265
+ <LegacyFooterUI
266
+ buildVersion={props.buildVersion}
267
+ isFullWidth={props.isFullWidth}
268
+ signUpNowLink={signUpNowLink}
269
+ />
250
270
  );
251
- }
252
- return (
253
- <LegacyFooterUI
254
- buildVersion={props.buildVersion}
255
- isFullWidth={props.isFullWidth}
256
- signUpNowLink={signUpNowLink}
257
- />
258
- );
259
271
  };
260
272
 
261
273
  FooterUI.propTypes = {
262
- buildVersion: PropTypes.string,
263
- isFullWidth: PropTypes.bool,
264
- isNewFooter: PropTypes.bool,
265
- isIESupportPage: PropTypes.bool,
266
- showHcdResearch: PropTypes.bool,
274
+ buildVersion: PropTypes.string,
275
+ isFullWidth: PropTypes.bool,
276
+ isNewFooter: PropTypes.bool,
277
+ isIESupportPage: PropTypes.bool,
278
+ showHcdResearch: PropTypes.bool,
267
279
  };
268
280
 
269
281
  export default FooterUI;