@madie/madie-design-system 1.0.32 → 1.0.35

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 (252) hide show
  1. package/components/Pagination/index.jsx +11 -2
  2. package/components/Popover/Popover.stories.js +55 -0
  3. package/components/Popover/index.js +110 -0
  4. package/components/Toast/Toast.stories.js +66 -0
  5. package/components/Toast/index.jsx +66 -79
  6. package/components/index.js +3 -1
  7. package/coverage/clover.xml +613 -0
  8. package/coverage/coverage-final.json +39 -0
  9. package/coverage/lcov-report/Button/index.html +116 -0
  10. package/coverage/lcov-report/Button/index.js.html +376 -0
  11. package/coverage/lcov-report/InputLabel/index.html +116 -0
  12. package/coverage/lcov-report/InputLabel/index.jsx.html +259 -0
  13. package/coverage/lcov-report/MadieDialog/Index.jsx.html +853 -0
  14. package/coverage/lcov-report/MadieDialog/index.html +116 -0
  15. package/coverage/lcov-report/MadieSpinner/index.html +116 -0
  16. package/coverage/lcov-report/MadieSpinner/index.jsx.html +196 -0
  17. package/coverage/lcov-report/Select/index.html +116 -0
  18. package/coverage/lcov-report/Select/index.jsx.html +391 -0
  19. package/coverage/lcov-report/Textfield/index.html +116 -0
  20. package/coverage/lcov-report/Textfield/index.jsx.html +325 -0
  21. package/coverage/lcov-report/base.css +224 -0
  22. package/coverage/lcov-report/block-navigation.js +87 -0
  23. package/coverage/lcov-report/favicon.png +0 -0
  24. package/coverage/lcov-report/index.html +446 -0
  25. package/coverage/lcov-report/index.jsx.html +448 -0
  26. package/coverage/lcov-report/prettify.css +1 -0
  27. package/coverage/lcov-report/prettify.js +2 -0
  28. package/coverage/lcov-report/react/components/Accordion/index.html +116 -0
  29. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +370 -0
  30. package/coverage/lcov-report/react/components/Button/index.html +116 -0
  31. package/coverage/lcov-report/react/components/Button/index.js.html +376 -0
  32. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +364 -0
  33. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +178 -0
  34. package/coverage/lcov-report/react/components/Error/error.js.html +163 -0
  35. package/coverage/lcov-report/react/components/Error/index.html +146 -0
  36. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +496 -0
  37. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +697 -0
  38. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +274 -0
  39. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +187 -0
  40. package/coverage/lcov-report/react/components/Footer/footer.js.html +175 -0
  41. package/coverage/lcov-report/react/components/Footer/index.html +146 -0
  42. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +634 -0
  43. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +133 -0
  44. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +289 -0
  45. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +211 -0
  46. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +235 -0
  47. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +922 -0
  48. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +235 -0
  49. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  50. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +196 -0
  51. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +637 -0
  52. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +181 -0
  53. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +265 -0
  54. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +166 -0
  55. package/coverage/lcov-report/react/components/Header/header.js.html +211 -0
  56. package/coverage/lcov-report/react/components/Header/hooks.js.html +262 -0
  57. package/coverage/lcov-report/react/components/Header/index.html +341 -0
  58. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +112 -0
  59. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +310 -0
  60. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +208 -0
  61. package/coverage/lcov-report/react/components/Infotip/index.html +146 -0
  62. package/coverage/lcov-report/react/components/Infotip/index.js.html +94 -0
  63. package/coverage/lcov-report/react/components/InputLabel/index.html +116 -0
  64. package/coverage/lcov-report/react/components/InputLabel/index.jsx.html +244 -0
  65. package/coverage/lcov-report/react/components/MadieAlert/MadieAlert.scss.html +334 -0
  66. package/coverage/lcov-report/react/components/MadieAlert/index.html +131 -0
  67. package/coverage/lcov-report/react/components/MadieAlert/index.jsx.html +271 -0
  68. package/coverage/lcov-report/react/components/MadieDialog/Index.jsx.html +856 -0
  69. package/coverage/lcov-report/react/components/MadieDialog/index.html +116 -0
  70. package/coverage/lcov-report/react/components/MadieDiscardDialog/index.html +116 -0
  71. package/coverage/lcov-report/react/components/MadieDiscardDialog/index.jsx.html +232 -0
  72. package/coverage/lcov-report/react/components/MadieSpinner/index.html +116 -0
  73. package/coverage/lcov-report/react/components/MadieSpinner/index.jsx.html +190 -0
  74. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +307 -0
  75. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +505 -0
  76. package/coverage/lcov-report/react/components/Modal/index.html +146 -0
  77. package/coverage/lcov-report/react/components/Modal/index.jsx.html +151 -0
  78. package/coverage/lcov-report/react/components/NotificationBanner/index.html +116 -0
  79. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +922 -0
  80. package/coverage/lcov-report/react/components/Pagination/index.html +116 -0
  81. package/coverage/lcov-report/react/components/Pagination/index.jsx.html +697 -0
  82. package/coverage/lcov-report/react/components/ReadOnlyTextField/index.html +116 -0
  83. package/coverage/lcov-report/react/components/ReadOnlyTextField/index.jsx.html +313 -0
  84. package/coverage/lcov-report/react/components/SanitizedContent/index.html +116 -0
  85. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +685 -0
  86. package/coverage/lcov-report/react/components/Select/index.html +116 -0
  87. package/coverage/lcov-report/react/components/Select/index.jsx.html +427 -0
  88. package/coverage/lcov-report/react/components/SessionDialog/index.html +116 -0
  89. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +163 -0
  90. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +904 -0
  91. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +172 -0
  92. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +116 -0
  93. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +916 -0
  94. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +131 -0
  95. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +94 -0
  96. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +721 -0
  97. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +772 -0
  98. package/coverage/lcov-report/react/components/SideNav/Content/index.html +146 -0
  99. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +97 -0
  100. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +139 -0
  101. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +226 -0
  102. package/coverage/lcov-report/react/components/SideNav/Details/index.html +146 -0
  103. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +97 -0
  104. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +208 -0
  105. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +247 -0
  106. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +205 -0
  107. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +940 -0
  108. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +412 -0
  109. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +187 -0
  110. package/coverage/lcov-report/react/components/SideNav/Links/index.html +206 -0
  111. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +124 -0
  112. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +1144 -0
  113. package/coverage/lcov-report/react/components/SideNav/UI/index.html +131 -0
  114. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +94 -0
  115. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +232 -0
  116. package/coverage/lcov-report/react/components/SideNav/index.html +131 -0
  117. package/coverage/lcov-report/react/components/SideNav/index.js.html +244 -0
  118. package/coverage/lcov-report/react/components/Textfield/index.html +116 -0
  119. package/coverage/lcov-report/react/components/Textfield/index.jsx.html +307 -0
  120. package/coverage/lcov-report/react/components/Toast/index.html +116 -0
  121. package/coverage/lcov-report/react/components/Toast/index.jsx.html +469 -0
  122. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +349 -0
  123. package/coverage/lcov-report/react/components/Tooltip/index.html +146 -0
  124. package/coverage/lcov-report/react/components/Tooltip/index.js.html +94 -0
  125. package/coverage/lcov-report/react/components/Tooltip/position.js.html +313 -0
  126. package/coverage/lcov-report/react/components/hooks/index.html +116 -0
  127. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +334 -0
  128. package/coverage/lcov-report/react/components/index.html +116 -0
  129. package/coverage/lcov-report/react/index.html +116 -0
  130. package/coverage/lcov-report/react/index.js.html +148 -0
  131. package/coverage/lcov-report/react/lib/Chevron.jsx.html +181 -0
  132. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1702 -0
  133. package/coverage/lcov-report/react/lib/index.html +131 -0
  134. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +460 -0
  135. package/coverage/lcov-report/react/session/index.html +161 -0
  136. package/coverage/lcov-report/react/session/index.js.html +100 -0
  137. package/coverage/lcov-report/react/session/logout.js.html +280 -0
  138. package/coverage/lcov-report/react/session/refresh.js.html +232 -0
  139. package/coverage/lcov-report/react/session/ttl.js.html +196 -0
  140. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  141. package/coverage/lcov-report/sorter.js +196 -0
  142. package/coverage/lcov.info +1261 -0
  143. package/dist/browser.js +1 -1
  144. package/dist/index.js +1 -1
  145. package/dist/react/index.js +19 -19
  146. package/dist/react/index.js.LICENSE.txt +7 -13
  147. package/dist/react/index.js.map +1 -1
  148. package/package.json +1 -1
  149. package/storybook-static/115.052877d9.iframe.bundle.js +2 -0
  150. package/storybook-static/115.052877d9.iframe.bundle.js.LICENSE.txt +11 -0
  151. package/storybook-static/181.e295335e7d22cc10734c.manager.bundle.js +1 -0
  152. package/storybook-static/229.4bb41a80.iframe.bundle.js +1 -0
  153. package/storybook-static/229.f4563e3b88a69879e628.manager.bundle.js +1 -0
  154. package/storybook-static/270.98f52535.iframe.bundle.js +103 -0
  155. package/storybook-static/270.98f52535.iframe.bundle.js.LICENSE.txt +131 -0
  156. package/storybook-static/270.98f52535.iframe.bundle.js.map +1 -0
  157. package/storybook-static/273.bdf29c3c.iframe.bundle.js +2 -0
  158. package/storybook-static/273.bdf29c3c.iframe.bundle.js.LICENSE.txt +14 -0
  159. package/storybook-static/295.2254430070adaf39d242.manager.bundle.js +1 -0
  160. package/storybook-static/51.33ed905d.iframe.bundle.js +2 -0
  161. package/storybook-static/51.33ed905d.iframe.bundle.js.LICENSE.txt +8 -0
  162. package/storybook-static/51.e7cc07022ab8980acd80.manager.bundle.js +2 -0
  163. package/storybook-static/51.e7cc07022ab8980acd80.manager.bundle.js.LICENSE.txt +8 -0
  164. package/storybook-static/551.3428ed3c.iframe.bundle.js +1 -0
  165. package/storybook-static/658.88b966648de6eea4ba47.manager.bundle.js +2 -0
  166. package/storybook-static/658.88b966648de6eea4ba47.manager.bundle.js.LICENSE.txt +94 -0
  167. package/storybook-static/701.44ff60d4.iframe.bundle.js +1 -0
  168. package/storybook-static/807.ab5e54b0.iframe.bundle.js +2 -0
  169. package/storybook-static/807.ab5e54b0.iframe.bundle.js.LICENSE.txt +31 -0
  170. package/storybook-static/807.e31394a8fb2f2a96484c.manager.bundle.js +2 -0
  171. package/storybook-static/807.e31394a8fb2f2a96484c.manager.bundle.js.LICENSE.txt +31 -0
  172. package/storybook-static/897.55fef906.iframe.bundle.js +2 -0
  173. package/storybook-static/897.55fef906.iframe.bundle.js.LICENSE.txt +12 -0
  174. package/storybook-static/897.749ac01b1c4ad3d2469a.manager.bundle.js +2 -0
  175. package/storybook-static/897.749ac01b1c4ad3d2469a.manager.bundle.js.LICENSE.txt +12 -0
  176. package/storybook-static/935.1c0488720be34f49c172.manager.bundle.js +1 -0
  177. package/storybook-static/935.21bb37c1.iframe.bundle.js +1 -0
  178. package/storybook-static/favicon.ico +0 -0
  179. package/storybook-static/iframe.html +364 -0
  180. package/storybook-static/index.html +59 -0
  181. package/storybook-static/main.807dbba6.iframe.bundle.js +1 -0
  182. package/storybook-static/main.b6920c13e539550f2e67.manager.bundle.js +1 -0
  183. package/storybook-static/project.json +1 -0
  184. package/storybook-static/runtime~main.7307b17c.iframe.bundle.js +1 -0
  185. package/storybook-static/runtime~main.c221863e46a86c2b5e83.manager.bundle.js +1 -0
  186. package/storybook-static/static/media/Bitter-Bold.091bd4b7.woff +0 -0
  187. package/storybook-static/static/media/Bitter-Bold.24bf01e4.woff2 +0 -0
  188. package/storybook-static/static/media/Bitter-Bold.46bc29e4.ttf +0 -0
  189. package/storybook-static/static/media/Bitter-Bold.790f4f2f.eot +0 -0
  190. package/storybook-static/static/media/Bitter-Italic.1fa5390c.eot +0 -0
  191. package/storybook-static/static/media/Bitter-Italic.25e5675f.woff +0 -0
  192. package/storybook-static/static/media/Bitter-Italic.2eb18f5a.ttf +0 -0
  193. package/storybook-static/static/media/Bitter-Italic.34644574.woff2 +0 -0
  194. package/storybook-static/static/media/Bitter-Regular.4b22b6e8.woff +0 -0
  195. package/storybook-static/static/media/Bitter-Regular.559e7075.eot +0 -0
  196. package/storybook-static/static/media/Bitter-Regular.8db0301b.ttf +0 -0
  197. package/storybook-static/static/media/Bitter-Regular.f4e2f1f1.woff2 +0 -0
  198. package/storybook-static/static/media/FontAwesome.91f80bba.otf +0 -0
  199. package/storybook-static/static/media/OpenSans-Bold-webfont.202d819d.eot +0 -0
  200. package/storybook-static/static/media/OpenSans-Bold-webfont.92e570c6.woff2 +0 -0
  201. package/storybook-static/static/media/OpenSans-Bold-webfont.da71e99a.ttf +0 -0
  202. package/storybook-static/static/media/OpenSans-Bold-webfont.e75949bb.woff +0 -0
  203. package/storybook-static/static/media/OpenSans-Italic-webfont.72daa33a.woff2 +0 -0
  204. package/storybook-static/static/media/OpenSans-Italic-webfont.74ead3a8.woff +0 -0
  205. package/storybook-static/static/media/OpenSans-Italic-webfont.ae19388f.eot +0 -0
  206. package/storybook-static/static/media/OpenSans-Italic-webfont.ec7a2746.ttf +0 -0
  207. package/storybook-static/static/media/OpenSans-Regular-webfont.63a5fa7d.woff +0 -0
  208. package/storybook-static/static/media/OpenSans-Regular-webfont.66451be4.ttf +0 -0
  209. package/storybook-static/static/media/OpenSans-Regular-webfont.7882d20f.eot +0 -0
  210. package/storybook-static/static/media/OpenSans-Regular-webfont.ca4dd835.woff2 +0 -0
  211. package/storybook-static/static/media/OpenSans-Semibold-webfont.17ded75f.woff2 +0 -0
  212. package/storybook-static/static/media/OpenSans-Semibold-webfont.2a5adf6c.woff +0 -0
  213. package/storybook-static/static/media/OpenSans-Semibold-webfont.6059fecb.ttf +0 -0
  214. package/storybook-static/static/media/OpenSans-Semibold-webfont.c9808185.eot +0 -0
  215. package/storybook-static/static/media/Rubik-Bold.31bbd4d2.ttf +0 -0
  216. package/storybook-static/static/media/Rubik-Light.c90e2014.ttf +0 -0
  217. package/storybook-static/static/media/Rubik-Medium.5daa89aa.ttf +0 -0
  218. package/storybook-static/static/media/Rubik-Regular.cdf97d58.ttf +0 -0
  219. package/storybook-static/static/media/add.516c6a2c.svg +1 -0
  220. package/storybook-static/static/media/arrow-both.98a55d09.svg +1 -0
  221. package/storybook-static/static/media/arrow-down.1224e180.svg +1 -0
  222. package/storybook-static/static/media/arrow-up.024ed1e2.svg +1 -0
  223. package/storybook-static/static/media/checkmark-green.e95f40d3.svg +1 -0
  224. package/storybook-static/static/media/close--primary-darker.1598e38f.svg +1 -0
  225. package/storybook-static/static/media/close--primary.c6fbc529.svg +1 -0
  226. package/storybook-static/static/media/close-alt.cbe9bdfa.svg +1 -0
  227. package/storybook-static/static/media/close.b029c732.svg +1 -0
  228. package/storybook-static/static/media/download.ac1ebfe3.svg +1 -0
  229. package/storybook-static/static/media/error.e4c6e2ea.svg +1 -0
  230. package/storybook-static/static/media/fontawesome-webfont.1e59d233.ttf +0 -0
  231. package/storybook-static/static/media/fontawesome-webfont.20fd1704.woff2 +0 -0
  232. package/storybook-static/static/media/fontawesome-webfont.8b43027f.eot +0 -0
  233. package/storybook-static/static/media/fontawesome-webfont.c1e38fd9.svg +2671 -0
  234. package/storybook-static/static/media/fontawesome-webfont.f691f37e.woff +0 -0
  235. package/storybook-static/static/media/image.e055c497.svg +1 -0
  236. package/storybook-static/static/media/information-new-hover.d169a37f.svg +1 -0
  237. package/storybook-static/static/media/information-new.eca52b6e.svg +1 -0
  238. package/storybook-static/static/media/information.5e48eb82.svg +1 -0
  239. package/storybook-static/static/media/next.a0daa26b.svg +1 -0
  240. package/storybook-static/static/media/pdf.5f5442b3.svg +1 -0
  241. package/storybook-static/static/media/remove.4daa5f40.svg +1 -0
  242. package/storybook-static/static/media/star-filled.7d90fd71.svg +1 -0
  243. package/storybook-static/static/media/star.b034e696.svg +1 -0
  244. package/storybook-static/static/media/success-fill.033f2cf9.svg +1 -0
  245. package/storybook-static/static/media/success.4c56e56c.svg +1 -0
  246. package/storybook-static/static/media/warning.2ca99405.svg +1 -0
  247. package/styles/_qpp-style.scss +1 -0
  248. package/styles/components/_toast.scss +84 -0
  249. package/styles/qppds/components/_toast.scss +84 -0
  250. package/styles/qppds/components/index.scss +1 -0
  251. package/test/components/MadiePopover.test.js +77 -0
  252. package/test/components/Toast.test.js +66 -0
@@ -1,5 +1,7 @@
1
1
  import React from "react";
2
2
  import PropTypes from "prop-types";
3
+ import { visuallyHidden } from '@mui/utils';
4
+
3
5
  import {
4
6
  Pagination as PaginationComponent,
5
7
  PaginationItem,
@@ -57,13 +59,19 @@ const Pagination = ({
57
59
  return (
58
60
  <Container>
59
61
  <Row>
62
+ {/*this span is only for screen reader*/}
63
+ <span
64
+ id="items-per-page"
65
+ style={visuallyHidden}
66
+ >
67
+ Items per page {limit}.
68
+ </span>
60
69
  <Typography
61
70
  fontSize={14}
62
71
  fontFamily="Rubik"
63
72
  sx={{
64
73
  color: "#333333",
65
74
  }}
66
- id="items-per-page"
67
75
  >
68
76
  Items per page
69
77
  </Typography>
@@ -87,6 +95,7 @@ const Pagination = ({
87
95
  label={null}
88
96
  onChange={handleLimitChange}
89
97
  inputProps={{
98
+ "aria-labelledby":"items-per-page",
90
99
  "aria-describedby": "items-per-page offset-of-total-items",
91
100
  }}
92
101
  >
@@ -206,4 +215,4 @@ Pagination.propTypes = {
206
215
  type: PropTypes.string,
207
216
  };
208
217
 
209
- export { Pagination };
218
+ export { Pagination };
@@ -0,0 +1,55 @@
1
+ import React, { useState } from "react";
2
+ import Popover from "./index";
3
+ import { withKnobs } from "@storybook/addon-knobs";
4
+
5
+ export default {
6
+ title: "Popover",
7
+ component: Popover,
8
+ decorators: [withKnobs],
9
+ };
10
+
11
+ export const PopOver = () => {
12
+ const [anchorEl, setAnchorEl] = useState(null);
13
+ const [optionsOpen, setOptionsOpen] = useState(false);
14
+
15
+ const onClose = () => {
16
+ setOptionsOpen(false);
17
+ };
18
+
19
+ const handleOpen = (e) => {
20
+ setAnchorEl(e.currentTarget);
21
+ setOptionsOpen(true);
22
+ };
23
+
24
+ const viewEditredirect = () => {
25
+ setOptionsOpen(false);
26
+ };
27
+
28
+ const zipData = () => {
29
+ setOptionsOpen(false);
30
+ };
31
+
32
+ return (
33
+ <div className="qpp-u-padding--12">
34
+ <button className="qpp-c-button" onClick={(e) => handleOpen(e)}>
35
+ Open Popover
36
+ </button>
37
+ <Popover
38
+ optionsOpen={optionsOpen}
39
+ anchorEl={anchorEl}
40
+ onClose={onClose}
41
+ canEdit={true}
42
+ editViewSelectOptionProps={{
43
+ label: "View",
44
+ toImplementFunction: viewEditredirect,
45
+ dataTestId: `edit-measure-1`,
46
+ }}
47
+ otherSelectOptionProps={[{
48
+ label: "Export",
49
+ toImplementFunction: zipData,
50
+ dataTestId: `export-measure-1`,
51
+ }]}
52
+ />
53
+ </div>
54
+ );
55
+ };
@@ -0,0 +1,110 @@
1
+ import React from "react";
2
+ import PropTypes from "prop-types";
3
+ import Popover from "@mui/material/Popover";
4
+
5
+ const MadiePopover = ({
6
+ optionsOpen,
7
+ anchorEl,
8
+ handleClose,
9
+ canEdit,
10
+ editViewSelectOptionProps,
11
+ otherSelectOptionProps,
12
+ }) => {
13
+ return (
14
+ <Popover
15
+ open={optionsOpen}
16
+ anchorEl={anchorEl}
17
+ onClose={handleClose}
18
+ anchorOrigin={{
19
+ vertical: "bottom",
20
+ horizontal: "right",
21
+ }}
22
+ transformOrigin={{
23
+ vertical: "top",
24
+ horizontal: "left",
25
+ }}
26
+ sx={{
27
+ ".MuiPopover-paper": {
28
+ boxShadow: "none",
29
+ overflow: "visible",
30
+ ".popover-content": {
31
+ border: "solid 1px #979797",
32
+ position: "relative",
33
+ marginTop: "16px",
34
+ marginLeft: "-70px",
35
+ borderRadius: "6px",
36
+ background: "#F7F7F7",
37
+ width: "115px",
38
+ "&::before": {
39
+ borderWidth: "thin",
40
+ position: "absolute",
41
+ top: "-8px",
42
+ left: "calc(50% - 8px)",
43
+ height: "16px",
44
+ width: "16px",
45
+ background: "#F7F7F7",
46
+ borderColor:
47
+ "#979797 transparent transparent #979797",
48
+ content: '""',
49
+ transform: "rotate(45deg)",
50
+ },
51
+ ".btn-container": {
52
+ display: "flex",
53
+ flexDirection: "column",
54
+ padding: "10px 0",
55
+ button: {
56
+ zIndex: 2,
57
+ fontSize: 14,
58
+ padding: "0px 12px",
59
+ textAlign: "left",
60
+ "&:hover": {
61
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
62
+ },
63
+ },
64
+ },
65
+ },
66
+ },
67
+ }}
68
+ >
69
+ <div className="popover-content" data-testid="popover-content">
70
+ <div className="btn-container">
71
+ <button
72
+ data-testid={editViewSelectOptionProps.dataTestId}
73
+ onClick={editViewSelectOptionProps.toImplementFunction}
74
+ >
75
+ {editViewSelectOptionProps.label}
76
+ </button>
77
+ {canEdit &&
78
+ otherSelectOptionProps.map((res) => {
79
+ return (
80
+ <button
81
+ key={res.dataTestId}
82
+ data-testid={res.dataTestId}
83
+ onClick={res.toImplementFunction}
84
+ >
85
+ {res.label}
86
+ </button>
87
+ );
88
+ })}
89
+ </div>
90
+ </div>
91
+ </Popover>
92
+ );
93
+ };
94
+
95
+ MadiePopover.propTypes = {
96
+ optionsOpen: PropTypes.bool,
97
+ anchorEl: PropTypes.any,
98
+ handleClose: PropTypes.func,
99
+ canEdit: PropTypes.bool,
100
+ editViewSelectOptionProps: PropTypes.object,
101
+ otherSelectOptionProps: PropTypes.arrayOf(
102
+ PropTypes.shape({
103
+ dataTestId: PropTypes.string,
104
+ label: PropTypes.string,
105
+ toImplementFunction: PropTypes.func,
106
+ })
107
+ ),
108
+ };
109
+
110
+ export default MadiePopover;
@@ -41,6 +41,72 @@ export const SuccessToast = () => {
41
41
  );
42
42
  };
43
43
 
44
+ export const WarningToast = () => {
45
+ const [toastOpen, setToastOpen] = useState(false);
46
+ return (
47
+ <div
48
+ style={{
49
+ height: "100vh",
50
+ width: "100vw",
51
+ backgroundColor: "#242424",
52
+ }}
53
+ >
54
+ <button
55
+ onClick={() => setToastOpen(true)}
56
+ style={{
57
+ position: "absolute",
58
+ top: "50%",
59
+ left: "calc(50% - 80px)",
60
+ }}
61
+ >
62
+ Simulate Warning
63
+ </button>
64
+ <Toast
65
+ toastKey="toast-key"
66
+ toastType="warning"
67
+ testId="warning-toast"
68
+ open={toastOpen}
69
+ message="Something has gone wrong. consider fixing before continuing"
70
+ onClose={() => setToastOpen(false)}
71
+ autoHideDuration={3000}
72
+ />
73
+ </div>
74
+ );
75
+ };
76
+
77
+ export const InfoToast = () => {
78
+ const [toastOpen, setToastOpen] = useState(false);
79
+ return (
80
+ <div
81
+ style={{
82
+ height: "100vh",
83
+ width: "100vw",
84
+ backgroundColor: "#242424",
85
+ }}
86
+ >
87
+ <button
88
+ onClick={() => setToastOpen(true)}
89
+ style={{
90
+ position: "absolute",
91
+ top: "50%",
92
+ left: "calc(50% - 80px)",
93
+ }}
94
+ >
95
+ Simulate Info
96
+ </button>
97
+ <Toast
98
+ toastKey="toast-key"
99
+ toastType="info"
100
+ testId="info-toast"
101
+ open={toastOpen}
102
+ message="Some useful information"
103
+ onClose={() => setToastOpen(false)}
104
+ autoHideDuration={3000}
105
+ />
106
+ </div>
107
+ );
108
+ };
109
+
44
110
  export const DangerToast = () => {
45
111
  const [toastOpen, setToastOpen] = useState(false);
46
112
  return (
@@ -1,73 +1,84 @@
1
1
  import React from "react";
2
- import PropTypes from "prop-types";
2
+
3
+ import ErrorIcon from "@mui/icons-material/Error"; // warning
4
+ import InfoIcon from "@mui/icons-material/Info"; // info
5
+ import CancelIcon from "@mui/icons-material/Cancel"; // error
6
+ import CheckCircleIcon from "@mui/icons-material/CheckCircle"; //success
7
+
3
8
  import { IconButton, Snackbar } from "@mui/material";
4
- import CloseIcon from "@mui/icons-material/Close";
5
- import ErrorOutlineIcon from "@mui/icons-material/ErrorOutline";
6
- import CheckCircleOutlineIcon from "@mui/icons-material/CheckCircleOutline";
9
+ import ClearIcon from "@mui/icons-material/Clear";
10
+
11
+ import classNames from "classnames";
12
+ import PropTypes from "prop-types";
7
13
 
8
14
  const Toast = ({
9
- open,
15
+ toastType = "warning",
16
+ open = true,
10
17
  message,
11
- toastType, // 'danger | success, more later when mockups come out
12
- autoHideDuration,
18
+ canClose = true,
13
19
  onClose,
20
+ autoHideDuration,
14
21
  testId,
15
22
  toastKey,
23
+ toastProps, // props to pass to outer component
24
+ closeButtonProps, // props to pass to close button
16
25
  ...rest
17
26
  }) => {
18
- const dangerColor = "#D92F2F";
19
- const successColor = "#4d7e23";
20
- // we can map our colors and icons to make this reusable for multiple info types.
21
- const colorMap = {
22
- danger: dangerColor,
23
- success: successColor,
24
- };
25
- const iconMap = {
26
- danger: ErrorOutlineIcon,
27
- success: CheckCircleOutlineIcon,
27
+ // we have four states to render for
28
+ const typeSelect = {
29
+ warning: ErrorIcon,
30
+ info: InfoIcon,
31
+ danger: CancelIcon,
32
+ success: CheckCircleIcon,
28
33
  };
29
- const selectedColor = colorMap[toastType];
30
- const SelectedIcon = iconMap[toastType];
34
+ const Icon = typeSelect[toastType];
35
+
36
+ const toastClass = classNames("toast", toastType);
37
+ const iconClass = classNames("alert-icon", toastType);
31
38
 
32
- const Message = (
33
- <div className="messageCont">
34
- <div>
35
- <div className="errorCont">
36
- {SelectedIcon && <SelectedIcon className="leftIcon" />}
37
- </div>
38
- <p className="messageText" data-testid={testId}>
39
- {message}
40
- </p>
41
- </div>
42
- <div style={{ display: "block" }}>
43
- <IconButton
44
- className="icon-button"
45
- aria-label="close"
46
- color="inherit"
47
- sx={{ p: 0 }}
48
- onClick={onClose}
49
- data-testId="close-error-button"
50
- >
51
- <CloseIcon />
52
- </IconButton>
53
- </div>
54
- </div>
55
- );
56
39
  return (
57
40
  <Snackbar
58
41
  key={toastKey ? toastKey : undefined}
59
- anchorOrigin={{ vertical: "bottom", horizontal: "center" }}
42
+ anchorOrigin={{ vertical: "top", horizontal: "center" }}
43
+ autoHideDuration={autoHideDuration}
44
+ open={open}
45
+ onClose={onClose}
46
+ message={
47
+ <div className={toastClass} {...toastProps}>
48
+ <Icon className={iconClass} />
49
+ <div id="message" data-testid={testId}>{message}</div>
50
+ {canClose && (
51
+ <IconButton
52
+ onClick={onClose}
53
+ sx={{
54
+ marginLeft: "auto",
55
+ "&:after": {
56
+ content: `''`,
57
+ position: "absolute",
58
+ left: "0px",
59
+ width: "1px",
60
+ height: "40px",
61
+ backgroundColor: "#B0B0B0",
62
+ pointerEvents: "none",
63
+ },
64
+ }}
65
+ {...closeButtonProps}
66
+ >
67
+ <ClearIcon sx={{ color: "#242424" }} />
68
+ </IconButton>
69
+ )}
70
+ </div>
71
+ }
60
72
  sx={{
61
73
  overflow: "hidden",
62
- color: selectedColor,
63
- borderRadius: 1,
74
+ // borderRadius: 4,
64
75
  "& .MuiPaper-root": {
65
76
  backgroundColor: "#fff",
66
77
  padding: 0,
67
- color: selectedColor,
68
78
  },
69
- "& .MuiSvgIcon-root": {
70
- color: "#242424",
79
+ "& .MuiSnackbar-root": {
80
+ overflow: "hidden",
81
+ borderRadius: 4,
71
82
  },
72
83
  "& .MuiSnackbarContent-message": {
73
84
  padding: 0,
@@ -79,50 +90,26 @@ const Toast = ({
79
90
  justifyContent: "space-between",
80
91
  div: {
81
92
  display: "flex",
82
- ".messageText": {
83
- m: 0,
84
- p: 2.375,
85
- fontFamily: "Rubik",
86
- fontWeight: 500,
87
- fontSize: 14,
88
- },
89
- ".errorCont": {
90
- backgroundColor: selectedColor,
91
- ".leftIcon": {
92
- m: 2,
93
- color: "#fff",
94
- },
95
- },
96
- ".icon-button": {
97
- m: 2,
98
- "&. MuiSvgIcon-root": {
99
- color: "#242424",
100
- },
101
- },
102
93
  },
103
94
  },
104
- "& .MuiSvgIcon-root": {
105
- color: "#242424",
106
- },
107
95
  },
108
96
  }}
109
- autoHideDuration={autoHideDuration}
110
- open={open}
111
- onClose={onClose}
112
- message={message ? Message : undefined}
113
97
  {...rest}
114
98
  />
115
99
  );
116
100
  };
117
101
 
118
102
  Toast.propTypes = {
103
+ toastType: PropTypes.string,
119
104
  open: PropTypes.bool,
120
- message: PropTypes.string,
121
- toastType: PropTypes.string, // 'danger | success, more later when mockups come out
122
- autoHideDuration: PropTypes.number,
105
+ message: PropTypes.node,
106
+ canClose: PropTypes.bool,
123
107
  onClose: PropTypes.func,
108
+ autoHideDuration: PropTypes.number,
124
109
  testId: PropTypes.string,
125
110
  toastKey: PropTypes.string,
111
+ toastProps: PropTypes.object,
112
+ closeButtonProps: PropTypes.object,
126
113
  };
127
114
 
128
115
  export default Toast;
@@ -1,6 +1,6 @@
1
1
  import Accordion from "./Accordion";
2
2
  import Alert from "./Alert";
3
- import AutoComplete from "./AutoComplete/AutoComplete"
3
+ import AutoComplete from "./AutoComplete/AutoComplete";
4
4
  import Breadcrumb from "./Breadcrumb";
5
5
  import Button, { TextButton } from "./Button";
6
6
  import CalloutBox from "./CalloutBox";
@@ -15,6 +15,7 @@ import MadieDiscardDialog from "./MadieDiscardDialog";
15
15
  import MadieDeleteDialog from "./MadieDeleteDialog";
16
16
  import MadieSpinner from "./MadieSpinner";
17
17
  import Modal from "./Modal";
18
+ import Popover from "./Popover";
18
19
  import { Pagination } from "./Pagination";
19
20
  import ReadOnlyTextField from "./ReadOnlyTextField";
20
21
  import Select from "./Select";
@@ -132,6 +133,7 @@ export {
132
133
  MadieDeleteDialog,
133
134
  MadieSpinner,
134
135
  Pagination,
136
+ Popover,
135
137
  ReadOnlyTextField,
136
138
  Search,
137
139
  Select,