@nypl/design-system-react-components 0.25.12 → 0.26.1

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 (337) hide show
  1. package/CHANGELOG.md +131 -1
  2. package/README.md +10 -10
  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 +1 -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 +1 -0
  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 +2 -0
  32. package/dist/components/Logo/LogoTypes.d.ts +4 -2
  33. package/dist/components/Notification/Notification.d.ts +7 -7
  34. package/dist/components/Pagination/Pagination.d.ts +2 -2
  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 +4 -4
  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 +17 -8
  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 +2075 -1468
  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 +2086 -1483
  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 +3 -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 -4
  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 +4 -14
  75. package/dist/theme/components/global.d.ts +25 -18
  76. package/dist/theme/components/heading.d.ts +53 -0
  77. package/dist/theme/components/helperErrorText.d.ts +1 -0
  78. package/dist/theme/components/hero.d.ts +21 -15
  79. package/dist/theme/components/image.d.ts +1 -1
  80. package/dist/theme/components/label.d.ts +9 -10
  81. package/dist/theme/components/list.d.ts +99 -9
  82. package/dist/theme/components/notification.d.ts +4 -4
  83. package/dist/theme/components/pagination.d.ts +2 -5
  84. package/dist/theme/components/radio.d.ts +7 -4
  85. package/dist/theme/components/radioGroup.d.ts +4 -2
  86. package/dist/theme/components/select.d.ts +37 -5
  87. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  88. package/dist/theme/components/slider.d.ts +6 -3
  89. package/dist/theme/components/structuredContent.d.ts +197 -0
  90. package/dist/theme/components/textInput.d.ts +18 -6
  91. package/dist/theme/components/toggle.d.ts +20 -5
  92. package/dist/theme/foundations/global.d.ts +2 -0
  93. package/dist/theme/foundations/radii.d.ts +1 -0
  94. package/dist/theme/foundations/spacing.d.ts +46 -43
  95. package/package.json +5 -6
  96. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +34 -0
  97. package/src/components/Accordion/Accordion.stories.mdx +150 -66
  98. package/src/components/Accordion/Accordion.test.tsx +65 -17
  99. package/src/components/Accordion/Accordion.tsx +61 -27
  100. package/src/components/Accordion/AccordionTypes.tsx +5 -0
  101. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +505 -14
  102. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  103. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +37 -19
  104. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +57 -36
  105. package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
  106. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -1
  107. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +211 -12
  108. package/src/components/Button/Button.stories.mdx +87 -23
  109. package/src/components/Button/Button.test.tsx +25 -0
  110. package/src/components/Button/Button.tsx +18 -7
  111. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  112. package/src/components/Card/Card.stories.mdx +493 -329
  113. package/src/components/Card/Card.test.tsx +138 -18
  114. package/src/components/Card/Card.tsx +151 -85
  115. package/src/components/Card/__snapshots__/Card.test.tsx.snap +221 -101
  116. package/src/components/Chakra/Center.stories.mdx +2 -2
  117. package/src/components/Chakra/Grid.stories.mdx +4 -4
  118. package/src/components/Checkbox/Checkbox.stories.mdx +73 -9
  119. package/src/components/Checkbox/Checkbox.test.tsx +89 -10
  120. package/src/components/Checkbox/Checkbox.tsx +26 -16
  121. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +209 -6
  122. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +135 -23
  123. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +216 -90
  124. package/src/components/CheckboxGroup/CheckboxGroup.tsx +39 -26
  125. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +493 -89
  126. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  127. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  128. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  129. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  130. package/src/components/DatePicker/DatePicker.test.tsx +94 -15
  131. package/src/components/DatePicker/DatePicker.tsx +67 -58
  132. package/src/components/DatePicker/_DatePicker.scss +71 -13
  133. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  134. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  135. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  136. package/src/components/Fieldset/Fieldset.tsx +35 -30
  137. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  138. package/src/components/Form/Form.stories.mdx +118 -47
  139. package/src/components/Form/Form.test.tsx +59 -16
  140. package/src/components/Form/Form.tsx +89 -65
  141. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  142. package/src/components/Grid/GridTypes.tsx +7 -7
  143. package/src/components/Grid/SimpleGrid.stories.mdx +87 -41
  144. package/src/components/Grid/SimpleGrid.test.tsx +24 -9
  145. package/src/components/Grid/SimpleGrid.tsx +29 -20
  146. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  147. package/src/components/Heading/Heading.stories.mdx +56 -25
  148. package/src/components/Heading/Heading.test.tsx +17 -7
  149. package/src/components/Heading/Heading.tsx +60 -58
  150. package/src/components/Heading/HeadingTypes.tsx +1 -1
  151. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +27 -8
  152. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  153. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  154. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  155. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  156. package/src/components/Hero/Hero.stories.mdx +143 -113
  157. package/src/components/Hero/Hero.test.tsx +146 -58
  158. package/src/components/Hero/Hero.tsx +144 -112
  159. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  160. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  161. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -17
  162. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -25
  163. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  164. package/src/components/Icons/Icon.stories.mdx +80 -23
  165. package/src/components/Icons/Icon.test.tsx +51 -2
  166. package/src/components/Icons/Icon.tsx +93 -71
  167. package/src/components/Icons/IconTypes.tsx +1 -0
  168. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  169. package/src/components/Image/Image.stories.mdx +160 -71
  170. package/src/components/Image/Image.test.tsx +40 -48
  171. package/src/components/Image/Image.tsx +80 -48
  172. package/src/components/Image/ImageTypes.ts +4 -4
  173. package/src/components/Image/__snapshots__/Image.test.tsx.snap +84 -21
  174. package/src/components/Label/Label.stories.mdx +42 -20
  175. package/src/components/Label/Label.test.tsx +42 -17
  176. package/src/components/Label/Label.tsx +22 -13
  177. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  178. package/src/components/Link/Link.stories.mdx +25 -1
  179. package/src/components/Link/Link.test.tsx +21 -0
  180. package/src/components/Link/Link.tsx +16 -9
  181. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  182. package/src/components/List/List.stories.mdx +75 -40
  183. package/src/components/List/List.test.tsx +73 -22
  184. package/src/components/List/List.tsx +44 -28
  185. package/src/components/List/ListTypes.tsx +1 -1
  186. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  187. package/src/components/Logo/Logo.stories.mdx +40 -16
  188. package/src/components/Logo/Logo.test.tsx +29 -2
  189. package/src/components/Logo/Logo.tsx +28 -11
  190. package/src/components/Logo/LogoSvgs.tsx +4 -0
  191. package/src/components/Logo/LogoTypes.tsx +3 -1
  192. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  193. package/src/components/Modal/Modal.stories.mdx +13 -0
  194. package/src/components/Notification/Notification.stories.mdx +29 -5
  195. package/src/components/Notification/Notification.test.tsx +23 -0
  196. package/src/components/Notification/Notification.tsx +53 -51
  197. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
  198. package/src/components/Pagination/Pagination.stories.mdx +27 -6
  199. package/src/components/Pagination/Pagination.test.tsx +55 -2
  200. package/src/components/Pagination/Pagination.tsx +12 -9
  201. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +244 -27
  202. package/src/components/Placeholder/Placeholder.tsx +3 -1
  203. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  204. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +87 -13
  205. package/src/components/ProgressIndicator/ProgressIndicator.tsx +20 -10
  206. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  207. package/src/components/Radio/Radio.stories.mdx +75 -11
  208. package/src/components/Radio/Radio.test.tsx +83 -9
  209. package/src/components/Radio/Radio.tsx +70 -62
  210. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +163 -5
  211. package/src/components/RadioGroup/RadioGroup.stories.mdx +293 -94
  212. package/src/components/RadioGroup/RadioGroup.test.tsx +193 -68
  213. package/src/components/RadioGroup/RadioGroup.tsx +110 -101
  214. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1258 -902
  215. package/src/components/SearchBar/SearchBar.stories.mdx +101 -36
  216. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +46 -4
  217. package/src/components/SearchBar/SearchBar.tsx +20 -11
  218. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  219. package/src/components/Select/Select.stories.mdx +151 -62
  220. package/src/components/Select/Select.test.tsx +56 -44
  221. package/src/components/Select/Select.tsx +125 -104
  222. package/src/components/Select/SelectTypes.tsx +5 -0
  223. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  224. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +53 -23
  225. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +14 -8
  226. package/src/components/SkeletonLoader/SkeletonLoader.tsx +80 -78
  227. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +0 -5
  228. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  229. package/src/components/Slider/Slider.stories.mdx +123 -41
  230. package/src/components/Slider/Slider.test.tsx +65 -17
  231. package/src/components/Slider/Slider.tsx +30 -23
  232. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  233. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  234. package/src/components/StatusBadge/StatusBadge.test.tsx +19 -1
  235. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  236. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  237. package/src/components/StructuredContent/StructuredContent.stories.mdx +229 -61
  238. package/src/components/StructuredContent/StructuredContent.test.tsx +162 -101
  239. package/src/components/StructuredContent/StructuredContent.tsx +98 -103
  240. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  241. package/src/components/StyleGuide/Bidirectionality.stories.mdx +5 -5
  242. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  243. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  244. package/src/components/StyleGuide/ColorCard.tsx +4 -4
  245. package/src/components/StyleGuide/Colors.stories.mdx +1 -2
  246. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  247. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  248. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  249. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  250. package/src/components/StyleGuide/Typography.stories.mdx +47 -33
  251. package/src/components/Table/Table.stories.mdx +38 -11
  252. package/src/components/Table/Table.test.tsx +16 -1
  253. package/src/components/Table/Table.tsx +10 -8
  254. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  255. package/src/components/Tabs/Tabs.stories.mdx +59 -10
  256. package/src/components/Tabs/Tabs.test.tsx +29 -11
  257. package/src/components/Tabs/Tabs.tsx +28 -21
  258. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  259. package/src/components/Template/Template.stories.mdx +73 -32
  260. package/src/components/Template/Template.test.tsx +68 -5
  261. package/src/components/Template/Template.tsx +89 -71
  262. package/src/components/Template/__snapshots__/Template.test.tsx.snap +195 -22
  263. package/src/components/Text/Text.stories.mdx +32 -15
  264. package/src/components/Text/Text.test.tsx +14 -11
  265. package/src/components/Text/Text.tsx +13 -16
  266. package/src/components/Text/TextTypes.tsx +1 -1
  267. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  268. package/src/components/TextInput/TextInput.stories.mdx +73 -27
  269. package/src/components/TextInput/TextInput.test.tsx +65 -50
  270. package/src/components/TextInput/TextInput.tsx +123 -115
  271. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  272. package/src/components/Toggle/Toggle.stories.mdx +74 -26
  273. package/src/components/Toggle/Toggle.test.tsx +41 -10
  274. package/src/components/Toggle/Toggle.tsx +29 -26
  275. package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
  276. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +191 -4
  277. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  278. package/src/components/VideoPlayer/VideoPlayer.test.tsx +41 -6
  279. package/src/components/VideoPlayer/VideoPlayer.tsx +134 -120
  280. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  281. package/src/docs/Chakra.stories.mdx +50 -9
  282. package/src/docs/Welcome.stories.mdx +168 -0
  283. package/src/{components/Card/CardTypes.tsx → helpers/enums.ts} +2 -2
  284. package/src/hooks/tests/useNYPLTheme.test.tsx +1 -1
  285. package/src/hooks/useCarouselStyles.stories.mdx +30 -0
  286. package/src/hooks/useCarouselStyles.ts +3 -2
  287. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  288. package/src/hooks/useNYPLTheme.ts +31 -7
  289. package/src/hooks/useWindowSize.stories.mdx +23 -0
  290. package/src/index.ts +11 -15
  291. package/src/styles/base/_place-holder.scss +1 -1
  292. package/src/theme/components/accordion.ts +7 -12
  293. package/src/theme/components/breadcrumb.ts +3 -0
  294. package/src/theme/components/button.ts +15 -7
  295. package/src/theme/components/card.ts +56 -36
  296. package/src/theme/components/checkbox.ts +10 -8
  297. package/src/theme/components/checkboxGroup.ts +4 -2
  298. package/src/theme/components/componentWrapper.ts +2 -2
  299. package/src/theme/components/customTable.ts +39 -31
  300. package/src/theme/components/fieldset.ts +1 -2
  301. package/src/theme/components/global.ts +29 -23
  302. package/src/theme/components/heading.ts +1 -1
  303. package/src/theme/components/helperErrorText.ts +1 -0
  304. package/src/theme/components/hero.ts +14 -16
  305. package/src/theme/components/icon.ts +5 -2
  306. package/src/theme/components/image.ts +1 -1
  307. package/src/theme/components/label.ts +4 -3
  308. package/src/theme/components/list.ts +73 -66
  309. package/src/theme/components/notification.ts +7 -7
  310. package/src/theme/components/pagination.ts +2 -5
  311. package/src/theme/components/progressIndicator.ts +3 -3
  312. package/src/theme/components/radio.ts +9 -9
  313. package/src/theme/components/radioGroup.ts +4 -2
  314. package/src/theme/components/select.ts +35 -16
  315. package/src/theme/components/skeletonLoader.ts +3 -3
  316. package/src/theme/components/slider.ts +8 -7
  317. package/src/theme/components/statusBadge.ts +2 -2
  318. package/src/theme/components/structuredContent.ts +66 -1
  319. package/src/theme/components/tabs.ts +2 -2
  320. package/src/theme/components/template.ts +9 -9
  321. package/src/theme/components/textInput.ts +13 -12
  322. package/src/theme/components/toggle.ts +43 -13
  323. package/src/theme/components/videoPlayer.ts +1 -1
  324. package/src/theme/foundations/colors.ts +1 -1
  325. package/src/theme/foundations/radii.ts +1 -0
  326. package/src/theme/foundations/spacing.ts +70 -22
  327. package/src/theme/foundations/typography.ts +2 -2
  328. package/src/utils/componentCategories.ts +28 -21
  329. package/dist/components/Card/CardTypes.d.ts +0 -4
  330. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
  331. package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +0 -4
  332. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  333. package/dist/helpers/generateUUID.d.ts +0 -1
  334. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +0 -4
  335. package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
  336. package/src/docs/Intro.stories.mdx +0 -53
  337. package/src/helpers/generateUUID.tsx +0 -5
@@ -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.12` |
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,7 @@ 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}
159
177
  />
160
178
  </DSProvider>
161
179
  </Canvas>
@@ -172,7 +190,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
172
190
  text: "Grandchild",
173
191
  },
174
192
  ]}
175
- colorVariant={ColorVariants.Education}
193
+ breadcrumbsType={BreadcrumbsTypes.Education}
176
194
  />
177
195
  </DSProvider>
178
196
  </Canvas>
@@ -189,7 +207,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
189
207
  text: "Grandchild",
190
208
  },
191
209
  ]}
192
- colorVariant={ColorVariants.Locations}
210
+ breadcrumbsType={BreadcrumbsTypes.Locations}
193
211
  />
194
212
  </DSProvider>
195
213
  </Canvas>
@@ -206,7 +224,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
206
224
  text: "Grandchild",
207
225
  },
208
226
  ]}
209
- colorVariant={ColorVariants.Research}
227
+ breadcrumbsType={BreadcrumbsTypes.Research}
210
228
  />
211
229
  </DSProvider>
212
230
  </Canvas>
@@ -223,7 +241,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
223
241
  text: "Grandchild",
224
242
  },
225
243
  ]}
226
- colorVariant={ColorVariants.WhatsOn}
244
+ breadcrumbsType={BreadcrumbsTypes.WhatsOn}
227
245
  />
228
246
  </DSProvider>
229
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,7 @@ describe("Breadcrumbs Snapshot", () => {
69
100
  .create(
70
101
  <Breadcrumbs
71
102
  breadcrumbsData={breadcrumbsData}
72
- colorVariant={ColorVariants.Blogs}
103
+ breadcrumbsType={BreadcrumbsTypes.Blogs}
73
104
  id="breadcrumbs-test"
74
105
  />
75
106
  )
@@ -78,7 +109,7 @@ describe("Breadcrumbs Snapshot", () => {
78
109
  .create(
79
110
  <Breadcrumbs
80
111
  breadcrumbsData={breadcrumbsData}
81
- colorVariant={ColorVariants.Education}
112
+ breadcrumbsType={BreadcrumbsTypes.Education}
82
113
  id="breadcrumbs-test"
83
114
  />
84
115
  )
@@ -94,6 +125,25 @@ describe("Breadcrumbs Snapshot", () => {
94
125
  />
95
126
  )
96
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();
97
147
 
98
148
  expect(breadcrumbsSnapshot).toMatchSnapshot();
99
149
  expect(breadcrumbsVariantColor).toMatchSnapshot();
@@ -101,36 +151,7 @@ describe("Breadcrumbs Snapshot", () => {
101
151
  expect(breadcrumbsLocationsVariant).toMatchSnapshot();
102
152
  expect(breadcrumbsEducationVariant).toMatchSnapshot();
103
153
  expect(breadcrumbsAdditionalStyles).toMatchSnapshot();
104
- });
105
- });
106
-
107
- describe("Breadcrumbs Testing", () => {
108
- const breadcrumbsData = [
109
- { url: "#string1", text: "string1" },
110
- { url: "#string2", text: "string2" },
111
- { url: "#string3", text: "string3" },
112
- ];
113
-
114
- it("Renders a tag with custom text", () => {
115
- render(<Breadcrumbs breadcrumbsData={breadcrumbsData} />);
116
-
117
- // The last breadcrumb (the active page) is not a link.
118
- expect(screen.getAllByRole("link")).toHaveLength(2);
119
- expect(screen.getAllByRole("link")[0]).toHaveTextContent("string1");
120
- expect(screen.getAllByRole("link")[1]).toHaveTextContent("string2");
121
- expect(screen.getByText(/string3/)).toBeInTheDocument();
122
- });
123
-
124
- it("Renders icon", () => {
125
- const { container } = render(
126
- <Breadcrumbs breadcrumbsData={breadcrumbsData} />
127
- );
128
- expect(container.querySelector(".breadcrumbs-icon")).toBeInTheDocument();
129
- });
130
-
131
- it("Throws error when nothing is passed into Breadcrumb", () => {
132
- expect(() => render(<Breadcrumbs breadcrumbsData={[]} />)).toThrowError(
133
- "You must use the `breadcrumbsData` prop to pass a data object to the Breadcrumbs component. That prop is current empty."
134
- );
154
+ expect(withChakraProps).toMatchSnapshot();
155
+ expect(withOtherProps).toMatchSnapshot();
135
156
  });
136
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,4 +1,4 @@
1
- export enum ColorVariants {
1
+ export enum BreadcrumbsTypes {
2
2
  Blogs = "blogs",
3
3
  BooksAndMore = "booksAndMore",
4
4
  Education = "education",