qpp-style 9.20.5 → 9.21.0

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 (231) hide show
  1. package/.storybook/main.js +5 -22
  2. package/components/DropdownButton/DropdownButton.stories.js +115 -125
  3. package/components/DropdownButton/Menu.js +25 -0
  4. package/components/DropdownButton/MenuButton.js +41 -0
  5. package/components/DropdownButton/MenuItem.js +25 -0
  6. package/components/DropdownButton/MenuItemLink.js +27 -0
  7. package/components/SideNav/helpers.js +1 -1
  8. package/coverage/clover.xml +421 -426
  9. package/coverage/coverage-final.json +72 -73
  10. package/coverage/lcov-report/{components/SideNav/Links/NavLinkContainer.jsx.html → Tooltip.jsx.html} +88 -55
  11. package/coverage/lcov-report/components/Accordion/index.html +1 -1
  12. package/coverage/lcov-report/components/Accordion/index.jsx.html +4 -4
  13. package/coverage/lcov-report/components/{SideNav/AnimationGroup → Button}/index.html +30 -30
  14. package/coverage/lcov-report/components/{SideNav/Links/NavLinkInline.jsx.html → Button/index.js.html} +101 -152
  15. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +1 -1
  16. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +1 -1
  17. package/coverage/lcov-report/components/Error/index.html +1 -1
  18. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +184 -358
  19. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +11 -11
  20. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +11 -11
  21. package/coverage/lcov-report/components/Footer/index.html +29 -44
  22. package/coverage/lcov-report/components/{SideNav/UI → GovBanner}/index.html +27 -42
  23. package/coverage/lcov-report/components/GovBanner/index.js.html +436 -0
  24. package/coverage/lcov-report/components/{SideNav/Content/LevelOneContent.jsx.html → Header/HeaderAccountMenu.jsx.html} +187 -304
  25. package/coverage/lcov-report/components/{SideNav/Details/IndividualDetails.jsx.html → Header/HeaderCancel.jsx.html} +18 -24
  26. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +280 -0
  27. package/coverage/lcov-report/components/{SideNav/Links/CmsSwitchLink.jsx.html → Header/HeaderLogo.jsx.html} +61 -58
  28. package/coverage/lcov-report/components/{SideNav/Links/NavItemInline.jsx.html → Header/HeaderMenuButton.js.html} +63 -75
  29. package/coverage/lcov-report/components/{SideNav/Content/LevelTwoContent.jsx.html → Header/HeaderMenuItem.jsx.html} +305 -236
  30. package/coverage/lcov-report/components/{SideNav/Details/PracticeDetails.jsx.html → Header/HeaderMenuLink.js.html} +78 -63
  31. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  32. package/coverage/lcov-report/components/{SideNav/Links/NavLinkToggle.jsx.html → Header/HeaderMobileButton.js.html} +55 -46
  33. package/coverage/lcov-report/components/{Footer/LegacyFooterUI.jsx.html → Header/HeaderUI.jsx.html} +193 -274
  34. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
  35. package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +331 -0
  36. package/coverage/lcov-report/components/{SideNav/AnimationGroup/AnimationGroup.jsx.html → Header/NavigationButtonIcon.jsx.html} +48 -48
  37. package/coverage/lcov-report/components/Header/hooks.js.html +241 -0
  38. package/coverage/lcov-report/components/Header/index.html +326 -0
  39. package/coverage/lcov-report/components/{SideNav/Links/index.js.html → Header/utag-helpers.js.html} +28 -40
  40. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +2 -2
  41. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +5 -5
  42. package/coverage/lcov-report/components/Infotip/index.html +1 -1
  43. package/coverage/lcov-report/components/Infotip/index.js.html +1 -1
  44. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +3 -3
  45. package/coverage/lcov-report/components/Modal/Modal.jsx.html +5 -5
  46. package/coverage/lcov-report/components/Modal/index.html +1 -1
  47. package/coverage/lcov-report/components/Modal/index.jsx.html +5 -5
  48. package/coverage/lcov-report/components/{SideNav/Chart → NotificationBanner}/index.html +30 -45
  49. package/coverage/lcov-report/components/{SideNav/Links/NavLinkDrawer.jsx.html → NotificationBanner/index.js.html} +318 -270
  50. package/coverage/lcov-report/components/SanitizedContent/index.html +1 -1
  51. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +1 -1
  52. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +4 -4
  53. package/coverage/lcov-report/components/SideNav/helpers.js.html +649 -10
  54. package/coverage/lcov-report/components/SideNav/index.html +17 -17
  55. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +8 -8
  56. package/coverage/lcov-report/components/Tooltip/index.html +1 -1
  57. package/coverage/lcov-report/components/Tooltip/index.js.html +1 -1
  58. package/coverage/lcov-report/components/Tooltip/position.js.html +1 -1
  59. package/coverage/lcov-report/components/hooks/index.html +19 -19
  60. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +39 -36
  61. package/coverage/lcov-report/components/index.html +1 -1
  62. package/coverage/lcov-report/index.html +61 -61
  63. package/coverage/lcov-report/{components/SideNav/UI/index.js.html → index.js.html} +12 -12
  64. package/coverage/lcov-report/lib/Chevron.jsx.html +5 -5
  65. package/coverage/lcov-report/lib/SvgComponents.jsx.html +54 -12
  66. package/coverage/lcov-report/lib/index.html +15 -30
  67. package/coverage/lcov-report/position.js.html +289 -0
  68. package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
  69. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +1 -1
  70. package/coverage/lcov-report/react/components/Button/index.html +1 -1
  71. package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
  72. package/coverage/lcov-report/react/components/Dropdown/index.html +1 -1
  73. package/coverage/lcov-report/react/components/Dropdown/index.js.html +1 -1
  74. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
  75. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
  76. package/coverage/lcov-report/react/components/Error/error.js.html +1 -1
  77. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  78. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +24 -18
  79. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
  80. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
  81. package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
  82. package/coverage/lcov-report/react/components/Footer/index.html +1 -1
  83. package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
  84. package/coverage/lcov-report/react/components/GovBanner/index.js.html +3 -3
  85. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +26 -251
  86. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
  87. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +2 -2
  88. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +4 -4
  89. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
  90. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +19 -19
  91. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +1 -1
  92. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
  93. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +2 -2
  94. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +89 -113
  95. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +2 -2
  96. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +10 -7
  97. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
  98. package/coverage/lcov-report/react/components/Header/header.js.html +1 -1
  99. package/coverage/lcov-report/react/components/Header/hooks.js.html +59 -17
  100. package/coverage/lcov-report/react/components/Header/index.html +28 -28
  101. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
  102. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +1 -1
  103. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
  104. package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
  105. package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
  106. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
  107. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
  108. package/coverage/lcov-report/react/components/Modal/index.html +1 -1
  109. package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
  110. package/coverage/lcov-report/react/components/NotificationBanner/CollapsedView.js.html +49 -28
  111. package/coverage/lcov-report/react/components/NotificationBanner/ExpandedView.js.html +1 -1
  112. package/coverage/lcov-report/react/components/NotificationBanner/index.html +11 -11
  113. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +32 -32
  114. package/coverage/lcov-report/react/components/SanitizedContent/index.html +1 -1
  115. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +1 -1
  116. package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
  117. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +1 -1
  118. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +1 -1
  119. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +1 -1
  120. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
  121. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +1 -1
  122. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
  123. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
  124. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +1 -1
  125. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
  126. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +13 -13
  127. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +1 -1
  128. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +60 -24
  129. package/coverage/lcov-report/react/components/SideNav/Content/index.html +1 -1
  130. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
  131. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  132. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
  133. package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
  134. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
  135. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  136. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  137. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
  138. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +3 -3
  139. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
  140. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
  141. package/coverage/lcov-report/react/components/SideNav/Links/index.html +1 -1
  142. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
  143. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +2 -20
  144. package/coverage/lcov-report/react/components/SideNav/UI/index.html +1 -1
  145. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
  146. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +78 -12
  147. package/coverage/lcov-report/react/components/SideNav/index.html +19 -19
  148. package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
  149. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +42 -159
  150. package/coverage/lcov-report/react/components/Tooltip/index.html +9 -9
  151. package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
  152. package/coverage/lcov-report/react/components/Tooltip/position.js.html +20 -20
  153. package/coverage/lcov-report/react/components/hooks/index.html +19 -19
  154. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +37 -37
  155. package/coverage/lcov-report/react/components/index.html +1 -1
  156. package/coverage/lcov-report/react/index.html +1 -1
  157. package/coverage/lcov-report/react/index.js.html +1 -1
  158. package/coverage/lcov-report/react/lib/Chevron.jsx.html +2 -2
  159. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +7 -4
  160. package/coverage/lcov-report/react/lib/index.html +5 -20
  161. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
  162. package/coverage/lcov-report/react/session/index.html +1 -1
  163. package/coverage/lcov-report/react/session/index.js.html +1 -1
  164. package/coverage/lcov-report/react/session/logout.js.html +1 -1
  165. package/coverage/lcov-report/react/session/refresh.js.html +1 -1
  166. package/coverage/lcov-report/react/session/ttl.js.html +1 -1
  167. package/coverage/lcov-report/session/index.html +20 -20
  168. package/coverage/lcov-report/session/index.js.html +1 -1
  169. package/coverage/lcov-report/session/logout.js.html +24 -15
  170. package/coverage/lcov-report/session/refresh.js.html +2 -2
  171. package/coverage/lcov-report/session/ttl.js.html +2 -2
  172. package/coverage/lcov.info +638 -652
  173. package/dist/browser.js +1 -1
  174. package/dist/browser.js.map +1 -1
  175. package/dist/index.js +1 -1
  176. package/dist/index.js.map +1 -1
  177. package/dist/react/index.js +1 -1
  178. package/dist/react/index.js.map +1 -1
  179. package/images/icons/svg/clipboard.svg +1 -0
  180. package/images/icons/svg/doctors-and-clinicians-preview.svg +10 -0
  181. package/images/icons/svg/file-upload.svg +1 -1
  182. package/images/icons/svg/manage-user-access.svg +8 -0
  183. package/images/icons/svg/performance-feedback.svg +1 -0
  184. package/images/icons/svg/registration.svg +2 -2
  185. package/images/icons/svg/search.svg +1 -1
  186. package/images/icons/svg/targeted-review.svg +15 -0
  187. package/package.json +30 -33
  188. package/storybook-static/229.630347465201d1822126.manager.bundle.js +1 -0
  189. package/storybook-static/295.aa3c5122636a27ad7c7b.manager.bundle.js +1 -0
  190. package/storybook-static/468.d976c69e47003b4dcfa3.manager.bundle.js +2 -0
  191. package/storybook-static/468.d976c69e47003b4dcfa3.manager.bundle.js.LICENSE.txt +94 -0
  192. package/storybook-static/51.fc4b02f2a75c894ae64e.manager.bundle.js +2 -0
  193. package/storybook-static/51.fc4b02f2a75c894ae64e.manager.bundle.js.LICENSE.txt +8 -0
  194. package/storybook-static/551.45aead073703cc6fb12b.manager.bundle.js +1 -0
  195. package/storybook-static/807.1a7f4dcf15e4696572ca.manager.bundle.js +2 -0
  196. package/storybook-static/807.1a7f4dcf15e4696572ca.manager.bundle.js.LICENSE.txt +31 -0
  197. package/storybook-static/897.9b5fee8cc7074607c812.manager.bundle.js +2 -0
  198. package/storybook-static/897.9b5fee8cc7074607c812.manager.bundle.js.LICENSE.txt +12 -0
  199. package/storybook-static/935.532759f0652585685af7.manager.bundle.js +1 -0
  200. package/storybook-static/favicon.ico +0 -0
  201. package/storybook-static/index.html +59 -0
  202. package/storybook-static/main.ad4edcd27d527a119d7a.manager.bundle.js +1 -0
  203. package/storybook-static/project.json +1 -0
  204. package/storybook-static/runtime~main.b165398bf7ef3e30d431.manager.bundle.js +1 -0
  205. package/styles/qppds/components/_dropdown-menu.scss +19 -11
  206. package/styles/qppds/components/_link.scss +8 -2
  207. package/svgo.config.js +14 -0
  208. package/webpack.config.js +3 -12
  209. package/webpack.config.react.js +3 -12
  210. package/components/DropdownButton/index.js +0 -148
  211. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +0 -889
  212. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -94
  213. package/coverage/lcov-report/components/SideNav/Content/index.html +0 -146
  214. package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -97
  215. package/coverage/lcov-report/components/SideNav/Details/index.html +0 -146
  216. package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -97
  217. package/coverage/lcov-report/components/SideNav/Links/index.html +0 -206
  218. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1084
  219. package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -460
  220. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +0 -667
  221. package/styles/components/_footer.scss +0 -593
  222. package/styles/components/_header.scss +0 -890
  223. package/styles/components/_sidebar.scss +0 -8
  224. package/styles/components/sidebar/_animations.scss +0 -38
  225. package/styles/components/sidebar/_cms.scss +0 -61
  226. package/styles/components/sidebar/_details.scss +0 -58
  227. package/styles/components/sidebar/_links.scss +0 -415
  228. package/styles/components/sidebar/_sidebar-animation.scss +0 -121
  229. package/styles/components/sidebar/_sidebar-tooltip.scss +0 -33
  230. package/styles/components/sidebar/_sidebar.scss +0 -141
  231. package/styles/components/sidebar/project-specific/_wi.scss +0 -42
@@ -59,29 +59,12 @@ module.exports = {
59
59
  },
60
60
  ],
61
61
  });
62
+
62
63
  config.module.rules.push({
63
- test: /\.svg$/,
64
- type: 'asset/source',
65
- use: {
66
- loader: 'svgo-loader',
67
- options: {
68
- plugins: [
69
- {
70
- removeTitle: true,
71
- },
72
- {
73
- convertColors: {
74
- shorthex: false,
75
- },
76
- },
77
- {
78
- convertPathData: false,
79
- },
80
- ],
81
- },
82
- },
83
- }); // Modify default storybook SVG loader so we can use the one expected by qpp-style
84
- // NOTE: When updating storybook dependency, double check this override.
64
+ test: /\.svg$/i,
65
+ issuer: /\.[jt]sx?$/,
66
+ use: ['@svgr/webpack'],
67
+ });
85
68
 
86
69
  const staticAssetLoader = config.module.rules.find((rule) => {
87
70
  const regExp = rule.test;
@@ -1,137 +1,127 @@
1
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';
2
+ import MenuButton from './MenuButton';
3
+ import Menu from './Menu';
4
+ import MenuItem from './MenuItem';
5
+ import MenuItemLink from './MenuItemLink';
6
+ import { useMenuState } from 'ariakit/menu';
7
+ import Download from '@material-design-icons/svg/outlined/file_download.svg';
5
8
 
6
9
  export default {
7
10
  title: 'DropdownButton',
8
- component: DropdownButton,
9
- decorators: [withKnobs],
11
+ component: MenuButton,
10
12
  };
11
13
 
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
- );
14
+ export function BasicExample() {
15
+ const menu = useMenuState({ gutter: 0 });
16
+ const basicEx = ['option 1', 'Name of Option 2'];
19
17
 
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
- );
18
+ return (
19
+ <div className="qpp-u-padding--48">
20
+ <MenuButton state={menu}>Test</MenuButton>
21
+ <Menu state={menu}>
22
+ {basicEx.map((item, i) => (
23
+ <MenuItem key={i}>
24
+ <span>{item}</span>
25
+ </MenuItem>
26
+ ))}
27
+ </Menu>
28
+ </div>
29
+ );
30
+ }
36
31
 
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
- // );
32
+ export function LinkExample() {
33
+ const menu = useMenuState({ gutter: 0 });
34
+ const basicEx = ['link 1', 'link 2'];
57
35
 
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
- );
36
+ return (
37
+ <div className="qpp-u-padding--48">
38
+ <MenuButton state={menu}>Test</MenuButton>
39
+ <Menu state={menu}>
40
+ {basicEx.map((item, i) => (
41
+ <MenuItemLink key={i} href="#">
42
+ {/* if using react-router, you can use `<MenuItemLink as={Link} to={path} ...>` insead} */}
43
+ <span>{item}</span>
44
+ </MenuItemLink>
45
+ ))}
46
+ </Menu>
47
+ </div>
48
+ );
49
+ }
74
50
 
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
- );
51
+ export function MaxHeight() {
52
+ const menu = useMenuState({ gutter: 0 });
53
+ const maxHeightEx = [
54
+ 'option 1',
55
+ 'option 2',
56
+ 'option 3',
57
+ 'option 4',
58
+ 'option 5',
59
+ 'option 6',
60
+ 'option 7',
61
+ 'option 8',
62
+ 'option 9',
63
+ 'option 10',
64
+ ];
96
65
 
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
- );
66
+ return (
67
+ <div className="qpp-u-padding--48">
68
+ <MenuButton state={menu}>Test</MenuButton>
69
+ <Menu state={menu}>
70
+ {maxHeightEx.map((item, i) => (
71
+ <MenuItem key={i}>
72
+ <span>{item}</span>
73
+ </MenuItem>
74
+ ))}
75
+ </Menu>
76
+ </div>
77
+ );
78
+ }
114
79
 
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
- );
80
+ export function MaxWidth() {
81
+ const menu = useMenuState({ gutter: 0 });
82
+ const maxWidthtEx = [
83
+ 'option 1',
84
+ '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',
85
+ ];
86
+
87
+ return (
88
+ <div className="qpp-u-padding--48">
89
+ <MenuButton state={menu}>Test</MenuButton>
90
+ <Menu state={menu}>
91
+ {maxWidthtEx.map((item, i) => (
92
+ <MenuItem key={i}>
93
+ <span>{item}</span>
94
+ </MenuItem>
95
+ ))}
96
+ </Menu>
97
+ </div>
98
+ );
99
+ }
100
+
101
+ export function ItemsWithIcons() {
102
+ const menu = useMenuState({ gutter: 0 });
103
+ const maxWidthtEx = [
104
+ 'option 1',
105
+ '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',
106
+ ];
107
+
108
+ return (
109
+ <div className="qpp-u-padding--48">
110
+ <MenuButton state={menu}>Test</MenuButton>
111
+ <Menu state={menu}>
112
+ {maxWidthtEx.map((item, i) => (
113
+ <MenuItem key={i}>
114
+ <div className="qpp-c-dropdown-menu__icon">
115
+ <Download
116
+ className="qpp-icon-mat qpp-icon-inline--lg"
117
+ focusable="false"
118
+ aria-hidden="true"
119
+ />
120
+ </div>
121
+ <span>{item}</span>
122
+ </MenuItem>
123
+ ))}
124
+ </Menu>
125
+ </div>
126
+ );
127
+ }
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Menu as AriaKitMenu } from 'ariakit/menu';
4
+
5
+ function Menu({ state, className, children, ...props }) {
6
+ return (
7
+ <AriaKitMenu as="ul" state={state} className={className} {...props}>
8
+ {children}
9
+ </AriaKitMenu>
10
+ );
11
+ }
12
+
13
+ Menu.propTypes = {
14
+ state: PropTypes.object.isRequired,
15
+ className: PropTypes.string,
16
+ children: PropTypes.node,
17
+ };
18
+
19
+ Menu.defaultProps = {
20
+ className:
21
+ 'qpp-c-dropdown-menu qpp-c-dropdown-menu__box qpp-c-dropdown-menu__list',
22
+ children: null,
23
+ };
24
+
25
+ export default Menu;
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { MenuButton as AriaKitButton } from 'ariakit/menu';
4
+
5
+ function MenuButton({ state, className, iconExist, children, ...props }) {
6
+ const dropDownIsOpen = state.open;
7
+
8
+ const CheveronUpIcon = 'M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z';
9
+ const CheveronDownIcon = 'M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z';
10
+
11
+ return (
12
+ <AriaKitButton state={state} className={className} {...props}>
13
+ {children}{' '}
14
+ {iconExist && (
15
+ <svg
16
+ className="qpp-icon-mat qpp-icon-inline--lg"
17
+ focusable="false"
18
+ viewBox="0 0 24 24"
19
+ aria-hidden="true"
20
+ >
21
+ <path d={dropDownIsOpen ? CheveronUpIcon : CheveronDownIcon} />
22
+ </svg>
23
+ )}
24
+ </AriaKitButton>
25
+ );
26
+ }
27
+
28
+ MenuButton.propTypes = {
29
+ state: PropTypes.object.isRequired,
30
+ className: PropTypes.string,
31
+ iconExist: PropTypes.bool,
32
+ children: PropTypes.node,
33
+ };
34
+
35
+ MenuButton.defaultProps = {
36
+ className: 'qpp-c-button',
37
+ iconExist: true,
38
+ children: null,
39
+ };
40
+
41
+ export default MenuButton;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { MenuItem as AriaKitMenuItem } from 'ariakit/menu';
4
+
5
+ function MenuItem({ as, className, children, ...props }) {
6
+ return (
7
+ <AriaKitMenuItem as={as} className={className} {...props}>
8
+ {children}
9
+ </AriaKitMenuItem>
10
+ );
11
+ }
12
+
13
+ MenuItem.propTypes = {
14
+ as: PropTypes.string,
15
+ className: PropTypes.string,
16
+ children: PropTypes.node,
17
+ };
18
+
19
+ MenuItem.defaultProps = {
20
+ as: 'li',
21
+ className: 'qpp-c-dropdown-menu__item',
22
+ children: null,
23
+ };
24
+
25
+ export default MenuItem;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { MenuItem as AriaKitMenuItem } from 'ariakit/menu';
4
+
5
+ function MenuItemLink({ as, className, children, ...props }) {
6
+ return (
7
+ <li role="none">
8
+ <AriaKitMenuItem as={as} className={className} {...props}>
9
+ {children}
10
+ </AriaKitMenuItem>
11
+ </li>
12
+ );
13
+ }
14
+
15
+ MenuItemLink.propTypes = {
16
+ as: PropTypes.string,
17
+ className: PropTypes.string,
18
+ children: PropTypes.node,
19
+ };
20
+
21
+ MenuItemLink.defaultProps = {
22
+ as: 'a',
23
+ className: 'qpp-c-dropdown-menu__item',
24
+ children: null,
25
+ };
26
+
27
+ export default MenuItemLink;
@@ -83,7 +83,7 @@ const getIcon = (url, linkLabel) => {
83
83
  '/reviewer/exception': HardshipIcon,
84
84
  '/reviewer/targeted-review': TargetIcon,
85
85
  '/self-nomination': IndividualReporting,
86
- '/cases/needs-review': FacilityBasedPreviewIcon,
86
+ '/case-management': FacilityBasedPreviewIcon,
87
87
  [contentMgrDashboardUrl]: AccountHomeIcon,
88
88
  'Manage Documents': ManageDocumentsIcon,
89
89
  'Author Content': AuthorContentIcon,