@nypl/design-system-react-components 0.25.8 → 0.25.11

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/CHANGELOG.md +110 -1
  2. package/README.md +1 -1
  3. package/dist/components/Button/Button.d.ts +6 -6
  4. package/dist/components/Button/ButtonTypes.d.ts +0 -1
  5. package/dist/components/Card/Card.d.ts +6 -4
  6. package/dist/components/Checkbox/Checkbox.d.ts +3 -2
  7. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
  8. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
  9. package/dist/components/DatePicker/DatePicker.d.ts +4 -3
  10. package/dist/components/Fieldset/Fieldset.d.ts +1 -3
  11. package/dist/components/Form/Form.d.ts +15 -14
  12. package/dist/components/Form/FormTypes.d.ts +2 -2
  13. package/dist/components/Heading/Heading.d.ts +7 -3
  14. package/dist/components/Heading/HeadingTypes.d.ts +6 -6
  15. package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
  16. package/dist/components/HorizontalRule/HorizontalRule.d.ts +3 -3
  17. package/dist/components/Icons/Icon.d.ts +4 -4
  18. package/dist/components/Icons/IconSvgs.d.ts +0 -21
  19. package/dist/components/Icons/IconTypes.d.ts +0 -23
  20. package/dist/components/Image/Image.d.ts +11 -3
  21. package/dist/components/List/List.d.ts +1 -1
  22. package/dist/components/Logo/Logo.d.ts +28 -0
  23. package/dist/components/Logo/LogoSvgs.d.ts +34 -0
  24. package/dist/components/Logo/LogoTypes.d.ts +46 -0
  25. package/dist/components/Modal/Modal.d.ts +0 -4
  26. package/dist/components/Notification/Notification.d.ts +4 -2
  27. package/dist/components/Placeholder/Placeholder.d.ts +3 -5
  28. package/dist/components/Radio/Radio.d.ts +6 -5
  29. package/dist/components/RadioGroup/RadioGroup.d.ts +6 -5
  30. package/dist/components/SearchBar/SearchBar.d.ts +15 -7
  31. package/dist/components/Select/Select.d.ts +7 -2
  32. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
  33. package/dist/components/Slider/Slider.d.ts +3 -2
  34. package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
  35. package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
  36. package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
  37. package/dist/components/Table/Table.d.ts +29 -0
  38. package/dist/components/Template/Template.d.ts +30 -6
  39. package/dist/components/Text/Text.d.ts +2 -2
  40. package/dist/components/TextInput/TextInput.d.ts +4 -3
  41. package/dist/components/Toggle/Toggle.d.ts +3 -2
  42. package/dist/components/VideoPlayer/VideoPlayer.d.ts +14 -5
  43. package/dist/design-system-react-components.cjs.development.js +6721 -5777
  44. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  45. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  46. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  47. package/dist/design-system-react-components.esm.js +6774 -5839
  48. package/dist/design-system-react-components.esm.js.map +1 -1
  49. package/dist/index.d.ts +10 -8
  50. package/dist/resources.scss +0 -2
  51. package/dist/styles.css +2 -2
  52. package/dist/theme/components/breadcrumb.d.ts +1 -1
  53. package/dist/theme/components/button.d.ts +0 -12
  54. package/dist/theme/components/card.d.ts +14 -2
  55. package/dist/theme/components/customTable.d.ts +56 -0
  56. package/dist/theme/components/fieldset.d.ts +2 -2
  57. package/dist/theme/components/global.d.ts +1 -1
  58. package/dist/theme/components/heading.d.ts +4 -0
  59. package/dist/theme/components/label.d.ts +1 -1
  60. package/dist/theme/components/link.d.ts +14 -1
  61. package/dist/theme/components/list.d.ts +0 -2
  62. package/dist/theme/components/logo.d.ts +4 -0
  63. package/dist/theme/components/notification.d.ts +13 -4
  64. package/dist/theme/components/searchBar.d.ts +9 -11
  65. package/dist/theme/components/select.d.ts +1 -0
  66. package/dist/theme/components/structuredContent.d.ts +33 -0
  67. package/dist/theme/components/template.d.ts +10 -10
  68. package/dist/theme/components/textInput.d.ts +4 -0
  69. package/dist/theme/components/toggle.d.ts +8 -5
  70. package/dist/utils/utils.d.ts +10 -0
  71. package/package.json +40 -37
  72. package/src/__tests__/utils/utils.test.ts +23 -1
  73. package/src/components/Accordion/Accordion.stories.mdx +15 -13
  74. package/src/components/Accordion/Accordion.test.tsx +45 -1
  75. package/src/components/Accordion/Accordion.tsx +20 -8
  76. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +243 -0
  77. package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
  78. package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
  79. package/src/components/Autosuggest/_Autosuggest.scss +2 -6
  80. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +43 -13
  81. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +15 -0
  82. package/src/components/Breadcrumbs/Breadcrumbs.tsx +9 -3
  83. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +5 -5
  84. package/src/components/Button/Button.stories.mdx +93 -48
  85. package/src/components/Button/Button.test.tsx +0 -12
  86. package/src/components/Button/Button.tsx +7 -7
  87. package/src/components/Button/ButtonTypes.tsx +0 -1
  88. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
  89. package/src/components/Card/Card.stories.mdx +186 -71
  90. package/src/components/Card/Card.test.tsx +45 -22
  91. package/src/components/Card/Card.tsx +21 -6
  92. package/src/components/Card/__snapshots__/Card.test.tsx.snap +9 -3
  93. package/src/components/Chakra/Box.stories.mdx +3 -3
  94. package/src/components/Chakra/Center.stories.mdx +5 -5
  95. package/src/components/Chakra/Flex.stories.mdx +113 -0
  96. package/src/components/Chakra/Grid.stories.mdx +3 -3
  97. package/src/components/Chakra/Stack.stories.mdx +2 -2
  98. package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
  99. package/src/components/Checkbox/Checkbox.tsx +13 -8
  100. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
  101. package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
  102. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
  103. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
  104. package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
  105. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
  106. package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
  107. package/src/components/DatePicker/DatePicker.test.tsx +6 -6
  108. package/src/components/DatePicker/DatePicker.tsx +17 -11
  109. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +50 -24
  110. package/src/components/Fieldset/Fieldset.stories.mdx +20 -9
  111. package/src/components/Fieldset/Fieldset.tsx +2 -4
  112. package/src/components/Form/Form.stories.mdx +75 -49
  113. package/src/components/Form/Form.test.tsx +92 -3
  114. package/src/components/Form/Form.tsx +28 -23
  115. package/src/components/Form/FormTypes.tsx +2 -2
  116. package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -1
  117. package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
  118. package/src/components/Heading/Heading.stories.mdx +59 -23
  119. package/src/components/Heading/Heading.test.tsx +82 -18
  120. package/src/components/Heading/Heading.tsx +31 -31
  121. package/src/components/Heading/HeadingTypes.tsx +6 -6
  122. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
  123. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
  124. package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
  125. package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
  126. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
  127. package/src/components/Hero/Hero.stories.mdx +72 -53
  128. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +11 -9
  129. package/src/components/HorizontalRule/HorizontalRule.tsx +4 -6
  130. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +4 -4
  131. package/src/components/Icons/Icon.stories.mdx +78 -77
  132. package/src/components/Icons/Icon.test.tsx +1 -1
  133. package/src/components/Icons/Icon.tsx +5 -6
  134. package/src/components/Icons/IconSvgs.tsx +0 -42
  135. package/src/components/Icons/IconTypes.tsx +0 -24
  136. package/src/components/Image/Image.stories.mdx +66 -18
  137. package/src/components/Image/Image.tsx +21 -10
  138. package/src/components/Label/Label.stories.mdx +20 -19
  139. package/src/components/Link/Link.stories.mdx +102 -51
  140. package/src/components/Link/Link.test.tsx +38 -8
  141. package/src/components/Link/Link.tsx +19 -12
  142. package/src/components/Link/__snapshots__/Link.test.tsx.snap +60 -0
  143. package/src/components/List/List.stories.mdx +60 -29
  144. package/src/components/List/List.test.tsx +1 -1
  145. package/src/components/List/List.tsx +2 -2
  146. package/src/components/List/__snapshots__/List.test.tsx.snap +3 -1
  147. package/src/components/Logo/Logo.stories.mdx +222 -0
  148. package/src/components/Logo/Logo.test.tsx +98 -0
  149. package/src/components/Logo/Logo.tsx +97 -0
  150. package/src/components/Logo/LogoSvgs.tsx +66 -0
  151. package/src/components/Logo/LogoTypes.tsx +48 -0
  152. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
  153. package/src/components/Modal/Modal.stories.mdx +20 -5
  154. package/src/components/Modal/Modal.tsx +2 -8
  155. package/src/components/Notification/Notification.stories.mdx +128 -38
  156. package/src/components/Notification/Notification.test.tsx +49 -1
  157. package/src/components/Notification/Notification.tsx +25 -12
  158. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +4 -0
  159. package/src/components/Pagination/Pagination.stories.mdx +18 -7
  160. package/src/components/Pagination/Pagination.tsx +3 -3
  161. package/src/components/Placeholder/Placeholder.tsx +7 -14
  162. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +72 -43
  163. package/src/components/Radio/Radio.stories.mdx +39 -19
  164. package/src/components/Radio/Radio.tsx +13 -9
  165. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +5 -5
  166. package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
  167. package/src/components/RadioGroup/RadioGroup.test.tsx +13 -11
  168. package/src/components/RadioGroup/RadioGroup.tsx +97 -94
  169. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +24 -21
  170. package/src/components/SearchBar/SearchBar.Test.tsx +160 -34
  171. package/src/components/SearchBar/SearchBar.stories.mdx +115 -33
  172. package/src/components/SearchBar/SearchBar.tsx +72 -51
  173. package/src/components/Select/Select.stories.mdx +48 -14
  174. package/src/components/Select/Select.test.tsx +89 -0
  175. package/src/components/Select/Select.tsx +27 -12
  176. package/src/components/Select/__snapshots__/Select.test.tsx.snap +545 -0
  177. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
  178. package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
  179. package/src/components/Slider/Slider.stories.mdx +72 -22
  180. package/src/components/Slider/Slider.tsx +15 -10
  181. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +67 -30
  182. package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
  183. package/src/components/StatusBadge/StatusBadge.tsx +2 -1
  184. package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
  185. package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
  186. package/src/components/StructuredContent/StructuredContent.tsx +153 -0
  187. package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
  188. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
  189. package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
  190. package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
  191. package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
  192. package/src/components/StyleGuide/ColorCard.tsx +1 -2
  193. package/src/components/StyleGuide/Colors.stories.mdx +3 -11
  194. package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
  195. package/src/components/StyleGuide/Forms.stories.mdx +2 -10
  196. package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
  197. package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
  198. package/src/components/StyleGuide/Typography.stories.mdx +64 -76
  199. package/src/components/Table/Table.stories.mdx +165 -0
  200. package/src/components/Table/Table.test.tsx +137 -0
  201. package/src/components/Table/Table.tsx +126 -0
  202. package/src/components/Table/__snapshots__/Table.test.tsx.snap +1179 -0
  203. package/src/components/Tabs/Tabs.stories.mdx +20 -14
  204. package/src/components/Tabs/Tabs.test.tsx +21 -5
  205. package/src/components/Tabs/Tabs.tsx +35 -20
  206. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +195 -0
  207. package/src/components/Template/Template.stories.mdx +132 -48
  208. package/src/components/Template/Template.test.tsx +128 -6
  209. package/src/components/Template/Template.tsx +93 -13
  210. package/src/components/Template/__snapshots__/Template.test.tsx.snap +169 -0
  211. package/src/components/Text/Text.stories.mdx +33 -11
  212. package/src/components/Text/Text.tsx +2 -2
  213. package/src/components/TextInput/TextInput.stories.mdx +84 -17
  214. package/src/components/TextInput/TextInput.test.tsx +96 -0
  215. package/src/components/TextInput/TextInput.tsx +12 -8
  216. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
  217. package/src/components/Toggle/Toggle.stories.mdx +33 -9
  218. package/src/components/Toggle/Toggle.tsx +14 -9
  219. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +4 -4
  220. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +64 -14
  221. package/src/components/VideoPlayer/VideoPlayer.tsx +17 -7
  222. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +12 -6
  223. package/src/docs/Chakra.stories.mdx +5 -8
  224. package/src/docs/Intro.stories.mdx +2 -2
  225. package/src/index.ts +13 -6
  226. package/src/styles/base/_03-base.scss +1 -1
  227. package/src/styles/base/_place-holder.scss +7 -7
  228. package/src/styles.scss +1 -5
  229. package/src/theme/components/breadcrumb.ts +4 -4
  230. package/src/theme/components/button.ts +5 -12
  231. package/src/theme/components/card.ts +5 -2
  232. package/src/theme/components/checkbox.ts +1 -1
  233. package/src/theme/components/customTable.ts +63 -0
  234. package/src/theme/components/datePicker.ts +1 -1
  235. package/src/theme/components/global.ts +7 -7
  236. package/src/theme/components/heading.ts +13 -11
  237. package/src/theme/components/helperErrorText.ts +1 -1
  238. package/src/theme/components/image.ts +1 -1
  239. package/src/theme/components/link.ts +17 -5
  240. package/src/theme/components/list.ts +3 -5
  241. package/src/theme/components/logo.ts +54 -0
  242. package/src/theme/components/notification.ts +19 -9
  243. package/src/theme/components/searchBar.ts +11 -13
  244. package/src/theme/components/select.ts +1 -0
  245. package/src/theme/components/statusBadge.ts +1 -1
  246. package/src/theme/components/structuredContent.ts +74 -0
  247. package/src/theme/components/template.ts +10 -10
  248. package/src/theme/components/text.ts +6 -6
  249. package/src/theme/components/textInput.ts +2 -0
  250. package/src/theme/components/toggle.ts +10 -6
  251. package/src/theme/components/videoPlayer.ts +0 -2
  252. package/src/theme/foundations/global.ts +2 -2
  253. package/src/theme/foundations/typography.ts +84 -12
  254. package/src/theme/index.ts +6 -0
  255. package/src/utils/componentCategories.ts +2 -1
  256. package/src/utils/utils.ts +17 -0
  257. package/dist/__tests__/utils/bem.test.d.ts +0 -1
  258. package/dist/components/CardEdition/CardEdition.d.ts +0 -21
  259. package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
  260. package/dist/components/Input/Input.d.ts +0 -36
  261. package/dist/components/Input/Input.stories.d.ts +0 -29
  262. package/dist/components/Input/InputTypes.d.ts +0 -6
  263. package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
  264. package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
  265. package/dist/helpers/getCSSVariable.d.ts +0 -1
  266. package/dist/interfaces.d.ts +0 -3
  267. package/dist/utils/bem.d.ts +0 -1
  268. package/src/__tests__/utils/bem.test.ts +0 -37
  269. package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
  270. package/src/components/CardEdition/CardEdition.test.tsx +0 -395
  271. package/src/components/CardEdition/CardEdition.tsx +0 -60
  272. package/src/components/CardEdition/_CardEdition.scss +0 -137
  273. package/src/components/Input/Input.stories.tsx +0 -133
  274. package/src/components/Input/Input.test.tsx +0 -266
  275. package/src/components/Input/Input.tsx +0 -81
  276. package/src/components/Input/InputTypes.tsx +0 -8
  277. package/src/components/Input/_Input.scss +0 -78
  278. package/src/components/StyleGuide/UIDocCard.tsx +0 -36
  279. package/src/helpers/CSSVariablesHelper.tsx +0 -34
  280. package/src/helpers/getCSSVariable.tsx +0 -5
  281. package/src/interfaces.ts +0 -3
  282. package/src/utils/bem.ts +0 -44
@@ -0,0 +1,66 @@
1
+ /* eslint-disable camelcase */
2
+ import logo_bpl_black from "../../../icons/svg/logo_bpl_black.svg";
3
+ import logo_bpl_white from "../../../icons/svg/logo_bpl_white.svg";
4
+ import logo_clever_color from "../../../icons/svg/logo_clever_color.svg";
5
+ import logo_clever_white from "../../../icons/svg/logo_clever_white.svg";
6
+ import logo_lpa_color from "../../../icons/svg/logo_lpa_color.svg";
7
+ import logo_lpa_black from "../../../icons/svg/logo_lpa_black.svg";
8
+ import logo_lpa_white from "../../../icons/svg/logo_lpa_white.svg";
9
+ import logo_mln_black from "../../../icons/svg/logo_mln_black.svg";
10
+ import logo_mln_white from "../../../icons/svg/logo_mln_white.svg";
11
+ import logo_nypl_full_black from "../../../icons/svg/logo_nypl_full_black.svg";
12
+ import logo_nypl_full_white from "../../../icons/svg/logo_nypl_full_white.svg";
13
+ import logo_nypl_lion_black from "../../../icons/svg/logo_nypl_lion_black.svg";
14
+ import logo_nypl_lion_white from "../../../icons/svg/logo_nypl_lion_white.svg";
15
+ import logo_qpl_alt_black from "../../../icons/svg/logo_qpl_alt_black.svg";
16
+ import logo_qpl_alt_white from "../../../icons/svg/logo_qpl_alt_white.svg";
17
+ import logo_qpl_black from "../../../icons/svg/logo_qpl_black.svg";
18
+ import logo_qpl_color from "../../../icons/svg/logo_qpl_color.svg";
19
+ import logo_qpl_white from "../../../icons/svg/logo_qpl_white.svg";
20
+ import logo_schomburg_black from "../../../icons/svg/logo_schomburg_black.svg";
21
+ import logo_schomburg_circle_black from "../../../icons/svg/logo_schomburg_circle_black.svg";
22
+ import logo_schomburg_circle_color from "../../../icons/svg/logo_schomburg_circle_color.svg";
23
+ import logo_schomburg_circle_white from "../../../icons/svg/logo_schomburg_circle_white.svg";
24
+ import logo_schomburg_color from "../../../icons/svg/logo_schomburg_color.svg";
25
+ import logo_schomburg_white from "../../../icons/svg/logo_schomburg_white.svg";
26
+ import logo_simplye_black from "../../../icons/svg/logo_simplye_black.svg";
27
+ import logo_simplye_white from "../../../icons/svg/logo_simplye_white.svg";
28
+ import logo_simplye_color from "../../../icons/svg/logo_simplye_color.svg";
29
+ import logo_snfl_black from "../../../icons/svg/logo_snfl_black.svg";
30
+ import logo_snfl_white from "../../../icons/svg/logo_snfl_white.svg";
31
+ import logo_treasures_color from "../../../icons/svg/logo_treasures_color.svg";
32
+ import logo_treasures_color_negative from "../../../icons/svg/logo_treasures_color_negative.svg";
33
+
34
+ export default {
35
+ logo_bpl_black,
36
+ logo_bpl_white,
37
+ logo_clever_color,
38
+ logo_clever_white,
39
+ logo_lpa_black,
40
+ logo_lpa_color,
41
+ logo_lpa_white,
42
+ logo_mln_black,
43
+ logo_mln_white,
44
+ logo_nypl_full_black,
45
+ logo_nypl_full_white,
46
+ logo_nypl_lion_black,
47
+ logo_nypl_lion_white,
48
+ logo_qpl_alt_black,
49
+ logo_qpl_alt_white,
50
+ logo_qpl_black,
51
+ logo_qpl_color,
52
+ logo_qpl_white,
53
+ logo_schomburg_black,
54
+ logo_schomburg_circle_black,
55
+ logo_schomburg_circle_color,
56
+ logo_schomburg_circle_white,
57
+ logo_schomburg_color,
58
+ logo_schomburg_white,
59
+ logo_simplye_black,
60
+ logo_simplye_white,
61
+ logo_simplye_color,
62
+ logo_snfl_black,
63
+ logo_snfl_white,
64
+ logo_treasures_color,
65
+ logo_treasures_color_negative,
66
+ };
@@ -0,0 +1,48 @@
1
+ export enum LogoColors {
2
+ Default = "",
3
+ UiBlack = "ui.black",
4
+ UiWhite = "ui.white",
5
+ }
6
+
7
+ export enum LogoSizes {
8
+ ExtraExtraSmall = "xxsmall",
9
+ ExtraSmall = "xsmall",
10
+ Small = "small",
11
+ Medium = "medium",
12
+ Large = "large",
13
+ Default = "default",
14
+ }
15
+
16
+ export enum LogoNames {
17
+ BrooklynPublicLibraryBlack = "logo_bpl_black",
18
+ BrooklynPublicLibraryWhite = "logo_bpl_white",
19
+ CleverColor = "logo_clever_color",
20
+ CleverWhite = "logo_clever_white",
21
+ LPAColor = "logo_lpa_color",
22
+ LPABlack = "logo_lpa_black",
23
+ LPAWhite = "logo_lpa_white",
24
+ MyLibraryNYCBlack = "logo_mln_black",
25
+ MyLibraryNYCWhite = "logo_mln_white",
26
+ NYPLBlack = "logo_nypl_full_black",
27
+ NYPLWhite = "logo_nypl_full_white",
28
+ NYPLLionBlack = "logo_nypl_lion_black",
29
+ NYPLLionWhite = "logo_nypl_lion_white",
30
+ QueensPublicLibraryColor = "logo_qpl_color",
31
+ QueensPublicLibraryBlack = "logo_qpl_black",
32
+ QueensPublicLibraryWhite = "logo_qpl_white",
33
+ QueensPublicLibraryAltBlack = "logo_qpl_alt_black",
34
+ QueensPublicLibraryAltWhite = "logo_qpl_alt_white",
35
+ SchomburgColor = "logo_schomburg_color",
36
+ SchomburgBlack = "logo_schomburg_black",
37
+ SchomburgWhite = "logo_schomburg_white",
38
+ SchomburgCircleColor = "logo_schomburg_circle_color",
39
+ SchomburgCircleBlack = "logo_schomburg_circle_black",
40
+ SchomburgCircleWhite = "logo_schomburg_circle_white",
41
+ SimplyEColor = "logo_simplye_color",
42
+ SimplyEBlack = "logo_simplye_black",
43
+ SimplyEWhite = "logo_simplye_white",
44
+ SNFLBlack = "logo_snfl_black",
45
+ SNFLWhite = "logo_snfl_white",
46
+ TreasuresColor = "logo_treasures_color",
47
+ TreasuresColorNegative = "logo_treasures_color_negative",
48
+ }
@@ -0,0 +1,71 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Logo renders the UI snapshot correctly 1`] = `
4
+ <svg
5
+ aria-hidden={false}
6
+ className="chakra-icon css-onkibi"
7
+ focusable={false}
8
+ id="test-logo"
9
+ role="img"
10
+ title="logo_nypl_full_black logo"
11
+ viewBox="0 0 24 24"
12
+ >
13
+ <g
14
+ stroke="currentColor"
15
+ strokeWidth="1.5"
16
+ >
17
+ <path
18
+ d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
19
+ fill="none"
20
+ strokeLinecap="round"
21
+ />
22
+ <path
23
+ d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
24
+ fill="currentColor"
25
+ strokeLinecap="round"
26
+ />
27
+ <circle
28
+ cx="12"
29
+ cy="12"
30
+ fill="none"
31
+ r="11.25"
32
+ strokeMiterlimit="10"
33
+ />
34
+ </g>
35
+ </svg>
36
+ `;
37
+
38
+ exports[`Logo renders the UI snapshot correctly 2`] = `
39
+ <svg
40
+ aria-hidden={false}
41
+ className="chakra-icon css-onkibi"
42
+ focusable={false}
43
+ id="test-logo-size"
44
+ role="img"
45
+ title="logo_nypl_full_black logo"
46
+ viewBox="0 0 24 24"
47
+ >
48
+ <g
49
+ stroke="currentColor"
50
+ strokeWidth="1.5"
51
+ >
52
+ <path
53
+ d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
54
+ fill="none"
55
+ strokeLinecap="round"
56
+ />
57
+ <path
58
+ d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
59
+ fill="currentColor"
60
+ strokeLinecap="round"
61
+ />
62
+ <circle
63
+ cx="12"
64
+ cy="12"
65
+ fill="none"
66
+ r="11.25"
67
+ strokeMiterlimit="10"
68
+ />
69
+ </g>
70
+ </svg>
71
+ `;
@@ -1,11 +1,12 @@
1
1
  import { useState } from "react";
2
2
  import {
3
- Meta,
4
- Story,
5
3
  ArgsTable,
6
4
  Canvas,
7
5
  Description,
8
- } from "@storybook/addon-docs/blocks";
6
+ Meta,
7
+ Story,
8
+ } from "@storybook/addon-docs";
9
+
9
10
  import Modal from "./Modal";
10
11
  import Button from "../Button/Button";
11
12
  import { getCategory } from "../../utils/componentCategories";
@@ -14,7 +15,12 @@ import { getCategory } from "../../utils/componentCategories";
14
15
  title={getCategory("Modal")}
15
16
  component={Modal}
16
17
  argTypes={{
18
+ blockName: { control: false },
17
19
  children: { table: { disable: true } },
20
+ className: { control: false },
21
+ id: { control: false },
22
+ modifiers: { control: false },
23
+ open: { description: "Only used in Storybook." },
18
24
  }}
19
25
  parameters={{
20
26
  jest: ["Modal.test.tsx"],
@@ -119,12 +125,21 @@ export const ModalStory = (args) => {
119
125
  };
120
126
 
121
127
  <Canvas withToolbar>
122
- <Story name="Basic" args={{ open: false }}>
128
+ <Story
129
+ name="Modal"
130
+ args={{
131
+ blockName: undefined,
132
+ className: undefined,
133
+ id: "modal-id",
134
+ modifiers: undefined,
135
+ open: false,
136
+ }}
137
+ >
123
138
  {(args) => <ModalStory {...args} />}
124
139
  </Story>
125
140
  </Canvas>
126
141
 
127
- <ArgsTable story="Basic" />
142
+ <ArgsTable story="Modal" />
128
143
 
129
144
  ## Code Implementation
130
145
 
@@ -1,15 +1,10 @@
1
1
  import * as React from "react";
2
- import bem from "../../utils/bem";
3
2
 
4
3
  export interface ModalProps {
5
- /** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
6
- blockName?: string;
7
4
  /** ClassName that appears in addition to "modal" */
8
5
  className?: string;
9
6
  /** ID that other components can cross reference for accessibility purposes */
10
7
  id?: string;
11
- /** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
12
- modifiers?: string[];
13
8
  }
14
9
 
15
10
  /** Full-screen modal that appears on top of the body of the page. */
@@ -23,14 +18,13 @@ export default class Modal extends React.Component<ModalProps, any> {
23
18
  }
24
19
 
25
20
  render() {
26
- const { modifiers = [], blockName, id, className } = this.props;
27
- const baseClass = "modal";
21
+ const { id, className } = this.props;
28
22
 
29
23
  return (
30
24
  <div
31
25
  // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
32
26
  tabIndex={0}
33
- className={bem(baseClass, modifiers, blockName, [className])}
27
+ className={`modal ${className}`}
34
28
  id={id}
35
29
  >
36
30
  {this.props.children}
@@ -1,24 +1,25 @@
1
1
  import {
2
- Meta,
3
- Story,
4
- Canvas,
5
2
  ArgsTable,
6
- Preview,
3
+ Canvas,
7
4
  Description,
8
- } from "@storybook/addon-docs/blocks";
5
+ Meta,
6
+ Story,
7
+ } from "@storybook/addon-docs";
9
8
  import { withDesign } from "storybook-addon-designs";
10
9
 
10
+ import Icon from "../Icons/Icon";
11
+ import { IconColors, IconNames } from "../Icons/IconTypes";
12
+ import Link from "../Link/Link";
11
13
  import Notification from "./Notification";
12
14
  import { NotificationTypes } from "./NotificationTypes";
13
- import Icon from "../Icons/Icon";
14
- import {
15
- IconSizes,
16
- IconColors,
17
- IconNames,
18
- IconAlign,
19
- } from "../Icons/IconTypes";
20
15
  import { getCategory } from "../../utils/componentCategories";
21
16
  import DSProvider from "../../theme/provider";
17
+ import { getStorybookEnumValues } from "../../utils/utils";
18
+
19
+ export const enumValues = getStorybookEnumValues(
20
+ NotificationTypes,
21
+ "NotificationTypes"
22
+ );
22
23
 
23
24
  <Meta
24
25
  title={getCategory("Notification")}
@@ -31,6 +32,26 @@ import DSProvider from "../../theme/provider";
31
32
  },
32
33
  jest: ["Notification.test.tsx"],
33
34
  }}
35
+ argTypes={{
36
+ centered: {
37
+ table: { defaultValue: { summary: false } },
38
+ },
39
+ className: { control: false },
40
+ dismissible: {
41
+ table: { defaultValue: { summary: false } },
42
+ },
43
+ icon: { control: false },
44
+ id: { control: false },
45
+ noMargin: {
46
+ table: { defaultValue: { summary: false } },
47
+ },
48
+ notificationContent: { control: false },
49
+ notificationType: {
50
+ control: { type: "select" },
51
+ table: { defaultValue: { summary: "NotificationTypes.Standard" } },
52
+ options: enumValues.options,
53
+ },
54
+ }}
34
55
  />
35
56
 
36
57
  # Notification
@@ -38,7 +59,7 @@ import DSProvider from "../../theme/provider";
38
59
  | Component Version | DS Version |
39
60
  | ----------------- | ---------- |
40
61
  | Added | `0.23.2` |
41
- | Latest | `0.25.8` |
62
+ | Latest | `0.25.11` |
42
63
 
43
64
  <Description of={Notification} />
44
65
 
@@ -51,10 +72,15 @@ within a parent element.
51
72
 
52
73
  <Canvas>
53
74
  <Story
54
- name="Notification Props"
75
+ name="Notification with Controls"
55
76
  args={{
56
- id: "basic-notification",
57
- centered: true,
77
+ ariaLabel: "Notification label",
78
+ centered: false,
79
+ className: undefined,
80
+ dismissible: false,
81
+ icon: undefined,
82
+ id: "notification-id",
83
+ noMargin: false,
58
84
  notificationHeading: "Notification Heading",
59
85
  notificationContent: (
60
86
  <>
@@ -66,18 +92,31 @@ within a parent element.
66
92
  nisi erat porttitor ligula.
67
93
  </>
68
94
  ),
95
+ notificationType: "NotificationTypes.Standard",
69
96
  showIcon: true,
70
97
  }}
71
98
  >
72
99
  {(args) => (
73
100
  <div style={{ border: "1px solid #ccc" }}>
74
- <Notification {...args} />
101
+ <Notification
102
+ {...args}
103
+ notificationType={enumValues.getValue(args.notificationType)}
104
+ />
75
105
  </div>
76
106
  )}
77
107
  </Story>
78
108
  </Canvas>
79
109
 
80
- <ArgsTable story="Notification Props" />
110
+ <ArgsTable story="Notification with Controls" />
111
+
112
+ ## Accessibility
113
+
114
+ The `Notification` component renders with an HTML `aside` element as its wrapper.
115
+ This is an HTML landmark element that is similar to adding an attribute of
116
+ `role="complementary"`. For accessibility purposes, landmark elements should not
117
+ be rendered inside other landmark elements such as the `header` and `footer`
118
+ landmark elements. Adding a `Notification` component inside an HTML `main` landmark
119
+ element is acceptable.
81
120
 
82
121
  ## Variants
83
122
 
@@ -227,31 +266,82 @@ The `Notification` icon can be hidden with the `showIcon` prop set to `false`.
227
266
  </DSProvider>
228
267
  </Canvas>
229
268
 
269
+ ### With HTML content
270
+
271
+ The `notificationContent` prop can accept HTML.
272
+
273
+ <Canvas>
274
+ <DSProvider>
275
+ <Notification
276
+ notificationHeading="Standard Notification with HTML content"
277
+ notificationContent={
278
+ <>
279
+ <p>
280
+ Cras mattis consectetur purus sit amet fermentum. Maecenas faucibus
281
+ mollis interdum.
282
+ </p>
283
+ <p>
284
+ Morbi leo risus, porta ac consectetur ac, vestibulum at eros.{" "}
285
+ <b>
286
+ Cum sociis natoque penatibus et magnis dis parturient montes,
287
+ nascetur ridiculus mus
288
+ </b>
289
+ . <Link href="#">This is a link</Link>.
290
+ </p>
291
+ </>
292
+ }
293
+ />
294
+ </DSProvider>
295
+ </Canvas>
296
+
230
297
  ## Custom Icon
231
298
 
232
299
  The default icon can be overridden by using the `icon` prop to pass a custom `Icon` component.
233
300
 
234
301
  <Canvas>
235
302
  <Story name="Custom Icons">
236
- {(args) => (
237
- <Notification
238
- icon={
239
- <Icon
240
- name={IconNames.Check}
241
- color={IconColors.SectionResearchSecondary}
242
- />
243
- }
244
- notificationHeading="Custom Icon"
245
- notificationContent={
246
- <>
247
- This is a Notification with a custom icon. Cras mattis consectetur
248
- purus sit amet fermentum. Maecenas faucibus mollis interdum. Morbi
249
- leo risus, porta ac consectetur ac, vestibulum at eros. Cum sociis
250
- natoque penatibus et magnis dis parturient montes, nascetur
251
- ridiculus mus.
252
- </>
253
- }
254
- />
255
- )}
303
+ <Notification
304
+ icon={
305
+ <Icon
306
+ name={IconNames.Check}
307
+ color={IconColors.SectionResearchSecondary}
308
+ />
309
+ }
310
+ notificationHeading="Custom Icon"
311
+ notificationContent={
312
+ <>
313
+ This is a Notification with a custom icon. Cras mattis consectetur
314
+ purus sit amet fermentum. Maecenas faucibus mollis interdum. Morbi leo
315
+ risus, porta ac consectetur ac, vestibulum at eros. Cum sociis natoque
316
+ penatibus et magnis dis parturient montes, nascetur ridiculus mus.
317
+ </>
318
+ }
319
+ />
320
+ </Story>
321
+ </Canvas>
322
+
323
+ ## Dismissible
324
+
325
+ A dismissible `Notification` component can be created by setting the
326
+ `dismissible` prop to `true`. Once the "X" close icon on the upper right is
327
+ clicked, the `Notification` will be removed from the DOM, therefore it only
328
+ appears once.
329
+
330
+ <Canvas>
331
+ <Story name="Dismissible">
332
+ <Notification
333
+ dismissible
334
+ notificationHeading="Dismissible Notification"
335
+ notificationContent={
336
+ <>
337
+ This is a dismissible Notification with an X icon. Cras mattis
338
+ consectetur purus sit amet fermentum. Maecenas faucibus mollis
339
+ interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at
340
+ eros. Cum sociis natoque penatibus et magnis dis parturient montes,
341
+ nascetur ridiculus mus.
342
+ </>
343
+ }
344
+ notificationType={NotificationTypes.Announcement}
345
+ />
256
346
  </Story>
257
347
  </Canvas>
@@ -41,6 +41,18 @@ describe("Notification Accessibility", () => {
41
41
  );
42
42
  expect(await axe(container)).toHaveNoViolations();
43
43
  });
44
+
45
+ it("passes axe accessibility test for the dismissible type", async () => {
46
+ const { container } = render(
47
+ <Notification
48
+ dismissible
49
+ id="notificationID"
50
+ notificationContent={<>Notification content.</>}
51
+ notificationHeading="Notification Heading"
52
+ />
53
+ );
54
+ expect(await axe(container)).toHaveNoViolations();
55
+ });
44
56
  });
45
57
 
46
58
  describe("Notification", () => {
@@ -48,6 +60,7 @@ describe("Notification", () => {
48
60
  beforeEach(() => {
49
61
  utils = render(
50
62
  <Notification
63
+ ariaLabel="Notification label"
51
64
  id="notificationID"
52
65
  notificationContent={<>Notification content.</>}
53
66
  notificationHeading="Notification Heading"
@@ -133,7 +146,31 @@ describe("Notification", () => {
133
146
  );
134
147
  });
135
148
 
136
- it("renders the UI snapshot correctly", () => {
149
+ it("renders with an aria-label attribute", () => {
150
+ expect(screen.getByRole("complementary")).toHaveAttribute(
151
+ "aria-label",
152
+ "Notification label"
153
+ );
154
+ });
155
+
156
+ it("renders a dismissible icon", () => {
157
+ utils.rerender(
158
+ <Notification
159
+ dismissible
160
+ id="notificationID"
161
+ notificationContent={<>Notification content.</>}
162
+ notificationHeading="Notification Heading"
163
+ notificationType={NotificationTypes.Standard}
164
+ />
165
+ );
166
+ const icons = screen.queryAllByRole("img");
167
+
168
+ expect(icons).toHaveLength(2);
169
+ expect(screen.getByTitle("Notification standard icon")).toBeInTheDocument();
170
+ expect(screen.getByTitle("Notification close icon")).toBeInTheDocument();
171
+ });
172
+
173
+ it.skip("renders the UI snapshot correctly", () => {
137
174
  const standard = renderer
138
175
  .create(
139
176
  <Notification
@@ -190,11 +227,22 @@ describe("Notification", () => {
190
227
  />
191
228
  )
192
229
  .toJSON();
230
+ const dismissible = renderer
231
+ .create(
232
+ <Notification
233
+ dismissible
234
+ id="notificationID7"
235
+ notificationContent={<>Notification content.</>}
236
+ />
237
+ )
238
+ .toJSON();
239
+
193
240
  expect(standard).toMatchSnapshot();
194
241
  expect(announcement).toMatchSnapshot();
195
242
  expect(warning).toMatchSnapshot();
196
243
  expect(withoutHeading).toMatchSnapshot();
197
244
  expect(withoutAnIcon).toMatchSnapshot();
198
245
  expect(withoutHeadingAndIcon).toMatchSnapshot();
246
+ expect(dismissible).toMatchSnapshot();
199
247
  });
200
248
  });