@nypl/design-system-react-components 0.25.11 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/README.md +14 -26
  3. package/dist/components/Accordion/Accordion.d.ts +6 -4
  4. package/dist/components/Accordion/AccordionTypes.d.ts +5 -0
  5. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -4
  6. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +2 -1
  7. package/dist/components/Button/Button.d.ts +2 -2
  8. package/dist/components/Card/Card.d.ts +22 -29
  9. package/dist/components/Checkbox/Checkbox.d.ts +3 -3
  10. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +9 -6
  11. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
  12. package/dist/components/DatePicker/DatePicker.d.ts +5 -6
  13. package/dist/components/Fieldset/Fieldset.d.ts +5 -6
  14. package/dist/components/Form/Form.d.ts +6 -6
  15. package/dist/components/Grid/GridTypes.d.ts +7 -7
  16. package/dist/components/Grid/SimpleGrid.d.ts +1 -1
  17. package/dist/components/Heading/Heading.d.ts +5 -5
  18. package/dist/components/Heading/HeadingTypes.d.ts +1 -1
  19. package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
  20. package/dist/components/Hero/Hero.d.ts +9 -5
  21. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
  22. package/dist/components/Icons/Icon.d.ts +2 -1
  23. package/dist/components/Icons/IconTypes.d.ts +10 -7
  24. package/dist/components/Image/Image.d.ts +27 -9
  25. package/dist/components/Image/ImageTypes.d.ts +4 -4
  26. package/dist/components/Label/Label.d.ts +7 -4
  27. package/dist/components/Link/Link.d.ts +1 -1
  28. package/dist/components/List/List.d.ts +11 -11
  29. package/dist/components/List/ListTypes.d.ts +1 -1
  30. package/dist/components/Logo/Logo.d.ts +2 -1
  31. package/dist/components/Logo/LogoSvgs.d.ts +8 -0
  32. package/dist/components/Logo/LogoTypes.d.ts +10 -2
  33. package/dist/components/Notification/Notification.d.ts +7 -7
  34. package/dist/components/Pagination/Pagination.d.ts +8 -4
  35. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
  36. package/dist/components/Radio/Radio.d.ts +5 -7
  37. package/dist/components/RadioGroup/RadioGroup.d.ts +16 -8
  38. package/dist/components/SearchBar/SearchBar.d.ts +5 -5
  39. package/dist/components/Select/Select.d.ts +12 -8
  40. package/dist/components/Select/SelectTypes.d.ts +4 -0
  41. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -6
  42. package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +0 -4
  43. package/dist/components/Slider/Slider.d.ts +6 -4
  44. package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
  45. package/dist/components/StructuredContent/StructuredContent.d.ts +10 -23
  46. package/dist/components/Table/Table.d.ts +1 -1
  47. package/dist/components/Tabs/Tabs.d.ts +7 -6
  48. package/dist/components/Template/Template.d.ts +18 -9
  49. package/dist/components/Text/Text.d.ts +4 -4
  50. package/dist/components/Text/TextTypes.d.ts +1 -1
  51. package/dist/components/TextInput/TextInput.d.ts +7 -7
  52. package/dist/components/Toggle/Toggle.d.ts +8 -10
  53. package/dist/components/Toggle/{ToggleSizes.d.ts → ToggleTypes.d.ts} +1 -1
  54. package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
  55. package/dist/design-system-react-components.cjs.development.js +2802 -1686
  56. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  57. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  58. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  59. package/dist/design-system-react-components.esm.js +2811 -1699
  60. package/dist/design-system-react-components.esm.js.map +1 -1
  61. package/dist/helpers/enums.d.ts +4 -0
  62. package/dist/hooks/useCarouselStyles.d.ts +3 -2
  63. package/dist/hooks/useNYPLTheme.d.ts +12 -0
  64. package/dist/index.d.ts +11 -9
  65. package/dist/styles.css +1 -1
  66. package/dist/theme/components/accordion.d.ts +7 -12
  67. package/dist/theme/components/breadcrumb.d.ts +6 -0
  68. package/dist/theme/components/button.d.ts +10 -2
  69. package/dist/theme/components/card.d.ts +44 -24
  70. package/dist/theme/components/checkbox.d.ts +6 -6
  71. package/dist/theme/components/checkboxGroup.d.ts +4 -2
  72. package/dist/theme/components/componentWrapper.d.ts +2 -2
  73. package/dist/theme/components/customTable.d.ts +84 -1
  74. package/dist/theme/components/fieldset.d.ts +6 -14
  75. package/dist/theme/components/global.d.ts +37 -29
  76. package/dist/theme/components/globalMixins.d.ts +8 -8
  77. package/dist/theme/components/heading.d.ts +53 -0
  78. package/dist/theme/components/helperErrorText.d.ts +1 -0
  79. package/dist/theme/components/hero.d.ts +21 -15
  80. package/dist/theme/components/image.d.ts +1 -1
  81. package/dist/theme/components/label.d.ts +9 -10
  82. package/dist/theme/components/list.d.ts +105 -9
  83. package/dist/theme/components/notification.d.ts +7 -4
  84. package/dist/theme/components/pagination.d.ts +2 -5
  85. package/dist/theme/components/radio.d.ts +10 -6
  86. package/dist/theme/components/radioGroup.d.ts +4 -2
  87. package/dist/theme/components/select.d.ts +38 -13
  88. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  89. package/dist/theme/components/slider.d.ts +14 -7
  90. package/dist/theme/components/structuredContent.d.ts +197 -0
  91. package/dist/theme/components/textInput.d.ts +22 -14
  92. package/dist/theme/components/toggle.d.ts +25 -6
  93. package/dist/theme/foundations/global.d.ts +33 -3
  94. package/dist/theme/foundations/radii.d.ts +1 -0
  95. package/dist/theme/foundations/spacing.d.ts +46 -43
  96. package/dist/utils/utils.d.ts +10 -0
  97. package/package.json +5 -6
  98. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +34 -0
  99. package/src/components/Accordion/Accordion.stories.mdx +150 -66
  100. package/src/components/Accordion/Accordion.test.tsx +65 -17
  101. package/src/components/Accordion/Accordion.tsx +61 -27
  102. package/src/components/Accordion/AccordionTypes.tsx +5 -0
  103. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +505 -14
  104. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  105. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +53 -18
  106. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +66 -35
  107. package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
  108. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +2 -1
  109. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +308 -10
  110. package/src/components/Button/Button.stories.mdx +87 -23
  111. package/src/components/Button/Button.test.tsx +25 -0
  112. package/src/components/Button/Button.tsx +18 -7
  113. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  114. package/src/components/Card/Card.stories.mdx +493 -329
  115. package/src/components/Card/Card.test.tsx +138 -18
  116. package/src/components/Card/Card.tsx +151 -85
  117. package/src/components/Card/__snapshots__/Card.test.tsx.snap +220 -100
  118. package/src/components/Chakra/Center.stories.mdx +2 -2
  119. package/src/components/Chakra/Grid.stories.mdx +4 -4
  120. package/src/components/Checkbox/Checkbox.stories.mdx +73 -9
  121. package/src/components/Checkbox/Checkbox.test.tsx +89 -10
  122. package/src/components/Checkbox/Checkbox.tsx +27 -16
  123. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +209 -6
  124. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +135 -23
  125. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +216 -90
  126. package/src/components/CheckboxGroup/CheckboxGroup.tsx +39 -26
  127. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +493 -89
  128. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  129. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  130. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  131. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  132. package/src/components/DatePicker/DatePicker.test.tsx +94 -15
  133. package/src/components/DatePicker/DatePicker.tsx +67 -58
  134. package/src/components/DatePicker/_DatePicker.scss +71 -13
  135. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  136. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  137. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  138. package/src/components/Fieldset/Fieldset.tsx +35 -30
  139. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  140. package/src/components/Form/Form.stories.mdx +118 -47
  141. package/src/components/Form/Form.test.tsx +59 -16
  142. package/src/components/Form/Form.tsx +89 -65
  143. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  144. package/src/components/Grid/GridTypes.tsx +7 -7
  145. package/src/components/Grid/SimpleGrid.stories.mdx +87 -41
  146. package/src/components/Grid/SimpleGrid.test.tsx +24 -9
  147. package/src/components/Grid/SimpleGrid.tsx +29 -20
  148. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  149. package/src/components/Heading/Heading.stories.mdx +56 -25
  150. package/src/components/Heading/Heading.test.tsx +17 -7
  151. package/src/components/Heading/Heading.tsx +60 -58
  152. package/src/components/Heading/HeadingTypes.tsx +1 -1
  153. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +27 -8
  154. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  155. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  156. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  157. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  158. package/src/components/Hero/Hero.stories.mdx +143 -113
  159. package/src/components/Hero/Hero.test.tsx +146 -58
  160. package/src/components/Hero/Hero.tsx +144 -112
  161. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  162. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  163. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -17
  164. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -25
  165. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  166. package/src/components/Icons/Icon.stories.mdx +80 -23
  167. package/src/components/Icons/Icon.test.tsx +51 -2
  168. package/src/components/Icons/Icon.tsx +93 -71
  169. package/src/components/Icons/IconTypes.tsx +9 -6
  170. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  171. package/src/components/Image/Image.stories.mdx +160 -71
  172. package/src/components/Image/Image.test.tsx +40 -48
  173. package/src/components/Image/Image.tsx +80 -48
  174. package/src/components/Image/ImageTypes.ts +4 -4
  175. package/src/components/Image/__snapshots__/Image.test.tsx.snap +84 -21
  176. package/src/components/Label/Label.stories.mdx +42 -20
  177. package/src/components/Label/Label.test.tsx +42 -17
  178. package/src/components/Label/Label.tsx +22 -13
  179. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  180. package/src/components/Link/Link.stories.mdx +25 -1
  181. package/src/components/Link/Link.test.tsx +21 -0
  182. package/src/components/Link/Link.tsx +16 -9
  183. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  184. package/src/components/List/List.stories.mdx +75 -40
  185. package/src/components/List/List.test.tsx +73 -22
  186. package/src/components/List/List.tsx +44 -28
  187. package/src/components/List/ListTypes.tsx +1 -1
  188. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  189. package/src/components/Logo/Logo.stories.mdx +40 -16
  190. package/src/components/Logo/Logo.test.tsx +29 -2
  191. package/src/components/Logo/Logo.tsx +28 -11
  192. package/src/components/Logo/LogoSvgs.tsx +16 -0
  193. package/src/components/Logo/LogoTypes.tsx +9 -1
  194. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  195. package/src/components/Modal/Modal.stories.mdx +13 -0
  196. package/src/components/Notification/Notification.stories.mdx +34 -5
  197. package/src/components/Notification/Notification.test.tsx +43 -9
  198. package/src/components/Notification/Notification.tsx +59 -55
  199. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +256 -32
  200. package/src/components/Pagination/Pagination.stories.mdx +76 -13
  201. package/src/components/Pagination/Pagination.test.tsx +116 -5
  202. package/src/components/Pagination/Pagination.tsx +54 -29
  203. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +247 -30
  204. package/src/components/Placeholder/Placeholder.tsx +3 -1
  205. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  206. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +87 -13
  207. package/src/components/ProgressIndicator/ProgressIndicator.tsx +20 -10
  208. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  209. package/src/components/Radio/Radio.stories.mdx +75 -11
  210. package/src/components/Radio/Radio.test.tsx +83 -9
  211. package/src/components/Radio/Radio.tsx +70 -61
  212. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +168 -10
  213. package/src/components/RadioGroup/RadioGroup.stories.mdx +293 -94
  214. package/src/components/RadioGroup/RadioGroup.test.tsx +193 -68
  215. package/src/components/RadioGroup/RadioGroup.tsx +110 -101
  216. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1258 -902
  217. package/src/components/SearchBar/SearchBar.stories.mdx +104 -39
  218. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +66 -6
  219. package/src/components/SearchBar/SearchBar.tsx +23 -13
  220. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  221. package/src/components/Select/Select.stories.mdx +151 -62
  222. package/src/components/Select/Select.test.tsx +56 -44
  223. package/src/components/Select/Select.tsx +125 -104
  224. package/src/components/Select/SelectTypes.tsx +5 -0
  225. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  226. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +53 -23
  227. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +14 -8
  228. package/src/components/SkeletonLoader/SkeletonLoader.tsx +80 -78
  229. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +0 -5
  230. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  231. package/src/components/Slider/Slider.stories.mdx +123 -41
  232. package/src/components/Slider/Slider.test.tsx +65 -17
  233. package/src/components/Slider/Slider.tsx +34 -24
  234. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  235. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  236. package/src/components/StatusBadge/StatusBadge.test.tsx +19 -1
  237. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  238. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  239. package/src/components/StructuredContent/StructuredContent.stories.mdx +229 -61
  240. package/src/components/StructuredContent/StructuredContent.test.tsx +162 -101
  241. package/src/components/StructuredContent/StructuredContent.tsx +98 -103
  242. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  243. package/src/components/StyleGuide/Bidirectionality.stories.mdx +9 -9
  244. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  245. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  246. package/src/components/StyleGuide/ColorCard.tsx +4 -4
  247. package/src/components/StyleGuide/Colors.stories.mdx +34 -20
  248. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  249. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  250. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  251. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  252. package/src/components/StyleGuide/Typography.stories.mdx +47 -33
  253. package/src/components/Table/Table.stories.mdx +38 -11
  254. package/src/components/Table/Table.test.tsx +16 -1
  255. package/src/components/Table/Table.tsx +10 -8
  256. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  257. package/src/components/Tabs/Tabs.stories.mdx +59 -10
  258. package/src/components/Tabs/Tabs.test.tsx +29 -11
  259. package/src/components/Tabs/Tabs.tsx +28 -21
  260. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  261. package/src/components/Template/Template.stories.mdx +73 -32
  262. package/src/components/Template/Template.test.tsx +68 -5
  263. package/src/components/Template/Template.tsx +86 -72
  264. package/src/components/Template/__snapshots__/Template.test.tsx.snap +195 -22
  265. package/src/components/Text/Text.stories.mdx +32 -15
  266. package/src/components/Text/Text.test.tsx +14 -11
  267. package/src/components/Text/Text.tsx +13 -16
  268. package/src/components/Text/TextTypes.tsx +1 -1
  269. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  270. package/src/components/TextInput/TextInput.stories.mdx +73 -27
  271. package/src/components/TextInput/TextInput.test.tsx +65 -50
  272. package/src/components/TextInput/TextInput.tsx +123 -115
  273. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  274. package/src/components/Toggle/Toggle.stories.mdx +74 -26
  275. package/src/components/Toggle/Toggle.test.tsx +41 -10
  276. package/src/components/Toggle/Toggle.tsx +31 -27
  277. package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
  278. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +195 -8
  279. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  280. package/src/components/VideoPlayer/VideoPlayer.test.tsx +41 -6
  281. package/src/components/VideoPlayer/VideoPlayer.tsx +134 -120
  282. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  283. package/src/docs/Chakra.stories.mdx +51 -10
  284. package/src/docs/Welcome.stories.mdx +168 -0
  285. package/src/{components/Card/CardTypes.tsx → helpers/enums.ts} +2 -2
  286. package/src/hooks/tests/useNYPLTheme.test.tsx +1 -1
  287. package/src/hooks/useCarouselStyles.stories.mdx +30 -0
  288. package/src/hooks/useCarouselStyles.ts +3 -2
  289. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  290. package/src/hooks/useNYPLTheme.ts +31 -7
  291. package/src/hooks/useWindowSize.stories.mdx +23 -0
  292. package/src/index.ts +11 -15
  293. package/src/styles/base/_place-holder.scss +3 -1
  294. package/src/styles.scss +0 -2
  295. package/src/theme/components/accordion.ts +7 -12
  296. package/src/theme/components/breadcrumb.ts +7 -0
  297. package/src/theme/components/button.ts +15 -7
  298. package/src/theme/components/card.ts +56 -36
  299. package/src/theme/components/checkbox.ts +12 -14
  300. package/src/theme/components/checkboxGroup.ts +4 -2
  301. package/src/theme/components/componentWrapper.ts +2 -2
  302. package/src/theme/components/customTable.ts +39 -31
  303. package/src/theme/components/fieldset.ts +3 -2
  304. package/src/theme/components/global.ts +42 -33
  305. package/src/theme/components/globalMixins.ts +8 -8
  306. package/src/theme/components/heading.ts +1 -1
  307. package/src/theme/components/helperErrorText.ts +1 -0
  308. package/src/theme/components/hero.ts +14 -16
  309. package/src/theme/components/icon.ts +5 -2
  310. package/src/theme/components/image.ts +1 -1
  311. package/src/theme/components/label.ts +4 -3
  312. package/src/theme/components/list.ts +76 -65
  313. package/src/theme/components/notification.ts +10 -7
  314. package/src/theme/components/pagination.ts +2 -5
  315. package/src/theme/components/progressIndicator.ts +3 -3
  316. package/src/theme/components/radio.ts +11 -14
  317. package/src/theme/components/radioGroup.ts +4 -2
  318. package/src/theme/components/select.ts +37 -18
  319. package/src/theme/components/skeletonLoader.ts +3 -3
  320. package/src/theme/components/slider.ts +19 -15
  321. package/src/theme/components/statusBadge.ts +2 -2
  322. package/src/theme/components/structuredContent.ts +66 -1
  323. package/src/theme/components/tabs.ts +2 -2
  324. package/src/theme/components/template.ts +9 -9
  325. package/src/theme/components/textInput.ts +13 -12
  326. package/src/theme/components/toggle.ts +76 -42
  327. package/src/theme/components/videoPlayer.ts +1 -1
  328. package/src/theme/foundations/colors.ts +20 -13
  329. package/src/theme/foundations/global.ts +17 -5
  330. package/src/theme/foundations/radii.ts +1 -0
  331. package/src/theme/foundations/spacing.ts +70 -22
  332. package/src/theme/foundations/typography.ts +3 -3
  333. package/src/utils/componentCategories.ts +28 -21
  334. package/src/utils/utils.ts +28 -0
  335. package/dist/components/Card/CardTypes.d.ts +0 -4
  336. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
  337. package/dist/components/Pagination/Pagination.stories.d.ts +0 -13
  338. package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +0 -4
  339. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  340. package/dist/helpers/generateUUID.d.ts +0 -1
  341. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +0 -4
  342. package/src/components/Pagination/Pagination.stories.tsx +0 -54
  343. package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
  344. package/src/docs/Intro.stories.mdx +0 -53
  345. package/src/helpers/generateUUID.tsx +0 -5
  346. package/src/styles/base/_03-base.scss +0 -25
  347. package/src/styles/base/_04-focus.scss +0 -22
@@ -10,6 +10,7 @@ describe("Slider Accessibility", () => {
10
10
  it("passes axe accessibility test", async () => {
11
11
  const { container } = render(
12
12
  <Slider
13
+ id="slider"
13
14
  defaultValue={50}
14
15
  helperText="Component helper text."
15
16
  invalidText="Component error text :("
@@ -21,6 +22,7 @@ describe("Slider Accessibility", () => {
21
22
  it("passes axe accessibility test without a label", async () => {
22
23
  const { container } = render(
23
24
  <Slider
25
+ id="slider"
24
26
  defaultValue={50}
25
27
  helperText="Component helper text."
26
28
  invalidText="Component error text :("
@@ -33,6 +35,7 @@ describe("Slider Accessibility", () => {
33
35
  it("passes axe accessibility test without visible values", async () => {
34
36
  const { container } = render(
35
37
  <Slider
38
+ id="slider"
36
39
  defaultValue={50}
37
40
  helperText="Component helper text."
38
41
  invalidText="Component error text :("
@@ -49,6 +52,7 @@ describe("Slider Accessibility", () => {
49
52
  it("passes axe accessibility test", async () => {
50
53
  const { container } = render(
51
54
  <Slider
55
+ id="slider"
52
56
  defaultValue={[25, 75]}
53
57
  helperText="Component helper text."
54
58
  invalidText="Component error text :("
@@ -61,6 +65,7 @@ describe("Slider Accessibility", () => {
61
65
  it("passes axe accessibility test without a label", async () => {
62
66
  const { container } = render(
63
67
  <Slider
68
+ id="slider"
64
69
  defaultValue={[25, 75]}
65
70
  helperText="Component helper text."
66
71
  invalidText="Component error text :("
@@ -74,6 +79,7 @@ describe("Slider Accessibility", () => {
74
79
  it("passes axe accessibility test without visible values", async () => {
75
80
  const { container } = render(
76
81
  <Slider
82
+ id="slider"
77
83
  defaultValue={[25, 75]}
78
84
  helperText="Component helper text."
79
85
  invalidText="Component error text :("
@@ -93,6 +99,7 @@ describe("Slider", () => {
93
99
  it("renders a label, two static values, text input, and helper text", () => {
94
100
  render(
95
101
  <Slider
102
+ id="slider"
96
103
  defaultValue={50}
97
104
  helperText="Component helper text."
98
105
  invalidText="Component error text :("
@@ -100,7 +107,6 @@ describe("Slider", () => {
100
107
  />
101
108
  );
102
109
  expect(screen.getByText(/Label/i)).toBeInTheDocument();
103
- expect(screen.getByText(/Optional/i)).toBeInTheDocument();
104
110
  expect(screen.getByRole("slider")).toBeInTheDocument();
105
111
  // default min and max values
106
112
  expect(screen.getByText("0")).toBeInTheDocument();
@@ -128,20 +134,10 @@ describe("Slider", () => {
128
134
  expect(slider).toHaveAttribute("aria-labelledBy", "sliderId-label");
129
135
  });
130
136
 
131
- it("renders the 'required' text in the label or hides it", () => {
137
+ it("renders the '(Required)' text in the label or hides it", () => {
132
138
  const { rerender } = render(
133
139
  <Slider
134
- defaultValue={50}
135
- helperText="Component helper text."
136
- invalidText="Component error text :("
137
- labelText="Label"
138
- />
139
- );
140
- // "Optional" by default.
141
- expect(screen.getByText(/Optional/i)).toBeInTheDocument();
142
-
143
- rerender(
144
- <Slider
140
+ id="slider"
145
141
  defaultValue={50}
146
142
  helperText="Component helper text."
147
143
  invalidText="Component error text :("
@@ -149,26 +145,26 @@ describe("Slider", () => {
149
145
  isRequired
150
146
  />
151
147
  );
152
- expect(screen.queryByText(/Optional/i)).not.toBeInTheDocument();
153
148
  expect(screen.getByText(/Required/i)).toBeInTheDocument();
154
149
 
155
150
  rerender(
156
151
  <Slider
152
+ id="slider"
157
153
  defaultValue={50}
158
154
  helperText="Component helper text."
159
155
  invalidText="Component error text :("
160
156
  labelText="Label"
161
157
  isRequired
162
- optReqFlag={false}
158
+ showRequiredLabel={false}
163
159
  />
164
160
  );
165
- expect(screen.queryByText(/Optional/i)).not.toBeInTheDocument();
166
161
  expect(screen.queryByText(/Required/i)).not.toBeInTheDocument();
167
162
  });
168
163
 
169
164
  it("hides the label but adds it as an aria-label attribute", () => {
170
165
  render(
171
166
  <Slider
167
+ id="slider"
172
168
  defaultValue={50}
173
169
  helperText="Component helper text."
174
170
  invalidText="Component error text :("
@@ -184,6 +180,7 @@ describe("Slider", () => {
184
180
  it("hides the min/max static values", () => {
185
181
  const { rerender } = render(
186
182
  <Slider
183
+ id="slider"
187
184
  defaultValue={50}
188
185
  helperText="Component helper text."
189
186
  invalidText="Component error text :("
@@ -197,6 +194,7 @@ describe("Slider", () => {
197
194
 
198
195
  rerender(
199
196
  <Slider
197
+ id="slider"
200
198
  defaultValue={50}
201
199
  helperText="Component helper text."
202
200
  invalidText="Component error text :("
@@ -213,6 +211,7 @@ describe("Slider", () => {
213
211
  it("hides the current value input box", () => {
214
212
  const { rerender } = render(
215
213
  <Slider
214
+ id="slider"
216
215
  defaultValue={50}
217
216
  helperText="Component helper text."
218
217
  invalidText="Component error text :("
@@ -224,6 +223,7 @@ describe("Slider", () => {
224
223
 
225
224
  rerender(
226
225
  <Slider
226
+ id="slider"
227
227
  defaultValue={50}
228
228
  helperText="Component helper text."
229
229
  invalidText="Component error text :("
@@ -237,6 +237,7 @@ describe("Slider", () => {
237
237
  it("renders the invalid state", () => {
238
238
  render(
239
239
  <Slider
240
+ id="slider"
240
241
  defaultValue={50}
241
242
  helperText="Component helper text."
242
243
  invalidText="Component error text :("
@@ -258,6 +259,7 @@ describe("Slider", () => {
258
259
  it("renders the disabled state", () => {
259
260
  render(
260
261
  <Slider
262
+ id="slider"
261
263
  defaultValue={50}
262
264
  helperText="Component helper text."
263
265
  invalidText="Component error text :("
@@ -274,6 +276,7 @@ describe("Slider", () => {
274
276
  it("updates the value through the text input", () => {
275
277
  render(
276
278
  <Slider
279
+ id="slider"
277
280
  defaultValue={50}
278
281
  helperText="Component helper text."
279
282
  invalidText="Component error text :("
@@ -298,6 +301,7 @@ describe("Slider", () => {
298
301
  let currentValue = 0;
299
302
  render(
300
303
  <Slider
304
+ id="slider"
301
305
  defaultValue={50}
302
306
  helperText="Component helper text."
303
307
  invalidText="Component error text :("
@@ -322,6 +326,7 @@ describe("Slider", () => {
322
326
 
323
327
  render(
324
328
  <Slider
329
+ id="slider"
325
330
  defaultValue={50}
326
331
  helperText="Component helper text."
327
332
  invalidText="Component error text :("
@@ -431,6 +436,31 @@ describe("Slider", () => {
431
436
  />
432
437
  )
433
438
  .toJSON();
439
+ const withChakraProps = renderer
440
+ .create(
441
+ <Slider
442
+ id="chakra"
443
+ defaultValue={50}
444
+ helperText="Component helper text."
445
+ invalidText="Component error text :("
446
+ labelText="Label"
447
+ p="20px"
448
+ color="ui.error.primary"
449
+ />
450
+ )
451
+ .toJSON();
452
+ const withOtherProps = renderer
453
+ .create(
454
+ <Slider
455
+ id="props"
456
+ defaultValue={50}
457
+ helperText="Component helper text."
458
+ invalidText="Component error text :("
459
+ labelText="Label"
460
+ data-testid="props"
461
+ />
462
+ )
463
+ .toJSON();
434
464
 
435
465
  expect(defaultSlider).toMatchSnapshot();
436
466
  expect(errored).toMatchSnapshot();
@@ -439,6 +469,8 @@ describe("Slider", () => {
439
469
  expect(noLabels).toMatchSnapshot();
440
470
  expect(noVisibleValues).toMatchSnapshot();
441
471
  expect(onlySlider).toMatchSnapshot();
472
+ expect(withChakraProps).toMatchSnapshot();
473
+ expect(withOtherProps).toMatchSnapshot();
442
474
  });
443
475
  });
444
476
 
@@ -446,6 +478,7 @@ describe("Slider", () => {
446
478
  it("renders everything from the single but also two text input fields", () => {
447
479
  render(
448
480
  <Slider
481
+ id="slider"
449
482
  defaultValue={[25, 75]}
450
483
  helperText="Component helper text."
451
484
  invalidText="Component error text :("
@@ -454,7 +487,6 @@ describe("Slider", () => {
454
487
  />
455
488
  );
456
489
  expect(screen.getByText(/Label/i)).toBeInTheDocument();
457
- expect(screen.getByText(/Optional/i)).toBeInTheDocument();
458
490
  // The range slider has two sliders!
459
491
  expect(screen.getAllByRole("slider")).toHaveLength(2);
460
492
  // default min and max values
@@ -495,6 +527,7 @@ describe("Slider", () => {
495
527
  it("hides the label but adds it as an aria-label attribute", () => {
496
528
  render(
497
529
  <Slider
530
+ id="slider"
498
531
  defaultValue={[25, 75]}
499
532
  helperText="Component helper text."
500
533
  invalidText="Component error text :("
@@ -518,6 +551,7 @@ describe("Slider", () => {
518
551
  it("renders with min and max values as the default values if no `defaultValue` array is passed", () => {
519
552
  render(
520
553
  <Slider
554
+ id="slider"
521
555
  helperText="Component helper text."
522
556
  invalidText="Component error text :("
523
557
  isRangeSlider
@@ -534,6 +568,7 @@ describe("Slider", () => {
534
568
  // The start value is bigger than the end value.
535
569
  render(
536
570
  <Slider
571
+ id="slider"
537
572
  defaultValue={[75, 25]}
538
573
  helperText="Component helper text."
539
574
  invalidText="Component error text :("
@@ -559,6 +594,7 @@ describe("Slider", () => {
559
594
  it("updates the value through the text input", () => {
560
595
  render(
561
596
  <Slider
597
+ id="slider"
562
598
  defaultValue={[25, 75]}
563
599
  helperText="Component helper text."
564
600
  invalidText="Component error text :("
@@ -579,6 +615,18 @@ describe("Slider", () => {
579
615
  expect(endingInput).toHaveValue(79);
580
616
  });
581
617
 
618
+ it("logs a warning when there is no `id` passed", () => {
619
+ const warn = jest.spyOn(console, "warn");
620
+ render(
621
+ // @ts-ignore: Typescript complains when a required prop is not passed, but
622
+ // here we don't want to pass the required prop to make sure the warning appears.
623
+ <Slider labelText="Label" />
624
+ );
625
+ expect(warn).toHaveBeenCalledWith(
626
+ "NYPL Reservoir Slider: This component's required `id` prop was not passed."
627
+ );
628
+ });
629
+
582
630
  it("renders the UI snapshot correctly", () => {
583
631
  const defaultRangeSlider = renderer
584
632
  .create(
@@ -1,6 +1,6 @@
1
- import * as React from "react";
2
1
  import {
3
2
  Box,
3
+ chakra,
4
4
  RangeSlider as ChakraRangeSlider,
5
5
  RangeSliderTrack as ChakraRangeSliderTrack,
6
6
  RangeSliderFilledTrack as ChakraRangeSliderFilledTrack,
@@ -11,8 +11,8 @@ import {
11
11
  SliderThumb as ChakraSliderThumb,
12
12
  useMultiStyleConfig,
13
13
  } from "@chakra-ui/react";
14
+ import * as React from "react";
14
15
 
15
- import generateUUID from "../../helpers/generateUUID";
16
16
  import Label from "../Label/Label";
17
17
  import HelperErrorText, {
18
18
  HelperErrorTextType,
@@ -30,7 +30,7 @@ export interface SliderProps {
30
30
  /** Optional string to populate the HelperErrorText for standard state */
31
31
  helperText?: HelperErrorTextType;
32
32
  /** ID that other components can cross reference for accessibility purposes. */
33
- id?: string;
33
+ id: string;
34
34
  /** Optional string to populate the `HelperErrorText` for the error state
35
35
  * when `isInvalid` is true. */
36
36
  invalidText?: HelperErrorTextType;
@@ -56,8 +56,6 @@ export interface SliderProps {
56
56
  name?: string;
57
57
  /** Callback function that gets the value(s) selected. */
58
58
  onChange?: (val: number | number[]) => void;
59
- /** Whether or not to display the "Required"/"Optional" text in the label text. */
60
- optReqFlag?: boolean;
61
59
  /** Offers the ability to hide the `TextInput` boxes. */
62
60
  showBoxes?: boolean;
63
61
  /** Offers the ability to hide the helper/invalid text. */
@@ -65,6 +63,9 @@ export interface SliderProps {
65
63
  /** Offers the ability to show the label onscreen or hide it. Refer
66
64
  * to the `labelText` property for more information. */
67
65
  showLabel?: boolean;
66
+ /** Whether or not to display the "(Required)" text in the label text.
67
+ * True by default. */
68
+ showRequiredLabel?: boolean;
68
69
  /** Offers the ability to hide the static min/max values. */
69
70
  showValues?: boolean;
70
71
  /** The amount to increase or decrease when using the slider thumb(s). */
@@ -76,12 +77,12 @@ export interface SliderProps {
76
77
  * with a min and max value. The value(s) can be updated through the slider
77
78
  * thumb(s) or through the text input(s) elements.
78
79
  */
79
- export default function Slider(props: React.PropsWithChildren<SliderProps>) {
80
+ export const Slider = chakra((props: React.PropsWithChildren<SliderProps>) => {
80
81
  const {
81
82
  className,
82
83
  defaultValue = 0,
83
84
  helperText,
84
- id = generateUUID(),
85
+ id,
85
86
  invalidText,
86
87
  isDisabled = false,
87
88
  isInvalid = false,
@@ -92,13 +93,20 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
92
93
  min = 0,
93
94
  name,
94
95
  onChange,
95
- optReqFlag = true,
96
96
  showBoxes = true,
97
97
  showHelperInvalidText = true,
98
98
  showLabel = true,
99
+ showRequiredLabel = true,
99
100
  showValues = true,
100
101
  step = 1,
102
+ ...rest
101
103
  } = props;
104
+
105
+ if (!id) {
106
+ console.warn(
107
+ "NYPL Reservoir Slider: This component's required `id` prop was not passed."
108
+ );
109
+ }
102
110
  // For the RangeSlider, if the defaultValue is not an array, then we set
103
111
  // the defaultValue to an array with the min and max values.
104
112
  const rangeSliderDefault =
@@ -113,15 +121,14 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
113
121
  if (isRangeSlider && currentValue[0] > currentValue[1]) {
114
122
  finalIsInvalid = true;
115
123
  }
116
- const optReqText = isRequired ? "Required" : "Optional";
117
124
  const footnote: HelperErrorTextType = finalIsInvalid
118
125
  ? invalidText
119
126
  : helperText;
120
127
  const styles = useMultiStyleConfig("CustomSlider", {
121
128
  isDisabled,
122
129
  isInvalid: finalIsInvalid,
123
- isRangeSlider,
124
130
  showBoxes,
131
+ showValues,
125
132
  });
126
133
  // Props that the `Slider` and `RangeSlider` Chakra
127
134
  // components both use.
@@ -133,11 +140,14 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
133
140
  max,
134
141
  min,
135
142
  name,
136
- onChange: (val) => setCurrentValue(val),
137
- // Call the passed in `onChange` function prop to get the
138
- // *final* value once a user stops dragging the slider.
139
- onChangeEnd: (val) => onChange && onChange(val),
143
+ onChange: (val) => {
144
+ setCurrentValue(val);
145
+ onChange && onChange(val);
146
+ },
140
147
  step,
148
+ // Additional margins so slider thumbs don't overflow past the
149
+ // edge when the value boxes or min/max values are hidden.
150
+ sx: styles.sliderContainer,
141
151
  };
142
152
  // Props that the two `TextInput` components use.
143
153
  const textInputSharedProps = {
@@ -268,7 +278,7 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
268
278
  };
269
279
 
270
280
  return (
271
- <Box className={className} __css={styles}>
281
+ <Box className={className} __css={styles} {...rest}>
272
282
  {showLabel && (
273
283
  <Label
274
284
  id={`${id}-label`}
@@ -281,7 +291,7 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
281
291
  ? `${id}-textInput-${isRangeSlider ? "start" : "end"}`
282
292
  : null
283
293
  }
284
- optReqFlag={optReqFlag && optReqText}
294
+ isRequired={showRequiredLabel && isRequired}
285
295
  >
286
296
  {labelText}
287
297
  </Label>
@@ -301,14 +311,14 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
301
311
  </Box>
302
312
 
303
313
  {footnote && showHelperInvalidText && (
304
- <Box __css={styles.helper}>
305
- <HelperErrorText
306
- id={`${id}-helperText`}
307
- isInvalid={finalIsInvalid}
308
- text={footnote}
309
- />
310
- </Box>
314
+ <HelperErrorText
315
+ id={`${id}-helperText`}
316
+ isInvalid={finalIsInvalid}
317
+ text={footnote}
318
+ />
311
319
  )}
312
320
  </Box>
313
321
  );
314
- }
322
+ });
323
+
324
+ export default Slider;