@nypl/design-system-react-components 1.0.2 → 1.0.3-beta

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 (282) hide show
  1. package/README.md +0 -2
  2. package/dist/components/Slider/Slider.d.ts +1 -2
  3. package/dist/components/TextInput/TextInput.d.ts +2 -1
  4. package/dist/design-system-react-components.cjs.development.js +33 -10
  5. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  6. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  7. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  8. package/dist/design-system-react-components.esm.js +33 -10
  9. package/dist/design-system-react-components.esm.js.map +1 -1
  10. package/dist/hooks/{tests → __tests__}/useCarouselStyles.test.d.ts +0 -0
  11. package/dist/theme/components/global.d.ts +1 -1
  12. package/dist/theme/components/radio.d.ts +8 -0
  13. package/dist/theme/components/template.d.ts +4 -1
  14. package/package.json +2 -3
  15. package/CHANGELOG.md +0 -1430
  16. package/src/__tests__/fileMock.ts +0 -6
  17. package/src/__tests__/setup.ts +0 -27
  18. package/src/__tests__/utils/utils.test.ts +0 -18
  19. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +0 -42
  20. package/src/components/Accordion/Accordion.stories.mdx +0 -333
  21. package/src/components/Accordion/Accordion.test.tsx +0 -237
  22. package/src/components/Accordion/Accordion.tsx +0 -137
  23. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +0 -734
  24. package/src/components/Autosuggest/Autosuggest.stories.mdx +0 -75
  25. package/src/components/Autosuggest/Autosuggest.stories.tsx +0 -211
  26. package/src/components/Autosuggest/_Autosuggest.scss +0 -51
  27. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +0 -231
  28. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +0 -144
  29. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -98
  30. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +0 -695
  31. package/src/components/Button/Button.stories.mdx +0 -320
  32. package/src/components/Button/Button.test.tsx +0 -184
  33. package/src/components/Button/Button.tsx +0 -95
  34. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -106
  35. package/src/components/ButtonGroup/ButtonGroup.stories.mdx +0 -178
  36. package/src/components/ButtonGroup/ButtonGroup.test.tsx +0 -141
  37. package/src/components/ButtonGroup/ButtonGroup.tsx +0 -100
  38. package/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap +0 -117
  39. package/src/components/Card/Card.stories.mdx +0 -1041
  40. package/src/components/Card/Card.test.tsx +0 -388
  41. package/src/components/Card/Card.tsx +0 -346
  42. package/src/components/Card/__snapshots__/Card.test.tsx.snap +0 -568
  43. package/src/components/Chakra/Box.stories.mdx +0 -52
  44. package/src/components/Chakra/Center.stories.mdx +0 -96
  45. package/src/components/Chakra/Flex.stories.mdx +0 -111
  46. package/src/components/Chakra/Grid.stories.mdx +0 -89
  47. package/src/components/Chakra/Stack.stories.mdx +0 -109
  48. package/src/components/Checkbox/Checkbox.stories.mdx +0 -243
  49. package/src/components/Checkbox/Checkbox.test.tsx +0 -350
  50. package/src/components/Checkbox/Checkbox.tsx +0 -152
  51. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +0 -661
  52. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +0 -462
  53. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +0 -492
  54. package/src/components/CheckboxGroup/CheckboxGroup.tsx +0 -173
  55. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +0 -1842
  56. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +0 -163
  57. package/src/components/ComponentWrapper/ComponentWrapper.tsx +0 -76
  58. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +0 -103
  59. package/src/components/DatePicker/DatePicker.stories.mdx +0 -452
  60. package/src/components/DatePicker/DatePicker.test.tsx +0 -940
  61. package/src/components/DatePicker/DatePicker.tsx +0 -450
  62. package/src/components/DatePicker/_DatePicker.scss +0 -100
  63. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -908
  64. package/src/components/Fieldset/Fieldset.stories.mdx +0 -96
  65. package/src/components/Fieldset/Fieldset.test.tsx +0 -155
  66. package/src/components/Fieldset/Fieldset.tsx +0 -55
  67. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +0 -89
  68. package/src/components/Form/Form.stories.mdx +0 -426
  69. package/src/components/Form/Form.test.tsx +0 -234
  70. package/src/components/Form/Form.tsx +0 -124
  71. package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -115
  72. package/src/components/Grid/SimpleGrid.stories.mdx +0 -336
  73. package/src/components/Grid/SimpleGrid.test.tsx +0 -79
  74. package/src/components/Grid/SimpleGrid.tsx +0 -49
  75. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +0 -23
  76. package/src/components/Heading/Heading.stories.mdx +0 -187
  77. package/src/components/Heading/Heading.test.tsx +0 -171
  78. package/src/components/Heading/Heading.tsx +0 -104
  79. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +0 -90
  80. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +0 -172
  81. package/src/components/HelperErrorText/HelperErrorText.test.tsx +0 -114
  82. package/src/components/HelperErrorText/HelperErrorText.tsx +0 -62
  83. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +0 -93
  84. package/src/components/Hero/Hero.stories.mdx +0 -378
  85. package/src/components/Hero/Hero.test.tsx +0 -611
  86. package/src/components/Hero/Hero.tsx +0 -203
  87. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +0 -379
  88. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +0 -73
  89. package/src/components/HorizontalRule/HorizontalRule.test.tsx +0 -54
  90. package/src/components/HorizontalRule/HorizontalRule.tsx +0 -27
  91. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +0 -44
  92. package/src/components/Icons/Icon.stories.mdx +0 -413
  93. package/src/components/Icons/Icon.test.tsx +0 -120
  94. package/src/components/Icons/Icon.tsx +0 -187
  95. package/src/components/Icons/IconSvgs.tsx +0 -64
  96. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +0 -129
  97. package/src/components/Image/Image.stories.mdx +0 -332
  98. package/src/components/Image/Image.test.tsx +0 -155
  99. package/src/components/Image/Image.tsx +0 -171
  100. package/src/components/Image/__snapshots__/Image.test.tsx.snap +0 -269
  101. package/src/components/Label/Label.stories.mdx +0 -100
  102. package/src/components/Label/Label.test.tsx +0 -116
  103. package/src/components/Label/Label.tsx +0 -55
  104. package/src/components/Label/__snapshots__/Label.test.tsx.snap +0 -45
  105. package/src/components/Link/Link.stories.mdx +0 -249
  106. package/src/components/Link/Link.test.tsx +0 -224
  107. package/src/components/Link/Link.tsx +0 -178
  108. package/src/components/Link/__snapshots__/Link.test.tsx.snap +0 -286
  109. package/src/components/List/List.stories.mdx +0 -393
  110. package/src/components/List/List.test.tsx +0 -265
  111. package/src/components/List/List.tsx +0 -156
  112. package/src/components/List/__snapshots__/List.test.tsx.snap +0 -213
  113. package/src/components/Logo/Logo.stories.mdx +0 -295
  114. package/src/components/Logo/Logo.test.tsx +0 -116
  115. package/src/components/Logo/Logo.tsx +0 -151
  116. package/src/components/Logo/LogoSvgs.tsx +0 -90
  117. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +0 -142
  118. package/src/components/Modal/Modal.stories.mdx +0 -294
  119. package/src/components/Modal/Modal.test.tsx +0 -157
  120. package/src/components/Modal/Modal.tsx +0 -154
  121. package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +0 -25
  122. package/src/components/Notification/Notification.stories.mdx +0 -358
  123. package/src/components/Notification/Notification.test.tsx +0 -279
  124. package/src/components/Notification/Notification.tsx +0 -224
  125. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +0 -525
  126. package/src/components/Pagination/Pagination.stories.mdx +0 -184
  127. package/src/components/Pagination/Pagination.test.tsx +0 -419
  128. package/src/components/Pagination/Pagination.tsx +0 -269
  129. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -544
  130. package/src/components/Placeholder/Placeholder.tsx +0 -19
  131. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +0 -360
  132. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +0 -298
  133. package/src/components/ProgressIndicator/ProgressIndicator.tsx +0 -132
  134. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +0 -434
  135. package/src/components/Radio/Radio.stories.mdx +0 -216
  136. package/src/components/Radio/Radio.test.tsx +0 -247
  137. package/src/components/Radio/Radio.tsx +0 -119
  138. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +0 -451
  139. package/src/components/RadioGroup/RadioGroup.stories.mdx +0 -479
  140. package/src/components/RadioGroup/RadioGroup.test.tsx +0 -471
  141. package/src/components/RadioGroup/RadioGroup.tsx +0 -171
  142. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +0 -1550
  143. package/src/components/SearchBar/SearchBar.stories.mdx +0 -518
  144. package/src/components/SearchBar/SearchBar.test.tsx +0 -435
  145. package/src/components/SearchBar/SearchBar.tsx +0 -210
  146. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +0 -1049
  147. package/src/components/Select/Select.stories.mdx +0 -439
  148. package/src/components/Select/Select.test.tsx +0 -358
  149. package/src/components/Select/Select.tsx +0 -183
  150. package/src/components/Select/__snapshots__/Select.test.tsx.snap +0 -895
  151. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +0 -142
  152. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +0 -116
  153. package/src/components/SkeletonLoader/SkeletonLoader.tsx +0 -123
  154. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +0 -898
  155. package/src/components/SkipNavigation/SkipNavigation.stories.mdx +0 -90
  156. package/src/components/SkipNavigation/SkipNavigation.test.tsx +0 -63
  157. package/src/components/SkipNavigation/SkipNavigation.tsx +0 -51
  158. package/src/components/SkipNavigation/__snapshots__/SkipNavigation.test.tsx.snap +0 -130
  159. package/src/components/Slider/Slider.stories.mdx +0 -628
  160. package/src/components/Slider/Slider.test.tsx +0 -736
  161. package/src/components/Slider/Slider.tsx +0 -322
  162. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +0 -2186
  163. package/src/components/StatusBadge/StatusBadge.stories.mdx +0 -109
  164. package/src/components/StatusBadge/StatusBadge.test.tsx +0 -70
  165. package/src/components/StatusBadge/StatusBadge.tsx +0 -35
  166. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +0 -47
  167. package/src/components/StructuredContent/StructuredContent.stories.mdx +0 -567
  168. package/src/components/StructuredContent/StructuredContent.test.tsx +0 -435
  169. package/src/components/StructuredContent/StructuredContent.tsx +0 -139
  170. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +0 -368
  171. package/src/components/StyleGuide/Bidirectionality.stories.mdx +0 -206
  172. package/src/components/StyleGuide/Breakpoints.stories.mdx +0 -55
  173. package/src/components/StyleGuide/Buttons.stories.mdx +0 -194
  174. package/src/components/StyleGuide/ColorCard.tsx +0 -43
  175. package/src/components/StyleGuide/Colors.stories.mdx +0 -201
  176. package/src/components/StyleGuide/DesignTokens.stories.mdx +0 -193
  177. package/src/components/StyleGuide/Forms.stories.mdx +0 -94
  178. package/src/components/StyleGuide/Iconography.stories.mdx +0 -142
  179. package/src/components/StyleGuide/Spacing.stories.mdx +0 -116
  180. package/src/components/StyleGuide/Typography.stories.mdx +0 -419
  181. package/src/components/Table/Table.stories.mdx +0 -272
  182. package/src/components/Table/Table.test.tsx +0 -241
  183. package/src/components/Table/Table.tsx +0 -152
  184. package/src/components/Table/__snapshots__/Table.test.tsx.snap +0 -1703
  185. package/src/components/Tabs/Tabs.stories.mdx +0 -338
  186. package/src/components/Tabs/Tabs.test.tsx +0 -298
  187. package/src/components/Tabs/Tabs.tsx +0 -264
  188. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +0 -584
  189. package/src/components/Template/Template.stories.mdx +0 -695
  190. package/src/components/Template/Template.test.tsx +0 -309
  191. package/src/components/Template/Template.tsx +0 -326
  192. package/src/components/Template/__snapshots__/Template.test.tsx.snap +0 -342
  193. package/src/components/Text/Text.stories.mdx +0 -103
  194. package/src/components/Text/Text.test.tsx +0 -63
  195. package/src/components/Text/Text.tsx +0 -50
  196. package/src/components/Text/__snapshots__/Text.test.tsx.snap +0 -50
  197. package/src/components/TextInput/TextInput.stories.mdx +0 -268
  198. package/src/components/TextInput/TextInput.test.tsx +0 -451
  199. package/src/components/TextInput/TextInput.tsx +0 -240
  200. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +0 -274
  201. package/src/components/Toggle/Toggle.stories.mdx +0 -237
  202. package/src/components/Toggle/Toggle.test.tsx +0 -170
  203. package/src/components/Toggle/Toggle.tsx +0 -128
  204. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +0 -470
  205. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +0 -212
  206. package/src/components/VideoPlayer/VideoPlayer.test.tsx +0 -308
  207. package/src/components/VideoPlayer/VideoPlayer.tsx +0 -188
  208. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +0 -192
  209. package/src/docs/Chakra.stories.mdx +0 -563
  210. package/src/docs/Welcome.stories.mdx +0 -148
  211. package/src/helpers/types.ts +0 -1
  212. package/src/hooks/tests/useCarouselStyles.test.ts +0 -140
  213. package/src/hooks/tests/useNYPLTheme.test.tsx +0 -36
  214. package/src/hooks/useCarouselStyles.stories.mdx +0 -30
  215. package/src/hooks/useCarouselStyles.ts +0 -35
  216. package/src/hooks/useNYPLTheme.stories.mdx +0 -98
  217. package/src/hooks/useNYPLTheme.ts +0 -91
  218. package/src/hooks/useWindowSize.stories.mdx +0 -23
  219. package/src/hooks/useWindowSize.ts +0 -40
  220. package/src/index.ts +0 -136
  221. package/src/resources.scss +0 -6
  222. package/src/styles/base/_01-breakpoints.scss +0 -27
  223. package/src/styles/base/_02-mixins.scss +0 -103
  224. package/src/styles/base/_place-holder.scss +0 -33
  225. package/src/styles/space/_space-inline.scss +0 -79
  226. package/src/styles/space/_space-inset.scss +0 -57
  227. package/src/styles/space/_space-stack.scss +0 -116
  228. package/src/styles.scss +0 -23
  229. package/src/theme/components/accordion.ts +0 -25
  230. package/src/theme/components/breadcrumb.ts +0 -94
  231. package/src/theme/components/button.ts +0 -133
  232. package/src/theme/components/buttonGroup.ts +0 -10
  233. package/src/theme/components/card.ts +0 -237
  234. package/src/theme/components/checkbox.ts +0 -110
  235. package/src/theme/components/checkboxGroup.ts +0 -10
  236. package/src/theme/components/componentWrapper.ts +0 -14
  237. package/src/theme/components/customTable.ts +0 -77
  238. package/src/theme/components/datePicker.ts +0 -17
  239. package/src/theme/components/fieldset.ts +0 -23
  240. package/src/theme/components/global.ts +0 -91
  241. package/src/theme/components/globalMixins.ts +0 -24
  242. package/src/theme/components/heading.ts +0 -79
  243. package/src/theme/components/helperErrorText.ts +0 -14
  244. package/src/theme/components/hero.ts +0 -238
  245. package/src/theme/components/horizontalRule.ts +0 -17
  246. package/src/theme/components/icon.ts +0 -88
  247. package/src/theme/components/image.ts +0 -136
  248. package/src/theme/components/label.ts +0 -15
  249. package/src/theme/components/link.ts +0 -63
  250. package/src/theme/components/list.ts +0 -88
  251. package/src/theme/components/logo.ts +0 -58
  252. package/src/theme/components/notification.ts +0 -132
  253. package/src/theme/components/pagination.ts +0 -17
  254. package/src/theme/components/progressIndicator.ts +0 -67
  255. package/src/theme/components/radio.ts +0 -103
  256. package/src/theme/components/radioGroup.ts +0 -10
  257. package/src/theme/components/searchBar.ts +0 -19
  258. package/src/theme/components/select.ts +0 -72
  259. package/src/theme/components/skeletonLoader.ts +0 -113
  260. package/src/theme/components/skipNavigation.ts +0 -29
  261. package/src/theme/components/slider.ts +0 -95
  262. package/src/theme/components/statusBadge.ts +0 -26
  263. package/src/theme/components/structuredContent.ts +0 -149
  264. package/src/theme/components/tabs.ts +0 -109
  265. package/src/theme/components/template.ts +0 -114
  266. package/src/theme/components/text.ts +0 -38
  267. package/src/theme/components/textInput.ts +0 -65
  268. package/src/theme/components/toggle.ts +0 -109
  269. package/src/theme/components/videoPlayer.ts +0 -47
  270. package/src/theme/foundations/breakpoints.ts +0 -24
  271. package/src/theme/foundations/colors.ts +0 -212
  272. package/src/theme/foundations/global.ts +0 -43
  273. package/src/theme/foundations/radii.ts +0 -7
  274. package/src/theme/foundations/shadows.ts +0 -5
  275. package/src/theme/foundations/spacing.ts +0 -136
  276. package/src/theme/foundations/typography.ts +0 -107
  277. package/src/theme/index.ts +0 -131
  278. package/src/theme/provider.tsx +0 -9
  279. package/src/theme/types.ts +0 -1
  280. package/src/utils/componentCategories.ts +0 -152
  281. package/src/utils/interfaces.ts +0 -5
  282. package/src/utils/utils.ts +0 -84
@@ -1,140 +0,0 @@
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
- });
@@ -1,36 +0,0 @@
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
- });
@@ -1,30 +0,0 @@
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
- ```
@@ -1,35 +0,0 @@
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;
@@ -1,98 +0,0 @@
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
- ```
@@ -1,91 +0,0 @@
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;
@@ -1,23 +0,0 @@
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
- ```
@@ -1,40 +0,0 @@
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 DELETED
@@ -1,136 +0,0 @@
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";
@@ -1,6 +0,0 @@
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";
@@ -1,27 +0,0 @@
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;