@nypl/design-system-react-components 0.25.0 → 0.25.4

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 (392) hide show
  1. package/CHANGELOG.md +142 -1
  2. package/README.md +98 -50
  3. package/dist/components/Accordion/Accordion.d.ts +14 -14
  4. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +15 -14
  5. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +6 -0
  6. package/dist/components/Button/Button.d.ts +13 -8
  7. package/dist/components/Button/ButtonTypes.d.ts +3 -1
  8. package/dist/components/Card/Card.d.ts +36 -52
  9. package/dist/components/Card/CardTypes.d.ts +2 -17
  10. package/dist/components/Checkbox/Checkbox.d.ts +17 -13
  11. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +45 -0
  12. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +4 -0
  13. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
  14. package/dist/components/DatePicker/DatePicker.d.ts +37 -35
  15. package/dist/components/Fieldset/Fieldset.d.ts +25 -0
  16. package/dist/components/Form/Form.d.ts +13 -8
  17. package/dist/components/Form/FormTypes.d.ts +2 -8
  18. package/dist/components/Grid/GridTypes.d.ts +9 -0
  19. package/dist/components/Grid/SimpleGrid.d.ts +14 -0
  20. package/dist/components/Heading/Heading.d.ts +4 -4
  21. package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
  22. package/dist/components/Hero/Hero.d.ts +19 -14
  23. package/dist/components/Hero/HeroTypes.d.ts +10 -5
  24. package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
  25. package/dist/components/Icons/Icon.d.ts +19 -14
  26. package/dist/components/Icons/IconSvgs.d.ts +11 -0
  27. package/dist/components/Icons/IconTypes.d.ts +89 -64
  28. package/dist/components/Image/Image.d.ts +19 -9
  29. package/dist/components/Image/ImageTypes.d.ts +20 -0
  30. package/dist/components/Label/Label.d.ts +5 -17
  31. package/dist/components/Link/Link.d.ts +12 -12
  32. package/dist/components/List/List.d.ts +19 -14
  33. package/dist/components/Notification/Notification.d.ts +37 -16
  34. package/dist/components/Pagination/Pagination.d.ts +16 -13
  35. package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
  36. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
  37. package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
  38. package/dist/components/Radio/Radio.d.ts +2 -0
  39. package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
  40. package/dist/components/SearchBar/SearchBar.d.ts +45 -27
  41. package/dist/components/Select/Select.d.ts +34 -35
  42. package/dist/components/Select/SelectTypes.d.ts +4 -0
  43. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
  44. package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +2 -2
  45. package/dist/components/Slider/Slider.d.ts +57 -0
  46. package/dist/components/StatusBadge/StatusBadge.d.ts +8 -6
  47. package/dist/components/StatusBadge/StatusBadgeTypes.d.ts +5 -0
  48. package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
  49. package/dist/components/Tabs/Tabs.d.ts +1 -1
  50. package/dist/components/Template/Template.d.ts +91 -0
  51. package/dist/components/Text/Text.d.ts +16 -0
  52. package/dist/components/Text/TextTypes.d.ts +6 -0
  53. package/dist/components/TextInput/TextInput.d.ts +44 -31
  54. package/dist/components/TextInput/TextInputTypes.d.ts +5 -0
  55. package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
  56. package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
  57. package/dist/design-system-react-components.cjs.development.js +6473 -2630
  58. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  59. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  60. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  61. package/dist/design-system-react-components.esm.js +6463 -2631
  62. package/dist/design-system-react-components.esm.js.map +1 -1
  63. package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
  64. package/dist/hooks/useCarouselStyles.d.ts +16 -0
  65. package/dist/hooks/useNYPLTheme.d.ts +54 -0
  66. package/dist/hooks/useWindowSize.d.ts +10 -0
  67. package/dist/index.d.ts +19 -7
  68. package/dist/resources.scss +180 -170
  69. package/dist/styles.css +1 -1
  70. package/dist/theme/components/accordion.d.ts +25 -0
  71. package/dist/theme/components/breadcrumb.d.ts +90 -0
  72. package/dist/theme/components/button.d.ts +39 -15
  73. package/dist/theme/components/card.d.ts +168 -0
  74. package/dist/theme/components/checkbox.d.ts +12 -8
  75. package/dist/theme/components/checkboxGroup.d.ts +12 -0
  76. package/dist/theme/components/componentWrapper.d.ts +11 -0
  77. package/dist/theme/components/datePicker.d.ts +16 -0
  78. package/dist/theme/components/fieldset.d.ts +27 -0
  79. package/dist/theme/components/global.d.ts +65 -0
  80. package/dist/theme/components/globalMixins.d.ts +23 -0
  81. package/dist/theme/components/heading.d.ts +55 -20
  82. package/dist/theme/components/helperErrorText.d.ts +10 -0
  83. package/dist/theme/components/hero.d.ts +493 -0
  84. package/dist/theme/components/horizontalRule.d.ts +14 -0
  85. package/dist/theme/components/icon.d.ts +13 -0
  86. package/dist/theme/components/image.d.ts +31 -0
  87. package/dist/theme/components/label.d.ts +18 -0
  88. package/dist/theme/components/link.d.ts +49 -0
  89. package/dist/theme/components/list.d.ts +89 -0
  90. package/dist/theme/components/notification.d.ts +75 -0
  91. package/dist/theme/components/pagination.d.ts +19 -0
  92. package/dist/theme/components/progressIndicator.d.ts +50 -0
  93. package/dist/theme/components/radio.d.ts +8 -7
  94. package/dist/theme/components/radioGroup.d.ts +12 -0
  95. package/dist/theme/components/searchBar.d.ts +20 -0
  96. package/dist/theme/components/select.d.ts +67 -0
  97. package/dist/theme/components/skeletonLoader.d.ts +98 -0
  98. package/dist/theme/components/slider.d.ts +51 -0
  99. package/dist/theme/components/statusBadge.d.ts +25 -0
  100. package/dist/theme/components/tabs.d.ts +63 -12
  101. package/dist/theme/components/template.d.ts +105 -0
  102. package/dist/theme/components/text.d.ts +20 -0
  103. package/dist/theme/components/textInput.d.ts +112 -0
  104. package/dist/theme/components/videoPlayer.d.ts +40 -0
  105. package/dist/theme/foundations/breakpoints.d.ts +8 -8
  106. package/dist/theme/foundations/global.d.ts +8 -0
  107. package/dist/theme/foundations/radii.d.ts +5 -0
  108. package/dist/theme/foundations/shadows.d.ts +4 -0
  109. package/dist/theme/foundations/spacing.d.ts +16 -16
  110. package/dist/utils/utils.d.ts +6 -0
  111. package/package.json +72 -82
  112. package/src/__tests__/setup.ts +2 -2
  113. package/src/components/Accordion/Accordion.stories.mdx +223 -34
  114. package/src/components/Accordion/Accordion.test.tsx +135 -19
  115. package/src/components/Accordion/Accordion.tsx +81 -56
  116. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -4
  117. package/src/components/Autosuggest/Autosuggest.stories.tsx +3 -2
  118. package/src/components/Autosuggest/_Autosuggest.scss +5 -5
  119. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +48 -50
  120. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +54 -25
  121. package/src/components/Breadcrumbs/Breadcrumbs.tsx +75 -73
  122. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +6 -0
  123. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +298 -0
  124. package/src/components/Button/Button.stories.mdx +45 -36
  125. package/src/components/Button/Button.test.tsx +37 -11
  126. package/src/components/Button/Button.tsx +22 -34
  127. package/src/components/Button/ButtonTypes.tsx +2 -0
  128. package/src/components/Button/__snapshots__/Button.test.tsx.snap +50 -8
  129. package/src/components/Card/Card.stories.mdx +314 -273
  130. package/src/components/Card/Card.test.tsx +157 -91
  131. package/src/components/Card/Card.tsx +195 -145
  132. package/src/components/Card/CardTypes.tsx +2 -19
  133. package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
  134. package/src/components/CardEdition/CardEdition.stories.tsx +26 -53
  135. package/src/components/CardEdition/CardEdition.test.tsx +23 -31
  136. package/src/components/CardEdition/_CardEdition.scss +22 -23
  137. package/src/components/Chakra/Box.stories.mdx +15 -16
  138. package/src/components/Chakra/Center.stories.mdx +56 -24
  139. package/src/components/Chakra/Grid.stories.mdx +92 -0
  140. package/src/components/Chakra/Stack.stories.mdx +38 -21
  141. package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
  142. package/src/components/Checkbox/Checkbox.test.tsx +47 -2
  143. package/src/components/Checkbox/Checkbox.tsx +44 -41
  144. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +92 -7
  145. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +329 -0
  146. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +372 -0
  147. package/src/components/CheckboxGroup/CheckboxGroup.tsx +152 -0
  148. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +4 -0
  149. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +1326 -0
  150. package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
  151. package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
  152. package/src/components/DatePicker/DatePicker.test.tsx +264 -64
  153. package/src/components/DatePicker/DatePicker.tsx +165 -134
  154. package/src/components/DatePicker/_DatePicker.scss +33 -66
  155. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
  156. package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
  157. package/src/components/Fieldset/Fieldset.test.tsx +125 -0
  158. package/src/components/Fieldset/Fieldset.tsx +52 -0
  159. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
  160. package/src/components/Form/Form.stories.mdx +70 -27
  161. package/src/components/Form/Form.test.tsx +58 -45
  162. package/src/components/Form/Form.tsx +50 -21
  163. package/src/components/Form/FormTypes.tsx +3 -8
  164. package/src/components/Form/__snapshots__/Form.test.tsx.snap +24 -14
  165. package/src/components/Grid/GridTypes.tsx +9 -0
  166. package/src/components/Grid/SimpleGrid.stories.mdx +268 -0
  167. package/src/components/Grid/SimpleGrid.test.tsx +66 -0
  168. package/src/components/Grid/SimpleGrid.tsx +37 -0
  169. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +8 -0
  170. package/src/components/Heading/Heading.stories.mdx +3 -3
  171. package/src/components/Heading/Heading.tsx +12 -6
  172. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
  173. package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
  174. package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
  175. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
  176. package/src/components/Hero/Hero.stories.mdx +198 -121
  177. package/src/components/Hero/Hero.test.tsx +537 -107
  178. package/src/components/Hero/Hero.tsx +79 -92
  179. package/src/components/Hero/HeroTypes.tsx +18 -5
  180. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +307 -0
  181. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
  182. package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
  183. package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
  184. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
  185. package/src/components/Icons/Icon.stories.mdx +94 -77
  186. package/src/components/Icons/Icon.test.tsx +48 -22
  187. package/src/components/Icons/Icon.tsx +78 -61
  188. package/src/components/Icons/IconSvgs.tsx +22 -0
  189. package/src/components/Icons/IconTypes.tsx +91 -64
  190. package/src/components/Image/Image.stories.mdx +220 -0
  191. package/src/components/Image/Image.test.tsx +131 -29
  192. package/src/components/Image/Image.tsx +84 -56
  193. package/src/components/Image/ImageTypes.ts +22 -0
  194. package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
  195. package/src/components/Input/Input.stories.tsx +23 -67
  196. package/src/components/Input/Input.test.tsx +4 -4
  197. package/src/components/Input/_Input.scss +23 -14
  198. package/src/components/Label/Label.stories.mdx +28 -7
  199. package/src/components/Label/Label.test.tsx +43 -12
  200. package/src/components/Label/Label.tsx +21 -34
  201. package/src/components/Label/__snapshots__/Label.test.tsx.snap +41 -0
  202. package/src/components/Link/Link.stories.mdx +41 -41
  203. package/src/components/Link/Link.test.tsx +33 -44
  204. package/src/components/Link/Link.tsx +117 -100
  205. package/src/components/List/List.stories.mdx +124 -51
  206. package/src/components/List/List.test.tsx +142 -63
  207. package/src/components/List/List.tsx +89 -93
  208. package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
  209. package/src/components/Modal/Modal.stories.mdx +3 -3
  210. package/src/components/Modal/_Modal.scss +2 -2
  211. package/src/components/Notification/Notification.stories.mdx +119 -111
  212. package/src/components/Notification/Notification.test.tsx +102 -126
  213. package/src/components/Notification/Notification.tsx +157 -161
  214. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
  215. package/src/components/Pagination/Pagination.stories.mdx +26 -27
  216. package/src/components/Pagination/Pagination.stories.tsx +11 -16
  217. package/src/components/Pagination/Pagination.test.tsx +276 -140
  218. package/src/components/Pagination/Pagination.tsx +174 -154
  219. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
  220. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
  221. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
  222. package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
  223. package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
  224. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
  225. package/src/components/Radio/Radio.test.tsx +20 -4
  226. package/src/components/Radio/Radio.tsx +6 -3
  227. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
  228. package/src/components/RadioGroup/RadioGroup.stories.mdx +4 -5
  229. package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
  230. package/src/components/RadioGroup/RadioGroup.tsx +21 -29
  231. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
  232. package/src/components/SearchBar/SearchBar.Test.tsx +170 -16
  233. package/src/components/SearchBar/SearchBar.stories.mdx +294 -219
  234. package/src/components/SearchBar/SearchBar.tsx +161 -46
  235. package/src/components/Select/Select.stories.mdx +188 -170
  236. package/src/components/Select/Select.test.tsx +132 -375
  237. package/src/components/Select/Select.tsx +121 -165
  238. package/src/components/Select/SelectTypes.tsx +5 -0
  239. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +33 -76
  240. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
  241. package/src/components/SkeletonLoader/SkeletonLoader.tsx +75 -70
  242. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +2 -2
  243. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
  244. package/src/components/Slider/Slider.stories.mdx +529 -0
  245. package/src/components/Slider/Slider.test.tsx +653 -0
  246. package/src/components/Slider/Slider.tsx +303 -0
  247. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
  248. package/src/components/StatusBadge/StatusBadge.stories.mdx +91 -0
  249. package/src/components/StatusBadge/StatusBadge.test.tsx +35 -7
  250. package/src/components/StatusBadge/StatusBadge.tsx +24 -25
  251. package/src/components/StatusBadge/StatusBadgeTypes.tsx +5 -0
  252. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +28 -0
  253. package/src/components/StyleGuide/Bidirectionality.stories.mdx +17 -17
  254. package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
  255. package/src/components/StyleGuide/Buttons.stories.mdx +102 -86
  256. package/src/components/StyleGuide/ColorCard.tsx +46 -0
  257. package/src/components/StyleGuide/Colors.stories.mdx +196 -0
  258. package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
  259. package/src/components/StyleGuide/Forms.stories.mdx +9 -7
  260. package/src/components/StyleGuide/Iconography.stories.mdx +119 -127
  261. package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
  262. package/src/components/StyleGuide/Typography.stories.mdx +202 -189
  263. package/src/components/StyleGuide/UIDocCard.tsx +1 -1
  264. package/src/components/Tabs/Tabs.stories.mdx +73 -11
  265. package/src/components/Tabs/Tabs.tsx +88 -67
  266. package/src/components/Template/Template.stories.mdx +572 -0
  267. package/src/components/Template/Template.test.tsx +124 -0
  268. package/src/components/Template/Template.tsx +226 -0
  269. package/src/components/Text/Text.stories.mdx +70 -0
  270. package/src/components/Text/Text.test.tsx +63 -0
  271. package/src/components/Text/Text.tsx +55 -0
  272. package/src/components/Text/TextTypes.tsx +6 -0
  273. package/src/components/Text/__snapshots__/Text.test.tsx.snap +33 -0
  274. package/src/components/TextInput/TextInput.stories.mdx +89 -90
  275. package/src/components/TextInput/TextInput.test.tsx +84 -85
  276. package/src/components/TextInput/TextInput.tsx +121 -95
  277. package/src/components/TextInput/TextInputTypes.tsx +8 -0
  278. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
  279. package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
  280. package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
  281. package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
  282. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
  283. package/src/docs/Chakra.stories.mdx +246 -65
  284. package/src/docs/Intro.stories.mdx +18 -13
  285. package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
  286. package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
  287. package/src/hooks/useCarouselStyles.ts +34 -0
  288. package/src/hooks/useNYPLTheme.ts +67 -0
  289. package/src/hooks/useWindowSize.ts +40 -0
  290. package/src/index.ts +39 -16
  291. package/src/resources.scss +5 -5
  292. package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
  293. package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
  294. package/src/styles/base/_03-base.scss +25 -0
  295. package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
  296. package/src/styles/base/_place-holder.scss +14 -3
  297. package/src/styles/{03-space → space}/_space-inline.scss +14 -14
  298. package/src/styles/{03-space → space}/_space-inset.scss +10 -10
  299. package/src/styles/space/_space-stack.scss +116 -0
  300. package/src/styles.scss +13 -62
  301. package/src/theme/components/accordion.ts +30 -0
  302. package/src/theme/components/breadcrumb.ts +77 -0
  303. package/src/theme/components/button.ts +91 -71
  304. package/src/theme/components/card.ts +174 -0
  305. package/src/theme/components/checkbox.ts +22 -29
  306. package/src/theme/components/checkboxGroup.ts +8 -0
  307. package/src/theme/components/componentWrapper.ts +10 -0
  308. package/src/theme/components/datePicker.ts +17 -0
  309. package/src/theme/components/fieldset.ts +18 -0
  310. package/src/theme/components/global.ts +82 -0
  311. package/src/theme/components/globalMixins.ts +24 -0
  312. package/src/theme/components/heading.ts +25 -13
  313. package/src/theme/components/helperErrorText.ts +9 -0
  314. package/src/theme/components/hero.ts +240 -0
  315. package/src/theme/components/horizontalRule.ts +13 -0
  316. package/src/theme/components/icon.ts +79 -0
  317. package/src/theme/components/image.ts +116 -0
  318. package/src/theme/components/label.ts +10 -0
  319. package/src/theme/components/link.ts +51 -0
  320. package/src/theme/components/list.ts +73 -0
  321. package/src/theme/components/notification.ts +93 -0
  322. package/src/theme/components/pagination.ts +20 -0
  323. package/src/theme/components/progressIndicator.ts +62 -0
  324. package/src/theme/components/radio.ts +22 -33
  325. package/src/theme/components/radioGroup.ts +8 -0
  326. package/src/theme/components/searchBar.ts +21 -0
  327. package/src/theme/components/select.ts +53 -0
  328. package/src/theme/components/skeletonLoader.ts +107 -0
  329. package/src/theme/components/slider.ts +79 -0
  330. package/src/theme/components/statusBadge.ts +26 -0
  331. package/src/theme/components/tabs.ts +102 -69
  332. package/src/theme/components/template.ts +114 -0
  333. package/src/theme/components/text.ts +31 -0
  334. package/src/theme/components/textInput.ts +62 -0
  335. package/src/theme/components/videoPlayer.ts +49 -0
  336. package/src/theme/foundations/breakpoints.ts +8 -8
  337. package/src/theme/foundations/colors.ts +29 -13
  338. package/src/theme/foundations/global.ts +8 -0
  339. package/src/theme/foundations/radii.ts +6 -0
  340. package/src/theme/foundations/shadows.ts +5 -0
  341. package/src/theme/foundations/spacing.ts +24 -24
  342. package/src/theme/index.ts +74 -13
  343. package/src/utils/componentCategories.ts +12 -5
  344. package/src/utils/utils.ts +13 -0
  345. package/dist/components/Accordion/Accordion.stories.d.ts +0 -6
  346. package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
  347. package/dist/components/Image/Image.stories.d.ts +0 -18
  348. package/dist/components/List/List.stories.d.ts +0 -7
  349. package/dist/components/StatusBadge/StatusBadge.stories.d.ts +0 -8
  350. package/dist/components/StyleGuide/Colors.stories.d.ts +0 -25
  351. package/dist/components/Template/Template.stories.d.ts +0 -30
  352. package/dist/theme/components/customRadioGroup.d.ts +0 -17
  353. package/src/components/Accordion/Accordion.stories.tsx +0 -66
  354. package/src/components/Accordion/_Accordion.scss +0 -81
  355. package/src/components/Breadcrumbs/_Breadcrumbs.scss +0 -97
  356. package/src/components/Button/_Button.scss +0 -56
  357. package/src/components/Card/_Card.scss +0 -308
  358. package/src/components/Form/_Form.scss +0 -67
  359. package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
  360. package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
  361. package/src/components/Hero/_Hero.scss +0 -256
  362. package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
  363. package/src/components/Icons/_Icons.scss +0 -116
  364. package/src/components/Image/Image.stories.tsx +0 -54
  365. package/src/components/Image/_Image.scss +0 -38
  366. package/src/components/Label/_Label.scss +0 -22
  367. package/src/components/Link/_Link.scss +0 -73
  368. package/src/components/List/List.stories.tsx +0 -139
  369. package/src/components/List/_List.scss +0 -76
  370. package/src/components/Notification/_Notification.scss +0 -110
  371. package/src/components/Pagination/_Pagination.scss +0 -40
  372. package/src/components/SearchBar/_SearchBar.scss +0 -16
  373. package/src/components/Select/_Select.scss +0 -82
  374. package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
  375. package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -34
  376. package/src/components/StatusBadge/_StatusBadge.scss +0 -23
  377. package/src/components/StyleGuide/Colors.stories.tsx +0 -289
  378. package/src/components/Template/Template.stories.tsx +0 -86
  379. package/src/components/Template/_Template.scss +0 -63
  380. package/src/components/TextInput/_TextInput.scss +0 -59
  381. package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
  382. package/src/styles/01-colors/_colors-brand.scss +0 -56
  383. package/src/styles/01-colors/_colors-utility.scss +0 -65
  384. package/src/styles/02-typography/_type-scale.css +0 -11
  385. package/src/styles/02-typography/_type-weight.css +0 -7
  386. package/src/styles/02-typography/_typefaces.css +0 -4
  387. package/src/styles/03-space/_space-stack.scss +0 -116
  388. package/src/styles/03-space/_space.css +0 -30
  389. package/src/styles/base/_04-base.scss +0 -19
  390. package/src/styles/base/_card-grid.scss +0 -78
  391. package/src/styles/base/_typography.scss +0 -11
  392. package/src/theme/components/customRadioGroup.ts +0 -18
@@ -8,13 +8,15 @@ import {
8
8
  } from "@storybook/addon-docs/blocks";
9
9
  import { withDesign } from "storybook-addon-designs";
10
10
 
11
- import Notification, {
12
- NotificationContent,
13
- NotificationHeading,
14
- NotificationProps,
15
- } from "./Notification";
11
+ import Notification from "./Notification";
16
12
  import { NotificationTypes } from "./NotificationTypes";
17
13
  import Icon from "../Icons/Icon";
14
+ import {
15
+ IconSizes,
16
+ IconColors,
17
+ IconNames,
18
+ IconAlign,
19
+ } from "../Icons/IconTypes";
18
20
  import { getCategory } from "../../utils/componentCategories";
19
21
  import DSProvider from "../../theme/provider";
20
22
 
@@ -37,12 +39,16 @@ import DSProvider from "../../theme/provider";
37
39
  | Component Version | DS Version |
38
40
  | ----------------- | ---------- |
39
41
  | Added | `0.23.2` |
42
+ | Latest | `0.25.4` |
40
43
 
41
44
  <Description of={Notification} />
42
45
 
43
- The `Notification` component is a configurable callout that should be used to display important messages.
46
+ The `Notification` component is a configurable callout that should be used to
47
+ display important messages.
44
48
 
45
- In the preview below, the border around the `Notification` is not part of the component. It has been added to help illustrate how the `Notification` sits within a parent element.
49
+ In the preview below, the border around the `Notification` is not part of the
50
+ component. It has been added to help illustrate how the `Notification` sits
51
+ within a parent element.
46
52
 
47
53
  <Canvas>
48
54
  <Story
@@ -50,25 +56,22 @@ In the preview below, the border around the `Notification` is not part of the co
50
56
  args={{
51
57
  id: "basic-notification",
52
58
  centered: true,
53
- }}
54
- argTypes={{
55
- blockName: { table: { disable: true } },
56
- modifiers: { table: { disable: true } },
59
+ notificationHeading: "Notification Heading",
60
+ notificationContent: (
61
+ <>
62
+ Cras mattis consectetur purus sit amet fermentum. Maecenas faucibus
63
+ mollis interdum. Morbi leo risus, porta ac consectetur ac, vestibulum
64
+ at eros. Cum sociis natoque penatibus et magnis dis parturient montes,
65
+ nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet
66
+ rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus,
67
+ nisi erat porttitor ligula.
68
+ </>
69
+ ),
57
70
  }}
58
71
  >
59
72
  {(args) => (
60
73
  <div style={{ border: "1px solid #ccc" }}>
61
- <Notification {...args}>
62
- <NotificationHeading>Notification Heading</NotificationHeading>
63
- <NotificationContent>
64
- Cras mattis consectetur purus sit amet fermentum. Maecenas faucibus
65
- mollis interdum. Morbi leo risus, porta ac consectetur ac,
66
- vestibulum at eros. Cum sociis natoque penatibus et magnis dis
67
- parturient montes, nascetur ridiculus mus. Vivamus sagittis lacus
68
- vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non
69
- commodo luctus, nisi erat porttitor ligula.
70
- </NotificationContent>
71
- </Notification>
74
+ <Notification {...args} />
72
75
  </div>
73
76
  )}
74
77
  </Story>
@@ -82,48 +85,57 @@ In the preview below, the border around the `Notification` is not part of the co
82
85
 
83
86
  <Canvas>
84
87
  <DSProvider>
85
- <Notification>
86
- <NotificationHeading>Standard Notification</NotificationHeading>
87
- <NotificationContent>
88
- This is a "standard" Notification with a heading. Cras mattis
89
- consectetur purus sit amet fermentum. Maecenas faucibus mollis interdum.
90
- Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cum sociis
91
- natoque penatibus et magnis dis parturient montes, nascetur ridiculus
92
- mus. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor
93
- auctor.
94
- </NotificationContent>
95
- </Notification>
88
+ <Notification
89
+ notificationHeading="Standard Notification"
90
+ notificationContent={
91
+ <>
92
+ This is a "standard" Notification with a heading. Cras mattis
93
+ consectetur purus sit amet fermentum. Maecenas faucibus mollis
94
+ interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at
95
+ eros. Cum sociis natoque penatibus et magnis dis parturient montes,
96
+ nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet
97
+ rutrum faucibus dolor auctor.
98
+ </>
99
+ }
100
+ />
96
101
  </DSProvider>
97
102
  </Canvas>
98
103
 
99
104
  <Canvas>
100
105
  <DSProvider>
101
- <Notification notificationType={NotificationTypes.Announcement}>
102
- <NotificationHeading>Announcement Notification</NotificationHeading>
103
- <NotificationContent>
104
- This is an "announcement" Notification with a heading. Cras mattis
105
- consectetur purus sit amet fermentum. Maecenas faucibus mollis interdum.
106
- Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cum sociis
107
- natoque penatibus et magnis dis parturient montes, nascetur ridiculus
108
- mus. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor
109
- auctor.
110
- </NotificationContent>
111
- </Notification>
106
+ <Notification
107
+ notificationType={NotificationTypes.Announcement}
108
+ notificationHeading="Announcement Notification"
109
+ notificationContent={
110
+ <>
111
+ This is an "announcement" Notification with a heading. Cras mattis
112
+ consectetur purus sit amet fermentum. Maecenas faucibus mollis
113
+ interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at
114
+ eros. Cum sociis natoque penatibus et magnis dis parturient montes,
115
+ nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet
116
+ rutrum faucibus dolor auctor.
117
+ </>
118
+ }
119
+ />
112
120
  </DSProvider>
113
121
  </Canvas>
114
122
 
115
123
  <Canvas>
116
124
  <DSProvider>
117
- <Notification notificationType={NotificationTypes.Warning}>
118
- <NotificationHeading>Warning Notification</NotificationHeading>
119
- <NotificationContent>
120
- This is a "warning" Notification with a heading. Cras mattis consectetur
121
- purus sit amet fermentum. Maecenas faucibus mollis interdum. Morbi leo
122
- risus, porta ac consectetur ac, vestibulum at eros. Cum sociis natoque
123
- penatibus et magnis dis parturient montes, nascetur ridiculus mus.
124
- Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
125
- </NotificationContent>
126
- </Notification>
125
+ <Notification
126
+ notificationType={NotificationTypes.Warning}
127
+ notificationHeading="Warning Notification"
128
+ notificationContent={
129
+ <>
130
+ This is a "warning" Notification with a heading. Cras mattis
131
+ consectetur purus sit amet fermentum. Maecenas faucibus mollis
132
+ interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at
133
+ eros. Cum sociis natoque penatibus et magnis dis parturient montes,
134
+ nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet
135
+ rutrum faucibus dolor auctor.
136
+ </>
137
+ }
138
+ />
127
139
  </DSProvider>
128
140
  </Canvas>
129
141
 
@@ -131,46 +143,54 @@ In the preview below, the border around the `Notification` is not part of the co
131
143
 
132
144
  <Canvas>
133
145
  <DSProvider>
134
- <Notification>
135
- <NotificationContent>
136
- This is a "standard" Notification without a heading. Cras mattis
137
- consectetur purus sit amet fermentum. Maecenas faucibus mollis interdum.
138
- Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cum sociis
139
- natoque penatibus et magnis dis parturient montes, nascetur ridiculus
140
- mus. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor
141
- auctor.
142
- </NotificationContent>
143
- </Notification>
146
+ <Notification
147
+ notificationContent={
148
+ <>
149
+ This is a "standard" Notification without a heading. Cras mattis
150
+ consectetur purus sit amet fermentum. Maecenas faucibus mollis
151
+ interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at
152
+ eros. Cum sociis natoque penatibus et magnis dis parturient montes,
153
+ nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet
154
+ rutrum faucibus dolor auctor.
155
+ </>
156
+ }
157
+ />
144
158
  </DSProvider>
145
159
  </Canvas>
146
160
 
147
161
  <Canvas>
148
162
  <DSProvider>
149
- <Notification notificationType={NotificationTypes.Announcement}>
150
- <NotificationContent>
151
- This is an "announcement" Notification without a heading. Cras mattis
152
- consectetur purus sit amet fermentum. Maecenas faucibus mollis interdum.
153
- Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cum sociis
154
- natoque penatibus et magnis dis parturient montes, nascetur ridiculus
155
- mus. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor
156
- auctor.
157
- </NotificationContent>
158
- </Notification>
163
+ <Notification
164
+ notificationType={NotificationTypes.Announcement}
165
+ notificationContent={
166
+ <>
167
+ This is an "announcement" Notification without a heading. Cras mattis
168
+ consectetur purus sit amet fermentum. Maecenas faucibus mollis
169
+ interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at
170
+ eros. Cum sociis natoque penatibus et magnis dis parturient montes,
171
+ nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet
172
+ rutrum faucibus dolor auctor.
173
+ </>
174
+ }
175
+ />
159
176
  </DSProvider>
160
177
  </Canvas>
161
178
 
162
179
  <Canvas>
163
180
  <DSProvider>
164
- <Notification notificationType={NotificationTypes.Warning}>
165
- <NotificationContent>
166
- This is a "warning" Notification without a heading. Cras mattis
167
- consectetur purus sit amet fermentum. Maecenas faucibus mollis interdum.
168
- Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cum sociis
169
- natoque penatibus et magnis dis parturient montes, nascetur ridiculus
170
- mus. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor
171
- auctor.
172
- </NotificationContent>
173
- </Notification>
181
+ <Notification
182
+ notificationType={NotificationTypes.Warning}
183
+ notificationContent={
184
+ <>
185
+ This is a "warning" Notification without a heading. Cras mattis
186
+ consectetur purus sit amet fermentum. Maecenas faucibus mollis
187
+ interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at
188
+ eros. Cum sociis natoque penatibus et magnis dis parturient montes,
189
+ nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet
190
+ rutrum faucibus dolor auctor.
191
+ </>
192
+ }
193
+ />
174
194
  </DSProvider>
175
195
  </Canvas>
176
196
 
@@ -183,34 +203,22 @@ The default icon can be overridden by using the `icon` prop to pass a custom `Ic
183
203
  {(args) => (
184
204
  <Notification
185
205
  icon={
186
- <Icon name="check" size="large" color="section-research-secondary" />
206
+ <Icon
207
+ name={IconNames.Check}
208
+ color={IconColors.SectionResearchSecondary}
209
+ />
187
210
  }
188
- >
189
- <NotificationHeading>Custom Icon</NotificationHeading>
190
- <NotificationContent>
191
- This is a Notification with a custom icon. Cras mattis consectetur
192
- purus sit amet fermentum. Maecenas faucibus mollis interdum. Morbi leo
193
- risus, porta ac consectetur ac, vestibulum at eros. Cum sociis natoque
194
- penatibus et magnis dis parturient montes, nascetur ridiculus mus.
195
- </NotificationContent>
196
- </Notification>
197
- )}
198
- </Story>
199
- </Canvas>
200
-
201
- ## Development Errors
202
-
203
- The `Notification` component will only accept one `NotificationHeading` child and one `NotificationContent` child.
204
-
205
- <Canvas>
206
- <Story name="Development Errors">
207
- {(args) => (
208
- <Notification>
209
- <NotificationHeading>Heading One</NotificationHeading>
210
- <NotificationHeading>Heading Two</NotificationHeading>
211
- <NotificationContent>Content one.</NotificationContent>
212
- <NotificationContent>Content two.</NotificationContent>
213
- </Notification>
211
+ notificationHeading="Custom Icon"
212
+ notificationContent={
213
+ <>
214
+ This is a Notification with a custom icon. Cras mattis consectetur
215
+ purus sit amet fermentum. Maecenas faucibus mollis interdum. Morbi
216
+ leo risus, porta ac consectetur ac, vestibulum at eros. Cum sociis
217
+ natoque penatibus et magnis dis parturient montes, nascetur
218
+ ridiculus mus.
219
+ </>
220
+ }
221
+ />
214
222
  )}
215
223
  </Story>
216
224
  </Canvas>
@@ -3,176 +3,152 @@ import { render, screen } from "@testing-library/react";
3
3
  import { axe } from "jest-axe";
4
4
  import renderer from "react-test-renderer";
5
5
 
6
- import Notification, {
7
- NotificationContent,
8
- NotificationHeading,
9
- } from "./Notification";
6
+ import Notification from "./Notification";
10
7
  import { NotificationTypes } from "./NotificationTypes";
11
8
  import Icon from "../Icons/Icon";
12
9
  import { IconNames, IconColors, IconSizes } from "../Icons/IconTypes";
13
10
 
14
11
  describe("Notification Accessibility", () => {
15
- it("passes axe accessibility test", async () => {
12
+ it("passes axe accessibility test with heading", async () => {
16
13
  const { container } = render(
17
- <Notification id="notificationID">
18
- <NotificationHeading>Notification Heading</NotificationHeading>
19
- <NotificationContent>Notification content.</NotificationContent>
20
- </Notification>
14
+ <Notification
15
+ id="notificationID"
16
+ notificationHeading="Notification Heading"
17
+ notificationContent={<>Notification content.</>}
18
+ />
21
19
  );
22
20
  expect(await axe(container)).toHaveNoViolations();
23
21
  });
24
- });
25
-
26
- describe("Notification: check for basic DOM structure", () => {
27
- let utils;
28
- beforeEach(() => {
29
- utils = render(
30
- <Notification id="notificationID">
31
- <NotificationHeading>Notification Heading</NotificationHeading>
32
- <NotificationContent>Notification content.</NotificationContent>
33
- </Notification>
34
- );
35
- });
36
-
37
- it("Renders Notification component wrapper", () => {
38
- expect(utils.container.querySelector(".notification")).toBeInTheDocument();
39
- });
40
-
41
- it("Renders Notification heading child component", () => {
42
- expect(screen.getByText("Notification Heading")).toBeInTheDocument();
43
- });
44
-
45
- it("Renders Notification content child component", () => {
46
- expect(screen.getByText("Notification content.")).toBeInTheDocument();
47
- });
48
-
49
- it("Renders without Icon", () => {
50
- expect(
51
- utils.container.querySelector(".notification-icon")
52
- ).not.toBeInTheDocument();
53
- });
54
- });
55
22
 
56
- describe("Notification Snapshot", () => {
57
- it("Renders the UI snapshot correctly", () => {
58
- const tree = renderer
59
- .create(
60
- <Notification id="notificationID">
61
- <NotificationHeading>Notification Heading</NotificationHeading>
62
- <NotificationContent>Notification content.</NotificationContent>
63
- </Notification>
64
- )
65
- .toJSON();
66
- expect(tree).toMatchSnapshot();
67
- });
68
- });
69
-
70
- describe("Notification: check for Announcement Notification", () => {
71
- let utils;
72
- beforeEach(() => {
73
- utils = render(
23
+ it("passes axe accessibility test without heading", async () => {
24
+ const { container } = render(
74
25
  <Notification
75
26
  id="notificationID"
76
- notificationType={NotificationTypes.Announcement}
77
- >
78
- <NotificationHeading>Notification Heading</NotificationHeading>
79
- <NotificationContent>Notification content.</NotificationContent>
80
- </Notification>
27
+ notificationContent={<>Notification content.</>}
28
+ />
81
29
  );
82
- });
83
-
84
- it("Renders Notification component as Announcement", () => {
85
- expect(
86
- utils.container.querySelector(".notification--announcement")
87
- ).toBeInTheDocument();
88
- });
89
- it("Renders Icon with proper color", () => {
90
- expect(
91
- utils.container.querySelector(
92
- ".notification-icon.icon--section-research-secondary"
93
- )
94
- ).toBeInTheDocument();
30
+ expect(await axe(container)).toHaveNoViolations();
95
31
  });
96
32
  });
97
33
 
98
- describe("Notification: check for Warning Notification", () => {
34
+ describe("Notification", () => {
99
35
  let utils;
100
36
  beforeEach(() => {
101
37
  utils = render(
102
38
  <Notification
103
39
  id="notificationID"
104
- notificationType={NotificationTypes.Warning}
105
- >
106
- <NotificationHeading>Notification Heading</NotificationHeading>
107
- <NotificationContent>Notification content.</NotificationContent>
108
- </Notification>
40
+ notificationHeading="Notification Heading"
41
+ notificationContent={<>Notification content.</>}
42
+ />
109
43
  );
110
44
  });
111
45
 
112
- it("Renders Notification component as Warning", () => {
113
- expect(
114
- utils.container.querySelector(".notification--warning")
115
- ).toBeInTheDocument();
46
+ it("renders Notification heading child component", () => {
47
+ expect(screen.getByText("Notification Heading")).toBeInTheDocument();
116
48
  });
117
49
 
118
- it("Renders Icon with proper color", () => {
119
- expect(
120
- utils.container.querySelector(".notification-icon.icon--brand-primary")
121
- ).toBeInTheDocument();
50
+ it("renders Notification content child component", () => {
51
+ expect(screen.getByText("Notification content.")).toBeInTheDocument();
122
52
  });
123
- });
124
53
 
125
- describe("Notification: check for custom Icon", () => {
126
- let utils;
127
- beforeEach(() => {
128
- utils = render(
54
+ it("renders without Icon", () => {
55
+ // The Icon's role is "img".
56
+ expect(screen.queryByRole("img")).not.toBeInTheDocument();
57
+ });
58
+
59
+ it("renders a custom Icon component", () => {
60
+ utils.rerender(
129
61
  <Notification
130
62
  id="notificationID"
131
63
  icon={
132
64
  <Icon
133
- name={IconNames.check}
134
- size={IconSizes.large}
135
- color={IconColors.brand_primary}
65
+ id="custom-icon"
66
+ name={IconNames.Check}
67
+ size={IconSizes.Large}
68
+ color={IconColors.BrandPrimary}
136
69
  className="custom-icon"
137
70
  />
138
71
  }
139
- >
140
- <NotificationHeading>Notification Heading</NotificationHeading>
141
- <NotificationContent>Notification content.</NotificationContent>
142
- </Notification>
72
+ notificationHeading="Notification Heading"
73
+ notificationContent={<>Notification content.</>}
74
+ />
143
75
  );
144
- });
145
-
146
- it("Renders custom Icon component", () => {
147
76
  expect(utils.container.querySelector(".custom-icon")).toBeInTheDocument();
148
77
  });
149
- });
150
78
 
151
- describe("Notification: check for validation", () => {
152
- beforeEach(() => {
153
- render(
154
- <Notification id="notificationID">
155
- <NotificationHeading>First Notification Heading</NotificationHeading>
156
- <NotificationHeading>Second Notification Heading</NotificationHeading>
157
- <NotificationContent>First notification content.</NotificationContent>
158
- <NotificationContent>Second notification content.</NotificationContent>
159
- </Notification>
79
+ it("renders the announcement Notification type", () => {
80
+ utils.rerender(
81
+ <Notification
82
+ id="notificationID"
83
+ notificationType={NotificationTypes.Announcement}
84
+ notificationHeading="Notification Heading"
85
+ notificationContent={<>Notification content.</>}
86
+ />
87
+ );
88
+
89
+ expect(utils.container.querySelector("aside")).toHaveAttribute(
90
+ "data-type",
91
+ "announcement"
160
92
  );
161
93
  });
162
94
 
163
- it("Shows error when two NotificationHeading children are passed to Notification", () => {
164
- expect(
165
- screen.getByText(
166
- "Error: Only one NotificationHeading child component may be passed to Notification."
167
- )
168
- ).toBeInTheDocument();
95
+ it("renders the warning Notification type", () => {
96
+ utils.rerender(
97
+ <Notification
98
+ id="notificationID"
99
+ notificationType={NotificationTypes.Warning}
100
+ notificationHeading="Notification Heading"
101
+ notificationContent={<>Notification content.</>}
102
+ />
103
+ );
104
+
105
+ expect(utils.container.querySelector("aside")).toHaveAttribute(
106
+ "data-type",
107
+ "warning"
108
+ );
169
109
  });
170
110
 
171
- it("Shows error when two NotificationContent children are passed to Notification", () => {
172
- expect(
173
- screen.getByText(
174
- "Error: Only one NotificationContent child component may be passed to Notification."
111
+ it("renders the UI snapshot correctly", () => {
112
+ const standard = renderer
113
+ .create(
114
+ <Notification
115
+ id="notificationID1"
116
+ notificationHeading="Notification Heading"
117
+ notificationContent={<>Notification content.</>}
118
+ />
119
+ )
120
+ .toJSON();
121
+ const announcement = renderer
122
+ .create(
123
+ <Notification
124
+ id="notificationID2"
125
+ notificationType={NotificationTypes.Announcement}
126
+ notificationHeading="Notification Heading"
127
+ notificationContent={<>Notification content.</>}
128
+ />
129
+ )
130
+ .toJSON();
131
+ const warning = renderer
132
+ .create(
133
+ <Notification
134
+ id="notificationID3"
135
+ notificationType={NotificationTypes.Warning}
136
+ notificationHeading="Notification Heading"
137
+ notificationContent={<>Notification content.</>}
138
+ />
175
139
  )
176
- ).toBeInTheDocument();
140
+ .toJSON();
141
+ const withoutHeading = renderer
142
+ .create(
143
+ <Notification
144
+ id="notificationID4"
145
+ notificationContent={<>Notification content.</>}
146
+ />
147
+ )
148
+ .toJSON();
149
+ expect(standard).toMatchSnapshot();
150
+ expect(announcement).toMatchSnapshot();
151
+ expect(warning).toMatchSnapshot();
152
+ expect(withoutHeading).toMatchSnapshot();
177
153
  });
178
154
  });