@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[`Table renders the UI snapshot correctly 1`] = `
4
4
  <table
5
- className="chakra-table css-0"
5
+ className="chakra-table css-1xdhyk6"
6
6
  id="basic"
7
7
  role="table"
8
8
  >
@@ -203,7 +203,7 @@ exports[`Table renders the UI snapshot correctly 1`] = `
203
203
 
204
204
  exports[`Table renders the UI snapshot correctly 2`] = `
205
205
  <table
206
- className="chakra-table css-0"
206
+ className="chakra-table css-1xdhyk6"
207
207
  id="withCaption"
208
208
  role="table"
209
209
  >
@@ -409,7 +409,7 @@ exports[`Table renders the UI snapshot correctly 2`] = `
409
409
 
410
410
  exports[`Table renders the UI snapshot correctly 3`] = `
411
411
  <table
412
- className="chakra-table css-0"
412
+ className="chakra-table css-1xdhyk6"
413
413
  id="withHeaders"
414
414
  role="table"
415
415
  >
@@ -666,7 +666,7 @@ exports[`Table renders the UI snapshot correctly 3`] = `
666
666
 
667
667
  exports[`Table renders the UI snapshot correctly 4`] = `
668
668
  <table
669
- className="chakra-table css-0"
669
+ className="chakra-table css-1xdhyk6"
670
670
  id="withHeaders"
671
671
  role="table"
672
672
  >
@@ -923,7 +923,7 @@ exports[`Table renders the UI snapshot correctly 4`] = `
923
923
 
924
924
  exports[`Table renders the UI snapshot correctly 5`] = `
925
925
  <table
926
- className="chakra-table css-0"
926
+ className="chakra-table css-1xdhyk6"
927
927
  id="withHeaders"
928
928
  role="table"
929
929
  >
@@ -1177,3 +1177,406 @@ exports[`Table renders the UI snapshot correctly 5`] = `
1177
1177
  </tbody>
1178
1178
  </table>
1179
1179
  `;
1180
+
1181
+ exports[`Table renders the UI snapshot correctly 6`] = `
1182
+ <table
1183
+ className="chakra-table css-kle7zy"
1184
+ id="chakra"
1185
+ role="table"
1186
+ >
1187
+ <tbody
1188
+ className="css-0"
1189
+ >
1190
+ <tr
1191
+ className="css-0"
1192
+ role="row"
1193
+ >
1194
+ <td
1195
+ className="css-0"
1196
+ role="gridcell"
1197
+ >
1198
+ Tom
1199
+ </td>
1200
+ <td
1201
+ className="css-0"
1202
+ role="gridcell"
1203
+ >
1204
+ Nook
1205
+ </td>
1206
+ <td
1207
+ className="css-0"
1208
+ role="gridcell"
1209
+ >
1210
+ Tanukichi
1211
+ </td>
1212
+ <td
1213
+ className="css-0"
1214
+ role="gridcell"
1215
+ >
1216
+ Main Street
1217
+ </td>
1218
+ <td
1219
+ className="css-0"
1220
+ role="gridcell"
1221
+ >
1222
+ New York
1223
+ </td>
1224
+ <td
1225
+ className="css-0"
1226
+ role="gridcell"
1227
+ >
1228
+ 23458
1229
+ </td>
1230
+ <td
1231
+ className="css-0"
1232
+ role="gridcell"
1233
+ >
1234
+ NY
1235
+ </td>
1236
+ </tr>
1237
+ <tr
1238
+ className="css-0"
1239
+ role="row"
1240
+ >
1241
+ <td
1242
+ className="css-0"
1243
+ role="gridcell"
1244
+ >
1245
+ Isabelle
1246
+ </td>
1247
+ <td
1248
+ className="css-0"
1249
+ role="gridcell"
1250
+ >
1251
+ -
1252
+ </td>
1253
+ <td
1254
+ className="css-0"
1255
+ role="gridcell"
1256
+ >
1257
+ Shizue
1258
+ </td>
1259
+ <td
1260
+ className="css-0"
1261
+ role="gridcell"
1262
+ >
1263
+ Walnut Street
1264
+ </td>
1265
+ <td
1266
+ className="css-0"
1267
+ role="gridcell"
1268
+ >
1269
+ New York
1270
+ </td>
1271
+ <td
1272
+ className="css-0"
1273
+ role="gridcell"
1274
+ >
1275
+ 23458
1276
+ </td>
1277
+ <td
1278
+ className="css-0"
1279
+ role="gridcell"
1280
+ >
1281
+ NY
1282
+ </td>
1283
+ </tr>
1284
+ <tr
1285
+ className="css-0"
1286
+ role="row"
1287
+ >
1288
+ <td
1289
+ className="css-0"
1290
+ role="gridcell"
1291
+ >
1292
+ K.K.
1293
+ </td>
1294
+ <td
1295
+ className="css-0"
1296
+ role="gridcell"
1297
+ >
1298
+ Slider
1299
+ </td>
1300
+ <td
1301
+ className="css-0"
1302
+ role="gridcell"
1303
+ >
1304
+ Totakeke
1305
+ </td>
1306
+ <td
1307
+ className="css-0"
1308
+ role="gridcell"
1309
+ >
1310
+ Niper Place
1311
+ </td>
1312
+ <td
1313
+ className="css-0"
1314
+ role="gridcell"
1315
+ >
1316
+ New York
1317
+ </td>
1318
+ <td
1319
+ className="css-0"
1320
+ role="gridcell"
1321
+ >
1322
+ 98765
1323
+ </td>
1324
+ <td
1325
+ className="css-0"
1326
+ role="gridcell"
1327
+ >
1328
+ NY
1329
+ </td>
1330
+ </tr>
1331
+ <tr
1332
+ className="css-0"
1333
+ role="row"
1334
+ >
1335
+ <td
1336
+ className="css-0"
1337
+ role="gridcell"
1338
+ >
1339
+ Sonny
1340
+ </td>
1341
+ <td
1342
+ className="css-0"
1343
+ role="gridcell"
1344
+ >
1345
+ Resetti
1346
+ </td>
1347
+ <td
1348
+ className="css-0"
1349
+ role="gridcell"
1350
+ >
1351
+ Risetto san
1352
+ </td>
1353
+ <td
1354
+ className="css-0"
1355
+ role="gridcell"
1356
+ >
1357
+ Village Road
1358
+ </td>
1359
+ <td
1360
+ className="css-0"
1361
+ role="gridcell"
1362
+ >
1363
+ New York
1364
+ </td>
1365
+ <td
1366
+ className="css-0"
1367
+ role="gridcell"
1368
+ >
1369
+ 09873
1370
+ </td>
1371
+ <td
1372
+ className="css-0"
1373
+ role="gridcell"
1374
+ >
1375
+ NY
1376
+ </td>
1377
+ </tr>
1378
+ </tbody>
1379
+ </table>
1380
+ `;
1381
+
1382
+ exports[`Table renders the UI snapshot correctly 7`] = `
1383
+ <table
1384
+ className="chakra-table css-1xdhyk6"
1385
+ data-testid="props"
1386
+ id="props"
1387
+ role="table"
1388
+ >
1389
+ <tbody
1390
+ className="css-0"
1391
+ >
1392
+ <tr
1393
+ className="css-0"
1394
+ role="row"
1395
+ >
1396
+ <td
1397
+ className="css-0"
1398
+ role="gridcell"
1399
+ >
1400
+ Tom
1401
+ </td>
1402
+ <td
1403
+ className="css-0"
1404
+ role="gridcell"
1405
+ >
1406
+ Nook
1407
+ </td>
1408
+ <td
1409
+ className="css-0"
1410
+ role="gridcell"
1411
+ >
1412
+ Tanukichi
1413
+ </td>
1414
+ <td
1415
+ className="css-0"
1416
+ role="gridcell"
1417
+ >
1418
+ Main Street
1419
+ </td>
1420
+ <td
1421
+ className="css-0"
1422
+ role="gridcell"
1423
+ >
1424
+ New York
1425
+ </td>
1426
+ <td
1427
+ className="css-0"
1428
+ role="gridcell"
1429
+ >
1430
+ 23458
1431
+ </td>
1432
+ <td
1433
+ className="css-0"
1434
+ role="gridcell"
1435
+ >
1436
+ NY
1437
+ </td>
1438
+ </tr>
1439
+ <tr
1440
+ className="css-0"
1441
+ role="row"
1442
+ >
1443
+ <td
1444
+ className="css-0"
1445
+ role="gridcell"
1446
+ >
1447
+ Isabelle
1448
+ </td>
1449
+ <td
1450
+ className="css-0"
1451
+ role="gridcell"
1452
+ >
1453
+ -
1454
+ </td>
1455
+ <td
1456
+ className="css-0"
1457
+ role="gridcell"
1458
+ >
1459
+ Shizue
1460
+ </td>
1461
+ <td
1462
+ className="css-0"
1463
+ role="gridcell"
1464
+ >
1465
+ Walnut Street
1466
+ </td>
1467
+ <td
1468
+ className="css-0"
1469
+ role="gridcell"
1470
+ >
1471
+ New York
1472
+ </td>
1473
+ <td
1474
+ className="css-0"
1475
+ role="gridcell"
1476
+ >
1477
+ 23458
1478
+ </td>
1479
+ <td
1480
+ className="css-0"
1481
+ role="gridcell"
1482
+ >
1483
+ NY
1484
+ </td>
1485
+ </tr>
1486
+ <tr
1487
+ className="css-0"
1488
+ role="row"
1489
+ >
1490
+ <td
1491
+ className="css-0"
1492
+ role="gridcell"
1493
+ >
1494
+ K.K.
1495
+ </td>
1496
+ <td
1497
+ className="css-0"
1498
+ role="gridcell"
1499
+ >
1500
+ Slider
1501
+ </td>
1502
+ <td
1503
+ className="css-0"
1504
+ role="gridcell"
1505
+ >
1506
+ Totakeke
1507
+ </td>
1508
+ <td
1509
+ className="css-0"
1510
+ role="gridcell"
1511
+ >
1512
+ Niper Place
1513
+ </td>
1514
+ <td
1515
+ className="css-0"
1516
+ role="gridcell"
1517
+ >
1518
+ New York
1519
+ </td>
1520
+ <td
1521
+ className="css-0"
1522
+ role="gridcell"
1523
+ >
1524
+ 98765
1525
+ </td>
1526
+ <td
1527
+ className="css-0"
1528
+ role="gridcell"
1529
+ >
1530
+ NY
1531
+ </td>
1532
+ </tr>
1533
+ <tr
1534
+ className="css-0"
1535
+ role="row"
1536
+ >
1537
+ <td
1538
+ className="css-0"
1539
+ role="gridcell"
1540
+ >
1541
+ Sonny
1542
+ </td>
1543
+ <td
1544
+ className="css-0"
1545
+ role="gridcell"
1546
+ >
1547
+ Resetti
1548
+ </td>
1549
+ <td
1550
+ className="css-0"
1551
+ role="gridcell"
1552
+ >
1553
+ Risetto san
1554
+ </td>
1555
+ <td
1556
+ className="css-0"
1557
+ role="gridcell"
1558
+ >
1559
+ Village Road
1560
+ </td>
1561
+ <td
1562
+ className="css-0"
1563
+ role="gridcell"
1564
+ >
1565
+ New York
1566
+ </td>
1567
+ <td
1568
+ className="css-0"
1569
+ role="gridcell"
1570
+ >
1571
+ 09873
1572
+ </td>
1573
+ <td
1574
+ className="css-0"
1575
+ role="gridcell"
1576
+ >
1577
+ NY
1578
+ </td>
1579
+ </tr>
1580
+ </tbody>
1581
+ </table>
1582
+ `;
@@ -7,7 +7,7 @@ import {
7
7
  } from "@storybook/addon-docs";
8
8
  import { withDesign } from "storybook-addon-designs";
9
9
 
10
- import { Tabs, TabList, Tab, TabPanels, TabPanel } from "./Tabs";
10
+ import Tabs, { TabList, Tab, TabPanels, TabPanel } from "./Tabs";
11
11
  import { getCategory } from "../../utils/componentCategories";
12
12
  import DSProvider from "../../theme/provider";
13
13
 
@@ -41,7 +41,20 @@ import DSProvider from "../../theme/provider";
41
41
  | Component Version | DS Version |
42
42
  | ----------------- | ---------- |
43
43
  | Added | `0.24.0` |
44
- | Latest | `0.25.13` |
44
+ | Latest | `0.26.0` |
45
+
46
+ ## Table of Contents
47
+
48
+ - [Overview](#overview)
49
+ - [Component Props](#component-props)
50
+ - [Accessibility](#accessibility)
51
+ - [Composing with a Data Object](#composing-with-a-data-object)
52
+ - [Responsive Mobile Carousel](#responsive-mobile-carousel)
53
+ - [With Callback Event Function](#with-callback-event-function)
54
+ - [With URL Hash Option](#with-url-hash-option)
55
+ - [With Children Components](#with-children-components)
56
+
57
+ ## Overview
45
58
 
46
59
  <Description of={Tabs} />
47
60
 
@@ -91,6 +104,8 @@ export const animalCrossing = [
91
104
  },
92
105
  ];
93
106
 
107
+ ## Component Props
108
+
94
109
  <Canvas withToolbar>
95
110
  <Story
96
111
  name="Tabs with Controls"
@@ -108,6 +123,40 @@ export const animalCrossing = [
108
123
 
109
124
  <ArgsTable story="Tabs with Controls" />
110
125
 
126
+ ## Accessibility
127
+
128
+ Using the DS `Tabs` component renders HTML for button tabs and panels that are
129
+ associated with each other. In order to simplify the content and reduce cognitive
130
+ load for a user, we recommend to not use more than a six (6) button tabs and
131
+ panels. Likewise, button tab labels should be clear and concise. Do not use
132
+ icons for tab labels.
133
+
134
+ The `Tabs` component is fully accessible through keyboard usage. The initial focus
135
+ on the UI is set on the first tab. To move between tabs, use the left and right
136
+ key arrows. The `home` key can be used to navigate to the first tab and the `end`
137
+ key can be used to navigate to the last tab. To move from a tab to its panel,
138
+ use the `tab` key. Likewise, use the `tab + shift` key combination to move from
139
+ the panel to its tab. A user cannot navigate between panels; they must navigate
140
+ through the tabs.
141
+
142
+ This `Tabs` component is implemented with Chakra UI and this library handles the
143
+ appropriate `aria-selected` and `aria-controls` attributes for the tabs, the
144
+ related `aria-labelledby` and `id` attributes for the panels, and the `tablist`,
145
+ `tab`, and `tabpanel` roles for the relevant HTML elements.
146
+
147
+ ### Mobile Carousel
148
+
149
+ When viewing the `Tabs` component on a narrow screen, an additional carousel
150
+ interface is wrapped around the button tabs. "Next" and "Previous" arrow buttons
151
+ slide the view of the tabs to the left and right, but all initial functionality
152
+ for the `Tabs` component doesn't change.
153
+
154
+ Resources:
155
+
156
+ - [Inclusive Design Tabbed Interfaces](https://inclusive-components.design/tabbed-interfaces/)
157
+ - [W3C WAI Example of Tabs with Automatic Activation](https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html)
158
+ - [Chakra UI Tabs](https://chakra-ui.com/docs/components/disclosure/tabs)
159
+
111
160
  ## Composing with a Data Object
112
161
 
113
162
  _Note: this is the recommended approach._
@@ -116,7 +165,7 @@ We recommended passing in the data for the `Tabs` component through the `data`
116
165
  prop. This allows the consumer to pass in well-formed data and always generate
117
166
  the correct DOM.
118
167
 
119
- Internally in the DS `Tabs` component:
168
+ Internally in the Reservoir Design System (DS) `Tabs` component:
120
169
 
121
170
  - we map through the data array and generate the appropriate components needed
122
171
  for the layout.
@@ -277,6 +277,22 @@ describe("Tabs", () => {
277
277
  const basic = renderer
278
278
  .create(<Tabs tabsData={animalCrossing} id="basic" />)
279
279
  .toJSON();
280
+ const withChakraProps = renderer
281
+ .create(
282
+ <Tabs
283
+ tabsData={animalCrossing}
284
+ id="chakra"
285
+ p="20px"
286
+ color="ui.error.primary"
287
+ />
288
+ )
289
+ .toJSON();
290
+ const withOtherProps = renderer
291
+ .create(<Tabs tabsData={animalCrossing} id="props" data-testid="props" />)
292
+ .toJSON();
293
+
280
294
  expect(basic).toMatchSnapshot();
295
+ expect(withChakraProps).toMatchSnapshot();
296
+ expect(withOtherProps).toMatchSnapshot();
281
297
  });
282
298
  });
@@ -1,6 +1,6 @@
1
- import * as React from "react";
2
1
  import {
3
2
  Box,
3
+ chakra,
4
4
  Tab,
5
5
  TabList,
6
6
  TabPanels,
@@ -8,8 +8,8 @@ import {
8
8
  Tabs as ChakraTabs,
9
9
  useMultiStyleConfig,
10
10
  } from "@chakra-ui/react";
11
+ import * as React from "react";
11
12
 
12
- import generateUUID from "../../helpers/generateUUID";
13
13
  import { IconNames, IconRotationTypes, IconSizes } from "../Icons/IconTypes";
14
14
  import Icon from "../Icons/Icon";
15
15
  import { ButtonTypes } from "../Button/ButtonTypes";
@@ -139,14 +139,15 @@ const getElementsFromChildren = (children): TabPanelProps => {
139
139
  * Renders Chakra's `Tab` component with specific variants, props,
140
140
  * and controlled styling.
141
141
  */
142
- function Tabs(props: React.PropsWithChildren<TabsProps>) {
142
+ export const Tabs = chakra((props: React.PropsWithChildren<TabsProps>) => {
143
143
  const {
144
144
  children,
145
145
  defaultIndex = 0,
146
- id = generateUUID(),
146
+ id,
147
147
  onChange,
148
148
  tabsData,
149
149
  useHash = false,
150
+ ...rest
150
151
  } = props;
151
152
  const styles = useMultiStyleConfig("Tabs", {});
152
153
  // Just an estimate of the tab width for the mobile carousel.
@@ -238,6 +239,7 @@ function Tabs(props: React.PropsWithChildren<TabsProps>) {
238
239
  isLazy
239
240
  onChange={onChange}
240
241
  variant="enclosed"
242
+ {...rest}
241
243
  >
242
244
  <Box
243
245
  __css={styles.tablistWrapper}
@@ -256,6 +258,8 @@ function Tabs(props: React.PropsWithChildren<TabsProps>) {
256
258
  {panels}
257
259
  </ChakraTabs>
258
260
  );
259
- }
261
+ });
260
262
 
261
- export { Tabs, TabList, Tab, TabPanels, TabPanel };
263
+ // Tabs is also exported above so the props can display in Storybook.
264
+ export { TabList, Tab, TabPanels, TabPanel };
265
+ export default Tabs;