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

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 (392) hide show
  1. package/CHANGELOG.md +142 -1
  2. package/README.md +98 -50
  3. package/dist/components/Accordion/Accordion.d.ts +14 -14
  4. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +15 -14
  5. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +6 -0
  6. package/dist/components/Button/Button.d.ts +13 -8
  7. package/dist/components/Button/ButtonTypes.d.ts +3 -1
  8. package/dist/components/Card/Card.d.ts +36 -52
  9. package/dist/components/Card/CardTypes.d.ts +2 -17
  10. package/dist/components/Checkbox/Checkbox.d.ts +17 -13
  11. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +45 -0
  12. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +4 -0
  13. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
  14. package/dist/components/DatePicker/DatePicker.d.ts +37 -35
  15. package/dist/components/Fieldset/Fieldset.d.ts +25 -0
  16. package/dist/components/Form/Form.d.ts +13 -8
  17. package/dist/components/Form/FormTypes.d.ts +2 -8
  18. package/dist/components/Grid/GridTypes.d.ts +9 -0
  19. package/dist/components/Grid/SimpleGrid.d.ts +14 -0
  20. package/dist/components/Heading/Heading.d.ts +4 -4
  21. package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
  22. package/dist/components/Hero/Hero.d.ts +19 -14
  23. package/dist/components/Hero/HeroTypes.d.ts +10 -5
  24. package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
  25. package/dist/components/Icons/Icon.d.ts +19 -14
  26. package/dist/components/Icons/IconSvgs.d.ts +11 -0
  27. package/dist/components/Icons/IconTypes.d.ts +89 -64
  28. package/dist/components/Image/Image.d.ts +19 -9
  29. package/dist/components/Image/ImageTypes.d.ts +20 -0
  30. package/dist/components/Label/Label.d.ts +5 -17
  31. package/dist/components/Link/Link.d.ts +12 -12
  32. package/dist/components/List/List.d.ts +19 -14
  33. package/dist/components/Notification/Notification.d.ts +37 -16
  34. package/dist/components/Pagination/Pagination.d.ts +16 -13
  35. package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
  36. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
  37. package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
  38. package/dist/components/Radio/Radio.d.ts +2 -0
  39. package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
  40. package/dist/components/SearchBar/SearchBar.d.ts +45 -27
  41. package/dist/components/Select/Select.d.ts +34 -35
  42. package/dist/components/Select/SelectTypes.d.ts +4 -0
  43. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
  44. package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +2 -2
  45. package/dist/components/Slider/Slider.d.ts +57 -0
  46. package/dist/components/StatusBadge/StatusBadge.d.ts +8 -6
  47. package/dist/components/StatusBadge/StatusBadgeTypes.d.ts +5 -0
  48. package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
  49. package/dist/components/Tabs/Tabs.d.ts +1 -1
  50. package/dist/components/Template/Template.d.ts +91 -0
  51. package/dist/components/Text/Text.d.ts +16 -0
  52. package/dist/components/Text/TextTypes.d.ts +6 -0
  53. package/dist/components/TextInput/TextInput.d.ts +44 -31
  54. package/dist/components/TextInput/TextInputTypes.d.ts +5 -0
  55. package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
  56. package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
  57. package/dist/design-system-react-components.cjs.development.js +6473 -2630
  58. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  59. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  60. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  61. package/dist/design-system-react-components.esm.js +6463 -2631
  62. package/dist/design-system-react-components.esm.js.map +1 -1
  63. package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
  64. package/dist/hooks/useCarouselStyles.d.ts +16 -0
  65. package/dist/hooks/useNYPLTheme.d.ts +54 -0
  66. package/dist/hooks/useWindowSize.d.ts +10 -0
  67. package/dist/index.d.ts +19 -7
  68. package/dist/resources.scss +180 -170
  69. package/dist/styles.css +1 -1
  70. package/dist/theme/components/accordion.d.ts +25 -0
  71. package/dist/theme/components/breadcrumb.d.ts +90 -0
  72. package/dist/theme/components/button.d.ts +39 -15
  73. package/dist/theme/components/card.d.ts +168 -0
  74. package/dist/theme/components/checkbox.d.ts +12 -8
  75. package/dist/theme/components/checkboxGroup.d.ts +12 -0
  76. package/dist/theme/components/componentWrapper.d.ts +11 -0
  77. package/dist/theme/components/datePicker.d.ts +16 -0
  78. package/dist/theme/components/fieldset.d.ts +27 -0
  79. package/dist/theme/components/global.d.ts +65 -0
  80. package/dist/theme/components/globalMixins.d.ts +23 -0
  81. package/dist/theme/components/heading.d.ts +55 -20
  82. package/dist/theme/components/helperErrorText.d.ts +10 -0
  83. package/dist/theme/components/hero.d.ts +493 -0
  84. package/dist/theme/components/horizontalRule.d.ts +14 -0
  85. package/dist/theme/components/icon.d.ts +13 -0
  86. package/dist/theme/components/image.d.ts +31 -0
  87. package/dist/theme/components/label.d.ts +18 -0
  88. package/dist/theme/components/link.d.ts +49 -0
  89. package/dist/theme/components/list.d.ts +89 -0
  90. package/dist/theme/components/notification.d.ts +75 -0
  91. package/dist/theme/components/pagination.d.ts +19 -0
  92. package/dist/theme/components/progressIndicator.d.ts +50 -0
  93. package/dist/theme/components/radio.d.ts +8 -7
  94. package/dist/theme/components/radioGroup.d.ts +12 -0
  95. package/dist/theme/components/searchBar.d.ts +20 -0
  96. package/dist/theme/components/select.d.ts +67 -0
  97. package/dist/theme/components/skeletonLoader.d.ts +98 -0
  98. package/dist/theme/components/slider.d.ts +51 -0
  99. package/dist/theme/components/statusBadge.d.ts +25 -0
  100. package/dist/theme/components/tabs.d.ts +63 -12
  101. package/dist/theme/components/template.d.ts +105 -0
  102. package/dist/theme/components/text.d.ts +20 -0
  103. package/dist/theme/components/textInput.d.ts +112 -0
  104. package/dist/theme/components/videoPlayer.d.ts +40 -0
  105. package/dist/theme/foundations/breakpoints.d.ts +8 -8
  106. package/dist/theme/foundations/global.d.ts +8 -0
  107. package/dist/theme/foundations/radii.d.ts +5 -0
  108. package/dist/theme/foundations/shadows.d.ts +4 -0
  109. package/dist/theme/foundations/spacing.d.ts +16 -16
  110. package/dist/utils/utils.d.ts +6 -0
  111. package/package.json +72 -82
  112. package/src/__tests__/setup.ts +2 -2
  113. package/src/components/Accordion/Accordion.stories.mdx +223 -34
  114. package/src/components/Accordion/Accordion.test.tsx +135 -19
  115. package/src/components/Accordion/Accordion.tsx +81 -56
  116. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -4
  117. package/src/components/Autosuggest/Autosuggest.stories.tsx +3 -2
  118. package/src/components/Autosuggest/_Autosuggest.scss +5 -5
  119. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +48 -50
  120. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +54 -25
  121. package/src/components/Breadcrumbs/Breadcrumbs.tsx +75 -73
  122. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +6 -0
  123. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +298 -0
  124. package/src/components/Button/Button.stories.mdx +45 -36
  125. package/src/components/Button/Button.test.tsx +37 -11
  126. package/src/components/Button/Button.tsx +22 -34
  127. package/src/components/Button/ButtonTypes.tsx +2 -0
  128. package/src/components/Button/__snapshots__/Button.test.tsx.snap +50 -8
  129. package/src/components/Card/Card.stories.mdx +314 -273
  130. package/src/components/Card/Card.test.tsx +157 -91
  131. package/src/components/Card/Card.tsx +195 -145
  132. package/src/components/Card/CardTypes.tsx +2 -19
  133. package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
  134. package/src/components/CardEdition/CardEdition.stories.tsx +26 -53
  135. package/src/components/CardEdition/CardEdition.test.tsx +23 -31
  136. package/src/components/CardEdition/_CardEdition.scss +22 -23
  137. package/src/components/Chakra/Box.stories.mdx +15 -16
  138. package/src/components/Chakra/Center.stories.mdx +56 -24
  139. package/src/components/Chakra/Grid.stories.mdx +92 -0
  140. package/src/components/Chakra/Stack.stories.mdx +38 -21
  141. package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
  142. package/src/components/Checkbox/Checkbox.test.tsx +47 -2
  143. package/src/components/Checkbox/Checkbox.tsx +44 -41
  144. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +92 -7
  145. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +329 -0
  146. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +372 -0
  147. package/src/components/CheckboxGroup/CheckboxGroup.tsx +152 -0
  148. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +4 -0
  149. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +1326 -0
  150. package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
  151. package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
  152. package/src/components/DatePicker/DatePicker.test.tsx +264 -64
  153. package/src/components/DatePicker/DatePicker.tsx +165 -134
  154. package/src/components/DatePicker/_DatePicker.scss +33 -66
  155. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
  156. package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
  157. package/src/components/Fieldset/Fieldset.test.tsx +125 -0
  158. package/src/components/Fieldset/Fieldset.tsx +52 -0
  159. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
  160. package/src/components/Form/Form.stories.mdx +70 -27
  161. package/src/components/Form/Form.test.tsx +58 -45
  162. package/src/components/Form/Form.tsx +50 -21
  163. package/src/components/Form/FormTypes.tsx +3 -8
  164. package/src/components/Form/__snapshots__/Form.test.tsx.snap +24 -14
  165. package/src/components/Grid/GridTypes.tsx +9 -0
  166. package/src/components/Grid/SimpleGrid.stories.mdx +268 -0
  167. package/src/components/Grid/SimpleGrid.test.tsx +66 -0
  168. package/src/components/Grid/SimpleGrid.tsx +37 -0
  169. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +8 -0
  170. package/src/components/Heading/Heading.stories.mdx +3 -3
  171. package/src/components/Heading/Heading.tsx +12 -6
  172. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
  173. package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
  174. package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
  175. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
  176. package/src/components/Hero/Hero.stories.mdx +198 -121
  177. package/src/components/Hero/Hero.test.tsx +537 -107
  178. package/src/components/Hero/Hero.tsx +79 -92
  179. package/src/components/Hero/HeroTypes.tsx +18 -5
  180. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +307 -0
  181. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
  182. package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
  183. package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
  184. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
  185. package/src/components/Icons/Icon.stories.mdx +94 -77
  186. package/src/components/Icons/Icon.test.tsx +48 -22
  187. package/src/components/Icons/Icon.tsx +78 -61
  188. package/src/components/Icons/IconSvgs.tsx +22 -0
  189. package/src/components/Icons/IconTypes.tsx +91 -64
  190. package/src/components/Image/Image.stories.mdx +220 -0
  191. package/src/components/Image/Image.test.tsx +131 -29
  192. package/src/components/Image/Image.tsx +84 -56
  193. package/src/components/Image/ImageTypes.ts +22 -0
  194. package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
  195. package/src/components/Input/Input.stories.tsx +23 -67
  196. package/src/components/Input/Input.test.tsx +4 -4
  197. package/src/components/Input/_Input.scss +23 -14
  198. package/src/components/Label/Label.stories.mdx +28 -7
  199. package/src/components/Label/Label.test.tsx +43 -12
  200. package/src/components/Label/Label.tsx +21 -34
  201. package/src/components/Label/__snapshots__/Label.test.tsx.snap +41 -0
  202. package/src/components/Link/Link.stories.mdx +41 -41
  203. package/src/components/Link/Link.test.tsx +33 -44
  204. package/src/components/Link/Link.tsx +117 -100
  205. package/src/components/List/List.stories.mdx +124 -51
  206. package/src/components/List/List.test.tsx +142 -63
  207. package/src/components/List/List.tsx +89 -93
  208. package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
  209. package/src/components/Modal/Modal.stories.mdx +3 -3
  210. package/src/components/Modal/_Modal.scss +2 -2
  211. package/src/components/Notification/Notification.stories.mdx +119 -111
  212. package/src/components/Notification/Notification.test.tsx +102 -126
  213. package/src/components/Notification/Notification.tsx +157 -161
  214. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
  215. package/src/components/Pagination/Pagination.stories.mdx +26 -27
  216. package/src/components/Pagination/Pagination.stories.tsx +11 -16
  217. package/src/components/Pagination/Pagination.test.tsx +276 -140
  218. package/src/components/Pagination/Pagination.tsx +174 -154
  219. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
  220. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
  221. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
  222. package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
  223. package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
  224. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
  225. package/src/components/Radio/Radio.test.tsx +20 -4
  226. package/src/components/Radio/Radio.tsx +6 -3
  227. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
  228. package/src/components/RadioGroup/RadioGroup.stories.mdx +4 -5
  229. package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
  230. package/src/components/RadioGroup/RadioGroup.tsx +21 -29
  231. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
  232. package/src/components/SearchBar/SearchBar.Test.tsx +170 -16
  233. package/src/components/SearchBar/SearchBar.stories.mdx +294 -219
  234. package/src/components/SearchBar/SearchBar.tsx +161 -46
  235. package/src/components/Select/Select.stories.mdx +188 -170
  236. package/src/components/Select/Select.test.tsx +132 -375
  237. package/src/components/Select/Select.tsx +121 -165
  238. package/src/components/Select/SelectTypes.tsx +5 -0
  239. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +33 -76
  240. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
  241. package/src/components/SkeletonLoader/SkeletonLoader.tsx +75 -70
  242. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +2 -2
  243. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
  244. package/src/components/Slider/Slider.stories.mdx +529 -0
  245. package/src/components/Slider/Slider.test.tsx +653 -0
  246. package/src/components/Slider/Slider.tsx +303 -0
  247. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
  248. package/src/components/StatusBadge/StatusBadge.stories.mdx +91 -0
  249. package/src/components/StatusBadge/StatusBadge.test.tsx +35 -7
  250. package/src/components/StatusBadge/StatusBadge.tsx +24 -25
  251. package/src/components/StatusBadge/StatusBadgeTypes.tsx +5 -0
  252. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +28 -0
  253. package/src/components/StyleGuide/Bidirectionality.stories.mdx +17 -17
  254. package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
  255. package/src/components/StyleGuide/Buttons.stories.mdx +102 -86
  256. package/src/components/StyleGuide/ColorCard.tsx +46 -0
  257. package/src/components/StyleGuide/Colors.stories.mdx +196 -0
  258. package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
  259. package/src/components/StyleGuide/Forms.stories.mdx +9 -7
  260. package/src/components/StyleGuide/Iconography.stories.mdx +119 -127
  261. package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
  262. package/src/components/StyleGuide/Typography.stories.mdx +202 -189
  263. package/src/components/StyleGuide/UIDocCard.tsx +1 -1
  264. package/src/components/Tabs/Tabs.stories.mdx +73 -11
  265. package/src/components/Tabs/Tabs.tsx +88 -67
  266. package/src/components/Template/Template.stories.mdx +572 -0
  267. package/src/components/Template/Template.test.tsx +124 -0
  268. package/src/components/Template/Template.tsx +226 -0
  269. package/src/components/Text/Text.stories.mdx +70 -0
  270. package/src/components/Text/Text.test.tsx +63 -0
  271. package/src/components/Text/Text.tsx +55 -0
  272. package/src/components/Text/TextTypes.tsx +6 -0
  273. package/src/components/Text/__snapshots__/Text.test.tsx.snap +33 -0
  274. package/src/components/TextInput/TextInput.stories.mdx +89 -90
  275. package/src/components/TextInput/TextInput.test.tsx +84 -85
  276. package/src/components/TextInput/TextInput.tsx +121 -95
  277. package/src/components/TextInput/TextInputTypes.tsx +8 -0
  278. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
  279. package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
  280. package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
  281. package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
  282. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
  283. package/src/docs/Chakra.stories.mdx +246 -65
  284. package/src/docs/Intro.stories.mdx +18 -13
  285. package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
  286. package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
  287. package/src/hooks/useCarouselStyles.ts +34 -0
  288. package/src/hooks/useNYPLTheme.ts +67 -0
  289. package/src/hooks/useWindowSize.ts +40 -0
  290. package/src/index.ts +39 -16
  291. package/src/resources.scss +5 -5
  292. package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
  293. package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
  294. package/src/styles/base/_03-base.scss +25 -0
  295. package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
  296. package/src/styles/base/_place-holder.scss +14 -3
  297. package/src/styles/{03-space → space}/_space-inline.scss +14 -14
  298. package/src/styles/{03-space → space}/_space-inset.scss +10 -10
  299. package/src/styles/space/_space-stack.scss +116 -0
  300. package/src/styles.scss +13 -62
  301. package/src/theme/components/accordion.ts +30 -0
  302. package/src/theme/components/breadcrumb.ts +77 -0
  303. package/src/theme/components/button.ts +91 -71
  304. package/src/theme/components/card.ts +174 -0
  305. package/src/theme/components/checkbox.ts +22 -29
  306. package/src/theme/components/checkboxGroup.ts +8 -0
  307. package/src/theme/components/componentWrapper.ts +10 -0
  308. package/src/theme/components/datePicker.ts +17 -0
  309. package/src/theme/components/fieldset.ts +18 -0
  310. package/src/theme/components/global.ts +82 -0
  311. package/src/theme/components/globalMixins.ts +24 -0
  312. package/src/theme/components/heading.ts +25 -13
  313. package/src/theme/components/helperErrorText.ts +9 -0
  314. package/src/theme/components/hero.ts +240 -0
  315. package/src/theme/components/horizontalRule.ts +13 -0
  316. package/src/theme/components/icon.ts +79 -0
  317. package/src/theme/components/image.ts +116 -0
  318. package/src/theme/components/label.ts +10 -0
  319. package/src/theme/components/link.ts +51 -0
  320. package/src/theme/components/list.ts +73 -0
  321. package/src/theme/components/notification.ts +93 -0
  322. package/src/theme/components/pagination.ts +20 -0
  323. package/src/theme/components/progressIndicator.ts +62 -0
  324. package/src/theme/components/radio.ts +22 -33
  325. package/src/theme/components/radioGroup.ts +8 -0
  326. package/src/theme/components/searchBar.ts +21 -0
  327. package/src/theme/components/select.ts +53 -0
  328. package/src/theme/components/skeletonLoader.ts +107 -0
  329. package/src/theme/components/slider.ts +79 -0
  330. package/src/theme/components/statusBadge.ts +26 -0
  331. package/src/theme/components/tabs.ts +102 -69
  332. package/src/theme/components/template.ts +114 -0
  333. package/src/theme/components/text.ts +31 -0
  334. package/src/theme/components/textInput.ts +62 -0
  335. package/src/theme/components/videoPlayer.ts +49 -0
  336. package/src/theme/foundations/breakpoints.ts +8 -8
  337. package/src/theme/foundations/colors.ts +29 -13
  338. package/src/theme/foundations/global.ts +8 -0
  339. package/src/theme/foundations/radii.ts +6 -0
  340. package/src/theme/foundations/shadows.ts +5 -0
  341. package/src/theme/foundations/spacing.ts +24 -24
  342. package/src/theme/index.ts +74 -13
  343. package/src/utils/componentCategories.ts +12 -5
  344. package/src/utils/utils.ts +13 -0
  345. package/dist/components/Accordion/Accordion.stories.d.ts +0 -6
  346. package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
  347. package/dist/components/Image/Image.stories.d.ts +0 -18
  348. package/dist/components/List/List.stories.d.ts +0 -7
  349. package/dist/components/StatusBadge/StatusBadge.stories.d.ts +0 -8
  350. package/dist/components/StyleGuide/Colors.stories.d.ts +0 -25
  351. package/dist/components/Template/Template.stories.d.ts +0 -30
  352. package/dist/theme/components/customRadioGroup.d.ts +0 -17
  353. package/src/components/Accordion/Accordion.stories.tsx +0 -66
  354. package/src/components/Accordion/_Accordion.scss +0 -81
  355. package/src/components/Breadcrumbs/_Breadcrumbs.scss +0 -97
  356. package/src/components/Button/_Button.scss +0 -56
  357. package/src/components/Card/_Card.scss +0 -308
  358. package/src/components/Form/_Form.scss +0 -67
  359. package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
  360. package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
  361. package/src/components/Hero/_Hero.scss +0 -256
  362. package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
  363. package/src/components/Icons/_Icons.scss +0 -116
  364. package/src/components/Image/Image.stories.tsx +0 -54
  365. package/src/components/Image/_Image.scss +0 -38
  366. package/src/components/Label/_Label.scss +0 -22
  367. package/src/components/Link/_Link.scss +0 -73
  368. package/src/components/List/List.stories.tsx +0 -139
  369. package/src/components/List/_List.scss +0 -76
  370. package/src/components/Notification/_Notification.scss +0 -110
  371. package/src/components/Pagination/_Pagination.scss +0 -40
  372. package/src/components/SearchBar/_SearchBar.scss +0 -16
  373. package/src/components/Select/_Select.scss +0 -82
  374. package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
  375. package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -34
  376. package/src/components/StatusBadge/_StatusBadge.scss +0 -23
  377. package/src/components/StyleGuide/Colors.stories.tsx +0 -289
  378. package/src/components/Template/Template.stories.tsx +0 -86
  379. package/src/components/Template/_Template.scss +0 -63
  380. package/src/components/TextInput/_TextInput.scss +0 -59
  381. package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
  382. package/src/styles/01-colors/_colors-brand.scss +0 -56
  383. package/src/styles/01-colors/_colors-utility.scss +0 -65
  384. package/src/styles/02-typography/_type-scale.css +0 -11
  385. package/src/styles/02-typography/_type-weight.css +0 -7
  386. package/src/styles/02-typography/_typefaces.css +0 -4
  387. package/src/styles/03-space/_space-stack.scss +0 -116
  388. package/src/styles/03-space/_space.css +0 -30
  389. package/src/styles/base/_04-base.scss +0 -19
  390. package/src/styles/base/_card-grid.scss +0 -78
  391. package/src/styles/base/_typography.scss +0 -11
  392. package/src/theme/components/customRadioGroup.ts +0 -18
@@ -1,45 +1,55 @@
1
1
  import * as React from "react";
2
2
  import { render, screen } from "@testing-library/react";
3
3
  import { axe } from "jest-axe";
4
+ import renderer from "react-test-renderer";
4
5
 
5
6
  import Image from "./Image";
7
+ import { ImageRatios, ImageSizes, ImageTypes } from "./ImageTypes";
6
8
 
7
9
  describe("Image Accessibility", () => {
8
- it("passes axe accessibility test", async () => {
9
- const { container } = render(<Image src="test.png" alt={""} />);
10
+ it("passes axe accessibility for regular img element", async () => {
11
+ const { container } = render(<Image src="test.png" alt="" />);
12
+ expect(await axe(container)).toHaveNoViolations();
13
+ });
14
+
15
+ it("passes axe accessibility for figure element wrapper", async () => {
16
+ const { container } = render(
17
+ <Image src="test.png" alt="" imageCaption="This is a caption" />
18
+ );
10
19
  expect(await axe(container)).toHaveNoViolations();
11
20
  });
12
21
  });
13
22
 
14
23
  describe("Image", () => {
15
24
  const tooManyChars =
16
- "UNwbNIp1GFehVO1LBBIFYF6Nv5IhHeCPgW5JHet2VRuuKnKlGxSgjbFcfCbcttVTkxbE7ItibBIuG9cTA9HGntZSKv31u7egV88bIg7DGDHmi2nKq3ssZkBDl7oWfYpyjWbfV4kZx9EDPsKHUTKb2xIKZWSbRMuTUtsJWonQyfitDp8ui1P7QR80LA236yE5fCkRImbltEsqJWEYxyotQpLjFbruJsPcGSCp6ET6DCrNQeWFsRVaM2Co99ewZjLuY42kdpBEXjcw9HPcTjKKZw141sKBNOoFfNMueYaHtNjNI";
17
- it("Shows Image", () => {
18
- const utils = render(<Image src="test.png" alt="" />);
19
- expect(utils.container.querySelector(".image")).toBeInTheDocument();
20
- expect(utils.container.querySelector(".figure")).not.toBeInTheDocument();
25
+ "UNwbNIp1GFehVO1LBBIFYF6Nv5IhHeCPgW5JHet2VRuuKnKlGxSgjbFcfCbcttVTkxbE7I" +
26
+ "tibBIuG9cTA9HGntZSKv31u7egV88bIg7DGDHmi2nKq3ssZkBDl7oWfYpyjWbfV4kZx9EDP" +
27
+ "sKHUTKb2xIKZWSbRMuTUtsJWonQyfitDp8ui1P7QR80LA236yE5fCkRImbltEsqJWEYxyot" +
28
+ "QpLjFbruJsPcGSCp6ET6DCrNQeWFsRVaM2Co99ewZjLuY42kdpBEXjcw9HPcTjKKZw141sK" +
29
+ "BNOoFfNMueYaHtNjNI";
30
+
31
+ it("renders a simple image not wrapped in a figure element", () => {
32
+ render(<Image src="test.png" alt="" />);
33
+ expect(screen.getByRole("img")).toBeInTheDocument();
34
+ expect(screen.queryByRole("figure")).not.toBeInTheDocument();
21
35
  });
22
36
 
23
- it("Shows Image wrapped in figure when provided ImageCaption", () => {
24
- const utils = render(
25
- <Image src="test.png" imageCaption="caption" alt="" />
26
- );
37
+ it("renders an image wrapped in figure when provided a caption", () => {
38
+ render(<Image src="test.png" imageCaption="caption" alt="" />);
39
+ expect(screen.getByRole("img")).toBeInTheDocument();
40
+ expect(screen.getByRole("figure")).toBeInTheDocument();
27
41
  expect(screen.getByText("caption")).toBeInTheDocument();
28
- expect(utils.container.querySelector(".figure")).toBeInTheDocument();
29
42
  });
30
43
 
31
- it("Shows Image wrapped in figure when provided ImageCredit", () => {
32
- const utils = render(<Image src="test.png" imageCredit="credit" alt="" />);
33
-
44
+ it("renders an image wrapped in figure when provided an image credit", () => {
45
+ render(<Image src="test.png" imageCredit="credit" alt="" />);
46
+ expect(screen.getByRole("img")).toBeInTheDocument();
47
+ expect(screen.getByRole("figure")).toBeInTheDocument();
34
48
  expect(screen.getByText("credit")).toBeInTheDocument();
35
- expect(utils.container.querySelector(".figure")).toBeInTheDocument();
36
- expect(
37
- utils.container.querySelector(".figcaption__credit")
38
- ).toBeInTheDocument();
39
49
  });
40
50
 
41
- it("Shows Image wrapped in figure with credit and caption when provided ImageCredit and ImageCaption", () => {
42
- const utils = render(
51
+ it("renders an image wrapped in figure with credit and caption", () => {
52
+ render(
43
53
  <Image
44
54
  src="test.png"
45
55
  imageCaption="caption"
@@ -47,20 +57,112 @@ describe("Image", () => {
47
57
  alt=""
48
58
  />
49
59
  );
60
+ expect(screen.getByRole("img")).toBeInTheDocument();
61
+ expect(screen.getByRole("figure")).toBeInTheDocument();
50
62
  expect(screen.getByText("caption")).toBeInTheDocument();
51
63
  expect(screen.getByText("credit")).toBeInTheDocument();
52
- expect(utils.container.querySelector(".figure")).toBeInTheDocument();
53
- expect(
54
- utils.container.querySelector(".figcaption__credit")
55
- ).toBeInTheDocument();
56
- expect(
57
- utils.container.querySelector(".figcaption__caption")
58
- ).toBeInTheDocument();
59
64
  });
60
65
 
61
- it("Throws error when alt text is too long", () => {
66
+ it("throws error when alt text is too long", () => {
62
67
  expect(() =>
63
68
  render(<Image src="test.png" alt={tooManyChars} />)
64
69
  ).toThrowError("Alt Text must be less than 300 characters");
65
70
  });
71
+
72
+ it("Renders the UI snapshot correctly", () => {
73
+ const basic = renderer.create(<Image src="test.png" alt="" />).toJSON();
74
+ const figCaption = renderer
75
+ .create(<Image src="test.png" alt="" imageCaption="Caption" />)
76
+ .toJSON();
77
+ const sizeSmall = renderer
78
+ .create(<Image src="test.png" alt="" imageSize={ImageSizes.Small} />)
79
+ .toJSON();
80
+ const sizeMedium = renderer
81
+ .create(<Image src="test.png" alt="" imageSize={ImageSizes.Medium} />)
82
+ .toJSON();
83
+ const sizeLarge = renderer
84
+ .create(<Image src="test.png" alt="" imageSize={ImageSizes.Large} />)
85
+ .toJSON();
86
+ const ratioFourByThree = renderer
87
+ .create(
88
+ <Image
89
+ src="test.png"
90
+ alt=""
91
+ imageAspectRatio={ImageRatios.FourByThree}
92
+ />
93
+ )
94
+ .toJSON();
95
+ const ratioOneByTwo = renderer
96
+ .create(
97
+ <Image src="test.png" alt="" imageAspectRatio={ImageRatios.OneByTwo} />
98
+ )
99
+ .toJSON();
100
+ const ratioOriginal = renderer
101
+ .create(
102
+ <Image src="test.png" alt="" imageAspectRatio={ImageRatios.Original} />
103
+ )
104
+ .toJSON();
105
+ const ratioSixteenByNine = renderer
106
+ .create(
107
+ <Image
108
+ src="test.png"
109
+ alt=""
110
+ imageAspectRatio={ImageRatios.SixteenByNine}
111
+ />
112
+ )
113
+ .toJSON();
114
+ const ratioSquare = renderer
115
+ .create(
116
+ <Image src="test.png" alt="" imageAspectRatio={ImageRatios.Square} />
117
+ )
118
+ .toJSON();
119
+ const ratioThreeByFour = renderer
120
+ .create(
121
+ <Image
122
+ src="test.png"
123
+ alt=""
124
+ imageAspectRatio={ImageRatios.ThreeByFour}
125
+ />
126
+ )
127
+ .toJSON();
128
+ const ratioThreeByTwo = renderer
129
+ .create(
130
+ <Image
131
+ src="test.png"
132
+ alt=""
133
+ imageAspectRatio={ImageRatios.ThreeByTwo}
134
+ />
135
+ )
136
+ .toJSON();
137
+ const ratioTwoByOne = renderer
138
+ .create(
139
+ <Image src="test.png" alt="" imageAspectRatio={ImageRatios.TwoByOne} />
140
+ )
141
+ .toJSON();
142
+ const typeCircle = renderer
143
+ .create(
144
+ <Image
145
+ src="test.png"
146
+ alt=""
147
+ imageAspectRatio={ImageRatios.Square}
148
+ imageSize={ImageSizes.Small}
149
+ imageType={ImageTypes.Circle}
150
+ />
151
+ )
152
+ .toJSON();
153
+ expect(basic).toMatchSnapshot();
154
+ expect(figCaption).toMatchSnapshot();
155
+ expect(sizeSmall).toMatchSnapshot();
156
+ expect(sizeMedium).toMatchSnapshot();
157
+ expect(sizeLarge).toMatchSnapshot();
158
+ expect(ratioFourByThree).toMatchSnapshot();
159
+ expect(ratioOneByTwo).toMatchSnapshot();
160
+ expect(ratioOriginal).toMatchSnapshot();
161
+ expect(ratioSixteenByNine).toMatchSnapshot();
162
+ expect(ratioSquare).toMatchSnapshot();
163
+ expect(ratioThreeByFour).toMatchSnapshot();
164
+ expect(ratioThreeByTwo).toMatchSnapshot();
165
+ expect(ratioTwoByOne).toMatchSnapshot();
166
+ expect(typeCircle).toMatchSnapshot();
167
+ });
66
168
  });
@@ -1,84 +1,112 @@
1
- // Images
2
1
  import * as React from "react";
3
- import bem from "../../utils/bem";
2
+ import { Box, useMultiStyleConfig } from "@chakra-ui/react";
4
3
 
5
- export interface ImageProps {
6
- /** Text description of the image */
7
- alt: string;
8
- /** Additional attributes passed to the image */
9
- attributes?: { [key: string]: any };
4
+ import { ImageRatios, ImageSizes, ImageTypes } from "./ImageTypes";
10
5
 
11
- /** BlockName for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
12
- blockName?: string;
6
+ interface ImageWrapperProps {
7
+ /** Optionally pass in additional Chakra-based styles. */
8
+ additionalStyles?: { [key: string]: any };
13
9
  /** ClassName you can add in addition to 'image' */
14
10
  className?: string;
11
+ /** Optional value to control the aspect ratio of the cartd image; default value is `square` */
12
+ imageAspectRatio?: ImageRatios;
13
+ /** Optional value to control the size of the image */
14
+ imageSize?: ImageSizes;
15
+ }
16
+
17
+ export interface ImageProps extends ImageWrapperProps {
18
+ /** Alternate text description of the image */
19
+ alt: string;
20
+ /** Custom image component */
21
+ component?: JSX.Element | null;
15
22
  /** Adding will wrap the image in a <figure> */
16
23
  imageCaption?: string;
17
24
  /** Adding will wrap the image in a <figure> */
18
25
  imageCredit?: string;
19
- /** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
20
- modifiers?: string[];
26
+ /** Optional value to control the size of the image */
27
+ imageSize?: ImageSizes;
28
+ /** Optional value for the image type */
29
+ imageType?: ImageTypes;
21
30
  /** The src attribute is required, and contains the path to the image you want to embed. */
22
31
  src: string;
23
32
  }
24
33
 
34
+ function ImageWrapper(props: React.PropsWithChildren<ImageWrapperProps>) {
35
+ const {
36
+ additionalStyles = {},
37
+ className = "",
38
+ children,
39
+ imageAspectRatio = ImageRatios.Original,
40
+ imageSize = ImageSizes.Default,
41
+ } = props;
42
+ const styles = useMultiStyleConfig("CustomImageWrapper", {
43
+ ratio: imageAspectRatio,
44
+ size: imageSize,
45
+ });
46
+ return (
47
+ <Box
48
+ __css={{ ...styles, ...additionalStyles }}
49
+ className={`the-wrap ${className}`}
50
+ >
51
+ <Box __css={styles.crop} className="the-crop">
52
+ {children}
53
+ </Box>
54
+ </Box>
55
+ );
56
+ }
57
+
25
58
  export default function Image(props: React.ComponentProps<"img"> & ImageProps) {
26
- const baseClass = "image";
27
59
  const {
60
+ additionalStyles = {},
28
61
  alt,
29
- attributes,
30
- blockName,
31
- className,
62
+ className = "",
63
+ component,
64
+ imageAspectRatio = ImageRatios.Original,
32
65
  imageCaption,
33
66
  imageCredit,
34
- modifiers = [],
67
+ imageSize = ImageSizes.Default,
68
+ imageType = ImageTypes.Default,
35
69
  src,
36
- ...imgHTMLProps
37
70
  } = props;
71
+ const useImageWrapper = imageAspectRatio !== ImageRatios.Original;
72
+ const styles = useMultiStyleConfig("CustomImage", {
73
+ variant: imageType,
74
+ size: imageSize,
75
+ });
38
76
 
39
77
  if (alt && alt.length > 300) {
40
78
  throw new Error("Alt Text must be less than 300 characters");
41
79
  }
42
80
 
43
- const figureBlockName = imageCaption || imageCredit ? "figure" : blockName;
44
-
45
- const imageProps: ImageProps = {
46
- className: bem(baseClass, modifiers, figureBlockName, [className]),
47
- src: src,
48
- alt: alt,
49
- };
81
+ const imageComponent: JSX.Element = component ? (
82
+ component
83
+ ) : (
84
+ <Box as="img" src={src} alt={alt} __css={styles.img} />
85
+ );
86
+ const finalImage = useImageWrapper ? (
87
+ <ImageWrapper
88
+ className={className}
89
+ imageAspectRatio={imageAspectRatio}
90
+ imageSize={imageSize}
91
+ additionalStyles={additionalStyles}
92
+ >
93
+ {imageComponent}
94
+ </ImageWrapper>
95
+ ) : (
96
+ imageComponent
97
+ );
50
98
 
51
- return (
52
- <>
53
- {imageCaption || imageCredit ? (
54
- <figure className={bem("figure")}>
55
- <img
56
- alt={imageProps.alt}
57
- {...imageProps}
58
- {...imgHTMLProps}
59
- {...attributes}
60
- />
61
- <figcaption className={bem("figcaption", [], "figure", ["image"])}>
62
- {imageCaption && (
63
- <div className={bem("caption", [], "figcaption")}>
64
- {imageCaption}
65
- </div>
66
- )}
67
- {imageCredit && (
68
- <div className={bem("credit", [], "figcaption")}>
69
- {imageCredit}
70
- </div>
71
- )}
72
- </figcaption>
73
- </figure>
74
- ) : (
75
- <img
76
- alt={imageProps.alt}
77
- {...imageProps}
78
- {...imgHTMLProps}
79
- {...attributes}
80
- />
81
- )}
82
- </>
99
+ return imageCaption || imageCredit ? (
100
+ <Box as="figure" __css={styles.figure}>
101
+ {finalImage}
102
+ <Box as="figcaption" __css={styles.figcaption}>
103
+ {imageCaption && (
104
+ <Box __css={styles.captionWrappers}>{imageCaption}</Box>
105
+ )}
106
+ {imageCredit && <Box __css={styles.captionWrappers}>{imageCredit}</Box>}
107
+ </Box>
108
+ </Box>
109
+ ) : (
110
+ finalImage
83
111
  );
84
112
  }
@@ -0,0 +1,22 @@
1
+ export enum ImageRatios {
2
+ FourByThree = "fourByThree",
3
+ OneByTwo = "oneByTwo",
4
+ Original = "original",
5
+ SixteenByNine = "sixteenByNine",
6
+ Square = "square",
7
+ ThreeByFour = "threeByFour",
8
+ ThreeByTwo = "threeByTwo",
9
+ TwoByOne = "twoByOne",
10
+ }
11
+
12
+ export enum ImageSizes {
13
+ Default = "default",
14
+ Large = "large",
15
+ Medium = "medium",
16
+ Small = "small",
17
+ }
18
+
19
+ export enum ImageTypes {
20
+ Default = "default",
21
+ Circle = "circle",
22
+ }
@@ -0,0 +1,190 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Image Renders the UI snapshot correctly 1`] = `
4
+ <img
5
+ alt=""
6
+ className="css-0"
7
+ src="test.png"
8
+ />
9
+ `;
10
+
11
+ exports[`Image Renders the UI snapshot correctly 2`] = `
12
+ <figure
13
+ className="css-0"
14
+ >
15
+ <img
16
+ alt=""
17
+ className="css-0"
18
+ src="test.png"
19
+ />
20
+ <figcaption
21
+ className="css-0"
22
+ >
23
+ <div
24
+ className="css-0"
25
+ >
26
+ Caption
27
+ </div>
28
+ </figcaption>
29
+ </figure>
30
+ `;
31
+
32
+ exports[`Image Renders the UI snapshot correctly 3`] = `
33
+ <img
34
+ alt=""
35
+ className="css-0"
36
+ src="test.png"
37
+ />
38
+ `;
39
+
40
+ exports[`Image Renders the UI snapshot correctly 4`] = `
41
+ <img
42
+ alt=""
43
+ className="css-0"
44
+ src="test.png"
45
+ />
46
+ `;
47
+
48
+ exports[`Image Renders the UI snapshot correctly 5`] = `
49
+ <img
50
+ alt=""
51
+ className="css-0"
52
+ src="test.png"
53
+ />
54
+ `;
55
+
56
+ exports[`Image Renders the UI snapshot correctly 6`] = `
57
+ <div
58
+ className="the-wrap css-0"
59
+ >
60
+ <div
61
+ className="the-crop css-0"
62
+ >
63
+ <img
64
+ alt=""
65
+ className="css-0"
66
+ src="test.png"
67
+ />
68
+ </div>
69
+ </div>
70
+ `;
71
+
72
+ exports[`Image Renders the UI snapshot correctly 7`] = `
73
+ <div
74
+ className="the-wrap css-0"
75
+ >
76
+ <div
77
+ className="the-crop css-0"
78
+ >
79
+ <img
80
+ alt=""
81
+ className="css-0"
82
+ src="test.png"
83
+ />
84
+ </div>
85
+ </div>
86
+ `;
87
+
88
+ exports[`Image Renders the UI snapshot correctly 8`] = `
89
+ <img
90
+ alt=""
91
+ className="css-0"
92
+ src="test.png"
93
+ />
94
+ `;
95
+
96
+ exports[`Image Renders the UI snapshot correctly 9`] = `
97
+ <div
98
+ className="the-wrap css-0"
99
+ >
100
+ <div
101
+ className="the-crop css-0"
102
+ >
103
+ <img
104
+ alt=""
105
+ className="css-0"
106
+ src="test.png"
107
+ />
108
+ </div>
109
+ </div>
110
+ `;
111
+
112
+ exports[`Image Renders the UI snapshot correctly 10`] = `
113
+ <div
114
+ className="the-wrap css-0"
115
+ >
116
+ <div
117
+ className="the-crop css-0"
118
+ >
119
+ <img
120
+ alt=""
121
+ className="css-0"
122
+ src="test.png"
123
+ />
124
+ </div>
125
+ </div>
126
+ `;
127
+
128
+ exports[`Image Renders the UI snapshot correctly 11`] = `
129
+ <div
130
+ className="the-wrap css-0"
131
+ >
132
+ <div
133
+ className="the-crop css-0"
134
+ >
135
+ <img
136
+ alt=""
137
+ className="css-0"
138
+ src="test.png"
139
+ />
140
+ </div>
141
+ </div>
142
+ `;
143
+
144
+ exports[`Image Renders the UI snapshot correctly 12`] = `
145
+ <div
146
+ className="the-wrap css-0"
147
+ >
148
+ <div
149
+ className="the-crop css-0"
150
+ >
151
+ <img
152
+ alt=""
153
+ className="css-0"
154
+ src="test.png"
155
+ />
156
+ </div>
157
+ </div>
158
+ `;
159
+
160
+ exports[`Image Renders the UI snapshot correctly 13`] = `
161
+ <div
162
+ className="the-wrap css-0"
163
+ >
164
+ <div
165
+ className="the-crop css-0"
166
+ >
167
+ <img
168
+ alt=""
169
+ className="css-0"
170
+ src="test.png"
171
+ />
172
+ </div>
173
+ </div>
174
+ `;
175
+
176
+ exports[`Image Renders the UI snapshot correctly 14`] = `
177
+ <div
178
+ className="the-wrap css-0"
179
+ >
180
+ <div
181
+ className="the-crop css-0"
182
+ >
183
+ <img
184
+ alt=""
185
+ className="css-0"
186
+ src="test.png"
187
+ />
188
+ </div>
189
+ </div>
190
+ `;