@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,30 +3,31 @@
3
3
  exports[`Form Snapshot Renders the UI snapshot correctly 1`] = `
4
4
  <form
5
5
  aria-label="form"
6
+ className="css-0"
6
7
  id="snapshot-form"
7
8
  >
8
9
  <div
9
- className="css-aq1pyb"
10
+ className="css-fadkce"
10
11
  id="snapshot-form-parent"
11
12
  >
12
13
  <div
13
- className="css-1ao258g"
14
+ className="css-dofnwd"
14
15
  id="snapshot-form-child0"
15
16
  >
16
17
  <div
17
- className="css-aq1pyb"
18
+ className="css-7ajbp2"
18
19
  id="snapshot-form-child0-grandchild0"
19
20
  >
20
21
  Form Field 1
21
22
  </div>
22
23
  <div
23
- className="css-aq1pyb"
24
+ className="css-7ajbp2"
24
25
  id="snapshot-form-child0-grandchild1"
25
26
  >
26
27
  Form Field 2
27
28
  </div>
28
29
  <div
29
- className="css-aq1pyb"
30
+ className="css-7ajbp2"
30
31
  id="snapshot-form-child0-grandchild2"
31
32
  >
32
33
  Form Field 3
@@ -35,3 +36,80 @@ exports[`Form Snapshot Renders the UI snapshot correctly 1`] = `
35
36
  </div>
36
37
  </form>
37
38
  `;
39
+
40
+ exports[`Form Snapshot Renders the UI snapshot correctly 2`] = `
41
+ <form
42
+ aria-label="form"
43
+ className="css-qvgr6z"
44
+ color="ui.error.primary"
45
+ id="chakra"
46
+ p="20px"
47
+ >
48
+ <div
49
+ className="css-fadkce"
50
+ id="chakra-parent"
51
+ >
52
+ <div
53
+ className="css-dofnwd"
54
+ id="chakra-child0"
55
+ >
56
+ <div
57
+ className="css-7ajbp2"
58
+ id="chakra-child0-grandchild0"
59
+ >
60
+ Form Field 1
61
+ </div>
62
+ <div
63
+ className="css-7ajbp2"
64
+ id="chakra-child0-grandchild1"
65
+ >
66
+ Form Field 2
67
+ </div>
68
+ <div
69
+ className="css-7ajbp2"
70
+ id="chakra-child0-grandchild2"
71
+ >
72
+ Form Field 3
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </form>
77
+ `;
78
+
79
+ exports[`Form Snapshot Renders the UI snapshot correctly 3`] = `
80
+ <form
81
+ aria-label="form"
82
+ className="css-0"
83
+ data-testid="props"
84
+ id="props"
85
+ >
86
+ <div
87
+ className="css-fadkce"
88
+ id="props-parent"
89
+ >
90
+ <div
91
+ className="css-dofnwd"
92
+ id="props-child0"
93
+ >
94
+ <div
95
+ className="css-7ajbp2"
96
+ id="props-child0-grandchild0"
97
+ >
98
+ Form Field 1
99
+ </div>
100
+ <div
101
+ className="css-7ajbp2"
102
+ id="props-child0-grandchild1"
103
+ >
104
+ Form Field 2
105
+ </div>
106
+ <div
107
+ className="css-7ajbp2"
108
+ id="props-child0-grandchild2"
109
+ >
110
+ Form Field 3
111
+ </div>
112
+ </div>
113
+ </div>
114
+ </form>
115
+ `;
@@ -1,9 +1,9 @@
1
1
  export enum GridGaps {
2
- ExtraExtraSmall = "xxs",
3
- ExtraSmall = "xs",
4
- Small = "s",
5
- Medium = "m",
6
- Large = "l",
7
- ExtraLarge = "xl",
8
- ExtraExtraLarge = "xxl",
2
+ ExtraExtraSmall = "grid.xxs",
3
+ ExtraSmall = "grid.xs",
4
+ Small = "grid.s",
5
+ Medium = "grid.m",
6
+ Large = "grid.l",
7
+ ExtraLarge = "grid.xl",
8
+ ExtraExtraLarge = "grid.xxl",
9
9
  }
@@ -10,8 +10,7 @@ import { withDesign } from "storybook-addon-designs";
10
10
  import SimpleGrid from "./SimpleGrid";
11
11
  import { GridGaps } from "./GridTypes";
12
12
  import Card, { CardHeading, CardContent, CardActions } from "../Card/Card";
13
- import { CardLayouts } from "../Card/CardTypes";
14
- import { HeadingDisplaySizes, HeadingLevels } from "../Heading/HeadingTypes";
13
+ import { HeadingSizes, HeadingLevels } from "../Heading/HeadingTypes";
15
14
  import Icon from "../Icons/Icon";
16
15
  import {
17
16
  IconNames,
@@ -21,6 +20,7 @@ import {
21
20
  } from "../Icons/IconTypes";
22
21
  import Image from "../Image/Image";
23
22
  import { ImageRatios } from "../Image/ImageTypes";
23
+ import { LayoutTypes } from "../../helpers/enums";
24
24
  import { getCategory } from "../../utils/componentCategories";
25
25
  import DSProvider from "../../theme/provider";
26
26
  import { getStorybookEnumValues } from "../../utils/utils";
@@ -57,13 +57,29 @@ export const enumValues = getStorybookEnumValues(GridGaps, "GridGaps");
57
57
  | Component Version | DS Version |
58
58
  | ----------------- | ---------- |
59
59
  | Added | `0.25.1` |
60
- | Latest | `0.25.1` |
60
+ | Latest | `0.26.0` |
61
+
62
+ ## Table of Contents
63
+
64
+ - [Overview](#overview)
65
+ - [Component Props](#component-props)
66
+ - [Accessibility](#accessibility)
67
+ - [Other SimpleGrid Examples](#other-simplegrid-examples)
68
+
69
+ ## Overview
61
70
 
62
71
  <Description of={SimpleGrid} />
63
72
 
64
- The `SimpleGrid` component is used to render UI elements in a uniform grid layout, with the column widths and grid spacing fixed throughout the grid.
73
+ The `SimpleGrid` component is used to render UI elements in a uniform grid layout,
74
+ with the column widths and grid spacing fixed throughout the grid.
75
+
76
+ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for
77
+ tablet and `1` for mobile. By default, the `SimpleGrid` component uses these
78
+ standards and the `columns` prop is optional. If the `columns` prop is used, the
79
+ tablet breakpoint will be dropped and only the mobile breakpoint (1 item per row)
80
+ will be triggered.
65
81
 
66
- The NYPL standards for the items per row in a grid is `3` for desktop, `2` for tablet and `1` for mobile. By default, the `SimpleGrid` component uses these standards and the `columns` prop is optional. If the `columns` prop is used, the tablet breakpoint will be dropped and only the mobile breakpoint (1 item per row) will be triggered.
82
+ ## Component Props
67
83
 
68
84
  <Canvas withToolbar>
69
85
  <Story
@@ -78,9 +94,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
78
94
  {(args) => (
79
95
  <SimpleGrid {...args} gap={enumValues.getValue(args.gap)}>
80
96
  <Card
81
- imageSrc="https://placeimg.com/400/220/animals"
82
- imageAlt="Alt text"
83
- imageAspectRatio={ImageRatios.TwoByOne}
97
+ imageProps={{
98
+ alt: "Alt text",
99
+ aspectRatio: ImageRatios.TwoByOne,
100
+ src: "https://placeimg.com/400/220/animals",
101
+ }}
84
102
  >
85
103
  <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
86
104
  <CardContent>
@@ -89,9 +107,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
89
107
  </CardContent>
90
108
  </Card>
91
109
  <Card
92
- imageSrc="https://placeimg.com/400/220/animals"
93
- imageAlt="Alt text"
94
- imageAspectRatio={ImageRatios.TwoByOne}
110
+ imageProps={{
111
+ alt: "Alt text",
112
+ aspectRatio: ImageRatios.TwoByOne,
113
+ src: "https://placeimg.com/400/220/animals",
114
+ }}
95
115
  >
96
116
  <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
97
117
  <CardContent>
@@ -100,9 +120,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
100
120
  </CardContent>
101
121
  </Card>
102
122
  <Card
103
- imageSrc="https://placeimg.com/400/240/animals"
104
- imageAlt="Alt text"
105
- imageAspectRatio={ImageRatios.TwoByOne}
123
+ imageProps={{
124
+ alt: "Alt text",
125
+ aspectRatio: ImageRatios.TwoByOne,
126
+ src: "https://placeimg.com/400/240/animals",
127
+ }}
106
128
  >
107
129
  <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
108
130
  <CardContent>
@@ -111,9 +133,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
111
133
  </CardContent>
112
134
  </Card>
113
135
  <Card
114
- imageSrc="https://placeimg.com/400/260/animals"
115
- imageAlt="Alt text"
116
- imageAspectRatio={ImageRatios.TwoByOne}
136
+ imageProps={{
137
+ alt: "Alt text",
138
+ aspectRatio: ImageRatios.TwoByOne,
139
+ src: "https://placeimg.com/400/260/animals",
140
+ }}
117
141
  >
118
142
  <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
119
143
  <CardContent>
@@ -122,9 +146,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
122
146
  </CardContent>
123
147
  </Card>
124
148
  <Card
125
- imageSrc="https://placeimg.com/400/320/animals"
126
- imageAlt="Alt text"
127
- imageAspectRatio={ImageRatios.TwoByOne}
149
+ imageProps={{
150
+ alt: "Alt text",
151
+ aspectRatio: ImageRatios.TwoByOne,
152
+ src: "https://placeimg.com/400/320/animals",
153
+ }}
128
154
  >
129
155
  <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
130
156
  <CardContent>
@@ -133,9 +159,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
133
159
  </CardContent>
134
160
  </Card>
135
161
  <Card
136
- imageSrc="https://placeimg.com/400/300/animals"
137
- imageAlt="Alt text"
138
- imageAspectRatio={ImageRatios.TwoByOne}
162
+ imageProps={{
163
+ alt: "Alt text",
164
+ aspectRatio: ImageRatios.TwoByOne,
165
+ src: "https://placeimg.com/400/300/animals",
166
+ }}
139
167
  >
140
168
  <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
141
169
  <CardContent>
@@ -150,6 +178,18 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
150
178
 
151
179
  <ArgsTable story="SimpleGrid with Controls" />
152
180
 
181
+ ## Accessibility
182
+
183
+ The CSS grid layout properties are used for the `SimpleGrid` component. We don't
184
+ recommend using property rules that change the visual order of elements on the
185
+ page that don't match with its DOM order. This is because a screenreader won't
186
+ pick up `SimpleGrid` CSS rules and will read the page in the expected DOM order
187
+ rather than the visual order.
188
+
189
+ Resources:
190
+
191
+ - [MDN CSS Grid Layout and Accessibility](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_Layout_and_Accessibility)
192
+
153
193
  ## Other SimpleGrid Examples
154
194
 
155
195
  ### Icons
@@ -213,12 +253,14 @@ This example is rendering horizontal `Card` components with the `columns` prop s
213
253
  <DSProvider>
214
254
  <SimpleGrid columns={1}>
215
255
  <Card
216
- layout={CardLayouts.Row}
217
- border
218
- center
219
- imageSrc="https://placeimg.com/400/200/animals"
220
- imageAlt="Alt text"
221
- imageAspectRatio={ImageRatios.FourByThree}
256
+ imageProps={{
257
+ alt: "Alt text",
258
+ aspectRatio: ImageRatios.FourByThree,
259
+ src: "https://placeimg.com/400/200/animals",
260
+ }}
261
+ isBordered
262
+ isCentered
263
+ layout={LayoutTypes.Row}
222
264
  >
223
265
  <CardHeading level={HeadingLevels.Four} id="heading1">
224
266
  Card Heading
@@ -230,12 +272,14 @@ This example is rendering horizontal `Card` components with the `columns` prop s
230
272
  </CardContent>
231
273
  </Card>
232
274
  <Card
233
- layout={CardLayouts.Row}
234
- border
235
- center
236
- imageSrc="https://placeimg.com/410/210/animals"
237
- imageAlt="Alt text"
238
- imageAspectRatio={ImageRatios.FourByThree}
275
+ imageProps={{
276
+ alt: "Alt text",
277
+ aspectRatio: ImageRatios.FourByThree,
278
+ src: "https://placeimg.com/410/210/animals",
279
+ }}
280
+ isBordered
281
+ isCentered
282
+ layout={LayoutTypes.Row}
239
283
  >
240
284
  <CardHeading level={HeadingLevels.Four} id="heading2">
241
285
  Card Heading
@@ -247,12 +291,14 @@ This example is rendering horizontal `Card` components with the `columns` prop s
247
291
  </CardContent>
248
292
  </Card>
249
293
  <Card
250
- layout={CardLayouts.Row}
251
- border
252
- center
253
- imageSrc="https://placeimg.com/320/320/animals"
254
- imageAlt="Alt text"
255
- imageAspectRatio={ImageRatios.FourByThree}
294
+ imageProps={{
295
+ alt: "Alt text",
296
+ aspectRatio: ImageRatios.FourByThree,
297
+ src: "https://placeimg.com/320/320/animals",
298
+ }}
299
+ isBordered
300
+ isCentered
301
+ layout={LayoutTypes.Row}
256
302
  >
257
303
  <CardHeading level={HeadingLevels.Four} id="heading3">
258
304
  Card Heading
@@ -13,9 +13,11 @@ describe("Grid Accessibility", () => {
13
13
  const { container } = render(
14
14
  <SimpleGrid>
15
15
  <Card
16
- imageSrc="https://placeimg.com/500/200/animals"
17
- imageAlt="Alt text"
18
- imageAspectRatio={ImageRatios.TwoByOne}
16
+ imageProps={{
17
+ alt: "Alt text",
18
+ aspectRatio: ImageRatios.TwoByOne,
19
+ src: "https://placeimg.com/500/200/animals",
20
+ }}
19
21
  >
20
22
  <CardHeading level={HeadingLevels.Two}>Card Heading</CardHeading>
21
23
  <CardContent>
@@ -24,9 +26,11 @@ describe("Grid Accessibility", () => {
24
26
  </CardContent>
25
27
  </Card>
26
28
  <Card
27
- imageSrc="https://placeimg.com/400/220/animals"
28
- imageAlt="Alt text"
29
- imageAspectRatio={ImageRatios.TwoByOne}
29
+ imageProps={{
30
+ alt: "Alt text",
31
+ aspectRatio: ImageRatios.TwoByOne,
32
+ src: "https://placeimg.com/400/220/animals",
33
+ }}
30
34
  >
31
35
  <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
32
36
  <CardContent>
@@ -35,9 +39,11 @@ describe("Grid Accessibility", () => {
35
39
  </CardContent>
36
40
  </Card>
37
41
  <Card
38
- imageSrc="https://placeimg.com/400/240/animals"
39
- imageAlt="Alt text"
40
- imageAspectRatio={ImageRatios.TwoByOne}
42
+ imageProps={{
43
+ alt: "Alt text",
44
+ aspectRatio: ImageRatios.TwoByOne,
45
+ src: "https://placeimg.com/400/240/animals",
46
+ }}
41
47
  >
42
48
  <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
43
49
  <CardContent>
@@ -54,7 +60,16 @@ describe("Grid Accessibility", () => {
54
60
  describe("SimpleGrid", () => {
55
61
  it("Renders the SimpleGrid UI snapshot correctly", () => {
56
62
  const tree = renderer.create(<SimpleGrid id="test-grid" />).toJSON();
63
+ const withChakraProps = renderer
64
+ .create(<SimpleGrid id="chakra" p="20px" color="ui.error.primary" />)
65
+ .toJSON();
66
+ const withOtherProps = renderer
67
+ .create(<SimpleGrid id="props" data-testid="props" />)
68
+ .toJSON();
69
+
57
70
  expect(tree).toMatchSnapshot();
71
+ expect(withChakraProps).toMatchSnapshot();
72
+ expect(withOtherProps).toMatchSnapshot();
58
73
  });
59
74
 
60
75
  it("Renders SimpleGrid component", () => {
@@ -1,9 +1,7 @@
1
+ import { chakra, SimpleGrid as ChakraSimpleGrid } from "@chakra-ui/react";
1
2
  import * as React from "react";
2
- import { SimpleGrid as ChakraSimpleGrid } from "@chakra-ui/react";
3
- import { GridGaps } from "./GridTypes";
4
-
5
- import generateUUID from "../../helpers/generateUUID";
6
3
 
4
+ import { GridGaps } from "./GridTypes";
7
5
  export interface SimpleGridProps {
8
6
  /** Additional class name. */
9
7
  className?: string;
@@ -15,23 +13,34 @@ export interface SimpleGridProps {
15
13
  id?: string;
16
14
  }
17
15
 
18
- function SimpleGrid(props: React.PropsWithChildren<SimpleGridProps>) {
19
- const { children, columns, className, gap = GridGaps.Large, id } = props;
16
+ export const SimpleGrid = chakra(
17
+ (props: React.PropsWithChildren<SimpleGridProps>) => {
18
+ const {
19
+ children,
20
+ columns,
21
+ className,
22
+ gap = GridGaps.Large,
23
+ id,
24
+ ...rest
25
+ } = props;
20
26
 
21
- const responsiveCols = columns
22
- ? { base: 1, md: columns }
23
- : { base: 1, md: 2, lg: 3 };
27
+ const responsiveCols = columns
28
+ ? { base: 1, md: columns }
29
+ : { base: 1, md: 2, lg: 3 };
24
30
 
25
- return (
26
- <ChakraSimpleGrid
27
- columns={responsiveCols}
28
- gap={gap}
29
- id={id || generateUUID()}
30
- className={className}
31
- >
32
- {children}
33
- </ChakraSimpleGrid>
34
- );
35
- }
31
+ return (
32
+ <ChakraSimpleGrid
33
+ columns={responsiveCols}
34
+ gap={gap}
35
+ id={id}
36
+ className={className}
37
+ {...rest}
38
+ >
39
+ {children}
40
+ </ChakraSimpleGrid>
41
+ );
42
+ },
43
+ { shouldForwardProp: () => true }
44
+ );
36
45
 
37
46
  export default SimpleGrid;
@@ -2,7 +2,22 @@
2
2
 
3
3
  exports[`SimpleGrid Renders the SimpleGrid UI snapshot correctly 1`] = `
4
4
  <div
5
- className="css-1tep0ti"
5
+ className="css-bjq6jk"
6
6
  id="test-grid"
7
7
  />
8
8
  `;
9
+
10
+ exports[`SimpleGrid Renders the SimpleGrid UI snapshot correctly 2`] = `
11
+ <div
12
+ className="css-161u8yz"
13
+ id="chakra"
14
+ />
15
+ `;
16
+
17
+ exports[`SimpleGrid Renders the SimpleGrid UI snapshot correctly 3`] = `
18
+ <div
19
+ className="css-bjq6jk"
20
+ data-testid="props"
21
+ id="props"
22
+ />
23
+ `;
@@ -8,13 +8,13 @@ import {
8
8
  import { withDesign } from "storybook-addon-designs";
9
9
 
10
10
  import Heading from "./Heading";
11
- import { HeadingDisplaySizes, HeadingLevels } from "./HeadingTypes";
11
+ import { HeadingSizes, HeadingLevels } from "./HeadingTypes";
12
12
  import { getCategory } from "../../utils/componentCategories";
13
13
  import { getStorybookEnumValues } from "../../utils/utils";
14
14
 
15
15
  export const sizesEnumValues = getStorybookEnumValues(
16
- HeadingDisplaySizes,
17
- "HeadingDisplaySizes"
16
+ HeadingSizes,
17
+ "HeadingSizes"
18
18
  );
19
19
  export const levelsEnumValues = getStorybookEnumValues(
20
20
  HeadingLevels,
@@ -35,16 +35,16 @@ export const levelsEnumValues = getStorybookEnumValues(
35
35
  argTypes={{
36
36
  additionalStyles: { control: false },
37
37
  className: { control: false },
38
- displaySize: {
39
- control: { type: "select" },
40
- options: sizesEnumValues.options,
41
- },
42
38
  id: { control: false },
43
39
  level: {
44
40
  control: { type: "select" },
45
41
  options: levelsEnumValues.options,
46
42
  table: { defaultValue: { summary: "HeadingLevels.Two" } },
47
43
  },
44
+ size: {
45
+ control: { type: "select" },
46
+ options: sizesEnumValues.options,
47
+ },
48
48
  }}
49
49
  />
50
50
 
@@ -53,13 +53,27 @@ export const levelsEnumValues = getStorybookEnumValues(
53
53
  | Component Version | DS Version |
54
54
  | ----------------- | ---------- |
55
55
  | Added | `0.0.4` |
56
- | Latest | `0.25.9` |
56
+ | Latest | `0.26.0` |
57
+
58
+ ## Table of Contents
59
+
60
+ - [Overview](#overview)
61
+ - [Component Props](#component-props)
62
+ - [Accessibility](#accessibility)
63
+ - [Default Heading Styles](#default-heading-styles)
64
+ - [Size Styles](#size-styles)
65
+ - [Heading with Bold Text](#heading-with-bold-text)
66
+ - [Headings with Links](#headings-with-links)
67
+
68
+ ## Overview
57
69
 
58
70
  <Description of={Heading} />
59
71
 
60
72
  A `Heading` component will render a standard HTML `<h>` tag (1-6). The heading's
61
73
  text can be passed in through a `text` prop or as a child. Default styles for
62
- semantic elements can be overwritten using the `displaySize` prop.
74
+ semantic elements can be overwritten using the `size` prop.
75
+
76
+ ## Component Props
63
77
 
64
78
  <Canvas withToolbar>
65
79
  <Story
@@ -67,9 +81,9 @@ semantic elements can be overwritten using the `displaySize` prop.
67
81
  args={{
68
82
  additionalStyles: undefined,
69
83
  className: undefined,
70
- displaySize: undefined,
71
84
  id: "heading-id",
72
85
  level: "HeadingLevels.Two",
86
+ size: undefined,
73
87
  text: "Default Heading",
74
88
  url: undefined,
75
89
  urlClass: undefined,
@@ -78,10 +92,8 @@ semantic elements can be overwritten using the `displaySize` prop.
78
92
  {(args) => (
79
93
  <Heading
80
94
  {...args}
81
- displaySize={
82
- args.displaySize && sizesEnumValues.getValue(args.displaySize)
83
- }
84
95
  level={levelsEnumValues.getValue(args.level)}
96
+ size={args.size && sizesEnumValues.getValue(args.size)}
85
97
  />
86
98
  )}
87
99
  </Story>
@@ -89,6 +101,25 @@ semantic elements can be overwritten using the `displaySize` prop.
89
101
 
90
102
  <ArgsTable story="Heading with Controls" />
91
103
 
104
+ ## Accessibility
105
+
106
+ When adding headings to a webpage, it is important to ensure that the heading
107
+ hierarchy is consistent. This means they should start with only one `h1` for the
108
+ page title and then proceed with `h2`s, `h3`s, `h4`s, `h5`s and `h6`s in the
109
+ proper order and not skipping any. For example, the following is invalid HTML:
110
+
111
+ ```html
112
+ <h1>Page Title</h1>
113
+ <h2>Subtitle</h2>
114
+ <h4>Sub-subtitle</h4>
115
+ ```
116
+
117
+ Resources:
118
+
119
+ - [W3C WAI Headings](https://www.w3.org/WAI/tutorials/page-structure/headings/)
120
+ - [A11y Project Accessible heading structure](https://www.a11yproject.com/posts/how-to-accessible-heading-structure/)
121
+ - [Chakra UI Heading](https://chakra-ui.com/docs/components/typography/heading)
122
+
92
123
  ## Default Heading Styles
93
124
 
94
125
  <Canvas>
@@ -128,46 +159,46 @@ semantic elements can be overwritten using the `displaySize` prop.
128
159
  </Story>
129
160
  </Canvas>
130
161
 
131
- ## DisplaySize Styles
162
+ ## Size Styles
132
163
 
133
164
  Note: The `level` prop for the `Heading`s in the next example are all set to
134
165
  `level={HeadingLevels.One}`.
135
166
 
136
167
  <Canvas>
137
- <Story name="DisplaySize Styles">
168
+ <Story name="Size Styles">
138
169
  <div>
139
170
  <Heading
140
171
  id="heading-primary"
141
172
  level={HeadingLevels.One}
142
- displaySize={HeadingDisplaySizes.Primary}
143
- text="<h1> HeadingDisplaySizes.Primary"
173
+ size={HeadingSizes.Primary}
174
+ text="<h1> HeadingSizes.Primary"
144
175
  />
145
176
  <Heading
146
177
  id="heading-secondary"
147
178
  level={HeadingLevels.One}
148
- displaySize={HeadingDisplaySizes.Secondary}
149
- text="<h1> HeadingDisplaySizes.Secondary"
179
+ size={HeadingSizes.Secondary}
180
+ text="<h1> HeadingSizes.Secondary"
150
181
  />
151
182
  <Heading
152
183
  id="heading-tertiary"
153
184
  level={HeadingLevels.One}
154
- displaySize={HeadingDisplaySizes.Tertiary}
155
- text="<h1> HeadingDisplaySizes.Tertiary"
185
+ size={HeadingSizes.Tertiary}
186
+ text="<h1> HeadingSizes.Tertiary"
156
187
  />
157
188
  <Heading
158
189
  id="heading-callout"
159
190
  level={HeadingLevels.One}
160
- displaySize={HeadingDisplaySizes.Callout}
161
- text="<h1> HeadingDisplaySizes.Callout"
191
+ size={HeadingSizes.Callout}
192
+ text="<h1> HeadingSizes.Callout"
162
193
  />
163
194
  </div>
164
195
  </Story>
165
196
  </Canvas>
166
197
 
167
- ## Heading with Bold
198
+ ## Heading with Bold Text
168
199
 
169
200
  <Canvas>
170
- <Story name="Heading with Bold">
201
+ <Story name="Heading with Bold Text">
171
202
  <Heading id="headingWithBold" level={HeadingLevels.One}>
172
203
  <>
173
204
  Heading with a <b>Bold</b> Word