@nypl/design-system-react-components 1.0.1 → 1.0.2

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 (396) hide show
  1. package/CHANGELOG.md +1428 -3
  2. package/README.md +391 -3
  3. package/dist/__tests__/fileMock.d.ts +4 -0
  4. package/dist/__tests__/setup.d.ts +2 -0
  5. package/{lib/stories/0-Welcome.stories.d.ts → dist/__tests__/utils/utils.test.d.ts} +1 -1
  6. package/dist/components/Accordion/Accordion.d.ts +21 -0
  7. package/dist/components/Autosuggest/Autosuggest.stories.d.ts +4 -0
  8. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +18 -0
  9. package/dist/components/Button/Button.d.ts +25 -0
  10. package/dist/components/ButtonGroup/ButtonGroup.d.ts +22 -0
  11. package/dist/components/Card/Card.d.ts +49 -0
  12. package/dist/components/Checkbox/Checkbox.d.ts +47 -0
  13. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +49 -0
  14. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +29 -0
  15. package/dist/components/DatePicker/DatePicker.d.ts +81 -0
  16. package/dist/components/Fieldset/Fieldset.d.ts +22 -0
  17. package/dist/components/Form/Form.d.ts +29 -0
  18. package/dist/components/Grid/SimpleGrid.d.ts +17 -0
  19. package/dist/components/Heading/Heading.d.ts +27 -0
  20. package/dist/components/HelperErrorText/HelperErrorText.d.ts +29 -0
  21. package/dist/components/Hero/Hero.d.ts +40 -0
  22. package/dist/components/HorizontalRule/HorizontalRule.d.ts +11 -0
  23. package/dist/components/Icons/Icon.d.ts +37 -0
  24. package/dist/components/Icons/IconSvgs.d.ts +33 -0
  25. package/dist/components/Image/Image.d.ts +61 -0
  26. package/dist/components/Label/Label.d.ts +20 -0
  27. package/dist/components/Link/Link.d.ts +20 -0
  28. package/dist/components/List/List.d.ts +35 -0
  29. package/dist/components/Logo/Logo.d.ts +26 -0
  30. package/dist/components/Logo/LogoSvgs.d.ts +46 -0
  31. package/dist/components/Modal/Modal.d.ts +33 -0
  32. package/dist/components/Notification/Notification.d.ts +50 -0
  33. package/dist/components/Pagination/Pagination.d.ts +27 -0
  34. package/dist/components/Placeholder/Placeholder.d.ts +10 -0
  35. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +30 -0
  36. package/dist/components/Radio/Radio.d.ts +43 -0
  37. package/dist/components/RadioGroup/RadioGroup.d.ts +51 -0
  38. package/dist/components/SearchBar/SearchBar.d.ts +61 -0
  39. package/dist/components/Select/Select.d.ts +57 -0
  40. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +39 -0
  41. package/dist/components/SkipNavigation/SkipNavigation.d.ts +17 -0
  42. package/dist/components/Slider/Slider.d.ts +60 -0
  43. package/dist/components/StatusBadge/StatusBadge.d.ts +16 -0
  44. package/dist/components/StructuredContent/StructuredContent.d.ts +28 -0
  45. package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
  46. package/dist/components/Table/Table.d.ts +29 -0
  47. package/dist/components/Tabs/Tabs.d.ts +26 -0
  48. package/dist/components/Template/Template.d.ts +126 -0
  49. package/dist/components/Text/Text.d.ts +16 -0
  50. package/dist/components/TextInput/TextInput.d.ts +78 -0
  51. package/dist/components/Toggle/Toggle.d.ts +42 -0
  52. package/dist/components/VideoPlayer/VideoPlayer.d.ts +38 -0
  53. package/dist/design-system-react-components.cjs.development.js +11305 -0
  54. package/dist/design-system-react-components.cjs.development.js.map +1 -0
  55. package/dist/design-system-react-components.cjs.production.min.js +2 -0
  56. package/dist/design-system-react-components.cjs.production.min.js.map +1 -0
  57. package/dist/design-system-react-components.esm.js +11150 -0
  58. package/dist/design-system-react-components.esm.js.map +1 -0
  59. package/dist/helpers/types.d.ts +1 -0
  60. package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
  61. package/dist/hooks/useCarouselStyles.d.ts +17 -0
  62. package/dist/hooks/useNYPLTheme.d.ts +66 -0
  63. package/dist/hooks/useWindowSize.d.ts +10 -0
  64. package/dist/index.d.ts +48 -0
  65. package/dist/index.js +8 -0
  66. package/dist/resources.scss +386 -0
  67. package/dist/styles.css +3 -0
  68. package/dist/theme/components/accordion.d.ts +20 -0
  69. package/dist/theme/components/breadcrumb.d.ts +105 -0
  70. package/dist/theme/components/button.d.ts +120 -0
  71. package/dist/theme/components/buttonGroup.d.ts +11 -0
  72. package/dist/theme/components/card.d.ts +381 -0
  73. package/dist/theme/components/checkbox.d.ts +95 -0
  74. package/dist/theme/components/checkboxGroup.d.ts +14 -0
  75. package/dist/theme/components/componentWrapper.d.ts +12 -0
  76. package/dist/theme/components/customTable.d.ts +136 -0
  77. package/dist/theme/components/datePicker.d.ts +16 -0
  78. package/dist/theme/components/fieldset.d.ts +20 -0
  79. package/dist/theme/components/global.d.ts +73 -0
  80. package/dist/theme/components/globalMixins.d.ts +23 -0
  81. package/dist/theme/components/heading.d.ts +160 -0
  82. package/dist/theme/components/helperErrorText.d.ts +12 -0
  83. package/dist/theme/components/hero.d.ts +499 -0
  84. package/dist/theme/components/horizontalRule.d.ts +15 -0
  85. package/dist/theme/components/icon.d.ts +47755 -0
  86. package/dist/theme/components/image.d.ts +590 -0
  87. package/dist/theme/components/label.d.ts +18 -0
  88. package/dist/theme/components/link.d.ts +62 -0
  89. package/dist/theme/components/list.d.ts +182 -0
  90. package/dist/theme/components/logo.d.ts +477 -0
  91. package/dist/theme/components/notification.d.ts +95 -0
  92. package/dist/theme/components/pagination.d.ts +16 -0
  93. package/dist/theme/components/progressIndicator.d.ts +52 -0
  94. package/dist/theme/components/radio.d.ts +99 -0
  95. package/dist/theme/components/radioGroup.d.ts +14 -0
  96. package/dist/theme/components/searchBar.d.ts +18 -0
  97. package/dist/theme/components/select.d.ts +87 -0
  98. package/dist/theme/components/skeletonLoader.d.ts +102 -0
  99. package/dist/theme/components/skipNavigation.d.ts +25 -0
  100. package/dist/theme/components/slider.d.ts +59 -0
  101. package/dist/theme/components/statusBadge.d.ts +25 -0
  102. package/dist/theme/components/structuredContent.d.ts +226 -0
  103. package/dist/theme/components/tabs.d.ts +136 -0
  104. package/dist/theme/components/template.d.ts +105 -0
  105. package/dist/theme/components/text.d.ts +26 -0
  106. package/dist/theme/components/textInput.d.ts +124 -0
  107. package/dist/theme/components/toggle.d.ts +92 -0
  108. package/dist/theme/components/videoPlayer.d.ts +40 -0
  109. package/dist/theme/foundations/breakpoints.d.ts +23 -0
  110. package/dist/theme/foundations/colors.d.ts +3 -0
  111. package/dist/theme/foundations/global.d.ts +58 -0
  112. package/dist/theme/foundations/radii.d.ts +6 -0
  113. package/dist/theme/foundations/shadows.d.ts +4 -0
  114. package/dist/theme/foundations/spacing.d.ts +82 -0
  115. package/dist/theme/foundations/typography.d.ts +8 -0
  116. package/dist/theme/index.d.ts +20 -0
  117. package/dist/theme/provider.d.ts +3 -0
  118. package/dist/theme/types.d.ts +1 -0
  119. package/dist/utils/componentCategories.d.ts +1 -0
  120. package/dist/utils/interfaces.d.ts +5 -0
  121. package/dist/utils/utils.d.ts +31 -0
  122. package/package.json +133 -20
  123. package/src/__tests__/fileMock.ts +6 -0
  124. package/src/__tests__/setup.ts +27 -0
  125. package/src/__tests__/utils/utils.test.ts +18 -0
  126. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +42 -0
  127. package/src/components/Accordion/Accordion.stories.mdx +333 -0
  128. package/src/components/Accordion/Accordion.test.tsx +237 -0
  129. package/src/components/Accordion/Accordion.tsx +137 -0
  130. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +734 -0
  131. package/src/components/Autosuggest/Autosuggest.stories.mdx +75 -0
  132. package/src/components/Autosuggest/Autosuggest.stories.tsx +211 -0
  133. package/src/components/Autosuggest/_Autosuggest.scss +51 -0
  134. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +231 -0
  135. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +144 -0
  136. package/src/components/Breadcrumbs/Breadcrumbs.tsx +98 -0
  137. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +695 -0
  138. package/src/components/Button/Button.stories.mdx +320 -0
  139. package/src/components/Button/Button.test.tsx +184 -0
  140. package/src/components/Button/Button.tsx +95 -0
  141. package/src/components/Button/__snapshots__/Button.test.tsx.snap +106 -0
  142. package/src/components/ButtonGroup/ButtonGroup.stories.mdx +178 -0
  143. package/src/components/ButtonGroup/ButtonGroup.test.tsx +141 -0
  144. package/src/components/ButtonGroup/ButtonGroup.tsx +100 -0
  145. package/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap +117 -0
  146. package/src/components/Card/Card.stories.mdx +1041 -0
  147. package/src/components/Card/Card.test.tsx +388 -0
  148. package/src/components/Card/Card.tsx +346 -0
  149. package/src/components/Card/__snapshots__/Card.test.tsx.snap +568 -0
  150. package/src/components/Chakra/Box.stories.mdx +52 -0
  151. package/src/components/Chakra/Center.stories.mdx +96 -0
  152. package/src/components/Chakra/Flex.stories.mdx +111 -0
  153. package/src/components/Chakra/Grid.stories.mdx +89 -0
  154. package/src/components/Chakra/Stack.stories.mdx +109 -0
  155. package/src/components/Checkbox/Checkbox.stories.mdx +243 -0
  156. package/src/components/Checkbox/Checkbox.test.tsx +350 -0
  157. package/src/components/Checkbox/Checkbox.tsx +152 -0
  158. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +661 -0
  159. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +462 -0
  160. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +492 -0
  161. package/src/components/CheckboxGroup/CheckboxGroup.tsx +173 -0
  162. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +1842 -0
  163. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +163 -0
  164. package/src/components/ComponentWrapper/ComponentWrapper.tsx +76 -0
  165. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +103 -0
  166. package/src/components/DatePicker/DatePicker.stories.mdx +452 -0
  167. package/src/components/DatePicker/DatePicker.test.tsx +940 -0
  168. package/src/components/DatePicker/DatePicker.tsx +450 -0
  169. package/src/components/DatePicker/_DatePicker.scss +100 -0
  170. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +908 -0
  171. package/src/components/Fieldset/Fieldset.stories.mdx +96 -0
  172. package/src/components/Fieldset/Fieldset.test.tsx +155 -0
  173. package/src/components/Fieldset/Fieldset.tsx +55 -0
  174. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +89 -0
  175. package/src/components/Form/Form.stories.mdx +426 -0
  176. package/src/components/Form/Form.test.tsx +234 -0
  177. package/src/components/Form/Form.tsx +124 -0
  178. package/src/components/Form/__snapshots__/Form.test.tsx.snap +115 -0
  179. package/src/components/Grid/SimpleGrid.stories.mdx +336 -0
  180. package/src/components/Grid/SimpleGrid.test.tsx +79 -0
  181. package/src/components/Grid/SimpleGrid.tsx +49 -0
  182. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +23 -0
  183. package/src/components/Heading/Heading.stories.mdx +187 -0
  184. package/src/components/Heading/Heading.test.tsx +171 -0
  185. package/src/components/Heading/Heading.tsx +104 -0
  186. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +90 -0
  187. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +172 -0
  188. package/src/components/HelperErrorText/HelperErrorText.test.tsx +114 -0
  189. package/src/components/HelperErrorText/HelperErrorText.tsx +62 -0
  190. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +93 -0
  191. package/src/components/Hero/Hero.stories.mdx +378 -0
  192. package/src/components/Hero/Hero.test.tsx +611 -0
  193. package/src/components/Hero/Hero.tsx +203 -0
  194. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +379 -0
  195. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +73 -0
  196. package/src/components/HorizontalRule/HorizontalRule.test.tsx +54 -0
  197. package/src/components/HorizontalRule/HorizontalRule.tsx +27 -0
  198. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +44 -0
  199. package/src/components/Icons/Icon.stories.mdx +413 -0
  200. package/src/components/Icons/Icon.test.tsx +120 -0
  201. package/src/components/Icons/Icon.tsx +187 -0
  202. package/src/components/Icons/IconSvgs.tsx +64 -0
  203. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  204. package/src/components/Image/Image.stories.mdx +332 -0
  205. package/src/components/Image/Image.test.tsx +155 -0
  206. package/src/components/Image/Image.tsx +171 -0
  207. package/src/components/Image/__snapshots__/Image.test.tsx.snap +269 -0
  208. package/src/components/Label/Label.stories.mdx +100 -0
  209. package/src/components/Label/Label.test.tsx +116 -0
  210. package/src/components/Label/Label.tsx +55 -0
  211. package/src/components/Label/__snapshots__/Label.test.tsx.snap +45 -0
  212. package/src/components/Link/Link.stories.mdx +249 -0
  213. package/src/components/Link/Link.test.tsx +224 -0
  214. package/src/components/Link/Link.tsx +178 -0
  215. package/src/components/Link/__snapshots__/Link.test.tsx.snap +286 -0
  216. package/src/components/List/List.stories.mdx +393 -0
  217. package/src/components/List/List.test.tsx +265 -0
  218. package/src/components/List/List.tsx +156 -0
  219. package/src/components/List/__snapshots__/List.test.tsx.snap +213 -0
  220. package/src/components/Logo/Logo.stories.mdx +295 -0
  221. package/src/components/Logo/Logo.test.tsx +116 -0
  222. package/src/components/Logo/Logo.tsx +151 -0
  223. package/src/components/Logo/LogoSvgs.tsx +90 -0
  224. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +142 -0
  225. package/src/components/Modal/Modal.stories.mdx +294 -0
  226. package/src/components/Modal/Modal.test.tsx +157 -0
  227. package/src/components/Modal/Modal.tsx +154 -0
  228. package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +25 -0
  229. package/src/components/Notification/Notification.stories.mdx +358 -0
  230. package/src/components/Notification/Notification.test.tsx +279 -0
  231. package/src/components/Notification/Notification.tsx +224 -0
  232. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +525 -0
  233. package/src/components/Pagination/Pagination.stories.mdx +184 -0
  234. package/src/components/Pagination/Pagination.test.tsx +419 -0
  235. package/src/components/Pagination/Pagination.tsx +269 -0
  236. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +544 -0
  237. package/src/components/Placeholder/Placeholder.tsx +19 -0
  238. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +360 -0
  239. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +298 -0
  240. package/src/components/ProgressIndicator/ProgressIndicator.tsx +132 -0
  241. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +434 -0
  242. package/src/components/Radio/Radio.stories.mdx +216 -0
  243. package/src/components/Radio/Radio.test.tsx +247 -0
  244. package/src/components/Radio/Radio.tsx +119 -0
  245. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +451 -0
  246. package/src/components/RadioGroup/RadioGroup.stories.mdx +479 -0
  247. package/src/components/RadioGroup/RadioGroup.test.tsx +471 -0
  248. package/src/components/RadioGroup/RadioGroup.tsx +171 -0
  249. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1550 -0
  250. package/src/components/SearchBar/SearchBar.stories.mdx +518 -0
  251. package/src/components/SearchBar/SearchBar.test.tsx +435 -0
  252. package/src/components/SearchBar/SearchBar.tsx +210 -0
  253. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1049 -0
  254. package/src/components/Select/Select.stories.mdx +439 -0
  255. package/src/components/Select/Select.test.tsx +358 -0
  256. package/src/components/Select/Select.tsx +183 -0
  257. package/src/components/Select/__snapshots__/Select.test.tsx.snap +895 -0
  258. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +142 -0
  259. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +116 -0
  260. package/src/components/SkeletonLoader/SkeletonLoader.tsx +123 -0
  261. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +898 -0
  262. package/src/components/SkipNavigation/SkipNavigation.stories.mdx +90 -0
  263. package/src/components/SkipNavigation/SkipNavigation.test.tsx +63 -0
  264. package/src/components/SkipNavigation/SkipNavigation.tsx +51 -0
  265. package/src/components/SkipNavigation/__snapshots__/SkipNavigation.test.tsx.snap +130 -0
  266. package/src/components/Slider/Slider.stories.mdx +628 -0
  267. package/src/components/Slider/Slider.test.tsx +736 -0
  268. package/src/components/Slider/Slider.tsx +322 -0
  269. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +2186 -0
  270. package/src/components/StatusBadge/StatusBadge.stories.mdx +109 -0
  271. package/src/components/StatusBadge/StatusBadge.test.tsx +70 -0
  272. package/src/components/StatusBadge/StatusBadge.tsx +35 -0
  273. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +47 -0
  274. package/src/components/StructuredContent/StructuredContent.stories.mdx +567 -0
  275. package/src/components/StructuredContent/StructuredContent.test.tsx +435 -0
  276. package/src/components/StructuredContent/StructuredContent.tsx +139 -0
  277. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +368 -0
  278. package/src/components/StyleGuide/Bidirectionality.stories.mdx +206 -0
  279. package/src/components/StyleGuide/Breakpoints.stories.mdx +55 -0
  280. package/src/components/StyleGuide/Buttons.stories.mdx +194 -0
  281. package/src/components/StyleGuide/ColorCard.tsx +43 -0
  282. package/src/components/StyleGuide/Colors.stories.mdx +201 -0
  283. package/src/components/StyleGuide/DesignTokens.stories.mdx +193 -0
  284. package/src/components/StyleGuide/Forms.stories.mdx +94 -0
  285. package/src/components/StyleGuide/Iconography.stories.mdx +142 -0
  286. package/src/components/StyleGuide/Spacing.stories.mdx +116 -0
  287. package/src/components/StyleGuide/Typography.stories.mdx +419 -0
  288. package/src/components/Table/Table.stories.mdx +272 -0
  289. package/src/components/Table/Table.test.tsx +241 -0
  290. package/src/components/Table/Table.tsx +152 -0
  291. package/src/components/Table/__snapshots__/Table.test.tsx.snap +1703 -0
  292. package/src/components/Tabs/Tabs.stories.mdx +338 -0
  293. package/src/components/Tabs/Tabs.test.tsx +298 -0
  294. package/src/components/Tabs/Tabs.tsx +264 -0
  295. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +584 -0
  296. package/src/components/Template/Template.stories.mdx +695 -0
  297. package/src/components/Template/Template.test.tsx +309 -0
  298. package/src/components/Template/Template.tsx +326 -0
  299. package/src/components/Template/__snapshots__/Template.test.tsx.snap +342 -0
  300. package/src/components/Text/Text.stories.mdx +103 -0
  301. package/src/components/Text/Text.test.tsx +63 -0
  302. package/src/components/Text/Text.tsx +50 -0
  303. package/src/components/Text/__snapshots__/Text.test.tsx.snap +50 -0
  304. package/src/components/TextInput/TextInput.stories.mdx +268 -0
  305. package/src/components/TextInput/TextInput.test.tsx +451 -0
  306. package/src/components/TextInput/TextInput.tsx +240 -0
  307. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +274 -0
  308. package/src/components/Toggle/Toggle.stories.mdx +237 -0
  309. package/src/components/Toggle/Toggle.test.tsx +170 -0
  310. package/src/components/Toggle/Toggle.tsx +128 -0
  311. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +470 -0
  312. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +212 -0
  313. package/src/components/VideoPlayer/VideoPlayer.test.tsx +308 -0
  314. package/src/components/VideoPlayer/VideoPlayer.tsx +188 -0
  315. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +192 -0
  316. package/src/docs/Chakra.stories.mdx +563 -0
  317. package/src/docs/Welcome.stories.mdx +148 -0
  318. package/src/helpers/types.ts +1 -0
  319. package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
  320. package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
  321. package/src/hooks/useCarouselStyles.stories.mdx +30 -0
  322. package/src/hooks/useCarouselStyles.ts +35 -0
  323. package/src/hooks/useNYPLTheme.stories.mdx +98 -0
  324. package/src/hooks/useNYPLTheme.ts +91 -0
  325. package/src/hooks/useWindowSize.stories.mdx +23 -0
  326. package/src/hooks/useWindowSize.ts +40 -0
  327. package/src/index.ts +136 -0
  328. package/src/resources.scss +6 -0
  329. package/src/styles/base/_01-breakpoints.scss +27 -0
  330. package/src/styles/base/_02-mixins.scss +103 -0
  331. package/src/styles/base/_place-holder.scss +33 -0
  332. package/src/styles/space/_space-inline.scss +79 -0
  333. package/src/styles/space/_space-inset.scss +57 -0
  334. package/src/styles/space/_space-stack.scss +116 -0
  335. package/src/styles.scss +23 -0
  336. package/src/theme/components/accordion.ts +25 -0
  337. package/src/theme/components/breadcrumb.ts +94 -0
  338. package/src/theme/components/button.ts +133 -0
  339. package/src/theme/components/buttonGroup.ts +10 -0
  340. package/src/theme/components/card.ts +237 -0
  341. package/src/theme/components/checkbox.ts +110 -0
  342. package/src/theme/components/checkboxGroup.ts +10 -0
  343. package/src/theme/components/componentWrapper.ts +14 -0
  344. package/src/theme/components/customTable.ts +77 -0
  345. package/src/theme/components/datePicker.ts +17 -0
  346. package/src/theme/components/fieldset.ts +23 -0
  347. package/src/theme/components/global.ts +91 -0
  348. package/src/theme/components/globalMixins.ts +24 -0
  349. package/src/theme/components/heading.ts +79 -0
  350. package/src/theme/components/helperErrorText.ts +14 -0
  351. package/src/theme/components/hero.ts +238 -0
  352. package/src/theme/components/horizontalRule.ts +17 -0
  353. package/src/theme/components/icon.ts +88 -0
  354. package/src/theme/components/image.ts +136 -0
  355. package/src/theme/components/label.ts +15 -0
  356. package/src/theme/components/link.ts +63 -0
  357. package/src/theme/components/list.ts +88 -0
  358. package/src/theme/components/logo.ts +58 -0
  359. package/src/theme/components/notification.ts +132 -0
  360. package/src/theme/components/pagination.ts +17 -0
  361. package/src/theme/components/progressIndicator.ts +67 -0
  362. package/src/theme/components/radio.ts +103 -0
  363. package/src/theme/components/radioGroup.ts +10 -0
  364. package/src/theme/components/searchBar.ts +19 -0
  365. package/src/theme/components/select.ts +72 -0
  366. package/src/theme/components/skeletonLoader.ts +113 -0
  367. package/src/theme/components/skipNavigation.ts +29 -0
  368. package/src/theme/components/slider.ts +95 -0
  369. package/src/theme/components/statusBadge.ts +26 -0
  370. package/src/theme/components/structuredContent.ts +149 -0
  371. package/src/theme/components/tabs.ts +109 -0
  372. package/src/theme/components/template.ts +114 -0
  373. package/src/theme/components/text.ts +38 -0
  374. package/src/theme/components/textInput.ts +65 -0
  375. package/src/theme/components/toggle.ts +109 -0
  376. package/src/theme/components/videoPlayer.ts +47 -0
  377. package/src/theme/foundations/breakpoints.ts +24 -0
  378. package/src/theme/foundations/colors.ts +212 -0
  379. package/src/theme/foundations/global.ts +43 -0
  380. package/src/theme/foundations/radii.ts +7 -0
  381. package/src/theme/foundations/shadows.ts +5 -0
  382. package/src/theme/foundations/spacing.ts +136 -0
  383. package/src/theme/foundations/typography.ts +107 -0
  384. package/src/theme/index.ts +131 -0
  385. package/src/theme/provider.tsx +9 -0
  386. package/src/theme/types.ts +1 -0
  387. package/src/utils/componentCategories.ts +152 -0
  388. package/src/utils/interfaces.ts +5 -0
  389. package/src/utils/utils.ts +84 -0
  390. package/lib/components/Button/Button.d.ts +0 -17
  391. package/lib/components/Button/Button.js +0 -42
  392. package/lib/index.d.ts +0 -1
  393. package/lib/index.js +0 -6
  394. package/lib/stories/0-Welcome.stories.js +0 -19
  395. package/lib/stories/1-Button.stories.d.ts +0 -6
  396. package/lib/stories/1-Button.stories.js +0 -20
@@ -0,0 +1,269 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Image Renders the UI snapshot correctly 1`] = `
4
+ <img
5
+ alt=""
6
+ className="css-0"
7
+ src="test.png"
8
+ />
9
+ `;
10
+
11
+ exports[`Image Renders the UI snapshot correctly 2`] = `
12
+ <figure
13
+ className="css-0"
14
+ >
15
+ <img
16
+ alt=""
17
+ className="css-0"
18
+ src="test.png"
19
+ />
20
+ <figcaption
21
+ className="css-0"
22
+ >
23
+ <div
24
+ className="css-0"
25
+ >
26
+ Caption
27
+ </div>
28
+ </figcaption>
29
+ </figure>
30
+ `;
31
+
32
+ exports[`Image Renders the UI snapshot correctly 3`] = `
33
+ <figure
34
+ className="css-0"
35
+ >
36
+ <img
37
+ alt=""
38
+ className="css-0"
39
+ src="test.png"
40
+ />
41
+ <figcaption
42
+ className="css-0"
43
+ >
44
+ <div
45
+ className="css-0"
46
+ >
47
+ Credit
48
+ </div>
49
+ </figcaption>
50
+ </figure>
51
+ `;
52
+
53
+ exports[`Image Renders the UI snapshot correctly 4`] = `
54
+ <figure
55
+ className="css-0"
56
+ >
57
+ <img
58
+ alt=""
59
+ className="css-0"
60
+ src="test.png"
61
+ />
62
+ <figcaption
63
+ className="css-0"
64
+ >
65
+ <div
66
+ className="css-0"
67
+ >
68
+ Caption
69
+ </div>
70
+ <div
71
+ className="css-0"
72
+ >
73
+ Credit
74
+ </div>
75
+ </figcaption>
76
+ </figure>
77
+ `;
78
+
79
+ exports[`Image Renders the UI snapshot correctly 5`] = `
80
+ <img
81
+ alt=""
82
+ className="css-0"
83
+ src="test.png"
84
+ />
85
+ `;
86
+
87
+ exports[`Image Renders the UI snapshot correctly 6`] = `
88
+ <img
89
+ alt=""
90
+ className="css-0"
91
+ src="test.png"
92
+ />
93
+ `;
94
+
95
+ exports[`Image Renders the UI snapshot correctly 7`] = `
96
+ <img
97
+ alt=""
98
+ className="css-0"
99
+ src="test.png"
100
+ />
101
+ `;
102
+
103
+ exports[`Image Renders the UI snapshot correctly 8`] = `
104
+ <img
105
+ alt=""
106
+ className="css-0"
107
+ src="test.png"
108
+ />
109
+ `;
110
+
111
+ exports[`Image Renders the UI snapshot correctly 9`] = `
112
+ <img
113
+ alt=""
114
+ className="css-0"
115
+ src="test.png"
116
+ />
117
+ `;
118
+
119
+ exports[`Image Renders the UI snapshot correctly 10`] = `
120
+ <div
121
+ className="the-wrap css-1u8qly9"
122
+ >
123
+ <div
124
+ className="the-crop css-0"
125
+ >
126
+ <img
127
+ alt=""
128
+ className="css-0"
129
+ src="test.png"
130
+ />
131
+ </div>
132
+ </div>
133
+ `;
134
+
135
+ exports[`Image Renders the UI snapshot correctly 11`] = `
136
+ <div
137
+ className="the-wrap css-1u8qly9"
138
+ >
139
+ <div
140
+ className="the-crop css-0"
141
+ >
142
+ <img
143
+ alt=""
144
+ className="css-0"
145
+ src="test.png"
146
+ />
147
+ </div>
148
+ </div>
149
+ `;
150
+
151
+ exports[`Image Renders the UI snapshot correctly 12`] = `
152
+ <img
153
+ alt=""
154
+ className="css-0"
155
+ src="test.png"
156
+ />
157
+ `;
158
+
159
+ exports[`Image Renders the UI snapshot correctly 13`] = `
160
+ <div
161
+ className="the-wrap css-1u8qly9"
162
+ >
163
+ <div
164
+ className="the-crop css-0"
165
+ >
166
+ <img
167
+ alt=""
168
+ className="css-0"
169
+ src="test.png"
170
+ />
171
+ </div>
172
+ </div>
173
+ `;
174
+
175
+ exports[`Image Renders the UI snapshot correctly 14`] = `
176
+ <div
177
+ className="the-wrap css-1u8qly9"
178
+ >
179
+ <div
180
+ className="the-crop css-0"
181
+ >
182
+ <img
183
+ alt=""
184
+ className="css-0"
185
+ src="test.png"
186
+ />
187
+ </div>
188
+ </div>
189
+ `;
190
+
191
+ exports[`Image Renders the UI snapshot correctly 15`] = `
192
+ <div
193
+ className="the-wrap css-1u8qly9"
194
+ >
195
+ <div
196
+ className="the-crop css-0"
197
+ >
198
+ <img
199
+ alt=""
200
+ className="css-0"
201
+ src="test.png"
202
+ />
203
+ </div>
204
+ </div>
205
+ `;
206
+
207
+ exports[`Image Renders the UI snapshot correctly 16`] = `
208
+ <div
209
+ className="the-wrap css-1u8qly9"
210
+ >
211
+ <div
212
+ className="the-crop css-0"
213
+ >
214
+ <img
215
+ alt=""
216
+ className="css-0"
217
+ src="test.png"
218
+ />
219
+ </div>
220
+ </div>
221
+ `;
222
+
223
+ exports[`Image Renders the UI snapshot correctly 17`] = `
224
+ <div
225
+ className="the-wrap css-1u8qly9"
226
+ >
227
+ <div
228
+ className="the-crop css-0"
229
+ >
230
+ <img
231
+ alt=""
232
+ className="css-0"
233
+ src="test.png"
234
+ />
235
+ </div>
236
+ </div>
237
+ `;
238
+
239
+ exports[`Image Renders the UI snapshot correctly 18`] = `
240
+ <div
241
+ className="the-wrap css-1u8qly9"
242
+ >
243
+ <div
244
+ className="the-crop css-0"
245
+ >
246
+ <img
247
+ alt=""
248
+ className="css-0"
249
+ src="test.png"
250
+ />
251
+ </div>
252
+ </div>
253
+ `;
254
+
255
+ exports[`Image Renders the UI snapshot correctly 19`] = `
256
+ <img
257
+ alt=""
258
+ className="css-0"
259
+ src="test.png"
260
+ />
261
+ `;
262
+
263
+ exports[`Image Renders the UI snapshot correctly 20`] = `
264
+ <img
265
+ alt=""
266
+ className="css-0"
267
+ src="test.png"
268
+ />
269
+ `;
@@ -0,0 +1,100 @@
1
+ import { Box, VStack } from "@chakra-ui/react";
2
+ import {
3
+ ArgsTable,
4
+ Canvas,
5
+ Description,
6
+ Meta,
7
+ Story,
8
+ } from "@storybook/addon-docs";
9
+
10
+ import Label from "./Label";
11
+ import { getCategory } from "../../utils/componentCategories";
12
+
13
+ <Meta
14
+ title={getCategory("Label")}
15
+ component={Label}
16
+ parameters={{
17
+ jest: ["Label.test.tsx"],
18
+ }}
19
+ argTypes={{
20
+ className: { control: false },
21
+ id: { control: false },
22
+ isInlined: { table: { disable: true } },
23
+ text: {
24
+ description: "Only used for Storybook",
25
+ },
26
+ }}
27
+ />
28
+
29
+ # Label
30
+
31
+ | Component Version | DS Version |
32
+ | ----------------- | ---------- |
33
+ | Added | `0.0.10` |
34
+ | Latest | `0.26.0` |
35
+
36
+ ## Table of Contents
37
+
38
+ - [Overview](#overview)
39
+ - [Component Props](#component-props)
40
+ - [Accessibility](#accessibility)
41
+ - [isRequired helper text](#isrequired-helper-text)
42
+
43
+ ## Overview
44
+
45
+ <Description of={Label} />
46
+
47
+ ## Component Props
48
+
49
+ <Canvas>
50
+ <Story
51
+ name="Label with Controls"
52
+ args={{
53
+ className: undefined,
54
+ htmlFor: "id-of-input-element",
55
+ id: "label-id",
56
+ isRequired: false,
57
+ text: "A label for a villager.",
58
+ }}
59
+ >
60
+ {(args) => <Label {...args}>{args.text}</Label>}
61
+ </Story>
62
+ </Canvas>
63
+
64
+ <ArgsTable story="Label with Controls" />
65
+
66
+ ## Accessibility
67
+
68
+ The `Label` component is an accessible HTML `<label>` element. The JSX prop
69
+ `htmlFor` should be set to the `id` of the input element that the label is
70
+ associated with. This is the proper way to label inputs so that screenreaders
71
+ can read the label, without the use of the `aria-label` attribute on the input
72
+ element.
73
+
74
+ Note: All form-related Reservoir components already implement this `Label`
75
+ component so there is no need to use this component unless if you are building
76
+ a new form-related input component.
77
+
78
+ Resources:
79
+
80
+ - [WebAIM Creating Accessible Forms](https://webaim.org/techniques/forms/advanced)
81
+
82
+ ## isRequired helper text
83
+
84
+ An optional helper string can be rendered at the end of the `Label` text through
85
+ the `isRequired` prop. This is useful for visually labeling a field as required
86
+ with the `"(Required)"` text next to the label's text. This is set to `false`
87
+ by default.
88
+
89
+ <Canvas>
90
+ <Story name="isRequired helper text">
91
+ <VStack>
92
+ <Label htmlFor="label-id1" id="regular">
93
+ A regular label
94
+ </Label>
95
+ <Label htmlFor="label-id2" id="required" isRequired>
96
+ A label that is required
97
+ </Label>
98
+ </VStack>
99
+ </Story>
100
+ </Canvas>
@@ -0,0 +1,116 @@
1
+ import * as React from "react";
2
+ import { render, screen } from "@testing-library/react";
3
+ import { axe } from "jest-axe";
4
+ import renderer from "react-test-renderer";
5
+
6
+ import Label from "./Label";
7
+
8
+ describe("Label Accessibility", () => {
9
+ it("passes axe accessibility test", async () => {
10
+ const { container } = render(
11
+ <Label id="label" htmlFor="some-input-id">
12
+ Cupcakes
13
+ </Label>
14
+ );
15
+ expect(await axe(container)).toHaveNoViolations();
16
+ });
17
+
18
+ it("passes axe accessibility test with required text", async () => {
19
+ const { container } = render(
20
+ <Label id="label" htmlFor="some-input-id" isRequired>
21
+ Cupcakes
22
+ </Label>
23
+ );
24
+ expect(await axe(container)).toHaveNoViolations();
25
+ });
26
+ });
27
+
28
+ describe("Label", () => {
29
+ it("renders a label element when passed text as children", () => {
30
+ render(
31
+ <Label id="label" htmlFor="some-input-id">
32
+ Cupcakes
33
+ </Label>
34
+ );
35
+ expect(screen.getByText("Cupcakes")).toBeInTheDocument();
36
+ });
37
+
38
+ it("renders a label element when passed element as children", () => {
39
+ render(
40
+ <Label id="label" htmlFor="some-input-id">
41
+ <span>Cupcakes</span>
42
+ </Label>
43
+ );
44
+ expect(screen.getByText("Cupcakes")).toBeInTheDocument();
45
+ });
46
+
47
+ it("renders the '(Required)' helper text", () => {
48
+ const { rerender } = render(
49
+ <Label id="label" htmlFor="some-input-id">
50
+ <span>Cupcakes</span>
51
+ </Label>
52
+ );
53
+ expect(screen.queryByText(/Required/i)).not.toBeInTheDocument();
54
+
55
+ rerender(
56
+ <Label id="label" htmlFor="some-input-id" isRequired>
57
+ <span>Cupcakes</span>
58
+ </Label>
59
+ );
60
+
61
+ expect(screen.queryByText(/Required/i)).toBeInTheDocument();
62
+ });
63
+
64
+ it("Logs a warning when there is no `id` passed", () => {
65
+ const warn = jest.spyOn(console, "warn");
66
+ render(
67
+ // @ts-ignore: Typescript complains when a required prop is not passed, but
68
+ // here we don't want to pass the required prop to make sure the warning appears.
69
+ <Label htmlFor="some-input-id">Cupcakes</Label>
70
+ );
71
+ expect(warn).toHaveBeenCalledWith(
72
+ "NYPL Reservoir Label: This component's required `id` prop was not passed."
73
+ );
74
+ });
75
+
76
+ it("Renders the UI snapshot correctly", () => {
77
+ const simple = renderer
78
+ .create(
79
+ <Label id="label" htmlFor="some-input-id">
80
+ Cupcakes
81
+ </Label>
82
+ )
83
+ .toJSON();
84
+ const required = renderer
85
+ .create(
86
+ <Label id="label3" htmlFor="some-input-id" isRequired>
87
+ Cupcakes
88
+ </Label>
89
+ )
90
+ .toJSON();
91
+ const withChakraProps = renderer
92
+ .create(
93
+ <Label
94
+ id="chakra"
95
+ htmlFor="some-input-id"
96
+ p="20px"
97
+ color="ui.error.primary"
98
+ >
99
+ Cupcakes
100
+ </Label>
101
+ )
102
+ .toJSON();
103
+ const withOtherProps = renderer
104
+ .create(
105
+ <Label id="props" htmlFor="some-input-id" data-testid="props">
106
+ Cupcakes
107
+ </Label>
108
+ )
109
+ .toJSON();
110
+
111
+ expect(simple).toMatchSnapshot();
112
+ expect(required).toMatchSnapshot();
113
+ expect(withChakraProps).toMatchSnapshot();
114
+ expect(withOtherProps).toMatchSnapshot();
115
+ });
116
+ });
@@ -0,0 +1,55 @@
1
+ import { Box, chakra, useStyleConfig } from "@chakra-ui/react";
2
+ import * as React from "react";
3
+
4
+ interface LabelProps {
5
+ /** Additional CSS class name to render in the `label` element. */
6
+ className?: string;
7
+ /** The id of the html element that this `Label` is describing. */
8
+ htmlFor: string;
9
+ /** ID that other components can cross reference for accessibility purposes */
10
+ id?: string;
11
+ /** Controls whether the label should be inline with the input it goes with.
12
+ * This prop should only be used internally. */
13
+ isInlined?: boolean;
14
+ /** Controls whether the "(Required)" text should be displayed alongside the
15
+ * label's text. False by default. */
16
+ isRequired?: boolean;
17
+ }
18
+
19
+ /**
20
+ * A label for form inputs. It should never be used alone.
21
+ */
22
+ export const Label = chakra((props: React.PropsWithChildren<LabelProps>) => {
23
+ const {
24
+ children,
25
+ className,
26
+ htmlFor,
27
+ id,
28
+ isInlined = false,
29
+ isRequired = false,
30
+ ...rest
31
+ } = props;
32
+ const styles = useStyleConfig("Label", { isInlined });
33
+
34
+ if (!id) {
35
+ console.warn(
36
+ "NYPL Reservoir Label: This component's required `id` prop was not passed."
37
+ );
38
+ }
39
+
40
+ return (
41
+ <Box
42
+ as="label"
43
+ id={id}
44
+ className={className}
45
+ htmlFor={htmlFor}
46
+ __css={styles}
47
+ {...rest}
48
+ >
49
+ {children}
50
+ {isRequired && <span> (Required)</span>}
51
+ </Box>
52
+ );
53
+ });
54
+
55
+ export default Label;
@@ -0,0 +1,45 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Label Renders the UI snapshot correctly 1`] = `
4
+ <label
5
+ className="css-1xdhyk6"
6
+ htmlFor="some-input-id"
7
+ id="label"
8
+ >
9
+ Cupcakes
10
+ </label>
11
+ `;
12
+
13
+ exports[`Label Renders the UI snapshot correctly 2`] = `
14
+ <label
15
+ className="css-1xdhyk6"
16
+ htmlFor="some-input-id"
17
+ id="label3"
18
+ >
19
+ Cupcakes
20
+ <span>
21
+ (Required)
22
+ </span>
23
+ </label>
24
+ `;
25
+
26
+ exports[`Label Renders the UI snapshot correctly 3`] = `
27
+ <label
28
+ className="css-kle7zy"
29
+ htmlFor="some-input-id"
30
+ id="chakra"
31
+ >
32
+ Cupcakes
33
+ </label>
34
+ `;
35
+
36
+ exports[`Label Renders the UI snapshot correctly 4`] = `
37
+ <label
38
+ className="css-1xdhyk6"
39
+ data-testid="props"
40
+ htmlFor="some-input-id"
41
+ id="props"
42
+ >
43
+ Cupcakes
44
+ </label>
45
+ `;