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

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 (275) hide show
  1. package/CHANGELOG.md +91 -1
  2. package/README.md +1 -1
  3. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -0
  4. package/dist/components/Button/Button.d.ts +6 -6
  5. package/dist/components/Button/ButtonTypes.d.ts +0 -1
  6. package/dist/components/Card/Card.d.ts +6 -4
  7. package/dist/components/Checkbox/Checkbox.d.ts +3 -2
  8. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
  9. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
  10. package/dist/components/DatePicker/DatePicker.d.ts +3 -2
  11. package/dist/components/Form/Form.d.ts +2 -2
  12. package/dist/components/Heading/Heading.d.ts +7 -3
  13. package/dist/components/Heading/HeadingTypes.d.ts +6 -6
  14. package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
  15. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -2
  16. package/dist/components/Icons/Icon.d.ts +4 -4
  17. package/dist/components/Icons/IconSvgs.d.ts +1 -21
  18. package/dist/components/Icons/IconTypes.d.ts +1 -23
  19. package/dist/components/Image/Image.d.ts +11 -3
  20. package/dist/components/Image/ImageTypes.d.ts +3 -1
  21. package/dist/components/Link/LinkTypes.d.ts +1 -0
  22. package/dist/components/Logo/Logo.d.ts +28 -0
  23. package/dist/components/Logo/LogoSvgs.d.ts +18 -0
  24. package/dist/components/Logo/LogoTypes.d.ts +30 -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 +3 -2
  30. package/dist/components/SearchBar/SearchBar.d.ts +10 -2
  31. package/dist/components/Select/Select.d.ts +5 -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 +23 -0
  38. package/dist/components/Template/Template.d.ts +8 -3
  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 +48 -0
  42. package/dist/components/Toggle/ToggleSizes.d.ts +4 -0
  43. package/dist/components/VideoPlayer/VideoPlayer.d.ts +17 -6
  44. package/dist/design-system-react-components.cjs.development.js +5989 -5490
  45. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  46. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  47. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  48. package/dist/design-system-react-components.esm.js +6057 -5551
  49. package/dist/design-system-react-components.esm.js.map +1 -1
  50. package/dist/index.d.ts +11 -4
  51. package/dist/styles.css +2 -2
  52. package/dist/theme/components/breadcrumb.d.ts +9 -0
  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 +47 -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 +8 -4
  64. package/dist/theme/components/searchBar.d.ts +7 -13
  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 +2 -0
  69. package/dist/theme/components/toggle.d.ts +71 -0
  70. package/dist/theme/foundations/spacing.d.ts +2 -0
  71. package/dist/utils/utils.d.ts +10 -0
  72. package/package.json +2 -3
  73. package/src/__tests__/utils/utils.test.ts +23 -1
  74. package/src/components/Accordion/Accordion.stories.mdx +15 -14
  75. package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
  76. package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
  77. package/src/components/Autosuggest/_Autosuggest.scss +2 -6
  78. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +50 -14
  79. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +20 -0
  80. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -0
  81. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +198 -0
  82. package/src/components/Button/Button.stories.mdx +93 -48
  83. package/src/components/Button/Button.test.tsx +0 -12
  84. package/src/components/Button/Button.tsx +7 -8
  85. package/src/components/Button/ButtonTypes.tsx +0 -1
  86. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
  87. package/src/components/Card/Card.stories.mdx +246 -64
  88. package/src/components/Card/Card.test.tsx +45 -22
  89. package/src/components/Card/Card.tsx +26 -13
  90. package/src/components/Card/__snapshots__/Card.test.tsx.snap +75 -37
  91. package/src/components/Chakra/Box.stories.mdx +3 -3
  92. package/src/components/Chakra/Center.stories.mdx +5 -5
  93. package/src/components/Chakra/Grid.stories.mdx +14 -17
  94. package/src/components/Chakra/Stack.stories.mdx +2 -2
  95. package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
  96. package/src/components/Checkbox/Checkbox.tsx +13 -8
  97. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
  98. package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
  99. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
  100. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
  101. package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
  102. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
  103. package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
  104. package/src/components/DatePicker/DatePicker.test.tsx +8 -6
  105. package/src/components/DatePicker/DatePicker.tsx +10 -6
  106. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
  107. package/src/components/Fieldset/Fieldset.stories.mdx +19 -8
  108. package/src/components/Form/Form.stories.mdx +49 -41
  109. package/src/components/Form/Form.tsx +5 -4
  110. package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
  111. package/src/components/Heading/Heading.stories.mdx +59 -23
  112. package/src/components/Heading/Heading.test.tsx +82 -18
  113. package/src/components/Heading/Heading.tsx +31 -31
  114. package/src/components/Heading/HeadingTypes.tsx +6 -6
  115. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
  116. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
  117. package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
  118. package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
  119. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
  120. package/src/components/Hero/Hero.stories.mdx +72 -53
  121. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +9 -8
  122. package/src/components/HorizontalRule/HorizontalRule.tsx +2 -4
  123. package/src/components/Icons/Icon.stories.mdx +77 -75
  124. package/src/components/Icons/Icon.tsx +4 -5
  125. package/src/components/Icons/IconSvgs.tsx +2 -42
  126. package/src/components/Icons/IconTypes.tsx +1 -24
  127. package/src/components/Image/Image.stories.mdx +214 -104
  128. package/src/components/Image/Image.test.tsx +10 -0
  129. package/src/components/Image/Image.tsx +21 -10
  130. package/src/components/Image/ImageTypes.ts +2 -0
  131. package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
  132. package/src/components/Label/Label.stories.mdx +21 -20
  133. package/src/components/Link/Link.stories.mdx +103 -53
  134. package/src/components/Link/Link.test.tsx +108 -7
  135. package/src/components/Link/Link.tsx +58 -19
  136. package/src/components/Link/LinkTypes.tsx +1 -0
  137. package/src/components/Link/__snapshots__/Link.test.tsx.snap +261 -0
  138. package/src/components/List/List.stories.mdx +36 -24
  139. package/src/components/Logo/Logo.stories.mdx +220 -0
  140. package/src/components/Logo/Logo.test.tsx +98 -0
  141. package/src/components/Logo/Logo.tsx +97 -0
  142. package/src/components/Logo/LogoSvgs.tsx +34 -0
  143. package/src/components/Logo/LogoTypes.tsx +32 -0
  144. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
  145. package/src/components/Modal/Modal.stories.mdx +20 -5
  146. package/src/components/Modal/Modal.tsx +2 -8
  147. package/src/components/Notification/Notification.stories.mdx +96 -40
  148. package/src/components/Notification/Notification.test.tsx +62 -16
  149. package/src/components/Notification/Notification.tsx +26 -9
  150. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +121 -0
  151. package/src/components/Pagination/Pagination.stories.mdx +18 -8
  152. package/src/components/Pagination/Pagination.tsx +1 -1
  153. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +42 -0
  154. package/src/components/Placeholder/Placeholder.tsx +7 -14
  155. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +74 -46
  156. package/src/components/Radio/Radio.stories.mdx +39 -19
  157. package/src/components/Radio/Radio.tsx +13 -9
  158. package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
  159. package/src/components/RadioGroup/RadioGroup.tsx +15 -11
  160. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +6 -3
  161. package/src/components/SearchBar/SearchBar.Test.tsx +114 -22
  162. package/src/components/SearchBar/SearchBar.stories.mdx +111 -33
  163. package/src/components/SearchBar/SearchBar.tsx +57 -33
  164. package/src/components/Select/Select.stories.mdx +177 -66
  165. package/src/components/Select/Select.test.tsx +2 -2
  166. package/src/components/Select/Select.tsx +22 -12
  167. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
  168. package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
  169. package/src/components/Slider/Slider.stories.mdx +74 -23
  170. package/src/components/Slider/Slider.test.tsx +35 -0
  171. package/src/components/Slider/Slider.tsx +22 -11
  172. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +60 -30
  173. package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
  174. package/src/components/StatusBadge/StatusBadge.tsx +2 -1
  175. package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
  176. package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
  177. package/src/components/StructuredContent/StructuredContent.tsx +153 -0
  178. package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
  179. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
  180. package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
  181. package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
  182. package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
  183. package/src/components/StyleGuide/ColorCard.tsx +1 -2
  184. package/src/components/StyleGuide/Colors.stories.mdx +3 -11
  185. package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
  186. package/src/components/StyleGuide/Forms.stories.mdx +2 -10
  187. package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
  188. package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
  189. package/src/components/StyleGuide/Typography.stories.mdx +64 -76
  190. package/src/components/Table/Table.stories.mdx +66 -0
  191. package/src/components/Table/Table.test.tsx +60 -0
  192. package/src/components/Table/Table.tsx +116 -0
  193. package/src/components/Tabs/Tabs.stories.mdx +19 -13
  194. package/src/components/Tabs/Tabs.test.tsx +1 -1
  195. package/src/components/Template/Template.stories.mdx +57 -49
  196. package/src/components/Template/Template.test.tsx +65 -5
  197. package/src/components/Template/Template.tsx +35 -5
  198. package/src/components/Template/__snapshots__/Template.test.tsx.snap +76 -0
  199. package/src/components/Text/Text.stories.mdx +33 -11
  200. package/src/components/Text/Text.tsx +2 -2
  201. package/src/components/TextInput/TextInput.stories.mdx +84 -17
  202. package/src/components/TextInput/TextInput.test.tsx +96 -0
  203. package/src/components/TextInput/TextInput.tsx +12 -8
  204. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
  205. package/src/components/Toggle/Toggle.stories.mdx +200 -0
  206. package/src/components/Toggle/Toggle.test.tsx +140 -0
  207. package/src/components/Toggle/Toggle.tsx +123 -0
  208. package/src/components/Toggle/ToggleSizes.tsx +4 -0
  209. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +255 -0
  210. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +96 -25
  211. package/src/components/VideoPlayer/VideoPlayer.test.tsx +103 -1
  212. package/src/components/VideoPlayer/VideoPlayer.tsx +72 -22
  213. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +57 -3
  214. package/src/docs/Chakra.stories.mdx +5 -8
  215. package/src/docs/Intro.stories.mdx +2 -2
  216. package/src/index.ts +13 -4
  217. package/src/styles/base/_03-base.scss +1 -1
  218. package/src/styles/base/_place-holder.scss +7 -7
  219. package/src/styles.scss +1 -5
  220. package/src/theme/components/breadcrumb.ts +14 -4
  221. package/src/theme/components/button.ts +5 -12
  222. package/src/theme/components/card.ts +9 -7
  223. package/src/theme/components/checkbox.ts +1 -1
  224. package/src/theme/components/customTable.ts +50 -0
  225. package/src/theme/components/datePicker.ts +1 -1
  226. package/src/theme/components/global.ts +7 -7
  227. package/src/theme/components/heading.ts +13 -11
  228. package/src/theme/components/helperErrorText.ts +1 -1
  229. package/src/theme/components/icon.ts +2 -2
  230. package/src/theme/components/image.ts +9 -1
  231. package/src/theme/components/link.ts +17 -5
  232. package/src/theme/components/list.ts +1 -3
  233. package/src/theme/components/logo.ts +54 -0
  234. package/src/theme/components/notification.ts +9 -7
  235. package/src/theme/components/searchBar.ts +7 -13
  236. package/src/theme/components/select.ts +1 -0
  237. package/src/theme/components/statusBadge.ts +1 -1
  238. package/src/theme/components/structuredContent.ts +54 -0
  239. package/src/theme/components/template.ts +10 -10
  240. package/src/theme/components/text.ts +6 -6
  241. package/src/theme/components/textInput.ts +1 -0
  242. package/src/theme/components/toggle.ts +69 -0
  243. package/src/theme/components/videoPlayer.ts +0 -2
  244. package/src/theme/foundations/global.ts +2 -2
  245. package/src/theme/foundations/spacing.ts +3 -0
  246. package/src/theme/foundations/typography.ts +84 -12
  247. package/src/theme/index.ts +8 -0
  248. package/src/utils/componentCategories.ts +4 -2
  249. package/src/utils/utils.ts +17 -0
  250. package/dist/__tests__/utils/bem.test.d.ts +0 -1
  251. package/dist/components/CardEdition/CardEdition.d.ts +0 -21
  252. package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
  253. package/dist/components/Input/Input.d.ts +0 -36
  254. package/dist/components/Input/Input.stories.d.ts +0 -29
  255. package/dist/components/Input/InputTypes.d.ts +0 -6
  256. package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
  257. package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
  258. package/dist/helpers/getCSSVariable.d.ts +0 -1
  259. package/dist/interfaces.d.ts +0 -3
  260. package/dist/utils/bem.d.ts +0 -1
  261. package/src/__tests__/utils/bem.test.ts +0 -37
  262. package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
  263. package/src/components/CardEdition/CardEdition.test.tsx +0 -395
  264. package/src/components/CardEdition/CardEdition.tsx +0 -60
  265. package/src/components/CardEdition/_CardEdition.scss +0 -137
  266. package/src/components/Input/Input.stories.tsx +0 -133
  267. package/src/components/Input/Input.test.tsx +0 -266
  268. package/src/components/Input/Input.tsx +0 -81
  269. package/src/components/Input/InputTypes.tsx +0 -8
  270. package/src/components/Input/_Input.scss +0 -78
  271. package/src/components/StyleGuide/UIDocCard.tsx +0 -36
  272. package/src/helpers/CSSVariablesHelper.tsx +0 -34
  273. package/src/helpers/getCSSVariable.tsx +0 -5
  274. package/src/interfaces.ts +0 -3
  275. package/src/utils/bem.ts +0 -44
@@ -5,8 +5,8 @@ import action_check_circle from "../../../icons/svg/action_check_circle.svg";
5
5
  import action_help_default from "../../../icons/svg/action_help_default.svg";
6
6
  import action_help_outline from "../../../icons/svg/action_help_outline.svg";
7
7
  import action_launch from "../../../icons/svg/action_launch.svg";
8
+ import alert_notification_important from "../../../icons/svg/alert_notification_important.svg";
8
9
  import arrow from "../../../icons/svg/arrow.svg";
9
- import brooklyn from "../../../icons/svg/brooklyn.svg";
10
10
  import check from "../../../icons/svg/check.svg";
11
11
  import clock from "../../../icons/svg/clock.svg";
12
12
  import close from "../../../icons/svg/close.svg";
@@ -21,29 +21,9 @@ import download from "../../../icons/svg/download.svg";
21
21
  import error_filled from "../../../icons/svg/error_filled.svg";
22
22
  import error_outline from "../../../icons/svg/error_outline.svg";
23
23
  import headset from "../../../icons/svg/headset.svg";
24
- import logo_brooklyn from "../../../icons/svg/logo_brooklynpl.svg";
25
- import logo_nypl from "../../../icons/svg/logo_nypl.svg";
26
- import logo_nypl_negative from "../../../icons/svg/logo_nypl_negative.svg";
27
- import logo_queens from "../../../icons/svg/logo_queenspl.svg";
28
- import lpa_negative from "../../../icons/svg/lpa_negative.svg";
29
- import lpa_positive from "../../../icons/svg/lpa_positive.svg";
30
24
  import minus from "../../../icons/svg/minus.svg";
31
- import nypl_circle_negative from "../../../icons/svg/nypl_circle_negative.svg";
32
- import nypl_circle_positive from "../../../icons/svg/nypl_circle_positive.svg";
33
- import nypl_full_lock_up_negative from "../../../icons/svg/nypl_full_lock_up_negative.svg";
34
- import nypl_full_lock_up from "../../../icons/svg/nypl_full_lock_up.svg";
35
- import nypl_no_lion_negative from "../../../icons/svg/nypl_no_lion_negative.svg";
36
- import nypl_no_lion_positive from "../../../icons/svg/nypl_no_lion_positive.svg";
37
25
  import plus from "../../../icons/svg/plus.svg";
38
- import queens_long from "../../../icons/svg/queens_long.svg";
39
- import queens_stacked from "../../../icons/svg/queens_stacked.svg";
40
- import schomburg_circle from "../../../icons/svg/schomburg_circle.svg";
41
- import schomburg_positive from "../../../icons/svg/schomburg_positive.svg";
42
26
  import search from "../../../icons/svg/search.svg";
43
- import simplye_black from "../../../icons/svg/simplye_black.svg";
44
- import simplye_color from "../../../icons/svg/simplye_color.svg";
45
- import snfl_negative from "../../../icons/svg/snfl_negative.svg";
46
- import snfl_positive from "../../../icons/svg/snfl_positive.svg";
47
27
  import speaker_notes from "../../../icons/svg/speaker_notes.svg";
48
28
  import utility_account_filled from "../../../icons/svg/utility_account_filled.svg";
49
29
  import utility_account_unfilled from "../../../icons/svg/utility_account_unfilled.svg";
@@ -57,8 +37,8 @@ export default {
57
37
  action_help_default,
58
38
  action_help_outline,
59
39
  action_launch,
40
+ alert_notification_important,
60
41
  arrow,
61
- brooklyn,
62
42
  check,
63
43
  clock,
64
44
  close,
@@ -73,29 +53,9 @@ export default {
73
53
  file_type_spreadsheet,
74
54
  file_type_video,
75
55
  headset,
76
- logo_brooklyn,
77
- logo_nypl,
78
- logo_nypl_negative,
79
- logo_queens,
80
- lpa_negative,
81
- lpa_positive,
82
56
  minus,
83
- nypl_circle_negative,
84
- nypl_circle_positive,
85
- nypl_full_lock_up_negative,
86
- nypl_full_lock_up,
87
- nypl_no_lion_negative,
88
- nypl_no_lion_positive,
89
57
  plus,
90
- queens_long,
91
- queens_stacked,
92
- schomburg_circle,
93
- schomburg_positive,
94
58
  search,
95
- simplye_black,
96
- simplye_color,
97
- snfl_negative,
98
- snfl_positive,
99
59
  speaker_notes,
100
60
  utility_account_filled,
101
61
  utility_account_unfilled,
@@ -52,6 +52,7 @@ export enum IconNames {
52
52
  ActionCheckCircle = "action_check_circle",
53
53
  ActionHelpDefault = "action_help_default",
54
54
  ActionHelpOutline = "action_help_outline",
55
+ AlertNotificationImportant = "alert_notification_important",
55
56
  ActionLaunch = "action_launch",
56
57
  Arrow = "arrow",
57
58
  Check = "check",
@@ -77,27 +78,3 @@ export enum IconNames {
77
78
  UtilityHamburger = "utility_hamburger",
78
79
  UtilitySearch = "utility_search",
79
80
  }
80
-
81
- export enum LogoNames {
82
- Brooklyn = "brooklyn",
83
- LogoBrooklyn = "logo_brooklyn",
84
- LogoNypl = "logo_nypl",
85
- LogoNyplNegative = "logo_nypl_negative",
86
- LogoQueens = "logo_queens",
87
- LpaNegative = "lpa_negative",
88
- LpaPositive = "lpa_positive",
89
- NyplCircleNegative = "nypl_circle_negative",
90
- NyplCirclePositive = "nypl_circle_positive",
91
- NyplFullLockUpNegative = "nypl_full_lock_up_negative",
92
- NyplFullLockUp = "nypl_full_lock_up",
93
- NyplNoLionNegative = "nypl_no_lion_negative",
94
- NyplNoLionPositive = "nypl_no_lion_positive",
95
- QueensLong = "queens_long",
96
- QueensStacked = "queens_stacked",
97
- SchomburgCircle = "schomburg_circle",
98
- SchomburgPositive = "schomburg_positive",
99
- SimplyeBlack = "simplye_black",
100
- SimplyeColor = "simplye_color",
101
- SnflNegative = "snfl_negative",
102
- SnflPositive = "snfl_positive",
103
- }
@@ -1,17 +1,33 @@
1
+ import { VStack } from "@chakra-ui/react";
1
2
  import {
2
- Meta,
3
- Story,
4
- Canvas,
5
3
  ArgsTable,
4
+ Canvas,
6
5
  Description,
7
- } from "@storybook/addon-docs/blocks";
6
+ Meta,
7
+ Story,
8
+ } from "@storybook/addon-docs";
8
9
  import { withDesign } from "storybook-addon-designs";
9
- import { VStack } from "@chakra-ui/react";
10
10
 
11
+ import Heading from "../Heading/Heading";
11
12
  import Image from "./Image";
12
13
  import { ImageRatios, ImageSizes, ImageTypes } from "./ImageTypes";
13
- import Heading from "../Heading/Heading";
14
+ import SimpleGrid from "../Grid/SimpleGrid";
14
15
  import { getCategory } from "../../utils/componentCategories";
16
+ import { getStorybookEnumValues } from "../../utils/utils";
17
+
18
+ export const ratiosEnumValues = getStorybookEnumValues(
19
+ ImageRatios,
20
+ "ImageRatios"
21
+ );
22
+ export const sizesEnumValues = getStorybookEnumValues(ImageSizes, "ImageSizes");
23
+ export const typesEnumValues = getStorybookEnumValues(ImageTypes, "ImageTypes");
24
+
25
+ export const imageBlockStyles = {
26
+ margin: "auto",
27
+ maxWidth: "360px",
28
+ textAlign: "center",
29
+ width: "100%",
30
+ };
15
31
 
16
32
  <Meta
17
33
  title={getCategory("Image")}
@@ -25,9 +41,38 @@ import { getCategory } from "../../utils/componentCategories";
25
41
  jest: ["Image.test.tsx"],
26
42
  }}
27
43
  argTypes={{
28
- alt: { table: { disable: true } },
29
- className: { table: { disable: true } },
30
- component: { table: { disable: true } },
44
+ additionalFigureStyles: { control: false },
45
+ additionalImageStyles: { control: false },
46
+ additionalWrapperStyles: { control: false },
47
+ alt: {
48
+ control: false,
49
+ description:
50
+ "Alternate text description of the image. Needed for accessibility purposes.",
51
+ },
52
+ className: {
53
+ control: false,
54
+ description: "Additional class name for the component to use.",
55
+ },
56
+ component: { control: false },
57
+ imageAspectRatio: {
58
+ control: { type: "select" },
59
+ table: { defaultValue: { summary: "ImageRatios.Original" } },
60
+ options: ratiosEnumValues.options,
61
+ },
62
+ imageSize: {
63
+ control: { type: "select" },
64
+ table: { defaultValue: { summary: "ImageSizes.Default" } },
65
+ options: sizesEnumValues.options,
66
+ },
67
+ imageType: {
68
+ control: { type: "select" },
69
+ table: { defaultValue: { summary: "ImageTypes.Default" } },
70
+ options: typesEnumValues.options,
71
+ },
72
+ src: {
73
+ description:
74
+ "The src attribute is required, and contains the path to the image you want to embed.",
75
+ },
31
76
  }}
32
77
  />
33
78
 
@@ -36,7 +81,7 @@ import { getCategory } from "../../utils/componentCategories";
36
81
  | Component Version | DS Version |
37
82
  | ----------------- | ---------- |
38
83
  | Added | `0.0.6` |
39
- | Latest | `0.25.3` |
84
+ | Latest | `0.25.9` |
40
85
 
41
86
  <Description of={Image} />
42
87
 
@@ -47,22 +92,34 @@ import { getCategory } from "../../utils/componentCategories";
47
92
 
48
93
  <Canvas>
49
94
  <Story
50
- name="Image Props"
95
+ name="Image with Controls"
51
96
  args={{
97
+ additionalFigureStyles: undefined,
98
+ additionalImageStyles: undefined,
99
+ additionalWrapperStyles: undefined,
52
100
  alt: "Alt text",
53
- imageAspectRatio: ImageRatios.TwoByOne,
101
+ className: undefined,
102
+ component: undefined,
103
+ imageAspectRatio: "ImageRatios.TwoByOne",
54
104
  imageCaption: "Image caption",
55
105
  imageCredit: "Image credit",
56
- imageSize: ImageSizes.Medium,
57
- imageType: ImageTypes.Default,
106
+ imageSize: "ImageSizes.Medium",
107
+ imageType: "ImageTypes.Default",
58
108
  src: "https://placeimg.com/400/300/animals",
59
109
  }}
60
110
  >
61
- {(args) => <Image {...args} />}
111
+ {(args) => (
112
+ <Image
113
+ {...args}
114
+ imageAspectRatio={ratiosEnumValues.getValue(args.imageAspectRatio)}
115
+ imageSize={sizesEnumValues.getValue(args.imageSize)}
116
+ imageType={typesEnumValues.getValue(args.imageType)}
117
+ />
118
+ )}
62
119
  </Story>
63
120
  </Canvas>
64
121
 
65
- <ArgsTable story="Image Props" />
122
+ <ArgsTable story="Image with Controls" />
66
123
 
67
124
  ## Image Figure
68
125
 
@@ -102,28 +159,61 @@ Use the `ImageSizes` prop to set the desired size.
102
159
 
103
160
  <Canvas>
104
161
  <Story name="Image Sizes">
105
- <VStack spacing="xs">
106
- <Heading id="Small" text="ImageSizes.Small" />
107
- <Image
108
- alt="Alt text"
109
- imageSize={ImageSizes.Small}
110
- src="https://placeimg.com/400/300/animals"
111
- />
112
- <Heading id="Medium" text="ImageSizes.Medium" />
113
- <Image
114
- alt="Alt text"
115
- imageSize={ImageSizes.Medium}
116
- src="https://placeimg.com/400/300/animals"
117
- />
118
- <Heading id="Large" text="ImageSizes.Large" />
119
- <Image
120
- alt="Alt text"
121
- imageSize={ImageSizes.Large}
122
- src="https://placeimg.com/400/300/animals"
123
- />
124
- <Heading id="Default" text="ImageSizes.Default" />
125
- <Image alt="Alt text" src="https://placeimg.com/400/300/animals" />
126
- </VStack>
162
+ <SimpleGrid columns={1}>
163
+ <div style={{ textAlign: "center" }}>
164
+ <Heading id="ExtraExtraSmall" text="ImageSizes.ExtraExtraSmall" />
165
+ <Image
166
+ alt="Alt text"
167
+ imageCaption="64px"
168
+ imageSize={ImageSizes.ExtraExtraSmall}
169
+ src="https://placeimg.com/400/300/animals"
170
+ />
171
+ </div>
172
+ <div style={{ textAlign: "center" }}>
173
+ <Heading id="ExtraSmall" text="ImageSizes.ExtraSmall" />
174
+ <Image
175
+ alt="Alt text"
176
+ imageCaption="96px"
177
+ imageSize={ImageSizes.ExtraSmall}
178
+ src="https://placeimg.com/400/300/animals"
179
+ />
180
+ </div>
181
+ <div style={{ textAlign: "center" }}>
182
+ <Heading id="Small" text="ImageSizes.Small" />
183
+ <Image
184
+ alt="Alt text"
185
+ imageCaption="165px"
186
+ imageSize={ImageSizes.Small}
187
+ src="https://placeimg.com/400/300/animals"
188
+ />
189
+ </div>
190
+ <div style={{ textAlign: "center" }}>
191
+ <Heading id="Medium" text="ImageSizes.Medium" />
192
+ <Image
193
+ alt="Alt text"
194
+ imageCaption="225px"
195
+ imageSize={ImageSizes.Medium}
196
+ src="https://placeimg.com/400/300/animals"
197
+ />
198
+ </div>
199
+ <div style={{ textAlign: "center" }}>
200
+ <Heading id="Large" text="ImageSizes.Large" />
201
+ <Image
202
+ alt="Alt text"
203
+ imageCaption="360px"
204
+ imageSize={ImageSizes.Large}
205
+ src="https://placeimg.com/400/300/animals"
206
+ />
207
+ </div>
208
+ <div style={{ textAlign: "center" }}>
209
+ <Heading id="Default" text="ImageSizes.Default" />
210
+ <Image
211
+ alt="Alt text"
212
+ imageCaption="100%"
213
+ src="https://placeimg.com/400/300/animals"
214
+ />
215
+ </div>
216
+ </SimpleGrid>
127
217
  </Story>
128
218
  </Canvas>
129
219
 
@@ -137,56 +227,72 @@ in an element with a fixed width value.
137
227
 
138
228
  <Canvas>
139
229
  <Story name="Image Aspect Ratios">
140
- <VStack spacing="xs" maxWidth="360px" margin="auto">
141
- <Heading id="fourbythree" text="ImageRatios.FourByThree" />
142
- <Image
143
- alt="Alt text"
144
- imageAspectRatio={ImageRatios.FourByThree}
145
- src="https://placeimg.com/400/300/animals"
146
- />
147
- <Heading id="onebytwo" text="ImageRatios.OneByTwo" />
148
- <Image
149
- alt="Alt text"
150
- imageAspectRatio={ImageRatios.OneByTwo}
151
- src="https://placeimg.com/400/300/animals"
152
- />
153
- <Heading id="original" text="ImageRatios.Original" />
154
- <Image
155
- alt="Alt text"
156
- imageAspectRatio={ImageRatios.Original}
157
- src="https://placeimg.com/400/300/animals"
158
- />
159
- <Heading id="sixteenbynine" text="ImageRatios.SixteenByNine" />
160
- <Image
161
- alt="Alt text"
162
- imageAspectRatio={ImageRatios.SixteenByNine}
163
- src="https://placeimg.com/400/300/animals"
164
- />
165
- <Heading id="square" text="ImageRatios.Square" />
166
- <Image
167
- alt="Alt text"
168
- imageAspectRatio={ImageRatios.Square}
169
- src="https://placeimg.com/400/300/animals"
170
- />
171
- <Heading id="threebyfour" text="ImageRatios.ThreeByFour" />
172
- <Image
173
- alt="Alt text"
174
- imageAspectRatio={ImageRatios.ThreeByFour}
175
- src="https://placeimg.com/400/300/animals"
176
- />
177
- <Heading id="threebytwo" text="ImageRatios.ThreeByTwo" />
178
- <Image
179
- alt="Alt text"
180
- imageAspectRatio={ImageRatios.ThreeByTwo}
181
- src="https://placeimg.com/400/300/animals"
182
- />
183
- <Heading id="twobyone" text="ImageRatios.TwoByOne" />
184
- <Image
185
- alt="Alt text"
186
- imageAspectRatio={ImageRatios.TwoByOne}
187
- src="https://placeimg.com/400/300/animals"
188
- />
189
- </VStack>
230
+ <SimpleGrid columns={1}>
231
+ <div style={imageBlockStyles}>
232
+ <Heading id="fourbythree" text="ImageRatios.FourByThree" />
233
+ <Image
234
+ alt="Alt text"
235
+ imageAspectRatio={ImageRatios.FourByThree}
236
+ src="https://placeimg.com/400/300/animals"
237
+ />
238
+ </div>
239
+ <div style={imageBlockStyles}>
240
+ <Heading id="onebytwo" text="ImageRatios.OneByTwo" />
241
+ <Image
242
+ alt="Alt text"
243
+ imageAspectRatio={ImageRatios.OneByTwo}
244
+ src="https://placeimg.com/400/300/animals"
245
+ />
246
+ </div>
247
+ <div style={imageBlockStyles}>
248
+ <Heading id="original" text="ImageRatios.Original" />
249
+ <Image
250
+ alt="Alt text"
251
+ imageAspectRatio={ImageRatios.Original}
252
+ src="https://placeimg.com/400/300/animals"
253
+ />
254
+ </div>
255
+ <div style={imageBlockStyles}>
256
+ <Heading id="sixteenbynine" text="ImageRatios.SixteenByNine" />
257
+ <Image
258
+ alt="Alt text"
259
+ imageAspectRatio={ImageRatios.SixteenByNine}
260
+ src="https://placeimg.com/400/300/animals"
261
+ />
262
+ </div>
263
+ <div style={imageBlockStyles}>
264
+ <Heading id="square" text="ImageRatios.Square" />
265
+ <Image
266
+ alt="Alt text"
267
+ imageAspectRatio={ImageRatios.Square}
268
+ src="https://placeimg.com/400/300/animals"
269
+ />
270
+ </div>
271
+ <div style={imageBlockStyles}>
272
+ <Heading id="threebyfour" text="ImageRatios.ThreeByFour" />
273
+ <Image
274
+ alt="Alt text"
275
+ imageAspectRatio={ImageRatios.ThreeByFour}
276
+ src="https://placeimg.com/400/300/animals"
277
+ />
278
+ </div>
279
+ <div style={imageBlockStyles}>
280
+ <Heading id="threebytwo" text="ImageRatios.ThreeByTwo" />
281
+ <Image
282
+ alt="Alt text"
283
+ imageAspectRatio={ImageRatios.ThreeByTwo}
284
+ src="https://placeimg.com/400/300/animals"
285
+ />
286
+ </div>
287
+ <div style={imageBlockStyles}>
288
+ <Heading id="twobyone" text="ImageRatios.TwoByOne" />
289
+ <Image
290
+ alt="Alt text"
291
+ imageAspectRatio={ImageRatios.TwoByOne}
292
+ src="https://placeimg.com/400/300/animals"
293
+ />
294
+ </div>
295
+ </SimpleGrid>
190
296
  </Story>
191
297
  </Canvas>
192
298
 
@@ -200,21 +306,25 @@ in an element with a fixed width value.
200
306
 
201
307
  <Canvas>
202
308
  <Story name="Image Types">
203
- <VStack spacing="xs" maxWidth="360px" margin="auto">
204
- <Heading id="default" text="ImageTypes.Default" />
205
- <Image
206
- alt="Alt text"
207
- imageAspectRatio={ImageRatios.Square}
208
- imageType={ImageTypes.Default}
209
- src="https://placeimg.com/400/400/animals"
210
- />
211
- <Heading id="circle" text="ImageTypes.Circle" />
212
- <Image
213
- alt="Alt text"
214
- imageAspectRatio={ImageRatios.Square}
215
- imageType={ImageTypes.Circle}
216
- src="https://placeimg.com/400/400/animals"
217
- />
218
- </VStack>
309
+ <SimpleGrid columns={1}>
310
+ <div style={imageBlockStyles}>
311
+ <Heading id="default" text="ImageTypes.Default" />
312
+ <Image
313
+ alt="Alt text"
314
+ imageAspectRatio={ImageRatios.Square}
315
+ imageType={ImageTypes.Default}
316
+ src="https://placeimg.com/400/400/animals"
317
+ />
318
+ </div>
319
+ <div style={imageBlockStyles}>
320
+ <Heading id="circle" text="ImageTypes.Circle" />
321
+ <Image
322
+ alt="Alt text"
323
+ imageAspectRatio={ImageRatios.Square}
324
+ imageType={ImageTypes.Circle}
325
+ src="https://placeimg.com/400/400/animals"
326
+ />
327
+ </div>
328
+ </SimpleGrid>
219
329
  </Story>
220
330
  </Canvas>
@@ -74,6 +74,14 @@ describe("Image", () => {
74
74
  const figCaption = renderer
75
75
  .create(<Image src="test.png" alt="" imageCaption="Caption" />)
76
76
  .toJSON();
77
+ const sizeExtraExtraSmall = renderer
78
+ .create(
79
+ <Image src="test.png" alt="" imageSize={ImageSizes.ExtraExtraSmall} />
80
+ )
81
+ .toJSON();
82
+ const sizeExtraSmall = renderer
83
+ .create(<Image src="test.png" alt="" imageSize={ImageSizes.ExtraSmall} />)
84
+ .toJSON();
77
85
  const sizeSmall = renderer
78
86
  .create(<Image src="test.png" alt="" imageSize={ImageSizes.Small} />)
79
87
  .toJSON();
@@ -152,6 +160,8 @@ describe("Image", () => {
152
160
  .toJSON();
153
161
  expect(basic).toMatchSnapshot();
154
162
  expect(figCaption).toMatchSnapshot();
163
+ expect(sizeExtraExtraSmall).toMatchSnapshot();
164
+ expect(sizeExtraSmall).toMatchSnapshot();
155
165
  expect(sizeSmall).toMatchSnapshot();
156
166
  expect(sizeMedium).toMatchSnapshot();
157
167
  expect(sizeLarge).toMatchSnapshot();
@@ -1,11 +1,11 @@
1
- import * as React from "react";
2
1
  import { Box, useMultiStyleConfig } from "@chakra-ui/react";
2
+ import * as React from "react";
3
3
 
4
4
  import { ImageRatios, ImageSizes, ImageTypes } from "./ImageTypes";
5
5
 
6
6
  interface ImageWrapperProps {
7
7
  /** Optionally pass in additional Chakra-based styles. */
8
- additionalStyles?: { [key: string]: any };
8
+ additionalWrapperStyles?: { [key: string]: any };
9
9
  /** ClassName you can add in addition to 'image' */
10
10
  className?: string;
11
11
  /** Optional value to control the aspect ratio of the cartd image; default value is `square` */
@@ -15,6 +15,10 @@ interface ImageWrapperProps {
15
15
  }
16
16
 
17
17
  export interface ImageProps extends ImageWrapperProps {
18
+ /** Optionally pass in additional Chakra-based styles only for the figure. */
19
+ additionalFigureStyles?: { [key: string]: any };
20
+ /** Optionally pass in additional Chakra-based styles only for the image. */
21
+ additionalImageStyles?: { [key: string]: any };
18
22
  /** Alternate text description of the image */
19
23
  alt: string;
20
24
  /** Custom image component */
@@ -33,7 +37,7 @@ export interface ImageProps extends ImageWrapperProps {
33
37
 
34
38
  function ImageWrapper(props: React.PropsWithChildren<ImageWrapperProps>) {
35
39
  const {
36
- additionalStyles = {},
40
+ additionalWrapperStyles = {},
37
41
  className = "",
38
42
  children,
39
43
  imageAspectRatio = ImageRatios.Original,
@@ -45,19 +49,21 @@ function ImageWrapper(props: React.PropsWithChildren<ImageWrapperProps>) {
45
49
  });
46
50
  return (
47
51
  <Box
48
- __css={{ ...styles, ...additionalStyles }}
49
52
  className={`the-wrap ${className}`}
53
+ __css={{ ...styles, ...additionalWrapperStyles }}
50
54
  >
51
- <Box __css={styles.crop} className="the-crop">
55
+ <Box className="the-crop" __css={styles.crop}>
52
56
  {children}
53
57
  </Box>
54
58
  </Box>
55
59
  );
56
60
  }
57
61
 
58
- export default function Image(props: React.ComponentProps<"img"> & ImageProps) {
62
+ export default function Image(props: ImageProps) {
59
63
  const {
60
- additionalStyles = {},
64
+ additionalFigureStyles = {},
65
+ additionalImageStyles = {},
66
+ additionalWrapperStyles = {},
61
67
  alt,
62
68
  className = "",
63
69
  component,
@@ -81,14 +87,19 @@ export default function Image(props: React.ComponentProps<"img"> & ImageProps) {
81
87
  const imageComponent: JSX.Element = component ? (
82
88
  component
83
89
  ) : (
84
- <Box as="img" src={src} alt={alt} __css={styles.img} />
90
+ <Box
91
+ as="img"
92
+ src={src}
93
+ alt={alt}
94
+ __css={{ ...styles.img, ...additionalImageStyles }}
95
+ />
85
96
  );
86
97
  const finalImage = useImageWrapper ? (
87
98
  <ImageWrapper
88
99
  className={className}
89
100
  imageAspectRatio={imageAspectRatio}
90
101
  imageSize={imageSize}
91
- additionalStyles={additionalStyles}
102
+ additionalWrapperStyles={additionalWrapperStyles}
92
103
  >
93
104
  {imageComponent}
94
105
  </ImageWrapper>
@@ -97,7 +108,7 @@ export default function Image(props: React.ComponentProps<"img"> & ImageProps) {
97
108
  );
98
109
 
99
110
  return imageCaption || imageCredit ? (
100
- <Box as="figure" __css={styles.figure}>
111
+ <Box as="figure" __css={{ ...styles.figure, ...additionalFigureStyles }}>
101
112
  {finalImage}
102
113
  <Box as="figcaption" __css={styles.figcaption}>
103
114
  {imageCaption && (
@@ -14,6 +14,8 @@ export enum ImageSizes {
14
14
  Large = "large",
15
15
  Medium = "medium",
16
16
  Small = "small",
17
+ ExtraSmall = "xsmall",
18
+ ExtraExtraSmall = "xxsmall",
17
19
  }
18
20
 
19
21
  export enum ImageTypes {