@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
@@ -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.11` |
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
  });
@@ -1,7 +1,11 @@
1
+ import {
2
+ Box,
3
+ chakra,
4
+ Icon as ChakraIcon,
5
+ useStyleConfig,
6
+ } from "@chakra-ui/react";
1
7
  import * as React from "react";
2
- import { Icon as ChakraIcon, Box, useStyleConfig } from "@chakra-ui/react";
3
8
 
4
- import generateUUID from "../../helpers/generateUUID";
5
9
  import { LogoNames, LogoSizes } from "./LogoTypes";
6
10
  import logoSvgs from "./LogoSvgs";
7
11
 
@@ -29,16 +33,17 @@ export interface LogoProps {
29
33
  * The `Logo` component renders SVG-based logos and color variants that are
30
34
  * commonly used by the New York Public Library.
31
35
  */
32
- export default function Logo(props: React.PropsWithChildren<LogoProps>) {
36
+ export const Logo = chakra((props: React.PropsWithChildren<LogoProps>) => {
33
37
  const {
34
38
  additionalStyles = {},
35
39
  children,
36
40
  className,
37
41
  decorative = false,
38
- id = generateUUID(),
42
+ id,
39
43
  name,
40
44
  size = LogoSizes.Medium,
41
45
  title = `${name} logo`,
46
+ ...rest
42
47
  } = props;
43
48
  const styles = useStyleConfig("Logo", {
44
49
  size,
@@ -49,18 +54,21 @@ export default function Logo(props: React.PropsWithChildren<LogoProps>) {
49
54
  id,
50
55
  role: "img",
51
56
  title,
57
+ ...rest,
52
58
  };
53
59
  let childSVG = null;
54
60
 
55
61
  // Component prop validation
56
62
  if (name && children) {
57
63
  console.warn(
58
- "Logo accepts either a `name` prop or an `svg` element child. It can not accept both."
64
+ "NYPL Reservoir Logo: Pass either a `name` prop or an `svg` element " +
65
+ "child. Do not pass both."
59
66
  );
60
67
  return null;
61
68
  } else if (!name && !children) {
62
69
  console.warn(
63
- "Pass a logo `name` prop or an SVG child to `Logo` to ensure a logo appears."
70
+ "NYPL Reservoir Logo: Pass a logo `name` prop or an SVG child to " +
71
+ "`Logo` to ensure a logo appears."
64
72
  );
65
73
  return null;
66
74
  }
@@ -83,15 +91,24 @@ export default function Logo(props: React.PropsWithChildren<LogoProps>) {
83
91
  // Apply logo props to the SVG child.
84
92
  if (
85
93
  (children as JSX.Element).type === "svg" ||
86
- (children as JSX.Element).props.type === "svg" ||
87
- (children as JSX.Element).props.mdxType === "svg"
94
+ (children as JSX.Element).props?.type === "svg" ||
95
+ (children as JSX.Element).props?.mdxType === "svg"
88
96
  ) {
89
97
  childSVG = React.cloneElement(children as JSX.Element, {
90
98
  ...logoProps,
91
99
  });
92
100
  } else {
93
- console.warn("You must pass an `svg` element to the `Logo` component.");
101
+ console.warn(
102
+ "NYPL Reservoir Logo: An `svg` element must be passed to the `Logo` " +
103
+ "component as its child."
104
+ );
94
105
  }
95
106
 
96
- return <Box __css={styles}>{childSVG}</Box>;
97
- }
107
+ return (
108
+ <Box __css={styles} {...rest}>
109
+ {childSVG}
110
+ </Box>
111
+ );
112
+ });
113
+
114
+ export default Logo;
@@ -3,6 +3,8 @@ import logo_bpl_black from "../../../icons/svg/logo_bpl_black.svg";
3
3
  import logo_bpl_white from "../../../icons/svg/logo_bpl_white.svg";
4
4
  import logo_clever_color from "../../../icons/svg/logo_clever_color.svg";
5
5
  import logo_clever_white from "../../../icons/svg/logo_clever_white.svg";
6
+ import logo_firstbook_color from "../../../icons/svg/logo_firstbook_color.svg";
7
+ import logo_firstbook_color_negative from "../../../icons/svg/logo_firstbook_color_negative.svg";
6
8
  import logo_lpa_color from "../../../icons/svg/logo_lpa_color.svg";
7
9
  import logo_lpa_black from "../../../icons/svg/logo_lpa_black.svg";
8
10
  import logo_lpa_white from "../../../icons/svg/logo_lpa_white.svg";
@@ -12,11 +14,17 @@ import logo_nypl_full_black from "../../../icons/svg/logo_nypl_full_black.svg";
12
14
  import logo_nypl_full_white from "../../../icons/svg/logo_nypl_full_white.svg";
13
15
  import logo_nypl_lion_black from "../../../icons/svg/logo_nypl_lion_black.svg";
14
16
  import logo_nypl_lion_white from "../../../icons/svg/logo_nypl_lion_white.svg";
17
+ import logo_openebooks_color from "../../../icons/svg/logo_openebooks_color.svg";
18
+ import logo_openebooks_negative from "../../../icons/svg/logo_openebooks_negative.svg";
19
+ import logo_openebooks_wtext_color from "../../../icons/svg/logo_openebooks_wtext_color.svg";
20
+ import logo_openebooks_wtext_negative from "../../../icons/svg/logo_openebooks_wtext_negative.svg";
15
21
  import logo_qpl_alt_black from "../../../icons/svg/logo_qpl_alt_black.svg";
16
22
  import logo_qpl_alt_white from "../../../icons/svg/logo_qpl_alt_white.svg";
17
23
  import logo_qpl_black from "../../../icons/svg/logo_qpl_black.svg";
18
24
  import logo_qpl_color from "../../../icons/svg/logo_qpl_color.svg";
19
25
  import logo_qpl_white from "../../../icons/svg/logo_qpl_white.svg";
26
+ import logo_reservoir_icon_color from "../../../icons/svg/logo_reservoir_icon_color.svg";
27
+ import logo_reservoir_vertical_color from "../../../icons/svg/logo_reservoir_vertical_color.svg";
20
28
  import logo_schomburg_black from "../../../icons/svg/logo_schomburg_black.svg";
21
29
  import logo_schomburg_circle_black from "../../../icons/svg/logo_schomburg_circle_black.svg";
22
30
  import logo_schomburg_circle_color from "../../../icons/svg/logo_schomburg_circle_color.svg";
@@ -36,6 +44,8 @@ export default {
36
44
  logo_bpl_white,
37
45
  logo_clever_color,
38
46
  logo_clever_white,
47
+ logo_firstbook_color,
48
+ logo_firstbook_color_negative,
39
49
  logo_lpa_black,
40
50
  logo_lpa_color,
41
51
  logo_lpa_white,
@@ -45,11 +55,17 @@ export default {
45
55
  logo_nypl_full_white,
46
56
  logo_nypl_lion_black,
47
57
  logo_nypl_lion_white,
58
+ logo_openebooks_color,
59
+ logo_openebooks_negative,
60
+ logo_openebooks_wtext_color,
61
+ logo_openebooks_wtext_negative,
48
62
  logo_qpl_alt_black,
49
63
  logo_qpl_alt_white,
50
64
  logo_qpl_black,
51
65
  logo_qpl_color,
52
66
  logo_qpl_white,
67
+ logo_reservoir_icon_color,
68
+ logo_reservoir_vertical_color,
53
69
  logo_schomburg_black,
54
70
  logo_schomburg_circle_black,
55
71
  logo_schomburg_circle_color,
@@ -5,12 +5,12 @@ export enum LogoColors {
5
5
  }
6
6
 
7
7
  export enum LogoSizes {
8
+ Default = "default",
8
9
  ExtraExtraSmall = "xxsmall",
9
10
  ExtraSmall = "xsmall",
10
11
  Small = "small",
11
12
  Medium = "medium",
12
13
  Large = "large",
13
- Default = "default",
14
14
  }
15
15
 
16
16
  export enum LogoNames {
@@ -18,6 +18,8 @@ export enum LogoNames {
18
18
  BrooklynPublicLibraryWhite = "logo_bpl_white",
19
19
  CleverColor = "logo_clever_color",
20
20
  CleverWhite = "logo_clever_white",
21
+ FirstBookColor = "logo_firstbook_color",
22
+ FirstBookColorNegative = "logo_firstbook_color_negative",
21
23
  LPAColor = "logo_lpa_color",
22
24
  LPABlack = "logo_lpa_black",
23
25
  LPAWhite = "logo_lpa_white",
@@ -27,11 +29,17 @@ export enum LogoNames {
27
29
  NYPLWhite = "logo_nypl_full_white",
28
30
  NYPLLionBlack = "logo_nypl_lion_black",
29
31
  NYPLLionWhite = "logo_nypl_lion_white",
32
+ OpenEBooksColor = "logo_openebooks_color",
33
+ OpenEBooksNegative = "logo_openebooks_negative",
34
+ OpenEBooksWithTextColor = "logo_openebooks_wtext_color",
35
+ OpenEBooksWithTextNegative = "logo_openebooks_wtext_negative",
30
36
  QueensPublicLibraryColor = "logo_qpl_color",
31
37
  QueensPublicLibraryBlack = "logo_qpl_black",
32
38
  QueensPublicLibraryWhite = "logo_qpl_white",
33
39
  QueensPublicLibraryAltBlack = "logo_qpl_alt_black",
34
40
  QueensPublicLibraryAltWhite = "logo_qpl_alt_white",
41
+ ReservoirIconColor = "logo_reservoir_icon_color",
42
+ ReservoirVerticalColor = "logo_reservoir_vertical_color",
35
43
  SchomburgColor = "logo_schomburg_color",
36
44
  SchomburgBlack = "logo_schomburg_black",
37
45
  SchomburgWhite = "logo_schomburg_white",
@@ -3,7 +3,7 @@
3
3
  exports[`Logo renders the UI snapshot correctly 1`] = `
4
4
  <svg
5
5
  aria-hidden={false}
6
- className="chakra-icon css-onkibi"
6
+ className="chakra-icon css-1grhd2q"
7
7
  focusable={false}
8
8
  id="test-logo"
9
9
  role="img"
@@ -38,7 +38,7 @@ exports[`Logo renders the UI snapshot correctly 1`] = `
38
38
  exports[`Logo renders the UI snapshot correctly 2`] = `
39
39
  <svg
40
40
  aria-hidden={false}
41
- className="chakra-icon css-onkibi"
41
+ className="chakra-icon css-1grhd2q"
42
42
  focusable={false}
43
43
  id="test-logo-size"
44
44
  role="img"
@@ -69,3 +69,74 @@ exports[`Logo renders the UI snapshot correctly 2`] = `
69
69
  </g>
70
70
  </svg>
71
71
  `;
72
+
73
+ exports[`Logo renders the UI snapshot correctly 3`] = `
74
+ <svg
75
+ aria-hidden={false}
76
+ className="chakra-icon css-1ayys74"
77
+ focusable={false}
78
+ id="chakra"
79
+ role="img"
80
+ title="logo_nypl_full_black logo"
81
+ viewBox="0 0 24 24"
82
+ >
83
+ <g
84
+ stroke="currentColor"
85
+ strokeWidth="1.5"
86
+ >
87
+ <path
88
+ d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
89
+ fill="none"
90
+ strokeLinecap="round"
91
+ />
92
+ <path
93
+ d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
94
+ fill="currentColor"
95
+ strokeLinecap="round"
96
+ />
97
+ <circle
98
+ cx="12"
99
+ cy="12"
100
+ fill="none"
101
+ r="11.25"
102
+ strokeMiterlimit="10"
103
+ />
104
+ </g>
105
+ </svg>
106
+ `;
107
+
108
+ exports[`Logo renders the UI snapshot correctly 4`] = `
109
+ <svg
110
+ aria-hidden={false}
111
+ className="chakra-icon css-1grhd2q"
112
+ data-testid="props"
113
+ focusable={false}
114
+ id="props"
115
+ role="img"
116
+ title="logo_nypl_full_black logo"
117
+ viewBox="0 0 24 24"
118
+ >
119
+ <g
120
+ stroke="currentColor"
121
+ strokeWidth="1.5"
122
+ >
123
+ <path
124
+ d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
125
+ fill="none"
126
+ strokeLinecap="round"
127
+ />
128
+ <path
129
+ d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
130
+ fill="currentColor"
131
+ strokeLinecap="round"
132
+ />
133
+ <circle
134
+ cx="12"
135
+ cy="12"
136
+ fill="none"
137
+ r="11.25"
138
+ strokeMiterlimit="10"
139
+ />
140
+ </g>
141
+ </svg>
142
+ `;
@@ -34,6 +34,17 @@ import { getCategory } from "../../utils/componentCategories";
34
34
  | Added | `0.1.0` |
35
35
  | Latest | `0.3.5` |
36
36
 
37
+ ## Table of Contents
38
+
39
+ - [Overview](#overview)
40
+ - [Component Props](#component-props)
41
+ - [Code Implementation](#code-implementation)
42
+
43
+ ## Overview
44
+
45
+ _Note: This component is going through an accessibility review and is not
46
+ recommended for use until it is updated._
47
+
37
48
  <Description of={Modal} />
38
49
 
39
50
  export const ModalStory = (args) => {
@@ -124,6 +135,8 @@ export const ModalStory = (args) => {
124
135
  );
125
136
  };
126
137
 
138
+ ## Component Props
139
+
127
140
  <Canvas withToolbar>
128
141
  <Story
129
142
  name="Modal"
@@ -33,15 +33,15 @@ export const enumValues = getStorybookEnumValues(
33
33
  jest: ["Notification.test.tsx"],
34
34
  }}
35
35
  argTypes={{
36
- centered: {
37
- table: { defaultValue: { summary: false } },
38
- },
39
36
  className: { control: false },
40
37
  dismissible: {
41
38
  table: { defaultValue: { summary: false } },
42
39
  },
43
40
  icon: { control: false },
44
41
  id: { control: false },
42
+ isCentered: {
43
+ table: { defaultValue: { summary: false } },
44
+ },
45
45
  noMargin: {
46
46
  table: { defaultValue: { summary: false } },
47
47
  },
@@ -59,7 +59,18 @@ export const enumValues = getStorybookEnumValues(
59
59
  | Component Version | DS Version |
60
60
  | ----------------- | ---------- |
61
61
  | Added | `0.23.2` |
62
- | Latest | `0.25.11` |
62
+ | Latest | `0.26.0` |
63
+
64
+ ## Table of Contents
65
+
66
+ - [Overview](#overview)
67
+ - [Component Props](#component-props)
68
+ - [Accessibility](#accessibility)
69
+ - [Variants](#variants)
70
+ - [Custom Icon](#custom-icon)
71
+ - [Dismissible](#dismissible)
72
+
73
+ ## Overview
63
74
 
64
75
  <Description of={Notification} />
65
76
 
@@ -70,16 +81,18 @@ In the preview below, the border around the `Notification` is not part of the
70
81
  component. It has been added to help illustrate how the `Notification` sits
71
82
  within a parent element.
72
83
 
84
+ ## Component Props
85
+
73
86
  <Canvas>
74
87
  <Story
75
88
  name="Notification with Controls"
76
89
  args={{
77
90
  ariaLabel: "Notification label",
78
- centered: false,
79
91
  className: undefined,
80
92
  dismissible: false,
81
93
  icon: undefined,
82
94
  id: "notification-id",
95
+ isCentered: false,
83
96
  noMargin: false,
84
97
  notificationHeading: "Notification Heading",
85
98
  notificationContent: (
@@ -118,6 +131,22 @@ be rendered inside other landmark elements such as the `header` and `footer`
118
131
  landmark elements. Adding a `Notification` component inside an HTML `main` landmark
119
132
  element is acceptable.
120
133
 
134
+ Every `Notification` component must have a unique `aria-label` attribute. This
135
+ is set through the `ariaLabel` prop. A unique `aria-label` value, along with the
136
+ `aside` HTML landmark element, helps screen readers better navigate a page with
137
+ multiple `Notification`s.
138
+
139
+ Icons rendered in the `Notification` component are decorative by default which
140
+ means that they are hidden to screen readers. Since the "X" close icon inside the
141
+ dismissible button is decorative and because there is no discernible text inside
142
+ the button, an `aria-label` attribute is added to the button.
143
+
144
+ Resources:
145
+
146
+ - [MDN Aria: complementary role](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/complementary_role)
147
+ - [Deque Creating Accessible SVGs](https://www.deque.com/blog/creating-accessible-svgs/)
148
+ - [CSS Tricks Accessible SVG Icons](https://css-tricks.com/accessible-svg-icons/)
149
+
121
150
  ## Variants
122
151
 
123
152
  ### With NotificationHeading