qpp-style 0.0.9 → 0.0.10

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 (456) hide show
  1. package/.eslintrc.js +28 -28
  2. package/.husky/pre-commit +5 -0
  3. package/README.md +45 -0
  4. package/components/Accordion/index.jsx +35 -43
  5. package/components/Alert/index.js +53 -0
  6. package/components/Breadcrumb/index.js +4 -4
  7. package/components/Button/index.js +17 -6
  8. package/components/CalloutBox/index.js +109 -0
  9. package/components/Card/index.js +137 -0
  10. package/components/Details/DetailsIcons.js +50 -0
  11. package/components/Details/index.js +53 -0
  12. package/components/Dropdown/index.js +85 -0
  13. package/components/DropdownButton/Menu.js +25 -0
  14. package/components/DropdownButton/MenuButton.js +41 -0
  15. package/components/DropdownButton/MenuItem.js +25 -0
  16. package/components/DropdownButton/MenuItemLink.js +27 -0
  17. package/components/Error/Collapsible.jsx +2 -2
  18. package/components/Footer/FooterUI.jsx +175 -177
  19. package/components/Footer/footer.js +2 -12
  20. package/components/GovBanner/index.js +117 -0
  21. package/components/Header/HeaderAccountMenu.jsx +49 -75
  22. package/components/Header/HeaderContainer.jsx +46 -34
  23. package/components/Header/HeaderLogo.jsx +40 -17
  24. package/components/Header/HeaderMenuButton.js +38 -12
  25. package/components/Header/HeaderMenuItem.jsx +204 -64
  26. package/components/Header/HeaderMenuLink.js +46 -10
  27. package/components/Header/HeaderMenuSignOutButton.js +46 -10
  28. package/components/Header/HeaderMobileButton.js +15 -6
  29. package/components/Header/HeaderUI.jsx +118 -117
  30. package/components/Header/HelpIcon.jsx +7 -5
  31. package/components/Header/ImpersonatorBanner.jsx +81 -0
  32. package/components/Header/header.js +2 -0
  33. package/components/Header/hooks.js +53 -1
  34. package/components/Header/utag-helpers.js +9 -0
  35. package/components/Infotip/Infotip.jsx +6 -10
  36. package/components/Infotip/InfotipContent.jsx +46 -0
  37. package/components/Infotip/InfotipIcon.jsx +3 -3
  38. package/components/Link/index.js +61 -0
  39. package/components/Modal/Modal.jsx +53 -40
  40. package/components/Modal/index.jsx +11 -11
  41. package/components/NotificationBanner/CollapsedView.js +39 -0
  42. package/components/NotificationBanner/ExpandedView.js +45 -0
  43. package/components/NotificationBanner/index.js +219 -30
  44. package/components/Search/index.js +98 -0
  45. package/components/SessionDialog/sessionDialog.js +26 -0
  46. package/components/SessionDialogUI.jsx +34 -26
  47. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +9 -2
  48. package/components/SideNav/Chart/ScoreChart.jsx +1 -1
  49. package/components/SideNav/Chart/__tests__/ScoreChart.test.js +3 -12
  50. package/components/SideNav/Chart/__tests__/__snapshots__/ScoreChart.test.js.snap +144 -35
  51. package/components/SideNav/Chart/index.js +1 -1
  52. package/components/SideNav/Content/LevelOneContent.jsx +145 -255
  53. package/components/SideNav/Content/LevelTwoContent.jsx +12 -10
  54. package/components/SideNav/Content/SelectRole/index.js +77 -0
  55. package/components/SideNav/Content/SelectRole/utils.js +140 -0
  56. package/components/SideNav/Details/PracticeDetails.jsx +4 -0
  57. package/components/SideNav/Links/CmsSwitchLink.jsx +1 -1
  58. package/components/SideNav/Links/NavLinkContainer.jsx +29 -34
  59. package/components/SideNav/Links/NavLinkDrawer.jsx +100 -17
  60. package/components/SideNav/Links/NavLinkInline.jsx +7 -2
  61. package/components/SideNav/SideNav.md +28 -27
  62. package/components/SideNav/UI/SideNavUI.jsx +122 -129
  63. package/components/SideNav/UI/default-content.json +117 -0
  64. package/components/SideNav/helpers.js +316 -4
  65. package/components/Tabs/TabPanel.js +5 -0
  66. package/components/Tabs/Tabs.js +73 -0
  67. package/components/TextInput/index.js +137 -0
  68. package/components/hooks/useGetConfig.js +75 -0
  69. package/components/index.js +103 -9
  70. package/coverage/clover.xml +1465 -41
  71. package/coverage/coverage-final.json +72 -1
  72. package/coverage/lcov-report/block-navigation.js +8 -0
  73. package/coverage/lcov-report/components/Accordion/index.html +26 -21
  74. package/coverage/lcov-report/components/Accordion/index.jsx.html +106 -131
  75. package/coverage/lcov-report/{SideNav/Chart → components/Button}/index.html +29 -24
  76. package/coverage/lcov-report/{Error/Collapsible.jsx.html → components/Button/index.js.html} +125 -114
  77. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +92 -87
  78. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +32 -33
  79. package/coverage/lcov-report/components/Error/index.html +11 -6
  80. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +200 -189
  81. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +24 -61
  82. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +18 -13
  83. package/coverage/lcov-report/components/Footer/index.html +35 -45
  84. package/coverage/lcov-report/components/{InfoModal → GovBanner}/index.html +27 -22
  85. package/coverage/lcov-report/components/{InfoModal/index.jsx.html → GovBanner/index.js.html} +157 -122
  86. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +93 -520
  87. package/coverage/lcov-report/components/Header/HeaderCancel.jsx.html +19 -23
  88. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +280 -0
  89. package/coverage/lcov-report/components/{SideNav/Links/NavLinkContainer.jsx.html → Header/HeaderLogo.jsx.html} +78 -67
  90. package/coverage/lcov-report/components/{SideNav/Links/NavItemInline.jsx.html → Header/HeaderMenuButton.js.html} +71 -78
  91. package/coverage/lcov-report/components/{SideNav/Links/NavLinkDrawer.jsx.html → Header/HeaderMenuItem.jsx.html} +291 -268
  92. package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +253 -0
  93. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  94. package/coverage/lcov-report/components/{SideNav/Links/NavLinkToggle.jsx.html → Header/HeaderMobileButton.js.html} +64 -47
  95. package/coverage/lcov-report/components/Header/HeaderUI.jsx.html +176 -756
  96. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
  97. package/coverage/lcov-report/{Accordion/index.jsx.html → components/Header/ImpersonatorBanner.jsx.html} +109 -167
  98. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +24 -19
  99. package/coverage/lcov-report/components/Header/hooks.js.html +283 -0
  100. package/coverage/lcov-report/components/Header/index.html +203 -33
  101. package/coverage/lcov-report/components/{SideNav/Links/index.js.html → Header/utag-helpers.js.html} +35 -42
  102. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +53 -48
  103. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +37 -32
  104. package/coverage/lcov-report/components/Infotip/index.html +8 -3
  105. package/coverage/lcov-report/components/Infotip/index.js.html +8 -3
  106. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +301 -0
  107. package/coverage/lcov-report/{HeaderUI.jsx.html → components/Modal/Modal.jsx.html} +169 -257
  108. package/coverage/lcov-report/components/Modal/index.html +146 -0
  109. package/coverage/lcov-report/components/{SideNav/Details/IndividualDetails.jsx.html → Modal/index.jsx.html} +50 -42
  110. package/coverage/lcov-report/components/NotificationBanner/CollapsedView.js.html +202 -0
  111. package/coverage/lcov-report/components/NotificationBanner/ExpandedView.js.html +220 -0
  112. package/coverage/lcov-report/components/NotificationBanner/index.html +58 -23
  113. package/coverage/lcov-report/components/{SideNav/Content/LevelTwoContent.jsx.html → NotificationBanner/index.js.html} +292 -272
  114. package/coverage/lcov-report/components/SanitizedContent/index.html +8 -3
  115. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +475 -50
  116. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +248 -255
  117. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +272 -408
  118. package/coverage/lcov-report/components/SideNav/Chart/index.html +28 -38
  119. package/coverage/lcov-report/components/SideNav/Content/SelectRole/index.html +116 -0
  120. package/coverage/lcov-report/components/SideNav/Content/SelectRole/utils.js.html +505 -0
  121. package/coverage/lcov-report/components/SideNav/helpers.js.html +987 -46
  122. package/coverage/lcov-report/components/SideNav/index.html +24 -19
  123. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +70 -65
  124. package/coverage/lcov-report/components/Tooltip/index.html +8 -3
  125. package/coverage/lcov-report/components/Tooltip/index.js.html +8 -3
  126. package/coverage/lcov-report/components/Tooltip/position.js.html +57 -64
  127. package/coverage/lcov-report/components/hooks/index.html +116 -0
  128. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +310 -0
  129. package/coverage/lcov-report/components/index.html +10 -5
  130. package/coverage/lcov-report/index.html +401 -21
  131. package/coverage/lcov-report/{Error/ErrorUI.jsx.html → lib/Chevron.jsx.html} +44 -42
  132. package/coverage/lcov-report/lib/SvgComponents.jsx.html +1840 -0
  133. package/coverage/lcov-report/lib/index.html +34 -14
  134. package/coverage/lcov-report/react/components/Accordion/index.html +26 -21
  135. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +67 -86
  136. package/coverage/lcov-report/react/components/{FlashNotification → Button}/index.html +23 -33
  137. package/coverage/lcov-report/{components/SideNav/Links/NavLinkInline.jsx.html → react/components/Button/index.js.html} +119 -120
  138. package/coverage/lcov-report/react/components/{Tabs → Dropdown}/index.html +23 -33
  139. package/coverage/lcov-report/react/components/{InfoModal/index.jsx.html → Dropdown/index.js.html} +102 -154
  140. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +26 -21
  141. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +11 -6
  142. package/coverage/lcov-report/react/components/Error/error.js.html +8 -3
  143. package/coverage/lcov-report/react/components/Error/index.html +11 -6
  144. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +196 -194
  145. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +9 -4
  146. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +18 -13
  147. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +18 -13
  148. package/coverage/lcov-report/react/components/Footer/footer.js.html +12 -37
  149. package/coverage/lcov-report/react/components/Footer/index.html +35 -45
  150. package/coverage/lcov-report/react/components/{InfoModal → GovBanner}/index.html +27 -22
  151. package/coverage/lcov-report/react/components/{Tabs/TabsUI.jsx.html → GovBanner/index.js.html} +146 -153
  152. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +81 -154
  153. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +15 -10
  154. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +91 -50
  155. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +105 -31
  156. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +109 -26
  157. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +510 -85
  158. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +137 -24
  159. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +134 -21
  160. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +56 -24
  161. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +172 -179
  162. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +30 -19
  163. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +331 -0
  164. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +9 -4
  165. package/coverage/lcov-report/react/components/Header/header.js.html +15 -4
  166. package/coverage/lcov-report/react/components/Header/hooks.js.html +187 -26
  167. package/coverage/lcov-report/react/components/Header/index.html +157 -122
  168. package/coverage/lcov-report/react/components/{Spinner/index.js.html → Header/utag-helpers.js.html} +26 -21
  169. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +12 -7
  170. package/coverage/lcov-report/react/components/{Tabs/tabs.js.html → Infotip/InfotipContent.jsx.html} +83 -48
  171. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +12 -7
  172. package/coverage/lcov-report/react/components/Infotip/index.html +8 -3
  173. package/coverage/lcov-report/react/components/Infotip/index.js.html +8 -3
  174. package/coverage/lcov-report/react/components/{FlashNotification/FlashNotificationUI.jsx.html → Modal/LegacyModal.jsx.html} +89 -84
  175. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +505 -0
  176. package/coverage/lcov-report/react/components/Modal/index.html +52 -17
  177. package/coverage/lcov-report/react/components/Modal/index.jsx.html +38 -201
  178. package/coverage/lcov-report/{components/SideNav/Links/CmsSwitchLink.jsx.html → react/components/NotificationBanner/CollapsedView.js.html} +52 -50
  179. package/coverage/lcov-report/{components/SideNav/Details/PracticeDetails.jsx.html → react/components/NotificationBanner/ExpandedView.js.html} +74 -57
  180. package/coverage/lcov-report/react/components/NotificationBanner/index.html +56 -21
  181. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +615 -43
  182. package/coverage/lcov-report/react/components/SanitizedContent/index.html +8 -3
  183. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +12 -7
  184. package/coverage/lcov-report/react/components/{Spinner → SessionDialog}/index.html +11 -6
  185. package/coverage/lcov-report/react/components/{FlashNotification/index.js.html → SessionDialog/sessionDialog.js.html} +35 -42
  186. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +80 -51
  187. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +38 -12
  188. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +18 -13
  189. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +67 -56
  190. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +26 -21
  191. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +9 -4
  192. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +189 -514
  193. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +28 -17
  194. package/coverage/lcov-report/{components/SideNav/Details → react/components/SideNav/Content/SelectRole}/index.html +42 -52
  195. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +316 -0
  196. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +505 -0
  197. package/coverage/lcov-report/react/components/SideNav/Content/index.html +32 -27
  198. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +8 -3
  199. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +10 -5
  200. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +26 -9
  201. package/coverage/lcov-report/react/components/SideNav/Details/index.html +23 -18
  202. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +8 -3
  203. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +9 -4
  204. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +8 -3
  205. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +54 -64
  206. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +281 -27
  207. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +66 -46
  208. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +8 -3
  209. package/coverage/lcov-report/react/components/SideNav/Links/index.html +44 -39
  210. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +8 -3
  211. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +165 -181
  212. package/coverage/lcov-report/react/components/SideNav/UI/index.html +28 -23
  213. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +8 -3
  214. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +967 -26
  215. package/coverage/lcov-report/react/components/SideNav/index.html +27 -22
  216. package/coverage/lcov-report/react/components/SideNav/index.js.html +8 -3
  217. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +20 -15
  218. package/coverage/lcov-report/react/components/Tooltip/index.html +8 -3
  219. package/coverage/lcov-report/react/components/Tooltip/index.js.html +8 -3
  220. package/coverage/lcov-report/react/components/Tooltip/position.js.html +22 -17
  221. package/coverage/lcov-report/{components/SideNav/AnimationGroup → react/components/hooks}/index.html +29 -24
  222. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +310 -0
  223. package/coverage/lcov-report/react/components/index.html +10 -5
  224. package/coverage/lcov-report/react/index.html +20 -15
  225. package/coverage/lcov-report/react/index.js.html +29 -9
  226. package/coverage/lcov-report/react/lib/Chevron.jsx.html +181 -0
  227. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +221 -132
  228. package/coverage/lcov-report/react/lib/index.html +32 -27
  229. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +8 -3
  230. package/coverage/lcov-report/react/session/index.html +32 -27
  231. package/coverage/lcov-report/react/session/index.js.html +8 -3
  232. package/coverage/lcov-report/react/session/logout.js.html +122 -18
  233. package/coverage/lcov-report/react/session/refresh.js.html +12 -7
  234. package/coverage/lcov-report/react/session/ttl.js.html +9 -4
  235. package/coverage/lcov-report/session/index.html +50 -45
  236. package/coverage/lcov-report/session/index.js.html +8 -3
  237. package/coverage/lcov-report/session/logout.js.html +144 -49
  238. package/coverage/lcov-report/session/refresh.js.html +41 -36
  239. package/coverage/lcov-report/session/ttl.js.html +34 -29
  240. package/coverage/lcov-report/sorter.js +26 -0
  241. package/coverage/lcov.info +3189 -46
  242. package/dist/browser.js +1 -1
  243. package/dist/browser.js.LICENSE.txt +1 -7
  244. package/dist/browser.js.map +1 -1
  245. package/dist/index.js +1 -1
  246. package/dist/index.js.LICENSE.txt +1 -7
  247. package/dist/index.js.map +1 -1
  248. package/dist/react/index.js +1 -1
  249. package/dist/react/index.js.LICENSE.txt +16 -16
  250. package/dist/react/index.js.map +1 -1
  251. package/fonts/PublicSans-Black.ttf +0 -0
  252. package/fonts/PublicSans-BlackItalic.ttf +0 -0
  253. package/fonts/PublicSans-Bold.ttf +0 -0
  254. package/fonts/PublicSans-BoldItalic.ttf +0 -0
  255. package/fonts/PublicSans-ExtraBold.ttf +0 -0
  256. package/fonts/PublicSans-ExtraBoldItalic.ttf +0 -0
  257. package/fonts/PublicSans-ExtraLight.ttf +0 -0
  258. package/fonts/PublicSans-ExtraLightItalic.ttf +0 -0
  259. package/fonts/PublicSans-Italic.ttf +0 -0
  260. package/fonts/PublicSans-Light.ttf +0 -0
  261. package/fonts/PublicSans-LightItalic.ttf +0 -0
  262. package/fonts/PublicSans-Medium.ttf +0 -0
  263. package/fonts/PublicSans-MediumItalic.ttf +0 -0
  264. package/fonts/PublicSans-Regular.ttf +0 -0
  265. package/fonts/PublicSans-SemiBold.ttf +0 -0
  266. package/fonts/PublicSans-SemiBoldItalic.ttf +0 -0
  267. package/fonts/PublicSans-Thin.ttf +0 -0
  268. package/fonts/PublicSans-ThinItalic.ttf +0 -0
  269. package/images/icon-dot-gov.svg +1 -0
  270. package/images/icon-https.svg +1 -0
  271. package/images/icons/close-x.svg +6 -0
  272. package/images/icons/svg/arrow-down.svg +3 -0
  273. package/images/icons/svg/arrow-download.svg +1 -0
  274. package/images/icons/svg/arrow-right.svg +1 -0
  275. package/images/icons/svg/arrow-up.svg +3 -0
  276. package/images/icons/svg/block.svg +5 -0
  277. package/images/icons/svg/calendar.svg +1 -0
  278. package/images/icons/svg/check-circle.svg +5 -0
  279. package/images/icons/svg/checkmark.svg +7 -0
  280. package/images/icons/svg/chevron-down.svg +11 -0
  281. package/images/icons/svg/chevron-left.svg +12 -0
  282. package/images/icons/svg/chevron-right.svg +12 -0
  283. package/images/icons/svg/chevron-up.svg +12 -0
  284. package/images/icons/svg/clipboard.svg +1 -0
  285. package/images/icons/svg/close.svg +1 -0
  286. package/images/icons/svg/divide.svg +13 -0
  287. package/images/icons/svg/doctors-and-clinicians-preview.svg +10 -0
  288. package/images/icons/svg/download.svg +1 -0
  289. package/images/icons/svg/dropdown-arrow.svg +1 -0
  290. package/images/icons/svg/equals.svg +13 -0
  291. package/images/icons/svg/exclamation.svg +11 -0
  292. package/images/icons/svg/external.svg +1 -0
  293. package/images/icons/svg/file-download.svg +1 -0
  294. package/images/icons/svg/file-upload.svg +1 -0
  295. package/images/icons/svg/info.svg +20 -0
  296. package/images/icons/svg/manage-user-access.svg +8 -0
  297. package/images/icons/svg/multiply.svg +12 -0
  298. package/images/icons/svg/performance-feedback.svg +1 -0
  299. package/images/icons/svg/plus.svg +12 -0
  300. package/images/icons/svg/preview.svg +17 -0
  301. package/images/icons/svg/print.svg +1 -0
  302. package/images/icons/svg/registration.svg +8 -0
  303. package/images/icons/svg/reporting.svg +17 -0
  304. package/images/icons/svg/save-disk.svg +5 -0
  305. package/images/icons/svg/search.svg +1 -0
  306. package/images/icons/svg/subtract.svg +15 -0
  307. package/images/icons/svg/targeted-review.svg +15 -0
  308. package/images/icons/svg/tooltip-question.svg +1 -0
  309. package/images/icons/svg/trash.svg +1 -0
  310. package/images/icons/svg/upload.svg +1 -0
  311. package/images/us_flag_small.png +0 -0
  312. package/index.js +5 -0
  313. package/jest.config.js +139 -132
  314. package/lib/Chevron.jsx +32 -0
  315. package/lib/SvgComponents.jsx +197 -49
  316. package/package.json +60 -78
  317. package/session/logout.js +35 -2
  318. package/styles/_global.scss +63 -62
  319. package/styles/_main.scss +6 -0
  320. package/styles/_qpp-style.scss +0 -3
  321. package/styles/components/_accordion.scss +249 -246
  322. package/styles/components/_autocomplete.scss +0 -3
  323. package/styles/components/_spinner.scss +0 -2
  324. package/styles/components/_tables.scss +77 -67
  325. package/styles/components/_text.scss +102 -102
  326. package/styles/components/_variables.scss +12 -12
  327. package/styles/qppds/base/_backgrounds.scss +1 -6
  328. package/styles/qppds/base/_fonts.scss +24 -0
  329. package/styles/qppds/base/_icon.scss +31 -0
  330. package/styles/qppds/base/_layout.scss +5 -0
  331. package/styles/qppds/base/_typography.scss +77 -43
  332. package/styles/qppds/base/index.scss +3 -6
  333. package/styles/qppds/components/_alert.scss +101 -0
  334. package/styles/qppds/components/_breadcrumbs.scss +42 -10
  335. package/styles/qppds/components/_button.scss +38 -12
  336. package/styles/qppds/components/_card.scss +175 -0
  337. package/styles/qppds/components/_checkbox.scss +199 -0
  338. package/styles/qppds/components/_circular-loader.scss +47 -0
  339. package/styles/qppds/components/_details.scss +90 -0
  340. package/styles/qppds/components/_dropdown-menu.scss +125 -0
  341. package/styles/qppds/components/_dropdown.scss +5 -0
  342. package/styles/qppds/components/_footer.scss +606 -0
  343. package/styles/qppds/components/_gov-banner.scss +344 -0
  344. package/styles/{components → qppds/components}/_header.scss +460 -24
  345. package/styles/qppds/components/_link.scss +32 -9
  346. package/styles/qppds/components/_modal.scss +61 -21
  347. package/styles/qppds/components/_page-header.scss +65 -2
  348. package/styles/qppds/components/_pagination.scss +227 -0
  349. package/styles/qppds/components/_process-list.scss +104 -0
  350. package/styles/qppds/components/_radio-button.scss +184 -0
  351. package/styles/qppds/components/_search.scss +118 -0
  352. package/styles/{components → qppds/components}/_sidebar.scss +2 -0
  353. package/styles/qppds/components/_step-indicator.scss +190 -0
  354. package/styles/qppds/components/_table.scss +157 -0
  355. package/styles/qppds/components/_tabs.scss +197 -0
  356. package/styles/qppds/components/_text-input.scss +60 -0
  357. package/styles/qppds/components/index.scss +18 -0
  358. package/styles/{components → qppds/components}/sidebar/_links.scss +48 -1
  359. package/styles/qppds/components/sidebar/_select-role-dropdown.scss +21 -0
  360. package/styles/{components → qppds/components}/sidebar/_sidebar-animation.scss +4 -0
  361. package/styles/qppds/components/sidebar/_sidebar.scss +146 -0
  362. package/styles/qppds/settings/_functions.scss +3 -1
  363. package/styles/qppds/settings/mixins/_borders.scss +6 -0
  364. package/styles/qppds/settings/mixins/_focus.scss +7 -1
  365. package/styles/qppds/settings/mixins/_icons.scss +39 -4
  366. package/styles/qppds/settings/mixins/_index.scss +3 -0
  367. package/styles/qppds/settings/mixins/_layout.scss +46 -7
  368. package/styles/qppds/settings/mixins/_table.scss +91 -0
  369. package/styles/qppds/settings/mixins/_type.scss +89 -0
  370. package/styles/qppds/settings/variables/_color.scss +47 -1
  371. package/styles/qppds/settings/variables/_index.scss +2 -1
  372. package/styles/qppds/settings/variables/_layout.scss +34 -9
  373. package/styles/qppds/settings/variables/_type.scss +41 -0
  374. package/styles/qppds/settings/variables/_z-index.scss +8 -0
  375. package/styles/qppds/utilities/_background-color.scss +4 -0
  376. package/styles/qppds/utilities/_color.scss +24 -0
  377. package/styles/qppds/utilities/{_display-visability.scss → _display-visibility.scss} +8 -0
  378. package/styles/qppds/utilities/_flexbox.scss +113 -0
  379. package/styles/qppds/utilities/_font-family.scss +4 -0
  380. package/styles/qppds/utilities/_gap.scss +38 -0
  381. package/styles/qppds/utilities/_height.scss +79 -0
  382. package/styles/qppds/utilities/_list-style.scss +18 -0
  383. package/styles/qppds/utilities/_position.scss +24 -0
  384. package/styles/qppds/utilities/_text-align.scss +40 -0
  385. package/styles/qppds/utilities/_text-transform.scss +7 -0
  386. package/styles/qppds/utilities/_truncate.scss +5 -5
  387. package/styles/qppds/utilities/_vertical-align.scss +72 -0
  388. package/styles/qppds/utilities/_width.scss +38 -1
  389. package/styles/qppds/utilities/index.scss +8 -2
  390. package/svgo.config.js +14 -0
  391. package/test/components/Accordion.test.js +4 -13
  392. package/test/components/ErrorUI.test.js +10 -46
  393. package/test/components/FooterUI.test.js +0 -30
  394. package/test/components/HeaderUI.test.js +32 -40
  395. package/test/components/Infotip.test.js +18 -12
  396. package/test/components/SessionDialogUI.test.js +55 -70
  397. package/test-setup.js +0 -8
  398. package/webpack.config.js +29 -39
  399. package/webpack.config.react.js +7 -18
  400. package/.storybook/.babelrc +0 -4
  401. package/.storybook/main.js +0 -88
  402. package/.storybook/preview-head.html +0 -9
  403. package/.storybook/preview.js +0 -5
  404. package/Session.vim +0 -83
  405. package/components/Accordion/Accordion.stories.js +0 -20
  406. package/components/Breadcrumb/Breadcrumb.stories.js +0 -58
  407. package/components/Button/Button.stories.js +0 -125
  408. package/components/Footer/Footer.stories.js +0 -20
  409. package/components/Footer/LegacyFooterUI.jsx +0 -194
  410. package/components/Header/Header.stories.js +0 -32
  411. package/components/InfoModal/InfoModal.stories.js +0 -98
  412. package/components/InfoModal/index.jsx +0 -104
  413. package/components/Infotip/Infotip.stories.js +0 -50
  414. package/components/Modal/Modal.stories.js +0 -159
  415. package/components/NotificationBanner/NotificationBanner.stories.js +0 -22
  416. package/components/NotificationBanner/NotificationBannerUI.jsx +0 -282
  417. package/components/SideNav/SideNav.stories.js +0 -397
  418. package/components/Spinner/index.js +0 -9
  419. package/components/Tabs/TabsUI.jsx +0 -118
  420. package/components/Tabs/tabs.js +0 -36
  421. package/components/Tooltip/Tooltip.jsx +0 -88
  422. package/components/Tooltip/Tooltip.stories.js +0 -80
  423. package/components/Tooltip/index.js +0 -3
  424. package/components/Tooltip/position.js +0 -68
  425. package/components/UnwrappedSpinner/index.js +0 -8
  426. package/components/UnwrappedTabs/TabPanelUI.jsx +0 -16
  427. package/components/UnwrappedTabs/TabsUI.jsx +0 -82
  428. package/coverage/lcov-report/Accordion/index.html +0 -111
  429. package/coverage/lcov-report/Error/index.html +0 -126
  430. package/coverage/lcov-report/ScoreChart.jsx.html +0 -1025
  431. package/coverage/lcov-report/SideNav/Chart/ScoreChart.jsx.html +0 -1025
  432. package/coverage/lcov-report/components/Footer/LegacyFooterUI.jsx.html +0 -668
  433. package/coverage/lcov-report/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -1010
  434. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -131
  435. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -89
  436. package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +0 -1007
  437. package/coverage/lcov-report/components/SideNav/Content/index.html +0 -141
  438. package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -92
  439. package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -92
  440. package/coverage/lcov-report/components/SideNav/Links/index.html +0 -201
  441. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1298
  442. package/coverage/lcov-report/components/SideNav/UI/index.html +0 -126
  443. package/coverage/lcov-report/components/SideNav/UI/index.js.html +0 -89
  444. package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -1319
  445. package/coverage/lcov-report/react/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -926
  446. package/styles/components/_footer.scss +0 -593
  447. package/styles/components/_header_backup.scss +0 -574
  448. package/styles/components/sidebar/_sidebar.scss +0 -141
  449. package/test/components/Tooltip.test.js +0 -147
  450. package/test/components/__snapshots__/Accordion.test.js.snap +0 -11439
  451. package/test/components/__snapshots__/HeaderUI.test.js.snap +0 -3
  452. /package/styles/{components → qppds/components}/sidebar/_animations.scss +0 -0
  453. /package/styles/{components → qppds/components}/sidebar/_cms.scss +0 -0
  454. /package/styles/{components → qppds/components}/sidebar/_details.scss +0 -0
  455. /package/styles/{components → qppds/components}/sidebar/_sidebar-tooltip.scss +0 -0
  456. /package/styles/{components → qppds/components}/sidebar/project-specific/_wi.scss +0 -0
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Extract values from cookies, return parsed values in an array
3
+ * @param {array} cookies
4
+ * @returns {array}
5
+ */
6
+ const extractCookieValues = (cookies) => {
7
+ const [hasAuthorizations, cmsInternalRoleValues] = cookies;
8
+ const cmsInternalRoles = cmsInternalRoleValues
9
+ ? JSON.parse(cmsInternalRoleValues)
10
+ : null;
11
+ return [hasAuthorizations, cmsInternalRoles];
12
+ };
13
+
14
+ /**
15
+ * Check if internal cms role is a Reviewer role
16
+ * @param {string} cmsInternalRole
17
+ * @returns {boolean}
18
+ */
19
+ export const isReviewerRole = (cmsInternalRole) => {
20
+ const reviewerRoles = [
21
+ 'QPP Self-Nomination',
22
+ 'QPP Targeted Review & Exceptions',
23
+ 'QPP Case Management - PIMMS Reviewer',
24
+ 'QPP Case Management - ACO PAC Reviewer',
25
+ 'QPP Case Management - CMS Reviewer',
26
+ ];
27
+ return reviewerRoles.includes(cmsInternalRole);
28
+ };
29
+
30
+ /**
31
+ * Check if internal cms roles has Reviewer role
32
+ * @param {array} cmsInternalRoles array of values
33
+ * @returns {boolean}
34
+ */
35
+ const hasReviewerRole = (cmsInternalRoles) => {
36
+ if (!cmsInternalRoles) return false;
37
+ return cmsInternalRoles.some(isReviewerRole);
38
+ };
39
+
40
+ /**
41
+ * Check if internal cms roles includes Helpdek role
42
+ * @param {array} cmsInternalRoles array of values
43
+ * @returns {boolean}
44
+ */
45
+ const hasHelpdeskRole = (cmsInternalRoles) => {
46
+ if (!cmsInternalRoles) return false;
47
+ return cmsInternalRoles.includes('QPP Helpdesk');
48
+ };
49
+
50
+ const hasContentMgmtRole = (cmsInternalRoles) => {
51
+ if (!cmsInternalRoles) return false;
52
+ const cmsRoles = [
53
+ 'QPP Content Management - Author',
54
+ 'QPP Content Management - Approver',
55
+ 'QPP Content Management - Admin',
56
+ 'QPP Front-end - Author',
57
+ ];
58
+ return cmsInternalRoles.some((role) => cmsRoles.includes(role));
59
+ };
60
+
61
+ /**
62
+ * Transforms cookie values into optios format for use in role seelction dropdown
63
+ * @param {array} values extracted & parsed vookie values
64
+ * @returns {array}
65
+ */
66
+ const transformCookieValues = (values) => {
67
+ const optionValues = [];
68
+ const [hasAuthorizations, cmsInternalRoles] = values;
69
+
70
+ if (hasAuthorizations === 'true') {
71
+ optionValues.push({ name: 'QPP User', value: 'QPP User' });
72
+ }
73
+ if (hasReviewerRole(cmsInternalRoles)) {
74
+ optionValues.push({ name: 'Reviewer', value: 'Reviewer' });
75
+ }
76
+ if (hasHelpdeskRole(cmsInternalRoles)) {
77
+ optionValues.push({ name: 'Helpdesk Viewer', value: 'Helpdesk Viewer' });
78
+ }
79
+ if (hasContentMgmtRole(cmsInternalRoles)) {
80
+ optionValues.push({ name: 'Content Manager', value: 'Content Manager' });
81
+ }
82
+ return optionValues;
83
+ };
84
+
85
+ /**
86
+ *
87
+ * @param {array} cookies authz & cms_internal_authz values parsed from cookies
88
+ * @returns {array} of objects for use in role dropdown
89
+ */
90
+ export const loadRoleOptions = (cookies) => {
91
+ const cookieValues = extractCookieValues(cookies);
92
+ return transformCookieValues(cookieValues);
93
+ };
94
+
95
+ const defaultPageByRole = {
96
+ 'QPP User': '/user/submissions',
97
+ 'Helpdesk Viewer': '/user/helpdesk-viewing-tool',
98
+ Reviewer: '/user/reviewers',
99
+ 'Content Manager': '/user/content-management',
100
+ };
101
+
102
+ /**
103
+ * Get redirect url/page by role
104
+ * @param {string} role
105
+ * @returns {string}
106
+ */
107
+ export const redirectPage = (role) => {
108
+ const defaultPage = defaultPageByRole[role];
109
+ const { pathname } = window.location;
110
+ if (pathname === defaultPage) return;
111
+ else window.location.assign(defaultPage);
112
+ };
113
+
114
+ /**
115
+ * Get localStorage values related to user role
116
+ * @returns {object}
117
+ */
118
+ export const getLocalStorageRoleState = () => ({
119
+ selectedUserRole: localStorage.getItem('selectedUserRole'),
120
+ });
121
+
122
+ /**
123
+ * Initialize role values in localStorage
124
+ * @param {string} roleValue selector role value from dropdown
125
+ * @returns {void}
126
+ */
127
+ export const initializeLocalStorageRoleState = (roleValue) => {
128
+ const localStorageValues = getLocalStorageRoleState();
129
+
130
+ if (!localStorageValues.selectedUserRole) {
131
+ localStorage.setItem('selectedUserRole', roleValue);
132
+ }
133
+ };
134
+
135
+ /**
136
+ * Update role values in localStorage
137
+ * @param {string} updatedRole new user role selected from dropdown
138
+ */
139
+ export const updateLocalStorageRoleState = (updatedRole) =>
140
+ localStorage.setItem('selectedUserRole', updatedRole);
@@ -7,10 +7,13 @@ const PracticeDetails = ({
7
7
  apmEntityId,
8
8
  vgId,
9
9
  cpcPlusId,
10
+ pcfId,
10
11
  }) => {
11
12
  function renderId() {
12
13
  if (cpcPlusId) {
13
14
  return <p className="practice-tin">CPC+ ID: {cpcPlusId}</p>;
15
+ } else if (pcfId) {
16
+ return <p className="practice-tin">PCF ID: {pcfId}</p>;
14
17
  } else if (apmEntityId) {
15
18
  return <p className="practice-tin">APM Entity ID: {apmEntityId}</p>;
16
19
  } else if (vgId) {
@@ -36,6 +39,7 @@ PracticeDetails.propTypes = {
36
39
  apmEntityId: PropTypes.string,
37
40
  vgId: PropTypes.string,
38
41
  cpcPlusId: PropTypes.string,
42
+ pcfId: PropTypes.string,
39
43
  };
40
44
 
41
45
  export default PracticeDetails;
@@ -8,7 +8,7 @@ const CmsSwitchLink = ({ linkCallback, url, label }) => {
8
8
  <div className="switch-container">
9
9
  <a
10
10
  href={url}
11
- onClick={(e) => handleNavigation(e, linkCallback)}
11
+ onClick={(e) => handleNavigation(e, linkCallback, label)}
12
12
  className="switch-link"
13
13
  >
14
14
  <div className="button-partition">
@@ -1,43 +1,38 @@
1
- import React, { Component } from 'react';
1
+ import React, { useState } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
 
4
- export default class NavLinkContainer extends Component {
5
- constructor(props) {
6
- super(props);
7
- this._toggleActive = this.toggleActive.bind(this);
8
- this.state = {
9
- activeLink: null,
10
- };
11
- }
4
+ const NavLinkContainer = ({ listOfLinks, linkActiveFunc }) => {
5
+ const [activeLink, setActiveLink] = useState(null);
12
6
 
13
- toggleActive(idx, disabled) {
14
- if (disabled || this.props.linkActiveFunc) return;
15
- this.setState((state) => ({ activeLink: idx }));
16
- }
7
+ const toggleActive = (idx, disabled) => {
8
+ if (disabled || linkActiveFunc) return;
9
+ setActiveLink(idx);
10
+ };
17
11
 
18
- render() {
19
- const { activeLink } = this.state;
20
- const { listOfLinks } = this.props;
21
-
22
- return (
23
- <nav>
24
- <ul>
25
- {listOfLinks &&
26
- listOfLinks.map((link, idx) => (
27
- <li
28
- key={idx.toString()}
29
- onClick={() => this._toggleActive(idx, link.props.disabled)}
30
- >
31
- {React.cloneElement(link, { isActive: activeLink === idx })}
32
- </li>
33
- ))}
34
- </ul>
35
- </nav>
36
- );
37
- }
38
- }
12
+ return (
13
+ <nav>
14
+ <ul>
15
+ {(listOfLinks || []).map((link, idx) => (
16
+ <li
17
+ key={idx.toString()}
18
+ onClick={() => toggleActive(idx, link.props.disabled)}
19
+ >
20
+ {React.cloneElement(link, { isActive: activeLink === idx })}
21
+ </li>
22
+ ))}
23
+ </ul>
24
+ </nav>
25
+ );
26
+ };
39
27
 
40
28
  NavLinkContainer.propTypes = {
41
29
  listOfLinks: PropTypes.array,
42
30
  linkActiveFunc: PropTypes.func,
43
31
  };
32
+
33
+ NavLinkContainer.defaultProps = {
34
+ listOfLinks: null,
35
+ linkActiveFunc: null,
36
+ };
37
+
38
+ export default NavLinkContainer;
@@ -20,8 +20,14 @@ const NavLinkDrawer = ({
20
20
  sidebarExpand,
21
21
  staticDrawer,
22
22
  url,
23
+ isHighlighted,
24
+ darkerBackground,
25
+ leftBorderHighlightDisabled,
26
+ hideLabelSection,
27
+ largerDrawerBottomPadding,
23
28
  }) => {
24
29
  const [isOpen, setIsOpen] = useState(openByDefault);
30
+ const MANAGE_ACCESS = '/user/manage-access';
25
31
 
26
32
  const toggleDrawer = () => {
27
33
  if (!isExpanded && typeof sidebarExpand === 'function') {
@@ -33,6 +39,14 @@ const NavLinkDrawer = ({
33
39
  if (!isAlwaysOpen && !disabled) {
34
40
  setIsOpen(!isOpen);
35
41
  }
42
+
43
+ reRouteHandler();
44
+ };
45
+
46
+ const reRouteHandler = () => {
47
+ if (url === MANAGE_ACCESS) {
48
+ return (window.location.href = MANAGE_ACCESS);
49
+ }
36
50
  };
37
51
 
38
52
  const isLinkActive = (link, func) => {
@@ -53,6 +67,20 @@ const NavLinkDrawer = ({
53
67
  );
54
68
  };
55
69
 
70
+ const buildLeftIconClasses = () => {
71
+ let leftIcon = `left-icon`;
72
+
73
+ if (isAlwaysOpen) {
74
+ leftIcon += ` always-open`;
75
+ }
76
+
77
+ if (isHighlighted) {
78
+ leftIcon += ' fill-white';
79
+ }
80
+
81
+ return leftIcon;
82
+ };
83
+
56
84
  // Classes for the link drawer button
57
85
  const currentPage = isCurrentPage(
58
86
  { items, listOfLinks, url },
@@ -60,6 +88,52 @@ const NavLinkDrawer = ({
60
88
  );
61
89
  const expandedClass = currentPage ? 'expanded' : '';
62
90
 
91
+ const renderLeftIcon = (leftIcon) => {
92
+ if (leftIcon) {
93
+ return (
94
+ <svg
95
+ className={`${buildLeftIconClasses()}`}
96
+ aria-hidden="true"
97
+ focusable="false"
98
+ >
99
+ {leftIcon}
100
+ </svg>
101
+ );
102
+ }
103
+ };
104
+
105
+ const hasDarkerBackground = (darkerBackground) => {
106
+ return darkerBackground ? 'background-highlight' : '';
107
+ };
108
+
109
+ const hasDarkerTitle = (darkerBackground) => {
110
+ return darkerBackground ? 'expanded currentPage' : '';
111
+ };
112
+
113
+ const isLeftBorderHighlightDisabled = (leftBorderHighlightDisabled) => {
114
+ return leftBorderHighlightDisabled ? 'left-border-disabled' : '';
115
+ };
116
+
117
+ const isLabelSectionHidden = (hideLabelSection) => {
118
+ return hideLabelSection ? 'hidden-label-section' : '';
119
+ };
120
+
121
+ const isHiddenWhileCollapsed = (isLeftBorderDisabled, isExpanded) => {
122
+ return isLeftBorderDisabled && !isExpanded ? 'hidden-nav-link-item' : '';
123
+ };
124
+
125
+ const highlightTitle = (isHighlighted) => {
126
+ return isHighlighted && isExpanded ? 'highlight' : '';
127
+ };
128
+
129
+ const hasLargerDrawBottomPadding = (largerDrawerBottomPadding) => {
130
+ return largerDrawerBottomPadding ? 'larger-drawer-bottom-padding' : '';
131
+ };
132
+
133
+ const adjustItemSpacing = (largerDrawerBottomPadding) => {
134
+ return largerDrawerBottomPadding ? 'larger-item-spacing' : '';
135
+ };
136
+
63
137
  useEffect(() => {
64
138
  if (disabled) {
65
139
  setIsOpen(false);
@@ -74,10 +148,10 @@ const NavLinkDrawer = ({
74
148
  const renderDrawerLinksRecursively = (navLinks, className = '') => {
75
149
  return (
76
150
  navLinks &&
77
- navLinks.map((link) => {
151
+ navLinks.map((link, index) => {
78
152
  if (link.type === 'divider') {
79
153
  return (
80
- <AnimationGroup display={true}>
154
+ <AnimationGroup display={true} key={index}>
81
155
  <hr />
82
156
  </AnimationGroup>
83
157
  );
@@ -95,7 +169,7 @@ const NavLinkDrawer = ({
95
169
  {link.url ? (
96
170
  <a
97
171
  href={link.url}
98
- onClick={(e) => handleNavigation(e, linkCallback)}
172
+ onClick={(e) => handleNavigation(e, linkCallback, link.label)}
99
173
  tabIndex={isOpen ? '0' : '-1'}
100
174
  data-track-category="SidebarNav"
101
175
  data-track-action={`GoTo${
@@ -127,23 +201,22 @@ const NavLinkDrawer = ({
127
201
  {...(!isAlwaysOpen ? { 'aria-pressed': isOpen } : {})}
128
202
  tabIndex="0"
129
203
  aria-label={label}
130
- {...(isAlwaysOpen || disabled
204
+ {...((url !== MANAGE_ACCESS && isAlwaysOpen) || disabled
131
205
  ? { disabled: isAlwaysOpen || disabled }
132
206
  : {})}
133
- className={`${className} ${expandedClass} ${
134
- currentPage ? 'currentPage' : ''
135
- }`}
207
+ className={`${className} ${expandedClass} ${highlightTitle(
208
+ isHighlighted
209
+ )} ${hasDarkerTitle(darkerBackground)}
210
+ ${currentPage ? 'currentPage' : ''} ${isLeftBorderHighlightDisabled(
211
+ leftBorderHighlightDisabled
212
+ )}
213
+ ${isLabelSectionHidden(hideLabelSection)}
214
+ ${isHiddenWhileCollapsed(leftBorderHighlightDisabled, isExpanded)}`}
136
215
  >
137
216
  <div className={isExpanded ? 'link-body' : 'link-body collapsed'}>
138
- <svg
139
- className={`left-icon${isAlwaysOpen ? ' always-open' : ''}`}
140
- aria-hidden="true"
141
- focusable="false"
142
- >
143
- {leftIcon}
144
- </svg>
217
+ {renderLeftIcon(leftIcon)}
145
218
  <AnimationGroup display={isExpanded}>
146
- <span>{label}</span>
219
+ <span className="sidebar-inline-link-label">{label}</span>
147
220
  </AnimationGroup>
148
221
  </div>
149
222
  {isExpanded && !isAlwaysOpen && (
@@ -160,11 +233,16 @@ const NavLinkDrawer = ({
160
233
  <div
161
234
  className={`${currentPage ? 'currentPage' : ''} ${
162
235
  isOpen && !disabled ? 'drawer open' : 'drawer'
163
- }`}
236
+ } ${hasDarkerBackground(
237
+ darkerBackground
238
+ )} ${hasLargerDrawBottomPadding(largerDrawerBottomPadding)}`}
164
239
  >
165
240
  <ul aria-hidden={!isOpen}>
166
241
  {listOfLinks &&
167
- renderDrawerLinksRecursively(listOfLinks, 'parent-link')}
242
+ renderDrawerLinksRecursively(
243
+ listOfLinks,
244
+ `parent-link ${adjustItemSpacing(largerDrawerBottomPadding)}`
245
+ )}
168
246
  </ul>
169
247
  </div>
170
248
  </AnimationGroup>
@@ -188,6 +266,11 @@ NavLinkDrawer.propTypes = {
188
266
  staticDrawer: PropTypes.bool,
189
267
  items: PropTypes.object,
190
268
  url: PropTypes.string,
269
+ isHighlighted: PropTypes.bool,
270
+ darkerBackground: PropTypes.bool,
271
+ leftBorderHighlightDisabled: PropTypes.bool,
272
+ hideLabelSection: PropTypes.bool,
273
+ largerDrawerBottomPadding: PropTypes.bool,
191
274
  };
192
275
 
193
276
  export default NavLinkDrawer;
@@ -8,6 +8,7 @@ const NavLinkInline = ({
8
8
  urlExpressionToMatch,
9
9
  className,
10
10
  icon,
11
+ rightIcon,
11
12
  label,
12
13
  isActive,
13
14
  showLabel,
@@ -59,7 +60,7 @@ const NavLinkInline = ({
59
60
  <React.Fragment>
60
61
  <a
61
62
  href={disabled ? undefined : url}
62
- onClick={(e) => handleNavigation(e, linkCallback)}
63
+ onClick={(e) => handleNavigation(e, linkCallback, label)}
63
64
  className={`${className} ${currentPage || isActive ? 'active' : ''} ${
64
65
  disabled ? 'disabled' : ''
65
66
  }`}
@@ -78,7 +79,10 @@ const NavLinkInline = ({
78
79
  {icon}
79
80
  </svg>
80
81
  <AnimationGroup display={showLabel}>
81
- <span tabIndex="-1">{label}</span>
82
+ <span tabIndex="-1" className="sidebar-inline-link-label">
83
+ {label}
84
+ {rightIcon}
85
+ </span>
82
86
  </AnimationGroup>
83
87
  </a>
84
88
  {showTooltip && (
@@ -95,6 +99,7 @@ NavLinkInline.propTypes = {
95
99
  url: PropTypes.string,
96
100
  className: PropTypes.string,
97
101
  icon: PropTypes.element,
102
+ rightIcon: PropTypes.element,
98
103
  label: PropTypes.string,
99
104
  isActive: PropTypes.bool,
100
105
  showLabel: PropTypes.bool,
@@ -4,30 +4,31 @@
4
4
 
5
5
  When a user succesfully logs into QPP the user will receive the following
6
6
  cookies.
7
- | Cookie | Description |
8
- |-------------------------------------|-----------------------------------------|
9
- | qpp_auth_token | auth token |
10
- | qpp_has_authorizations | user has authorizations |
11
- | qpp_has_non_registry_authorizations | user has non registry authorizations |
12
- | user_has_apm_payments | user has at least one APM Payment |
13
- | qpp_is_dev_pre | user is in Dev Pre environment |
14
- | qpp_ehr_authorized | user is authorized for at least one EHR |
7
+
8
+ | Cookie | Description |
9
+ | ----------------------------------- | --------------------------------------- |
10
+ | qpp_auth_token | auth token |
11
+ | qpp_has_authorizations | user has authorizations |
12
+ | qpp_has_non_registry_authorizations | user has non registry authorizations |
13
+ | user_has_apm_payments | user has at least one APM Payment |
14
+ | qpp_is_dev_pre | user is in Dev Pre environment |
15
+ | qpp_ehr_authorized | user is authorized for at least one EHR |
15
16
 
16
17
  ## Links for authenticated users
17
18
 
18
- | Link | Cookie | Property |
19
- | ---------------------------- | ---------------------------------------- | --------------------------------- |
20
- | Account Home | Always visible | |
21
- | Eligibility & Reporting | qpp_has_authorizations=true | |
22
- | Facility Based Preview | qpp_has_authorizations=true | showFacilityBasedPreviewLink=true |
23
- | Performance Feedback | qpp_has_authorizations=true | performanceYear |
24
- | APM Incentive Payments | user_has_apm_payments=true | showApmIncentivePaymentLink=true |
25
- | Doctors & Clinicians Preview | qpp_has_non_registry_authorizations=true | showPhysicianCompareLink=true |
26
- | Exceptions Applications | Always visible | |
27
- | Targeted Review | | showTargetedReviewLink |
28
- | Reports | | showReportsPortal |
29
- | Manage Access | Always visible | |
30
- | Help and Support | Always visible | |
19
+ | Link | Cookie |
20
+ | ---------------------------- | ---------------------------------------- |
21
+ | Account Home | Always visible |
22
+ | Eligibility & Reporting | qpp_has_authorizations=true |
23
+ | Facility Based Preview | qpp_has_authorizations=true |
24
+ | Performance Feedback | qpp_has_authorizations=true |
25
+ | APM Incentive Payments | user_has_apm_payments=true |
26
+ | Doctors & Clinicians Preview | qpp_has_non_registry_authorizations=true |
27
+ | Exceptions Applications | Always visible |
28
+ | Targeted Review | |
29
+ | Reports | |
30
+ | Manage Access | Always visible |
31
+ | Help and Support | Always visible |
31
32
 
32
33
  ## Manage Access - Registry/QCDR Self-Nomination
33
34
 
@@ -41,9 +42,9 @@ Review Claims-based Submission link has been deleted
41
42
 
42
43
  When the application is in Dev Pre mode the sidenav links are as follows.
43
44
 
44
- | Link | Cookie | Property |
45
- | --------------- | ----------------------- | ---------------------- |
46
- | My Applications | qpp_ehr_authorized=true | |
47
- | My Test Data | qpp_ehr_authorized=true | showDevPreDfpLink=true |
48
- | Manage Access | qpp_is_dev_pre=true | |
49
- | Developer Tools | qpp_is_dev_pre=true | |
45
+ | Link | Cookie |
46
+ | --------------- | ----------------------- |
47
+ | My Applications | qpp_ehr_authorized=true |
48
+ | My Test Data | qpp_ehr_authorized=true |
49
+ | Manage Access | qpp_is_dev_pre=true |
50
+ | Developer Tools | qpp_is_dev_pre=true |