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

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 (236) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/components/Accordion/Accordion.d.ts +14 -14
  3. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +11 -14
  4. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +6 -0
  5. package/dist/components/Button/ButtonTypes.d.ts +2 -1
  6. package/dist/components/Card/Card.d.ts +1 -1
  7. package/dist/components/Card/CardTypes.d.ts +2 -2
  8. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +43 -0
  9. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +4 -0
  10. package/dist/components/DatePicker/DatePicker.d.ts +3 -3
  11. package/dist/components/Form/Form.d.ts +13 -8
  12. package/dist/components/Form/FormTypes.d.ts +2 -8
  13. package/dist/components/Grid/GridTypes.d.ts +9 -0
  14. package/dist/components/Grid/SimpleGrid.d.ts +14 -0
  15. package/dist/components/Heading/Heading.d.ts +4 -4
  16. package/dist/components/Hero/Hero.d.ts +19 -14
  17. package/dist/components/Hero/HeroTypes.d.ts +10 -5
  18. package/dist/components/Icons/Icon.d.ts +13 -16
  19. package/dist/components/Icons/IconTypes.d.ts +78 -64
  20. package/dist/components/Label/Label.d.ts +5 -17
  21. package/dist/components/Link/Link.d.ts +8 -12
  22. package/dist/components/SearchBar/SearchBar.d.ts +45 -27
  23. package/dist/components/Select/Select.d.ts +32 -35
  24. package/dist/components/Select/SelectTypes.d.ts +4 -0
  25. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +1 -1
  26. package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +2 -2
  27. package/dist/components/StatusBadge/StatusBadge.d.ts +8 -6
  28. package/dist/components/StatusBadge/StatusBadgeTypes.d.ts +5 -0
  29. package/dist/components/Template/Template.d.ts +91 -0
  30. package/dist/components/Text/Text.d.ts +16 -0
  31. package/dist/components/Text/TextTypes.d.ts +6 -0
  32. package/dist/components/TextInput/TextInput.d.ts +32 -31
  33. package/dist/components/TextInput/TextInputTypes.d.ts +5 -0
  34. package/dist/design-system-react-components.cjs.development.js +2597 -1170
  35. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  36. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  37. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  38. package/dist/design-system-react-components.esm.js +2580 -1173
  39. package/dist/design-system-react-components.esm.js.map +1 -1
  40. package/dist/index.d.ts +8 -1
  41. package/dist/styles.css +1 -1
  42. package/dist/theme/components/accordion.d.ts +25 -0
  43. package/dist/theme/components/breadcrumb.d.ts +90 -0
  44. package/dist/theme/components/button.d.ts +17 -7
  45. package/dist/theme/components/checkbox.d.ts +7 -7
  46. package/dist/theme/components/customCheckboxGroup.d.ts +18 -0
  47. package/dist/theme/components/customRadioGroup.d.ts +4 -3
  48. package/dist/theme/components/global.d.ts +55 -0
  49. package/dist/theme/components/globalMixins.d.ts +15 -0
  50. package/dist/theme/components/heading.d.ts +50 -20
  51. package/dist/theme/components/hero.d.ts +492 -0
  52. package/dist/theme/components/icon.d.ts +13 -0
  53. package/dist/theme/components/label.d.ts +16 -0
  54. package/dist/theme/components/link.d.ts +45 -0
  55. package/dist/theme/components/radio.d.ts +8 -7
  56. package/dist/theme/components/searchBar.d.ts +20 -0
  57. package/dist/theme/components/select.d.ts +58 -0
  58. package/dist/theme/components/statusBadge.d.ts +25 -0
  59. package/dist/theme/components/tabs.d.ts +9 -9
  60. package/dist/theme/components/template.d.ts +105 -0
  61. package/dist/theme/components/text.d.ts +20 -0
  62. package/dist/theme/components/textInput.d.ts +105 -0
  63. package/dist/theme/foundations/global.d.ts +3 -0
  64. package/dist/theme/foundations/shadows.d.ts +4 -0
  65. package/dist/utils/utils.d.ts +6 -0
  66. package/package.json +3 -2
  67. package/src/components/Accordion/Accordion.stories.mdx +227 -33
  68. package/src/components/Accordion/Accordion.test.tsx +135 -19
  69. package/src/components/Accordion/Accordion.tsx +81 -56
  70. package/src/components/Autosuggest/Autosuggest.stories.mdx +1 -1
  71. package/src/components/Autosuggest/Autosuggest.stories.tsx +1 -1
  72. package/src/components/Autosuggest/_Autosuggest.scss +2 -2
  73. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +46 -52
  74. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +31 -25
  75. package/src/components/Breadcrumbs/Breadcrumbs.tsx +71 -73
  76. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +6 -0
  77. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +100 -0
  78. package/src/components/Button/Button.stories.mdx +31 -27
  79. package/src/components/Button/Button.test.tsx +17 -5
  80. package/src/components/Button/ButtonTypes.tsx +1 -0
  81. package/src/components/Button/_Button.scss +3 -27
  82. package/src/components/Button/__snapshots__/Button.test.tsx.snap +11 -0
  83. package/src/components/Card/Card.stories.mdx +24 -20
  84. package/src/components/Card/Card.test.tsx +13 -19
  85. package/src/components/Card/Card.tsx +1 -1
  86. package/src/components/Card/CardTypes.tsx +2 -2
  87. package/src/components/Card/_Card.scss +1 -1
  88. package/src/components/CardEdition/CardEdition.stories.tsx +11 -6
  89. package/src/components/CardEdition/CardEdition.test.tsx +23 -31
  90. package/src/components/CardEdition/_CardEdition.scss +2 -2
  91. package/src/components/Chakra/Center.stories.mdx +31 -14
  92. package/src/components/Chakra/Grid.stories.mdx +79 -0
  93. package/src/components/Chakra/Stack.stories.mdx +4 -4
  94. package/src/components/Checkbox/Checkbox.tsx +9 -12
  95. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +2 -5
  96. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +249 -0
  97. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +345 -0
  98. package/src/components/CheckboxGroup/CheckboxGroup.tsx +148 -0
  99. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +4 -0
  100. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +1360 -0
  101. package/src/components/DatePicker/DatePicker.test.tsx +4 -4
  102. package/src/components/DatePicker/DatePicker.tsx +13 -13
  103. package/src/components/DatePicker/_DatePicker.scss +1 -0
  104. package/src/components/Form/Form.stories.mdx +46 -21
  105. package/src/components/Form/Form.test.tsx +58 -45
  106. package/src/components/Form/Form.tsx +49 -21
  107. package/src/components/Form/FormTypes.tsx +3 -8
  108. package/src/components/Form/__snapshots__/Form.test.tsx.snap +24 -14
  109. package/src/components/Grid/GridTypes.tsx +9 -0
  110. package/src/components/Grid/SimpleGrid.stories.mdx +275 -0
  111. package/src/components/Grid/SimpleGrid.test.tsx +66 -0
  112. package/src/components/Grid/SimpleGrid.tsx +37 -0
  113. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +8 -0
  114. package/src/components/Heading/Heading.stories.mdx +1 -0
  115. package/src/components/Heading/Heading.tsx +12 -6
  116. package/src/components/HelperErrorText/_HelperErrorText.scss +1 -1
  117. package/src/components/Hero/Hero.stories.mdx +188 -121
  118. package/src/components/Hero/Hero.test.tsx +537 -107
  119. package/src/components/Hero/Hero.tsx +79 -92
  120. package/src/components/Hero/HeroTypes.tsx +17 -5
  121. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +307 -0
  122. package/src/components/HorizontalRule/_HorizontalRule.scss +1 -1
  123. package/src/components/Icons/Icon.stories.mdx +83 -74
  124. package/src/components/Icons/Icon.test.tsx +30 -22
  125. package/src/components/Icons/Icon.tsx +63 -61
  126. package/src/components/Icons/IconTypes.tsx +80 -64
  127. package/src/components/Input/_Input.scss +2 -2
  128. package/src/components/Label/Label.stories.mdx +28 -7
  129. package/src/components/Label/Label.test.tsx +43 -12
  130. package/src/components/Label/Label.tsx +21 -34
  131. package/src/components/Label/__snapshots__/Label.test.tsx.snap +41 -0
  132. package/src/components/Link/Link.stories.mdx +41 -41
  133. package/src/components/Link/Link.test.tsx +33 -44
  134. package/src/components/Link/Link.tsx +114 -100
  135. package/src/components/List/List.stories.mdx +0 -2
  136. package/src/components/List/List.stories.tsx +5 -5
  137. package/src/components/List/_List.scss +3 -3
  138. package/src/components/Modal/_Modal.scss +1 -1
  139. package/src/components/Notification/Notification.stories.mdx +12 -1
  140. package/src/components/Notification/Notification.test.tsx +3 -16
  141. package/src/components/Notification/Notification.tsx +9 -10
  142. package/src/components/Notification/_Notification.scss +4 -4
  143. package/src/components/Pagination/Pagination.test.tsx +16 -10
  144. package/src/components/RadioGroup/RadioGroup.stories.mdx +1 -1
  145. package/src/components/RadioGroup/RadioGroup.tsx +2 -10
  146. package/src/components/SearchBar/SearchBar.Test.tsx +151 -16
  147. package/src/components/SearchBar/SearchBar.stories.mdx +189 -219
  148. package/src/components/SearchBar/SearchBar.tsx +151 -46
  149. package/src/components/Select/Select.stories.mdx +188 -170
  150. package/src/components/Select/Select.test.tsx +125 -380
  151. package/src/components/Select/Select.tsx +118 -165
  152. package/src/components/Select/SelectTypes.tsx +4 -0
  153. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +13 -25
  154. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +7 -7
  155. package/src/components/SkeletonLoader/SkeletonLoader.tsx +4 -2
  156. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +2 -2
  157. package/src/components/SkeletonLoader/_SkeletonLoader.scss +3 -3
  158. package/src/components/StatusBadge/StatusBadge.stories.mdx +91 -0
  159. package/src/components/StatusBadge/StatusBadge.test.tsx +35 -7
  160. package/src/components/StatusBadge/StatusBadge.tsx +24 -25
  161. package/src/components/StatusBadge/StatusBadgeTypes.tsx +5 -0
  162. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +28 -0
  163. package/src/components/StyleGuide/Bidirectionality.stories.mdx +16 -16
  164. package/src/components/StyleGuide/Buttons.stories.mdx +15 -15
  165. package/src/components/StyleGuide/Colors.stories.mdx +336 -0
  166. package/src/components/StyleGuide/Iconography.stories.mdx +88 -90
  167. package/src/components/StyleGuide/UIDocCard.tsx +1 -1
  168. package/src/components/Tabs/Tabs.tsx +7 -9
  169. package/src/components/Template/Template.stories.mdx +574 -0
  170. package/src/components/Template/Template.test.tsx +124 -0
  171. package/src/components/Template/Template.tsx +226 -0
  172. package/src/components/Text/Text.stories.mdx +70 -0
  173. package/src/components/Text/Text.test.tsx +63 -0
  174. package/src/components/Text/Text.tsx +55 -0
  175. package/src/components/Text/TextTypes.tsx +6 -0
  176. package/src/components/Text/__snapshots__/Text.test.tsx.snap +33 -0
  177. package/src/components/TextInput/TextInput.stories.mdx +89 -90
  178. package/src/components/TextInput/TextInput.test.tsx +65 -86
  179. package/src/components/TextInput/TextInput.tsx +101 -95
  180. package/src/components/TextInput/TextInputTypes.tsx +6 -0
  181. package/src/components/VideoPlayer/_VideoPlayer.scss +1 -1
  182. package/src/docs/Chakra.stories.mdx +4 -4
  183. package/src/docs/Intro.stories.mdx +15 -13
  184. package/src/index.ts +20 -0
  185. package/src/styles/01-colors/_colors-brand.scss +6 -0
  186. package/src/styles/01-colors/_colors-utility.scss +14 -12
  187. package/src/styles/base/_04-base.scss +2 -1
  188. package/src/styles/base/_place-holder.scss +1 -1
  189. package/src/styles.scss +10 -12
  190. package/src/theme/components/accordion.ts +30 -0
  191. package/src/theme/components/breadcrumb.ts +77 -0
  192. package/src/theme/components/button.ts +77 -63
  193. package/src/theme/components/checkbox.ts +15 -27
  194. package/src/theme/components/customCheckboxGroup.ts +12 -0
  195. package/src/theme/components/customRadioGroup.ts +4 -10
  196. package/src/theme/components/global.ts +71 -0
  197. package/src/theme/components/globalMixins.ts +16 -0
  198. package/src/theme/components/heading.ts +15 -8
  199. package/src/theme/components/hero.ts +239 -0
  200. package/src/theme/components/icon.ts +79 -0
  201. package/src/theme/components/label.ts +17 -0
  202. package/src/theme/components/link.ts +47 -0
  203. package/src/theme/components/radio.ts +20 -31
  204. package/src/theme/components/searchBar.ts +21 -0
  205. package/src/theme/components/select.ts +50 -0
  206. package/src/theme/components/statusBadge.ts +27 -0
  207. package/src/theme/components/tabs.ts +72 -69
  208. package/src/theme/components/template.ts +114 -0
  209. package/src/theme/components/text.ts +31 -0
  210. package/src/theme/components/textInput.ts +61 -0
  211. package/src/theme/foundations/colors.ts +29 -13
  212. package/src/theme/foundations/global.ts +3 -0
  213. package/src/theme/foundations/shadows.ts +5 -0
  214. package/src/theme/index.ts +37 -7
  215. package/src/utils/componentCategories.ts +8 -2
  216. package/src/utils/utils.ts +13 -0
  217. package/dist/components/Accordion/Accordion.stories.d.ts +0 -6
  218. package/dist/components/StatusBadge/StatusBadge.stories.d.ts +0 -8
  219. package/dist/components/StyleGuide/Colors.stories.d.ts +0 -25
  220. package/dist/components/Template/Template.stories.d.ts +0 -30
  221. package/src/components/Accordion/Accordion.stories.tsx +0 -66
  222. package/src/components/Accordion/_Accordion.scss +0 -81
  223. package/src/components/Breadcrumbs/_Breadcrumbs.scss +0 -97
  224. package/src/components/Form/_Form.scss +0 -67
  225. package/src/components/Hero/_Hero.scss +0 -256
  226. package/src/components/Icons/_Icons.scss +0 -116
  227. package/src/components/Label/_Label.scss +0 -22
  228. package/src/components/Link/_Link.scss +0 -73
  229. package/src/components/SearchBar/_SearchBar.scss +0 -16
  230. package/src/components/Select/_Select.scss +0 -82
  231. package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -34
  232. package/src/components/StatusBadge/_StatusBadge.scss +0 -23
  233. package/src/components/StyleGuide/Colors.stories.tsx +0 -289
  234. package/src/components/Template/Template.stories.tsx +0 -86
  235. package/src/components/Template/_Template.scss +0 -63
  236. package/src/components/TextInput/_TextInput.scss +0 -59
@@ -1,37 +1,36 @@
1
1
  import * as React from "react";
2
- import bem from "../../utils/bem";
2
+ import { Box, useStyleConfig } from "@chakra-ui/react";
3
+
4
+ import { StatusBadgeTypes } from "./StatusBadgeTypes";
5
+ import generateUUID from "../../helpers/generateUUID";
3
6
 
4
7
  export interface StatusBadgeProps {
5
- /** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
6
- blockName?: string;
7
- /** ClassName that appears in addition to "status-badge" */
8
+ /** Additional class for the component */
8
9
  className?: string;
9
- /** Level of badge **/
10
- level?: "low" | "medium" | "high";
10
+ /** ID that other components can cross reference for accessibility purposes */
11
+ id?: string;
12
+ /** Level of the status badge through StatusBadgeTypes. */
13
+ level?: StatusBadgeTypes;
11
14
  }
12
15
 
13
- export default function StatusBadge(
14
- props: React.PropsWithChildren<StatusBadgeProps>
15
- ) {
16
- const { blockName, className, level } = props;
17
-
18
- const baseClass = "status-badge";
19
-
20
- let statusBadgeModifiers = ["low"];
16
+ function StatusBadge(props: React.PropsWithChildren<StatusBadgeProps>) {
17
+ const {
18
+ children,
19
+ className,
20
+ id = generateUUID(),
21
+ level = StatusBadgeTypes.Low,
22
+ } = props;
23
+ const styles = useStyleConfig("StatusBadge", { variant: level });
21
24
 
22
- if (!props.children) {
23
- console.warn("Status Badge has no children");
24
- }
25
-
26
- if (level) {
27
- statusBadgeModifiers = [level];
25
+ if (!children) {
26
+ console.warn("Status Badge has no children.");
28
27
  }
29
28
 
30
29
  return (
31
- <div
32
- className={bem(baseClass, statusBadgeModifiers, blockName, [className])}
33
- >
34
- {props.children}
35
- </div>
30
+ <Box id={id} className={className} __css={styles}>
31
+ {children}
32
+ </Box>
36
33
  );
37
34
  }
35
+
36
+ export default StatusBadge;
@@ -0,0 +1,5 @@
1
+ export enum StatusBadgeTypes {
2
+ Low = "low",
3
+ Medium = "medium",
4
+ High = "high",
5
+ }
@@ -0,0 +1,28 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`StatusBadge renders the UI snapshot correctly 1`] = `
4
+ <div
5
+ className="css-0"
6
+ id="low"
7
+ >
8
+ Registration Required
9
+ </div>
10
+ `;
11
+
12
+ exports[`StatusBadge renders the UI snapshot correctly 2`] = `
13
+ <div
14
+ className="css-0"
15
+ id="medium"
16
+ >
17
+ Registration Required
18
+ </div>
19
+ `;
20
+
21
+ exports[`StatusBadge renders the UI snapshot correctly 3`] = `
22
+ <div
23
+ className="css-0"
24
+ id="high"
25
+ >
26
+ Registration Required
27
+ </div>
28
+ `;
@@ -4,7 +4,7 @@ import SearchBar from "../SearchBar/SearchBar";
4
4
  import Input from "../Input/Input";
5
5
  import { InputTypes } from "../Input/InputTypes";
6
6
  import Icon from "../Icons/Icon";
7
- import { IconNames } from "../Icons/IconTypes";
7
+ import { IconNames, IconSizes, IconAlign } from "../Icons/IconTypes";
8
8
  import Button from "../Button/Button";
9
9
  import { ButtonTypes } from "../Button/ButtonTypes";
10
10
  import HelperErrorText from "../HelperErrorText/HelperErrorText";
@@ -132,9 +132,9 @@ won't hurt.
132
132
  />
133
133
  <Button buttonType={ButtonTypes.Primary} id="button-ex1" type="submit">
134
134
  <Icon
135
- name={IconNames.search}
136
- decorative={true}
137
- modifiers={["small", "icon-left"]}
135
+ name={IconNames.Search}
136
+ size={IconSizes.Small}
137
+ align={IconAlign.Left}
138
138
  />
139
139
  Search
140
140
  </Button>
@@ -170,9 +170,9 @@ block to see its code implementation.
170
170
  type="submit"
171
171
  >
172
172
  <Icon
173
- name={IconNames.search}
174
- decorative={true}
175
- modifiers={["small", "icon-left"]}
173
+ name={IconNames.Search}
174
+ size={IconSizes.Small}
175
+ align={IconAlign.Left}
176
176
  />
177
177
  يبحث
178
178
  </Button>
@@ -209,9 +209,9 @@ block to see its code implementation.
209
209
  type="submit"
210
210
  >
211
211
  <Icon
212
- name={IconNames.search}
213
- decorative={true}
214
- modifiers={["small", "icon-left"]}
212
+ name={IconNames.Search}
213
+ size={IconSizes.Small}
214
+ align={IconAlign.Left}
215
215
  />
216
216
  يبحث
217
217
  </Button>
@@ -242,9 +242,9 @@ help reduce any visual mistakes.
242
242
  A regular button:
243
243
  <Button buttonType={ButtonTypes.Primary} id="button-ex4" type="submit">
244
244
  <Icon
245
- name={IconNames.search}
246
- decorative={true}
247
- modifiers={["small", "icon-left"]}
245
+ name={IconNames.Search}
246
+ size={IconSizes.Small}
247
+ align={IconAlign.Left}
248
248
  />
249
249
  Search
250
250
  </Button>
@@ -258,9 +258,9 @@ help reduce any visual mistakes.
258
258
  type="submit"
259
259
  >
260
260
  <Icon
261
- name={IconNames.search}
262
- decorative={true}
263
- modifiers={["small", "icon-left"]}
261
+ name={IconNames.Search}
262
+ size={IconSizes.Small}
263
+ align={IconAlign.Left}
264
264
  />
265
265
  Search
266
266
  </Button>
@@ -12,10 +12,10 @@ import Button, { ButtonGroup } from "../Button/Button";
12
12
  import { ButtonTypes } from "../Button/ButtonTypes";
13
13
  import Icon from "../Icons/Icon";
14
14
  import {
15
- IconColors,
16
15
  IconNames,
17
16
  IconRotationTypes,
18
17
  IconSizes,
18
+ IconAlign,
19
19
  } from "../Icons/IconTypes";
20
20
  import getCSSVariable from "../../helpers/getCSSVariable";
21
21
  import DSProvider from "../../theme/provider";
@@ -87,7 +87,11 @@ Buttons should use `--space-xs` (0.5rem) for spacing in situations where multipl
87
87
  },
88
88
  }}
89
89
  >
90
- <Icon decorative modifiers={["small", "icon-left"]} name="search" />
90
+ <Icon
91
+ name={IconNames.Search}
92
+ size={IconSizes.Small}
93
+ align={IconAlign.Left}
94
+ />
91
95
  Button Text
92
96
  </Button>
93
97
  <Button
@@ -98,11 +102,7 @@ Buttons should use `--space-xs` (0.5rem) for spacing in situations where multipl
98
102
  },
99
103
  }}
100
104
  >
101
- <Icon
102
- name={IconNames.close}
103
- decorative={true}
104
- size={IconSizes.medium}
105
- />
105
+ <Icon name={IconNames.Close} size={IconSizes.Medium} />
106
106
  </Button>
107
107
  <Button
108
108
  buttonType={ButtonTypes.Primary}
@@ -118,10 +118,10 @@ Buttons should use `--space-xs` (0.5rem) for spacing in situations where multipl
118
118
  <Button buttonType={ButtonTypes.Secondary}>
119
119
  Back to Top
120
120
  <Icon
121
- name={IconNames.arrow}
122
- decorative={true}
123
- iconRotation={IconRotationTypes.rotate180}
124
- modifiers={["small", "icon-right"]}
121
+ name={IconNames.Arrow}
122
+ size={IconSizes.Small}
123
+ align={IconAlign.Right}
124
+ iconRotation={IconRotationTypes.Rotate180}
125
125
  />
126
126
  </Button>
127
127
  </ButtonGroup>
@@ -186,10 +186,10 @@ The "Back to Top" button must be of `ButtonTypes` `Secondary` and must include a
186
186
  <Button buttonType={ButtonTypes.Secondary}>
187
187
  Back to Top
188
188
  <Icon
189
- name={IconNames.arrow}
190
- decorative={true}
191
- iconRotation={IconRotationTypes.rotate180}
192
- modifiers={["small", "icon-right"]}
189
+ name={IconNames.Arrow}
190
+ iconRotation={IconRotationTypes.Rotate180}
191
+ size={IconSizes.Small}
192
+ align={IconAlign.Right}
193
193
  />
194
194
  </Button>
195
195
  </ButtonGroup>
@@ -0,0 +1,336 @@
1
+ import {
2
+ Meta,
3
+ Story,
4
+ Canvas,
5
+ ArgsTable,
6
+ Description,
7
+ } from "@storybook/addon-docs/blocks";
8
+ import { withDesign } from "storybook-addon-designs";
9
+ import { select } from "@storybook/addon-knobs";
10
+
11
+ import { getCategory } from "../../utils/componentCategories";
12
+ import cssVariables from "../../helpers/CSSVariablesHelper";
13
+ import getCSSVariable from "../../helpers/getCSSVariable";
14
+ import UIDocCard from "./UIDocCard";
15
+ import Breadcrumbs from "../Breadcrumbs/Breadcrumbs";
16
+ import List from "../List/List";
17
+ import Heading from "../Heading/Heading";
18
+ import { HeadingLevels } from "../Heading/HeadingTypes";
19
+ import { ListTypes } from "../List/ListTypes";
20
+ import sections from "../../utils/siteSections";
21
+ import DSProvider from "../../theme/provider";
22
+
23
+ <Meta title={getCategory("Colors")} decorators={[withDesign]} />
24
+
25
+ # NYPL Colors
26
+
27
+ export const sectionDefault = sections[3];
28
+
29
+ <Canvas>
30
+ <Story
31
+ name="Colors-Brand"
32
+ parameters={{
33
+ design: {
34
+ type: "figma",
35
+ url:
36
+ "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=15454%3A47007",
37
+ },
38
+ }}
39
+ args={{
40
+ section: sectionDefault,
41
+ }}
42
+ argTypes={{
43
+ section: {
44
+ control: {
45
+ type: "select",
46
+ },
47
+ options: sections,
48
+ },
49
+ }}
50
+ >
51
+ {(args) => (
52
+ <>
53
+ <Heading level={HeadingLevels.One}>Brand</Heading>
54
+ <p>Brand fills are the NYPL primary and secondary colors.</p>
55
+ <List
56
+ type={ListTypes.Unordered}
57
+ modifiers={["no-list-styling"]}
58
+ className="card-grid__cards"
59
+ >
60
+ <li style={{ textAlign: "center" }}>
61
+ <UIDocCard backgroundColor={getCSSVariable("--brand-primary")}>
62
+ --brand-primary: {getCSSVariable("--brand-primary")}
63
+ </UIDocCard>
64
+ </li>
65
+ <li style={{ textAlign: "center" }}>
66
+ <UIDocCard backgroundColor={getCSSVariable("--brand-secondary")}>
67
+ --brand-secondary: {getCSSVariable("--brand-secondary")}
68
+ </UIDocCard>
69
+ </li>
70
+ </List>
71
+ <Heading level={HeadingLevels.One}>Section Colors</Heading>
72
+ <Heading level={HeadingLevels.Two}>What's On</Heading>
73
+ <p>
74
+ Section colors are branding colors only in use at NYPL. Certain
75
+ components, such as Breadcrumbs below, change color based on the
76
+ modifier applied the body tag.
77
+ </p>
78
+ <div
79
+ className={`${args.section} storybook-breadcrumbsExample`}
80
+ style={{ marginBottom: "2%", display: "flex", width: "100%" }}
81
+ >
82
+ <Breadcrumbs
83
+ breadcrumbs={[
84
+ { url: "#", text: "Parent" },
85
+ { url: "#", text: "Home" },
86
+ ]}
87
+ />
88
+ <div
89
+ style={{
90
+ flex: "1 1 50%",
91
+ backgroundColor: "var(--ui-gray-x-light-cool)",
92
+ padding: "2%",
93
+ }}
94
+ >
95
+ <pre>
96
+ <code>
97
+ {"<div className="}
98
+ {"'" + args.section + "'"}
99
+ {">\n"}
100
+ {" <Breadcrumbs...></Breadcrumbs>"}
101
+ {"\n"}
102
+ {"</div>"}
103
+ </code>
104
+ </pre>
105
+ </div>
106
+ </div>
107
+ <p>What's On is used for Events, Exhibitions & Audio Guides.</p>
108
+ <List
109
+ type={ListTypes.Unordered}
110
+ modifiers={["no-list-styling"]}
111
+ className="card-grid__cards"
112
+ >
113
+ <li style={{ textAlign: "center" }}>
114
+ <UIDocCard
115
+ backgroundColor={getCSSVariable("--section-whats-on-primary")}
116
+ >
117
+ --section-whats-on-primary:{" "}
118
+ {getCSSVariable("--section-whats-on-primary")}
119
+ </UIDocCard>
120
+ </li>
121
+ <li style={{ textAlign: "center" }}>
122
+ <UIDocCard
123
+ backgroundColor={getCSSVariable("--section-whats-on-secondary")}
124
+ >
125
+ --section-whats-on-secondary:{" "}
126
+ {getCSSVariable("--section-whats-on-secondary")}
127
+ </UIDocCard>
128
+ </li>
129
+ </List>
130
+ <Heading level={HeadingLevels.Two}>Books and More</Heading>
131
+ <p>
132
+ Books and More is used for the Catalog, Staff Picks, Recommendations,
133
+ New Arrivals, and E-Book Central.
134
+ </p>
135
+ <List
136
+ type={ListTypes.Unordered}
137
+ modifiers={["no-list-styling"]}
138
+ className="card-grid__cards"
139
+ >
140
+ <li style={{ textAlign: "center" }}>
141
+ <UIDocCard
142
+ backgroundColor={getCSSVariable(
143
+ "--section-books-and-more-primary"
144
+ )}
145
+ >
146
+ --section-books-and-more-primary:{" "}
147
+ {getCSSVariable("--section-books-and-more-primary")}
148
+ </UIDocCard>
149
+ </li>
150
+ <li style={{ textAlign: "center" }}>
151
+ <UIDocCard
152
+ backgroundColor={getCSSVariable(
153
+ "--section-books-and-more-secondary"
154
+ )}
155
+ >
156
+ --section-books-and-more-secondary:{" "}
157
+ {getCSSVariable("--section-books-and-more-secondary")}
158
+ </UIDocCard>
159
+ </li>
160
+ </List>
161
+ <Heading level={HeadingLevels.Two}>Research</Heading>
162
+ <p>Research is used for the Research Catalog and SCC.</p>
163
+ <List
164
+ type={ListTypes.Unordered}
165
+ modifiers={["no-list-styling"]}
166
+ className="card-grid__cards"
167
+ >
168
+ <li style={{ textAlign: "center" }}>
169
+ <UIDocCard
170
+ backgroundColor={getCSSVariable("--section-research-primary")}
171
+ >
172
+ --section-research-primary:{" "}
173
+ {getCSSVariable("--section-research-primary")}
174
+ </UIDocCard>
175
+ </li>
176
+ <li style={{ textAlign: "center" }}>
177
+ <UIDocCard
178
+ backgroundColor={getCSSVariable("--section-research-secondary")}
179
+ >
180
+ --section-research-secondary:{" "}
181
+ {getCSSVariable("--section-research-secondary")}
182
+ </UIDocCard>
183
+ </li>
184
+ </List>
185
+ <Heading level={HeadingLevels.Two}>Locations</Heading>
186
+ <p>
187
+ Locations is used for Location Finder and all branch pages with the
188
+ exceptions of some research libraries.
189
+ </p>
190
+ <List
191
+ type={ListTypes.Unordered}
192
+ modifiers={["no-list-styling"]}
193
+ className="card-grid__cards"
194
+ >
195
+ <li style={{ textAlign: "center" }}>
196
+ <UIDocCard
197
+ backgroundColor={getCSSVariable("--section-locations-primary")}
198
+ >
199
+ --section-locations-primary:{" "}
200
+ {getCSSVariable("--section-locations-primary")}
201
+ </UIDocCard>
202
+ </li>
203
+ <li style={{ textAlign: "center" }}>
204
+ <UIDocCard
205
+ backgroundColor={getCSSVariable("--section-locations-secondary")}
206
+ >
207
+ --section-locations-secondary:{" "}
208
+ {getCSSVariable("--section-locations-secondary")}
209
+ </UIDocCard>
210
+ </li>
211
+ </List>
212
+ <Heading level={HeadingLevels.Two}>Blogs</Heading>
213
+ <p>Blogs is used for the Blogs section.</p>
214
+ <List
215
+ type={ListTypes.Unordered}
216
+ modifiers={["no-list-styling"]}
217
+ className="card-grid__cards"
218
+ >
219
+ <li style={{ textAlign: "center" }}>
220
+ <UIDocCard
221
+ backgroundColor={getCSSVariable("--section-blogs-primary")}
222
+ >
223
+ --section-blogs-primary:{" "}
224
+ {getCSSVariable("--section-blogs-primary")}
225
+ </UIDocCard>
226
+ </li>
227
+ <li style={{ textAlign: "center" }}>
228
+ <UIDocCard
229
+ backgroundColor={getCSSVariable("--section-blogs-secondary")}
230
+ >
231
+ --section-blogs-secondary:{" "}
232
+ {getCSSVariable("--section-blogs-secondary")}
233
+ </UIDocCard>
234
+ </li>
235
+ </List>
236
+ <Heading level={HeadingLevels.Two}>Research Libraries</Heading>
237
+ <p>Research libraries with specific brand colors to adhere to.</p>
238
+ <List
239
+ type={ListTypes.Unordered}
240
+ modifiers={["no-list-styling"]}
241
+ className="card-grid__cards"
242
+ >
243
+ <li style={{ textAlign: "center" }}>
244
+ <UIDocCard
245
+ backgroundColor={getCSSVariable("--section-research-library-lpa")}
246
+ >
247
+ --section-research-library-lpa:{" "}
248
+ {getCSSVariable("--section-research-library-lpa")}
249
+ </UIDocCard>
250
+ </li>
251
+ <li style={{ textAlign: "center" }}>
252
+ <UIDocCard
253
+ backgroundColor={getCSSVariable(
254
+ "--section-research-library-schomburg"
255
+ )}
256
+ >
257
+ --section-research-library-schomburg:{" "}
258
+ {getCSSVariable("--section-research-library-schomburg")}
259
+ </UIDocCard>
260
+ </li>
261
+ <li style={{ textAlign: "center" }}>
262
+ <UIDocCard
263
+ backgroundColor={getCSSVariable(
264
+ "--section-research-library-schwartzman"
265
+ )}
266
+ >
267
+ --section-research-library-schwartzman:{" "}
268
+ {getCSSVariable("--section-research-library-schwartzman")}
269
+ </UIDocCard>
270
+ </li>
271
+ </List>
272
+ </>
273
+ )}
274
+ </Story>
275
+ </Canvas>
276
+
277
+ # Utility Colors
278
+
279
+ export const uiVariables = {};
280
+ export const grayScaleVariables = {};
281
+ for (const [key, value] of Object.entries(cssVariables)) {
282
+ if (key.startsWith(" --ui-gray")) {
283
+ grayScaleVariables[key] = value;
284
+ } else if (key.startsWith(" --ui")) {
285
+ uiVariables[key] = value;
286
+ }
287
+ }
288
+ export const uiVariableDocs = [];
289
+ export const grayscaleDocs = [];
290
+ export const makeUIDocCard = function (key, value, docArray) {
291
+ docArray.push(
292
+ <li style={{ textAlign: "center" }}>
293
+ <UIDocCard backgroundColor={value}>
294
+ {key}: {value}
295
+ </UIDocCard>
296
+ </li>
297
+ );
298
+ };
299
+ for (const [key, value] of Object.entries(uiVariables)) {
300
+ makeUIDocCard(key, value, uiVariableDocs);
301
+ }
302
+ for (const [key, value] of Object.entries(grayScaleVariables)) {
303
+ makeUIDocCard(key, value, grayscaleDocs);
304
+ }
305
+
306
+ <Canvas>
307
+ <Story
308
+ name="Colors-Utility"
309
+ parameters={{
310
+ design: {
311
+ type: "figma",
312
+ url:
313
+ "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=14989%3A37",
314
+ },
315
+ }}
316
+ >
317
+ <>
318
+ <Heading level={HeadingLevels.One}>Utility Colors</Heading>
319
+ <List
320
+ type={ListTypes.Unordered}
321
+ modifiers={["no-list-styling"]}
322
+ className="card-grid__cards"
323
+ >
324
+ {uiVariableDocs}
325
+ </List>
326
+ <Heading level={HeadingLevels.One}>Grayscale</Heading>
327
+ <List
328
+ type={ListTypes.Unordered}
329
+ modifiers={["no-list-styling"]}
330
+ className="card-grid__cards"
331
+ >
332
+ {grayscaleDocs}
333
+ </List>
334
+ </>
335
+ </Story>
336
+ </Canvas>