@madie/madie-design-system 1.0.34 → 1.0.36

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 (250) hide show
  1. package/components/AutoComplete/AutoComplete.jsx +10 -0
  2. package/components/Select/index.jsx +3 -2
  3. package/components/TextField/index.jsx +2 -1
  4. package/components/Toast/Toast.stories.js +66 -0
  5. package/components/Toast/index.jsx +66 -79
  6. package/coverage/clover.xml +613 -0
  7. package/coverage/coverage-final.json +39 -0
  8. package/coverage/lcov-report/Button/index.html +116 -0
  9. package/coverage/lcov-report/Button/index.js.html +376 -0
  10. package/coverage/lcov-report/InputLabel/index.html +116 -0
  11. package/coverage/lcov-report/InputLabel/index.jsx.html +259 -0
  12. package/coverage/lcov-report/MadieDialog/Index.jsx.html +853 -0
  13. package/coverage/lcov-report/MadieDialog/index.html +116 -0
  14. package/coverage/lcov-report/MadieSpinner/index.html +116 -0
  15. package/coverage/lcov-report/MadieSpinner/index.jsx.html +196 -0
  16. package/coverage/lcov-report/Select/index.html +116 -0
  17. package/coverage/lcov-report/Select/index.jsx.html +391 -0
  18. package/coverage/lcov-report/Textfield/index.html +116 -0
  19. package/coverage/lcov-report/Textfield/index.jsx.html +325 -0
  20. package/coverage/lcov-report/base.css +224 -0
  21. package/coverage/lcov-report/block-navigation.js +87 -0
  22. package/coverage/lcov-report/favicon.png +0 -0
  23. package/coverage/lcov-report/index.html +446 -0
  24. package/coverage/lcov-report/index.jsx.html +448 -0
  25. package/coverage/lcov-report/prettify.css +1 -0
  26. package/coverage/lcov-report/prettify.js +2 -0
  27. package/coverage/lcov-report/react/components/Accordion/index.html +116 -0
  28. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +370 -0
  29. package/coverage/lcov-report/react/components/Button/index.html +116 -0
  30. package/coverage/lcov-report/react/components/Button/index.js.html +376 -0
  31. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +364 -0
  32. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +178 -0
  33. package/coverage/lcov-report/react/components/Error/error.js.html +163 -0
  34. package/coverage/lcov-report/react/components/Error/index.html +146 -0
  35. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +496 -0
  36. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +697 -0
  37. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +274 -0
  38. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +187 -0
  39. package/coverage/lcov-report/react/components/Footer/footer.js.html +175 -0
  40. package/coverage/lcov-report/react/components/Footer/index.html +146 -0
  41. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +634 -0
  42. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +133 -0
  43. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +289 -0
  44. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +211 -0
  45. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +235 -0
  46. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +922 -0
  47. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +235 -0
  48. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  49. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +196 -0
  50. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +637 -0
  51. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +181 -0
  52. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +265 -0
  53. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +166 -0
  54. package/coverage/lcov-report/react/components/Header/header.js.html +211 -0
  55. package/coverage/lcov-report/react/components/Header/hooks.js.html +262 -0
  56. package/coverage/lcov-report/react/components/Header/index.html +341 -0
  57. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +112 -0
  58. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +310 -0
  59. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +208 -0
  60. package/coverage/lcov-report/react/components/Infotip/index.html +146 -0
  61. package/coverage/lcov-report/react/components/Infotip/index.js.html +94 -0
  62. package/coverage/lcov-report/react/components/InputLabel/index.html +116 -0
  63. package/coverage/lcov-report/react/components/InputLabel/index.jsx.html +244 -0
  64. package/coverage/lcov-report/react/components/MadieAlert/MadieAlert.scss.html +334 -0
  65. package/coverage/lcov-report/react/components/MadieAlert/index.html +131 -0
  66. package/coverage/lcov-report/react/components/MadieAlert/index.jsx.html +271 -0
  67. package/coverage/lcov-report/react/components/MadieDialog/Index.jsx.html +856 -0
  68. package/coverage/lcov-report/react/components/MadieDialog/index.html +116 -0
  69. package/coverage/lcov-report/react/components/MadieDiscardDialog/index.html +116 -0
  70. package/coverage/lcov-report/react/components/MadieDiscardDialog/index.jsx.html +232 -0
  71. package/coverage/lcov-report/react/components/MadieSpinner/index.html +116 -0
  72. package/coverage/lcov-report/react/components/MadieSpinner/index.jsx.html +190 -0
  73. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +307 -0
  74. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +505 -0
  75. package/coverage/lcov-report/react/components/Modal/index.html +146 -0
  76. package/coverage/lcov-report/react/components/Modal/index.jsx.html +151 -0
  77. package/coverage/lcov-report/react/components/NotificationBanner/index.html +116 -0
  78. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +922 -0
  79. package/coverage/lcov-report/react/components/Pagination/index.html +116 -0
  80. package/coverage/lcov-report/react/components/Pagination/index.jsx.html +697 -0
  81. package/coverage/lcov-report/react/components/ReadOnlyTextField/index.html +116 -0
  82. package/coverage/lcov-report/react/components/ReadOnlyTextField/index.jsx.html +313 -0
  83. package/coverage/lcov-report/react/components/SanitizedContent/index.html +116 -0
  84. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +685 -0
  85. package/coverage/lcov-report/react/components/Select/index.html +116 -0
  86. package/coverage/lcov-report/react/components/Select/index.jsx.html +427 -0
  87. package/coverage/lcov-report/react/components/SessionDialog/index.html +116 -0
  88. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +163 -0
  89. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +904 -0
  90. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +172 -0
  91. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +116 -0
  92. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +916 -0
  93. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +131 -0
  94. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +94 -0
  95. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +721 -0
  96. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +772 -0
  97. package/coverage/lcov-report/react/components/SideNav/Content/index.html +146 -0
  98. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +97 -0
  99. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +139 -0
  100. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +226 -0
  101. package/coverage/lcov-report/react/components/SideNav/Details/index.html +146 -0
  102. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +97 -0
  103. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +208 -0
  104. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +247 -0
  105. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +205 -0
  106. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +940 -0
  107. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +412 -0
  108. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +187 -0
  109. package/coverage/lcov-report/react/components/SideNav/Links/index.html +206 -0
  110. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +124 -0
  111. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +1144 -0
  112. package/coverage/lcov-report/react/components/SideNav/UI/index.html +131 -0
  113. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +94 -0
  114. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +232 -0
  115. package/coverage/lcov-report/react/components/SideNav/index.html +131 -0
  116. package/coverage/lcov-report/react/components/SideNav/index.js.html +244 -0
  117. package/coverage/lcov-report/react/components/Textfield/index.html +116 -0
  118. package/coverage/lcov-report/react/components/Textfield/index.jsx.html +307 -0
  119. package/coverage/lcov-report/react/components/Toast/index.html +116 -0
  120. package/coverage/lcov-report/react/components/Toast/index.jsx.html +469 -0
  121. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +349 -0
  122. package/coverage/lcov-report/react/components/Tooltip/index.html +146 -0
  123. package/coverage/lcov-report/react/components/Tooltip/index.js.html +94 -0
  124. package/coverage/lcov-report/react/components/Tooltip/position.js.html +313 -0
  125. package/coverage/lcov-report/react/components/hooks/index.html +116 -0
  126. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +334 -0
  127. package/coverage/lcov-report/react/components/index.html +116 -0
  128. package/coverage/lcov-report/react/index.html +116 -0
  129. package/coverage/lcov-report/react/index.js.html +148 -0
  130. package/coverage/lcov-report/react/lib/Chevron.jsx.html +181 -0
  131. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1702 -0
  132. package/coverage/lcov-report/react/lib/index.html +131 -0
  133. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +460 -0
  134. package/coverage/lcov-report/react/session/index.html +161 -0
  135. package/coverage/lcov-report/react/session/index.js.html +100 -0
  136. package/coverage/lcov-report/react/session/logout.js.html +280 -0
  137. package/coverage/lcov-report/react/session/refresh.js.html +232 -0
  138. package/coverage/lcov-report/react/session/ttl.js.html +196 -0
  139. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  140. package/coverage/lcov-report/sorter.js +196 -0
  141. package/coverage/lcov.info +1261 -0
  142. package/dist/browser.js +1 -1
  143. package/dist/index.js +1 -1
  144. package/dist/react/index.js +19 -19
  145. package/dist/react/index.js.LICENSE.txt +7 -13
  146. package/dist/react/index.js.map +1 -1
  147. package/package.json +1 -1
  148. package/storybook-static/115.052877d9.iframe.bundle.js +2 -0
  149. package/storybook-static/115.052877d9.iframe.bundle.js.LICENSE.txt +11 -0
  150. package/storybook-static/181.e295335e7d22cc10734c.manager.bundle.js +1 -0
  151. package/storybook-static/229.4bb41a80.iframe.bundle.js +1 -0
  152. package/storybook-static/229.f4563e3b88a69879e628.manager.bundle.js +1 -0
  153. package/storybook-static/270.98f52535.iframe.bundle.js +103 -0
  154. package/storybook-static/270.98f52535.iframe.bundle.js.LICENSE.txt +131 -0
  155. package/storybook-static/270.98f52535.iframe.bundle.js.map +1 -0
  156. package/storybook-static/273.bdf29c3c.iframe.bundle.js +2 -0
  157. package/storybook-static/273.bdf29c3c.iframe.bundle.js.LICENSE.txt +14 -0
  158. package/storybook-static/295.2254430070adaf39d242.manager.bundle.js +1 -0
  159. package/storybook-static/51.33ed905d.iframe.bundle.js +2 -0
  160. package/storybook-static/51.33ed905d.iframe.bundle.js.LICENSE.txt +8 -0
  161. package/storybook-static/51.e7cc07022ab8980acd80.manager.bundle.js +2 -0
  162. package/storybook-static/51.e7cc07022ab8980acd80.manager.bundle.js.LICENSE.txt +8 -0
  163. package/storybook-static/551.3428ed3c.iframe.bundle.js +1 -0
  164. package/storybook-static/658.88b966648de6eea4ba47.manager.bundle.js +2 -0
  165. package/storybook-static/658.88b966648de6eea4ba47.manager.bundle.js.LICENSE.txt +94 -0
  166. package/storybook-static/701.44ff60d4.iframe.bundle.js +1 -0
  167. package/storybook-static/807.ab5e54b0.iframe.bundle.js +2 -0
  168. package/storybook-static/807.ab5e54b0.iframe.bundle.js.LICENSE.txt +31 -0
  169. package/storybook-static/807.e31394a8fb2f2a96484c.manager.bundle.js +2 -0
  170. package/storybook-static/807.e31394a8fb2f2a96484c.manager.bundle.js.LICENSE.txt +31 -0
  171. package/storybook-static/897.55fef906.iframe.bundle.js +2 -0
  172. package/storybook-static/897.55fef906.iframe.bundle.js.LICENSE.txt +12 -0
  173. package/storybook-static/897.749ac01b1c4ad3d2469a.manager.bundle.js +2 -0
  174. package/storybook-static/897.749ac01b1c4ad3d2469a.manager.bundle.js.LICENSE.txt +12 -0
  175. package/storybook-static/935.1c0488720be34f49c172.manager.bundle.js +1 -0
  176. package/storybook-static/935.21bb37c1.iframe.bundle.js +1 -0
  177. package/storybook-static/favicon.ico +0 -0
  178. package/storybook-static/iframe.html +364 -0
  179. package/storybook-static/index.html +59 -0
  180. package/storybook-static/main.807dbba6.iframe.bundle.js +1 -0
  181. package/storybook-static/main.b6920c13e539550f2e67.manager.bundle.js +1 -0
  182. package/storybook-static/project.json +1 -0
  183. package/storybook-static/runtime~main.7307b17c.iframe.bundle.js +1 -0
  184. package/storybook-static/runtime~main.c221863e46a86c2b5e83.manager.bundle.js +1 -0
  185. package/storybook-static/static/media/Bitter-Bold.091bd4b7.woff +0 -0
  186. package/storybook-static/static/media/Bitter-Bold.24bf01e4.woff2 +0 -0
  187. package/storybook-static/static/media/Bitter-Bold.46bc29e4.ttf +0 -0
  188. package/storybook-static/static/media/Bitter-Bold.790f4f2f.eot +0 -0
  189. package/storybook-static/static/media/Bitter-Italic.1fa5390c.eot +0 -0
  190. package/storybook-static/static/media/Bitter-Italic.25e5675f.woff +0 -0
  191. package/storybook-static/static/media/Bitter-Italic.2eb18f5a.ttf +0 -0
  192. package/storybook-static/static/media/Bitter-Italic.34644574.woff2 +0 -0
  193. package/storybook-static/static/media/Bitter-Regular.4b22b6e8.woff +0 -0
  194. package/storybook-static/static/media/Bitter-Regular.559e7075.eot +0 -0
  195. package/storybook-static/static/media/Bitter-Regular.8db0301b.ttf +0 -0
  196. package/storybook-static/static/media/Bitter-Regular.f4e2f1f1.woff2 +0 -0
  197. package/storybook-static/static/media/FontAwesome.91f80bba.otf +0 -0
  198. package/storybook-static/static/media/OpenSans-Bold-webfont.202d819d.eot +0 -0
  199. package/storybook-static/static/media/OpenSans-Bold-webfont.92e570c6.woff2 +0 -0
  200. package/storybook-static/static/media/OpenSans-Bold-webfont.da71e99a.ttf +0 -0
  201. package/storybook-static/static/media/OpenSans-Bold-webfont.e75949bb.woff +0 -0
  202. package/storybook-static/static/media/OpenSans-Italic-webfont.72daa33a.woff2 +0 -0
  203. package/storybook-static/static/media/OpenSans-Italic-webfont.74ead3a8.woff +0 -0
  204. package/storybook-static/static/media/OpenSans-Italic-webfont.ae19388f.eot +0 -0
  205. package/storybook-static/static/media/OpenSans-Italic-webfont.ec7a2746.ttf +0 -0
  206. package/storybook-static/static/media/OpenSans-Regular-webfont.63a5fa7d.woff +0 -0
  207. package/storybook-static/static/media/OpenSans-Regular-webfont.66451be4.ttf +0 -0
  208. package/storybook-static/static/media/OpenSans-Regular-webfont.7882d20f.eot +0 -0
  209. package/storybook-static/static/media/OpenSans-Regular-webfont.ca4dd835.woff2 +0 -0
  210. package/storybook-static/static/media/OpenSans-Semibold-webfont.17ded75f.woff2 +0 -0
  211. package/storybook-static/static/media/OpenSans-Semibold-webfont.2a5adf6c.woff +0 -0
  212. package/storybook-static/static/media/OpenSans-Semibold-webfont.6059fecb.ttf +0 -0
  213. package/storybook-static/static/media/OpenSans-Semibold-webfont.c9808185.eot +0 -0
  214. package/storybook-static/static/media/Rubik-Bold.31bbd4d2.ttf +0 -0
  215. package/storybook-static/static/media/Rubik-Light.c90e2014.ttf +0 -0
  216. package/storybook-static/static/media/Rubik-Medium.5daa89aa.ttf +0 -0
  217. package/storybook-static/static/media/Rubik-Regular.cdf97d58.ttf +0 -0
  218. package/storybook-static/static/media/add.516c6a2c.svg +1 -0
  219. package/storybook-static/static/media/arrow-both.98a55d09.svg +1 -0
  220. package/storybook-static/static/media/arrow-down.1224e180.svg +1 -0
  221. package/storybook-static/static/media/arrow-up.024ed1e2.svg +1 -0
  222. package/storybook-static/static/media/checkmark-green.e95f40d3.svg +1 -0
  223. package/storybook-static/static/media/close--primary-darker.1598e38f.svg +1 -0
  224. package/storybook-static/static/media/close--primary.c6fbc529.svg +1 -0
  225. package/storybook-static/static/media/close-alt.cbe9bdfa.svg +1 -0
  226. package/storybook-static/static/media/close.b029c732.svg +1 -0
  227. package/storybook-static/static/media/download.ac1ebfe3.svg +1 -0
  228. package/storybook-static/static/media/error.e4c6e2ea.svg +1 -0
  229. package/storybook-static/static/media/fontawesome-webfont.1e59d233.ttf +0 -0
  230. package/storybook-static/static/media/fontawesome-webfont.20fd1704.woff2 +0 -0
  231. package/storybook-static/static/media/fontawesome-webfont.8b43027f.eot +0 -0
  232. package/storybook-static/static/media/fontawesome-webfont.c1e38fd9.svg +2671 -0
  233. package/storybook-static/static/media/fontawesome-webfont.f691f37e.woff +0 -0
  234. package/storybook-static/static/media/image.e055c497.svg +1 -0
  235. package/storybook-static/static/media/information-new-hover.d169a37f.svg +1 -0
  236. package/storybook-static/static/media/information-new.eca52b6e.svg +1 -0
  237. package/storybook-static/static/media/information.5e48eb82.svg +1 -0
  238. package/storybook-static/static/media/next.a0daa26b.svg +1 -0
  239. package/storybook-static/static/media/pdf.5f5442b3.svg +1 -0
  240. package/storybook-static/static/media/remove.4daa5f40.svg +1 -0
  241. package/storybook-static/static/media/star-filled.7d90fd71.svg +1 -0
  242. package/storybook-static/static/media/star.b034e696.svg +1 -0
  243. package/storybook-static/static/media/success-fill.033f2cf9.svg +1 -0
  244. package/storybook-static/static/media/success.4c56e56c.svg +1 -0
  245. package/storybook-static/static/media/warning.2ca99405.svg +1 -0
  246. package/styles/_qpp-style.scss +1 -0
  247. package/styles/components/_toast.scss +84 -0
  248. package/styles/qppds/components/_toast.scss +84 -0
  249. package/styles/qppds/components/index.scss +1 -0
  250. package/test/components/Toast.test.js +66 -0
@@ -119,6 +119,16 @@ const AutoComplete = ({
119
119
  inputProps["aria-labelledby"] = `${id}-label`;
120
120
  return (
121
121
  <TextField
122
+ sx={{
123
+ "& .MuiInputBase-input": {
124
+ opacity: 1,
125
+ color: "#333",
126
+ "&::placeholder": {
127
+ opacity: 1,
128
+ color: "#717171"
129
+ },
130
+ },
131
+ }}
122
132
  {...params}
123
133
  placeholder={placeholder}
124
134
  inputProps={inputProps}
@@ -23,12 +23,13 @@ const selectStyles = {
23
23
  },
24
24
  // input base selector
25
25
  "& .MuiInputBase-input": {
26
+ color: "#333",
26
27
  fontFamily: "Rubik",
27
28
  fontSize: 14,
28
29
  borderRadius: "3px",
29
30
  padding: "9px 14px",
30
31
  "&::placeholder": {
31
- opacity: 0.6,
32
+ color: "#717171"
32
33
  },
33
34
  },
34
35
  "& .MuiSelect-icon": {
@@ -60,7 +61,7 @@ const Select = ({
60
61
  ...rest
61
62
  }) => {
62
63
  const placehold = (
63
- <span style={{ opacity: 0.6 }}>
64
+ <span style={{ color: "#717171" }}>
64
65
  {placeHolder?.name || "placeholder"}
65
66
  </span>
66
67
  );
@@ -46,12 +46,13 @@ const TextField = ({
46
46
  },
47
47
  // input base selector
48
48
  "& .MuiInputBase-input": {
49
+ color: "#333",
49
50
  fontFamily: "Rubik",
50
51
  fontSize: 14,
51
52
  borderRadius: "3px",
52
53
  padding: "9px 14px",
53
54
  "&::placeholder": {
54
- opacity: 0.6,
55
+ color: "#717171"
55
56
  },
56
57
  },
57
58
  }}
@@ -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;