@nypl/design-system-react-components 0.25.11 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/README.md +14 -26
  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 +2 -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 +10 -7
  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 +8 -0
  32. package/dist/components/Logo/LogoTypes.d.ts +10 -2
  33. package/dist/components/Notification/Notification.d.ts +7 -7
  34. package/dist/components/Pagination/Pagination.d.ts +8 -4
  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 +5 -5
  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 +18 -9
  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 +2802 -1686
  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 +2811 -1699
  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 +6 -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 -6
  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 +6 -14
  75. package/dist/theme/components/global.d.ts +37 -29
  76. package/dist/theme/components/globalMixins.d.ts +8 -8
  77. package/dist/theme/components/heading.d.ts +53 -0
  78. package/dist/theme/components/helperErrorText.d.ts +1 -0
  79. package/dist/theme/components/hero.d.ts +21 -15
  80. package/dist/theme/components/image.d.ts +1 -1
  81. package/dist/theme/components/label.d.ts +9 -10
  82. package/dist/theme/components/list.d.ts +105 -9
  83. package/dist/theme/components/notification.d.ts +7 -4
  84. package/dist/theme/components/pagination.d.ts +2 -5
  85. package/dist/theme/components/radio.d.ts +10 -6
  86. package/dist/theme/components/radioGroup.d.ts +4 -2
  87. package/dist/theme/components/select.d.ts +38 -13
  88. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  89. package/dist/theme/components/slider.d.ts +14 -7
  90. package/dist/theme/components/structuredContent.d.ts +197 -0
  91. package/dist/theme/components/textInput.d.ts +22 -14
  92. package/dist/theme/components/toggle.d.ts +25 -6
  93. package/dist/theme/foundations/global.d.ts +33 -3
  94. package/dist/theme/foundations/radii.d.ts +1 -0
  95. package/dist/theme/foundations/spacing.d.ts +46 -43
  96. package/dist/utils/utils.d.ts +10 -0
  97. package/package.json +5 -6
  98. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +34 -0
  99. package/src/components/Accordion/Accordion.stories.mdx +150 -66
  100. package/src/components/Accordion/Accordion.test.tsx +65 -17
  101. package/src/components/Accordion/Accordion.tsx +61 -27
  102. package/src/components/Accordion/AccordionTypes.tsx +5 -0
  103. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +505 -14
  104. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  105. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +53 -18
  106. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +66 -35
  107. package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
  108. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +2 -1
  109. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +308 -10
  110. package/src/components/Button/Button.stories.mdx +87 -23
  111. package/src/components/Button/Button.test.tsx +25 -0
  112. package/src/components/Button/Button.tsx +18 -7
  113. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  114. package/src/components/Card/Card.stories.mdx +493 -329
  115. package/src/components/Card/Card.test.tsx +138 -18
  116. package/src/components/Card/Card.tsx +151 -85
  117. package/src/components/Card/__snapshots__/Card.test.tsx.snap +220 -100
  118. package/src/components/Chakra/Center.stories.mdx +2 -2
  119. package/src/components/Chakra/Grid.stories.mdx +4 -4
  120. package/src/components/Checkbox/Checkbox.stories.mdx +73 -9
  121. package/src/components/Checkbox/Checkbox.test.tsx +89 -10
  122. package/src/components/Checkbox/Checkbox.tsx +27 -16
  123. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +209 -6
  124. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +135 -23
  125. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +216 -90
  126. package/src/components/CheckboxGroup/CheckboxGroup.tsx +39 -26
  127. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +493 -89
  128. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  129. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  130. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  131. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  132. package/src/components/DatePicker/DatePicker.test.tsx +94 -15
  133. package/src/components/DatePicker/DatePicker.tsx +67 -58
  134. package/src/components/DatePicker/_DatePicker.scss +71 -13
  135. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  136. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  137. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  138. package/src/components/Fieldset/Fieldset.tsx +35 -30
  139. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  140. package/src/components/Form/Form.stories.mdx +118 -47
  141. package/src/components/Form/Form.test.tsx +59 -16
  142. package/src/components/Form/Form.tsx +89 -65
  143. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  144. package/src/components/Grid/GridTypes.tsx +7 -7
  145. package/src/components/Grid/SimpleGrid.stories.mdx +87 -41
  146. package/src/components/Grid/SimpleGrid.test.tsx +24 -9
  147. package/src/components/Grid/SimpleGrid.tsx +29 -20
  148. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  149. package/src/components/Heading/Heading.stories.mdx +56 -25
  150. package/src/components/Heading/Heading.test.tsx +17 -7
  151. package/src/components/Heading/Heading.tsx +60 -58
  152. package/src/components/Heading/HeadingTypes.tsx +1 -1
  153. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +27 -8
  154. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  155. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  156. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  157. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  158. package/src/components/Hero/Hero.stories.mdx +143 -113
  159. package/src/components/Hero/Hero.test.tsx +146 -58
  160. package/src/components/Hero/Hero.tsx +144 -112
  161. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  162. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  163. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -17
  164. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -25
  165. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  166. package/src/components/Icons/Icon.stories.mdx +80 -23
  167. package/src/components/Icons/Icon.test.tsx +51 -2
  168. package/src/components/Icons/Icon.tsx +93 -71
  169. package/src/components/Icons/IconTypes.tsx +9 -6
  170. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  171. package/src/components/Image/Image.stories.mdx +160 -71
  172. package/src/components/Image/Image.test.tsx +40 -48
  173. package/src/components/Image/Image.tsx +80 -48
  174. package/src/components/Image/ImageTypes.ts +4 -4
  175. package/src/components/Image/__snapshots__/Image.test.tsx.snap +84 -21
  176. package/src/components/Label/Label.stories.mdx +42 -20
  177. package/src/components/Label/Label.test.tsx +42 -17
  178. package/src/components/Label/Label.tsx +22 -13
  179. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  180. package/src/components/Link/Link.stories.mdx +25 -1
  181. package/src/components/Link/Link.test.tsx +21 -0
  182. package/src/components/Link/Link.tsx +16 -9
  183. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  184. package/src/components/List/List.stories.mdx +75 -40
  185. package/src/components/List/List.test.tsx +73 -22
  186. package/src/components/List/List.tsx +44 -28
  187. package/src/components/List/ListTypes.tsx +1 -1
  188. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  189. package/src/components/Logo/Logo.stories.mdx +40 -16
  190. package/src/components/Logo/Logo.test.tsx +29 -2
  191. package/src/components/Logo/Logo.tsx +28 -11
  192. package/src/components/Logo/LogoSvgs.tsx +16 -0
  193. package/src/components/Logo/LogoTypes.tsx +9 -1
  194. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  195. package/src/components/Modal/Modal.stories.mdx +13 -0
  196. package/src/components/Notification/Notification.stories.mdx +34 -5
  197. package/src/components/Notification/Notification.test.tsx +43 -9
  198. package/src/components/Notification/Notification.tsx +59 -55
  199. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +256 -32
  200. package/src/components/Pagination/Pagination.stories.mdx +76 -13
  201. package/src/components/Pagination/Pagination.test.tsx +116 -5
  202. package/src/components/Pagination/Pagination.tsx +54 -29
  203. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +247 -30
  204. package/src/components/Placeholder/Placeholder.tsx +3 -1
  205. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  206. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +87 -13
  207. package/src/components/ProgressIndicator/ProgressIndicator.tsx +20 -10
  208. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  209. package/src/components/Radio/Radio.stories.mdx +75 -11
  210. package/src/components/Radio/Radio.test.tsx +83 -9
  211. package/src/components/Radio/Radio.tsx +70 -61
  212. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +168 -10
  213. package/src/components/RadioGroup/RadioGroup.stories.mdx +293 -94
  214. package/src/components/RadioGroup/RadioGroup.test.tsx +193 -68
  215. package/src/components/RadioGroup/RadioGroup.tsx +110 -101
  216. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1258 -902
  217. package/src/components/SearchBar/SearchBar.stories.mdx +104 -39
  218. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +66 -6
  219. package/src/components/SearchBar/SearchBar.tsx +23 -13
  220. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  221. package/src/components/Select/Select.stories.mdx +151 -62
  222. package/src/components/Select/Select.test.tsx +56 -44
  223. package/src/components/Select/Select.tsx +125 -104
  224. package/src/components/Select/SelectTypes.tsx +5 -0
  225. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  226. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +53 -23
  227. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +14 -8
  228. package/src/components/SkeletonLoader/SkeletonLoader.tsx +80 -78
  229. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +0 -5
  230. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  231. package/src/components/Slider/Slider.stories.mdx +123 -41
  232. package/src/components/Slider/Slider.test.tsx +65 -17
  233. package/src/components/Slider/Slider.tsx +34 -24
  234. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  235. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  236. package/src/components/StatusBadge/StatusBadge.test.tsx +19 -1
  237. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  238. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  239. package/src/components/StructuredContent/StructuredContent.stories.mdx +229 -61
  240. package/src/components/StructuredContent/StructuredContent.test.tsx +162 -101
  241. package/src/components/StructuredContent/StructuredContent.tsx +98 -103
  242. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  243. package/src/components/StyleGuide/Bidirectionality.stories.mdx +9 -9
  244. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  245. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  246. package/src/components/StyleGuide/ColorCard.tsx +4 -4
  247. package/src/components/StyleGuide/Colors.stories.mdx +34 -20
  248. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  249. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  250. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  251. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  252. package/src/components/StyleGuide/Typography.stories.mdx +47 -33
  253. package/src/components/Table/Table.stories.mdx +38 -11
  254. package/src/components/Table/Table.test.tsx +16 -1
  255. package/src/components/Table/Table.tsx +10 -8
  256. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  257. package/src/components/Tabs/Tabs.stories.mdx +59 -10
  258. package/src/components/Tabs/Tabs.test.tsx +29 -11
  259. package/src/components/Tabs/Tabs.tsx +28 -21
  260. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  261. package/src/components/Template/Template.stories.mdx +73 -32
  262. package/src/components/Template/Template.test.tsx +68 -5
  263. package/src/components/Template/Template.tsx +86 -72
  264. package/src/components/Template/__snapshots__/Template.test.tsx.snap +195 -22
  265. package/src/components/Text/Text.stories.mdx +32 -15
  266. package/src/components/Text/Text.test.tsx +14 -11
  267. package/src/components/Text/Text.tsx +13 -16
  268. package/src/components/Text/TextTypes.tsx +1 -1
  269. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  270. package/src/components/TextInput/TextInput.stories.mdx +73 -27
  271. package/src/components/TextInput/TextInput.test.tsx +65 -50
  272. package/src/components/TextInput/TextInput.tsx +123 -115
  273. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  274. package/src/components/Toggle/Toggle.stories.mdx +74 -26
  275. package/src/components/Toggle/Toggle.test.tsx +41 -10
  276. package/src/components/Toggle/Toggle.tsx +31 -27
  277. package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
  278. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +195 -8
  279. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  280. package/src/components/VideoPlayer/VideoPlayer.test.tsx +41 -6
  281. package/src/components/VideoPlayer/VideoPlayer.tsx +134 -120
  282. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  283. package/src/docs/Chakra.stories.mdx +51 -10
  284. package/src/docs/Welcome.stories.mdx +168 -0
  285. package/src/{components/Card/CardTypes.tsx → helpers/enums.ts} +2 -2
  286. package/src/hooks/tests/useNYPLTheme.test.tsx +1 -1
  287. package/src/hooks/useCarouselStyles.stories.mdx +30 -0
  288. package/src/hooks/useCarouselStyles.ts +3 -2
  289. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  290. package/src/hooks/useNYPLTheme.ts +31 -7
  291. package/src/hooks/useWindowSize.stories.mdx +23 -0
  292. package/src/index.ts +11 -15
  293. package/src/styles/base/_place-holder.scss +3 -1
  294. package/src/styles.scss +0 -2
  295. package/src/theme/components/accordion.ts +7 -12
  296. package/src/theme/components/breadcrumb.ts +7 -0
  297. package/src/theme/components/button.ts +15 -7
  298. package/src/theme/components/card.ts +56 -36
  299. package/src/theme/components/checkbox.ts +12 -14
  300. package/src/theme/components/checkboxGroup.ts +4 -2
  301. package/src/theme/components/componentWrapper.ts +2 -2
  302. package/src/theme/components/customTable.ts +39 -31
  303. package/src/theme/components/fieldset.ts +3 -2
  304. package/src/theme/components/global.ts +42 -33
  305. package/src/theme/components/globalMixins.ts +8 -8
  306. package/src/theme/components/heading.ts +1 -1
  307. package/src/theme/components/helperErrorText.ts +1 -0
  308. package/src/theme/components/hero.ts +14 -16
  309. package/src/theme/components/icon.ts +5 -2
  310. package/src/theme/components/image.ts +1 -1
  311. package/src/theme/components/label.ts +4 -3
  312. package/src/theme/components/list.ts +76 -65
  313. package/src/theme/components/notification.ts +10 -7
  314. package/src/theme/components/pagination.ts +2 -5
  315. package/src/theme/components/progressIndicator.ts +3 -3
  316. package/src/theme/components/radio.ts +11 -14
  317. package/src/theme/components/radioGroup.ts +4 -2
  318. package/src/theme/components/select.ts +37 -18
  319. package/src/theme/components/skeletonLoader.ts +3 -3
  320. package/src/theme/components/slider.ts +19 -15
  321. package/src/theme/components/statusBadge.ts +2 -2
  322. package/src/theme/components/structuredContent.ts +66 -1
  323. package/src/theme/components/tabs.ts +2 -2
  324. package/src/theme/components/template.ts +9 -9
  325. package/src/theme/components/textInput.ts +13 -12
  326. package/src/theme/components/toggle.ts +76 -42
  327. package/src/theme/components/videoPlayer.ts +1 -1
  328. package/src/theme/foundations/colors.ts +20 -13
  329. package/src/theme/foundations/global.ts +17 -5
  330. package/src/theme/foundations/radii.ts +1 -0
  331. package/src/theme/foundations/spacing.ts +70 -22
  332. package/src/theme/foundations/typography.ts +3 -3
  333. package/src/utils/componentCategories.ts +28 -21
  334. package/src/utils/utils.ts +28 -0
  335. package/dist/components/Card/CardTypes.d.ts +0 -4
  336. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
  337. package/dist/components/Pagination/Pagination.stories.d.ts +0 -13
  338. package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +0 -4
  339. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  340. package/dist/helpers/generateUUID.d.ts +0 -1
  341. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +0 -4
  342. package/src/components/Pagination/Pagination.stories.tsx +0 -54
  343. package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
  344. package/src/docs/Intro.stories.mdx +0 -53
  345. package/src/helpers/generateUUID.tsx +0 -5
  346. package/src/styles/base/_03-base.scss +0 -25
  347. package/src/styles/base/_04-focus.scss +0 -22
@@ -3,7 +3,6 @@ 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 Image from "../Image/Image";
7
6
  import Heading from "../Heading/Heading";
8
7
  import { HeadingLevels } from "../Heading/HeadingTypes";
9
8
  import { HeroTypes } from "./HeroTypes";
@@ -18,10 +17,11 @@ export const subHeaderText = (
18
17
  </>
19
18
  );
20
19
  export const otherSubHeaderText =
21
- "With 92 locations across the Bronx, Manhattan, and Staten Island, The New York Public Library is an essential part of neighborhoods across the city. Visit us today.";
22
- export const image = (
23
- <Image src="https://placeimg.com/800/400/animals" alt="Image example" />
24
- );
20
+ "With 92 locations across the Bronx, Manhattan, and Staten Island, The New " +
21
+ "York Public Library is an essential part of neighborhoods across the city. " +
22
+ "Visit us today.";
23
+ const imageAlt = "Image example";
24
+ const imageSrc = "https://placeimg.com/800/400/animals";
25
25
 
26
26
  describe("Hero", () => {
27
27
  describe("axe accessbility tests", () => {
@@ -54,8 +54,9 @@ describe("Hero", () => {
54
54
  text="Hero Secondary"
55
55
  />
56
56
  }
57
+ imageAlt={imageAlt}
58
+ imageSrc={imageSrc}
57
59
  subHeaderText={subHeaderText}
58
- image={image}
59
60
  />
60
61
  );
61
62
  expect(await axe(container)).toHaveNoViolations();
@@ -81,6 +82,7 @@ describe("Hero", () => {
81
82
  it("passes for type Campaign", async () => {
82
83
  const { container } = render(
83
84
  <Hero
85
+ backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
84
86
  heroType={HeroTypes.Campaign}
85
87
  heading={
86
88
  <Heading
@@ -89,9 +91,9 @@ describe("Hero", () => {
89
91
  text="Hero Campaign"
90
92
  />
91
93
  }
94
+ imageAlt={imageAlt}
95
+ imageSrc={imageSrc}
92
96
  subHeaderText={otherSubHeaderText}
93
- backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
94
- image={image}
95
97
  />
96
98
  );
97
99
  expect(await axe(container)).toHaveNoViolations();
@@ -101,8 +103,9 @@ describe("Hero", () => {
101
103
  const { container } = render(
102
104
  <Hero
103
105
  heroType={HeroTypes.FiftyFifty}
106
+ imageAlt={imageAlt}
107
+ imageSrc={imageSrc}
104
108
  subHeaderText={otherSubHeaderText}
105
- image={image}
106
109
  />
107
110
  );
108
111
  expect(await axe(container)).toHaveNoViolations();
@@ -144,8 +147,9 @@ describe("Hero", () => {
144
147
  text="Hero Secondary"
145
148
  />
146
149
  }
150
+ imageAlt={imageAlt}
151
+ imageSrc={imageSrc}
147
152
  subHeaderText={subHeaderText}
148
- image={image}
149
153
  />
150
154
  );
151
155
 
@@ -181,6 +185,7 @@ describe("Hero", () => {
181
185
  it("renders Campaign Hero", () => {
182
186
  render(
183
187
  <Hero
188
+ backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
184
189
  heroType={HeroTypes.Campaign}
185
190
  heading={
186
191
  <Heading
@@ -189,9 +194,9 @@ describe("Hero", () => {
189
194
  text="Hero Campaign"
190
195
  />
191
196
  }
197
+ imageAlt={imageAlt}
198
+ imageSrc={imageSrc}
192
199
  subHeaderText={otherSubHeaderText}
193
- backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
194
- image={image}
195
200
  />
196
201
  );
197
202
 
@@ -212,8 +217,9 @@ describe("Hero", () => {
212
217
  render(
213
218
  <Hero
214
219
  heroType={HeroTypes.FiftyFifty}
220
+ imageAlt={imageAlt}
221
+ imageSrc={imageSrc}
215
222
  subHeaderText={otherSubHeaderText}
216
- image={image}
217
223
  />
218
224
  );
219
225
 
@@ -249,11 +255,12 @@ describe("Hero", () => {
249
255
 
250
256
  rerender(
251
257
  <Hero
258
+ backgroundColor="#654321"
259
+ foregroundColor="#123456"
252
260
  heroType={HeroTypes.FiftyFifty}
261
+ imageAlt={imageAlt}
262
+ imageSrc={imageSrc}
253
263
  subHeaderText={otherSubHeaderText}
254
- image={image}
255
- foregroundColor="#123456"
256
- backgroundColor="#654321"
257
264
  />
258
265
  );
259
266
 
@@ -264,6 +271,8 @@ describe("Hero", () => {
264
271
 
265
272
  rerender(
266
273
  <Hero
274
+ backgroundColor="#654321"
275
+ foregroundColor="#123456"
267
276
  heroType={HeroTypes.Secondary}
268
277
  heading={
269
278
  <Heading
@@ -272,10 +281,9 @@ describe("Hero", () => {
272
281
  text="Hero Secondary"
273
282
  />
274
283
  }
284
+ imageAlt={imageAlt}
285
+ imageSrc={imageSrc}
275
286
  subHeaderText={subHeaderText}
276
- image={image}
277
- foregroundColor="#123456"
278
- backgroundColor="#654321"
279
287
  />
280
288
  );
281
289
 
@@ -285,6 +293,21 @@ describe("Hero", () => {
285
293
  );
286
294
  });
287
295
 
296
+ it("logs a warning if `imageSrc` prop is passed but not `imageAlt`", () => {
297
+ const warn = jest.spyOn(console, "warn");
298
+ render(
299
+ <Hero
300
+ backgroundImageSrc="https://placeimg.com/1600/800/arch"
301
+ heroType={HeroTypes.Primary}
302
+ imageSrc={imageSrc}
303
+ />
304
+ );
305
+
306
+ expect(warn).toHaveBeenCalledWith(
307
+ `NYPL Reservoir: The "imageSrc" prop was passed but the "imageAlt" props was not. This will make the rendered image inaccessible.`
308
+ );
309
+ });
310
+
288
311
  it("renders Primary Hero with warnings in browser console", () => {
289
312
  const warn = jest.spyOn(console, "warn");
290
313
  const heading = (
@@ -298,19 +321,22 @@ describe("Hero", () => {
298
321
  <Hero heroType={HeroTypes.Primary} heading={heading} />
299
322
  );
300
323
  expect(warn).toHaveBeenCalledWith(
301
- `Warning: it is recommended to use the "backgroundImageSrc" prop for PRIMARY hero.`
324
+ "NYPL Reservoir Hero: It is recommended to use the `backgroundImageSrc` " +
325
+ "prop for the `HeroTypes.Primary` `heroType` variant."
302
326
  );
303
327
 
304
328
  rerender(
305
329
  <Hero
330
+ backgroundImageSrc="https://placeimg.com/1600/800/arch"
306
331
  heroType={HeroTypes.Primary}
307
332
  heading={heading}
308
- backgroundImageSrc="https://placeimg.com/1600/800/arch"
309
- image={image}
333
+ imageAlt={imageAlt}
334
+ imageSrc={imageSrc}
310
335
  />
311
336
  );
312
337
  expect(warn).toHaveBeenCalledWith(
313
- `Warning: the "image" prop has been passed, but PRIMARY hero will not use it.`
338
+ "NYPL Reservoir Hero: The `imageSrc` and `imageAlt` props have been passed, " +
339
+ "but the `HeroTypes.Primary` `heroType` variant will not use it."
314
340
  );
315
341
  });
316
342
 
@@ -327,40 +353,47 @@ describe("Hero", () => {
327
353
  <Hero
328
354
  heroType={HeroTypes.Secondary}
329
355
  heading={heading}
330
- subHeaderText={subHeaderText}
331
- image={image}
356
+ imageAlt={imageAlt}
357
+ imageSrc={imageSrc}
332
358
  locationDetails={<>Some location details.</>}
359
+ subHeaderText={subHeaderText}
333
360
  />
334
361
  );
335
362
  expect(warn).toHaveBeenCalledWith(
336
- `Warning: Please provide "locationDetails" only to PRIMARY hero.`
363
+ "NYPL Reservoir Hero: The `locationDetails` prop should only be used " +
364
+ "with the `HeroTypes.Primary` `heroType` variant."
337
365
  );
338
366
 
339
367
  rerender(
340
368
  <Hero
369
+ backgroundImageSrc="https://placeimg.com/1600/800/arch"
341
370
  heroType={HeroTypes.Secondary}
342
371
  heading={heading}
372
+ imageAlt={imageAlt}
373
+ imageSrc={imageSrc}
343
374
  subHeaderText={subHeaderText}
344
- image={image}
345
- backgroundImageSrc="https://placeimg.com/1600/800/arch"
346
375
  />
347
376
  );
348
377
  expect(warn).toHaveBeenCalledWith(
349
- `Warning: the "backgroundImageSrc" prop has been passed, but SECONDARY hero will not use it.`
378
+ "NYPL Reservoir Hero: The `backgroundImageSrc` prop has been passed, " +
379
+ "but the `HeroTypes.Secondary` `heroType` variant will not use it."
350
380
  );
351
381
 
352
382
  rerender(
353
383
  <Hero
384
+ backgroundColor="#654321"
385
+ foregroundColor="#123456"
354
386
  heroType={HeroTypes.Secondary}
355
387
  heading={heading}
388
+ imageAlt={imageAlt}
389
+ imageSrc={imageSrc}
356
390
  subHeaderText={subHeaderText}
357
- image={image}
358
- foregroundColor="#123456"
359
- backgroundColor="#654321"
360
391
  />
361
392
  );
362
393
  expect(warn).toHaveBeenCalledWith(
363
- `Warning: the "foregroundColor" and/or "backgroundColor" props have been passed, but SECONDARY Hero will not use them.`
394
+ "NYPL Reservoir Hero: The `foregroundColor` and/or `backgroundColor` " +
395
+ "props have been passed, but the `HeroTypes.Secondary` `heroType` " +
396
+ "variant will not use them."
364
397
  );
365
398
  });
366
399
 
@@ -382,31 +415,35 @@ describe("Hero", () => {
382
415
  />
383
416
  );
384
417
  expect(warn).toHaveBeenCalledWith(
385
- `Warning: Please provide "locationDetails" only to PRIMARY hero.`
418
+ "NYPL Reservoir Hero: The `locationDetails` prop should only be used " +
419
+ "with the `HeroTypes.Primary` `heroType` variant."
386
420
  );
387
421
 
388
422
  rerender(
389
423
  <Hero
390
424
  heroType={HeroTypes.Tertiary}
391
425
  heading={heading}
426
+ imageAlt={imageAlt}
427
+ imageSrc={imageSrc}
392
428
  subHeaderText={otherSubHeaderText}
393
- image={image}
394
429
  />
395
430
  );
396
431
  expect(warn).toHaveBeenCalledWith(
397
- `Warning: TERTIARY hero will not use any of the image props.`
432
+ "NYPL Reservoir Hero: The `HeroTypes.Tertiary` `heroType` variant hero " +
433
+ "will not use any of the image props."
398
434
  );
399
435
 
400
436
  rerender(
401
437
  <Hero
438
+ backgroundImageSrc="https://placeimg.com/1600/800/arch"
402
439
  heroType={HeroTypes.Tertiary}
403
440
  heading={heading}
404
441
  subHeaderText={otherSubHeaderText}
405
- backgroundImageSrc="https://placeimg.com/1600/800/arch"
406
442
  />
407
443
  );
408
444
  expect(warn).toHaveBeenCalledWith(
409
- `Warning: TERTIARY hero will not use any of the image props.`
445
+ "NYPL Reservoir Hero: The `HeroTypes.Tertiary` `heroType` variant hero " +
446
+ "will not use any of the image props."
410
447
  );
411
448
  });
412
449
 
@@ -421,29 +458,34 @@ describe("Hero", () => {
421
458
  );
422
459
  const { rerender } = render(
423
460
  <Hero
461
+ backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
424
462
  heroType={HeroTypes.Campaign}
425
463
  heading={heading}
426
- subHeaderText={otherSubHeaderText}
427
- backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
428
- image={image}
464
+ imageAlt={imageAlt}
465
+ imageSrc={imageSrc}
429
466
  locationDetails={<>Some location details.</>}
467
+ subHeaderText={otherSubHeaderText}
430
468
  />
431
469
  );
432
470
  expect(warn).toHaveBeenCalledWith(
433
- `Warning: Please provide "locationDetails" only to PRIMARY hero.`
471
+ "NYPL Reservoir Hero: The `locationDetails` prop should only be used " +
472
+ "with the `HeroTypes.Primary` `heroType` variant."
434
473
  );
435
474
 
436
475
  rerender(
437
476
  <Hero
438
477
  heroType={HeroTypes.Campaign}
439
478
  heading={heading}
479
+ imageAlt={imageAlt}
480
+ imageSrc={imageSrc}
440
481
  subHeaderText={otherSubHeaderText}
441
- image={image}
442
482
  locationDetails={<>Some location details.</>}
443
483
  />
444
484
  );
445
485
  expect(warn).toHaveBeenCalledWith(
446
- `Warning: it is recommended to use both "backgroundImageSrc" and "image" props for CAMPAIGN hero.`
486
+ "NYPL Reservoir Hero: It is recommended to use both the " +
487
+ "`backgroundImageSrc` and `imageSrc` props for the `HeroTypes.Campaign` " +
488
+ "`heroType` variant."
447
489
  );
448
490
 
449
491
  rerender(
@@ -456,7 +498,9 @@ describe("Hero", () => {
456
498
  />
457
499
  );
458
500
  expect(warn).toHaveBeenCalledWith(
459
- `Warning: it is recommended to use both "backgroundImageSrc" and "image" props for CAMPAIGN hero.`
501
+ "NYPL Reservoir Hero: It is recommended to use both the " +
502
+ "`backgroundImageSrc` and `imageSrc` props for the `HeroTypes.Campaign` " +
503
+ "`heroType` variant."
460
504
  );
461
505
  });
462
506
 
@@ -466,24 +510,28 @@ describe("Hero", () => {
466
510
  <Hero
467
511
  heroType={HeroTypes.FiftyFifty}
468
512
  subHeaderText={otherSubHeaderText}
469
- image={image}
513
+ imageAlt={imageAlt}
514
+ imageSrc={imageSrc}
470
515
  locationDetails={<>Some location details.</>}
471
516
  />
472
517
  );
473
518
  expect(warn).toHaveBeenCalledWith(
474
- `Warning: Please provide "locationDetails" only to PRIMARY hero.`
519
+ "NYPL Reservoir Hero: The `locationDetails` prop should only be used " +
520
+ "with the `HeroTypes.Primary` `heroType` variant."
475
521
  );
476
522
 
477
523
  rerender(
478
524
  <Hero
525
+ backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
479
526
  heroType={HeroTypes.FiftyFifty}
527
+ imageAlt={imageAlt}
528
+ imageSrc={imageSrc}
480
529
  subHeaderText={otherSubHeaderText}
481
- image={image}
482
- backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
483
530
  />
484
531
  );
485
532
  expect(warn).toHaveBeenCalledWith(
486
- `Warning: the "backgroundImageSrc" prop has been passed, but FIFTYFIFTY hero will not use it.`
533
+ "NYPL Reservoir Hero: The `backgroundImageSrc` prop has been passed, " +
534
+ "but the `HeroTypes.FiftyFifty` `heroType` variant hero will not use it."
487
535
  );
488
536
  });
489
537
 
@@ -515,8 +563,9 @@ describe("Hero", () => {
515
563
  text="Hero Secondary"
516
564
  />
517
565
  }
566
+ imageAlt={imageAlt}
567
+ imageSrc={imageSrc}
518
568
  subHeaderText={subHeaderText}
519
- image={image}
520
569
  />
521
570
  )
522
571
  .toJSON();
@@ -531,8 +580,9 @@ describe("Hero", () => {
531
580
  text="Hero Secondary Books and More"
532
581
  />
533
582
  }
583
+ imageAlt={imageAlt}
584
+ imageSrc={imageSrc}
534
585
  subHeaderText={subHeaderText}
535
- image={image}
536
586
  />
537
587
  )
538
588
  .toJSON();
@@ -547,8 +597,9 @@ describe("Hero", () => {
547
597
  text="Hero Secondary Locations"
548
598
  />
549
599
  }
600
+ imageAlt={imageAlt}
601
+ imageSrc={imageSrc}
550
602
  subHeaderText={subHeaderText}
551
- image={image}
552
603
  />
553
604
  )
554
605
  .toJSON();
@@ -563,8 +614,9 @@ describe("Hero", () => {
563
614
  text="Hero Secondary"
564
615
  />
565
616
  }
617
+ imageAlt={imageAlt}
618
+ imageSrc={imageSrc}
566
619
  subHeaderText={subHeaderText}
567
- image={image}
568
620
  />
569
621
  )
570
622
  .toJSON();
@@ -579,14 +631,16 @@ describe("Hero", () => {
579
631
  text="Hero Secondary What's On"
580
632
  />
581
633
  }
634
+ imageAlt={imageAlt}
635
+ imageSrc={imageSrc}
582
636
  subHeaderText={subHeaderText}
583
- image={image}
584
637
  />
585
638
  )
586
639
  .toJSON();
587
640
  const campaign = renderer
588
641
  .create(
589
642
  <Hero
643
+ backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
590
644
  heroType={HeroTypes.Campaign}
591
645
  heading={
592
646
  <Heading
@@ -595,9 +649,9 @@ describe("Hero", () => {
595
649
  text="Hero Campaign"
596
650
  />
597
651
  }
652
+ imageAlt={imageAlt}
653
+ imageSrc={imageSrc}
598
654
  subHeaderText={otherSubHeaderText}
599
- backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
600
- image={image}
601
655
  />
602
656
  )
603
657
  .toJSON();
@@ -620,8 +674,40 @@ describe("Hero", () => {
620
674
  .create(
621
675
  <Hero
622
676
  heroType={HeroTypes.FiftyFifty}
677
+ imageAlt={imageAlt}
678
+ imageSrc={imageSrc}
623
679
  subHeaderText={otherSubHeaderText}
624
- image={image}
680
+ />
681
+ )
682
+ .toJSON();
683
+ const withChakraProps = renderer
684
+ .create(
685
+ <Hero
686
+ heroType={HeroTypes.Primary}
687
+ heading={
688
+ <Heading
689
+ level={HeadingLevels.One}
690
+ id="chakra"
691
+ text="Hero Primary"
692
+ />
693
+ }
694
+ subHeaderText="Example Subtitle"
695
+ backgroundImageSrc="https://placeimg.com/1600/800/arch"
696
+ p="20px"
697
+ color="ui.error.primary"
698
+ />
699
+ )
700
+ .toJSON();
701
+ const withOtherProps = renderer
702
+ .create(
703
+ <Hero
704
+ heroType={HeroTypes.Primary}
705
+ heading={
706
+ <Heading level={HeadingLevels.One} id="props" text="Hero Primary" />
707
+ }
708
+ subHeaderText="Example Subtitle"
709
+ backgroundImageSrc="https://placeimg.com/1600/800/arch"
710
+ data-testid="props"
625
711
  />
626
712
  )
627
713
  .toJSON();
@@ -635,5 +721,7 @@ describe("Hero", () => {
635
721
  expect(tertiary).toMatchSnapshot();
636
722
  expect(campaign).toMatchSnapshot();
637
723
  expect(fiftyFifty).toMatchSnapshot();
724
+ expect(withChakraProps).toMatchSnapshot();
725
+ expect(withOtherProps).toMatchSnapshot();
638
726
  });
639
727
  });