@madie/madie-design-system 1.0.2 → 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 (348) hide show
  1. package/.storybook/main.js +3 -0
  2. package/components/Accordion/Accordion.stories.js +11 -11
  3. package/components/Accordion/index.jsx +78 -76
  4. package/components/Alert/Alert.stories.js +60 -51
  5. package/components/Alert/index.js +46 -37
  6. package/components/Breadcrumb/Breadcrumb.stories.js +62 -62
  7. package/components/Breadcrumb/index.js +80 -71
  8. package/components/Button/Button.stories.js +92 -86
  9. package/components/Button/index.js +65 -65
  10. package/components/CalloutBox/CalloutBox.stories.js +75 -75
  11. package/components/CalloutBox/index.js +92 -92
  12. package/components/Card/Card.stories.js +135 -135
  13. package/components/Card/index.js +128 -121
  14. package/components/Dropdown/Dropdown.stories.js +73 -73
  15. package/components/Dropdown/index.js +72 -72
  16. package/components/Error/Collapsible.jsx +75 -70
  17. package/components/Error/ErrorUI.jsx +22 -22
  18. package/components/Error/error.js +20 -20
  19. package/components/FlashNotification/FlashNotificationUI.jsx +77 -77
  20. package/components/FlashNotification/index.js +23 -23
  21. package/components/Footer/Footer.stories.js +13 -13
  22. package/components/Footer/FooterUI.jsx +264 -252
  23. package/components/Footer/LegacyFooterUI.jsx +190 -180
  24. package/components/Footer/SocialLinks.jsx +58 -55
  25. package/components/Footer/Subscribe.jsx +29 -29
  26. package/components/Footer/footer.js +21 -21
  27. package/components/FormControlLabel/index.jsx +23 -0
  28. package/components/Header/Header.stories.js +29 -26
  29. package/components/Header/HeaderAccountMenu.jsx +163 -149
  30. package/components/Header/HeaderCancel.jsx +8 -8
  31. package/components/Header/HeaderContainer.jsx +48 -43
  32. package/components/Header/HeaderLogo.jsx +34 -34
  33. package/components/Header/HeaderMenuButton.js +39 -39
  34. package/components/Header/HeaderMenuItem.jsx +252 -205
  35. package/components/Header/HeaderMenuLink.js +37 -37
  36. package/components/Header/HeaderMenuSignOutButton.js +50 -50
  37. package/components/Header/HeaderMobileButton.js +29 -29
  38. package/components/Header/HeaderUI.jsx +164 -147
  39. package/components/Header/HelpIcon.jsx +15 -15
  40. package/components/Header/ImpersonatorBanner.jsx +50 -47
  41. package/components/Header/NavigationButtonIcon.jsx +21 -21
  42. package/components/Header/header.js +36 -34
  43. package/components/Header/hooks.js +42 -35
  44. package/components/Header/utag-helpers.js +8 -8
  45. package/components/Infotip/Infotip.jsx +48 -48
  46. package/components/Infotip/Infotip.stories.js +32 -30
  47. package/components/Infotip/InfotipIcon.jsx +30 -30
  48. package/components/Infotip/index.js +1 -1
  49. package/components/InputLabel/index.jsx +58 -0
  50. package/components/Link/Link.stories.js +65 -64
  51. package/components/Link/index.js +46 -46
  52. package/components/Modal/LegacyModal.jsx +56 -54
  53. package/components/Modal/Modal.jsx +121 -121
  54. package/components/Modal/Modal.stories.js +152 -144
  55. package/components/Modal/index.jsx +11 -11
  56. package/components/NotificationBanner/NotificationBanner.stories.js +16 -16
  57. package/components/NotificationBanner/index.js +239 -225
  58. package/components/Pagination/index.jsx +171 -160
  59. package/components/SanitizedContent/index.jsx +183 -183
  60. package/components/Search/Search.stories.js +14 -14
  61. package/components/Search/index.js +72 -72
  62. package/components/Select/Select.stories.js +168 -0
  63. package/components/Select/index.jsx +103 -0
  64. package/components/SessionDialog/sessionDialog.js +20 -20
  65. package/components/SessionDialogUI.jsx +231 -219
  66. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +19 -17
  67. package/components/SideNav/Chart/ScoreChart.jsx +238 -229
  68. package/components/SideNav/Chart/__tests__/ScoreChart.test.js +15 -15
  69. package/components/SideNav/Chart/index.js +1 -1
  70. package/components/SideNav/Content/LevelOneContent.jsx +194 -190
  71. package/components/SideNav/Content/LevelTwoContent.jsx +208 -195
  72. package/components/SideNav/Content/index.js +2 -2
  73. package/components/SideNav/Details/IndividualDetails.jsx +10 -10
  74. package/components/SideNav/Details/PracticeDetails.jsx +36 -34
  75. package/components/SideNav/Details/index.js +2 -2
  76. package/components/SideNav/Links/CmsSwitchLink.jsx +32 -32
  77. package/components/SideNav/Links/NavItemInline.jsx +44 -44
  78. package/components/SideNav/Links/NavLinkContainer.jsx +27 -25
  79. package/components/SideNav/Links/NavLinkDrawer.jsx +267 -231
  80. package/components/SideNav/Links/NavLinkInline.jsx +94 -92
  81. package/components/SideNav/Links/NavLinkToggle.jsx +25 -25
  82. package/components/SideNav/Links/index.js +10 -10
  83. package/components/SideNav/SideNav.stories.js +320 -288
  84. package/components/SideNav/UI/SideNavUI.jsx +321 -301
  85. package/components/SideNav/UI/index.js +1 -1
  86. package/components/SideNav/helpers.js +33 -33
  87. package/components/SideNav/index.js +46 -46
  88. package/components/Spinner/index.js +6 -6
  89. package/components/Tabs/Tab.js +19 -19
  90. package/components/Tabs/TabPanel.js +31 -24
  91. package/components/Tabs/Tabs.stories.js +118 -108
  92. package/components/Tabs/index.js +81 -76
  93. package/components/TextField/TextField.stories.js +103 -0
  94. package/components/TextField/index.jsx +80 -0
  95. package/components/TextInput/TextInput.stories.js +84 -84
  96. package/components/TextInput/index.js +123 -123
  97. package/components/Tooltip/Tooltip.jsx +57 -57
  98. package/components/Tooltip/Tooltip.stories.js +50 -50
  99. package/components/Tooltip/index.js +1 -1
  100. package/components/Tooltip/position.js +42 -34
  101. package/components/UnwrappedSpinner/index.js +5 -5
  102. package/components/hooks/useGetConfig.js +64 -55
  103. package/components/index.js +129 -121
  104. package/coverage/clover.xml +368 -331
  105. package/coverage/coverage-final.json +57 -54
  106. package/coverage/lcov-report/InputLabel/index.html +116 -0
  107. package/coverage/lcov-report/InputLabel/index.jsx.html +214 -0
  108. package/coverage/lcov-report/Select/index.html +116 -0
  109. package/coverage/lcov-report/Select/index.jsx.html +391 -0
  110. package/coverage/lcov-report/Textfield/index.html +116 -0
  111. package/coverage/lcov-report/Textfield/index.jsx.html +322 -0
  112. package/coverage/lcov-report/index.html +54 -9
  113. package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
  114. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +84 -78
  115. package/coverage/lcov-report/react/components/Button/index.html +1 -1
  116. package/coverage/lcov-report/react/components/Button/index.js.html +66 -66
  117. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +87 -72
  118. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +23 -23
  119. package/coverage/lcov-report/react/components/Error/error.js.html +21 -21
  120. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  121. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +290 -254
  122. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +212 -182
  123. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +66 -57
  124. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +30 -30
  125. package/coverage/lcov-report/react/components/Footer/footer.js.html +22 -22
  126. package/coverage/lcov-report/react/components/Footer/index.html +1 -1
  127. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +193 -151
  128. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +9 -9
  129. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +60 -45
  130. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +36 -36
  131. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +40 -40
  132. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +348 -207
  133. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +38 -38
  134. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +51 -51
  135. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +30 -30
  136. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +201 -150
  137. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +16 -16
  138. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +58 -49
  139. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +22 -22
  140. package/coverage/lcov-report/react/components/Header/header.js.html +42 -36
  141. package/coverage/lcov-report/react/components/Header/hooks.js.html +58 -37
  142. package/coverage/lcov-report/react/components/Header/index.html +1 -1
  143. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +9 -9
  144. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +49 -49
  145. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +31 -31
  146. package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
  147. package/coverage/lcov-report/react/components/Infotip/index.js.html +2 -2
  148. package/coverage/lcov-report/react/components/InputLabel/index.html +116 -0
  149. package/coverage/lcov-report/react/components/InputLabel/index.jsx.html +214 -0
  150. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +62 -56
  151. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +122 -122
  152. package/coverage/lcov-report/react/components/Modal/index.html +1 -1
  153. package/coverage/lcov-report/react/components/Modal/index.jsx.html +12 -12
  154. package/coverage/lcov-report/react/components/NotificationBanner/index.html +1 -1
  155. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +269 -227
  156. package/coverage/lcov-report/react/components/Pagination/index.html +1 -1
  157. package/coverage/lcov-report/react/components/Pagination/index.jsx.html +195 -162
  158. package/coverage/lcov-report/react/components/SanitizedContent/index.html +1 -1
  159. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +184 -184
  160. package/coverage/lcov-report/react/components/Select/index.html +116 -0
  161. package/coverage/lcov-report/react/components/Select/index.jsx.html +391 -0
  162. package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
  163. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +21 -21
  164. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +257 -221
  165. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +25 -19
  166. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
  167. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +261 -234
  168. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
  169. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +2 -2
  170. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +197 -185
  171. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +236 -197
  172. package/coverage/lcov-report/react/components/SideNav/Content/index.html +1 -1
  173. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +3 -3
  174. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +11 -11
  175. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +42 -36
  176. package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
  177. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +3 -3
  178. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +33 -33
  179. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +45 -45
  180. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +33 -27
  181. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +323 -215
  182. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +100 -94
  183. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +26 -26
  184. package/coverage/lcov-report/react/components/SideNav/Links/index.html +1 -1
  185. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +11 -11
  186. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +363 -303
  187. package/coverage/lcov-report/react/components/SideNav/UI/index.html +1 -1
  188. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +2 -2
  189. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +34 -34
  190. package/coverage/lcov-report/react/components/SideNav/index.html +1 -1
  191. package/coverage/lcov-report/react/components/SideNav/index.js.html +47 -47
  192. package/coverage/lcov-report/react/components/Textfield/index.html +116 -0
  193. package/coverage/lcov-report/react/components/Textfield/index.jsx.html +322 -0
  194. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +58 -58
  195. package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
  196. package/coverage/lcov-report/react/components/Tooltip/index.js.html +2 -2
  197. package/coverage/lcov-report/react/components/Tooltip/position.js.html +60 -36
  198. package/coverage/lcov-report/react/components/hooks/index.html +1 -1
  199. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +84 -57
  200. package/coverage/lcov-report/react/components/index.html +1 -1
  201. package/coverage/lcov-report/react/index.html +1 -1
  202. package/coverage/lcov-report/react/index.js.html +1 -1
  203. package/coverage/lcov-report/react/lib/Chevron.jsx.html +1 -1
  204. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1 -1
  205. package/coverage/lcov-report/react/lib/index.html +1 -1
  206. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
  207. package/coverage/lcov-report/react/session/index.html +1 -1
  208. package/coverage/lcov-report/react/session/index.js.html +1 -1
  209. package/coverage/lcov-report/react/session/logout.js.html +1 -1
  210. package/coverage/lcov-report/react/session/refresh.js.html +1 -1
  211. package/coverage/lcov-report/react/session/ttl.js.html +1 -1
  212. package/coverage/lcov.info +855 -779
  213. package/dist/browser.js +1 -1
  214. package/dist/index.js +1 -1
  215. package/dist/react/index.js +16 -16
  216. package/dist/react/index.js.LICENSE.txt +1 -1
  217. package/dist/react/index.js.map +1 -1
  218. package/package.json +16 -9
  219. package/styles/qppds/components/_button.scss +29 -1
  220. package/test/components/Accordion.test.js +10 -10
  221. package/test/components/ErrorUI.test.js +29 -30
  222. package/test/components/FooterUI.test.js +82 -80
  223. package/test/components/HeaderUI.test.js +42 -38
  224. package/test/components/Infotip.test.js +64 -61
  225. package/test/components/Pagination.test.js +50 -50
  226. package/test/components/Select.test.js +113 -0
  227. package/test/components/SessionDialogUI.test.js +302 -294
  228. package/test/components/SideNavUI.test.js +19 -19
  229. package/test/components/TextField.test.js +50 -0
  230. package/test/components/Tooltip.test.js +133 -133
  231. package/test/index.test.js +6 -6
  232. package/test/session/session.test.js +200 -200
  233. package/storybook-static/0.5651be4a8d0b1984a772.manager.bundle.js +0 -2
  234. package/storybook-static/0.5651be4a8d0b1984a772.manager.bundle.js.LICENSE.txt +0 -8
  235. package/storybook-static/0.ce0ed568.iframe.bundle.js +0 -1
  236. package/storybook-static/1.1b179d27.iframe.bundle.js +0 -3
  237. package/storybook-static/1.1b179d27.iframe.bundle.js.LICENSE.txt +0 -8
  238. package/storybook-static/1.1b179d27.iframe.bundle.js.map +0 -1
  239. package/storybook-static/1.c46d7d065aa0aa5a87ca.manager.bundle.js +0 -1
  240. package/storybook-static/10.99011d85.iframe.bundle.js +0 -3
  241. package/storybook-static/10.99011d85.iframe.bundle.js.LICENSE.txt +0 -11
  242. package/storybook-static/10.99011d85.iframe.bundle.js.map +0 -1
  243. package/storybook-static/2.35ddc55d.iframe.bundle.js +0 -1
  244. package/storybook-static/3.ed97833d.iframe.bundle.js +0 -1
  245. package/storybook-static/5.333e450fad8648669908.manager.bundle.js +0 -1
  246. package/storybook-static/6.505ea3c696ed314e90c8.manager.bundle.js +0 -2
  247. package/storybook-static/6.505ea3c696ed314e90c8.manager.bundle.js.LICENSE.txt +0 -12
  248. package/storybook-static/7.94be8178.iframe.bundle.js +0 -1
  249. package/storybook-static/7.d26483fcb6f4087398a8.manager.bundle.js +0 -1
  250. package/storybook-static/8.68cd1217.iframe.bundle.js +0 -3
  251. package/storybook-static/8.68cd1217.iframe.bundle.js.LICENSE.txt +0 -12
  252. package/storybook-static/8.68cd1217.iframe.bundle.js.map +0 -1
  253. package/storybook-static/8.7adf0ef161215cd35a66.manager.bundle.js +0 -1
  254. package/storybook-static/9.488e3969.iframe.bundle.js +0 -1
  255. package/storybook-static/fonts/FontAwesome.otf +0 -0
  256. package/storybook-static/fonts/OFL.txt +0 -92
  257. package/storybook-static/fonts/Rubik-Black.ttf +0 -0
  258. package/storybook-static/fonts/Rubik-BlackItalic.ttf +0 -0
  259. package/storybook-static/fonts/Rubik-Bold.ttf +0 -0
  260. package/storybook-static/fonts/Rubik-BoldItalic.ttf +0 -0
  261. package/storybook-static/fonts/Rubik-Italic.ttf +0 -0
  262. package/storybook-static/fonts/Rubik-Light.ttf +0 -0
  263. package/storybook-static/fonts/Rubik-LightItalic.ttf +0 -0
  264. package/storybook-static/fonts/Rubik-Medium.ttf +0 -0
  265. package/storybook-static/fonts/Rubik-MediumItalic.ttf +0 -0
  266. package/storybook-static/fonts/Rubik-Regular.ttf +0 -0
  267. package/storybook-static/fonts/fontawesome-webfont.eot +0 -0
  268. package/storybook-static/fonts/fontawesome-webfont.svg +0 -2671
  269. package/storybook-static/fonts/fontawesome-webfont.ttf +0 -0
  270. package/storybook-static/fonts/fontawesome-webfont.woff +0 -0
  271. package/storybook-static/fonts/fontawesome-webfont.woff2 +0 -0
  272. package/storybook-static/iframe.html +0 -348
  273. package/storybook-static/images/favicon/android-chrome-192x192.png +0 -0
  274. package/storybook-static/images/favicon/android-chrome-256x256.png +0 -0
  275. package/storybook-static/images/favicon/apple-touch-icon.png +0 -0
  276. package/storybook-static/images/favicon/browserconfig.xml +0 -9
  277. package/storybook-static/images/favicon/favicon-16x16.png +0 -0
  278. package/storybook-static/images/favicon/favicon-32x32.png +0 -0
  279. package/storybook-static/images/favicon/favicon.ico +0 -0
  280. package/storybook-static/images/favicon/manifest.json +0 -18
  281. package/storybook-static/images/favicon/mstile-150x150.png +0 -0
  282. package/storybook-static/images/favicon/safari-pinned-tab.svg +0 -32
  283. package/storybook-static/images/hhs-logo-black.svg +0 -10
  284. package/storybook-static/images/hhs-logo-white.svg +0 -10
  285. package/storybook-static/images/icons/close-x.svg +0 -6
  286. package/storybook-static/images/icons/help-headset.svg +0 -21
  287. package/storybook-static/images/icons/svg/arrow-down.svg +0 -1
  288. package/storybook-static/images/icons/svg/arrow-download.svg +0 -1
  289. package/storybook-static/images/icons/svg/arrow-right.svg +0 -1
  290. package/storybook-static/images/icons/svg/calendar.svg +0 -1
  291. package/storybook-static/images/icons/svg/close.svg +0 -1
  292. package/storybook-static/images/icons/svg/download.svg +0 -1
  293. package/storybook-static/images/icons/svg/external.svg +0 -1
  294. package/storybook-static/images/icons/svg/file-upload.svg +0 -1
  295. package/storybook-static/images/icons/svg/print.svg +0 -1
  296. package/storybook-static/images/icons/svg/search.svg +0 -7
  297. package/storybook-static/images/icons/svg/tooltip-question.svg +0 -6
  298. package/storybook-static/images/icons/svg/trash.svg +0 -1
  299. package/storybook-static/images/icons/svg/upload.svg +0 -1
  300. package/storybook-static/images/qpp_logo_reversed.png +0 -0
  301. package/storybook-static/images/qpp_logo_rgb_color.png +0 -0
  302. package/storybook-static/index.html +0 -59
  303. package/storybook-static/main.5ae8041695a4f0c06f75.manager.bundle.js +0 -1
  304. package/storybook-static/main.ee2cae16.iframe.bundle.js +0 -1
  305. package/storybook-static/runtime~main.7eeb017b9a4ce6a70a00.manager.bundle.js +0 -1
  306. package/storybook-static/runtime~main.e2794f2d.iframe.bundle.js +0 -1
  307. package/storybook-static/static/media/Bitter-Bold.091bd4b7.woff +0 -0
  308. package/storybook-static/static/media/Bitter-Bold.24bf01e4.woff2 +0 -0
  309. package/storybook-static/static/media/Bitter-Bold.46bc29e4.ttf +0 -0
  310. package/storybook-static/static/media/Bitter-Bold.790f4f2f.eot +0 -0
  311. package/storybook-static/static/media/Bitter-Italic.1fa5390c.eot +0 -0
  312. package/storybook-static/static/media/Bitter-Italic.25e5675f.woff +0 -0
  313. package/storybook-static/static/media/Bitter-Italic.2eb18f5a.ttf +0 -0
  314. package/storybook-static/static/media/Bitter-Italic.34644574.woff2 +0 -0
  315. package/storybook-static/static/media/Bitter-Regular.4b22b6e8.woff +0 -0
  316. package/storybook-static/static/media/Bitter-Regular.559e7075.eot +0 -0
  317. package/storybook-static/static/media/Bitter-Regular.8db0301b.ttf +0 -0
  318. package/storybook-static/static/media/Bitter-Regular.f4e2f1f1.woff2 +0 -0
  319. package/storybook-static/static/media/FontAwesome.91f80bba.otf +0 -0
  320. package/storybook-static/static/media/OpenSans-Bold-webfont.202d819d.eot +0 -0
  321. package/storybook-static/static/media/OpenSans-Bold-webfont.92e570c6.woff2 +0 -0
  322. package/storybook-static/static/media/OpenSans-Bold-webfont.da71e99a.ttf +0 -0
  323. package/storybook-static/static/media/OpenSans-Bold-webfont.e75949bb.woff +0 -0
  324. package/storybook-static/static/media/OpenSans-Italic-webfont.72daa33a.woff2 +0 -0
  325. package/storybook-static/static/media/OpenSans-Italic-webfont.74ead3a8.woff +0 -0
  326. package/storybook-static/static/media/OpenSans-Italic-webfont.ae19388f.eot +0 -0
  327. package/storybook-static/static/media/OpenSans-Italic-webfont.ec7a2746.ttf +0 -0
  328. package/storybook-static/static/media/OpenSans-Regular-webfont.63a5fa7d.woff +0 -0
  329. package/storybook-static/static/media/OpenSans-Regular-webfont.66451be4.ttf +0 -0
  330. package/storybook-static/static/media/OpenSans-Regular-webfont.7882d20f.eot +0 -0
  331. package/storybook-static/static/media/OpenSans-Regular-webfont.ca4dd835.woff2 +0 -0
  332. package/storybook-static/static/media/OpenSans-Semibold-webfont.17ded75f.woff2 +0 -0
  333. package/storybook-static/static/media/OpenSans-Semibold-webfont.2a5adf6c.woff +0 -0
  334. package/storybook-static/static/media/OpenSans-Semibold-webfont.6059fecb.ttf +0 -0
  335. package/storybook-static/static/media/OpenSans-Semibold-webfont.c9808185.eot +0 -0
  336. package/storybook-static/static/media/Rubik-Bold.31bbd4d2.ttf +0 -0
  337. package/storybook-static/static/media/Rubik-Light.c90e2014.ttf +0 -0
  338. package/storybook-static/static/media/Rubik-Medium.5daa89aa.ttf +0 -0
  339. package/storybook-static/static/media/Rubik-Regular.cdf97d58.ttf +0 -0
  340. package/storybook-static/static/media/fontawesome-webfont.1e59d233.ttf +0 -0
  341. package/storybook-static/static/media/fontawesome-webfont.20fd1704.woff2 +0 -0
  342. package/storybook-static/static/media/fontawesome-webfont.8b43027f.eot +0 -0
  343. package/storybook-static/static/media/fontawesome-webfont.f691f37e.woff +0 -0
  344. package/storybook-static/vendors~main.c7e1bdf2e91d9cdba380.manager.bundle.js +0 -2
  345. package/storybook-static/vendors~main.c7e1bdf2e91d9cdba380.manager.bundle.js.LICENSE.txt +0 -104
  346. package/storybook-static/vendors~main.f299a23f.iframe.bundle.js +0 -76
  347. package/storybook-static/vendors~main.f299a23f.iframe.bundle.js.LICENSE.txt +0 -145
  348. package/storybook-static/vendors~main.f299a23f.iframe.bundle.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import React, { useState, useEffect } from 'react';
2
- import { pie, arc } from 'd3-shape';
3
- import { select, event } from 'd3-selection';
4
- import PropTypes from 'prop-types';
1
+ import React, { useState, useEffect } from "react";
2
+ import { pie, arc } from "d3-shape";
3
+ import { select, event } from "d3-selection";
4
+ import PropTypes from "prop-types";
5
5
 
6
6
  const WIDTH = 210;
7
7
  const HEIGHT = 210;
@@ -9,260 +9,269 @@ const RADIUS = Math.min(WIDTH, HEIGHT) / 2;
9
9
  const GAP_VALUE = 2.5;
10
10
 
11
11
  const ScoreChart = ({ performanceYear, chartData, linkCallback }) => {
12
- const [hasLegend, setHasLegend] = useState(false);
13
- const [titleMapping, setTitleMapping] = useState({
14
- quality: 'Quality Measures',
15
- aci: 'Advancing Care Info',
16
- pi: 'Promoting Interoperability',
17
- ia: 'Improvement Activities',
18
- cost: 'Cost',
19
- });
12
+ const [hasLegend, setHasLegend] = useState(false);
13
+ const [titleMapping, setTitleMapping] = useState({
14
+ quality: "Quality Measures",
15
+ aci: "Advancing Care Info",
16
+ pi: "Promoting Interoperability",
17
+ ia: "Improvement Activities",
18
+ cost: "Cost",
19
+ });
20
20
 
21
- const { categories } = chartData;
22
- let legendToggler;
23
- let legend;
21
+ const { categories } = chartData;
22
+ let legendToggler;
23
+ let legend;
24
24
 
25
- const getAdvancingCareLabel = () => {
26
- if (performanceYear > 2017) {
27
- setTitleMapping({ ...titleMapping, aci: 'Promoting Interoperability' });
28
- }
29
- };
25
+ const getAdvancingCareLabel = () => {
26
+ if (performanceYear > 2017) {
27
+ setTitleMapping({
28
+ ...titleMapping,
29
+ aci: "Promoting Interoperability",
30
+ });
31
+ }
32
+ };
30
33
 
31
- const redirectToCategory = (link, categoryId) => {
32
- if (!link) {
33
- return;
34
- }
34
+ const redirectToCategory = (link, categoryId) => {
35
+ if (!link) {
36
+ return;
37
+ }
35
38
 
36
- // track explicitly chart legends
37
- if (window.utag) {
38
- window.utag.track('link', {
39
- ga_event_category: 'SidebarNav',
40
- ga_event_action: `GoTo${categoryId}`,
41
- ga_event_label: categoryId,
42
- });
43
- }
39
+ // track explicitly chart legends
40
+ if (window.utag) {
41
+ window.utag.track("link", {
42
+ ga_event_category: "SidebarNav",
43
+ ga_event_action: `GoTo${categoryId}`,
44
+ ga_event_label: categoryId,
45
+ });
46
+ }
44
47
 
45
- if (linkCallback) {
46
- linkCallback(link);
47
- } else {
48
- window.location.href = link;
49
- }
50
- };
48
+ if (linkCallback) {
49
+ linkCallback(link);
50
+ } else {
51
+ window.location.href = link;
52
+ }
53
+ };
51
54
 
52
- const draw = (chartData) => {
53
- const scorePie = pie().sort(null);
55
+ const draw = (chartData) => {
56
+ const scorePie = pie().sort(null);
54
57
 
55
- // Removing invalid categories
56
- const categories = chartData.categories.filter(
57
- ({ maxContribution }) => !!maxContribution
58
- );
58
+ // Removing invalid categories
59
+ const categories = chartData.categories.filter(
60
+ ({ maxContribution }) => !!maxContribution
61
+ );
59
62
 
60
- // Calculating the sum of valid categories in order to calculate ratios
61
- const categorySum = categories
62
- .map(({ maxContribution }) => maxContribution)
63
- .reduce((sum, current) => sum + current);
63
+ // Calculating the sum of valid categories in order to calculate ratios
64
+ const categorySum = categories
65
+ .map(({ maxContribution }) => maxContribution)
66
+ .reduce((sum, current) => sum + current);
64
67
 
65
- if (!categorySum) {
66
- return;
67
- }
68
+ if (!categorySum) {
69
+ return;
70
+ }
68
71
 
69
- select('.score-chart').selectAll('*').remove();
72
+ select(".score-chart").selectAll("*").remove();
70
73
 
71
- const svg = select('.score-chart')
72
- .attr('width', WIDTH)
73
- .attr('height', HEIGHT);
74
+ const svg = select(".score-chart")
75
+ .attr("width", WIDTH)
76
+ .attr("height", HEIGHT);
74
77
 
75
- const chartArc = arc()
76
- .innerRadius(RADIUS - 1.5)
77
- .outerRadius(RADIUS - 25);
78
+ const chartArc = arc()
79
+ .innerRadius(RADIUS - 1.5)
80
+ .outerRadius(RADIUS - 25);
78
81
 
79
- // Preparing the data structure with ratios: [ FILLED, EMPTY, TRANSPARENT, FILLED, EMPTY, ... ]
80
- let data;
81
- if (categories.length === 0) {
82
- data = [];
83
- } else if (categories.length === 1) {
84
- const { value, maxContribution } = categories[0];
85
- data = [value || 0, maxContribution - value];
86
- } else {
87
- data = categories
88
- .map(({ value, maxContribution }) => [
89
- value || 0,
90
- maxContribution - value,
91
- GAP_VALUE * (categorySum / 100),
92
- ])
93
- .reduce((a, b) => a.concat(b), []);
94
- }
82
+ // Preparing the data structure with ratios: [ FILLED, EMPTY, TRANSPARENT, FILLED, EMPTY, ... ]
83
+ let data;
84
+ if (categories.length === 0) {
85
+ data = [];
86
+ } else if (categories.length === 1) {
87
+ const { value, maxContribution } = categories[0];
88
+ data = [value || 0, maxContribution - value];
89
+ } else {
90
+ data = categories
91
+ .map(({ value, maxContribution }) => [
92
+ value || 0,
93
+ maxContribution - value,
94
+ GAP_VALUE * (categorySum / 100),
95
+ ])
96
+ .reduce((a, b) => a.concat(b), []);
97
+ }
95
98
 
96
- svg.append('title').attr('id', 'titleID').text('Your submission score');
99
+ svg.append("title").attr("id", "titleID").text("Your submission score");
97
100
 
98
- svg
99
- .append('desc')
100
- .attr('id', 'descID')
101
- .text(`${chartData.finalScore} out of 100`);
101
+ svg.append("desc")
102
+ .attr("id", "descID")
103
+ .text(`${chartData.finalScore} out of 100`);
102
104
 
103
- // Setting up the arcs
104
- let arcs = svg
105
- .append('g')
106
- .attr('class', 'arcs')
107
- .attr('role', 'presentation')
108
- .selectAll('g.arc')
109
- .data(scorePie(data))
110
- .enter()
111
- .append('g')
112
- .attr('class', (d, i) => {
113
- let role;
114
- if (i % 3 === 0) {
115
- role = 'filled';
116
- } else if (i % 3 === 1) {
117
- role = 'empty';
118
- } else {
119
- role = 'transparent';
120
- }
121
- return `arc ${categories[parseInt(i / 3)].name} ${role}`;
122
- })
123
- .attr('transform', `translate(${RADIUS}, ${RADIUS})`)
124
- // For accessibility, we add keyboard access to the filled slices
125
- .attr('tabindex', (d, i) => {
126
- let tabindex = -1;
127
- if (i % 3 === 0) {
128
- tabindex = 0;
129
- }
130
- return tabindex;
131
- })
132
- // IE for for focusable svg elements
133
- .attr('focusable', (d, i) => {
134
- if (i % 3 === 0) {
135
- return true;
136
- }
137
- })
138
- // For accessibility, we add keyboard access to the filled slices
139
- .on('keyup', (d, i) => {
140
- const code = event.keyCode || event.which;
141
- if (code === 13) {
142
- const { name, link } = categories[parseInt(i / 3)];
143
- redirectToCategory(link, name);
144
- }
145
- })
146
- // On click - go to category page
147
- .on('click', (d, i) => {
148
- const { name, link } = categories[parseInt(i / 3)];
149
- redirectToCategory(link, name);
150
- });
105
+ // Setting up the arcs
106
+ let arcs = svg
107
+ .append("g")
108
+ .attr("class", "arcs")
109
+ .attr("role", "presentation")
110
+ .selectAll("g.arc")
111
+ .data(scorePie(data))
112
+ .enter()
113
+ .append("g")
114
+ .attr("class", (d, i) => {
115
+ let role;
116
+ if (i % 3 === 0) {
117
+ role = "filled";
118
+ } else if (i % 3 === 1) {
119
+ role = "empty";
120
+ } else {
121
+ role = "transparent";
122
+ }
123
+ return `arc ${categories[parseInt(i / 3)].name} ${role}`;
124
+ })
125
+ .attr("transform", `translate(${RADIUS}, ${RADIUS})`)
126
+ // For accessibility, we add keyboard access to the filled slices
127
+ .attr("tabindex", (d, i) => {
128
+ let tabindex = -1;
129
+ if (i % 3 === 0) {
130
+ tabindex = 0;
131
+ }
132
+ return tabindex;
133
+ })
134
+ // IE for for focusable svg elements
135
+ .attr("focusable", (d, i) => {
136
+ if (i % 3 === 0) {
137
+ return true;
138
+ }
139
+ })
140
+ // For accessibility, we add keyboard access to the filled slices
141
+ .on("keyup", (d, i) => {
142
+ const code = event.keyCode || event.which;
143
+ if (code === 13) {
144
+ const { name, link } = categories[parseInt(i / 3)];
145
+ redirectToCategory(link, name);
146
+ }
147
+ })
148
+ // On click - go to category page
149
+ .on("click", (d, i) => {
150
+ const { name, link } = categories[parseInt(i / 3)];
151
+ redirectToCategory(link, name);
152
+ });
151
153
 
152
- // Add accessibility description
153
- arcs.append('desc').text((d, i) => {
154
- if (i % 3 === 0) {
155
- const { name, value, maxContribution } = categories[parseInt(i / 3)];
156
- return `${titleMapping[name]} ${value} out of ${maxContribution}`;
157
- }
158
- });
154
+ // Add accessibility description
155
+ arcs.append("desc").text((d, i) => {
156
+ if (i % 3 === 0) {
157
+ const { name, value, maxContribution } =
158
+ categories[parseInt(i / 3)];
159
+ return `${titleMapping[name]} ${value} out of ${maxContribution}`;
160
+ }
161
+ });
162
+
163
+ arcs.append("path")
164
+ .attr("d", chartArc)
165
+ // On mouse over - show category tooltip
166
+ .on("mouseover", (d, i) => {
167
+ const { name, value, maxContribution } =
168
+ categories[parseInt(i / 3)];
169
+ select(".chart-tooltip")
170
+ .style("opacity", 1)
171
+ .text(`${titleMapping[name]} ${value}/${maxContribution}`);
172
+ })
173
+ // On mouse move - move category tooltip
174
+ .on("mousemove", () => {
175
+ select(".chart-tooltip")
176
+ .style("top", event.clientY - HEIGHT + 10 + "px")
177
+ .style("left", event.clientX + "px");
178
+ })
179
+ // On mouse out - hide category tooltip
180
+ .on("mouseout", () => {
181
+ select(".chart-tooltip").style("opacity", 0);
182
+ });
159
183
 
160
- arcs
161
- .append('path')
162
- .attr('d', chartArc)
163
- // On mouse over - show category tooltip
164
- .on('mouseover', (d, i) => {
165
- const { name, value, maxContribution } = categories[parseInt(i / 3)];
166
- select('.chart-tooltip')
167
- .style('opacity', 1)
168
- .text(`${titleMapping[name]} ${value}/${maxContribution}`);
169
- })
170
- // On mouse move - move category tooltip
171
- .on('mousemove', () => {
172
- select('.chart-tooltip')
173
- .style('top', event.clientY - HEIGHT + 10 + 'px')
174
- .style('left', event.clientX + 'px');
175
- })
176
- // On mouse out - hide category tooltip
177
- .on('mouseout', () => {
178
- select('.chart-tooltip').style('opacity', 0);
179
- });
184
+ // Adding title and subtitle
185
+ const text = svg
186
+ .append("g")
187
+ .attr("text-anchor", "middle")
188
+ .attr("transform", `translate(${WIDTH / 2}, ${HEIGHT / 2})`);
180
189
 
181
- // Adding title and subtitle
182
- const text = svg
183
- .append('g')
184
- .attr('text-anchor', 'middle')
185
- .attr('transform', `translate(${WIDTH / 2}, ${HEIGHT / 2})`);
190
+ // Adding title - X%
191
+ text.append("text")
192
+ .attr("y", 4)
193
+ .attr("class", "chart-title")
194
+ .text(chartData.finalScore);
186
195
 
187
- // Adding title - X%
188
- text
189
- .append('text')
190
- .attr('y', 4)
191
- .attr('class', 'chart-title')
192
- .text(chartData.finalScore);
196
+ // Adding subtitle - OUT OF 100
197
+ text.append("text")
198
+ .attr("y", 24)
199
+ .attr("class", "chart-subtitle")
200
+ .text("OUT OF 100");
201
+ };
193
202
 
194
- // Adding subtitle - OUT OF 100
195
- text
196
- .append('text')
197
- .attr('y', 24)
198
- .attr('class', 'chart-subtitle')
199
- .text('OUT OF 100');
200
- };
203
+ const toggleLegend = () => {
204
+ setHasLegend(!hasLegend);
205
+ };
201
206
 
202
- const toggleLegend = () => {
203
- setHasLegend(!hasLegend);
204
- };
207
+ useEffect(() => {
208
+ if (chartData?.finalScore) {
209
+ draw(chartData);
210
+ getAdvancingCareLabel();
211
+ }
212
+ }, [chartData?.finalScore]);
205
213
 
206
- useEffect(() => {
207
- if (chartData?.finalScore) {
208
- draw(chartData);
209
- getAdvancingCareLabel();
214
+ if (hasLegend) {
215
+ legendToggler = (
216
+ <button className="open" type="button" aria-pressed="true">
217
+ Hide Legend
218
+ <svg
219
+ className="right-icon rotated"
220
+ aria-hidden="true"
221
+ focusable="false"
222
+ >
223
+ <use xlinkHref="#chevron-down" />
224
+ </svg>
225
+ </button>
226
+ );
227
+ legend = categories.map(
228
+ ({ name, value, maxContribution, link }, index) => {
229
+ return (
230
+ <li key={name} className="legend-axis">
231
+ <button onClick={() => redirectToCategory(link, name)}>
232
+ <span className={`legend-axis-color ${name}`} />
233
+ &nbsp;
234
+ <span className="legend-axis-title">
235
+ {titleMapping[name]}
236
+ </span>
237
+ &nbsp;
238
+ <span className="legend-axis-value">{`${value}/${maxContribution}`}</span>
239
+ </button>
240
+ </li>
241
+ );
242
+ }
243
+ );
244
+ } else {
245
+ legendToggler = (
246
+ <button type="button" aria-pressed="false">
247
+ Show Legend
248
+ <svg
249
+ className="right-icon"
250
+ aria-hidden="true"
251
+ focusable="false"
252
+ >
253
+ <use xlinkHref="#chevron-down" />
254
+ </svg>
255
+ </button>
256
+ );
210
257
  }
211
- }, [chartData?.finalScore]);
212
258
 
213
- if (hasLegend) {
214
- legendToggler = (
215
- <button className="open" type="button" aria-pressed="true">
216
- Hide Legend
217
- <svg
218
- className="right-icon rotated"
219
- aria-hidden="true"
220
- focusable="false"
221
- >
222
- <use xlinkHref="#chevron-down" />
223
- </svg>
224
- </button>
259
+ return (
260
+ <div className="chart">
261
+ <svg className="score-chart" focusable="false" />
262
+ <div className="chart-tooltip off" />
263
+ <div className="chart-legend-toggler" onClick={toggleLegend}>
264
+ {legendToggler}
265
+ </div>
266
+ <ul className="chart-legend">{legend}</ul>
267
+ </div>
225
268
  );
226
- legend = categories.map(({ name, value, maxContribution, link }, index) => {
227
- return (
228
- <li key={name} className="legend-axis">
229
- <button onClick={() => redirectToCategory(link, name)}>
230
- <span className={`legend-axis-color ${name}`} />
231
- &nbsp;
232
- <span className="legend-axis-title">{titleMapping[name]}</span>
233
- &nbsp;
234
- <span className="legend-axis-value">{`${value}/${maxContribution}`}</span>
235
- </button>
236
- </li>
237
- );
238
- });
239
- } else {
240
- legendToggler = (
241
- <button type="button" aria-pressed="false">
242
- Show Legend
243
- <svg className="right-icon" aria-hidden="true" focusable="false">
244
- <use xlinkHref="#chevron-down" />
245
- </svg>
246
- </button>
247
- );
248
- }
249
-
250
- return (
251
- <div className="chart">
252
- <svg className="score-chart" focusable="false" />
253
- <div className="chart-tooltip off" />
254
- <div className="chart-legend-toggler" onClick={toggleLegend}>
255
- {legendToggler}
256
- </div>
257
- <ul className="chart-legend">{legend}</ul>
258
- </div>
259
- );
260
269
  };
261
270
 
262
271
  ScoreChart.propTypes = {
263
- chartData: PropTypes.object,
264
- linkCallback: PropTypes.func,
265
- performanceYear: PropTypes.number,
272
+ chartData: PropTypes.object,
273
+ linkCallback: PropTypes.func,
274
+ performanceYear: PropTypes.number,
266
275
  };
267
276
 
268
277
  export default ScoreChart;
@@ -1,22 +1,22 @@
1
1
  /* global expect */
2
- import React from 'react';
3
- import { render } from '@testing-library/react';
4
- import ScoreChart from '../ScoreChart';
2
+ import React from "react";
3
+ import { render } from "@testing-library/react";
4
+ import ScoreChart from "../ScoreChart";
5
5
 
6
6
  const CHART_DATA = {
7
- finalScore: 50,
8
- submissionId: 'x',
9
- categories: [
10
- { name: 'quality', value: 30, maxContribution: 60 },
11
- { name: 'aci', value: 15, maxContribution: 30 },
12
- { name: 'ia', value: 5, maxContribution: 10 },
13
- ],
7
+ finalScore: 50,
8
+ submissionId: "x",
9
+ categories: [
10
+ { name: "quality", value: 30, maxContribution: 60 },
11
+ { name: "aci", value: 15, maxContribution: 30 },
12
+ { name: "ia", value: 5, maxContribution: 10 },
13
+ ],
14
14
  };
15
15
 
16
- describe('ScoreChart component', () => {
17
- it('should match snapshot', () => {
18
- const { container } = render(<ScoreChart chartData={CHART_DATA} />);
16
+ describe("ScoreChart component", () => {
17
+ it("should match snapshot", () => {
18
+ const { container } = render(<ScoreChart chartData={CHART_DATA} />);
19
19
 
20
- expect(container).toMatchSnapshot();
21
- });
20
+ expect(container).toMatchSnapshot();
21
+ });
22
22
  });
@@ -1,3 +1,3 @@
1
- import ScoreChart from './ScoreChart';
1
+ import ScoreChart from "./ScoreChart";
2
2
 
3
3
  export { ScoreChart };