@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,66 +1,95 @@
1
1
  import * as React from "react";
2
- import bem from "../../utils/bem";
3
- import generateUUID from "../../helpers/generateUUID";
4
2
  import { FormSpacing } from "./FormTypes";
3
+ import SimpleGrid from "../Grid/SimpleGrid";
4
+ import { Box } from "@chakra-ui/react";
5
+ import generateUUID from "../../helpers/generateUUID";
6
+
7
+ export interface FormChildProps {
8
+ /** className to be applied to FormRow */
9
+ className?: string;
10
+ /** Spacing size (internal use) */
11
+ gap?: FormSpacing;
12
+ /** ID that other components can cross reference (internal use) */
13
+ id?: string;
14
+ }
5
15
 
6
16
  export interface FormProps {
7
17
  /** Optional form `action` attribute */
8
18
  action?: string;
9
- /** Optional additional attributes passed to the `<form>` element */
10
- attributes?: { [key: string]: any };
11
19
  /** Optional className you can add in addition to `form` */
12
20
  className?: string;
13
21
  /** Optional ID that other components can cross reference */
14
22
  id?: string;
15
23
  /** Optional form `method` attribute */
16
24
  method?: "get" | "post";
17
- /** Optional modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
18
- modifiers?: string[];
19
25
  /** Optional spacing size; if omitted, the default `large` (2rem / 32px) spacing will be used; ```IMPORTANT: for general form layout, this prop should not be used``` */
20
26
  spacing?: FormSpacing;
21
27
  }
22
28
 
23
- // FormRow child-component
24
- export function FormRow(props) {
25
- const { children, className } = props;
26
- return <div className={bem("form-row", [], "", [className])}>{children}</div>;
29
+ /** FormRow child-component */
30
+ export function FormRow(props: React.PropsWithChildren<FormChildProps>) {
31
+ const { children, className, gap, id } = props;
32
+ const count = React.Children.count(children);
33
+ const alteredChildren = React.Children.map(
34
+ children,
35
+ (child: React.ReactElement, i) => {
36
+ if (!child) return null;
37
+ return React.cloneElement(child, { id: `${id}-grandchild${i}` });
38
+ }
39
+ );
40
+ return (
41
+ <SimpleGrid columns={count} className={className} gap={gap} id={id}>
42
+ {alteredChildren}
43
+ </SimpleGrid>
44
+ );
27
45
  }
28
46
 
29
- // FormField child-component
30
- export function FormField(props) {
31
- const { children, className } = props;
47
+ /** FormField child-component */
48
+ export function FormField(props: React.PropsWithChildren<FormChildProps>) {
49
+ const { children, className, gap, id } = props;
32
50
  return (
33
- <div className={bem("form-field", [], "", [className])}>{children}</div>
51
+ <SimpleGrid columns={1} className={className} gap={gap} id={id}>
52
+ {children}
53
+ </SimpleGrid>
34
54
  );
35
55
  }
36
56
 
57
+ /** main Form component */
37
58
  export default function Form(props: React.ComponentProps<"form"> & FormProps) {
38
59
  const {
39
60
  action,
40
- attributes = {},
41
61
  children,
42
62
  className,
43
63
  id = generateUUID(),
44
64
  method,
45
- modifiers = [],
46
65
  spacing,
47
66
  } = props;
48
67
 
68
+ let attributes = {};
49
69
  action && (attributes["action"] = action);
50
70
 
51
71
  method &&
52
72
  (method === "get" || method === "post") &&
53
73
  (attributes["method"] = method);
54
74
 
55
- spacing && modifiers.push(`spacing-${spacing}`);
75
+ const alteredChildren = React.Children.map(
76
+ children,
77
+ (child: React.ReactElement, i) => {
78
+ return React.cloneElement(child, { gap: spacing, id: `${id}-child${i}` });
79
+ }
80
+ );
56
81
 
57
82
  return (
58
- <form
59
- className={bem("form", modifiers, "", [className])}
83
+ <Box
84
+ as="form"
85
+ aria-label="form"
60
86
  id={id}
61
87
  {...attributes}
88
+ className={className}
62
89
  >
63
- {children}
64
- </form>
90
+ <SimpleGrid columns={1} gap={spacing} id={id + "-parent"}>
91
+ {alteredChildren}
92
+ </SimpleGrid>
93
+ </Box>
65
94
  );
66
95
  }
@@ -1,8 +1,3 @@
1
- export enum FormSpacing {
2
- ExtraExtraSmall = "extra-extra-small",
3
- ExtraSmall = "extra-small",
4
- Small = "small",
5
- Medium = "medium",
6
- Large = "large",
7
- ExtraLarge = "extra-large",
8
- }
1
+ import { GridGaps as FormSpacing } from "../Grid/GridTypes";
2
+
3
+ export { FormSpacing };
@@ -2,26 +2,36 @@
2
2
 
3
3
  exports[`Form Snapshot Renders the UI snapshot correctly 1`] = `
4
4
  <form
5
- className="form "
5
+ aria-label="form"
6
+ className="css-0"
6
7
  id="snapshot-form"
7
8
  >
8
9
  <div
9
- className="form-row "
10
+ className="css-aq1pyb"
11
+ id="snapshot-form-parent"
10
12
  >
11
13
  <div
12
- className="form-field "
14
+ className="css-1ao258g"
15
+ id="snapshot-form-child0"
13
16
  >
14
- Form Field 1
15
- </div>
16
- <div
17
- className="form-field "
18
- >
19
- Form Field 2
20
- </div>
21
- <div
22
- className="form-field "
23
- >
24
- Form Field 3
17
+ <div
18
+ className="css-aq1pyb"
19
+ id="snapshot-form-child0-grandchild0"
20
+ >
21
+ Form Field 1
22
+ </div>
23
+ <div
24
+ className="css-aq1pyb"
25
+ id="snapshot-form-child0-grandchild1"
26
+ >
27
+ Form Field 2
28
+ </div>
29
+ <div
30
+ className="css-aq1pyb"
31
+ id="snapshot-form-child0-grandchild2"
32
+ >
33
+ Form Field 3
34
+ </div>
25
35
  </div>
26
36
  </div>
27
37
  </form>
@@ -0,0 +1,9 @@
1
+ export enum GridGaps {
2
+ ExtraExtraSmall = "xxs",
3
+ ExtraSmall = "xs",
4
+ Small = "s",
5
+ Medium = "m",
6
+ Large = "l",
7
+ ExtraLarge = "xl",
8
+ ExtraExtraLarge = "xxl",
9
+ }
@@ -0,0 +1,268 @@
1
+ import {
2
+ Meta,
3
+ Story,
4
+ Canvas,
5
+ ArgsTable,
6
+ Description,
7
+ } from "@storybook/addon-docs/blocks";
8
+ import { withDesign } from "storybook-addon-designs";
9
+
10
+ import SimpleGrid from "./SimpleGrid";
11
+ import Card, { CardHeading, CardContent, CardActions } from "../Card/Card";
12
+ import { CardLayouts } from "../Card/CardTypes";
13
+ import { HeadingDisplaySizes, HeadingLevels } from "../Heading/HeadingTypes";
14
+ import Icon from "../Icons/Icon";
15
+ import {
16
+ IconNames,
17
+ LogoNames,
18
+ IconSizes,
19
+ IconRotationTypes,
20
+ } from "../Icons/IconTypes";
21
+ import Image from "../Image/Image";
22
+ import { ImageRatios } from "../Image/ImageTypes";
23
+
24
+ import { getCategory } from "../../utils/componentCategories";
25
+ import DSProvider from "../../theme/provider";
26
+
27
+ <Meta
28
+ title={getCategory("SimpleGrid")}
29
+ component={SimpleGrid}
30
+ decorators={[withDesign]}
31
+ parameters={{
32
+ design: {
33
+ type: "figma",
34
+ url:
35
+ "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36835%3A26613",
36
+ },
37
+ jest: ["SimpleGrid.test.tsx"],
38
+ }}
39
+ argTypes={{
40
+ columns: {
41
+ control: {
42
+ type: "number",
43
+ min: 2,
44
+ },
45
+ table: {
46
+ defaultValue: {
47
+ summary: 3,
48
+ },
49
+ },
50
+ },
51
+ gap: {
52
+ table: {
53
+ defaultValue: {
54
+ summary: "l",
55
+ },
56
+ },
57
+ },
58
+ className: { table: { disable: true } },
59
+ id: { table: { disable: true } },
60
+ }}
61
+ />
62
+
63
+ # SimpleGrid
64
+
65
+ | Component Version | DS Version |
66
+ | ----------------- | ---------- |
67
+ | Added | `0.25.1` |
68
+ | Latest | `0.25.1` |
69
+
70
+ <Description of={SimpleGrid} />
71
+
72
+ The `SimpleGrid` component is used to render UI elements in a uniform grid layout, with the column widths and grid spacing fixed throughout the grid.
73
+
74
+ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for tablet and `1` for mobile. By default, the `SimpleGrid` component uses these standards and the `columns` prop is optional. If the `columns` prop is used, the tablet breakpoint will be dropped and only the mobile breakpoint (1 item per row) will be triggered.
75
+
76
+ <Canvas withToolbar>
77
+ <Story name="SimpleGrid Props">
78
+ {(args) => (
79
+ <SimpleGrid {...args}>
80
+ <Card
81
+ imageSrc="https://placeimg.com/400/220/animals"
82
+ imageAlt="Alt text"
83
+ imageAspectRatio={ImageRatios.TwoByOne}
84
+ >
85
+ <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
86
+ <CardContent>
87
+ Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
88
+ libero, a pharetra augue.
89
+ </CardContent>
90
+ </Card>
91
+ <Card
92
+ imageSrc="https://placeimg.com/400/220/animals"
93
+ imageAlt="Alt text"
94
+ imageAspectRatio={ImageRatios.TwoByOne}
95
+ >
96
+ <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
97
+ <CardContent>
98
+ Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
99
+ libero, a pharetra augue.
100
+ </CardContent>
101
+ </Card>
102
+ <Card
103
+ imageSrc="https://placeimg.com/400/240/animals"
104
+ imageAlt="Alt text"
105
+ imageAspectRatio={ImageRatios.TwoByOne}
106
+ >
107
+ <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
108
+ <CardContent>
109
+ Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
110
+ libero, a pharetra augue.
111
+ </CardContent>
112
+ </Card>
113
+ <Card
114
+ imageSrc="https://placeimg.com/400/260/animals"
115
+ imageAlt="Alt text"
116
+ imageAspectRatio={ImageRatios.TwoByOne}
117
+ >
118
+ <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
119
+ <CardContent>
120
+ Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
121
+ libero, a pharetra augue.
122
+ </CardContent>
123
+ </Card>
124
+ <Card
125
+ imageSrc="https://placeimg.com/400/320/animals"
126
+ imageAlt="Alt text"
127
+ imageAspectRatio={ImageRatios.TwoByOne}
128
+ >
129
+ <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
130
+ <CardContent>
131
+ Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
132
+ libero, a pharetra augue.
133
+ </CardContent>
134
+ </Card>
135
+ <Card
136
+ imageSrc="https://placeimg.com/400/300/animals"
137
+ imageAlt="Alt text"
138
+ imageAspectRatio={ImageRatios.TwoByOne}
139
+ >
140
+ <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
141
+ <CardContent>
142
+ Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
143
+ libero, a pharetra augue.
144
+ </CardContent>
145
+ </Card>
146
+ </SimpleGrid>
147
+ )}
148
+ </Story>
149
+ </Canvas>
150
+
151
+ <ArgsTable story="SimpleGrid Props" />
152
+
153
+ ## Other SimpleGrid Examples
154
+
155
+ ### Icons
156
+
157
+ This example is rendering `Icon` components with the `columns` prop set to `5`.
158
+
159
+ export const icons = [];
160
+ for (const icon in IconNames) {
161
+ const iname = `Example icon: ${IconNames[icon]}`;
162
+ const iconRender = (
163
+ <Icon
164
+ key={icon}
165
+ name={IconNames[icon]}
166
+ size={IconSizes.ExtraExtraExtraLarge}
167
+ titleText={iname}
168
+ />
169
+ );
170
+ icons.push(iconRender);
171
+ }
172
+
173
+ <Canvas>
174
+ <Story name="Other SimpleGrid Examples">
175
+ <SimpleGrid columns={5}>{icons}</SimpleGrid>
176
+ </Story>
177
+ </Canvas>
178
+
179
+ ### Images
180
+
181
+ This example is rendering square `Image` components with the `columns` prop set to `6`.
182
+
183
+ <Canvas>
184
+ <DSProvider>
185
+ <SimpleGrid columns={6}>
186
+ <Image src="https://placeimg.com/300/300/animals?x=1" alt="" />
187
+ <Image src="https://placeimg.com/300/300/animals?x=2" alt="" />
188
+ <Image src="https://placeimg.com/300/300/animals?x=3" alt="" />
189
+ <Image src="https://placeimg.com/300/300/animals?x=4" alt="" />
190
+ <Image src="https://placeimg.com/300/300/animals?x=5" alt="" />
191
+ <Image src="https://placeimg.com/300/300/animals?x=6" alt="" />
192
+ <Image src="https://placeimg.com/300/300/animals?x=7" alt="" />
193
+ <Image src="https://placeimg.com/300/300/animals?x=8" alt="" />
194
+ <Image src="https://placeimg.com/300/300/animals?x=9" alt="" />
195
+ <Image src="https://placeimg.com/300/300/animals?x=10" alt="" />
196
+ <Image src="https://placeimg.com/300/300/animals?x=11" alt="" />
197
+ <Image src="https://placeimg.com/300/300/animals?x=12" alt="" />
198
+ <Image src="https://placeimg.com/300/300/animals?x=13" alt="" />
199
+ <Image src="https://placeimg.com/300/300/animals?x=14" alt="" />
200
+ <Image src="https://placeimg.com/300/300/animals?x=15" alt="" />
201
+ <Image src="https://placeimg.com/300/300/animals?x=16" alt="" />
202
+ <Image src="https://placeimg.com/300/300/animals?x=17" alt="" />
203
+ <Image src="https://placeimg.com/300/300/animals?x=18" alt="" />
204
+ </SimpleGrid>
205
+ </DSProvider>
206
+ </Canvas>
207
+
208
+ ### Horizontal Cards
209
+
210
+ This example is rendering horizontal `Card` components with the `columns` prop set to `1`.
211
+
212
+ <Canvas>
213
+ <DSProvider>
214
+ <SimpleGrid columns={1}>
215
+ <Card
216
+ layout={CardLayouts.Row}
217
+ border
218
+ center
219
+ imageSrc="https://placeimg.com/400/200/animals"
220
+ imageAlt="Alt text"
221
+ imageAspectRatio={ImageRatios.FourByThree}
222
+ >
223
+ <CardHeading level={HeadingLevels.Four} id="heading1">
224
+ Card Heading
225
+ </CardHeading>
226
+ <CardContent>
227
+ Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
228
+ Sed posuere consectetur est at lobortis. Cras justo odio, dapibus ac
229
+ facilisis in, egestas eget quam.
230
+ </CardContent>
231
+ </Card>
232
+ <Card
233
+ layout={CardLayouts.Row}
234
+ border
235
+ center
236
+ imageSrc="https://placeimg.com/410/210/animals"
237
+ imageAlt="Alt text"
238
+ imageAspectRatio={ImageRatios.FourByThree}
239
+ >
240
+ <CardHeading level={HeadingLevels.Four} id="heading2">
241
+ Card Heading
242
+ </CardHeading>
243
+ <CardContent>
244
+ Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
245
+ Sed posuere consectetur est at lobortis. Cras justo odio, dapibus ac
246
+ facilisis in, egestas eget quam.
247
+ </CardContent>
248
+ </Card>
249
+ <Card
250
+ layout={CardLayouts.Row}
251
+ border
252
+ center
253
+ imageSrc="https://placeimg.com/320/320/animals"
254
+ imageAlt="Alt text"
255
+ imageAspectRatio={ImageRatios.FourByThree}
256
+ >
257
+ <CardHeading level={HeadingLevels.Four} id="heading3">
258
+ Card Heading
259
+ </CardHeading>
260
+ <CardContent>
261
+ Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
262
+ Sed posuere consectetur est at lobortis. Cras justo odio, dapibus ac
263
+ facilisis in, egestas eget quam.
264
+ </CardContent>
265
+ </Card>
266
+ </SimpleGrid>
267
+ </DSProvider>
268
+ </Canvas>
@@ -0,0 +1,66 @@
1
+ import * as React from "react";
2
+ import { render } from "@testing-library/react";
3
+ import { axe } from "jest-axe";
4
+ import renderer from "react-test-renderer";
5
+
6
+ import SimpleGrid from "./SimpleGrid";
7
+ import Card, { CardHeading, CardContent } from "../Card/Card";
8
+ import { ImageRatios } from "../Image/ImageTypes";
9
+ import { HeadingLevels } from "../Heading/HeadingTypes";
10
+
11
+ describe("Grid Accessibility", () => {
12
+ it("passes axe accessibility test with children components", async () => {
13
+ const { container } = render(
14
+ <SimpleGrid>
15
+ <Card
16
+ imageSrc="https://placeimg.com/500/200/animals"
17
+ imageAlt="Alt text"
18
+ imageAspectRatio={ImageRatios.TwoByOne}
19
+ >
20
+ <CardHeading level={HeadingLevels.Two}>Card Heading</CardHeading>
21
+ <CardContent>
22
+ Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
23
+ libero, a pharetra augue.
24
+ </CardContent>
25
+ </Card>
26
+ <Card
27
+ imageSrc="https://placeimg.com/400/220/animals"
28
+ imageAlt="Alt text"
29
+ imageAspectRatio={ImageRatios.TwoByOne}
30
+ >
31
+ <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
32
+ <CardContent>
33
+ Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
34
+ libero, a pharetra augue.
35
+ </CardContent>
36
+ </Card>
37
+ <Card
38
+ imageSrc="https://placeimg.com/400/240/animals"
39
+ imageAlt="Alt text"
40
+ imageAspectRatio={ImageRatios.TwoByOne}
41
+ >
42
+ <CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
43
+ <CardContent>
44
+ Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
45
+ libero, a pharetra augue.
46
+ </CardContent>
47
+ </Card>
48
+ </SimpleGrid>
49
+ );
50
+ expect(await axe(container)).toHaveNoViolations();
51
+ });
52
+ });
53
+
54
+ describe("SimpleGrid", () => {
55
+ it("Renders the SimpleGrid UI snapshot correctly", () => {
56
+ const tree = renderer.create(<SimpleGrid id="test-grid" />).toJSON();
57
+ expect(tree).toMatchSnapshot();
58
+ });
59
+
60
+ it("Renders SimpleGrid component", () => {
61
+ const utils = render(<SimpleGrid id="test-grid-render" />);
62
+ expect(
63
+ utils.container.querySelector("#test-grid-render")
64
+ ).toBeInTheDocument();
65
+ });
66
+ });
@@ -0,0 +1,37 @@
1
+ import * as React from "react";
2
+ import { SimpleGrid as ChakraSimpleGrid } from "@chakra-ui/react";
3
+ import { GridGaps } from "./GridTypes";
4
+
5
+ import generateUUID from "../../helpers/generateUUID";
6
+
7
+ export interface SimpleGridProps {
8
+ /** Additional class name. */
9
+ className?: string;
10
+ /** Optional numeric value to override the default column count; the default column count is 3 */
11
+ columns?: number;
12
+ /** Optional gap size; if omitted, the default `large` (2rem / 32px) spacing will be used; ```IMPORTANT: for standard grid layouts, this prop should not be used``` */
13
+ gap?: GridGaps;
14
+ /** ID that other components can cross reference for accessibility purposes */
15
+ id?: string;
16
+ }
17
+
18
+ function SimpleGrid(props: React.PropsWithChildren<SimpleGridProps>) {
19
+ const { children, columns, className, gap = GridGaps.Large, id } = props;
20
+
21
+ const responsiveCols = columns
22
+ ? { base: 1, md: columns }
23
+ : { base: 1, md: 2, lg: 3 };
24
+
25
+ return (
26
+ <ChakraSimpleGrid
27
+ columns={responsiveCols}
28
+ gap={gap}
29
+ id={id || generateUUID()}
30
+ className={className}
31
+ >
32
+ {children}
33
+ </ChakraSimpleGrid>
34
+ );
35
+ }
36
+
37
+ export default SimpleGrid;
@@ -0,0 +1,8 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`SimpleGrid Renders the SimpleGrid UI snapshot correctly 1`] = `
4
+ <div
5
+ className="css-1tep0ti"
6
+ id="test-grid"
7
+ />
8
+ `;
@@ -25,9 +25,9 @@ import { getCategory } from "../../utils/componentCategories";
25
25
  jest: ["Heading.test.tsx"],
26
26
  }}
27
27
  argTypes={{
28
- blockName: { table: { disable: true } },
28
+ additionalStyles: { table: { disable: true } },
29
29
  className: { table: { disable: true } },
30
- modifiers: { table: { disable: true } },
30
+ id: { table: { disable: true } },
31
31
  }}
32
32
  />
33
33
 
@@ -36,7 +36,7 @@ import { getCategory } from "../../utils/componentCategories";
36
36
  | Component Version | DS Version |
37
37
  | ----------------- | ---------- |
38
38
  | Added | `0.0.4` |
39
- | Latest | `0.25.0` |
39
+ | Latest | `0.25.2` |
40
40
 
41
41
  <Description of={Heading} />
42
42
 
@@ -10,8 +10,8 @@ import {
10
10
  import { HeadingDisplaySizes, HeadingLevels } from "./HeadingTypes";
11
11
 
12
12
  export interface HeadingProps {
13
- /** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
14
- blockName?: string;
13
+ /** Optionally pass in additional Chakra-based styles. */
14
+ additionalStyles?: { [key: string]: any };
15
15
  /** Optional className that appears in addition to `heading` */
16
16
  className?: string;
17
17
  /** Optional size used to override the default styles of the semantic HTML `<h>` elements */
@@ -20,8 +20,6 @@ export interface HeadingProps {
20
20
  id?: string;
21
21
  /** Optional number 1-6 used to create the `<h*>` tag; if prop is not passed, `Heading` will default to `<h2>` */
22
22
  level?: HeadingLevels;
23
- /** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
24
- modifiers?: string[];
25
23
  /** Inner text of the `<h*>` element */
26
24
  text?: string;
27
25
  /** Optional URL that header points to; when `url` prop is passed to `Heading`, a child `<a>` element is created and the heading text becomes an active link */
@@ -45,6 +43,7 @@ const getVariant = (displaySize) => variantMap[displaySize] || null;
45
43
 
46
44
  function Heading(props: React.PropsWithChildren<HeadingProps>) {
47
45
  const {
46
+ additionalStyles = {},
48
47
  className,
49
48
  displaySize,
50
49
  id,
@@ -53,9 +52,11 @@ function Heading(props: React.PropsWithChildren<HeadingProps>) {
53
52
  url,
54
53
  urlClass,
55
54
  } = props;
56
-
57
55
  const variant = displaySize ? getVariant(displaySize) : `h${level}`;
58
56
  const styles = useStyleConfig("Heading", { variant });
57
+ // Combine native base styles with any additional styles.
58
+ // This is used in the `Hero` and `Notification` components.
59
+ const finalStyles = { ...styles, ...additionalStyles };
59
60
  const asHeading: any = `h${level}`;
60
61
 
61
62
  if (level < 1 || level > 6) {
@@ -87,7 +88,12 @@ function Heading(props: React.PropsWithChildren<HeadingProps>) {
87
88
  );
88
89
 
89
90
  return (
90
- <ChakraHeading id={id} as={asHeading} sx={styles} className={className}>
91
+ <ChakraHeading
92
+ id={id}
93
+ as={asHeading}
94
+ sx={finalStyles}
95
+ className={className}
96
+ >
91
97
  {content}
92
98
  </ChakraHeading>
93
99
  );