@nypl/design-system-react-components 0.25.12 → 0.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/CHANGELOG.md +131 -1
  2. package/README.md +10 -10
  3. package/dist/components/Accordion/Accordion.d.ts +6 -4
  4. package/dist/components/Accordion/AccordionTypes.d.ts +5 -0
  5. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -4
  6. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -1
  7. package/dist/components/Button/Button.d.ts +2 -2
  8. package/dist/components/Card/Card.d.ts +22 -29
  9. package/dist/components/Checkbox/Checkbox.d.ts +3 -3
  10. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +9 -6
  11. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
  12. package/dist/components/DatePicker/DatePicker.d.ts +5 -6
  13. package/dist/components/Fieldset/Fieldset.d.ts +5 -6
  14. package/dist/components/Form/Form.d.ts +6 -6
  15. package/dist/components/Grid/GridTypes.d.ts +7 -7
  16. package/dist/components/Grid/SimpleGrid.d.ts +1 -1
  17. package/dist/components/Heading/Heading.d.ts +5 -5
  18. package/dist/components/Heading/HeadingTypes.d.ts +1 -1
  19. package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
  20. package/dist/components/Hero/Hero.d.ts +9 -5
  21. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
  22. package/dist/components/Icons/Icon.d.ts +2 -1
  23. package/dist/components/Icons/IconTypes.d.ts +1 -0
  24. package/dist/components/Image/Image.d.ts +27 -9
  25. package/dist/components/Image/ImageTypes.d.ts +4 -4
  26. package/dist/components/Label/Label.d.ts +7 -4
  27. package/dist/components/Link/Link.d.ts +1 -1
  28. package/dist/components/List/List.d.ts +11 -11
  29. package/dist/components/List/ListTypes.d.ts +1 -1
  30. package/dist/components/Logo/Logo.d.ts +2 -1
  31. package/dist/components/Logo/LogoSvgs.d.ts +2 -0
  32. package/dist/components/Logo/LogoTypes.d.ts +4 -2
  33. package/dist/components/Notification/Notification.d.ts +7 -7
  34. package/dist/components/Pagination/Pagination.d.ts +2 -2
  35. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
  36. package/dist/components/Radio/Radio.d.ts +5 -7
  37. package/dist/components/RadioGroup/RadioGroup.d.ts +16 -8
  38. package/dist/components/SearchBar/SearchBar.d.ts +4 -4
  39. package/dist/components/Select/Select.d.ts +12 -8
  40. package/dist/components/Select/SelectTypes.d.ts +4 -0
  41. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -6
  42. package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +0 -4
  43. package/dist/components/Slider/Slider.d.ts +6 -4
  44. package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
  45. package/dist/components/StructuredContent/StructuredContent.d.ts +10 -23
  46. package/dist/components/Table/Table.d.ts +1 -1
  47. package/dist/components/Tabs/Tabs.d.ts +7 -6
  48. package/dist/components/Template/Template.d.ts +17 -8
  49. package/dist/components/Text/Text.d.ts +4 -4
  50. package/dist/components/Text/TextTypes.d.ts +1 -1
  51. package/dist/components/TextInput/TextInput.d.ts +7 -7
  52. package/dist/components/Toggle/Toggle.d.ts +8 -10
  53. package/dist/components/Toggle/{ToggleSizes.d.ts → ToggleTypes.d.ts} +1 -1
  54. package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
  55. package/dist/design-system-react-components.cjs.development.js +2075 -1468
  56. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  57. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  58. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  59. package/dist/design-system-react-components.esm.js +2086 -1483
  60. package/dist/design-system-react-components.esm.js.map +1 -1
  61. package/dist/helpers/enums.d.ts +4 -0
  62. package/dist/hooks/useCarouselStyles.d.ts +3 -2
  63. package/dist/hooks/useNYPLTheme.d.ts +12 -0
  64. package/dist/index.d.ts +11 -9
  65. package/dist/styles.css +1 -1
  66. package/dist/theme/components/accordion.d.ts +7 -12
  67. package/dist/theme/components/breadcrumb.d.ts +3 -0
  68. package/dist/theme/components/button.d.ts +10 -2
  69. package/dist/theme/components/card.d.ts +44 -24
  70. package/dist/theme/components/checkbox.d.ts +6 -4
  71. package/dist/theme/components/checkboxGroup.d.ts +4 -2
  72. package/dist/theme/components/componentWrapper.d.ts +2 -2
  73. package/dist/theme/components/customTable.d.ts +84 -1
  74. package/dist/theme/components/fieldset.d.ts +4 -14
  75. package/dist/theme/components/global.d.ts +25 -18
  76. package/dist/theme/components/heading.d.ts +53 -0
  77. package/dist/theme/components/helperErrorText.d.ts +1 -0
  78. package/dist/theme/components/hero.d.ts +21 -15
  79. package/dist/theme/components/image.d.ts +1 -1
  80. package/dist/theme/components/label.d.ts +9 -10
  81. package/dist/theme/components/list.d.ts +99 -9
  82. package/dist/theme/components/notification.d.ts +4 -4
  83. package/dist/theme/components/pagination.d.ts +2 -5
  84. package/dist/theme/components/radio.d.ts +7 -4
  85. package/dist/theme/components/radioGroup.d.ts +4 -2
  86. package/dist/theme/components/select.d.ts +37 -5
  87. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  88. package/dist/theme/components/slider.d.ts +6 -3
  89. package/dist/theme/components/structuredContent.d.ts +197 -0
  90. package/dist/theme/components/textInput.d.ts +18 -6
  91. package/dist/theme/components/toggle.d.ts +20 -5
  92. package/dist/theme/foundations/global.d.ts +2 -0
  93. package/dist/theme/foundations/radii.d.ts +1 -0
  94. package/dist/theme/foundations/spacing.d.ts +46 -43
  95. package/package.json +5 -6
  96. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +34 -0
  97. package/src/components/Accordion/Accordion.stories.mdx +150 -66
  98. package/src/components/Accordion/Accordion.test.tsx +65 -17
  99. package/src/components/Accordion/Accordion.tsx +61 -27
  100. package/src/components/Accordion/AccordionTypes.tsx +5 -0
  101. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +505 -14
  102. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  103. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +37 -19
  104. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +57 -36
  105. package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
  106. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -1
  107. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +211 -12
  108. package/src/components/Button/Button.stories.mdx +87 -23
  109. package/src/components/Button/Button.test.tsx +25 -0
  110. package/src/components/Button/Button.tsx +18 -7
  111. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  112. package/src/components/Card/Card.stories.mdx +493 -329
  113. package/src/components/Card/Card.test.tsx +138 -18
  114. package/src/components/Card/Card.tsx +151 -85
  115. package/src/components/Card/__snapshots__/Card.test.tsx.snap +221 -101
  116. package/src/components/Chakra/Center.stories.mdx +2 -2
  117. package/src/components/Chakra/Grid.stories.mdx +4 -4
  118. package/src/components/Checkbox/Checkbox.stories.mdx +73 -9
  119. package/src/components/Checkbox/Checkbox.test.tsx +89 -10
  120. package/src/components/Checkbox/Checkbox.tsx +26 -16
  121. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +209 -6
  122. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +135 -23
  123. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +216 -90
  124. package/src/components/CheckboxGroup/CheckboxGroup.tsx +39 -26
  125. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +493 -89
  126. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  127. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  128. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  129. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  130. package/src/components/DatePicker/DatePicker.test.tsx +94 -15
  131. package/src/components/DatePicker/DatePicker.tsx +67 -58
  132. package/src/components/DatePicker/_DatePicker.scss +71 -13
  133. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  134. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  135. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  136. package/src/components/Fieldset/Fieldset.tsx +35 -30
  137. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  138. package/src/components/Form/Form.stories.mdx +118 -47
  139. package/src/components/Form/Form.test.tsx +59 -16
  140. package/src/components/Form/Form.tsx +89 -65
  141. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  142. package/src/components/Grid/GridTypes.tsx +7 -7
  143. package/src/components/Grid/SimpleGrid.stories.mdx +87 -41
  144. package/src/components/Grid/SimpleGrid.test.tsx +24 -9
  145. package/src/components/Grid/SimpleGrid.tsx +29 -20
  146. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  147. package/src/components/Heading/Heading.stories.mdx +56 -25
  148. package/src/components/Heading/Heading.test.tsx +17 -7
  149. package/src/components/Heading/Heading.tsx +60 -58
  150. package/src/components/Heading/HeadingTypes.tsx +1 -1
  151. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +27 -8
  152. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  153. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  154. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  155. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  156. package/src/components/Hero/Hero.stories.mdx +143 -113
  157. package/src/components/Hero/Hero.test.tsx +146 -58
  158. package/src/components/Hero/Hero.tsx +144 -112
  159. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  160. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  161. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -17
  162. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -25
  163. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  164. package/src/components/Icons/Icon.stories.mdx +80 -23
  165. package/src/components/Icons/Icon.test.tsx +51 -2
  166. package/src/components/Icons/Icon.tsx +93 -71
  167. package/src/components/Icons/IconTypes.tsx +1 -0
  168. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  169. package/src/components/Image/Image.stories.mdx +160 -71
  170. package/src/components/Image/Image.test.tsx +40 -48
  171. package/src/components/Image/Image.tsx +80 -48
  172. package/src/components/Image/ImageTypes.ts +4 -4
  173. package/src/components/Image/__snapshots__/Image.test.tsx.snap +84 -21
  174. package/src/components/Label/Label.stories.mdx +42 -20
  175. package/src/components/Label/Label.test.tsx +42 -17
  176. package/src/components/Label/Label.tsx +22 -13
  177. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  178. package/src/components/Link/Link.stories.mdx +25 -1
  179. package/src/components/Link/Link.test.tsx +21 -0
  180. package/src/components/Link/Link.tsx +16 -9
  181. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  182. package/src/components/List/List.stories.mdx +75 -40
  183. package/src/components/List/List.test.tsx +73 -22
  184. package/src/components/List/List.tsx +44 -28
  185. package/src/components/List/ListTypes.tsx +1 -1
  186. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  187. package/src/components/Logo/Logo.stories.mdx +40 -16
  188. package/src/components/Logo/Logo.test.tsx +29 -2
  189. package/src/components/Logo/Logo.tsx +28 -11
  190. package/src/components/Logo/LogoSvgs.tsx +4 -0
  191. package/src/components/Logo/LogoTypes.tsx +3 -1
  192. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  193. package/src/components/Modal/Modal.stories.mdx +13 -0
  194. package/src/components/Notification/Notification.stories.mdx +29 -5
  195. package/src/components/Notification/Notification.test.tsx +23 -0
  196. package/src/components/Notification/Notification.tsx +53 -51
  197. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
  198. package/src/components/Pagination/Pagination.stories.mdx +27 -6
  199. package/src/components/Pagination/Pagination.test.tsx +55 -2
  200. package/src/components/Pagination/Pagination.tsx +12 -9
  201. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +244 -27
  202. package/src/components/Placeholder/Placeholder.tsx +3 -1
  203. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  204. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +87 -13
  205. package/src/components/ProgressIndicator/ProgressIndicator.tsx +20 -10
  206. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  207. package/src/components/Radio/Radio.stories.mdx +75 -11
  208. package/src/components/Radio/Radio.test.tsx +83 -9
  209. package/src/components/Radio/Radio.tsx +70 -62
  210. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +163 -5
  211. package/src/components/RadioGroup/RadioGroup.stories.mdx +293 -94
  212. package/src/components/RadioGroup/RadioGroup.test.tsx +193 -68
  213. package/src/components/RadioGroup/RadioGroup.tsx +110 -101
  214. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1258 -902
  215. package/src/components/SearchBar/SearchBar.stories.mdx +101 -36
  216. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +46 -4
  217. package/src/components/SearchBar/SearchBar.tsx +20 -11
  218. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  219. package/src/components/Select/Select.stories.mdx +151 -62
  220. package/src/components/Select/Select.test.tsx +56 -44
  221. package/src/components/Select/Select.tsx +125 -104
  222. package/src/components/Select/SelectTypes.tsx +5 -0
  223. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  224. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +53 -23
  225. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +14 -8
  226. package/src/components/SkeletonLoader/SkeletonLoader.tsx +80 -78
  227. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +0 -5
  228. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  229. package/src/components/Slider/Slider.stories.mdx +123 -41
  230. package/src/components/Slider/Slider.test.tsx +65 -17
  231. package/src/components/Slider/Slider.tsx +30 -23
  232. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  233. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  234. package/src/components/StatusBadge/StatusBadge.test.tsx +19 -1
  235. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  236. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  237. package/src/components/StructuredContent/StructuredContent.stories.mdx +229 -61
  238. package/src/components/StructuredContent/StructuredContent.test.tsx +162 -101
  239. package/src/components/StructuredContent/StructuredContent.tsx +98 -103
  240. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  241. package/src/components/StyleGuide/Bidirectionality.stories.mdx +5 -5
  242. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  243. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  244. package/src/components/StyleGuide/ColorCard.tsx +4 -4
  245. package/src/components/StyleGuide/Colors.stories.mdx +1 -2
  246. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  247. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  248. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  249. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  250. package/src/components/StyleGuide/Typography.stories.mdx +47 -33
  251. package/src/components/Table/Table.stories.mdx +38 -11
  252. package/src/components/Table/Table.test.tsx +16 -1
  253. package/src/components/Table/Table.tsx +10 -8
  254. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  255. package/src/components/Tabs/Tabs.stories.mdx +59 -10
  256. package/src/components/Tabs/Tabs.test.tsx +29 -11
  257. package/src/components/Tabs/Tabs.tsx +28 -21
  258. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  259. package/src/components/Template/Template.stories.mdx +73 -32
  260. package/src/components/Template/Template.test.tsx +68 -5
  261. package/src/components/Template/Template.tsx +89 -71
  262. package/src/components/Template/__snapshots__/Template.test.tsx.snap +195 -22
  263. package/src/components/Text/Text.stories.mdx +32 -15
  264. package/src/components/Text/Text.test.tsx +14 -11
  265. package/src/components/Text/Text.tsx +13 -16
  266. package/src/components/Text/TextTypes.tsx +1 -1
  267. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  268. package/src/components/TextInput/TextInput.stories.mdx +73 -27
  269. package/src/components/TextInput/TextInput.test.tsx +65 -50
  270. package/src/components/TextInput/TextInput.tsx +123 -115
  271. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  272. package/src/components/Toggle/Toggle.stories.mdx +74 -26
  273. package/src/components/Toggle/Toggle.test.tsx +41 -10
  274. package/src/components/Toggle/Toggle.tsx +29 -26
  275. package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
  276. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +191 -4
  277. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  278. package/src/components/VideoPlayer/VideoPlayer.test.tsx +41 -6
  279. package/src/components/VideoPlayer/VideoPlayer.tsx +134 -120
  280. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  281. package/src/docs/Chakra.stories.mdx +50 -9
  282. package/src/docs/Welcome.stories.mdx +168 -0
  283. package/src/{components/Card/CardTypes.tsx → helpers/enums.ts} +2 -2
  284. package/src/hooks/tests/useNYPLTheme.test.tsx +1 -1
  285. package/src/hooks/useCarouselStyles.stories.mdx +30 -0
  286. package/src/hooks/useCarouselStyles.ts +3 -2
  287. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  288. package/src/hooks/useNYPLTheme.ts +31 -7
  289. package/src/hooks/useWindowSize.stories.mdx +23 -0
  290. package/src/index.ts +11 -15
  291. package/src/styles/base/_place-holder.scss +1 -1
  292. package/src/theme/components/accordion.ts +7 -12
  293. package/src/theme/components/breadcrumb.ts +3 -0
  294. package/src/theme/components/button.ts +15 -7
  295. package/src/theme/components/card.ts +56 -36
  296. package/src/theme/components/checkbox.ts +10 -8
  297. package/src/theme/components/checkboxGroup.ts +4 -2
  298. package/src/theme/components/componentWrapper.ts +2 -2
  299. package/src/theme/components/customTable.ts +39 -31
  300. package/src/theme/components/fieldset.ts +1 -2
  301. package/src/theme/components/global.ts +29 -23
  302. package/src/theme/components/heading.ts +1 -1
  303. package/src/theme/components/helperErrorText.ts +1 -0
  304. package/src/theme/components/hero.ts +14 -16
  305. package/src/theme/components/icon.ts +5 -2
  306. package/src/theme/components/image.ts +1 -1
  307. package/src/theme/components/label.ts +4 -3
  308. package/src/theme/components/list.ts +73 -66
  309. package/src/theme/components/notification.ts +7 -7
  310. package/src/theme/components/pagination.ts +2 -5
  311. package/src/theme/components/progressIndicator.ts +3 -3
  312. package/src/theme/components/radio.ts +9 -9
  313. package/src/theme/components/radioGroup.ts +4 -2
  314. package/src/theme/components/select.ts +35 -16
  315. package/src/theme/components/skeletonLoader.ts +3 -3
  316. package/src/theme/components/slider.ts +8 -7
  317. package/src/theme/components/statusBadge.ts +2 -2
  318. package/src/theme/components/structuredContent.ts +66 -1
  319. package/src/theme/components/tabs.ts +2 -2
  320. package/src/theme/components/template.ts +9 -9
  321. package/src/theme/components/textInput.ts +13 -12
  322. package/src/theme/components/toggle.ts +43 -13
  323. package/src/theme/components/videoPlayer.ts +1 -1
  324. package/src/theme/foundations/colors.ts +1 -1
  325. package/src/theme/foundations/radii.ts +1 -0
  326. package/src/theme/foundations/spacing.ts +70 -22
  327. package/src/theme/foundations/typography.ts +2 -2
  328. package/src/utils/componentCategories.ts +28 -21
  329. package/dist/components/Card/CardTypes.d.ts +0 -4
  330. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
  331. package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +0 -4
  332. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  333. package/dist/helpers/generateUUID.d.ts +0 -1
  334. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +0 -4
  335. package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
  336. package/src/docs/Intro.stories.mdx +0 -53
  337. package/src/helpers/generateUUID.tsx +0 -5
@@ -7,14 +7,14 @@ import List from "./List";
7
7
  import { ListTypes } from "./ListTypes";
8
8
 
9
9
  const fishArray = ["Mahi-mahi", "Golden trout", "Rainbowfish", "Suckerfish"];
10
- const fishDefinitions = [
10
+ const fishDescriptions = [
11
11
  {
12
12
  term: "Mahi-mahi",
13
- definition: <p>The mahi-mahi is an ocean fish known...</p>,
13
+ description: <p>The mahi-mahi is an ocean fish known...</p>,
14
14
  },
15
15
  {
16
16
  term: "Golden trout",
17
- definition: "The golden trout is a beautifully colored fish...",
17
+ description: "The golden trout is a beautifully colored fish...",
18
18
  },
19
19
  ];
20
20
 
@@ -43,12 +43,12 @@ describe("List Accessibility", () => {
43
43
  rerender(<List type={ListTypes.Ordered} listItems={fishArray} />);
44
44
  expect(await axe(container)).toHaveNoViolations();
45
45
  });
46
- it("passes axe accessibility test for definition list", async () => {
46
+ it("passes axe accessibility test for description list", async () => {
47
47
  const { container } = render(
48
48
  <List
49
- type={ListTypes.Definition}
49
+ type={ListTypes.Description}
50
50
  title="Animal Crossing Fish"
51
- listItems={fishDefinitions}
51
+ listItems={fishDescriptions}
52
52
  />
53
53
  );
54
54
  expect(await axe(container)).toHaveNoViolations();
@@ -102,9 +102,9 @@ describe("List", () => {
102
102
  expect(screen.getByText("Suckerfish")).toBeInTheDocument();
103
103
  });
104
104
 
105
- it("returns definition list", () => {
105
+ it("returns description list", () => {
106
106
  render(
107
- <List type={ListTypes.Definition}>
107
+ <List type={ListTypes.Description}>
108
108
  <dt>Mahi-mahi</dt>
109
109
  <dd>The mahi-mahi is an ocean fish known...</dd>
110
110
  </List>
@@ -116,12 +116,12 @@ describe("List", () => {
116
116
  ).toBeInTheDocument();
117
117
  });
118
118
 
119
- it("returns definition list with the `listItems` prop", () => {
119
+ it("returns description list with the `listItems` prop", () => {
120
120
  render(
121
121
  <List
122
- type={ListTypes.Definition}
122
+ type={ListTypes.Description}
123
123
  title="Animal Crossing Fish"
124
- listItems={fishDefinitions}
124
+ listItems={fishDescriptions}
125
125
  />
126
126
  );
127
127
  expect(screen.getAllByRole("definition")).toHaveLength(2);
@@ -138,7 +138,8 @@ describe("List", () => {
138
138
  </List>
139
139
  );
140
140
  expect(warn).toHaveBeenCalledWith(
141
- "Pass in either `<li>`, `<dt>`, or `<dd>` children or use the `listItems` data prop, but don't use both."
141
+ "NYPL Reservoir List: Pass in either `<li>`, `<dt>`, or `<dd>` children " +
142
+ "or use the `listItems` data prop. Do not use both."
142
143
  );
143
144
  });
144
145
 
@@ -146,7 +147,8 @@ describe("List", () => {
146
147
  const warn = jest.spyOn(console, "warn");
147
148
  render(<List type={ListTypes.Ordered}></List>);
148
149
  expect(warn).toHaveBeenCalledWith(
149
- "Either `<li>` children or the `listItems` prop must be used."
150
+ "NYPL Reservoir List: Pass in either `<li>` children or pass data in " +
151
+ "the `listItems` prop, not both."
150
152
  );
151
153
  });
152
154
 
@@ -160,21 +162,22 @@ describe("List", () => {
160
162
  </List>
161
163
  );
162
164
  expect(warn).toHaveBeenCalledWith(
163
- "Direct children of `List` (ol) should be `<li>`s."
165
+ "NYPL Reservoir List: Direct children of `List` (ol) must be `<li>`s."
164
166
  );
165
167
  });
166
168
 
167
- it("consoles a warning when you pass a definition list children that aren't `<dt>`s or `<dd>`s", () => {
169
+ it("consoles a warning when you pass a description list children that aren't `<dt>`s or `<dd>`s", () => {
168
170
  const warn = jest.spyOn(console, "warn");
169
171
  render(
170
- <List type={ListTypes.Definition}>
172
+ <List type={ListTypes.Description}>
171
173
  <span>Mahi-mahi</span>
172
174
  <span>Golden trout</span>
173
175
  <span>Rainbowfish</span>
174
176
  </List>
175
177
  );
176
178
  expect(warn).toHaveBeenCalledWith(
177
- "Direct children of `List` (definition) should be `<dt>`s and `<dd>`s."
179
+ "NYPL Reservoir List: Direct children of `List` (description) must be " +
180
+ "`<dt>`s and `<dd>`s."
178
181
  );
179
182
  });
180
183
 
@@ -213,13 +216,57 @@ describe("List", () => {
213
216
  />
214
217
  )
215
218
  .toJSON();
216
- const definition = renderer
219
+ const description = renderer
217
220
  .create(
218
221
  <List
219
- id="definition"
220
- type={ListTypes.Definition}
222
+ id="description"
223
+ type={ListTypes.Description}
221
224
  title="Animal Crossing Fish"
222
- listItems={fishDefinitions}
225
+ listItems={fishDescriptions}
226
+ />
227
+ )
228
+ .toJSON();
229
+ const withChakraPropsUnordered = renderer
230
+ .create(
231
+ <List
232
+ id="chakra"
233
+ type={ListTypes.Unordered}
234
+ listItems={fishArray}
235
+ p="20px"
236
+ color="ui.error.primary"
237
+ />
238
+ )
239
+ .toJSON();
240
+ const withOtherPropsUnordered = renderer
241
+ .create(
242
+ <List
243
+ id="other"
244
+ type={ListTypes.Unordered}
245
+ listItems={fishArray}
246
+ data-testid="other"
247
+ />
248
+ )
249
+ .toJSON();
250
+ const withChakraPropsDescription = renderer
251
+ .create(
252
+ <List
253
+ id="chakra"
254
+ type={ListTypes.Description}
255
+ title="Animal Crossing Fish"
256
+ listItems={fishDescriptions}
257
+ p="20px"
258
+ color="ui.error.primary"
259
+ />
260
+ )
261
+ .toJSON();
262
+ const withOtherPropsDescription = renderer
263
+ .create(
264
+ <List
265
+ id="other"
266
+ type={ListTypes.Description}
267
+ title="Animal Crossing Fish"
268
+ listItems={fishDescriptions}
269
+ data-testid="other"
223
270
  />
224
271
  )
225
272
  .toJSON();
@@ -228,6 +275,10 @@ describe("List", () => {
228
275
  expect(unorderedNoStyling).toMatchSnapshot();
229
276
  expect(ordered).toMatchSnapshot();
230
277
  expect(orderedNoStyling).toMatchSnapshot();
231
- expect(definition).toMatchSnapshot();
278
+ expect(description).toMatchSnapshot();
279
+ expect(withChakraPropsUnordered).toMatchSnapshot();
280
+ expect(withOtherPropsUnordered).toMatchSnapshot();
281
+ expect(withChakraPropsDescription).toMatchSnapshot();
282
+ expect(withOtherPropsDescription).toMatchSnapshot();
232
283
  });
233
284
  });
@@ -1,14 +1,12 @@
1
+ import { As, Box, chakra, useStyleConfig } from "@chakra-ui/react";
1
2
  import * as React from "react";
2
- import { As, Box, useStyleConfig } from "@chakra-ui/react";
3
3
 
4
4
  import { ListTypes } from "./ListTypes";
5
5
  import Heading from "../Heading/Heading";
6
6
  import { HeadingLevels } from "../Heading/HeadingTypes";
7
- import generateUUID from "../../helpers/generateUUID";
8
-
9
- interface DefinitionProps {
7
+ interface DescriptionProps {
10
8
  term: string;
11
- definition: string | JSX.Element;
9
+ description: string | JSX.Element;
12
10
  }
13
11
  export interface ListProps {
14
12
  /** Optionally pass in additional Chakra-based styles. */
@@ -21,36 +19,37 @@ export interface ListProps {
21
19
  inline?: boolean;
22
20
  /** Data to render if children are not passed. For `ListTypes.Ordered` and
23
21
  * `ListTypes.Unordered` `List` types, the data structure is an array of
24
- * strings to renders as `li` items. For `ListTypes.Definition` `List` types,
25
- * the data structure is an array of objects with `term` and `definition`
22
+ * strings to renders as `li` items. For `ListTypes.Description` `List` types,
23
+ * the data structure is an array of objects with `term` and `description`
26
24
  * properties to render `dt` and `dd` elements, respectively.
27
25
  */
28
- listItems?: (string | JSX.Element | DefinitionProps)[];
26
+ listItems?: (string | JSX.Element | DescriptionProps)[];
29
27
  /** Remove list styling. */
30
28
  noStyling?: boolean;
31
29
  /** An optional title that will appear over the list. This prop only applies
32
- * to Definition Lists. */
30
+ * to Description Lists. */
33
31
  title?: string;
34
- /** The type of list: Ordered, Unordered, or Definition. Unordered by default. */
32
+ /** The type of list: Ordered, Unordered, or Description. Unordered by default. */
35
33
  type: ListTypes;
36
34
  }
37
35
 
38
36
  /**
39
- * A component that renders list item `li` elements or definition item `dt`
37
+ * A component that renders list item `li` elements or description item `dt`
40
38
  * and `dd` elements based on the `type` prop. Note that the `title` prop will
41
- * only display for the `Definition` list type.
39
+ * only display for the `Description` list type.
42
40
  */
43
- export default function List(props: React.PropsWithChildren<ListProps>) {
41
+ export const List = chakra((props: React.PropsWithChildren<ListProps>) => {
44
42
  const {
45
43
  additionalStyles = {},
46
44
  children,
47
45
  className,
48
- id = generateUUID(),
46
+ id,
49
47
  inline = false,
50
48
  listItems,
51
49
  noStyling = false,
52
50
  title,
53
51
  type = ListTypes.Unordered,
52
+ ...rest
54
53
  } = props;
55
54
  const styles = useStyleConfig("List", { inline, noStyling, variant: type });
56
55
  const finalStyles = { ...styles, ...additionalStyles };
@@ -60,13 +59,15 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
60
59
  // prop must be used.
61
60
  if (children && (listItems || listItems?.length > 0)) {
62
61
  console.warn(
63
- "Pass in either `<li>`, `<dt>`, or `<dd>` children or use the `listItems` data prop, but don't use both."
62
+ "NYPL Reservoir List: Pass in either `<li>`, `<dt>`, or `<dd>` " +
63
+ "children or use the `listItems` data prop. Do not use both."
64
64
  );
65
65
  return null;
66
66
  }
67
67
  if (!children && !listItems) {
68
68
  console.warn(
69
- "Either `<li>` children or the `listItems` prop must be used."
69
+ "NYPL Reservoir List: Pass in either `<li>` children or pass data in " +
70
+ "the `listItems` prop, not both."
70
71
  );
71
72
  return null;
72
73
  }
@@ -76,7 +77,7 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
76
77
  * first, otherwise it will check and render the data passed into the
77
78
  * `listItems` props based on the `ListType` type. If it is of type "Unordered"
78
79
  * or "Ordered", it will return `li` elements. Otherwise, it will return a
79
- * combination of `dt` and `dd` elements for the "Definition" type.
80
+ * combination of `dt` and `dd` elements for the "Description" type.
80
81
  */
81
82
  const listChildrenElms = (listType: ListTypes) => {
82
83
  if (children) {
@@ -84,10 +85,10 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
84
85
  }
85
86
  if (listType === ListTypes.Ordered || listType === ListTypes.Unordered) {
86
87
  return listItems.map((item, i) => <li key={i}>{item}</li>);
87
- } else if (listType === ListTypes.Definition) {
88
- return (listItems as DefinitionProps[]).map((item, i) => [
88
+ } else if (listType === ListTypes.Description) {
89
+ return (listItems as DescriptionProps[]).map((item, i) => [
89
90
  <dt key={`${i}-term`}>{item.term}</dt>,
90
- <dd key={`${i}-def`}>{item.definition}</dd>,
91
+ <dd key={`${i}-des`}>{item.description}</dd>,
91
92
  ]);
92
93
  }
93
94
  return null;
@@ -100,7 +101,7 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
100
101
  React.Children.map(children, (child: React.ReactElement) => {
101
102
  if (child && child?.type !== "li" && child?.props?.mdxType !== "li") {
102
103
  console.warn(
103
- `Direct children of \`List\` (${listType}) should be \`<li>\`s.`
104
+ `NYPL Reservoir List: Direct children of \`List\` (${listType}) must be \`<li>\`s.`
104
105
  );
105
106
  }
106
107
  });
@@ -109,7 +110,7 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
109
110
  * Checks for `dt` and `dd` elements and consoles a warning if the
110
111
  * children are different HTML elements.
111
112
  */
112
- const checkDefinitionChildrenError = () => {
113
+ const checkDescriptionChildrenError = () => {
113
114
  React.Children.map(children, function (child: React.ReactElement) {
114
115
  if (
115
116
  child.type !== "dt" &&
@@ -120,7 +121,8 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
120
121
  child.props.mdxType !== React.Fragment
121
122
  ) {
122
123
  console.warn(
123
- "Direct children of `List` (definition) should be `<dt>`s and `<dd>`s."
124
+ "NYPL Reservoir List: Direct children of `List` (description) must " +
125
+ "be `<dt>`s and `<dd>`s."
124
126
  );
125
127
  }
126
128
  });
@@ -129,14 +131,26 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
129
131
  if (type === ListTypes.Ordered || type === ListTypes.Unordered) {
130
132
  checkListChildrenError(type);
131
133
  listElement = (
132
- <Box as={type as As} id={id} className={className} __css={finalStyles}>
134
+ <Box
135
+ as={type as As}
136
+ id={id}
137
+ className={className}
138
+ __css={finalStyles}
139
+ {...rest}
140
+ >
133
141
  {listChildrenElms(type)}
134
142
  </Box>
135
143
  );
136
- } else if (type === ListTypes.Definition) {
137
- checkDefinitionChildrenError();
144
+ } else if (type === ListTypes.Description) {
145
+ checkDescriptionChildrenError();
138
146
  listElement = (
139
- <Box as="section" id={id} className={className} __css={finalStyles}>
147
+ <Box
148
+ as="section"
149
+ id={id}
150
+ className={className}
151
+ __css={finalStyles}
152
+ {...rest}
153
+ >
140
154
  {title && (
141
155
  <Heading id={`${id}-heading`} level={HeadingLevels.Two}>
142
156
  {title}
@@ -148,4 +162,6 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
148
162
  }
149
163
 
150
164
  return listElement;
151
- }
165
+ });
166
+
167
+ export default List;
@@ -1,5 +1,5 @@
1
1
  export enum ListTypes {
2
2
  Ordered = "ol",
3
3
  Unordered = "ul",
4
- Definition = "dl",
4
+ Description = "dl",
5
5
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`List Renders the UI snapshot correctly 1`] = `
4
4
  <ul
5
- className="css-0"
5
+ className="css-1xdhyk6"
6
6
  id="unordered"
7
7
  >
8
8
  <li>
@@ -22,7 +22,7 @@ exports[`List Renders the UI snapshot correctly 1`] = `
22
22
 
23
23
  exports[`List Renders the UI snapshot correctly 2`] = `
24
24
  <ul
25
- className="css-0"
25
+ className="css-1xdhyk6"
26
26
  id="ordered"
27
27
  >
28
28
  <li>
@@ -42,7 +42,7 @@ exports[`List Renders the UI snapshot correctly 2`] = `
42
42
 
43
43
  exports[`List Renders the UI snapshot correctly 3`] = `
44
44
  <ol
45
- className="css-0"
45
+ className="css-1xdhyk6"
46
46
  id="unordered-no-styling"
47
47
  >
48
48
  <li>
@@ -62,7 +62,7 @@ exports[`List Renders the UI snapshot correctly 3`] = `
62
62
 
63
63
  exports[`List Renders the UI snapshot correctly 4`] = `
64
64
  <ol
65
- className="css-0"
65
+ className="css-1xdhyk6"
66
66
  id="ordered-no-styling"
67
67
  >
68
68
  <li>
@@ -82,12 +82,114 @@ exports[`List Renders the UI snapshot correctly 4`] = `
82
82
 
83
83
  exports[`List Renders the UI snapshot correctly 5`] = `
84
84
  <section
85
- className="css-0"
86
- id="definition"
85
+ className="css-1xdhyk6"
86
+ id="description"
87
87
  >
88
88
  <h2
89
- className="chakra-heading css-0"
90
- id="definition-heading"
89
+ className="chakra-heading css-1xdhyk6"
90
+ id="description-heading"
91
+ >
92
+ Animal Crossing Fish
93
+ </h2>
94
+ <dl>
95
+ <dt>
96
+ Mahi-mahi
97
+ </dt>
98
+ <dd>
99
+ <p>
100
+ The mahi-mahi is an ocean fish known...
101
+ </p>
102
+ </dd>
103
+ <dt>
104
+ Golden trout
105
+ </dt>
106
+ <dd>
107
+ The golden trout is a beautifully colored fish...
108
+ </dd>
109
+ </dl>
110
+ </section>
111
+ `;
112
+
113
+ exports[`List Renders the UI snapshot correctly 6`] = `
114
+ <ul
115
+ className="css-kle7zy"
116
+ id="chakra"
117
+ >
118
+ <li>
119
+ Mahi-mahi
120
+ </li>
121
+ <li>
122
+ Golden trout
123
+ </li>
124
+ <li>
125
+ Rainbowfish
126
+ </li>
127
+ <li>
128
+ Suckerfish
129
+ </li>
130
+ </ul>
131
+ `;
132
+
133
+ exports[`List Renders the UI snapshot correctly 7`] = `
134
+ <ul
135
+ className="css-1xdhyk6"
136
+ data-testid="other"
137
+ id="other"
138
+ >
139
+ <li>
140
+ Mahi-mahi
141
+ </li>
142
+ <li>
143
+ Golden trout
144
+ </li>
145
+ <li>
146
+ Rainbowfish
147
+ </li>
148
+ <li>
149
+ Suckerfish
150
+ </li>
151
+ </ul>
152
+ `;
153
+
154
+ exports[`List Renders the UI snapshot correctly 8`] = `
155
+ <section
156
+ className="css-kle7zy"
157
+ id="chakra"
158
+ >
159
+ <h2
160
+ className="chakra-heading css-1xdhyk6"
161
+ id="chakra-heading"
162
+ >
163
+ Animal Crossing Fish
164
+ </h2>
165
+ <dl>
166
+ <dt>
167
+ Mahi-mahi
168
+ </dt>
169
+ <dd>
170
+ <p>
171
+ The mahi-mahi is an ocean fish known...
172
+ </p>
173
+ </dd>
174
+ <dt>
175
+ Golden trout
176
+ </dt>
177
+ <dd>
178
+ The golden trout is a beautifully colored fish...
179
+ </dd>
180
+ </dl>
181
+ </section>
182
+ `;
183
+
184
+ exports[`List Renders the UI snapshot correctly 9`] = `
185
+ <section
186
+ className="css-1xdhyk6"
187
+ data-testid="other"
188
+ id="other"
189
+ >
190
+ <h2
191
+ className="chakra-heading css-1xdhyk6"
192
+ id="other-heading"
91
193
  >
92
194
  Animal Crossing Fish
93
195
  </h2>
@@ -57,10 +57,23 @@ export const sizesEnumValues = getStorybookEnumValues(LogoSizes, "LogoSizes");
57
57
  | Component Version | DS Version |
58
58
  | ----------------- | ---------- |
59
59
  | Added | `0.25.9` |
60
- | Latest | `0.25.12` |
60
+ | Latest | `0.26.0` |
61
+
62
+ ## Table of Contents
63
+
64
+ - [Overview](#overview)
65
+ - [Component Props](#component-props)
66
+ - [Accessibility](#accessibility)
67
+ - [Logo Sizes](#logo-sizes)
68
+ - [All Logos](#all-logos)
69
+ - [Custom Logos](#custom-logos)
70
+
71
+ ## Overview
61
72
 
62
73
  <Description of={Logo} />
63
74
 
75
+ ## Component Props
76
+
64
77
  <Canvas withToolbar>
65
78
  <Story
66
79
  name="Logo with Controls"
@@ -142,30 +155,29 @@ export const allLogosGrid = (list) => (
142
155
 
143
156
  ## Accessibility
144
157
 
145
- For accessibility purposes, every DS `Logo` will render the `svg` element with
146
- its `svg` file name in the `title` element. The default text in the `title` element
147
- is the logo's code name. Pass in better descriptive text in the `title` prop
148
- when using the `Logo` component in your application. This will give screenreaders
149
- a better descriptive title for the `svg` graphic.
158
+ For accessibility purposes, every Reservoir Design System (DS) `Logo` will
159
+ render the `svg` element with its `svg` file name in the `title` element. The
160
+ default text in the `title` element is the logo's code name. Pass in better
161
+ descriptive text in the `title` prop when using the `Logo` component in your
162
+ application. This will give screenreaders a better descriptive title for the
163
+ `svg` graphic.
150
164
 
151
- ## All Logos
165
+ `Logos`s are decorative by default. This means that they are presentational and
166
+ screenreaders will not read them because the `aria-hidden` attribute is set to
167
+ `true`.
152
168
 
153
- The `Logo` component contains the logos most commonly used by are listed available
154
- logos are listed in the `LogoNames` enum in `src/components/Logos/LogoTypes.tsx`.
169
+ Resources:
155
170
 
156
- If you feel a necessary logo should be added to the `Logo` component, please reach out
157
- to the DS team.
158
-
159
- <Canvas withToolbar>
160
- <Story name="All Logos">{allLogosGrid(logos)}</Story>
161
- </Canvas>
171
+ - [W3C Design System SVG Icons](https://design-system.w3.org/styles/svg-icons.html)
172
+ - [CSS-Tricks Accessible SVG Icons](https://css-tricks.com/accessible-svg-icons/)
173
+ - [Chakra UI Icon](https://chakra-ui.com/docs/components/media-and-icons/icon)
162
174
 
163
175
  ## Logo Sizes
164
176
 
165
177
  Update the size of the `Logo` component by passing the `size` prop with a value from
166
178
  `LogoSizes`. The `LogoSizes` enum can be found in`src/components/Logo/LogoTypes.tsx`.
167
179
 
168
- Note: `LogoSizes.Default` sets the width to `100%` and the logo will expand to
180
+ Note: `LogoSizes.Default` sets the width to `100%` and the rendered logo will expand to
169
181
  fill the full width of the parent element.
170
182
 
171
183
  ```jsx
@@ -177,6 +189,18 @@ fill the full width of the parent element.
177
189
  <Story name="Logo Sizes">{allLogosGrid(sizes)}</Story>
178
190
  </Canvas>
179
191
 
192
+ ## All Logos
193
+
194
+ The `Logo` component contains the logos most commonly used by are listed available
195
+ logos are listed in the `LogoNames` enum in `src/components/Logos/LogoTypes.tsx`.
196
+
197
+ If you feel a necessary logo should be added to the `Logo` component, please reach out
198
+ to the DS team.
199
+
200
+ <Canvas withToolbar>
201
+ <Story name="All Logos">{allLogosGrid(logos)}</Story>
202
+ </Canvas>
203
+
180
204
  ## Custom Logos
181
205
 
182
206
  If you'd like to pass a custom `svg` to your application, you can pass it a
@@ -28,7 +28,7 @@ describe("Logo", () => {
28
28
  </Logo>
29
29
  );
30
30
  expect(warn).toHaveBeenCalledWith(
31
- "Logo accepts either a `name` prop or an `svg` element child. It can not accept both."
31
+ "NYPL Reservoir Logo: Pass either a `name` prop or an `svg` element child. Do not pass both."
32
32
  );
33
33
  });
34
34
 
@@ -36,7 +36,17 @@ describe("Logo", () => {
36
36
  const warn = jest.spyOn(console, "warn");
37
37
  render(<Logo />);
38
38
  expect(warn).toHaveBeenCalledWith(
39
- "Pass a logo `name` prop or an SVG child to `Logo` to ensure a logo appears."
39
+ "NYPL Reservoir Logo: Pass a logo `name` prop or an SVG child to " +
40
+ "`Logo` to ensure a logo appears."
41
+ );
42
+ });
43
+
44
+ it("consoles a warning if name is not passed and a child is but it's not an SVG element", () => {
45
+ const warn = jest.spyOn(console, "warn");
46
+ render(<Logo>Not an SVG</Logo>);
47
+ expect(warn).toHaveBeenCalledWith(
48
+ "NYPL Reservoir Logo: An `svg` element must be passed to the `Logo` " +
49
+ "component as its child."
40
50
  );
41
51
  });
42
52
 
@@ -91,8 +101,25 @@ describe("Logo", () => {
91
101
  />
92
102
  )
93
103
  .toJSON();
104
+ const withChakraProps = renderer
105
+ .create(
106
+ <Logo
107
+ id="chakra"
108
+ name={LogoNames.NYPLBlack}
109
+ p="20px"
110
+ color="ui.error.primary"
111
+ />
112
+ )
113
+ .toJSON();
114
+ const withOtherProps = renderer
115
+ .create(
116
+ <Logo id="props" name={LogoNames.NYPLBlack} data-testid="props" />
117
+ )
118
+ .toJSON();
94
119
 
95
120
  expect(standard).toMatchSnapshot();
96
121
  expect(withCustomSize).toMatchSnapshot();
122
+ expect(withChakraProps).toMatchSnapshot();
123
+ expect(withOtherProps).toMatchSnapshot();
97
124
  });
98
125
  });