@nypl/design-system-react-components 0.25.1 → 0.25.5

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 (307) hide show
  1. package/CHANGELOG.md +118 -1
  2. package/README.md +98 -50
  3. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
  4. package/dist/components/Button/Button.d.ts +13 -8
  5. package/dist/components/Button/ButtonTypes.d.ts +2 -1
  6. package/dist/components/Card/Card.d.ts +36 -52
  7. package/dist/components/Card/CardTypes.d.ts +0 -15
  8. package/dist/components/Checkbox/Checkbox.d.ts +17 -13
  9. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +4 -2
  10. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
  11. package/dist/components/DatePicker/DatePicker.d.ts +36 -34
  12. package/dist/components/Fieldset/Fieldset.d.ts +25 -0
  13. package/dist/components/Heading/Heading.d.ts +4 -4
  14. package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
  15. package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
  16. package/dist/components/Icons/Icon.d.ts +8 -0
  17. package/dist/components/Icons/IconSvgs.d.ts +11 -0
  18. package/dist/components/Icons/IconTypes.d.ts +11 -0
  19. package/dist/components/Image/Image.d.ts +19 -9
  20. package/dist/components/Image/ImageTypes.d.ts +20 -0
  21. package/dist/components/Link/Link.d.ts +4 -0
  22. package/dist/components/List/List.d.ts +19 -14
  23. package/dist/components/Notification/Notification.d.ts +37 -16
  24. package/dist/components/Pagination/Pagination.d.ts +16 -13
  25. package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
  26. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
  27. package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
  28. package/dist/components/Radio/Radio.d.ts +2 -0
  29. package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
  30. package/dist/components/SearchBar/SearchBar.d.ts +3 -3
  31. package/dist/components/Select/Select.d.ts +2 -0
  32. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
  33. package/dist/components/Slider/Slider.d.ts +57 -0
  34. package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
  35. package/dist/components/Tabs/Tabs.d.ts +1 -1
  36. package/dist/components/TextInput/TextInput.d.ts +12 -0
  37. package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
  38. package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
  39. package/dist/design-system-react-components.cjs.development.js +6131 -3715
  40. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  41. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  42. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  43. package/dist/design-system-react-components.esm.js +6124 -3699
  44. package/dist/design-system-react-components.esm.js.map +1 -1
  45. package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
  46. package/dist/hooks/useCarouselStyles.d.ts +16 -0
  47. package/dist/hooks/useNYPLTheme.d.ts +54 -0
  48. package/dist/hooks/useWindowSize.d.ts +10 -0
  49. package/dist/index.d.ts +13 -8
  50. package/dist/resources.scss +180 -170
  51. package/dist/styles.css +1 -1
  52. package/dist/theme/components/button.d.ts +22 -8
  53. package/dist/theme/components/card.d.ts +168 -0
  54. package/dist/theme/components/checkbox.d.ts +5 -1
  55. package/dist/theme/components/checkboxGroup.d.ts +12 -0
  56. package/dist/theme/components/componentWrapper.d.ts +11 -0
  57. package/dist/theme/components/datePicker.d.ts +16 -0
  58. package/dist/theme/components/fieldset.d.ts +27 -0
  59. package/dist/theme/components/global.d.ts +23 -13
  60. package/dist/theme/components/globalMixins.d.ts +9 -1
  61. package/dist/theme/components/heading.d.ts +5 -0
  62. package/dist/theme/components/helperErrorText.d.ts +10 -0
  63. package/dist/theme/components/hero.d.ts +1 -0
  64. package/dist/theme/components/horizontalRule.d.ts +14 -0
  65. package/dist/theme/components/image.d.ts +31 -0
  66. package/dist/theme/components/label.d.ts +5 -3
  67. package/dist/theme/components/link.d.ts +4 -0
  68. package/dist/theme/components/list.d.ts +89 -0
  69. package/dist/theme/components/notification.d.ts +75 -0
  70. package/dist/theme/components/pagination.d.ts +19 -0
  71. package/dist/theme/components/progressIndicator.d.ts +50 -0
  72. package/dist/theme/components/radioGroup.d.ts +12 -0
  73. package/dist/theme/components/select.d.ts +11 -2
  74. package/dist/theme/components/skeletonLoader.d.ts +98 -0
  75. package/dist/theme/components/slider.d.ts +51 -0
  76. package/dist/theme/components/tabs.d.ts +54 -3
  77. package/dist/theme/components/textInput.d.ts +8 -1
  78. package/dist/theme/components/videoPlayer.d.ts +40 -0
  79. package/dist/theme/foundations/breakpoints.d.ts +8 -8
  80. package/dist/theme/foundations/global.d.ts +6 -1
  81. package/dist/theme/foundations/radii.d.ts +5 -0
  82. package/dist/theme/foundations/spacing.d.ts +16 -16
  83. package/package.json +72 -83
  84. package/src/__tests__/setup.ts +2 -2
  85. package/src/components/Accordion/Accordion.stories.mdx +39 -44
  86. package/src/components/Autosuggest/Autosuggest.stories.mdx +3 -3
  87. package/src/components/Autosuggest/Autosuggest.stories.tsx +2 -1
  88. package/src/components/Autosuggest/_Autosuggest.scss +5 -5
  89. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +14 -10
  90. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +23 -0
  91. package/src/components/Breadcrumbs/Breadcrumbs.tsx +5 -1
  92. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +199 -1
  93. package/src/components/Button/Button.stories.mdx +15 -10
  94. package/src/components/Button/Button.test.tsx +21 -7
  95. package/src/components/Button/Button.tsx +22 -34
  96. package/src/components/Button/ButtonTypes.tsx +1 -0
  97. package/src/components/Button/__snapshots__/Button.test.tsx.snap +41 -10
  98. package/src/components/Card/Card.stories.mdx +296 -259
  99. package/src/components/Card/Card.test.tsx +156 -84
  100. package/src/components/Card/Card.tsx +195 -145
  101. package/src/components/Card/CardTypes.tsx +0 -17
  102. package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
  103. package/src/components/CardEdition/CardEdition.stories.tsx +15 -47
  104. package/src/components/CardEdition/_CardEdition.scss +22 -23
  105. package/src/components/Chakra/Box.stories.mdx +15 -16
  106. package/src/components/Chakra/Center.stories.mdx +31 -16
  107. package/src/components/Chakra/Grid.stories.mdx +28 -15
  108. package/src/components/Chakra/Stack.stories.mdx +35 -18
  109. package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
  110. package/src/components/Checkbox/Checkbox.test.tsx +47 -2
  111. package/src/components/Checkbox/Checkbox.tsx +39 -33
  112. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +90 -2
  113. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +82 -2
  114. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +29 -2
  115. package/src/components/CheckboxGroup/CheckboxGroup.tsx +22 -18
  116. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +47 -81
  117. package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
  118. package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
  119. package/src/components/DatePicker/DatePicker.test.tsx +264 -64
  120. package/src/components/DatePicker/DatePicker.tsx +159 -128
  121. package/src/components/DatePicker/_DatePicker.scss +33 -67
  122. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
  123. package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
  124. package/src/components/Fieldset/Fieldset.test.tsx +125 -0
  125. package/src/components/Fieldset/Fieldset.tsx +52 -0
  126. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
  127. package/src/components/Form/Form.stories.mdx +24 -6
  128. package/src/components/Form/Form.test.tsx +1 -1
  129. package/src/components/Form/Form.tsx +1 -0
  130. package/src/components/Grid/SimpleGrid.stories.mdx +32 -39
  131. package/src/components/Grid/SimpleGrid.test.tsx +4 -4
  132. package/src/components/Heading/Heading.stories.mdx +3 -4
  133. package/src/components/Heading/Heading.tsx +5 -5
  134. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
  135. package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
  136. package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
  137. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
  138. package/src/components/Hero/Hero.stories.mdx +12 -2
  139. package/src/components/Hero/Hero.tsx +1 -1
  140. package/src/components/Hero/HeroTypes.tsx +1 -0
  141. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +7 -7
  142. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
  143. package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
  144. package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
  145. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
  146. package/src/components/Icons/Icon.stories.mdx +12 -4
  147. package/src/components/Icons/Icon.test.tsx +18 -0
  148. package/src/components/Icons/Icon.tsx +16 -1
  149. package/src/components/Icons/IconSvgs.tsx +22 -0
  150. package/src/components/Icons/IconTypes.tsx +11 -0
  151. package/src/components/Image/Image.stories.mdx +220 -0
  152. package/src/components/Image/Image.test.tsx +131 -29
  153. package/src/components/Image/Image.tsx +84 -56
  154. package/src/components/Image/ImageTypes.ts +22 -0
  155. package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
  156. package/src/components/Input/Input.stories.tsx +23 -67
  157. package/src/components/Input/Input.test.tsx +4 -4
  158. package/src/components/Input/_Input.scss +23 -14
  159. package/src/components/Link/Link.tsx +4 -1
  160. package/src/components/List/List.stories.mdx +124 -49
  161. package/src/components/List/List.test.tsx +142 -63
  162. package/src/components/List/List.tsx +89 -93
  163. package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
  164. package/src/components/Modal/Modal.stories.mdx +3 -3
  165. package/src/components/Modal/_Modal.scss +2 -2
  166. package/src/components/Notification/Notification.stories.mdx +109 -112
  167. package/src/components/Notification/Notification.test.tsx +99 -110
  168. package/src/components/Notification/Notification.tsx +156 -159
  169. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
  170. package/src/components/Pagination/Pagination.stories.mdx +26 -27
  171. package/src/components/Pagination/Pagination.stories.tsx +11 -16
  172. package/src/components/Pagination/Pagination.test.tsx +276 -146
  173. package/src/components/Pagination/Pagination.tsx +174 -154
  174. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
  175. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
  176. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
  177. package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
  178. package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
  179. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
  180. package/src/components/Radio/Radio.test.tsx +20 -4
  181. package/src/components/Radio/Radio.tsx +6 -3
  182. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
  183. package/src/components/RadioGroup/RadioGroup.stories.mdx +3 -4
  184. package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
  185. package/src/components/RadioGroup/RadioGroup.tsx +19 -19
  186. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
  187. package/src/components/SearchBar/SearchBar.Test.tsx +20 -1
  188. package/src/components/SearchBar/SearchBar.stories.mdx +113 -8
  189. package/src/components/SearchBar/SearchBar.tsx +20 -10
  190. package/src/components/Select/Select.test.tsx +12 -0
  191. package/src/components/Select/Select.tsx +5 -2
  192. package/src/components/Select/SelectTypes.tsx +1 -0
  193. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +28 -59
  194. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
  195. package/src/components/SkeletonLoader/SkeletonLoader.tsx +74 -71
  196. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
  197. package/src/components/Slider/Slider.stories.mdx +529 -0
  198. package/src/components/Slider/Slider.test.tsx +653 -0
  199. package/src/components/Slider/Slider.tsx +303 -0
  200. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
  201. package/src/components/StyleGuide/Bidirectionality.stories.mdx +1 -1
  202. package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
  203. package/src/components/StyleGuide/Buttons.stories.mdx +89 -73
  204. package/src/components/StyleGuide/ColorCard.tsx +46 -0
  205. package/src/components/StyleGuide/Colors.stories.mdx +171 -311
  206. package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
  207. package/src/components/StyleGuide/Forms.stories.mdx +9 -7
  208. package/src/components/StyleGuide/Iconography.stories.mdx +85 -91
  209. package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
  210. package/src/components/StyleGuide/Typography.stories.mdx +202 -189
  211. package/src/components/StyleGuide/UIDocCard.tsx +1 -1
  212. package/src/components/Tabs/Tabs.stories.mdx +73 -11
  213. package/src/components/Tabs/Tabs.tsx +87 -64
  214. package/src/components/Template/Template.stories.mdx +25 -27
  215. package/src/components/TextInput/TextInput.stories.mdx +1 -1
  216. package/src/components/TextInput/TextInput.test.tsx +22 -2
  217. package/src/components/TextInput/TextInput.tsx +28 -8
  218. package/src/components/TextInput/TextInputTypes.tsx +2 -0
  219. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
  220. package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
  221. package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
  222. package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
  223. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
  224. package/src/docs/Chakra.stories.mdx +244 -63
  225. package/src/docs/Intro.stories.mdx +5 -2
  226. package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
  227. package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
  228. package/src/hooks/useCarouselStyles.ts +34 -0
  229. package/src/hooks/useNYPLTheme.ts +67 -0
  230. package/src/hooks/useWindowSize.ts +40 -0
  231. package/src/index.ts +22 -19
  232. package/src/resources.scss +5 -5
  233. package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
  234. package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
  235. package/src/styles/base/{_04-base.scss → _03-base.scss} +7 -2
  236. package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
  237. package/src/styles/base/_place-holder.scss +14 -3
  238. package/src/styles/{03-space → space}/_space-inline.scss +14 -14
  239. package/src/styles/{03-space → space}/_space-inset.scss +10 -10
  240. package/src/styles/space/_space-stack.scss +116 -0
  241. package/src/styles.scss +13 -60
  242. package/src/theme/components/button.ts +21 -15
  243. package/src/theme/components/card.ts +174 -0
  244. package/src/theme/components/checkbox.ts +8 -3
  245. package/src/theme/components/checkboxGroup.ts +8 -0
  246. package/src/theme/components/componentWrapper.ts +10 -0
  247. package/src/theme/components/datePicker.ts +17 -0
  248. package/src/theme/components/fieldset.ts +18 -0
  249. package/src/theme/components/global.ts +26 -15
  250. package/src/theme/components/globalMixins.ts +9 -1
  251. package/src/theme/components/heading.ts +10 -5
  252. package/src/theme/components/helperErrorText.ts +9 -0
  253. package/src/theme/components/hero.ts +4 -3
  254. package/src/theme/components/horizontalRule.ts +13 -0
  255. package/src/theme/components/icon.ts +9 -9
  256. package/src/theme/components/image.ts +116 -0
  257. package/src/theme/components/label.ts +3 -10
  258. package/src/theme/components/link.ts +5 -1
  259. package/src/theme/components/list.ts +73 -0
  260. package/src/theme/components/notification.ts +93 -0
  261. package/src/theme/components/pagination.ts +20 -0
  262. package/src/theme/components/progressIndicator.ts +62 -0
  263. package/src/theme/components/radio.ts +2 -2
  264. package/src/theme/components/radioGroup.ts +8 -0
  265. package/src/theme/components/select.ts +6 -3
  266. package/src/theme/components/skeletonLoader.ts +107 -0
  267. package/src/theme/components/slider.ts +79 -0
  268. package/src/theme/components/statusBadge.ts +1 -2
  269. package/src/theme/components/tabs.ts +49 -19
  270. package/src/theme/components/template.ts +8 -8
  271. package/src/theme/components/textInput.ts +5 -4
  272. package/src/theme/components/videoPlayer.ts +49 -0
  273. package/src/theme/foundations/breakpoints.ts +8 -8
  274. package/src/theme/foundations/global.ts +6 -1
  275. package/src/theme/foundations/radii.ts +6 -0
  276. package/src/theme/foundations/spacing.ts +24 -24
  277. package/src/theme/index.ts +41 -10
  278. package/src/utils/componentCategories.ts +4 -3
  279. package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
  280. package/dist/components/Image/Image.stories.d.ts +0 -18
  281. package/dist/components/List/List.stories.d.ts +0 -7
  282. package/dist/theme/components/customCheckboxGroup.d.ts +0 -18
  283. package/dist/theme/components/customRadioGroup.d.ts +0 -18
  284. package/src/components/Button/_Button.scss +0 -32
  285. package/src/components/Card/_Card.scss +0 -308
  286. package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
  287. package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
  288. package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
  289. package/src/components/Image/Image.stories.tsx +0 -54
  290. package/src/components/Image/_Image.scss +0 -38
  291. package/src/components/List/List.stories.tsx +0 -139
  292. package/src/components/List/_List.scss +0 -76
  293. package/src/components/Notification/_Notification.scss +0 -110
  294. package/src/components/Pagination/_Pagination.scss +0 -40
  295. package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
  296. package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
  297. package/src/styles/01-colors/_colors-brand.scss +0 -62
  298. package/src/styles/01-colors/_colors-utility.scss +0 -67
  299. package/src/styles/02-typography/_type-scale.css +0 -11
  300. package/src/styles/02-typography/_type-weight.css +0 -7
  301. package/src/styles/02-typography/_typefaces.css +0 -4
  302. package/src/styles/03-space/_space-stack.scss +0 -116
  303. package/src/styles/03-space/_space.css +0 -30
  304. package/src/styles/base/_card-grid.scss +0 -78
  305. package/src/styles/base/_typography.scss +0 -11
  306. package/src/theme/components/customCheckboxGroup.ts +0 -12
  307. package/src/theme/components/customRadioGroup.ts +0 -12
@@ -237,7 +237,7 @@ help reduce any visual mistakes.
237
237
 
238
238
  <Canvas>
239
239
  <DSProvider>
240
- <div style={{ display: "flex", "flex-direction": "column" }}>
240
+ <div style={{ display: "flex", flexDirection: "column" }}>
241
241
  <div style={{ width: "300px" }}>
242
242
  A regular button:
243
243
  <Button buttonType={ButtonTypes.Primary} id="button-ex4" type="submit">
@@ -18,24 +18,48 @@ import { getCategory } from "../../utils/componentCategories";
18
18
 
19
19
  # Breakpoints
20
20
 
21
+ | Table of Contents |
22
+ | ---------------------------------------------- |
23
+ | 1. [General Information](#general-information) |
24
+ | 2. [CSS Variables](#css-variables) |
25
+ | 3. [Figma Reference](#figma-reference) |
26
+
27
+ ## General Information
28
+
21
29
  The DS adheres to four global breakpoints for responsive layouts and typography.
22
30
 
23
- - Desktop: 1280px
24
- - Tablet Landscape: 960px
25
- - Tablet Portrait: 600px
26
31
  - Mobile: 320px
32
+ - Tablet Portrait: 600px
33
+ - Tablet Landscape: 960px
34
+ - Desktop: 1280px
27
35
 
28
- ### CSS Variables
36
+ ## CSS Variables
29
37
 
30
38
  The following CSS variables are available through the DS.
31
39
 
40
+ ```scss
41
+ --nypl-breakpoint-small: 320px;
42
+ --nypl-breakpoint-medium: 600px;
43
+ --nypl-breakpoint-large: 960px;
44
+ --nypl-breakpoint-xl: 1280px;
32
45
  ```
33
- --breakpoint-xl: 1280px;
34
- --breakpoint-large: 960px;
35
- --breakpoint-medium: 600px;
36
- --breakpoint-small: 320px;
46
+
47
+ ## SCSS Variables
48
+
49
+ If you are using SCSS and imported the NYPL Design System `/dist/resources.scss`
50
+ file, then you can use the following SCSS variables in your media queries or
51
+ SCSS `breakpoint` function (if used).
52
+
53
+ ```scss
54
+ $nypl-breakpoint-small: 320px;
55
+ $nypl-breakpoint-medium: 600px;
56
+ $nypl-breakpoint-large: 960px;
57
+ $nypl-breakpoint-xl: 1280px;
58
+ $nypl-max-width: $nypl-breakpoint-xl;
37
59
  ```
38
60
 
39
- ### Design System Figma Reference
61
+ ## Figma Reference
62
+
63
+ For additional spacing information, please refer to the Figma Main file.
40
64
 
41
- https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=17983%3A60146
65
+ - https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=17983%3A60146
@@ -6,18 +6,19 @@ import {
6
6
  Description,
7
7
  } from "@storybook/addon-docs/blocks";
8
8
  import { withDesign } from "storybook-addon-designs";
9
+ import { ButtonGroup } from "@chakra-ui/react";
9
10
 
10
- import { getCategory } from "../../utils/componentCategories";
11
- import Button, { ButtonGroup } from "../Button/Button";
11
+ import Button from "../Button/Button";
12
12
  import { ButtonTypes } from "../Button/ButtonTypes";
13
13
  import Icon from "../Icons/Icon";
14
14
  import {
15
+ IconAlign,
15
16
  IconNames,
16
17
  IconRotationTypes,
17
18
  IconSizes,
18
- IconAlign,
19
19
  } from "../Icons/IconTypes";
20
20
  import getCSSVariable from "../../helpers/getCSSVariable";
21
+ import { getCategory } from "../../utils/componentCategories";
21
22
  import DSProvider from "../../theme/provider";
22
23
 
23
24
  <Meta
@@ -26,15 +27,26 @@ import DSProvider from "../../theme/provider";
26
27
  parameters={{
27
28
  design: {
28
29
  type: "figma",
29
- url:
30
- "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298",
30
+ url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298",
31
31
  },
32
32
  }}
33
33
  />
34
34
 
35
35
  # Buttons
36
36
 
37
- Use the NYPL Design System [Button](https://nypl.github.io/nypl-design-system/storybook-static/?path=/docs/form-elements-button--basic) component to render form buttons.
37
+ | Table of Contents |
38
+ | ---------------------------------------------- |
39
+ | 1. [General Information](#general-information) |
40
+ | 2. [Guidelines](#guidelines) |
41
+ | 3. [Button Groups](#button-groups) |
42
+ | 4. [Button Types](#button-types) |
43
+ | 5. [Patterns](#patterns) |
44
+ | 6. [Figma Reference](#figma-reference) |
45
+
46
+ ## General Information
47
+
48
+ Use the NYPL Design System [Button](https://nypl.github.io/nypl-design-system/storybook-static/?path=/docs/form-elements-button--basic)
49
+ component to render form buttons.
38
50
 
39
51
  ```jsx
40
52
  import { Button, ButtonTypes } from "@nypl/design-system-react-components";
@@ -42,51 +54,35 @@ import { Button, ButtonTypes } from "@nypl/design-system-react-components";
42
54
  <Button buttonType={ButtonTypes.Primary}>Button Text</Button>;
43
55
  ```
44
56
 
45
- ## Style Guide Topics
46
-
47
- For information about using the `Button` component, please see below.
48
-
49
- - [General Guidelines](#general-guidelines)
50
- - [Spacing](#spacing)
51
- - [Button Types](#button-types)
52
- - [Patterns](#patterns)
53
- - [Figma Reference](#figma-reference)
54
-
55
- ## General Guidelines
57
+ ## Guidelines
56
58
 
57
59
  - Button text is optional.
58
60
  - Button text should be title case.
59
61
  - Button icon is optional.
60
62
  - Buttons may have an icon on either the left or the right.
61
- - Buttons by default are blue. However, Donation buttons are red.
62
- - Buttons used for Back to Top actions have a Secondary button style with an arrow icon pointing up.
63
- - When buttons are used in a set (where the user can move forward or backward), the `Primary` button is on the right and the `Secondary` button on the left (i.e. cancel = secondary, submit = primary).
63
+ - Buttons by default are blue. However, Donation callout buttons are red.
64
+ - Buttons used for Back to Top actions have a Secondary button style with an
65
+ arrow icon pointing up.
66
+ - When buttons are used in a group, they should be wrapped in a `ButtonGroup`.
67
+ - When buttons are used in a group where the user can move forward or backward,
68
+ the `Primary` button is on the right and the `Secondary` button on the left
69
+ (i.e. cancel = secondary, submit = primary).
64
70
 
65
- ## Spacing
71
+ ## Button Groups
66
72
 
67
- Buttons should use `--space-xs` (0.5rem) for spacing in situations where multiple buttons are aligned in horizontal or vertical layouts. Buttons should use `--space-l` (2rem) for all other spacing situations.
73
+ When `Button` components are displayed in a group, use the `ButtonGroup`
74
+ component to handle the spacing and layout. The `ButtonGroup` component will use
75
+ `--nypl-space-xs` (0.5rem) for spacing in horizontal group layouts.
76
+
77
+ Standalone `Button` components and the `ButtonGroup` component should use
78
+ `--nypl-space-l` (2rem) for spacing between all other UI elements. This spacing
79
+ can be achieved by using the `Form` component to wrap the `Button`s.
68
80
 
69
81
  <Canvas>
70
82
  <DSProvider>
71
83
  <ButtonGroup>
72
- <Button
73
- buttonType={ButtonTypes.Primary}
74
- attributes={{
75
- style: {
76
- marginRight: getCSSVariable("--space-xs"),
77
- },
78
- }}
79
- >
80
- Button Text
81
- </Button>
82
- <Button
83
- buttonType={ButtonTypes.Primary}
84
- attributes={{
85
- style: {
86
- marginRight: getCSSVariable("--space-xs"),
87
- },
88
- }}
89
- >
84
+ <Button buttonType={ButtonTypes.Primary}>Button Text</Button>
85
+ <Button buttonType={ButtonTypes.Primary}>
90
86
  <Icon
91
87
  name={IconNames.Search}
92
88
  size={IconSizes.Small}
@@ -94,27 +90,10 @@ Buttons should use `--space-xs` (0.5rem) for spacing in situations where multipl
94
90
  />
95
91
  Button Text
96
92
  </Button>
97
- <Button
98
- buttonType={ButtonTypes.Primary}
99
- attributes={{
100
- style: {
101
- marginRight: getCSSVariable("--space-xs"),
102
- },
103
- }}
104
- >
93
+ <Button buttonType={ButtonTypes.Primary}>
105
94
  <Icon name={IconNames.Close} size={IconSizes.Medium} />
106
95
  </Button>
107
- <Button
108
- buttonType={ButtonTypes.Primary}
109
- attributes={{
110
- style: {
111
- backgroundColor: getCSSVariable("--section-books-and-more-primary"),
112
- marginRight: getCSSVariable("--space-xs"),
113
- },
114
- }}
115
- >
116
- Button Text
117
- </Button>
96
+ <Button buttonType={ButtonTypes.Callout}>Donate</Button>
118
97
  <Button buttonType={ButtonTypes.Secondary}>
119
98
  Back to Top
120
99
  <Icon
@@ -130,15 +109,20 @@ Buttons should use `--space-xs` (0.5rem) for spacing in situations where multipl
130
109
 
131
110
  ## Button Types
132
111
 
133
- The `buttonType` prop should be used to render various forms of the button component.
112
+ The `buttonType` prop should be used to render various forms of the button
113
+ component. Note that the `SearchBar` type is only used internally in the
114
+ `SearchBar` component.
134
115
 
135
116
  <Canvas>
136
117
  <DSProvider>
137
118
  <ButtonGroup>
138
119
  <Button buttonType={ButtonTypes.Primary}>Primary Button</Button>
139
120
  <Button buttonType={ButtonTypes.Secondary}>Secondary Button</Button>
121
+ <Button buttonType={ButtonTypes.Callout}>Callout Button</Button>
140
122
  <Button buttonType={ButtonTypes.Pill}>Pill Button</Button>
141
123
  <Button buttonType={ButtonTypes.Link}>Link Button</Button>
124
+ <Button buttonType={ButtonTypes.SearchBar}>SearchBar Button</Button>
125
+ <Button buttonType={ButtonTypes.NoBrand}>NoBrand Button</Button>
142
126
  </ButtonGroup>
143
127
  </DSProvider>
144
128
  </Canvas>
@@ -154,6 +138,11 @@ The `buttonType` prop should be used to render various forms of the button compo
154
138
  - often paired with a Primary button
155
139
  - Visual Treatment: rectangular, outlined
156
140
 
141
+ ### ButtonTypes.Callout
142
+
143
+ - used for call to actions such as donation buttons
144
+ - Visual Treatment: rectangular, NYPL red background
145
+
157
146
  ### ButtonTypes.Pill
158
147
 
159
148
  - used for equally weighted actions
@@ -165,24 +154,33 @@ The `buttonType` prop should be used to render various forms of the button compo
165
154
  - used for equally weighted actions
166
155
  - Visual Treatment: text link with underline
167
156
 
157
+ ### ButtonTypes.SearchBar
158
+
159
+ - used internally in the `SearchBar` component for visual flow when it is next
160
+ to the `TextInput` component
161
+ - Visual Treatment: rectangular, filled, no border radius on the left side
162
+
163
+ ### ButtonTypes.NoBrand
164
+
165
+ - used in cases where there is no brand color
166
+ - Visual Treatment: rectangular, filled with a black background
167
+
168
168
  ## Patterns
169
169
 
170
- Buttons are blue by default but should be red when it is intended as a call out.
171
- The "Back to Top" button must be of `ButtonTypes` `Secondary` and must include an up arrow icon.
170
+ - Buttons are blue by default.
171
+ - Buttons that are intended as a call out (i.e. Donation buttons) should be set
172
+ as `ButtonTypes.Callout`.
173
+ - The "Back to Top" button must be set as `ButtonTypes.Secondary` and must
174
+ include an up arrow icon.
175
+ - Previous and Next buttons should be set as `ButtonTypes.Secondary` and be
176
+ wrapped in a `ButtonGroup`.
177
+ - Only use the `ButtonTypes.NoBrand` style where there is no brand color. _This
178
+ should be rarely used._
172
179
 
173
180
  <Canvas>
174
181
  <DSProvider>
175
182
  <ButtonGroup>
176
- <Button
177
- buttonType={ButtonTypes.Primary}
178
- attributes={{
179
- style: {
180
- backgroundColor: getCSSVariable("--section-books-and-more-primary"),
181
- },
182
- }}
183
- >
184
- Donate to this library
185
- </Button>
183
+ <Button buttonType={ButtonTypes.Callout}>Donate to this library</Button>
186
184
  <Button buttonType={ButtonTypes.Secondary}>
187
185
  Back to Top
188
186
  <Icon
@@ -192,6 +190,24 @@ The "Back to Top" button must be of `ButtonTypes` `Secondary` and must include a
192
190
  align={IconAlign.Right}
193
191
  />
194
192
  </Button>
193
+ <Button buttonType={ButtonTypes.Secondary}>
194
+ <Icon
195
+ name={IconNames.Arrow}
196
+ iconRotation={IconRotationTypes.Rotate90}
197
+ align={IconAlign.Left}
198
+ size={IconSizes.Small}
199
+ />
200
+ Previous
201
+ </Button>
202
+ <Button buttonType={ButtonTypes.Secondary}>
203
+ Next
204
+ <Icon
205
+ name={IconNames.Arrow}
206
+ iconRotation={IconRotationTypes.Rotate270}
207
+ align={IconAlign.Right}
208
+ size={IconSizes.Small}
209
+ />
210
+ </Button>
195
211
  </ButtonGroup>
196
212
  </DSProvider>
197
213
  </Canvas>
@@ -200,4 +216,4 @@ The "Back to Top" button must be of `ButtonTypes` `Secondary` and must include a
200
216
 
201
217
  For more styling information, please refer to the Figma Main file.
202
218
 
203
- https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298
219
+ - https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298
@@ -0,0 +1,46 @@
1
+ import * as React from "react";
2
+ import Card from "../Card/Card";
3
+ import { CardLayouts } from "../Card/CardTypes";
4
+ import Heading from "../Heading/Heading";
5
+ import { HeadingLevels } from "../Heading/HeadingTypes";
6
+ // import Text from "../Text/Text";
7
+ // import { TextDisplaySizes } from "../Text/TextTypes";
8
+
9
+ export interface ColorCardProps {
10
+ /** backgroundColor of the color card */
11
+ backgroundColor: string;
12
+ /** name of the CSS var */
13
+ colorName: string;
14
+ }
15
+
16
+ /**
17
+ * ColorCard
18
+ * Component only used for Storybook.
19
+ */
20
+ export default function ColorCard(
21
+ props: React.PropsWithChildren<ColorCardProps>
22
+ ) {
23
+ const { backgroundColor, colorName = "" } = props;
24
+
25
+ return (
26
+ <div style={{ display: "flex", alignItems: "center" }}>
27
+ <Card
28
+ backgroundColor={backgroundColor}
29
+ center
30
+ layout={CardLayouts.Column}
31
+ border
32
+ />
33
+ <div style={{ marginLeft: "1rem" }}>
34
+ <Heading level={HeadingLevels.Four}>{colorName}</Heading>
35
+ {/*
36
+ TODO:
37
+ This code is returning the CSS variable name. This is not what we
38
+ want. Rather, we want to see the variable's hex value. This is
39
+ somethign we will need to come back to.
40
+
41
+ <Text noSpace>{backgroundColor}</Text>
42
+ */}
43
+ </div>
44
+ </div>
45
+ );
46
+ }