@nypl/design-system-react-components 0.25.13 → 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 (299) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +10 -10
  3. package/dist/components/Accordion/Accordion.d.ts +1 -1
  4. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  5. package/dist/components/Button/Button.d.ts +2 -2
  6. package/dist/components/Card/Card.d.ts +11 -9
  7. package/dist/components/Checkbox/Checkbox.d.ts +2 -2
  8. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +5 -4
  9. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
  10. package/dist/components/DatePicker/DatePicker.d.ts +5 -6
  11. package/dist/components/Fieldset/Fieldset.d.ts +5 -6
  12. package/dist/components/Form/Form.d.ts +6 -6
  13. package/dist/components/Grid/GridTypes.d.ts +7 -7
  14. package/dist/components/Grid/SimpleGrid.d.ts +1 -1
  15. package/dist/components/Heading/Heading.d.ts +1 -1
  16. package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
  17. package/dist/components/Hero/Hero.d.ts +2 -1
  18. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
  19. package/dist/components/Icons/Icon.d.ts +2 -1
  20. package/dist/components/Image/Image.d.ts +2 -2
  21. package/dist/components/Label/Label.d.ts +7 -4
  22. package/dist/components/Link/Link.d.ts +1 -1
  23. package/dist/components/List/List.d.ts +11 -11
  24. package/dist/components/List/ListTypes.d.ts +1 -1
  25. package/dist/components/Logo/Logo.d.ts +2 -1
  26. package/dist/components/Logo/LogoSvgs.d.ts +2 -0
  27. package/dist/components/Logo/LogoTypes.d.ts +2 -0
  28. package/dist/components/Notification/Notification.d.ts +4 -4
  29. package/dist/components/Pagination/Pagination.d.ts +2 -2
  30. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
  31. package/dist/components/Radio/Radio.d.ts +4 -6
  32. package/dist/components/RadioGroup/RadioGroup.d.ts +12 -6
  33. package/dist/components/SearchBar/SearchBar.d.ts +4 -4
  34. package/dist/components/Select/Select.d.ts +10 -6
  35. package/dist/components/Select/SelectTypes.d.ts +4 -0
  36. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +4 -3
  37. package/dist/components/Slider/Slider.d.ts +6 -4
  38. package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
  39. package/dist/components/StructuredContent/StructuredContent.d.ts +2 -2
  40. package/dist/components/Table/Table.d.ts +1 -1
  41. package/dist/components/Tabs/Tabs.d.ts +4 -3
  42. package/dist/components/Template/Template.d.ts +4 -3
  43. package/dist/components/Text/Text.d.ts +1 -1
  44. package/dist/components/TextInput/TextInput.d.ts +5 -5
  45. package/dist/components/Toggle/Toggle.d.ts +3 -4
  46. package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
  47. package/dist/design-system-react-components.cjs.development.js +1663 -1139
  48. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  49. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  50. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  51. package/dist/design-system-react-components.esm.js +1667 -1143
  52. package/dist/design-system-react-components.esm.js.map +1 -1
  53. package/dist/hooks/useCarouselStyles.d.ts +3 -2
  54. package/dist/hooks/useNYPLTheme.d.ts +12 -0
  55. package/dist/index.d.ts +4 -1
  56. package/dist/styles.css +1 -1
  57. package/dist/theme/components/button.d.ts +10 -2
  58. package/dist/theme/components/card.d.ts +42 -22
  59. package/dist/theme/components/checkbox.d.ts +5 -4
  60. package/dist/theme/components/checkboxGroup.d.ts +1 -1
  61. package/dist/theme/components/componentWrapper.d.ts +2 -2
  62. package/dist/theme/components/customTable.d.ts +84 -1
  63. package/dist/theme/components/fieldset.d.ts +4 -14
  64. package/dist/theme/components/global.d.ts +23 -17
  65. package/dist/theme/components/heading.d.ts +53 -0
  66. package/dist/theme/components/helperErrorText.d.ts +1 -0
  67. package/dist/theme/components/hero.d.ts +20 -14
  68. package/dist/theme/components/label.d.ts +9 -10
  69. package/dist/theme/components/list.d.ts +99 -9
  70. package/dist/theme/components/radio.d.ts +6 -4
  71. package/dist/theme/components/radioGroup.d.ts +1 -1
  72. package/dist/theme/components/select.d.ts +34 -5
  73. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  74. package/dist/theme/components/slider.d.ts +6 -3
  75. package/dist/theme/components/structuredContent.d.ts +197 -0
  76. package/dist/theme/components/textInput.d.ts +18 -6
  77. package/dist/theme/components/toggle.d.ts +7 -4
  78. package/dist/theme/foundations/global.d.ts +2 -0
  79. package/dist/theme/foundations/radii.d.ts +1 -0
  80. package/dist/theme/foundations/spacing.d.ts +46 -43
  81. package/package.json +5 -6
  82. package/src/components/Accordion/Accordion.stories.mdx +9 -9
  83. package/src/components/Accordion/Accordion.test.tsx +21 -0
  84. package/src/components/Accordion/Accordion.tsx +13 -9
  85. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +276 -27
  86. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  87. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +21 -5
  88. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +52 -31
  89. package/src/components/Breadcrumbs/Breadcrumbs.tsx +8 -7
  90. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +211 -12
  91. package/src/components/Button/Button.stories.mdx +87 -23
  92. package/src/components/Button/Button.test.tsx +25 -0
  93. package/src/components/Button/Button.tsx +18 -7
  94. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  95. package/src/components/Card/Card.stories.mdx +287 -194
  96. package/src/components/Card/Card.test.tsx +102 -0
  97. package/src/components/Card/Card.tsx +73 -32
  98. package/src/components/Card/__snapshots__/Card.test.tsx.snap +195 -35
  99. package/src/components/Chakra/Grid.stories.mdx +4 -4
  100. package/src/components/Checkbox/Checkbox.stories.mdx +62 -10
  101. package/src/components/Checkbox/Checkbox.test.tsx +32 -9
  102. package/src/components/Checkbox/Checkbox.tsx +20 -15
  103. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +134 -7
  104. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +65 -17
  105. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +137 -81
  106. package/src/components/CheckboxGroup/CheckboxGroup.tsx +31 -21
  107. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +332 -97
  108. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  109. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  110. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  111. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  112. package/src/components/DatePicker/DatePicker.test.tsx +89 -13
  113. package/src/components/DatePicker/DatePicker.tsx +62 -56
  114. package/src/components/DatePicker/_DatePicker.scss +71 -13
  115. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  116. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  117. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  118. package/src/components/Fieldset/Fieldset.tsx +35 -30
  119. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  120. package/src/components/Form/Form.stories.mdx +72 -39
  121. package/src/components/Form/Form.test.tsx +58 -15
  122. package/src/components/Form/Form.tsx +89 -67
  123. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  124. package/src/components/Grid/GridTypes.tsx +7 -7
  125. package/src/components/Grid/SimpleGrid.stories.mdx +34 -6
  126. package/src/components/Grid/SimpleGrid.test.tsx +9 -0
  127. package/src/components/Grid/SimpleGrid.tsx +29 -20
  128. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  129. package/src/components/Heading/Heading.stories.mdx +36 -3
  130. package/src/components/Heading/Heading.test.tsx +10 -0
  131. package/src/components/Heading/Heading.tsx +56 -50
  132. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +26 -7
  133. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  134. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  135. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  136. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  137. package/src/components/Hero/Hero.stories.mdx +125 -95
  138. package/src/components/Hero/Hero.test.tsx +33 -0
  139. package/src/components/Hero/Hero.tsx +135 -126
  140. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  141. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  142. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -19
  143. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -26
  144. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  145. package/src/components/Icons/Icon.stories.mdx +31 -6
  146. package/src/components/Icons/Icon.test.tsx +38 -0
  147. package/src/components/Icons/Icon.tsx +93 -76
  148. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  149. package/src/components/Image/Image.stories.mdx +29 -5
  150. package/src/components/Image/Image.test.tsx +8 -0
  151. package/src/components/Image/Image.tsx +38 -26
  152. package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
  153. package/src/components/Label/Label.stories.mdx +42 -20
  154. package/src/components/Label/Label.test.tsx +42 -17
  155. package/src/components/Label/Label.tsx +22 -13
  156. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  157. package/src/components/Link/Link.stories.mdx +25 -1
  158. package/src/components/Link/Link.test.tsx +21 -0
  159. package/src/components/Link/Link.tsx +8 -8
  160. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  161. package/src/components/List/List.stories.mdx +75 -40
  162. package/src/components/List/List.test.tsx +67 -19
  163. package/src/components/List/List.tsx +38 -25
  164. package/src/components/List/ListTypes.tsx +1 -1
  165. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  166. package/src/components/Logo/Logo.stories.mdx +30 -6
  167. package/src/components/Logo/Logo.test.tsx +17 -0
  168. package/src/components/Logo/Logo.tsx +18 -6
  169. package/src/components/Logo/LogoSvgs.tsx +4 -0
  170. package/src/components/Logo/LogoTypes.tsx +2 -0
  171. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  172. package/src/components/Modal/Modal.stories.mdx +13 -0
  173. package/src/components/Notification/Notification.stories.mdx +25 -1
  174. package/src/components/Notification/Notification.test.tsx +23 -0
  175. package/src/components/Notification/Notification.tsx +46 -44
  176. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
  177. package/src/components/Pagination/Pagination.stories.mdx +24 -4
  178. package/src/components/Pagination/Pagination.test.tsx +25 -0
  179. package/src/components/Pagination/Pagination.tsx +6 -6
  180. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +244 -27
  181. package/src/components/Placeholder/Placeholder.tsx +3 -1
  182. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  183. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +81 -11
  184. package/src/components/ProgressIndicator/ProgressIndicator.tsx +17 -9
  185. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  186. package/src/components/Radio/Radio.stories.mdx +64 -12
  187. package/src/components/Radio/Radio.test.tsx +28 -8
  188. package/src/components/Radio/Radio.tsx +66 -63
  189. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +103 -6
  190. package/src/components/RadioGroup/RadioGroup.stories.mdx +224 -89
  191. package/src/components/RadioGroup/RadioGroup.test.tsx +122 -62
  192. package/src/components/RadioGroup/RadioGroup.tsx +106 -100
  193. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1236 -1020
  194. package/src/components/SearchBar/SearchBar.stories.mdx +101 -36
  195. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +46 -4
  196. package/src/components/SearchBar/SearchBar.tsx +17 -8
  197. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  198. package/src/components/Select/Select.stories.mdx +128 -49
  199. package/src/components/Select/Select.test.tsx +63 -16
  200. package/src/components/Select/Select.tsx +125 -92
  201. package/src/components/Select/SelectTypes.tsx +5 -0
  202. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  203. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +42 -10
  204. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +8 -0
  205. package/src/components/SkeletonLoader/SkeletonLoader.tsx +76 -72
  206. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  207. package/src/components/Slider/Slider.stories.mdx +91 -42
  208. package/src/components/Slider/Slider.test.tsx +65 -17
  209. package/src/components/Slider/Slider.tsx +26 -19
  210. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  211. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  212. package/src/components/StatusBadge/StatusBadge.test.tsx +16 -0
  213. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  214. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  215. package/src/components/StructuredContent/StructuredContent.stories.mdx +131 -12
  216. package/src/components/StructuredContent/StructuredContent.test.tsx +34 -0
  217. package/src/components/StructuredContent/StructuredContent.tsx +80 -75
  218. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  219. package/src/components/StyleGuide/Bidirectionality.stories.mdx +5 -5
  220. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  221. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  222. package/src/components/StyleGuide/ColorCard.tsx +1 -1
  223. package/src/components/StyleGuide/Colors.stories.mdx +1 -2
  224. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  225. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  226. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  227. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  228. package/src/components/StyleGuide/Typography.stories.mdx +30 -21
  229. package/src/components/Table/Table.stories.mdx +38 -11
  230. package/src/components/Table/Table.test.tsx +15 -0
  231. package/src/components/Table/Table.tsx +7 -7
  232. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  233. package/src/components/Tabs/Tabs.stories.mdx +52 -3
  234. package/src/components/Tabs/Tabs.test.tsx +16 -0
  235. package/src/components/Tabs/Tabs.tsx +10 -6
  236. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  237. package/src/components/Template/Template.stories.mdx +47 -43
  238. package/src/components/Template/Template.test.tsx +33 -0
  239. package/src/components/Template/Template.tsx +65 -60
  240. package/src/components/Template/__snapshots__/Template.test.tsx.snap +191 -20
  241. package/src/components/Text/Text.stories.mdx +20 -1
  242. package/src/components/Text/Text.test.tsx +12 -0
  243. package/src/components/Text/Text.tsx +6 -4
  244. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  245. package/src/components/TextInput/TextInput.stories.mdx +65 -19
  246. package/src/components/TextInput/TextInput.test.tsx +42 -28
  247. package/src/components/TextInput/TextInput.tsx +121 -113
  248. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  249. package/src/components/Toggle/Toggle.stories.mdx +80 -22
  250. package/src/components/Toggle/Toggle.test.tsx +27 -9
  251. package/src/components/Toggle/Toggle.tsx +22 -18
  252. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +128 -5
  253. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  254. package/src/components/VideoPlayer/VideoPlayer.test.tsx +23 -0
  255. package/src/components/VideoPlayer/VideoPlayer.tsx +133 -126
  256. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  257. package/src/docs/Chakra.stories.mdx +50 -9
  258. package/src/docs/Welcome.stories.mdx +160 -41
  259. package/src/hooks/useCarouselStyles.stories.mdx +22 -2
  260. package/src/hooks/useCarouselStyles.ts +3 -2
  261. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  262. package/src/hooks/useNYPLTheme.ts +30 -6
  263. package/src/hooks/useWindowSize.stories.mdx +23 -0
  264. package/src/index.ts +4 -1
  265. package/src/styles/base/_place-holder.scss +1 -1
  266. package/src/theme/components/button.ts +15 -7
  267. package/src/theme/components/card.ts +30 -19
  268. package/src/theme/components/checkbox.ts +10 -8
  269. package/src/theme/components/checkboxGroup.ts +1 -1
  270. package/src/theme/components/componentWrapper.ts +2 -2
  271. package/src/theme/components/customTable.ts +39 -31
  272. package/src/theme/components/fieldset.ts +1 -2
  273. package/src/theme/components/global.ts +25 -20
  274. package/src/theme/components/heading.ts +1 -1
  275. package/src/theme/components/helperErrorText.ts +1 -0
  276. package/src/theme/components/hero.ts +13 -15
  277. package/src/theme/components/label.ts +4 -3
  278. package/src/theme/components/list.ts +73 -66
  279. package/src/theme/components/notification.ts +2 -2
  280. package/src/theme/components/radio.ts +9 -9
  281. package/src/theme/components/radioGroup.ts +1 -1
  282. package/src/theme/components/select.ts +35 -22
  283. package/src/theme/components/skeletonLoader.ts +3 -3
  284. package/src/theme/components/slider.ts +8 -7
  285. package/src/theme/components/statusBadge.ts +2 -2
  286. package/src/theme/components/structuredContent.ts +66 -1
  287. package/src/theme/components/tabs.ts +2 -2
  288. package/src/theme/components/template.ts +9 -9
  289. package/src/theme/components/textInput.ts +13 -12
  290. package/src/theme/components/toggle.ts +17 -10
  291. package/src/theme/components/videoPlayer.ts +1 -1
  292. package/src/theme/foundations/colors.ts +1 -1
  293. package/src/theme/foundations/radii.ts +1 -0
  294. package/src/theme/foundations/spacing.ts +70 -22
  295. package/src/theme/foundations/typography.ts +2 -2
  296. package/src/utils/componentCategories.ts +1 -2
  297. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  298. package/dist/helpers/generateUUID.d.ts +0 -1
  299. 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
+ `;
@@ -44,7 +44,16 @@ export const hrefProps = getStorybookHrefProps(10);
44
44
  | Component Version | DS Version |
45
45
  | ----------------- | ---------- |
46
46
  | Added | `0.0.10` |
47
- | Latest | `0.25.13` |
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
48
57
 
49
58
  <Description of={Pagination} />
50
59
 
@@ -52,7 +61,18 @@ The `Pagination` component helps navigate between pages of a multi-page
52
61
  application. It is commonly used on a search results page. Update the `pageCount`
53
62
  prop in the Controls to explore this component with many or few pages.
54
63
 
55
- 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/)
56
76
 
57
77
  ## Pagination with URL Updates
58
78
 
@@ -86,7 +106,7 @@ const getPageHref = (selectedPage: number) => {
86
106
  pageCount: 10,
87
107
  }}
88
108
  >
89
- {(args) => <Pagination {...args} />}
109
+ {(args) => <Pagination {...args} onPageChange={undefined} />}
90
110
  </Story>
91
111
  </Canvas>
92
112
 
@@ -124,7 +144,7 @@ const onPageChange = (selectedPage: number) => {
124
144
  pageCount: 100,
125
145
  }}
126
146
  >
127
- {(args) => <Pagination {...args} />}
147
+ {(args) => <Pagination {...args} getPageHref={undefined} />}
128
148
  </Story>
129
149
  </Canvas>
130
150
 
@@ -197,10 +197,35 @@ 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
 
@@ -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);
@@ -251,6 +250,7 @@ const Pagination: React.FC<PaginationProps> = (props: PaginationProps) => {
251
250
  role="navigation"
252
251
  className={className}
253
252
  __css={styles}
253
+ {...rest}
254
254
  >
255
255
  <List type={ListTypes.Unordered} inline noStyling id={`${id}-list`}>
256
256
  {previousLiLink}
@@ -259,6 +259,6 @@ const Pagination: React.FC<PaginationProps> = (props: PaginationProps) => {
259
259
  </List>
260
260
  </Box>
261
261
  );
262
- };
262
+ });
263
263
 
264
264
  export default Pagination;