@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
@@ -49,10 +49,21 @@ export const enumValues = getStorybookEnumValues(
49
49
  | Component Version | DS Version |
50
50
  | ----------------- | ---------- |
51
51
  | Added | `0.18.7` |
52
- | Latest | `0.25.1` |
52
+ | Latest | `0.26.0` |
53
+
54
+ ## Table of Contents
55
+
56
+ - [Overview](#overview)
57
+ - [Component Props](#component-props)
58
+ - [Accessibility](#accessibility)
59
+ - [Patterns](#patterns)
60
+
61
+ ## Overview
53
62
 
54
63
  <Description of={StatusBadge} />
55
64
 
65
+ ## Component Props
66
+
56
67
  <Canvas withToolbar>
57
68
  <Story
58
69
  name="StatusBadge"
@@ -73,6 +84,13 @@ export const enumValues = getStorybookEnumValues(
73
84
 
74
85
  <ArgsTable story="StatusBadge" />
75
86
 
87
+ ## Accessibility
88
+
89
+ The visual aspect of the `StatusBadge` component displays three different status
90
+ levels through the use of three different colors. It is important to assign
91
+ the appropriate text so that the user can understand the priority level of the
92
+ `StatusBadge`, and not rely just on the color.
93
+
76
94
  ## Patterns
77
95
 
78
96
  ### Higher Barrier
@@ -24,7 +24,9 @@ describe("StatusBadge", () => {
24
24
  it("throws a warning when no children are passed", () => {
25
25
  const warn = jest.spyOn(console, "warn");
26
26
  render(<StatusBadge></StatusBadge>);
27
- expect(warn).toHaveBeenCalledWith("Status Badge has no children.");
27
+ expect(warn).toHaveBeenCalledWith(
28
+ "NYPL Reservoir StatusBadge: No children were passed."
29
+ );
28
30
  });
29
31
 
30
32
  it("renders the UI snapshot correctly", () => {
@@ -45,9 +47,25 @@ describe("StatusBadge", () => {
45
47
  </StatusBadge>
46
48
  )
47
49
  .toJSON();
50
+ const withChakraProps = renderer
51
+ .create(
52
+ <StatusBadge id="chakra" p="20px" color="ui.error.primary">
53
+ Registration Required
54
+ </StatusBadge>
55
+ )
56
+ .toJSON();
57
+ const withOtherProps = renderer
58
+ .create(
59
+ <StatusBadge id="props" data-testid="props">
60
+ Registration Required
61
+ </StatusBadge>
62
+ )
63
+ .toJSON();
48
64
 
49
65
  expect(low).toMatchSnapshot();
50
66
  expect(medium).toMatchSnapshot();
51
67
  expect(high).toMatchSnapshot();
68
+ expect(withChakraProps).toMatchSnapshot();
69
+ expect(withOtherProps).toMatchSnapshot();
52
70
  });
53
71
  });
@@ -1,9 +1,7 @@
1
+ import { Box, chakra, useStyleConfig } from "@chakra-ui/react";
1
2
  import * as React from "react";
2
- import { Box, useStyleConfig } from "@chakra-ui/react";
3
3
 
4
4
  import { StatusBadgeTypes } from "./StatusBadgeTypes";
5
- import generateUUID from "../../helpers/generateUUID";
6
-
7
5
  export interface StatusBadgeProps {
8
6
  /** Additional class for the component */
9
7
  className?: string;
@@ -14,24 +12,31 @@ export interface StatusBadgeProps {
14
12
  level?: StatusBadgeTypes;
15
13
  }
16
14
 
17
- function StatusBadge(props: React.PropsWithChildren<StatusBadgeProps>) {
18
- const {
19
- children,
20
- className,
21
- id = generateUUID(),
22
- level = StatusBadgeTypes.Low,
23
- } = props;
24
- const styles = useStyleConfig("StatusBadge", { variant: level });
15
+ /**
16
+ * The `StatusBadge` component is used to display a visual badge for three
17
+ * different status levels.
18
+ */
19
+ export const StatusBadge = chakra(
20
+ (props: React.PropsWithChildren<StatusBadgeProps>) => {
21
+ const {
22
+ children,
23
+ className,
24
+ id,
25
+ level = StatusBadgeTypes.Low,
26
+ ...rest
27
+ } = props;
28
+ const styles = useStyleConfig("StatusBadge", { variant: level });
25
29
 
26
- if (!children) {
27
- console.warn("Status Badge has no children.");
28
- }
30
+ if (!children) {
31
+ console.warn("NYPL Reservoir StatusBadge: No children were passed.");
32
+ }
29
33
 
30
- return (
31
- <Box id={id} className={className} __css={styles}>
32
- {children}
33
- </Box>
34
- );
35
- }
34
+ return (
35
+ <Box id={id} className={className} __css={styles} {...rest}>
36
+ {children}
37
+ </Box>
38
+ );
39
+ }
40
+ );
36
41
 
37
42
  export default StatusBadge;
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`StatusBadge renders the UI snapshot correctly 1`] = `
4
4
  <div
5
- className="css-0"
5
+ className="css-1xdhyk6"
6
6
  id="low"
7
7
  >
8
8
  Registration Required
@@ -11,7 +11,7 @@ exports[`StatusBadge renders the UI snapshot correctly 1`] = `
11
11
 
12
12
  exports[`StatusBadge renders the UI snapshot correctly 2`] = `
13
13
  <div
14
- className="css-0"
14
+ className="css-1xdhyk6"
15
15
  id="medium"
16
16
  >
17
17
  Registration Required
@@ -20,9 +20,28 @@ exports[`StatusBadge renders the UI snapshot correctly 2`] = `
20
20
 
21
21
  exports[`StatusBadge renders the UI snapshot correctly 3`] = `
22
22
  <div
23
- className="css-0"
23
+ className="css-1xdhyk6"
24
24
  id="high"
25
25
  >
26
26
  Registration Required
27
27
  </div>
28
28
  `;
29
+
30
+ exports[`StatusBadge renders the UI snapshot correctly 4`] = `
31
+ <div
32
+ className="css-kle7zy"
33
+ id="chakra"
34
+ >
35
+ Registration Required
36
+ </div>
37
+ `;
38
+
39
+ exports[`StatusBadge renders the UI snapshot correctly 5`] = `
40
+ <div
41
+ className="css-1xdhyk6"
42
+ data-testid="props"
43
+ id="props"
44
+ >
45
+ Registration Required
46
+ </div>
47
+ `;
@@ -41,25 +41,34 @@ export const imageSizeEnumValues = getStorybookEnumValues(
41
41
  argTypes={{
42
42
  className: { control: false },
43
43
  id: { control: false },
44
- imageAspectRatio: {
44
+ "imageProps.aspectRatio": {
45
+ control: {
46
+ type: "select",
47
+ },
45
48
  table: {
46
49
  defaultValue: { summary: "ImageRatios.Square" },
47
50
  },
48
51
  options: imageAspectRatioEnumValues.options,
49
52
  },
50
- imagePosition: {
53
+ "imageProps.component": { control: false },
54
+ "imageProps.position": {
55
+ control: {
56
+ type: "select",
57
+ },
51
58
  table: {
52
59
  defaultValue: { summary: "StructuredContentImagePosition.Left" },
53
60
  },
54
61
  options: imagePositionEnumValues.options,
55
62
  },
56
- imageSize: {
63
+ "imageProps.size": {
64
+ control: {
65
+ type: "select",
66
+ },
57
67
  table: {
58
68
  defaultValue: { summary: "ImageSizes.Medium" },
59
69
  },
60
70
  options: imageSizeEnumValues.options,
61
71
  },
62
- imageComponent: { control: false },
63
72
  }}
64
73
  />
65
74
 
@@ -68,25 +77,27 @@ export const imageSizeEnumValues = getStorybookEnumValues(
68
77
  | Component Version | DS Version |
69
78
  | ----------------- | ---------- |
70
79
  | Added | `0.25.9` |
71
- | Latest | `0.25.11` |
80
+ | Latest | `0.26.0` |
81
+
82
+ ## Table of Contents
83
+
84
+ - [Overview](#overview)
85
+ - [Component Props](#component-props)
86
+ - [Accessibility](#accessibility)
87
+ - [With HTML String Text Content](#with-html-string-text-content)
88
+ - [With HTML Element Text Content](#with-html-element-text-content)
89
+ - [Examples](#examples)
90
+
91
+ ## Overview
72
92
 
73
93
  <Description of={StructuredContent} />
74
94
 
95
+ ## Component Props
96
+
75
97
  <Canvas withToolbar>
76
98
  <Story
77
99
  name="StructuredContent with Controls"
78
100
  args={{
79
- calloutText: "This is the callout text",
80
- className: undefined,
81
- headingText: "Heading text",
82
- id: "structured-content",
83
- imageAlt: "Image alt text",
84
- imageAspectRatio: "ImageRatios.Square",
85
- imageCaption: "Image caption",
86
- imageCredit: "Image credit",
87
- imagePosition: "StructuredContentImagePosition.Left",
88
- imageSize: "ImageSizes.Medium",
89
- imageSrc: "https://placeimg.com/400/300/animals",
90
101
  bodyContent:
91
102
  "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod" +
92
103
  " tempor incididunt ut labore et dolore magna aliqua. Pellentesque massa" +
@@ -111,16 +122,36 @@ export const imageSizeEnumValues = getStorybookEnumValues(
111
122
  "Nullam non nisi est sit. Turpis egestas integer eget aliquet nibh " +
112
123
  "praesent. Tortor at risus viverra adipiscing at. Eu augue ut lectus " +
113
124
  "arcu bibendum at varius vel pharetra.",
125
+ calloutText: "This is the callout text",
126
+ className: undefined,
127
+ headingText: "Heading text",
128
+ id: "structured-content",
129
+ "imageProps.alt": "Image alt text",
130
+ "imageProps.aspectRatio": "ImageRatios.Square",
131
+ "imageProps.caption": "Image caption",
132
+ "imageProps.component": undefined,
133
+ "imageProps.credit": "Image credit",
134
+ "imageProps.position": "StructuredContentImagePosition.Left",
135
+ "imageProps.size": "ImageSizes.Medium",
136
+ "imageProps.src": "https://placeimg.com/400/300/animals",
114
137
  }}
115
138
  >
116
139
  {(args) => (
117
140
  <StructuredContent
118
141
  {...args}
119
- imageAspectRatio={imageAspectRatioEnumValues.getValue(
120
- args.imageAspectRatio
121
- )}
122
- imagePosition={imagePositionEnumValues.getValue(args.imagePosition)}
123
- imageSize={imageSizeEnumValues.getValue(args.imageSize)}
142
+ imageProps={{
143
+ alt: args["imageProps.alt"],
144
+ aspectRatio: imageAspectRatioEnumValues.getValue(
145
+ args["imageProps.aspectRatio"]
146
+ ),
147
+ caption: args["imageProps.caption"],
148
+ credit: args["imageProps.credit"],
149
+ position: imagePositionEnumValues.getValue(
150
+ args["imageProps.position"]
151
+ ),
152
+ size: imageSizeEnumValues.getValue(args["imageProps.size"]),
153
+ src: args["imageProps.src"],
154
+ }}
124
155
  />
125
156
  )}
126
157
  </Story>
@@ -128,23 +159,41 @@ export const imageSizeEnumValues = getStorybookEnumValues(
128
159
 
129
160
  <ArgsTable story="StructuredContent with Controls" />
130
161
 
162
+ ## Accessibility
163
+
164
+ The `StructuredContent` component is a structured container around a specific
165
+ set of content. While the main image can be controlled through the `imageProps`
166
+ prop, the content will not always be controlled. If the content that is being
167
+ passed is coming from a CMS, the content can contain any set of HTML elements that
168
+ are _not_ controlled through Reservoir DS components. While this component
169
+ attempts to style the added elements, we cannot guarantee that the content will
170
+ be accessible. Please review your content and make sure that:
171
+
172
+ - The content's font-size to be scaled to 200% without content overlapping.
173
+ - Any additional images have descriptive (but not too lengthy) alt text.
174
+ - Any additional heading levels should not be skipped. Meaning, a `<h2>` should
175
+ not be followed by a `<h4>`.
176
+ - Any links or text with colors should have a 4.5:1 contrast ratio.
177
+
131
178
  ## With HTML String Text Content
132
179
 
133
180
  The following body content is passed as a string to the `bodyContent` prop. It
134
181
  includes HTML tags in the string.
135
182
 
136
183
  <Canvas>
137
- <Story name="With HTMl String Text Content">
184
+ <Story name="With HTML String Text Content">
138
185
  <StructuredContent
139
186
  calloutText="This is the callout text"
140
187
  headingText="Heading text"
141
- imageAlt="Image alt text"
142
- imageAspectRatio={ImageRatios.Original}
143
- imageCaption="Image caption"
144
- imageCredit="Image credit"
145
- imagePosition={StructuredContentImagePosition.Left}
146
- imageSize={ImageSizes.Medium}
147
- imageSrc="https://placeimg.com/400/300/animals"
188
+ imageProps={{
189
+ alt: "Image alt text",
190
+ aspectRatio: ImageRatios.Original,
191
+ caption: "Image caption",
192
+ credit: "Image credit",
193
+ position: StructuredContentImagePosition.Left,
194
+ size: ImageSizes.Medium,
195
+ src: "https://placeimg.com/400/300/animals",
196
+ }}
148
197
  bodyContent={
149
198
  "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
150
199
  "eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
@@ -185,13 +234,15 @@ The following content is passed as HTML DOM elements to the `bodyContent` prop.
185
234
  <StructuredContent
186
235
  calloutText="This is the callout text"
187
236
  headingText="Heading text"
188
- imageAlt="Image alt text"
189
- imageAspectRatio={ImageRatios.Original}
190
- imageCaption="Image caption"
191
- imageCredit="Image credit"
192
- imagePosition={StructuredContentImagePosition.Left}
193
- imageSize={ImageSizes.Medium}
194
- imageSrc="https://placeimg.com/400/300/animals"
237
+ imageProps={{
238
+ alt: "Image alt text",
239
+ aspectRatio: ImageRatios.Original,
240
+ caption: "Image caption",
241
+ credit: "Image credit",
242
+ position: StructuredContentImagePosition.Left,
243
+ size: ImageSizes.Medium,
244
+ src: "https://placeimg.com/400/300/animals",
245
+ }}
195
246
  bodyContent={
196
247
  <>
197
248
  <p>
@@ -218,12 +269,69 @@ The following content is passed as HTML DOM elements to the `bodyContent` prop.
218
269
  Feugiat nisl pretium fusce id velit ut tortor. Porttitor leo a diam
219
270
  sollicitudin tempor id eu nisl nunc.
220
271
  </p>
221
- <ul>
222
- <li>one</li>
223
- <li>two</li>
224
- <li>three</li>
225
- <li>four</li>
226
- </ul>
272
+ <h3 id="dates-times">Dates and Times</h3>
273
+ <table role="table" id="times-table">
274
+ <thead>
275
+ <tr role="row">
276
+ <th scope="col">Day</th>
277
+ <th scope="col">Time</th>
278
+ <th scope="col">Presentation</th>
279
+ <th scope="col">Topic</th>
280
+ </tr>
281
+ </thead>
282
+ <tbody>
283
+ <tr role="row">
284
+ <td>Sunday</td>
285
+ <td>7:00 PM</td>
286
+ <td>Tom Nook</td>
287
+ <td>Manhattan</td>
288
+ </tr>
289
+ <tr role="row">
290
+ <td>Monday</td>
291
+ <td>7:00 PM</td>
292
+ <td>Tom Nook</td>
293
+ <td>The Bronx</td>
294
+ </tr>
295
+ <tr role="row">
296
+ <td>Tuesday</td>
297
+ <td>7:00 PM</td>
298
+ <td>Tom Nook</td>
299
+ <td>Queens</td>
300
+ </tr>
301
+ <tr role="row">
302
+ <td>Wednesday</td>
303
+ <td>7:00 PM</td>
304
+ <td>Tom Nook</td>
305
+ <td>Staten Island</td>
306
+ </tr>
307
+ <tr role="row">
308
+ <td>Thursday</td>
309
+ <td>7:00 PM</td>
310
+ <td>Tom Nook</td>
311
+ <td>Brooklyn</td>
312
+ </tr>
313
+ <tr role="row">
314
+ <td>Friday</td>
315
+ <td>7:00 PM</td>
316
+ <td>Tom Nook</td>
317
+ <td>Long Island</td>
318
+ </tr>
319
+ <tr role="row">
320
+ <td>Saturday</td>
321
+ <td>7:00 PM</td>
322
+ <td>Tom Nook</td>
323
+ <td>Upstate</td>
324
+ </tr>
325
+ </tbody>
326
+ </table>
327
+ <h3 id="parting-thoughts">Parting Thoughts</h3>
328
+ <ol id="thoughts-list">
329
+ <li>All text was read</li>
330
+ <li>The two videos were watched</li>
331
+ <li>All images were reviewed</li>
332
+ <li>Notes were taken on a small notepad</li>
333
+ <li>You enjoyed yourself</li>
334
+ </ol>
227
335
  <p>
228
336
  <i>
229
337
  Mauris nunc congue nisi vitae suscipit tellus mauris a diam. Purus
@@ -240,6 +348,60 @@ The following content is passed as HTML DOM elements to the `bodyContent` prop.
240
348
  pharetra.
241
349
  </i>
242
350
  </p>
351
+ <section id="definition-doc-list">
352
+ <h2>Episode Forty-Two: Readings and Resources</h2>
353
+ <dl>
354
+ <dt>Hillary Ballon and Kenneth T. Jackson, eds.</dt>
355
+ <dd>
356
+ <em>
357
+ <a
358
+ id="link-10"
359
+ href="https://www.nypl.org/research/research-catalog/bib/b22154388"
360
+ >
361
+ Robert Moses and the Modern City: The Transformation of New
362
+ York
363
+ </a>
364
+ </em>{" "}
365
+ (W.W. Norton &amp; Co., 2007).
366
+ </dd>
367
+ <dt>The Brooklyn Battery Bridge</dt>
368
+ <dd>
369
+ "
370
+ <a
371
+ id="link-11"
372
+ href="https://www.nypap.org/preservation-history/brooklyn-battery-bridge/"
373
+ >
374
+ The Brooklyn Battery Bridge
375
+ </a>
376
+ ," New York Preservation Archives Project.
377
+ </dd>
378
+ <dt>Robert Caro</dt>
379
+ <dd>
380
+ <em>
381
+ <a
382
+ id="link-12"
383
+ href="https://www.nypl.org/research/research-catalog/bib/b21586756"
384
+ >
385
+ The Power Broker: Robert Moses and the Fall of New York
386
+ </a>
387
+ </em>{" "}
388
+ (Vintage Books, 1975).&nbsp;
389
+ </dd>
390
+ <dt>Anthony Flint</dt>
391
+ <dd>
392
+ <em>
393
+ <a
394
+ id="link-13"
395
+ href="https://www.nypl.org/research/research-catalog/bib/b20538453"
396
+ >
397
+ Wrestling with Moses: How Jane Jacobs Took on New York's
398
+ Master Builder and Transformed the American City
399
+ </a>
400
+ </em>{" "}
401
+ (Random House, 2009).
402
+ </dd>
403
+ </dl>
404
+ </section>
243
405
  </>
244
406
  }
245
407
  />
@@ -255,13 +417,15 @@ but no callout content. The second component does not have an image.
255
417
  <DSProvider>
256
418
  <StructuredContent
257
419
  headingText="Heading text"
258
- imageAlt="Image alt text"
259
- imageAspectRatio={ImageRatios.Original}
260
- imageCaption="Image caption"
261
- imageCredit="Image credit"
262
- imagePosition={StructuredContentImagePosition.Left}
263
- imageSize={ImageSizes.Medium}
264
- imageSrc="https://placeimg.com/400/300/animals"
420
+ imageProps={{
421
+ alt: "Image alt text",
422
+ aspectRatio: ImageRatios.Original,
423
+ caption: "Image caption",
424
+ credit: "Image credit",
425
+ position: StructuredContentImagePosition.Left,
426
+ size: ImageSizes.Medium,
427
+ src: "https://placeimg.com/400/300/animals",
428
+ }}
265
429
  bodyContent={
266
430
  "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
267
431
  "eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
@@ -319,13 +483,15 @@ The third one does not contain an image.
319
483
  />
320
484
  <StructuredContent
321
485
  headingText="Heading text"
322
- imageAlt="Image alt text"
323
- imageAspectRatio={ImageRatios.Original}
324
- imageCaption="Image caption"
325
- imageCredit="Image credit"
326
- imagePosition={StructuredContentImagePosition.Left}
327
- imageSize={ImageSizes.Medium}
328
- imageSrc="https://placeimg.com/400/300/animals"
486
+ imageProps={{
487
+ alt: "Image alt text",
488
+ aspectRatio: ImageRatios.Original,
489
+ caption: "Image caption",
490
+ credit: "Image credit",
491
+ position: StructuredContentImagePosition.Left,
492
+ size: ImageSizes.Medium,
493
+ src: "https://placeimg.com/400/300/animals",
494
+ }}
329
495
  bodyContent={
330
496
  "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
331
497
  "eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
@@ -390,11 +556,13 @@ text content. The second one has a callout content and image spanning full width
390
556
  <StructuredContent
391
557
  calloutText="This is the callout text"
392
558
  headingText="Heading text"
393
- imageAlt="Image alt text"
394
- imageAspectRatio={ImageRatios.Original}
395
- imagePosition={StructuredContentImagePosition.Center}
396
- imageSize={ImageSizes.Medium}
397
- imageSrc="https://placeimg.com/400/300/animals"
559
+ imageProps={{
560
+ alt: "Image alt text",
561
+ aspectRatio: ImageRatios.Original,
562
+ position: StructuredContentImagePosition.Center,
563
+ size: ImageSizes.Medium,
564
+ src: "https://placeimg.com/400/300/animals",
565
+ }}
398
566
  bodyContent={
399
567
  "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
400
568
  "eiusmod tempor incididunt ut labore et dolore magna aliqua." +