qpp-style 1.2.0-rm.1 → 1.3.0-rm.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 (317) hide show
  1. package/README.md +37 -0
  2. package/components/Breadcrumb/Breadcrumb.stories.js +18 -0
  3. package/components/Breadcrumb/index.js +4 -4
  4. package/components/Dropdown/Dropdown.stories.js +94 -0
  5. package/components/Dropdown/index.js +85 -0
  6. package/components/DropdownButton/DropdownButton.stories.js +137 -0
  7. package/components/DropdownButton/index.js +148 -0
  8. package/components/Footer/Footer.stories.js +2 -2
  9. package/components/Footer/FooterUI.jsx +162 -152
  10. package/components/GovBanner/index.js +109 -0
  11. package/components/Header/HeaderContainer.jsx +6 -1
  12. package/components/Header/HeaderUI.jsx +7 -0
  13. package/components/Header/ImpersonatorBanner.jsx +82 -0
  14. package/components/Header/header.js +2 -0
  15. package/components/Infotip/InfotipIcon.jsx +3 -3
  16. package/components/Link/Link.stories.js +81 -0
  17. package/components/Link/index.js +61 -0
  18. package/components/Search/index.js +45 -32
  19. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +7 -2
  20. package/components/SideNav/Content/LevelOneContent.jsx +42 -4
  21. package/components/SideNav/Content/LevelTwoContent.jsx +2 -0
  22. package/components/SideNav/Details/PracticeDetails.jsx +4 -0
  23. package/components/SideNav/Links/NavLinkDrawer.jsx +75 -12
  24. package/components/SideNav/SideNav.stories.js +30 -0
  25. package/components/SideNav/UI/SideNavUI.jsx +15 -3
  26. package/components/SideNav/UI/default-content.json +24 -2
  27. package/components/SideNav/helpers.js +4 -2
  28. package/components/Tabs/Tab.js +18 -58
  29. package/components/Tabs/TabPanel.js +13 -19
  30. package/components/Tabs/Tabs.stories.js +1 -1
  31. package/components/Tabs/index.js +68 -108
  32. package/components/index.js +4 -0
  33. package/dist/browser.js +1 -1
  34. package/dist/browser.js.LICENSE.txt +19 -2
  35. package/dist/browser.js.map +1 -1
  36. package/dist/index.js +1 -1
  37. package/dist/index.js.LICENSE.txt +19 -2
  38. package/dist/index.js.map +1 -1
  39. package/dist/react/index.js +1 -1
  40. package/dist/react/index.js.LICENSE.txt +27 -1
  41. package/dist/react/index.js.map +1 -1
  42. package/fonts/PublicSans-Black.ttf +0 -0
  43. package/fonts/PublicSans-BlackItalic.ttf +0 -0
  44. package/fonts/PublicSans-Bold.ttf +0 -0
  45. package/fonts/PublicSans-BoldItalic.ttf +0 -0
  46. package/fonts/PublicSans-ExtraBold.ttf +0 -0
  47. package/fonts/PublicSans-ExtraBoldItalic.ttf +0 -0
  48. package/fonts/PublicSans-ExtraLight.ttf +0 -0
  49. package/fonts/PublicSans-ExtraLightItalic.ttf +0 -0
  50. package/fonts/PublicSans-Italic.ttf +0 -0
  51. package/fonts/PublicSans-Light.ttf +0 -0
  52. package/fonts/PublicSans-LightItalic.ttf +0 -0
  53. package/fonts/PublicSans-Medium.ttf +0 -0
  54. package/fonts/PublicSans-MediumItalic.ttf +0 -0
  55. package/fonts/PublicSans-Regular.ttf +0 -0
  56. package/fonts/PublicSans-SemiBold.ttf +0 -0
  57. package/fonts/PublicSans-SemiBoldItalic.ttf +0 -0
  58. package/fonts/PublicSans-Thin.ttf +0 -0
  59. package/fonts/PublicSans-ThinItalic.ttf +0 -0
  60. package/images/icon-dot-gov.svg +1 -0
  61. package/images/icon-https.svg +1 -0
  62. package/images/icons/svg/arrow-down.svg +1 -3
  63. package/images/icons/svg/arrow-download.svg +1 -5
  64. package/images/icons/svg/arrow-right.svg +1 -5
  65. package/images/icons/svg/calendar.svg +1 -0
  66. package/images/icons/svg/close.svg +1 -3
  67. package/images/icons/svg/download.svg +1 -1
  68. package/images/icons/svg/dropdown-arrow.svg +1 -0
  69. package/images/icons/svg/external.svg +1 -4
  70. package/images/icons/svg/file-download.svg +1 -0
  71. package/images/icons/svg/file-upload.svg +1 -1
  72. package/images/icons/svg/print.svg +1 -4
  73. package/images/icons/svg/search.svg +1 -0
  74. package/images/icons/svg/tooltip-question.svg +1 -0
  75. package/images/icons/svg/trash.svg +1 -5
  76. package/images/icons/svg/upload.svg +1 -3
  77. package/images/us_flag_small.png +0 -0
  78. package/package.json +42 -44
  79. package/session/logout.js +35 -2
  80. package/styles/_main.scss +1 -0
  81. package/styles/components/_text.scss +102 -102
  82. package/styles/qppds/base/_fonts.scss +24 -0
  83. package/styles/qppds/base/_icon.scss +23 -0
  84. package/styles/qppds/base/_typography.scss +55 -47
  85. package/styles/qppds/base/index.scss +2 -6
  86. package/styles/qppds/components/_breadcrumbs.scss +16 -5
  87. package/styles/qppds/components/_button.scss +14 -4
  88. package/styles/qppds/components/_circular-loader.scss +47 -0
  89. package/styles/qppds/components/_dropdown-menu.scss +119 -0
  90. package/styles/qppds/components/_dropdown.scss +4 -0
  91. package/styles/qppds/components/_footer.scss +7 -0
  92. package/styles/qppds/components/_gov-banner.scss +344 -0
  93. package/styles/qppds/components/_header.scss +3 -1
  94. package/styles/qppds/components/_link.scss +2 -2
  95. package/styles/qppds/components/_modal.scss +37 -1
  96. package/styles/qppds/components/_page-header.scss +1 -0
  97. package/styles/qppds/components/_pagination.scss +227 -0
  98. package/styles/qppds/components/_search.scss +3 -1
  99. package/styles/qppds/components/_step-indicator.scss +190 -0
  100. package/styles/qppds/components/_table.scss +19 -1
  101. package/styles/qppds/components/_tabs.scss +44 -1
  102. package/styles/qppds/components/_text-input.scss +1 -1
  103. package/styles/qppds/components/index.scss +5 -0
  104. package/styles/qppds/components/sidebar/_links.scss +34 -0
  105. package/styles/qppds/components/sidebar/_sidebar-animation.scss +4 -0
  106. package/styles/qppds/components/sidebar/_sidebar.scss +5 -0
  107. package/styles/qppds/settings/_functions.scss +1 -1
  108. package/styles/qppds/settings/mixins/_icons.scss +29 -2
  109. package/styles/qppds/settings/mixins/_index.scss +1 -0
  110. package/styles/qppds/settings/mixins/_type.scss +65 -0
  111. package/styles/qppds/settings/variables/_type.scss +3 -0
  112. package/styles/qppds/utilities/_color.scss +4 -0
  113. package/styles/qppds/utilities/_height.scss +38 -0
  114. package/styles/qppds/utilities/_text-transform.scss +1 -1
  115. package/styles/qppds/utilities/_vertical-align.scss +72 -0
  116. package/styles/qppds/utilities/_width.scss +35 -0
  117. package/styles/qppds/utilities/index.scss +2 -0
  118. package/test/components/Infotip.test.js +1 -1
  119. package/test-setup.js +0 -4
  120. package/Session.vim +0 -83
  121. package/coverage/clover.xml +0 -1218
  122. package/coverage/coverage-final.json +0 -67
  123. package/coverage/lcov-report/Accordion/index.html +0 -111
  124. package/coverage/lcov-report/Accordion/index.jsx.html +0 -389
  125. package/coverage/lcov-report/Error/Collapsible.jsx.html +0 -344
  126. package/coverage/lcov-report/Error/ErrorUI.jsx.html +0 -173
  127. package/coverage/lcov-report/Error/index.html +0 -111
  128. package/coverage/lcov-report/ErrorUI.jsx.html +0 -173
  129. package/coverage/lcov-report/HeaderUI.jsx.html +0 -593
  130. package/coverage/lcov-report/ScoreChart.jsx.html +0 -1025
  131. package/coverage/lcov-report/SideNav/Chart/ScoreChart.jsx.html +0 -884
  132. package/coverage/lcov-report/SideNav/Chart/index.html +0 -111
  133. package/coverage/lcov-report/base.css +0 -224
  134. package/coverage/lcov-report/block-navigation.js +0 -79
  135. package/coverage/lcov-report/components/Accordion/index.html +0 -111
  136. package/coverage/lcov-report/components/Accordion/index.jsx.html +0 -389
  137. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +0 -344
  138. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +0 -179
  139. package/coverage/lcov-report/components/Error/index.html +0 -126
  140. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +0 -710
  141. package/coverage/lcov-report/components/Footer/LegacyFooterUI.jsx.html +0 -668
  142. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +0 -302
  143. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +0 -182
  144. package/coverage/lcov-report/components/Footer/index.html +0 -156
  145. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +0 -794
  146. package/coverage/lcov-report/components/Header/HeaderCancel.jsx.html +0 -137
  147. package/coverage/lcov-report/components/Header/HeaderUI.jsx.html +0 -1142
  148. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +0 -161
  149. package/coverage/lcov-report/components/Header/index.html +0 -156
  150. package/coverage/lcov-report/components/InfoModal/index.html +0 -111
  151. package/coverage/lcov-report/components/InfoModal/index.jsx.html +0 -401
  152. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +0 -305
  153. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +0 -203
  154. package/coverage/lcov-report/components/Infotip/index.html +0 -141
  155. package/coverage/lcov-report/components/Infotip/index.js.html +0 -89
  156. package/coverage/lcov-report/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -1010
  157. package/coverage/lcov-report/components/NotificationBanner/index.html +0 -111
  158. package/coverage/lcov-report/components/SanitizedContent/index.html +0 -111
  159. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +0 -260
  160. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +0 -863
  161. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -131
  162. package/coverage/lcov-report/components/SideNav/AnimationGroup/index.html +0 -111
  163. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +0 -1025
  164. package/coverage/lcov-report/components/SideNav/Chart/index.html +0 -126
  165. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -89
  166. package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +0 -1007
  167. package/coverage/lcov-report/components/SideNav/Content/LevelTwoContent.jsx.html +0 -728
  168. package/coverage/lcov-report/components/SideNav/Content/index.html +0 -141
  169. package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -92
  170. package/coverage/lcov-report/components/SideNav/Details/IndividualDetails.jsx.html +0 -143
  171. package/coverage/lcov-report/components/SideNav/Details/PracticeDetails.jsx.html +0 -203
  172. package/coverage/lcov-report/components/SideNav/Details/index.html +0 -141
  173. package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -92
  174. package/coverage/lcov-report/components/SideNav/Links/CmsSwitchLink.jsx.html +0 -200
  175. package/coverage/lcov-report/components/SideNav/Links/NavItemInline.jsx.html +0 -242
  176. package/coverage/lcov-report/components/SideNav/Links/NavLinkContainer.jsx.html +0 -200
  177. package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +0 -779
  178. package/coverage/lcov-report/components/SideNav/Links/NavLinkInline.jsx.html +0 -356
  179. package/coverage/lcov-report/components/SideNav/Links/NavLinkToggle.jsx.html +0 -179
  180. package/coverage/lcov-report/components/SideNav/Links/index.html +0 -201
  181. package/coverage/lcov-report/components/SideNav/Links/index.js.html +0 -119
  182. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1298
  183. package/coverage/lcov-report/components/SideNav/UI/index.html +0 -126
  184. package/coverage/lcov-report/components/SideNav/UI/index.js.html +0 -89
  185. package/coverage/lcov-report/components/SideNav/helpers.js.html +0 -197
  186. package/coverage/lcov-report/components/SideNav/index.html +0 -111
  187. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +0 -344
  188. package/coverage/lcov-report/components/Tooltip/index.html +0 -141
  189. package/coverage/lcov-report/components/Tooltip/index.js.html +0 -89
  190. package/coverage/lcov-report/components/Tooltip/position.js.html +0 -296
  191. package/coverage/lcov-report/components/index.html +0 -111
  192. package/coverage/lcov-report/favicon.png +0 -0
  193. package/coverage/lcov-report/index.html +0 -426
  194. package/coverage/lcov-report/lib/index.html +0 -111
  195. package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -1319
  196. package/coverage/lcov-report/prettify.css +0 -1
  197. package/coverage/lcov-report/prettify.js +0 -2
  198. package/coverage/lcov-report/react/components/Accordion/index.html +0 -111
  199. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +0 -359
  200. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +0 -344
  201. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +0 -173
  202. package/coverage/lcov-report/react/components/Error/error.js.html +0 -158
  203. package/coverage/lcov-report/react/components/Error/index.html +0 -141
  204. package/coverage/lcov-report/react/components/FlashNotification/FlashNotificationUI.jsx.html +0 -296
  205. package/coverage/lcov-report/react/components/FlashNotification/index.html +0 -126
  206. package/coverage/lcov-report/react/components/FlashNotification/index.js.html +0 -170
  207. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +0 -845
  208. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +0 -662
  209. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +0 -260
  210. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +0 -182
  211. package/coverage/lcov-report/react/components/Footer/footer.js.html +0 -170
  212. package/coverage/lcov-report/react/components/Footer/index.html +0 -171
  213. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +0 -587
  214. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +0 -128
  215. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +0 -266
  216. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +0 -206
  217. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +0 -230
  218. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +0 -758
  219. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +0 -230
  220. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +0 -266
  221. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +0 -191
  222. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +0 -557
  223. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +0 -170
  224. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +0 -161
  225. package/coverage/lcov-report/react/components/Header/header.js.html +0 -194
  226. package/coverage/lcov-report/react/components/Header/hooks.js.html +0 -236
  227. package/coverage/lcov-report/react/components/Header/index.html +0 -321
  228. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +0 -110
  229. package/coverage/lcov-report/react/components/InfoModal/index.html +0 -111
  230. package/coverage/lcov-report/react/components/InfoModal/index.jsx.html +0 -392
  231. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +0 -305
  232. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +0 -203
  233. package/coverage/lcov-report/react/components/Infotip/index.html +0 -141
  234. package/coverage/lcov-report/react/components/Infotip/index.js.html +0 -89
  235. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +0 -296
  236. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +0 -500
  237. package/coverage/lcov-report/react/components/Modal/index.html +0 -141
  238. package/coverage/lcov-report/react/components/Modal/index.jsx.html +0 -146
  239. package/coverage/lcov-report/react/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -926
  240. package/coverage/lcov-report/react/components/NotificationBanner/index.html +0 -111
  241. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +0 -875
  242. package/coverage/lcov-report/react/components/SanitizedContent/index.html +0 -111
  243. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +0 -680
  244. package/coverage/lcov-report/react/components/SessionDialog/index.html +0 -111
  245. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +0 -158
  246. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +0 -863
  247. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -140
  248. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +0 -111
  249. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +0 -884
  250. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +0 -126
  251. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +0 -89
  252. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +0 -1007
  253. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +0 -722
  254. package/coverage/lcov-report/react/components/SideNav/Content/index.html +0 -141
  255. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +0 -92
  256. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +0 -134
  257. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +0 -203
  258. package/coverage/lcov-report/react/components/SideNav/Details/index.html +0 -141
  259. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +0 -92
  260. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +0 -203
  261. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +0 -242
  262. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +0 -209
  263. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +0 -659
  264. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +0 -401
  265. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +0 -182
  266. package/coverage/lcov-report/react/components/SideNav/Links/index.html +0 -201
  267. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +0 -119
  268. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +0 -1103
  269. package/coverage/lcov-report/react/components/SideNav/UI/index.html +0 -126
  270. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +0 -89
  271. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +0 -221
  272. package/coverage/lcov-report/react/components/SideNav/index.html +0 -126
  273. package/coverage/lcov-report/react/components/SideNav/index.js.html +0 -239
  274. package/coverage/lcov-report/react/components/Spinner/index.html +0 -111
  275. package/coverage/lcov-report/react/components/Spinner/index.js.html +0 -107
  276. package/coverage/lcov-report/react/components/Tabs/TabsUI.jsx.html +0 -443
  277. package/coverage/lcov-report/react/components/Tabs/index.html +0 -126
  278. package/coverage/lcov-report/react/components/Tabs/tabs.js.html +0 -188
  279. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +0 -344
  280. package/coverage/lcov-report/react/components/Tooltip/index.html +0 -141
  281. package/coverage/lcov-report/react/components/Tooltip/index.js.html +0 -89
  282. package/coverage/lcov-report/react/components/Tooltip/position.js.html +0 -284
  283. package/coverage/lcov-report/react/components/hooks/index.html +0 -111
  284. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +0 -302
  285. package/coverage/lcov-report/react/components/index.html +0 -111
  286. package/coverage/lcov-report/react/index.html +0 -111
  287. package/coverage/lcov-report/react/index.js.html +0 -173
  288. package/coverage/lcov-report/react/lib/Chevron.jsx.html +0 -161
  289. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +0 -1697
  290. package/coverage/lcov-report/react/lib/index.html +0 -141
  291. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +0 -455
  292. package/coverage/lcov-report/react/session/index.html +0 -156
  293. package/coverage/lcov-report/react/session/index.js.html +0 -95
  294. package/coverage/lcov-report/react/session/logout.js.html +0 -203
  295. package/coverage/lcov-report/react/session/refresh.js.html +0 -227
  296. package/coverage/lcov-report/react/session/ttl.js.html +0 -191
  297. package/coverage/lcov-report/session/index.html +0 -126
  298. package/coverage/lcov-report/session/index.js.html +0 -95
  299. package/coverage/lcov-report/session/logout.js.html +0 -203
  300. package/coverage/lcov-report/session/refresh.js.html +0 -227
  301. package/coverage/lcov-report/session/ttl.js.html +0 -191
  302. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  303. package/coverage/lcov-report/sorter.js +0 -170
  304. package/coverage/lcov.info +0 -2704
  305. package/styles/components/_footer.scss +0 -593
  306. package/styles/components/_header.scss +0 -887
  307. package/styles/components/_header_backup.scss +0 -574
  308. package/styles/components/_sidebar.scss +0 -8
  309. package/styles/components/sidebar/_animations.scss +0 -38
  310. package/styles/components/sidebar/_cms.scss +0 -61
  311. package/styles/components/sidebar/_details.scss +0 -58
  312. package/styles/components/sidebar/_links.scss +0 -415
  313. package/styles/components/sidebar/_sidebar-animation.scss +0 -121
  314. package/styles/components/sidebar/_sidebar-tooltip.scss +0 -33
  315. package/styles/components/sidebar/_sidebar.scss +0 -141
  316. package/styles/components/sidebar/project-specific/_wi.scss +0 -42
  317. package/styles/qppds/utilities/_display-visability.scss +0 -83
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.
@@ -32,6 +32,24 @@ export const ExampleLightBreadcrumb = () => (
32
32
 
33
33
  ExampleLightBreadcrumb.storyName = 'Light';
34
34
 
35
+ export const ExampleScreenreaderOnlyBreadcrumb = () => (
36
+ <div className="qppds qpp-u-padding--16 qpp-u-fill--blue-80">
37
+ <Breadcrumb
38
+ newBreadcrumb={boolean('newBreadcrumb', true)}
39
+ crumbs={[
40
+ {
41
+ url: '/',
42
+ category: 'MainContent',
43
+ label: 'Home',
44
+ title: 'Home',
45
+ },
46
+ 'Mips Overview',
47
+ ]}
48
+ />
49
+ </div>
50
+ );
51
+ ExampleScreenreaderOnlyBreadcrumb.storyName = 'SR Only Breadcrumb';
52
+
35
53
  export const ExampleDarkBreadcrumb = () => (
36
54
  <div className="qppds qpp-u-padding--16">
37
55
  <Breadcrumb
@@ -50,12 +50,12 @@ const Breadcrumb = ({
50
50
  return (
51
51
  <li
52
52
  key={crumb}
53
- className="qpp-c-breadcrumbs__list-item qpp-c-breadcrumbs__list-item--current"
53
+ className={`${
54
+ i === crumbs.length - 1 ? 'sr-only' : ''
55
+ } qpp-c-breadcrumbs__list-itemqpp-c-breadcrumbs__list-item--current`}
54
56
  aria-current="page"
55
57
  >
56
- <span className={i === crumbs.length - 1 ? 'sr-only' : ''}>
57
- {crumb}
58
- </span>
58
+ <span>{crumb}</span>
59
59
  </li>
60
60
  );
61
61
  }
@@ -0,0 +1,94 @@
1
+ import React from 'react';
2
+ import Dropdown from './index';
3
+ import { withKnobs } from '@storybook/addon-knobs';
4
+
5
+ export default {
6
+ title: 'Dropdown',
7
+ component: Dropdown,
8
+ decorators: [withKnobs],
9
+ };
10
+
11
+ export const DropdownField = () => (
12
+ <Dropdown
13
+ id="id-example"
14
+ value="value-example"
15
+ name="name-example"
16
+ ariaLabel="arial label example"
17
+ options={[
18
+ { name: 'Name 1', value: 'Value 1' },
19
+ { name: 'Name 2', value: 'Value 2' },
20
+ { name: 'Name 3', value: 'Value 3' },
21
+ ]}
22
+ />
23
+ );
24
+
25
+ export const DropdownFieldAutoWidth = () => (
26
+ <Dropdown
27
+ id="id-example"
28
+ value="value-example"
29
+ name="name-example"
30
+ ariaLabel="arial label example"
31
+ className="qpp-u-width--auto"
32
+ options={[
33
+ { name: 'Name 1', value: 'Value 1' },
34
+ { name: 'Name 2', value: 'Value 2' },
35
+ { name: 'Name 3', value: 'Value 3' },
36
+ ]}
37
+ />
38
+ );
39
+
40
+ export const DisabledDropdown = () => (
41
+ <Dropdown
42
+ disabled
43
+ id="id-example"
44
+ value="value-example"
45
+ name="name-example"
46
+ ariaLabel="arial label example"
47
+ options={[
48
+ { name: 'Name 1', value: 'Value 1' },
49
+ { name: 'Name 2', value: 'Value 2' },
50
+ { name: 'Name 3', value: 'Value 3' },
51
+ ]}
52
+ />
53
+ );
54
+
55
+ export const DropdownBigVariant = () => (
56
+ <Dropdown
57
+ id="id-example"
58
+ value="value-example"
59
+ name="name-example"
60
+ ariaLabel="arial label example"
61
+ size="big"
62
+ options={[
63
+ { name: 'Name 1', value: 'Value 1' },
64
+ { name: 'Name 2', value: 'Value 2' },
65
+ { name: 'Name 3', value: 'Value 3' },
66
+ ]}
67
+ />
68
+ );
69
+
70
+ export const DropdownWithDisabledOption = () => (
71
+ <Dropdown
72
+ id="id-example"
73
+ value="value-example"
74
+ name="name-example"
75
+ ariaLabel="arial label example"
76
+ options={[
77
+ { disabled: true, name: 'Select Category', value: 'default' },
78
+ { name: 'Name 1', value: 'Value 1' },
79
+ { name: 'Name 2', value: 'Value 2' },
80
+ ]}
81
+ />
82
+ );
83
+
84
+ export const DropdownUsingChildrenProp = () => (
85
+ <Dropdown
86
+ id="id-example"
87
+ value="value-example"
88
+ name="name-example"
89
+ ariaLabel="arial label example"
90
+ >
91
+ <option value="Value 1">Name 1</option>
92
+ <option value="Value 2">Name 2</option>
93
+ </Dropdown>
94
+ );
@@ -0,0 +1,85 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+
4
+ const Dropdown = ({
5
+ className,
6
+ id,
7
+ ariaLabelledBy,
8
+ ariaLabel,
9
+ onChange,
10
+ dataTestId,
11
+ name,
12
+ dataType,
13
+ disabled,
14
+ size,
15
+ options,
16
+ children,
17
+ parentElement,
18
+ ...rest
19
+ }) => {
20
+ const dropdownClass = [
21
+ 'qpp-c-dropdown',
22
+ size === 'big' && 'qpp-c-dropdown--big',
23
+ className,
24
+ ]
25
+ .filter(Boolean)
26
+ .join(' ');
27
+
28
+ return (
29
+ <select
30
+ id={id}
31
+ aria-labelledby={ariaLabelledBy}
32
+ aria-label={ariaLabel}
33
+ className={dropdownClass || ''}
34
+ onChange={onChange}
35
+ data-testid={dataTestId}
36
+ name={name}
37
+ disabled={disabled}
38
+ data-type={dataType}
39
+ {...rest}
40
+ >
41
+ {children}
42
+ {options.map(({ disabled, name, value }) => (
43
+ <option disabled={disabled} key={value} value={value}>
44
+ {name}
45
+ </option>
46
+ ))}
47
+ </select>
48
+ );
49
+ };
50
+
51
+ Dropdown.propTypes = {
52
+ children: PropTypes.node,
53
+ className: PropTypes.string,
54
+ id: PropTypes.string,
55
+ ariaLabelledBy: PropTypes.string,
56
+ ariaLabel: PropTypes.string,
57
+ onChange: PropTypes.func,
58
+ value: PropTypes.string,
59
+ defaultValue: PropTypes.string,
60
+ dataTestId: PropTypes.string,
61
+ name: PropTypes.string,
62
+ dataType: PropTypes.string,
63
+ disabled: PropTypes.bool,
64
+ size: PropTypes.oneOf(['big']),
65
+ options: PropTypes.array,
66
+ parentElement: PropTypes.string,
67
+ };
68
+
69
+ Dropdown.defaultProps = {
70
+ children: false,
71
+ className: 'qpp-u-width--100',
72
+ id: null,
73
+ ariaLabelledBy: null,
74
+ ariaLabel: null,
75
+ onChange: () => null,
76
+ dataTestId: null,
77
+ name: null,
78
+ dataType: null,
79
+ disabled: false,
80
+ size: null,
81
+ options: [],
82
+ parentElement: 'span',
83
+ };
84
+
85
+ export default Dropdown;
@@ -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