@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,140 @@
1
+ import { renderHook, act } from "@testing-library/react-hooks";
2
+ import useCarouselStyles from "../useCarouselStyles";
3
+
4
+ describe("useCarouselStyles hook", () => {
5
+ it("returns two functions and a CSS style object", () => {
6
+ const { result } = renderHook(() => useCarouselStyles());
7
+
8
+ expect(typeof result.current.nextSlide).toEqual("function");
9
+ expect(typeof result.current.prevSlide).toEqual("function");
10
+ expect(result.current.carouselStyle).toEqual({
11
+ marginLeft: "-0%",
12
+ transition: "all .5s",
13
+ });
14
+ });
15
+
16
+ it("updates the style object when the nextSlide function is clicked", () => {
17
+ // Mocking we have an array of five slides.
18
+ const slides = [1, 2, 3, 4, 5];
19
+ const { result } = renderHook(() => useCarouselStyles(slides.length));
20
+ const nextSlide = result.current.nextSlide;
21
+
22
+ // Start at the first slide.
23
+ expect(result.current.carouselStyle).toEqual({
24
+ marginLeft: "-0%",
25
+ transition: "all .5s",
26
+ });
27
+
28
+ act(() => nextSlide());
29
+ // Each slide takes up a width of 100% by default.
30
+ // So now we move by 100% to the left for the next slide.
31
+ expect(result.current.carouselStyle).toEqual({
32
+ marginLeft: "-100%",
33
+ transition: "all .5s",
34
+ });
35
+
36
+ act(() => nextSlide());
37
+ // Move on to the next slide.
38
+ expect(result.current.carouselStyle).toEqual({
39
+ marginLeft: "-200%",
40
+ transition: "all .5s",
41
+ });
42
+
43
+ // We now click through all five slides and we expect to wrap around
44
+ // back to the first slide which starts at "-0%" (the negative value
45
+ // is set for direction but -0 is still 0).
46
+ act(() => nextSlide());
47
+ act(() => nextSlide());
48
+ act(() => nextSlide());
49
+ expect(result.current.carouselStyle).toEqual({
50
+ marginLeft: "-0%",
51
+ transition: "all .5s",
52
+ });
53
+ });
54
+
55
+ it("updates the style object when the prevSlide function is clicked", () => {
56
+ // Mocking we have an array of five slides.
57
+ const slides = [1, 2, 3, 4, 5];
58
+ const { result } = renderHook(() => useCarouselStyles(slides.length));
59
+ const prevSlide = result.current.prevSlide;
60
+
61
+ // Start at the first slide.
62
+ expect(result.current.carouselStyle).toEqual({
63
+ marginLeft: "-0%",
64
+ transition: "all .5s",
65
+ });
66
+
67
+ act(() => prevSlide());
68
+ // We started on the first slide and nwo we expect to wrap around
69
+ // to the last element.
70
+ expect(result.current.carouselStyle).toEqual({
71
+ marginLeft: "-400%",
72
+ transition: "all .5s",
73
+ });
74
+
75
+ act(() => prevSlide());
76
+ // Move on to the previous slide.
77
+ expect(result.current.carouselStyle).toEqual({
78
+ marginLeft: "-300%",
79
+ transition: "all .5s",
80
+ });
81
+
82
+ // We now clicked through all five slides and we expect to
83
+ // be at the first slide.
84
+ act(() => prevSlide());
85
+ act(() => prevSlide());
86
+ act(() => prevSlide());
87
+ expect(result.current.carouselStyle).toEqual({
88
+ marginLeft: "-0%",
89
+ transition: "all .5s",
90
+ });
91
+ });
92
+
93
+ it("resets the slide back to the first slide", () => {
94
+ // Mocking we have an array of five slides.
95
+ const slides = [1, 2, 3, 4, 5];
96
+ const { result } = renderHook(() => useCarouselStyles(slides.length));
97
+ const { nextSlide, goToStart } = result.current;
98
+
99
+ // Start at the first slide.
100
+ expect(result.current.carouselStyle).toEqual({
101
+ marginLeft: "-0%",
102
+ transition: "all .5s",
103
+ });
104
+
105
+ // Move on to the third slide.
106
+ act(() => nextSlide());
107
+ act(() => nextSlide());
108
+ act(() => nextSlide());
109
+ expect(result.current.carouselStyle).toEqual({
110
+ marginLeft: "-300%",
111
+ transition: "all .5s",
112
+ });
113
+
114
+ act(() => goToStart());
115
+ expect(result.current.carouselStyle).toEqual({
116
+ marginLeft: "-0%",
117
+ transition: "all .5s",
118
+ });
119
+ });
120
+
121
+ it("can set a custom slide count and slide width", () => {
122
+ const slides = [1, 2, 3];
123
+ const slideWidth = 50;
124
+ const { result } = renderHook(() =>
125
+ useCarouselStyles(slides.length, slideWidth)
126
+ );
127
+
128
+ expect(result.current.carouselStyle).toEqual({
129
+ marginLeft: "-0%",
130
+ transition: "all .5s",
131
+ });
132
+
133
+ act(() => result.current.nextSlide());
134
+ // Since each slide is of length 50, we expect to move by a 50%.
135
+ expect(result.current.carouselStyle).toEqual({
136
+ marginLeft: "-50%",
137
+ transition: "all .5s",
138
+ });
139
+ });
140
+ });
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import { renderHook } from "@testing-library/react-hooks";
3
+
4
+ import useNYPLTheme from "../useNYPLTheme";
5
+ import DSProvider from "../../theme/provider";
6
+
7
+ describe("useNYPLTheme", () => {
8
+ it("returns an empty object when not used inside a DSProvider component", () => {
9
+ const warn = jest.spyOn(console, "warn");
10
+ const { result } = renderHook(() => useNYPLTheme());
11
+
12
+ expect(warn).toHaveBeenCalledWith(
13
+ "NYPL Reservoir useNYPLTheme: hook must be used inside of `<DSProvider />`."
14
+ );
15
+ expect(result.current).toEqual({});
16
+ });
17
+
18
+ it("returns an object with NYPL styles", () => {
19
+ const { result } = renderHook(() => useNYPLTheme(), {
20
+ wrapper: ({ children }) => <DSProvider>{children}</DSProvider>,
21
+ });
22
+ const allKeys = Object.keys(result.current);
23
+ const colorsKeys = Object.keys((result.current as any).colors);
24
+
25
+ expect(allKeys).toEqual([
26
+ "breakpoints",
27
+ "colors",
28
+ "fontSizes",
29
+ "fontWeights",
30
+ "fonts",
31
+ "radii",
32
+ "space",
33
+ ]);
34
+ expect(colorsKeys).toEqual(["brand", "section", "transparent", "ui"]);
35
+ });
36
+ });
@@ -0,0 +1,30 @@
1
+ import { Meta, Description } from "@storybook/addon-docs";
2
+
3
+ import { getCategory } from "../utils/componentCategories";
4
+
5
+ <Meta title={getCategory("useCarouselStyles")} />
6
+
7
+ # useCarouselStyles
8
+
9
+ | Hook Version | DS Version |
10
+ | ------------ | ---------- |
11
+ | Added | `0.25.2` |
12
+ | Latest | `0.25.2` |
13
+
14
+ This custom hook, inspired by this [codesandbox example](https://codesandbox.io/s/fxjeo),
15
+ exposes functions used for carousel-like components that have sliding features.
16
+ The two main functions are `prevSlide` and `nextSlide` used for buttons to
17
+ navigate between slides, and a `carouselStyle` style object for the main wrapper
18
+ element. If the carousel should programmatically slide to the first slide, use
19
+ the `goToStart` function.
20
+
21
+ ## Usage
22
+
23
+ For a full implementation examle, view the [`Tabs` component](https://github.com/NYPL/nypl-design-system/blob/development/src/components/Tabs/Tabs.tsx).
24
+
25
+ ```tsx
26
+ const { prevSlide, nextSlide, carouselStyle, goToStart } = useCarouselStyles(
27
+ slidesCount,
28
+ slideWidth
29
+ );
30
+ ```
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+
3
+ /**
4
+ * Custom hook that controls the sliding function for the carousel wrapper.
5
+ * This returns functions to use for the "previous" and "next" buttons as well
6
+ * as a CSS style object that should be use to transition between slides. There
7
+ * is also a function to programmatically slide to the first slide.
8
+ * Inspired by: https://codesandbox.io/s/fxjeo
9
+ */
10
+ export const useCarouselStyles = (slidesCount = 0, slideWidth = 100) => {
11
+ const [currentSlide, setCurrentSlide] = React.useState(0);
12
+ // This wraps around to the last slide if this is invoked while the
13
+ // first slide is active.
14
+ const prevSlide = () => {
15
+ setCurrentSlide((slide) => (slide === 0 ? slidesCount - 1 : slide - 1));
16
+ };
17
+ // This wraps around to the first slide if this is invoked while the
18
+ // last slide is active.
19
+ const nextSlide = () => {
20
+ setCurrentSlide((slide) => (slide === slidesCount - 1 ? 0 : slide + 1));
21
+ };
22
+ const goToStart = () => {
23
+ setCurrentSlide(0);
24
+ };
25
+ // Updates the left margin for the carousel so the elements can
26
+ // slide inside the container.
27
+ const carouselStyle = {
28
+ transition: "all .5s",
29
+ marginLeft: `-${currentSlide * slideWidth}%`,
30
+ };
31
+
32
+ return { prevSlide, nextSlide, carouselStyle, goToStart };
33
+ };
34
+
35
+ export default useCarouselStyles;
@@ -0,0 +1,98 @@
1
+ import { Meta } from "@storybook/addon-docs";
2
+ import { getCategory } from "../utils/componentCategories";
3
+
4
+ <Meta title={getCategory("useNYPLTheme")} />
5
+
6
+ # useNYPLTheme
7
+
8
+ | Hook Version | DS Version |
9
+ | ------------ | ---------- |
10
+ | Added | `0.25.2` |
11
+ | Latest | `0.25.2` |
12
+
13
+ This custom hook is based on Chakra UI's `useTheme` hook. If your application
14
+ does not use CSS or SCSS files and you want to write CSS-in-JS styles in your
15
+ React components, the `useNYPLTheme` hook will provide you with NYPL-specific
16
+ style values.
17
+
18
+ ## Usage
19
+
20
+ This hook depends on the `DSProvider` component and if the function is used
21
+ outside of this wrapper component, then the theme object will be empty. After
22
+ importing and rendering the `DSProvider` wrapper component, your children
23
+ components can use this hook function.
24
+
25
+ ```tsx
26
+ import { useNYPLTheme } from "@nypl/design-system-react-components";
27
+ // ...
28
+
29
+ const theme = useNYPLTheme();
30
+ ```
31
+
32
+ The `theme` variable will be a JS object with design token style values.
33
+ This will allow you to use NYPL-specific styles in your components through CSS-in-JS.
34
+
35
+ ```ts
36
+ // theme:
37
+ {
38
+ breakpoints: { ... },
39
+ colors: {
40
+ brand: { ... },
41
+ section: { ... },
42
+ transparent: { ... },
43
+ ui: { ... },
44
+ },
45
+ fontSizes: { ... },
46
+ fontWeights: { ... },
47
+ fonts: { ... },
48
+ radii: { ... },
49
+ space: { ... },
50
+ }
51
+ ```
52
+
53
+ 1. NYPL DS Components
54
+
55
+ All DS components _should_ be used with their current styles. If a DS component
56
+ needs an updated style, first contact the Design System and UX teams about this
57
+ update. If you really _need_ to update a style and there is no available
58
+ variant, then you can add styles directly as style prop.
59
+
60
+ For example, if the `Heading` component should render the text in NYPL's green
61
+ color used for "success primary" and add a bold font weight, then you can do
62
+ the following:
63
+
64
+ ```tsx
65
+ const theme = useNYPLTheme();
66
+
67
+ // ...
68
+ return (
69
+ <div>
70
+ <Heading
71
+ level={2}
72
+ color={theme.colors.ui.success.primary}
73
+ fontWeight={theme.fontWeights.bold}
74
+ >
75
+ Get a Digital Library Card Today in a Few Easy Steps
76
+ </Heading>
77
+
78
+ {/* Other components */}
79
+ </div>
80
+ );
81
+ ```
82
+
83
+ Of course, you can destructure the `theme` object to only get the object keys
84
+ you need for your component (this is a general example). Log the object to the
85
+ console to see all the available styles.
86
+
87
+ 2. HTML Components
88
+
89
+ Use the `style` attribute in HTML components to add inline styles.
90
+
91
+ ```tsx
92
+ <p style={{ color: theme.colors.ui.success.primary }}>
93
+ If you are 13 or older and live, work, attend school, or pay property taxes in
94
+ New York State, you can get a free digital library card right now using this
95
+ online form. Visitors to New York State can also use this form to apply for a
96
+ temporary card.
97
+ </p>
98
+ ```
@@ -0,0 +1,91 @@
1
+ import { useTheme } from "@chakra-ui/react";
2
+
3
+ /**
4
+ * A custom hook that returns the Chakra-based NYPL theme object. This must be
5
+ * used inside a component that is wrapped in the `DSProvider` component, so
6
+ * that the theme object can be available to use.
7
+ */
8
+ function useNYPLTheme() {
9
+ const theme = useTheme();
10
+ if (!theme || Object.keys(theme).length === 0) {
11
+ console.warn(
12
+ "NYPL Reservoir useNYPLTheme: hook must be used inside of `<DSProvider />`."
13
+ );
14
+ return {};
15
+ }
16
+
17
+ // Chakra provides a lot of their own styles but
18
+ // only NYPL styles should be exported.
19
+ return {
20
+ // base, sm, md, lg, xl, 2xl
21
+ breakpoints: theme.breakpoints,
22
+ colors: {
23
+ // primary, secondary
24
+ brand: theme.colors.brand,
25
+ // blogs, books-and-more, education, locations,
26
+ // research, research-library, whats-on
27
+ section: theme.colors.section,
28
+ transparent: theme.colors.transparent,
29
+ // black, disabled, error, focus, gray, link,
30
+ // status, success, test, warning, white
31
+ ui: theme.colors.ui,
32
+ },
33
+ fontSizes: {
34
+ "-3": theme.fontSizes["-3"],
35
+ "-2": theme.fontSizes["-2"],
36
+ "-1": theme.fontSizes["-1"],
37
+ "0": theme.fontSizes["0"],
38
+ "1": theme.fontSizes["1"],
39
+ "2": theme.fontSizes["2"],
40
+ "3": theme.fontSizes["3"],
41
+ "4": theme.fontSizes["4"],
42
+ // default
43
+ breadcrumbs: theme.fontSizes.breadcrumbs,
44
+ // default
45
+ button: theme.fontSizes.button,
46
+ // primary, secondary, tertiary, callout
47
+ heading: theme.fontSizes.heading,
48
+ // default
49
+ helper: theme.fontSizes.helper,
50
+ // default, secondary
51
+ label: theme.fontSizes.label,
52
+ // default, caption, tag, mini
53
+ text: theme.fontSizes.text,
54
+ },
55
+ fontWeights: {
56
+ light: theme.fontWeights.light,
57
+ regular: theme.fontWeights.regular,
58
+ medium: theme.fontWeights.medium,
59
+ bold: theme.fontWeights.bold,
60
+ // default, lastChild
61
+ breadcrumbs: theme.fontWeights.breadcrumbs,
62
+ // default
63
+ button: theme.fontWeights.button,
64
+ // primary, secondary, tertiary, callout
65
+ heading: theme.fontWeights.heading,
66
+ // default
67
+ helper: theme.fontWeights.helper,
68
+ // default
69
+ label: theme.fontWeights.label,
70
+ // default, caption, tag, mini
71
+ text: theme.fontWeights.text,
72
+ },
73
+ fonts: {
74
+ body: theme.fonts.body,
75
+ heading: theme.fonts.heading,
76
+ },
77
+ radii: theme.radii,
78
+ space: {
79
+ xxs: theme.space.xxs,
80
+ xs: theme.space.xs,
81
+ s: theme.space.s,
82
+ m: theme.space.m,
83
+ l: theme.space.l,
84
+ xl: theme.space.xl,
85
+ xxl: theme.space.xxl,
86
+ xxxl: theme.space.xxxl,
87
+ },
88
+ };
89
+ }
90
+
91
+ export default useNYPLTheme;
@@ -0,0 +1,23 @@
1
+ import { Meta } from "@storybook/addon-docs";
2
+ import { getCategory } from "../utils/componentCategories";
3
+
4
+ <Meta title={getCategory("useWindowSize")} />
5
+
6
+ # useWindowSize
7
+
8
+ | Hook Version | DS Version |
9
+ | ------------ | ---------- |
10
+ | Added | `0.25.2` |
11
+ | Latest | `0.25.2` |
12
+
13
+ This hook is based on [Typescript hooks](https://usehooks-typescript.com/react-hook/use-window-size).
14
+ It returns an object with `width` and `height` properties that can be used to
15
+ update a component's UI based on the size of the browser window.
16
+
17
+ ## Usage
18
+
19
+ For an example implementation, view the [`Tabs` component](https://github.com/NYPL/nypl-design-system/blob/development/src/components/Tabs/Tabs.tsx).
20
+
21
+ ```tsx
22
+ const { height, width } = useWindowSize();
23
+ ```
@@ -0,0 +1,40 @@
1
+ import React from "react";
2
+
3
+ interface WindowSize {
4
+ width: number;
5
+ height: number;
6
+ }
7
+
8
+ /**
9
+ * React hook used to get the window size on device resizing.
10
+ * Based on https://usehooks-typescript.com/react-hook/use-window-size
11
+ */
12
+ function useWindowSize(): WindowSize {
13
+ const [windowSize, setWindowSize] = React.useState<WindowSize>({
14
+ width: 0,
15
+ height: 0,
16
+ });
17
+
18
+ React.useEffect(() => {
19
+ const handler = () => {
20
+ setWindowSize({
21
+ width: window.innerWidth,
22
+ height: window.innerHeight,
23
+ });
24
+ };
25
+
26
+ // Set size at the first client-side load
27
+ handler();
28
+
29
+ window.addEventListener("resize", handler);
30
+
31
+ // Remove event listener on cleanup
32
+ return () => {
33
+ window.removeEventListener("resize", handler);
34
+ };
35
+ }, []);
36
+
37
+ return windowSize;
38
+ }
39
+
40
+ export default useWindowSize;
package/src/index.ts ADDED
@@ -0,0 +1,136 @@
1
+ import "./styles.scss";
2
+
3
+ // Note that the NYPL Design System directly re-exports the following
4
+ // components for usage in consuming applications.
5
+ export {
6
+ Box,
7
+ Center,
8
+ Circle,
9
+ Flex,
10
+ Grid,
11
+ GridItem,
12
+ HStack,
13
+ Spacer,
14
+ Square,
15
+ Stack,
16
+ VStack,
17
+ } from "@chakra-ui/react";
18
+ export {
19
+ default as Accordion,
20
+ AccordionTypes,
21
+ } from "./components/Accordion/Accordion";
22
+ export {
23
+ default as Breadcrumbs,
24
+ BreadcrumbsTypes,
25
+ } from "./components/Breadcrumbs/Breadcrumbs";
26
+ export { default as Button, ButtonTypes } from "./components/Button/Button";
27
+ export { default as ButtonGroup } from "./components/ButtonGroup/ButtonGroup";
28
+ export {
29
+ default as Card,
30
+ CardActions,
31
+ CardContent,
32
+ CardHeading,
33
+ } from "./components/Card/Card";
34
+ export { default as Checkbox } from "./components/Checkbox/Checkbox";
35
+ export { default as CheckboxGroup } from "./components/CheckboxGroup/CheckboxGroup";
36
+ export {
37
+ default as DatePicker,
38
+ DatePickerTypes,
39
+ FullDateType,
40
+ } from "./components/DatePicker/DatePicker";
41
+ export { default as DSProvider } from "./theme/provider";
42
+ export { default as Fieldset } from "./components/Fieldset/Fieldset";
43
+ export { default as Form, FormField, FormRow } from "./components/Form/Form";
44
+ export {
45
+ default as Heading,
46
+ HeadingSizes,
47
+ HeadingLevels,
48
+ } from "./components/Heading/Heading";
49
+ export { default as HelperErrorText } from "./components/HelperErrorText/HelperErrorText";
50
+ export { default as Hero, HeroTypes } from "./components/Hero/Hero";
51
+ export { default as HorizontalRule } from "./components/HorizontalRule/HorizontalRule";
52
+ export {
53
+ default as Icon,
54
+ IconAlign,
55
+ IconColors,
56
+ IconNames,
57
+ IconRotationTypes,
58
+ IconSizes,
59
+ IconTypes,
60
+ } from "./components/Icons/Icon";
61
+ export {
62
+ default as Image,
63
+ ImageRatios,
64
+ ImageSizes,
65
+ ImageTypes,
66
+ } from "./components/Image/Image";
67
+ export { default as Label } from "./components/Label/Label";
68
+ export { LayoutTypes } from "./helpers/types";
69
+ export { default as Link, LinkTypes } from "./components/Link/Link";
70
+ export { default as List, ListTypes } from "./components/List/List";
71
+ export { default as Logo, LogoNames, LogoSizes } from "./components/Logo/Logo";
72
+ export { ModalTrigger, useModal } from "./components/Modal/Modal";
73
+ export {
74
+ default as Notification,
75
+ NotificationTypes,
76
+ } from "./components/Notification/Notification";
77
+ export { default as Pagination } from "./components/Pagination/Pagination";
78
+ export {
79
+ default as ProgressIndicator,
80
+ ProgressIndicatorSizes,
81
+ ProgressIndicatorTypes,
82
+ } from "./components/ProgressIndicator/ProgressIndicator";
83
+ export { default as Radio } from "./components/Radio/Radio";
84
+ export { default as RadioGroup } from "./components/RadioGroup/RadioGroup";
85
+ export { default as SearchBar } from "./components/SearchBar/SearchBar";
86
+ export { default as Select, LabelPositions } from "./components/Select/Select";
87
+ export { default as SimpleGrid, GridGaps } from "./components/Grid/SimpleGrid";
88
+ export {
89
+ default as SkeletonLoader,
90
+ SkeletonLoaderImageRatios,
91
+ } from "./components/SkeletonLoader/SkeletonLoader";
92
+ export { default as SkipNavigation } from "./components/SkipNavigation/SkipNavigation";
93
+ export { default as Slider } from "./components/Slider/Slider";
94
+ export {
95
+ default as StatusBadge,
96
+ StatusBadgeTypes,
97
+ } from "./components/StatusBadge/StatusBadge";
98
+ export {
99
+ default as StructuredContent,
100
+ StructuredContentImagePosition,
101
+ } from "./components/StructuredContent/StructuredContent";
102
+ export {
103
+ default as Tabs,
104
+ TabList,
105
+ Tab,
106
+ TabPanels,
107
+ TabPanel,
108
+ } from "./components/Tabs/Tabs";
109
+ export {
110
+ TemplateAppContainer,
111
+ Template,
112
+ TemplateAboveHeader,
113
+ TemplateHeader,
114
+ TemplateBreakout,
115
+ TemplateContent,
116
+ TemplateContentTop,
117
+ TemplateContentPrimary,
118
+ TemplateContentSidebar,
119
+ TemplateFooter,
120
+ } from "./components/Template/Template";
121
+ export { default as Text, TextSizes } from "./components/Text/Text";
122
+ export {
123
+ default as TextInput,
124
+ TextInputRefType,
125
+ TextInputTypes,
126
+ } from "./components/TextInput/TextInput";
127
+ export { default as Toggle, ToggleSizes } from "./components/Toggle/Toggle";
128
+ export { default as useCarouselStyles } from "./hooks/useCarouselStyles";
129
+ export { default as useNYPLTheme } from "./hooks/useNYPLTheme";
130
+ export { default as useWindowSize } from "./hooks/useWindowSize";
131
+ export {
132
+ default as VideoPlayer,
133
+ VideoPlayerAspectRatios,
134
+ VideoPlayerTypes,
135
+ } from "./components/VideoPlayer/VideoPlayer";
136
+ export { default as Table } from "./components/Table/Table";
@@ -0,0 +1,6 @@
1
+ // Resources to export as sass mixins
2
+ @import "./styles/base/01-breakpoints";
3
+ @import "./styles/base/02-mixins";
4
+ @import "./styles/space/space-inline";
5
+ @import "./styles/space/space-inset";
6
+ @import "./styles/space/space-stack";
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Breakpoint Configuration
3
+ * @see https://github.com/Team-Sass/breakpoint/wiki
4
+ */
5
+
6
+ // Global Breakpoints
7
+
8
+ // Avoid using in favor of atomic, content-specific, breakpoints.
9
+ // These should be used for generic code, like layouts and typography, only.
10
+ // The CSS variables and the Sass variables below need to stay in sync.
11
+ // Sass' breakpoint() mixin doesn't work without Sass variables.
12
+ // CSS variables expose the breakpoint variables to consumers.
13
+ :root {
14
+ --nypl-breakpoint-small: 320px;
15
+ --nypl-breakpoint-medium: 600px;
16
+ --nypl-breakpoint-large: 960px;
17
+ --nypl-breakpoint-xl: 1280px;
18
+ }
19
+
20
+ $nypl-breakpoint-small: 320px;
21
+ $nypl-breakpoint-medium: 600px;
22
+ $nypl-breakpoint-large: 960px;
23
+ $nypl-breakpoint-xl: 1280px;
24
+ // The max-width breakpoint is used when the design should be applied at
25
+ // whatever the largest breakpoint is regardless of actual pixel value,
26
+ // e.g. removing outer margin on body wrapper.
27
+ $nypl-max-width: $nypl-breakpoint-xl;