qpp-style 9.13.3 → 9.14.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.
Files changed (311) hide show
  1. package/README.md +37 -0
  2. package/components/DropdownButton/DropdownButton.stories.js +137 -0
  3. package/components/DropdownButton/index.js +148 -0
  4. package/components/Footer/Footer.stories.js +2 -2
  5. package/components/Footer/FooterUI.jsx +44 -48
  6. package/components/SideNav/Content/LevelOneContent.jsx +1 -1
  7. package/coverage/clover.xml +1283 -0
  8. package/coverage/coverage-final.json +69 -0
  9. package/coverage/lcov-report/Header/HeaderUI.jsx.html +1418 -0
  10. package/coverage/lcov-report/Header/index.html +111 -0
  11. package/coverage/lcov-report/HeaderUI.jsx.html +578 -0
  12. package/coverage/lcov-report/SideNav/UI/index.html +111 -0
  13. package/coverage/lcov-report/SideNav/UI/index.js.html +89 -0
  14. package/coverage/lcov-report/base.css +224 -0
  15. package/coverage/lcov-report/block-navigation.js +87 -0
  16. package/coverage/lcov-report/components/Accordion/index.html +111 -0
  17. package/coverage/lcov-report/components/Accordion/index.jsx.html +359 -0
  18. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +344 -0
  19. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +173 -0
  20. package/coverage/lcov-report/components/Error/index.html +126 -0
  21. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +845 -0
  22. package/coverage/lcov-report/components/Footer/LegacyFooterUI.jsx.html +662 -0
  23. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +260 -0
  24. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +182 -0
  25. package/coverage/lcov-report/components/Footer/index.html +156 -0
  26. package/coverage/lcov-report/components/InfoModal/index.html +111 -0
  27. package/coverage/lcov-report/components/InfoModal/index.jsx.html +392 -0
  28. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +305 -0
  29. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +203 -0
  30. package/coverage/lcov-report/components/Infotip/index.html +141 -0
  31. package/coverage/lcov-report/components/Infotip/index.js.html +89 -0
  32. package/coverage/lcov-report/components/SanitizedContent/index.html +111 -0
  33. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +680 -0
  34. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +863 -0
  35. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +161 -0
  36. package/coverage/lcov-report/components/SideNav/AnimationGroup/index.html +111 -0
  37. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +884 -0
  38. package/coverage/lcov-report/components/SideNav/Chart/index.html +126 -0
  39. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +89 -0
  40. package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +677 -0
  41. package/coverage/lcov-report/components/SideNav/Content/LevelTwoContent.jsx.html +728 -0
  42. package/coverage/lcov-report/components/SideNav/Content/index.html +141 -0
  43. package/coverage/lcov-report/components/SideNav/Content/index.js.html +92 -0
  44. package/coverage/lcov-report/components/SideNav/Details/IndividualDetails.jsx.html +134 -0
  45. package/coverage/lcov-report/components/SideNav/Details/PracticeDetails.jsx.html +215 -0
  46. package/coverage/lcov-report/components/SideNav/Details/index.html +141 -0
  47. package/coverage/lcov-report/components/SideNav/Details/index.js.html +92 -0
  48. package/coverage/lcov-report/components/SideNav/Links/CmsSwitchLink.jsx.html +203 -0
  49. package/coverage/lcov-report/components/SideNav/Links/NavItemInline.jsx.html +242 -0
  50. package/coverage/lcov-report/components/SideNav/Links/NavLinkContainer.jsx.html +194 -0
  51. package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +827 -0
  52. package/coverage/lcov-report/components/SideNav/Links/NavLinkInline.jsx.html +401 -0
  53. package/coverage/lcov-report/components/SideNav/Links/NavLinkToggle.jsx.html +182 -0
  54. package/coverage/lcov-report/components/SideNav/Links/index.html +201 -0
  55. package/coverage/lcov-report/components/SideNav/Links/index.js.html +119 -0
  56. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +1079 -0
  57. package/coverage/lcov-report/components/SideNav/UI/index.html +126 -0
  58. package/coverage/lcov-report/components/SideNav/UI/index.js.html +89 -0
  59. package/coverage/lcov-report/components/SideNav/helpers.js.html +227 -0
  60. package/coverage/lcov-report/components/SideNav/index.html +111 -0
  61. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +344 -0
  62. package/coverage/lcov-report/components/Tooltip/index.html +141 -0
  63. package/coverage/lcov-report/components/Tooltip/index.js.html +89 -0
  64. package/coverage/lcov-report/components/Tooltip/position.js.html +284 -0
  65. package/coverage/lcov-report/components/hooks/index.html +111 -0
  66. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +302 -0
  67. package/coverage/lcov-report/components/index.html +111 -0
  68. package/coverage/lcov-report/favicon.png +0 -0
  69. package/coverage/lcov-report/index.html +446 -0
  70. package/coverage/lcov-report/lib/Chevron.jsx.html +161 -0
  71. package/coverage/lcov-report/lib/SvgComponents.jsx.html +1697 -0
  72. package/coverage/lcov-report/lib/index.html +126 -0
  73. package/coverage/lcov-report/lib/svg-definitions.svg.html +455 -0
  74. package/coverage/lcov-report/prettify.css +1 -0
  75. package/coverage/lcov-report/prettify.js +2 -0
  76. package/coverage/lcov-report/react/components/Accordion/index.html +116 -0
  77. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +364 -0
  78. package/coverage/lcov-report/react/components/Button/index.html +116 -0
  79. package/coverage/lcov-report/react/components/Button/index.js.html +355 -0
  80. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +349 -0
  81. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +178 -0
  82. package/coverage/lcov-report/react/components/Error/error.js.html +163 -0
  83. package/coverage/lcov-report/react/components/Error/index.html +146 -0
  84. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +937 -0
  85. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +667 -0
  86. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +265 -0
  87. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +187 -0
  88. package/coverage/lcov-report/react/components/Footer/footer.js.html +175 -0
  89. package/coverage/lcov-report/react/components/Footer/index.html +176 -0
  90. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +592 -0
  91. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +133 -0
  92. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +274 -0
  93. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +211 -0
  94. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +235 -0
  95. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +781 -0
  96. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +235 -0
  97. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  98. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +196 -0
  99. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +586 -0
  100. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +181 -0
  101. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +307 -0
  102. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +166 -0
  103. package/coverage/lcov-report/react/components/Header/header.js.html +205 -0
  104. package/coverage/lcov-report/react/components/Header/hooks.js.html +241 -0
  105. package/coverage/lcov-report/react/components/Header/index.html +341 -0
  106. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +112 -0
  107. package/coverage/lcov-report/react/components/InfoModal/index.html +111 -0
  108. package/coverage/lcov-report/react/components/InfoModal/index.jsx.html +392 -0
  109. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +310 -0
  110. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +208 -0
  111. package/coverage/lcov-report/react/components/Infotip/index.html +146 -0
  112. package/coverage/lcov-report/react/components/Infotip/index.js.html +94 -0
  113. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +301 -0
  114. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +505 -0
  115. package/coverage/lcov-report/react/components/Modal/index.html +146 -0
  116. package/coverage/lcov-report/react/components/Modal/index.jsx.html +151 -0
  117. package/coverage/lcov-report/react/components/NotificationBanner/NotificationBannerUI.jsx.html +950 -0
  118. package/coverage/lcov-report/react/components/NotificationBanner/index.html +116 -0
  119. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +880 -0
  120. package/coverage/lcov-report/react/components/SanitizedContent/index.html +116 -0
  121. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +685 -0
  122. package/coverage/lcov-report/react/components/SessionDialog/index.html +116 -0
  123. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +163 -0
  124. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +868 -0
  125. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +166 -0
  126. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +116 -0
  127. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +889 -0
  128. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +131 -0
  129. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +94 -0
  130. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +709 -0
  131. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +733 -0
  132. package/coverage/lcov-report/react/components/SideNav/Content/index.html +146 -0
  133. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +97 -0
  134. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +139 -0
  135. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +220 -0
  136. package/coverage/lcov-report/react/components/SideNav/Details/index.html +146 -0
  137. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +97 -0
  138. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +208 -0
  139. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +247 -0
  140. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +199 -0
  141. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +832 -0
  142. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +406 -0
  143. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +187 -0
  144. package/coverage/lcov-report/react/components/SideNav/Links/index.html +206 -0
  145. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +124 -0
  146. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +1084 -0
  147. package/coverage/lcov-report/react/components/SideNav/UI/index.html +131 -0
  148. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +94 -0
  149. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +232 -0
  150. package/coverage/lcov-report/react/components/SideNav/index.html +131 -0
  151. package/coverage/lcov-report/react/components/SideNav/index.js.html +244 -0
  152. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +349 -0
  153. package/coverage/lcov-report/react/components/Tooltip/index.html +146 -0
  154. package/coverage/lcov-report/react/components/Tooltip/index.js.html +94 -0
  155. package/coverage/lcov-report/react/components/Tooltip/position.js.html +289 -0
  156. package/coverage/lcov-report/react/components/hooks/index.html +116 -0
  157. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +307 -0
  158. package/coverage/lcov-report/react/components/index.html +116 -0
  159. package/coverage/lcov-report/react/index.html +116 -0
  160. package/coverage/lcov-report/react/index.js.html +178 -0
  161. package/coverage/lcov-report/react/lib/Chevron.jsx.html +181 -0
  162. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1702 -0
  163. package/coverage/lcov-report/react/lib/index.html +146 -0
  164. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +460 -0
  165. package/coverage/lcov-report/react/session/index.html +161 -0
  166. package/coverage/lcov-report/react/session/index.js.html +100 -0
  167. package/coverage/lcov-report/react/session/logout.js.html +298 -0
  168. package/coverage/lcov-report/react/session/refresh.js.html +232 -0
  169. package/coverage/lcov-report/react/session/ttl.js.html +196 -0
  170. package/coverage/lcov-report/session/index.html +126 -0
  171. package/coverage/lcov-report/session/index.js.html +95 -0
  172. package/coverage/lcov-report/session/logout.js.html +203 -0
  173. package/coverage/lcov-report/session/refresh.js.html +227 -0
  174. package/coverage/lcov-report/session/ttl.js.html +191 -0
  175. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  176. package/coverage/lcov-report/sorter.js +196 -0
  177. package/coverage/lcov.info +2902 -0
  178. package/dist/browser.js +1 -1
  179. package/dist/browser.js.map +1 -1
  180. package/dist/index.js +1 -1
  181. package/dist/index.js.map +1 -1
  182. package/dist/react/index.js +1 -1
  183. package/dist/react/index.js.map +1 -1
  184. package/images/icons/svg/file-download.svg +1 -0
  185. package/package.json +1 -1
  186. package/storybook-static/0.284246fa7dd756530022.manager.bundle.js +1 -0
  187. package/storybook-static/0.e444ffe0.iframe.bundle.js +1 -0
  188. package/storybook-static/4.38e07a72.iframe.bundle.js +3 -0
  189. package/storybook-static/4.38e07a72.iframe.bundle.js.LICENSE.txt +8 -0
  190. package/storybook-static/4.38e07a72.iframe.bundle.js.map +1 -0
  191. package/storybook-static/4.5a2288a7314de45771fd.manager.bundle.js +2 -0
  192. package/storybook-static/4.5a2288a7314de45771fd.manager.bundle.js.LICENSE.txt +8 -0
  193. package/storybook-static/5.96d29e90.iframe.bundle.js +1 -0
  194. package/storybook-static/5.f669e5db79f970f4eeda.manager.bundle.js +2 -0
  195. package/storybook-static/5.f669e5db79f970f4eeda.manager.bundle.js.LICENSE.txt +12 -0
  196. package/storybook-static/6.fbe12c4b.iframe.bundle.js +3 -0
  197. package/storybook-static/6.fbe12c4b.iframe.bundle.js.LICENSE.txt +12 -0
  198. package/storybook-static/6.fbe12c4b.iframe.bundle.js.map +1 -0
  199. package/storybook-static/6.fc183cb0948fa18c4851.manager.bundle.js +1 -0
  200. package/storybook-static/7.6262147d7bfe4804e70d.manager.bundle.js +1 -0
  201. package/storybook-static/7.9e6103c8.iframe.bundle.js +1 -0
  202. package/storybook-static/8.88a822e73e773dbd9da6.manager.bundle.js +1 -0
  203. package/storybook-static/favicon.ico +0 -0
  204. package/storybook-static/fonts/FontAwesome.otf +0 -0
  205. package/storybook-static/fonts/OFL.txt +92 -0
  206. package/storybook-static/fonts/Rubik-Black.ttf +0 -0
  207. package/storybook-static/fonts/Rubik-BlackItalic.ttf +0 -0
  208. package/storybook-static/fonts/Rubik-Bold.ttf +0 -0
  209. package/storybook-static/fonts/Rubik-BoldItalic.ttf +0 -0
  210. package/storybook-static/fonts/Rubik-Italic.ttf +0 -0
  211. package/storybook-static/fonts/Rubik-Light.ttf +0 -0
  212. package/storybook-static/fonts/Rubik-LightItalic.ttf +0 -0
  213. package/storybook-static/fonts/Rubik-Medium.ttf +0 -0
  214. package/storybook-static/fonts/Rubik-MediumItalic.ttf +0 -0
  215. package/storybook-static/fonts/Rubik-Regular.ttf +0 -0
  216. package/storybook-static/fonts/fontawesome-webfont.eot +0 -0
  217. package/storybook-static/fonts/fontawesome-webfont.svg +2671 -0
  218. package/storybook-static/fonts/fontawesome-webfont.ttf +0 -0
  219. package/storybook-static/fonts/fontawesome-webfont.woff +0 -0
  220. package/storybook-static/fonts/fontawesome-webfont.woff2 +0 -0
  221. package/storybook-static/iframe.html +138 -0
  222. package/storybook-static/images/favicon/android-chrome-192x192.png +0 -0
  223. package/storybook-static/images/favicon/android-chrome-256x256.png +0 -0
  224. package/storybook-static/images/favicon/apple-touch-icon.png +0 -0
  225. package/storybook-static/images/favicon/browserconfig.xml +9 -0
  226. package/storybook-static/images/favicon/favicon-16x16.png +0 -0
  227. package/storybook-static/images/favicon/favicon-32x32.png +0 -0
  228. package/storybook-static/images/favicon/favicon.ico +0 -0
  229. package/storybook-static/images/favicon/manifest.json +18 -0
  230. package/storybook-static/images/favicon/mstile-150x150.png +0 -0
  231. package/storybook-static/images/favicon/safari-pinned-tab.svg +32 -0
  232. package/storybook-static/images/hhs-logo-black.svg +10 -0
  233. package/storybook-static/images/hhs-logo-white.svg +10 -0
  234. package/storybook-static/images/icons/close-x.svg +6 -0
  235. package/storybook-static/images/icons/help-headset.svg +21 -0
  236. package/storybook-static/images/icons/svg/arrow-down.svg +3 -0
  237. package/storybook-static/images/icons/svg/arrow-download.svg +5 -0
  238. package/storybook-static/images/icons/svg/arrow-right.svg +5 -0
  239. package/storybook-static/images/icons/svg/close.svg +3 -0
  240. package/storybook-static/images/icons/svg/download.svg +1 -0
  241. package/storybook-static/images/icons/svg/external.svg +4 -0
  242. package/storybook-static/images/icons/svg/file-upload.svg +1 -0
  243. package/storybook-static/images/icons/svg/print.svg +4 -0
  244. package/storybook-static/images/icons/svg/trash.svg +5 -0
  245. package/storybook-static/images/icons/svg/upload.svg +3 -0
  246. package/storybook-static/images/qpp_logo_reversed.png +0 -0
  247. package/storybook-static/images/qpp_logo_rgb_color.png +0 -0
  248. package/storybook-static/index.html +55 -0
  249. package/storybook-static/main.18ac9bfd601c66f4bee6.manager.bundle.js +1 -0
  250. package/storybook-static/main.9d42b744.iframe.bundle.js +1 -0
  251. package/storybook-static/runtime~main.d17fbed7a9ad1d2c431e.manager.bundle.js +1 -0
  252. package/storybook-static/runtime~main.ed6e2009.iframe.bundle.js +1 -0
  253. package/storybook-static/static/media/Bitter-Bold.091bd4b7.woff +0 -0
  254. package/storybook-static/static/media/Bitter-Bold.24bf01e4.woff2 +0 -0
  255. package/storybook-static/static/media/Bitter-Bold.46bc29e4.ttf +0 -0
  256. package/storybook-static/static/media/Bitter-Bold.790f4f2f.eot +0 -0
  257. package/storybook-static/static/media/Bitter-Italic.1fa5390c.eot +0 -0
  258. package/storybook-static/static/media/Bitter-Italic.25e5675f.woff +0 -0
  259. package/storybook-static/static/media/Bitter-Italic.2eb18f5a.ttf +0 -0
  260. package/storybook-static/static/media/Bitter-Italic.34644574.woff2 +0 -0
  261. package/storybook-static/static/media/Bitter-Regular.4b22b6e8.woff +0 -0
  262. package/storybook-static/static/media/Bitter-Regular.559e7075.eot +0 -0
  263. package/storybook-static/static/media/Bitter-Regular.8db0301b.ttf +0 -0
  264. package/storybook-static/static/media/Bitter-Regular.f4e2f1f1.woff2 +0 -0
  265. package/storybook-static/static/media/FontAwesome.91f80bba.otf +0 -0
  266. package/storybook-static/static/media/OpenSans-Bold-webfont.202d819d.eot +0 -0
  267. package/storybook-static/static/media/OpenSans-Bold-webfont.92e570c6.woff2 +0 -0
  268. package/storybook-static/static/media/OpenSans-Bold-webfont.da71e99a.ttf +0 -0
  269. package/storybook-static/static/media/OpenSans-Bold-webfont.e75949bb.woff +0 -0
  270. package/storybook-static/static/media/OpenSans-Italic-webfont.72daa33a.woff2 +0 -0
  271. package/storybook-static/static/media/OpenSans-Italic-webfont.74ead3a8.woff +0 -0
  272. package/storybook-static/static/media/OpenSans-Italic-webfont.ae19388f.eot +0 -0
  273. package/storybook-static/static/media/OpenSans-Italic-webfont.ec7a2746.ttf +0 -0
  274. package/storybook-static/static/media/OpenSans-Regular-webfont.63a5fa7d.woff +0 -0
  275. package/storybook-static/static/media/OpenSans-Regular-webfont.66451be4.ttf +0 -0
  276. package/storybook-static/static/media/OpenSans-Regular-webfont.7882d20f.eot +0 -0
  277. package/storybook-static/static/media/OpenSans-Regular-webfont.ca4dd835.woff2 +0 -0
  278. package/storybook-static/static/media/OpenSans-Semibold-webfont.17ded75f.woff2 +0 -0
  279. package/storybook-static/static/media/OpenSans-Semibold-webfont.2a5adf6c.woff +0 -0
  280. package/storybook-static/static/media/OpenSans-Semibold-webfont.6059fecb.ttf +0 -0
  281. package/storybook-static/static/media/OpenSans-Semibold-webfont.c9808185.eot +0 -0
  282. package/storybook-static/static/media/Rubik-Bold.31bbd4d2.ttf +0 -0
  283. package/storybook-static/static/media/Rubik-Light.c90e2014.ttf +0 -0
  284. package/storybook-static/static/media/Rubik-Medium.5daa89aa.ttf +0 -0
  285. package/storybook-static/static/media/Rubik-Regular.cdf97d58.ttf +0 -0
  286. package/storybook-static/static/media/fontawesome-webfont.1e59d233.ttf +0 -0
  287. package/storybook-static/static/media/fontawesome-webfont.20fd1704.woff2 +0 -0
  288. package/storybook-static/static/media/fontawesome-webfont.8b43027f.eot +0 -0
  289. package/storybook-static/static/media/fontawesome-webfont.f691f37e.woff +0 -0
  290. package/storybook-static/vendors~main.3604044d8484c1c4d1f7.manager.bundle.js +2 -0
  291. package/storybook-static/vendors~main.3604044d8484c1c4d1f7.manager.bundle.js.LICENSE.txt +88 -0
  292. package/storybook-static/vendors~main.7f923d15.iframe.bundle.js +3 -0
  293. package/storybook-static/vendors~main.7f923d15.iframe.bundle.js.LICENSE.txt +152 -0
  294. package/storybook-static/vendors~main.7f923d15.iframe.bundle.js.map +1 -0
  295. package/styles/components/_footer.scss +593 -0
  296. package/styles/components/_header.scss +887 -0
  297. package/styles/components/_sidebar.scss +8 -0
  298. package/styles/components/sidebar/_animations.scss +38 -0
  299. package/styles/components/sidebar/_cms.scss +61 -0
  300. package/styles/components/sidebar/_details.scss +58 -0
  301. package/styles/components/sidebar/_links.scss +415 -0
  302. package/styles/components/sidebar/_sidebar-animation.scss +121 -0
  303. package/styles/components/sidebar/_sidebar-tooltip.scss +33 -0
  304. package/styles/components/sidebar/_sidebar.scss +141 -0
  305. package/styles/components/sidebar/project-specific/_wi.scss +42 -0
  306. package/styles/qppds/components/_button.scss +11 -2
  307. package/styles/qppds/components/_circular-loader.scss +47 -0
  308. package/styles/qppds/components/_dropdown-menu.scss +119 -0
  309. package/styles/qppds/components/_footer.scss +7 -0
  310. package/styles/qppds/components/index.scss +2 -0
  311. package/styles/qppds/utilities/_display-visability.scss +83 -0
package/README.md CHANGED
@@ -3,3 +3,40 @@
3
3
  This directory contains react implementations of the components for QPP.
4
4
 
5
5
  A storybook with examples is published at [https://cmsgov.github.io/qpp-style](https://cmsgov.github.io/qpp-style)
6
+
7
+ ## Github Branch and Pull Request process
8
+ 1. Create branch off main and create a Pull Request into main for the feature.
9
+ >Example Branch Name: feature/QPPXX-XXXX_make_icon_better
10
+ 2. Once merged into main, create release branch from main.
11
+ 3. Name the new branch release/x.xx.x
12
+ 4. Run the version bump:
13
+
14
+ ```bash
15
+ cd qpp-style/react
16
+ npm version --no-git-tag-version patch
17
+ ```
18
+
19
+ Example Commit Message:
20
+ > x.xx.x release
21
+
22
+ 5. Create a pull request against main with the PR Title: x.xx.x release [Example PR](https://github.com/CMSgov/qpp-style/pull/1065)
23
+ 6. Enter the change in the description of the pull request i.e.:
24
+ > Added new svg for Icon Name
25
+
26
+ ## Generate an NPM token with Publish permissions
27
+ 1. If you do not already have an access token, sign in to npmjs.com and navigate to access tokens.
28
+ 2. Click generate new token.
29
+ 3. Select publish under type.
30
+ 4. Copy the npm token and set its value as the environment variable: NPM_TOKEN
31
+
32
+ ```bash
33
+ export NPM_TOKEN={npm_token}
34
+ ```
35
+
36
+ ## Publish the react qpp-style npm package (used by both react and angular)
37
+ ```bash
38
+ cd qpp-style/react
39
+ npm i
40
+ npm publish
41
+ ```
42
+ 7. Once published successfully, merge into main.
@@ -0,0 +1,137 @@
1
+ import React from 'react';
2
+ import SvgIcon from '@material-ui/core/SvgIcon';
3
+ import DropdownButton from './index';
4
+ import { withKnobs, boolean } from '@storybook/addon-knobs';
5
+
6
+ export default {
7
+ title: 'DropdownButton',
8
+ component: DropdownButton,
9
+ decorators: [withKnobs],
10
+ };
11
+
12
+ // mat-ui v4 doesn't include this "FileDownload" icon, but mat-ui v5 does
13
+ // whenever we update to v5, we could replace this svg with the one from npm
14
+ const DownloadIcon = (...props) => (
15
+ <SvgIcon {...props}>
16
+ <path d="M18,15v3H6v-3H4v3c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-3H18z M17,11l-1.41-1.41L13,12.17V4h-2v8.17L8.41,9.59L7,11l5,5 L17,11z" />
17
+ </SvgIcon>
18
+ );
19
+
20
+ export const BasicExample = () => (
21
+ <div className="qpp-u-padding--48">
22
+ <DropdownButton
23
+ menuId="example-menu-1"
24
+ ariaLabel="aria label example"
25
+ buttonLabel="Test"
26
+ options={[
27
+ {
28
+ value: 'option 1',
29
+ },
30
+ { value: 'option 2', name: 'Name of Option 2' },
31
+ ]}
32
+ loading={boolean('loading', false)}
33
+ />
34
+ </div>
35
+ );
36
+
37
+ /*
38
+ Dropdown menu headers were removed from designs for now. We may revisit this
39
+ in the future so we're leaving this here until we decide on design.
40
+ */
41
+ // export const WithHeader = () => (
42
+ // <div className="qpp-u-padding--48">
43
+ // <DropdownButton
44
+ // menuId="example-menu-2"
45
+ // ariaLabel="aria label example"
46
+ // buttonLabel="Test"
47
+ // options={[
48
+ // {
49
+ // value: 'option 1',
50
+ // },
51
+ // { value: 'option 2', name: 'Name of Option 2' },
52
+ // ]}
53
+ // header="Header"
54
+ // />
55
+ // </div>
56
+ // );
57
+
58
+ export const Loading = () => (
59
+ <div className="qpp-u-padding--48">
60
+ <DropdownButton
61
+ menuId="example-menu-3"
62
+ ariaLabel="aria label example"
63
+ buttonLabel="Test"
64
+ options={[
65
+ {
66
+ value: 'option 1',
67
+ },
68
+ { value: 'option 2', name: 'Name of Option 2' },
69
+ ]}
70
+ loading
71
+ />
72
+ </div>
73
+ );
74
+
75
+ export const MaxHeight = () => (
76
+ <div className="qpp-u-padding--48">
77
+ <DropdownButton
78
+ menuId="example-menu-3"
79
+ ariaLabel="aria label example"
80
+ buttonLabel="Test"
81
+ options={[
82
+ { value: 'option 1' },
83
+ { value: 'option 2' },
84
+ { value: 'option 3' },
85
+ { value: 'option 4' },
86
+ { value: 'option 5' },
87
+ { value: 'option 6' },
88
+ { value: 'option 7' },
89
+ { value: 'option 8' },
90
+ { value: 'option 9' },
91
+ ]}
92
+ loading={boolean('loading', false)}
93
+ />
94
+ </div>
95
+ );
96
+
97
+ export const MaxWidth = () => (
98
+ <div className="qpp-u-padding--48">
99
+ <DropdownButton
100
+ menuId="example-menu-1"
101
+ ariaLabel="aria label example"
102
+ buttonLabel="Test"
103
+ options={[
104
+ { value: 'option 1' },
105
+ {
106
+ value: 'option 2',
107
+ name: 'very long item text 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24',
108
+ },
109
+ ]}
110
+ loading={boolean('loading', false)}
111
+ />
112
+ </div>
113
+ );
114
+
115
+ export const ItemsWithIcons = () => (
116
+ <div className="qpp-u-padding--48">
117
+ <DropdownButton
118
+ menuId="example-menu-1"
119
+ ariaLabel="aria label example"
120
+ buttonLabel="Test"
121
+ options={[
122
+ {
123
+ value: 'option 1',
124
+ Icon: DownloadIcon,
125
+ 'aria-roledescription': 'Download file',
126
+ },
127
+ {
128
+ value: 'option 2',
129
+ name: 'very long item text 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24',
130
+ Icon: DownloadIcon,
131
+ 'aria-roledescription': 'Download file',
132
+ },
133
+ ]}
134
+ loading={boolean('loading', false)}
135
+ />
136
+ </div>
137
+ );
@@ -0,0 +1,148 @@
1
+ import React, { useState } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import MuiMenu from '@material-ui/core/Menu';
4
+ import MuiMenuItem from '@material-ui/core/MenuItem';
5
+ import MuiProgressCircle from '@material-ui/core/CircularProgress';
6
+ import ExpandMore from '@material-ui/icons/ExpandMore';
7
+ import ExpandLess from '@material-ui/icons/ExpandLess';
8
+ import Button, { TextButton } from '../Button';
9
+
10
+ const ITEM_HEIGHT = 48;
11
+
12
+ const DropdownButton = ({
13
+ text = false,
14
+ loading = false,
15
+ options = [],
16
+ menuId,
17
+ buttonLabel,
18
+ header,
19
+ children,
20
+ ...buttonProps
21
+ }) => {
22
+ const Btn = text ? TextButton : Button;
23
+ const [anchorEl, setAnchorEl] = useState(null);
24
+ const open = Boolean(anchorEl);
25
+ const handleClick = (event) => {
26
+ setAnchorEl(event.currentTarget);
27
+ };
28
+ const handleClose = () => {
29
+ setAnchorEl(null);
30
+ };
31
+
32
+ return (
33
+ <>
34
+ <Btn
35
+ aria-haspopup="true"
36
+ aria-controls={menuId}
37
+ onClick={handleClick}
38
+ {...buttonProps}
39
+ >
40
+ {buttonLabel}{' '}
41
+ {!anchorEl && (
42
+ <ExpandMore classes={{ root: 'qpp-icon-mat qpp-icon-inline--lg' }} />
43
+ )}
44
+ {anchorEl && (
45
+ <ExpandLess classes={{ root: 'qpp-icon-mat qpp-icon-inline--lg' }} />
46
+ )}
47
+ </Btn>
48
+ <MuiMenu
49
+ id={menuId}
50
+ keepMounted
51
+ open={open}
52
+ anchorEl={anchorEl}
53
+ onClose={handleClose}
54
+ getContentAnchorEl={null}
55
+ anchorOrigin={{
56
+ vertical: 'bottom',
57
+ }}
58
+ className="qpp-c-dropdown-menu"
59
+ classes={{
60
+ paper: 'qpp-c-dropdown-menu__box',
61
+ list: 'qpp-c-dropdown-menu__list',
62
+ }}
63
+ MenuListProps={{
64
+ ['aria-labelledby']: header ? `${menuId}-header` : null,
65
+ }}
66
+ PaperProps={{
67
+ style: {
68
+ maxHeight: ITEM_HEIGHT * 5.5,
69
+ maxWidth: '400px',
70
+ },
71
+ }}
72
+ >
73
+ {header && (
74
+ <MuiMenuItem
75
+ id={`${menuId}-header`}
76
+ onClick={(e) => {
77
+ e.preventDefault();
78
+ e.stopPropagation();
79
+ }}
80
+ classes={{
81
+ root: 'qpp-c-dropdown-menu__item qpp-c-dropdown-menu__item--header',
82
+ }}
83
+ disabled
84
+ aria-hidden
85
+ role="presentation"
86
+ disableRipple
87
+ >
88
+ {header}
89
+ </MuiMenuItem>
90
+ )}
91
+ {loading && (
92
+ <MuiMenuItem
93
+ onClick={(e) => {
94
+ e.preventDefault();
95
+ e.stopPropagation();
96
+ }}
97
+ classes={{
98
+ root: 'qpp-c-dropdown-menu__item qpp-c-dropdown-menu__item--loading',
99
+ }}
100
+ disableRipple
101
+ disabled
102
+ >
103
+ <MuiProgressCircle
104
+ size="1em"
105
+ color="inherit"
106
+ classes={{ root: 'qpp-c-dropdown-menu__spinner' }}
107
+ />{' '}
108
+ <span role="status">Loading...</span>
109
+ </MuiMenuItem>
110
+ )}
111
+ {!loading &&
112
+ options.map(({ disabled, name, value, Icon, ...itemProps }) => (
113
+ <MuiMenuItem
114
+ disabled={disabled}
115
+ key={value}
116
+ value={value}
117
+ onClick={handleClose}
118
+ classes={{ root: 'qpp-c-dropdown-menu__item' }}
119
+ disableRipple
120
+ {...itemProps}
121
+ >
122
+ {Icon && (
123
+ <div className="qpp-c-dropdown-menu__icon">
124
+ <Icon classes={{ root: 'qpp-icon-mat' }} />
125
+ </div>
126
+ )}
127
+ <span>{name || value}</span>
128
+ </MuiMenuItem>
129
+ ))}
130
+ </MuiMenu>
131
+ </>
132
+ );
133
+ };
134
+
135
+ DropdownButton.propTypes = {
136
+ menuId: PropTypes.string.isRequired,
137
+ text: PropTypes.bool,
138
+ buttonLabel: PropTypes.string,
139
+ loading: PropTypes.bool,
140
+ options: PropTypes.arrayOf(PropTypes.object),
141
+ header: PropTypes.string,
142
+ children: PropTypes.oneOfType([
143
+ PropTypes.node,
144
+ PropTypes.arrayOf(PropTypes.node),
145
+ ]),
146
+ };
147
+
148
+ export default DropdownButton;
@@ -12,8 +12,8 @@ export const ExampleFooter = () => (
12
12
  <Footer
13
13
  isFullWidth={boolean('isFullWidth', false)}
14
14
  buildVersion={text('buildVersion', 'BUILD VERSION')}
15
- isNewFooter={boolean('isNewFooter', false)}
16
- showHcdResearch={boolean('showHcdResearch', false)}
15
+ isNewFooter={boolean('isNewFooter', true)}
16
+ showHcdResearch={boolean('showHcdResearch', true)}
17
17
  />
18
18
  );
19
19
 
@@ -1,62 +1,40 @@
1
- import React, { useState, useEffect } from 'react';
1
+ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import axios from 'axios';
3
+ import OpenInNewIcon from '@material-ui/icons/OpenInNew';
4
4
 
5
5
  import InfoTip from '../Infotip/Infotip';
6
6
  import LegacyFooterUI from './LegacyFooterUI';
7
7
  import Subscribe from './Subscribe';
8
8
  import SocialLinks from './SocialLinks';
9
+ import useGetConfig from '../hooks/useGetConfig';
9
10
 
10
11
  const infoTipLabel =
11
12
  '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
13
 
13
- const FooterUI = (props) => {
14
- const isNewFooter = props.isNewFooter;
15
- const isIESupportPage = props.isIESupportPage;
16
- const signUpNowLink = props.showHcdResearch
14
+ const FooterUI = ({
15
+ isNewFooter,
16
+ isIESupportPage,
17
+ showHcdResearch,
18
+ buildVersion,
19
+ isFullWidth,
20
+ }) => {
21
+ const signUpNowLink = showHcdResearch
17
22
  ? '/about/hcd-research'
18
23
  : '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);
24
+
25
+ const result = useGetConfig({
26
+ timeout: 5,
27
+ url: '/config/footer',
28
+ localStorageName: 'qpp_footer',
29
+ });
30
+ const content = (result?.content || [
31
+ { listServ: false, showCcsqLink: false },
32
+ ])[0];
20
33
 
21
34
  const setLink = (link) => {
22
35
  return isIESupportPage ? '/' : link;
23
36
  };
24
37
 
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
38
  if (isNewFooter) {
61
39
  return (
62
40
  <>
@@ -76,7 +54,7 @@ const FooterUI = (props) => {
76
54
  )}
77
55
  <footer className="global-footer">
78
56
  <div className="build-version" id="build-version">
79
- {props.buildVersion}
57
+ {buildVersion}
80
58
  </div>
81
59
 
82
60
  <div className="responsive-container">
@@ -145,7 +123,7 @@ const FooterUI = (props) => {
145
123
  </div>
146
124
  <div className="footer-contact-cms">
147
125
  <p className="sub-title">Contact CMS</p>
148
- <p className="contact-title">By Phone:</p>
126
+ <p className="contact-title">Phone:</p>
149
127
  <p>Monday - Friday 8 a.m - 8 p.m ET</p>
150
128
  <p>
151
129
  1-866-288-8292 (TRS: 711)
@@ -154,7 +132,7 @@ const FooterUI = (props) => {
154
132
  </span>
155
133
  </p>
156
134
 
157
- <p className="contact-title">By Email:</p>
135
+ <p className="contact-title">Email:</p>
158
136
  <p>
159
137
  <a
160
138
  aria-label="QPP@cms.hhs.gov"
@@ -164,12 +142,30 @@ const FooterUI = (props) => {
164
142
  QPP@cms.hhs.gov
165
143
  </a>
166
144
  </p>
145
+
146
+ {content?.showCcsqLink && (
147
+ <>
148
+ <p className="contact-title">QPP Service Center:</p>
149
+ <a
150
+ href="https://cmsqualitysupport.servicenowservices.com/ccsq_support_central"
151
+ aria-label="CCSQ Support Central"
152
+ className="email-link"
153
+ target="__blank"
154
+ rel="noopener noreferrer"
155
+ >
156
+ <strong>
157
+ Create or Track a QPP Service Center Ticket
158
+ </strong>
159
+ <OpenInNewIcon classes={{ root: 'ccsq-link-icon' }} />
160
+ </a>
161
+ </>
162
+ )}
167
163
  </div>
168
164
  <div className="footer-social-newsletter">
169
165
  <p className="sub-title">Stay Connected</p>
170
166
  <SocialLinks />
171
167
  <p className="sub-title">
172
- {listServ
168
+ {content?.listServ
173
169
  ? 'Sign Up for the QPP Listserv'
174
170
  : 'Sign Up for the QPP Newsletter'}
175
171
  </p>
@@ -251,8 +247,8 @@ const FooterUI = (props) => {
251
247
  }
252
248
  return (
253
249
  <LegacyFooterUI
254
- buildVersion={props.buildVersion}
255
- isFullWidth={props.isFullWidth}
250
+ buildVersion={buildVersion}
251
+ isFullWidth={isFullWidth}
256
252
  signUpNowLink={signUpNowLink}
257
253
  />
258
254
  );
@@ -108,7 +108,7 @@ const LevelOneContent = ({
108
108
  [physicianCompareUrl]: hasNonRegistryAuthorizations,
109
109
  [reportsPortalUrl]: hasAuthorizations,
110
110
  [facilityBasedPreviewBaseUrl]: hasAuthorizations,
111
- '/user/impersonate': canImpersonate,
111
+ '/user/helpdesk-viewing-tool': canImpersonate,
112
112
 
113
113
  '/reviewer/exception': (internalReviewerNames || []).includes(
114
114
  'QPP Targeted Review & Exceptions'