@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
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`Notification renders the UI snapshot correctly 1`] = `
4
4
  <aside
5
- className="css-0"
5
+ className="css-1xdhyk6"
6
6
  data-type="standard"
7
7
  id="notificationID1"
8
8
  >
@@ -10,11 +10,11 @@ exports[`Notification renders the UI snapshot correctly 1`] = `
10
10
  className="css-0"
11
11
  >
12
12
  <header
13
- className="css-0"
13
+ className="css-1xdhyk6"
14
14
  >
15
15
  <svg
16
16
  aria-hidden={true}
17
- className="chakra-icon css-onkibi"
17
+ className="chakra-icon css-q3eg3a"
18
18
  focusable={false}
19
19
  id="notificationID1-notification-icon"
20
20
  role="img"
@@ -45,14 +45,14 @@ exports[`Notification renders the UI snapshot correctly 1`] = `
45
45
  </g>
46
46
  </svg>
47
47
  <h4
48
- className="chakra-heading css-0"
48
+ className="chakra-heading css-1xdhyk6"
49
49
  id="notificationID1-heading"
50
50
  >
51
51
  Notification Heading
52
52
  </h4>
53
53
  </header>
54
54
  <div
55
- className="css-0"
55
+ className="css-1xdhyk6"
56
56
  >
57
57
  <div
58
58
  className="css-0"
@@ -66,7 +66,7 @@ exports[`Notification renders the UI snapshot correctly 1`] = `
66
66
 
67
67
  exports[`Notification renders the UI snapshot correctly 2`] = `
68
68
  <aside
69
- className="css-0"
69
+ className="css-1xdhyk6"
70
70
  data-type="announcement"
71
71
  id="notificationID2"
72
72
  >
@@ -74,11 +74,11 @@ exports[`Notification renders the UI snapshot correctly 2`] = `
74
74
  className="css-0"
75
75
  >
76
76
  <header
77
- className="css-0"
77
+ className="css-1xdhyk6"
78
78
  >
79
79
  <svg
80
80
  aria-hidden={true}
81
- className="chakra-icon css-onkibi"
81
+ className="chakra-icon css-u7u798"
82
82
  focusable={false}
83
83
  id="notificationID2-notification-icon"
84
84
  role="img"
@@ -109,14 +109,14 @@ exports[`Notification renders the UI snapshot correctly 2`] = `
109
109
  </g>
110
110
  </svg>
111
111
  <h4
112
- className="chakra-heading css-0"
112
+ className="chakra-heading css-1xdhyk6"
113
113
  id="notificationID2-heading"
114
114
  >
115
115
  Notification Heading
116
116
  </h4>
117
117
  </header>
118
118
  <div
119
- className="css-0"
119
+ className="css-1xdhyk6"
120
120
  >
121
121
  <div
122
122
  className="css-0"
@@ -130,7 +130,7 @@ exports[`Notification renders the UI snapshot correctly 2`] = `
130
130
 
131
131
  exports[`Notification renders the UI snapshot correctly 3`] = `
132
132
  <aside
133
- className="css-0"
133
+ className="css-1xdhyk6"
134
134
  data-type="warning"
135
135
  id="notificationID3"
136
136
  >
@@ -138,11 +138,11 @@ exports[`Notification renders the UI snapshot correctly 3`] = `
138
138
  className="css-0"
139
139
  >
140
140
  <header
141
- className="css-0"
141
+ className="css-1xdhyk6"
142
142
  >
143
143
  <svg
144
144
  aria-hidden={true}
145
- className="chakra-icon css-onkibi"
145
+ className="chakra-icon css-zzgjc6"
146
146
  focusable={false}
147
147
  id="notificationID3-notification-icon"
148
148
  role="img"
@@ -173,14 +173,14 @@ exports[`Notification renders the UI snapshot correctly 3`] = `
173
173
  </g>
174
174
  </svg>
175
175
  <h4
176
- className="chakra-heading css-0"
176
+ className="chakra-heading css-1xdhyk6"
177
177
  id="notificationID3-heading"
178
178
  >
179
179
  Notification Heading
180
180
  </h4>
181
181
  </header>
182
182
  <div
183
- className="css-0"
183
+ className="css-1xdhyk6"
184
184
  >
185
185
  <div
186
186
  className="css-0"
@@ -194,7 +194,7 @@ exports[`Notification renders the UI snapshot correctly 3`] = `
194
194
 
195
195
  exports[`Notification renders the UI snapshot correctly 4`] = `
196
196
  <aside
197
- className="css-0"
197
+ className="css-1xdhyk6"
198
198
  data-type="standard"
199
199
  id="notificationID4"
200
200
  >
@@ -202,11 +202,11 @@ exports[`Notification renders the UI snapshot correctly 4`] = `
202
202
  className="css-0"
203
203
  >
204
204
  <div
205
- className="css-0"
205
+ className="css-1xdhyk6"
206
206
  >
207
207
  <svg
208
208
  aria-hidden={true}
209
- className="chakra-icon css-onkibi"
209
+ className="chakra-icon css-q3eg3a"
210
210
  focusable={false}
211
211
  id="notificationID4-notification-icon"
212
212
  role="img"
@@ -248,7 +248,7 @@ exports[`Notification renders the UI snapshot correctly 4`] = `
248
248
 
249
249
  exports[`Notification renders the UI snapshot correctly 5`] = `
250
250
  <aside
251
- className="css-0"
251
+ className="css-1xdhyk6"
252
252
  data-type="standard"
253
253
  id="notificationID5"
254
254
  >
@@ -256,17 +256,17 @@ exports[`Notification renders the UI snapshot correctly 5`] = `
256
256
  className="css-0"
257
257
  >
258
258
  <header
259
- className="css-0"
259
+ className="css-1xdhyk6"
260
260
  >
261
261
  <h4
262
- className="chakra-heading css-0"
262
+ className="chakra-heading css-1xdhyk6"
263
263
  id="notificationID5-heading"
264
264
  >
265
265
  Notification Heading
266
266
  </h4>
267
267
  </header>
268
268
  <div
269
- className="css-0"
269
+ className="css-1xdhyk6"
270
270
  >
271
271
  <div
272
272
  className="css-0"
@@ -280,7 +280,7 @@ exports[`Notification renders the UI snapshot correctly 5`] = `
280
280
 
281
281
  exports[`Notification renders the UI snapshot correctly 6`] = `
282
282
  <aside
283
- className="css-0"
283
+ className="css-1xdhyk6"
284
284
  data-type="standard"
285
285
  id="notificationID6"
286
286
  >
@@ -288,7 +288,7 @@ exports[`Notification renders the UI snapshot correctly 6`] = `
288
288
  className="css-0"
289
289
  >
290
290
  <div
291
- className="css-0"
291
+ className="css-1xdhyk6"
292
292
  >
293
293
  <div
294
294
  className="css-0"
@@ -302,7 +302,7 @@ exports[`Notification renders the UI snapshot correctly 6`] = `
302
302
 
303
303
  exports[`Notification renders the UI snapshot correctly 7`] = `
304
304
  <aside
305
- className="css-0"
305
+ className="css-1xdhyk6"
306
306
  data-type="standard"
307
307
  id="notificationID7"
308
308
  >
@@ -310,11 +310,11 @@ exports[`Notification renders the UI snapshot correctly 7`] = `
310
310
  className="css-0"
311
311
  >
312
312
  <div
313
- className="css-0"
313
+ className="css-1xdhyk6"
314
314
  >
315
315
  <svg
316
316
  aria-hidden={true}
317
- className="chakra-icon css-onkibi"
317
+ className="chakra-icon css-q3eg3a"
318
318
  focusable={false}
319
319
  id="notificationID7-notification-icon"
320
320
  role="img"
@@ -353,7 +353,7 @@ exports[`Notification renders the UI snapshot correctly 7`] = `
353
353
  </div>
354
354
  <button
355
355
  aria-label="Close the notification"
356
- className="chakra-button css-0"
356
+ className="chakra-button css-1xdhyk6"
357
357
  data-testid="button"
358
358
  id="notificationID7-notification-dismissible-button"
359
359
  onClick={[Function]}
@@ -361,7 +361,7 @@ exports[`Notification renders the UI snapshot correctly 7`] = `
361
361
  >
362
362
  <svg
363
363
  aria-hidden={true}
364
- className="chakra-icon css-onkibi"
364
+ className="chakra-icon css-1grhd2q"
365
365
  focusable={false}
366
366
  id="notificationID7-dismissible-notification-icon"
367
367
  role="img"
@@ -394,3 +394,132 @@ exports[`Notification renders the UI snapshot correctly 7`] = `
394
394
  </button>
395
395
  </aside>
396
396
  `;
397
+
398
+ exports[`Notification renders the UI snapshot correctly 8`] = `
399
+ <aside
400
+ className="css-kle7zy"
401
+ data-type="standard"
402
+ id="chakra"
403
+ >
404
+ <div
405
+ className="css-0"
406
+ >
407
+ <header
408
+ className="css-1xdhyk6"
409
+ >
410
+ <svg
411
+ aria-hidden={true}
412
+ className="chakra-icon css-q3eg3a"
413
+ focusable={false}
414
+ id="chakra-notification-icon"
415
+ role="img"
416
+ title="Notification standard icon"
417
+ viewBox="0 0 24 24"
418
+ >
419
+ <g
420
+ stroke="currentColor"
421
+ strokeWidth="1.5"
422
+ >
423
+ <path
424
+ d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
425
+ fill="none"
426
+ strokeLinecap="round"
427
+ />
428
+ <path
429
+ d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
430
+ fill="currentColor"
431
+ strokeLinecap="round"
432
+ />
433
+ <circle
434
+ cx="12"
435
+ cy="12"
436
+ fill="none"
437
+ r="11.25"
438
+ strokeMiterlimit="10"
439
+ />
440
+ </g>
441
+ </svg>
442
+ <h4
443
+ className="chakra-heading css-1xdhyk6"
444
+ id="chakra-heading"
445
+ >
446
+ Notification Heading
447
+ </h4>
448
+ </header>
449
+ <div
450
+ className="css-1xdhyk6"
451
+ >
452
+ <div
453
+ className="css-0"
454
+ >
455
+ Notification content.
456
+ </div>
457
+ </div>
458
+ </div>
459
+ </aside>
460
+ `;
461
+
462
+ exports[`Notification renders the UI snapshot correctly 9`] = `
463
+ <aside
464
+ className="css-1xdhyk6"
465
+ data-testid="props"
466
+ data-type="standard"
467
+ id="props"
468
+ >
469
+ <div
470
+ className="css-0"
471
+ >
472
+ <header
473
+ className="css-1xdhyk6"
474
+ >
475
+ <svg
476
+ aria-hidden={true}
477
+ className="chakra-icon css-q3eg3a"
478
+ focusable={false}
479
+ id="props-notification-icon"
480
+ role="img"
481
+ title="Notification standard icon"
482
+ viewBox="0 0 24 24"
483
+ >
484
+ <g
485
+ stroke="currentColor"
486
+ strokeWidth="1.5"
487
+ >
488
+ <path
489
+ d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
490
+ fill="none"
491
+ strokeLinecap="round"
492
+ />
493
+ <path
494
+ d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
495
+ fill="currentColor"
496
+ strokeLinecap="round"
497
+ />
498
+ <circle
499
+ cx="12"
500
+ cy="12"
501
+ fill="none"
502
+ r="11.25"
503
+ strokeMiterlimit="10"
504
+ />
505
+ </g>
506
+ </svg>
507
+ <h4
508
+ className="chakra-heading css-1xdhyk6"
509
+ id="props-heading"
510
+ >
511
+ Notification Heading
512
+ </h4>
513
+ </header>
514
+ <div
515
+ className="css-1xdhyk6"
516
+ >
517
+ <div
518
+ className="css-0"
519
+ >
520
+ Notification content.
521
+ </div>
522
+ </div>
523
+ </div>
524
+ </aside>
525
+ `;
@@ -1,4 +1,5 @@
1
1
  import { useState } from "react";
2
+ import { VStack } from "@chakra-ui/react";
2
3
  import {
3
4
  ArgsTable,
4
5
  Canvas,
@@ -43,7 +44,16 @@ export const hrefProps = getStorybookHrefProps(10);
43
44
  | Component Version | DS Version |
44
45
  | ----------------- | ---------- |
45
46
  | Added | `0.0.10` |
46
- | Latest | `0.25.12` |
47
+ | Latest | `0.26.0` |
48
+
49
+ ## Table of Contents
50
+
51
+ - [Overview](#overview)
52
+ - [Accessibility](#accessibility)
53
+ - [Pagination with URL Updates](#pagination-with-url-updates)
54
+ - [Pagination with Unchanging URL](#pagination-with-unchanging-url)
55
+
56
+ ## Overview
47
57
 
48
58
  <Description of={Pagination} />
49
59
 
@@ -51,7 +61,18 @@ The `Pagination` component helps navigate between pages of a multi-page
51
61
  application. It is commonly used on a search results page. Update the `pageCount`
52
62
  prop in the Controls to explore this component with many or few pages.
53
63
 
54
- Pagination uses anchor tags because it is navigating between URLs.
64
+ ## Accessibility
65
+
66
+ Internally, the `Pagination` component is implemented with a `<nav>` element with
67
+ an `aria-label` attribute of `"Pagination"` and an unordered `<ul>` element. This
68
+ component uses anchor `<a>` tags because it is navigating between URLs. In the
69
+ "unchanging URL" variation, each anchor tag has an `href` attribute with a value
70
+ of `"#"`, because the URL is not changing.
71
+
72
+ Resources:
73
+
74
+ - [W3C Design System Pagination](https://design-system.w3.org/components/pagination.html)
75
+ - [a11ymatters Accessible Pagination](https://www.a11ymatters.com/pattern/pagination/)
55
76
 
56
77
  ## Pagination with URL Updates
57
78
 
@@ -85,7 +106,7 @@ const getPageHref = (selectedPage: number) => {
85
106
  pageCount: 10,
86
107
  }}
87
108
  >
88
- {(args) => <Pagination {...args} />}
109
+ {(args) => <Pagination {...args} onPageChange={undefined} />}
89
110
  </Story>
90
111
  </Canvas>
91
112
 
@@ -123,7 +144,7 @@ const onPageChange = (selectedPage: number) => {
123
144
  pageCount: 100,
124
145
  }}
125
146
  >
126
- {(args) => <Pagination {...args} />}
147
+ {(args) => <Pagination {...args} getPageHref={undefined} />}
127
148
  </Story>
128
149
  </Canvas>
129
150
 
@@ -144,7 +165,7 @@ export function CurrentPagePaginationExample() {
144
165
  const handleClick = () => setPage(1);
145
166
  const handleSelection = (selectedPage) => setPage(selectedPage);
146
167
  return (
147
- <>
168
+ <VStack align="start" spacing={6}>
148
169
  <Pagination
149
170
  pageCount={10}
150
171
  currentPage={page}
@@ -153,7 +174,7 @@ export function CurrentPagePaginationExample() {
153
174
  <Button type="button" buttonType="primary" onClick={handleClick}>
154
175
  Go to Page 1
155
176
  </Button>
156
- </>
177
+ </VStack>
157
178
  );
158
179
  }
159
180
 
@@ -197,14 +197,64 @@ describe("Pagination", () => {
197
197
  />
198
198
  )
199
199
  .toJSON();
200
+ const withChakraProps = renderer
201
+ .create(
202
+ <Pagination
203
+ id="chakra"
204
+ pageCount={10}
205
+ initialPage={1}
206
+ getPageHref={getPageHref}
207
+ p="20px"
208
+ color="ui.error.primary"
209
+ />
210
+ )
211
+ .toJSON();
212
+ const withOtherProps = renderer
213
+ .create(
214
+ <Pagination
215
+ id="props"
216
+ pageCount={10}
217
+ initialPage={1}
218
+ getPageHref={getPageHref}
219
+ data-testid="props"
220
+ />
221
+ )
222
+ .toJSON();
200
223
 
201
224
  expect(firstPage).toMatchSnapshot();
202
225
  expect(lastPage).toMatchSnapshot();
203
226
  expect(middlePage).toMatchSnapshot();
227
+ expect(withChakraProps).toMatchSnapshot();
228
+ expect(withOtherProps).toMatchSnapshot();
204
229
  });
205
230
  });
206
231
 
207
232
  describe("Behavior", () => {
233
+ it("navigates to the appropriate page when the Next or Previous links are clicked", () => {
234
+ const onPageChange = (page: number) => (currentPage = page);
235
+ let currentPage = 3;
236
+
237
+ render(
238
+ <Pagination
239
+ pageCount={5}
240
+ initialPage={currentPage}
241
+ onPageChange={onPageChange}
242
+ />
243
+ );
244
+
245
+ let links = screen.getAllByRole("link");
246
+
247
+ // Previous link
248
+ userEvent.click(links[0]);
249
+ expect(currentPage).toEqual(2);
250
+
251
+ links = screen.getAllByRole("link");
252
+
253
+ // Next link
254
+ userEvent.click(links[links.length - 1]);
255
+ expect(currentPage).toEqual(3);
256
+ });
257
+
208
258
  it("updates the links href value when getPageHref is used", () => {
209
259
  const getPageHref = (page: number) => `?page=${page}`;
210
260
  render(
@@ -348,7 +398,9 @@ describe("Pagination", () => {
348
398
  />
349
399
  );
350
400
  expect(warn).toHaveBeenCalledWith(
351
- "NYPL Reservoir Pagination: Props for both `getPageHref` and `onPageChange` are passed. Will default to using `getPageHref`."
401
+ "NYPL Reservoir Pagination: Props for both `getPageHref` and " +
402
+ "`onPageChange` are passed. The component will default to using " +
403
+ "`getPageHref`."
352
404
  );
353
405
  });
354
406
 
@@ -359,7 +411,8 @@ describe("Pagination", () => {
359
411
  <Pagination pageCount={10} currentPage={2} getPageHref={getPageHref} />
360
412
  );
361
413
  expect(warn).toHaveBeenCalledWith(
362
- "NYPL Reservoir Pagination: The `currentPage` prop does not work with the `getPageHref` prop. Use `currentPage` with `onPageChange` instead."
414
+ "NYPL Reservoir Pagination: The `currentPage` prop does not work with " +
415
+ "the `getPageHref` prop. Use `currentPage` with `onPageChange` instead."
363
416
  );
364
417
  });
365
418
  });
@@ -1,12 +1,10 @@
1
+ import { Box, chakra, useMultiStyleConfig } from "@chakra-ui/react";
1
2
  import React, { useState, useRef } from "react";
2
- import { Box, useMultiStyleConfig } from "@chakra-ui/react";
3
3
 
4
4
  import Link from "../Link/Link";
5
5
  import List from "../List/List";
6
6
  import { ListTypes } from "../List/ListTypes";
7
7
  import { range } from "../../utils/utils";
8
- import generateUUID from "../../helpers/generateUUID";
9
-
10
8
  export interface PaginationProps {
11
9
  /** Additional className. */
12
10
  className?: string;
@@ -32,15 +30,16 @@ export interface PaginationProps {
32
30
  /**
33
31
  * A component that provides a navigational list of page items.
34
32
  */
35
- const Pagination: React.FC<PaginationProps> = (props: PaginationProps) => {
33
+ export const Pagination = chakra((props: PaginationProps) => {
36
34
  const {
37
35
  className,
38
36
  currentPage,
39
37
  getPageHref,
40
- id = generateUUID(),
38
+ id,
41
39
  initialPage = 1,
42
40
  onPageChange,
43
41
  pageCount,
42
+ ...rest
44
43
  } = props;
45
44
  const refCurrentPage = useRef(currentPage);
46
45
  const [selectedPage, setSelectedPage] = useState<number>(initialPage);
@@ -64,13 +63,16 @@ const Pagination: React.FC<PaginationProps> = (props: PaginationProps) => {
64
63
  }
65
64
  if (getPageHref && onPageChange) {
66
65
  console.warn(
67
- "NYPL Reservoir Pagination: Props for both `getPageHref` and `onPageChange` are passed. Will default to using `getPageHref`."
66
+ "NYPL Reservoir Pagination: Props for both `getPageHref` and " +
67
+ "`onPageChange` are passed. The component will default to using " +
68
+ "`getPageHref`."
68
69
  );
69
70
  }
70
71
 
71
72
  if (getPageHref && currentPage) {
72
73
  console.warn(
73
- "NYPL Reservoir Pagination: The `currentPage` prop does not work with the `getPageHref` prop. Use `currentPage` with `onPageChange` instead."
74
+ "NYPL Reservoir Pagination: The `currentPage` prop does not work with " +
75
+ "the `getPageHref` prop. Use `currentPage` with `onPageChange` instead."
74
76
  );
75
77
  }
76
78
 
@@ -96,7 +98,7 @@ const Pagination: React.FC<PaginationProps> = (props: PaginationProps) => {
96
98
  // Select the next page.
97
99
  const nextPage = (e: Event) => {
98
100
  if (selectedPage < pageCount) {
99
- handlePageClick(e, previousPageNumber);
101
+ handlePageClick(e, nextPageNumber);
100
102
  }
101
103
  };
102
104
  /**
@@ -248,6 +250,7 @@ const Pagination: React.FC<PaginationProps> = (props: PaginationProps) => {
248
250
  role="navigation"
249
251
  className={className}
250
252
  __css={styles}
253
+ {...rest}
251
254
  >
252
255
  <List type={ListTypes.Unordered} inline noStyling id={`${id}-list`}>
253
256
  {previousLiLink}
@@ -256,6 +259,6 @@ const Pagination: React.FC<PaginationProps> = (props: PaginationProps) => {
256
259
  </List>
257
260
  </Box>
258
261
  );
259
- };
262
+ });
260
263
 
261
264
  export default Pagination;