@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
@@ -8,7 +8,7 @@ import {
8
8
  import { withDesign } from "storybook-addon-designs";
9
9
 
10
10
  import Breadcrumbs from "./Breadcrumbs";
11
- import { ColorVariants } from "./BreadcrumbsTypes";
11
+ import { BreadcrumbsTypes } from "./BreadcrumbsTypes";
12
12
  import Heading from "../Heading/Heading";
13
13
  import { HeadingLevels } from "../Heading/HeadingTypes";
14
14
  import Link from "../Link/Link";
@@ -17,8 +17,8 @@ import DSProvider from "../../theme/provider";
17
17
  import { getStorybookEnumValues } from "../../utils/utils";
18
18
 
19
19
  export const enumValues = getStorybookEnumValues(
20
- ColorVariants,
21
- "ColorVariants"
20
+ BreadcrumbsTypes,
21
+ "BreadcrumbsTypes"
22
22
  );
23
23
 
24
24
  <Meta
@@ -36,7 +36,7 @@ export const enumValues = getStorybookEnumValues(
36
36
  additionalStyles: { control: false },
37
37
  breadcrumbsData: { control: false },
38
38
  className: { control: false },
39
- colorVariant: {
39
+ breadcrumbsType: {
40
40
  control: { type: "select" },
41
41
  options: enumValues.options,
42
42
  },
@@ -49,7 +49,17 @@ export const enumValues = getStorybookEnumValues(
49
49
  | Component Version | DS Version |
50
50
  | ----------------- | ---------- |
51
51
  | Added | `0.0.3` |
52
- | Latest | `0.25.10` |
52
+ | Latest | `0.26.0` |
53
+
54
+ ## Table of Contents
55
+
56
+ - [Overview](#overview)
57
+ - [Component Props](#component-props)
58
+ - [Accessibility](#accessibility)
59
+ - [Long Titles](#long-titles)
60
+ - [Color Variations](#color-variations)
61
+
62
+ ## Overview
53
63
 
54
64
  <Description of={Breadcrumbs} />
55
65
 
@@ -57,6 +67,8 @@ The `Breadcrumbs` component is a navigation element that provides a breadcrumb
57
67
  path that reflects the site structure and allows a user to navigate to any page
58
68
  available in the breadcrumb hierarchy.
59
69
 
70
+ ## Component Props
71
+
60
72
  <Canvas withToolbar>
61
73
  <Story
62
74
  name="Breadcrumbs with Controls"
@@ -68,14 +80,14 @@ available in the breadcrumb hierarchy.
68
80
  { url: "#", text: "Grandchild" },
69
81
  ],
70
82
  className: undefined,
71
- colorVariant: undefined,
83
+ breadcrumbsType: undefined,
72
84
  id: "breadcrumbs-id",
73
85
  }}
74
86
  >
75
87
  {(args) => (
76
88
  <Breadcrumbs
77
89
  {...args}
78
- colorVariant={enumValues.getValue(args.colorVariant)}
90
+ breadcrumbsType={enumValues.getValue(args.breadcrumbsType)}
79
91
  />
80
92
  )}
81
93
  </Story>
@@ -86,13 +98,17 @@ available in the breadcrumb hierarchy.
86
98
  ### Accessibility
87
99
 
88
100
  Only one `Breadcrumbs` component should be rendered on a page. This is because
89
- only one HTML `<nav>` element with `aria-label` attribute of "Breadcrumbs"
90
- should be rendered. The DS `Breadcrumbs` component renders this HTML landmark
91
- so only one component must be rendered on a page.
101
+ only one HTML `<nav>` element with an `aria-label` attribute value of
102
+ "Breadcrumbs" should be rendered on a page. The DS `Breadcrumbs` component
103
+ renders this HTML landmark so only one component must be rendered on a page.
104
+
105
+ Internally, links are organized in a `ul` list element. The current page link is
106
+ denoted by an `aria-current` attribute value of "page".
92
107
 
93
108
  - [W3 Breadcrumbs Practice](https://www.w3.org/TR/wai-aria-practices/examples/breadcrumb/index.html)
109
+ - [Chakra UI Breadcrumb](https://chakra-ui.com/docs/components/navigation/breadcrumb)
94
110
 
95
- ### Long Titles
111
+ ## Long Titles
96
112
 
97
113
  <Canvas>
98
114
  <DSProvider>
@@ -115,13 +131,15 @@ so only one component must be rendered on a page.
115
131
 
116
132
  ## Color Variations
117
133
 
118
- The `Breadcrumbs` component background color can be set using the `colorVariant` prop and the `ColorVariants` enum. If the `colorVariant` prop is omitted, the default background color is `black`.
134
+ The `Breadcrumbs` component background color can be set using the `breadcrumbsType`
135
+ prop and the `BreadcrumbsTypes` enum. If the `breadcrumbsType` prop is omitted,
136
+ the default background color is `black`.
119
137
 
120
138
  <Canvas>
121
139
  <Story
122
140
  name="Color Variations"
123
141
  args={{
124
- colorVariant: ColorVariants.Blogs,
142
+ breadcrumbsType: BreadcrumbsTypes.Blogs,
125
143
  }}
126
144
  >
127
145
  {(args) => (
@@ -136,7 +154,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
136
154
  text: "Grandchild",
137
155
  },
138
156
  ]}
139
- colorVariant={args.colorVariant}
157
+ breadcrumbsType={args.breadcrumbsType}
140
158
  />
141
159
  </>
142
160
  )}
@@ -155,7 +173,24 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
155
173
  text: "Grandchild",
156
174
  },
157
175
  ]}
158
- colorVariant={ColorVariants.BooksAndMore}
176
+ breadcrumbsType={BreadcrumbsTypes.BooksAndMore}
177
+ />
178
+ </DSProvider>
179
+ </Canvas>
180
+
181
+ <Canvas>
182
+ <DSProvider>
183
+ <Heading level={HeadingLevels.Three}>Education</Heading>
184
+ <Breadcrumbs
185
+ breadcrumbsData={[
186
+ { url: "#", text: "Parent" },
187
+ { url: "#", text: "Child" },
188
+ {
189
+ url: "#",
190
+ text: "Grandchild",
191
+ },
192
+ ]}
193
+ breadcrumbsType={BreadcrumbsTypes.Education}
159
194
  />
160
195
  </DSProvider>
161
196
  </Canvas>
@@ -172,7 +207,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
172
207
  text: "Grandchild",
173
208
  },
174
209
  ]}
175
- colorVariant={ColorVariants.Locations}
210
+ breadcrumbsType={BreadcrumbsTypes.Locations}
176
211
  />
177
212
  </DSProvider>
178
213
  </Canvas>
@@ -189,7 +224,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
189
224
  text: "Grandchild",
190
225
  },
191
226
  ]}
192
- colorVariant={ColorVariants.Research}
227
+ breadcrumbsType={BreadcrumbsTypes.Research}
193
228
  />
194
229
  </DSProvider>
195
230
  </Canvas>
@@ -206,7 +241,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
206
241
  text: "Grandchild",
207
242
  },
208
243
  ]}
209
- colorVariant={ColorVariants.WhatsOn}
244
+ breadcrumbsType={BreadcrumbsTypes.WhatsOn}
210
245
  />
211
246
  </DSProvider>
212
247
  </Canvas>
@@ -4,7 +4,7 @@ import renderer from "react-test-renderer";
4
4
  import { axe } from "jest-axe";
5
5
 
6
6
  import Breadcrumbs from "./Breadcrumbs";
7
- import { ColorVariants } from "./BreadcrumbsTypes";
7
+ import { BreadcrumbsTypes } from "./BreadcrumbsTypes";
8
8
 
9
9
  describe("Breadcrumbs Accessibility", () => {
10
10
  const breadcrumbsData = [
@@ -34,6 +34,37 @@ describe("Breadcrumbs Accessibility", () => {
34
34
  });
35
35
  });
36
36
 
37
+ describe("Breadcrumbs", () => {
38
+ const breadcrumbsData = [
39
+ { url: "#string1", text: "string1" },
40
+ { url: "#string2", text: "string2" },
41
+ { url: "#string3", text: "string3" },
42
+ ];
43
+
44
+ it("Renders a tag with custom text", () => {
45
+ render(<Breadcrumbs breadcrumbsData={breadcrumbsData} />);
46
+
47
+ // The last breadcrumb (the active page) is not a link.
48
+ expect(screen.getAllByRole("link")).toHaveLength(2);
49
+ expect(screen.getAllByRole("link")[0]).toHaveTextContent("string1");
50
+ expect(screen.getAllByRole("link")[1]).toHaveTextContent("string2");
51
+ expect(screen.getByText(/string3/)).toBeInTheDocument();
52
+ });
53
+
54
+ it("Renders icon", () => {
55
+ const { container } = render(
56
+ <Breadcrumbs breadcrumbsData={breadcrumbsData} />
57
+ );
58
+ expect(container.querySelector(".breadcrumbs-icon")).toBeInTheDocument();
59
+ });
60
+
61
+ it("Throws error when nothing is passed into Breadcrumb", () => {
62
+ expect(() => render(<Breadcrumbs breadcrumbsData={[]} />)).toThrowError(
63
+ "NYPL Reservoir Breadcrumbs: No data was passed to the `breadcrumbsData` prop."
64
+ );
65
+ });
66
+ });
67
+
37
68
  describe("Breadcrumbs Snapshot", () => {
38
69
  it("Renders the UI snapshot correctly", () => {
39
70
  const breadcrumbsData = [
@@ -51,7 +82,7 @@ describe("Breadcrumbs Snapshot", () => {
51
82
  .create(
52
83
  <Breadcrumbs
53
84
  breadcrumbsData={breadcrumbsData}
54
- colorVariant={ColorVariants.BooksAndMore}
85
+ breadcrumbsType={BreadcrumbsTypes.BooksAndMore}
55
86
  id="breadcrumbs-test"
56
87
  />
57
88
  )
@@ -60,7 +91,7 @@ describe("Breadcrumbs Snapshot", () => {
60
91
  .create(
61
92
  <Breadcrumbs
62
93
  breadcrumbsData={breadcrumbsData}
63
- colorVariant={ColorVariants.Blogs}
94
+ breadcrumbsType={BreadcrumbsTypes.Blogs}
64
95
  id="breadcrumbs-test"
65
96
  />
66
97
  )
@@ -69,7 +100,16 @@ describe("Breadcrumbs Snapshot", () => {
69
100
  .create(
70
101
  <Breadcrumbs
71
102
  breadcrumbsData={breadcrumbsData}
72
- colorVariant={ColorVariants.Blogs}
103
+ breadcrumbsType={BreadcrumbsTypes.Blogs}
104
+ id="breadcrumbs-test"
105
+ />
106
+ )
107
+ .toJSON();
108
+ const breadcrumbsEducationVariant = renderer
109
+ .create(
110
+ <Breadcrumbs
111
+ breadcrumbsData={breadcrumbsData}
112
+ breadcrumbsType={BreadcrumbsTypes.Education}
73
113
  id="breadcrumbs-test"
74
114
  />
75
115
  )
@@ -85,42 +125,33 @@ describe("Breadcrumbs Snapshot", () => {
85
125
  />
86
126
  )
87
127
  .toJSON();
128
+ const withChakraProps = renderer
129
+ .create(
130
+ <Breadcrumbs
131
+ breadcrumbsData={breadcrumbsData}
132
+ id="breadcrumbs-test"
133
+ p="s"
134
+ color="ui.error.primary"
135
+ />
136
+ )
137
+ .toJSON();
138
+ const withOtherProps = renderer
139
+ .create(
140
+ <Breadcrumbs
141
+ breadcrumbsData={breadcrumbsData}
142
+ id="breadcrumbs-test"
143
+ data-testid="testid"
144
+ />
145
+ )
146
+ .toJSON();
88
147
 
89
148
  expect(breadcrumbsSnapshot).toMatchSnapshot();
90
149
  expect(breadcrumbsVariantColor).toMatchSnapshot();
91
150
  expect(breadcrumbsBlogsVariant).toMatchSnapshot();
92
151
  expect(breadcrumbsLocationsVariant).toMatchSnapshot();
152
+ expect(breadcrumbsEducationVariant).toMatchSnapshot();
93
153
  expect(breadcrumbsAdditionalStyles).toMatchSnapshot();
94
- });
95
- });
96
-
97
- describe("Breadcrumbs Testing", () => {
98
- const breadcrumbsData = [
99
- { url: "#string1", text: "string1" },
100
- { url: "#string2", text: "string2" },
101
- { url: "#string3", text: "string3" },
102
- ];
103
-
104
- it("Renders a tag with custom text", () => {
105
- render(<Breadcrumbs breadcrumbsData={breadcrumbsData} />);
106
-
107
- // The last breadcrumb (the active page) is not a link.
108
- expect(screen.getAllByRole("link")).toHaveLength(2);
109
- expect(screen.getAllByRole("link")[0]).toHaveTextContent("string1");
110
- expect(screen.getAllByRole("link")[1]).toHaveTextContent("string2");
111
- expect(screen.getByText(/string3/)).toBeInTheDocument();
112
- });
113
-
114
- it("Renders icon", () => {
115
- const { container } = render(
116
- <Breadcrumbs breadcrumbsData={breadcrumbsData} />
117
- );
118
- expect(container.querySelector(".breadcrumbs-icon")).toBeInTheDocument();
119
- });
120
-
121
- it("Throws error when nothing is passed into Breadcrumb", () => {
122
- expect(() => render(<Breadcrumbs breadcrumbsData={[]} />)).toThrowError(
123
- "You must use the `breadcrumbsData` prop to pass a data object to the Breadcrumbs component. That prop is current empty."
124
- );
154
+ expect(withChakraProps).toMatchSnapshot();
155
+ expect(withOtherProps).toMatchSnapshot();
125
156
  });
126
157
  });
@@ -1,10 +1,11 @@
1
- import * as React from "react";
2
1
  import {
3
2
  Breadcrumb as ChakraBreadcrumb,
4
3
  BreadcrumbItem,
5
4
  BreadcrumbLink,
5
+ chakra,
6
6
  useStyleConfig,
7
7
  } from "@chakra-ui/react";
8
+ import * as React from "react";
8
9
 
9
10
  import Icon from "../Icons/Icon";
10
11
  import {
@@ -13,8 +14,7 @@ import {
13
14
  IconSizes,
14
15
  IconTypes,
15
16
  } from "../Icons/IconTypes";
16
- import generateUUID from "../../helpers/generateUUID";
17
- import { ColorVariants } from "./BreadcrumbsTypes";
17
+ import { BreadcrumbsTypes } from "./BreadcrumbsTypes";
18
18
  import { getVariant } from "../../utils/utils";
19
19
 
20
20
  export interface BreadcrumbsDataProps {
@@ -27,12 +27,12 @@ export interface BreadcrumbProps {
27
27
  additionalStyles?: { [key: string]: any };
28
28
  /** Breadcrumb links as an array */
29
29
  breadcrumbsData: BreadcrumbsDataProps[];
30
+ /** Used to control how the `Hero` component will be rendered. */
31
+ breadcrumbsType?: BreadcrumbsTypes;
30
32
  /** className you can add in addition to 'input' */
31
33
  className?: string;
32
34
  /** ID that other components can cross reference for accessibility purposes */
33
35
  id?: string;
34
- /** Used to control how the `Hero` component will be rendered. */
35
- colorVariant?: ColorVariants;
36
36
  }
37
37
 
38
38
  const getElementsFromData = (data, breadcrumbsID) => {
@@ -64,37 +64,38 @@ const getElementsFromData = (data, breadcrumbsID) => {
64
64
  return breadcrumbItems;
65
65
  };
66
66
 
67
- function Breadcrumbs(props: React.PropsWithChildren<BreadcrumbProps>) {
67
+ export const Breadcrumbs = chakra((props: BreadcrumbProps) => {
68
68
  const {
69
69
  additionalStyles = {},
70
70
  breadcrumbsData,
71
+ breadcrumbsType,
71
72
  className,
72
- colorVariant,
73
- id = generateUUID(),
73
+ id,
74
+ ...rest
74
75
  } = props;
75
- const variant = getVariant(colorVariant, ColorVariants);
76
+ const variant = getVariant(breadcrumbsType, BreadcrumbsTypes);
76
77
 
77
78
  if (!breadcrumbsData || breadcrumbsData.length === 0) {
78
79
  throw new Error(
79
- "You must use the `breadcrumbsData` prop to pass a data object to the Breadcrumbs component. That prop is current empty."
80
+ "NYPL Reservoir Breadcrumbs: No data was passed to the `breadcrumbsData` prop."
80
81
  );
81
82
  }
82
83
 
83
84
  const styles = useStyleConfig("Breadcrumb", { variant });
84
85
  const finalStyles = { ...styles, ...additionalStyles };
85
86
  const breadcrumbItems = getElementsFromData(breadcrumbsData, id);
86
- const ariaAttrs = { "aria-label": "Breadcrumb" };
87
87
 
88
88
  return (
89
89
  <ChakraBreadcrumb
90
+ aria-label="Breadcrumb"
90
91
  className={className}
91
92
  id={id}
92
- {...ariaAttrs}
93
93
  __css={finalStyles}
94
+ {...rest}
94
95
  >
95
96
  {breadcrumbItems}
96
97
  </ChakraBreadcrumb>
97
98
  );
98
- }
99
+ });
99
100
 
100
101
  export default Breadcrumbs;
@@ -1,6 +1,7 @@
1
- export enum ColorVariants {
1
+ export enum BreadcrumbsTypes {
2
2
  Blogs = "blogs",
3
3
  BooksAndMore = "booksAndMore",
4
+ Education = "education",
4
5
  Locations = "locations",
5
6
  Research = "research",
6
7
  WhatsOn = "whatsOn",