@nypl/design-system-react-components 0.25.12 → 0.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/CHANGELOG.md +131 -1
  2. package/README.md +10 -10
  3. package/dist/components/Accordion/Accordion.d.ts +6 -4
  4. package/dist/components/Accordion/AccordionTypes.d.ts +5 -0
  5. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -4
  6. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -1
  7. package/dist/components/Button/Button.d.ts +2 -2
  8. package/dist/components/Card/Card.d.ts +22 -29
  9. package/dist/components/Checkbox/Checkbox.d.ts +3 -3
  10. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +9 -6
  11. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
  12. package/dist/components/DatePicker/DatePicker.d.ts +5 -6
  13. package/dist/components/Fieldset/Fieldset.d.ts +5 -6
  14. package/dist/components/Form/Form.d.ts +6 -6
  15. package/dist/components/Grid/GridTypes.d.ts +7 -7
  16. package/dist/components/Grid/SimpleGrid.d.ts +1 -1
  17. package/dist/components/Heading/Heading.d.ts +5 -5
  18. package/dist/components/Heading/HeadingTypes.d.ts +1 -1
  19. package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
  20. package/dist/components/Hero/Hero.d.ts +9 -5
  21. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
  22. package/dist/components/Icons/Icon.d.ts +2 -1
  23. package/dist/components/Icons/IconTypes.d.ts +1 -0
  24. package/dist/components/Image/Image.d.ts +27 -9
  25. package/dist/components/Image/ImageTypes.d.ts +4 -4
  26. package/dist/components/Label/Label.d.ts +7 -4
  27. package/dist/components/Link/Link.d.ts +1 -1
  28. package/dist/components/List/List.d.ts +11 -11
  29. package/dist/components/List/ListTypes.d.ts +1 -1
  30. package/dist/components/Logo/Logo.d.ts +2 -1
  31. package/dist/components/Logo/LogoSvgs.d.ts +2 -0
  32. package/dist/components/Logo/LogoTypes.d.ts +4 -2
  33. package/dist/components/Notification/Notification.d.ts +7 -7
  34. package/dist/components/Pagination/Pagination.d.ts +2 -2
  35. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
  36. package/dist/components/Radio/Radio.d.ts +5 -7
  37. package/dist/components/RadioGroup/RadioGroup.d.ts +16 -8
  38. package/dist/components/SearchBar/SearchBar.d.ts +4 -4
  39. package/dist/components/Select/Select.d.ts +12 -8
  40. package/dist/components/Select/SelectTypes.d.ts +4 -0
  41. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -6
  42. package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +0 -4
  43. package/dist/components/Slider/Slider.d.ts +6 -4
  44. package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
  45. package/dist/components/StructuredContent/StructuredContent.d.ts +10 -23
  46. package/dist/components/Table/Table.d.ts +1 -1
  47. package/dist/components/Tabs/Tabs.d.ts +7 -6
  48. package/dist/components/Template/Template.d.ts +17 -8
  49. package/dist/components/Text/Text.d.ts +4 -4
  50. package/dist/components/Text/TextTypes.d.ts +1 -1
  51. package/dist/components/TextInput/TextInput.d.ts +7 -7
  52. package/dist/components/Toggle/Toggle.d.ts +8 -10
  53. package/dist/components/Toggle/{ToggleSizes.d.ts → ToggleTypes.d.ts} +1 -1
  54. package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
  55. package/dist/design-system-react-components.cjs.development.js +2075 -1468
  56. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  57. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  58. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  59. package/dist/design-system-react-components.esm.js +2086 -1483
  60. package/dist/design-system-react-components.esm.js.map +1 -1
  61. package/dist/helpers/enums.d.ts +4 -0
  62. package/dist/hooks/useCarouselStyles.d.ts +3 -2
  63. package/dist/hooks/useNYPLTheme.d.ts +12 -0
  64. package/dist/index.d.ts +11 -9
  65. package/dist/styles.css +1 -1
  66. package/dist/theme/components/accordion.d.ts +7 -12
  67. package/dist/theme/components/breadcrumb.d.ts +3 -0
  68. package/dist/theme/components/button.d.ts +10 -2
  69. package/dist/theme/components/card.d.ts +44 -24
  70. package/dist/theme/components/checkbox.d.ts +6 -4
  71. package/dist/theme/components/checkboxGroup.d.ts +4 -2
  72. package/dist/theme/components/componentWrapper.d.ts +2 -2
  73. package/dist/theme/components/customTable.d.ts +84 -1
  74. package/dist/theme/components/fieldset.d.ts +4 -14
  75. package/dist/theme/components/global.d.ts +25 -18
  76. package/dist/theme/components/heading.d.ts +53 -0
  77. package/dist/theme/components/helperErrorText.d.ts +1 -0
  78. package/dist/theme/components/hero.d.ts +21 -15
  79. package/dist/theme/components/image.d.ts +1 -1
  80. package/dist/theme/components/label.d.ts +9 -10
  81. package/dist/theme/components/list.d.ts +99 -9
  82. package/dist/theme/components/notification.d.ts +4 -4
  83. package/dist/theme/components/pagination.d.ts +2 -5
  84. package/dist/theme/components/radio.d.ts +7 -4
  85. package/dist/theme/components/radioGroup.d.ts +4 -2
  86. package/dist/theme/components/select.d.ts +37 -5
  87. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  88. package/dist/theme/components/slider.d.ts +6 -3
  89. package/dist/theme/components/structuredContent.d.ts +197 -0
  90. package/dist/theme/components/textInput.d.ts +18 -6
  91. package/dist/theme/components/toggle.d.ts +20 -5
  92. package/dist/theme/foundations/global.d.ts +2 -0
  93. package/dist/theme/foundations/radii.d.ts +1 -0
  94. package/dist/theme/foundations/spacing.d.ts +46 -43
  95. package/package.json +5 -6
  96. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +34 -0
  97. package/src/components/Accordion/Accordion.stories.mdx +150 -66
  98. package/src/components/Accordion/Accordion.test.tsx +65 -17
  99. package/src/components/Accordion/Accordion.tsx +61 -27
  100. package/src/components/Accordion/AccordionTypes.tsx +5 -0
  101. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +505 -14
  102. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  103. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +37 -19
  104. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +57 -36
  105. package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
  106. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -1
  107. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +211 -12
  108. package/src/components/Button/Button.stories.mdx +87 -23
  109. package/src/components/Button/Button.test.tsx +25 -0
  110. package/src/components/Button/Button.tsx +18 -7
  111. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  112. package/src/components/Card/Card.stories.mdx +493 -329
  113. package/src/components/Card/Card.test.tsx +138 -18
  114. package/src/components/Card/Card.tsx +151 -85
  115. package/src/components/Card/__snapshots__/Card.test.tsx.snap +221 -101
  116. package/src/components/Chakra/Center.stories.mdx +2 -2
  117. package/src/components/Chakra/Grid.stories.mdx +4 -4
  118. package/src/components/Checkbox/Checkbox.stories.mdx +73 -9
  119. package/src/components/Checkbox/Checkbox.test.tsx +89 -10
  120. package/src/components/Checkbox/Checkbox.tsx +26 -16
  121. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +209 -6
  122. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +135 -23
  123. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +216 -90
  124. package/src/components/CheckboxGroup/CheckboxGroup.tsx +39 -26
  125. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +493 -89
  126. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  127. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  128. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  129. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  130. package/src/components/DatePicker/DatePicker.test.tsx +94 -15
  131. package/src/components/DatePicker/DatePicker.tsx +67 -58
  132. package/src/components/DatePicker/_DatePicker.scss +71 -13
  133. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  134. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  135. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  136. package/src/components/Fieldset/Fieldset.tsx +35 -30
  137. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  138. package/src/components/Form/Form.stories.mdx +118 -47
  139. package/src/components/Form/Form.test.tsx +59 -16
  140. package/src/components/Form/Form.tsx +89 -65
  141. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  142. package/src/components/Grid/GridTypes.tsx +7 -7
  143. package/src/components/Grid/SimpleGrid.stories.mdx +87 -41
  144. package/src/components/Grid/SimpleGrid.test.tsx +24 -9
  145. package/src/components/Grid/SimpleGrid.tsx +29 -20
  146. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  147. package/src/components/Heading/Heading.stories.mdx +56 -25
  148. package/src/components/Heading/Heading.test.tsx +17 -7
  149. package/src/components/Heading/Heading.tsx +60 -58
  150. package/src/components/Heading/HeadingTypes.tsx +1 -1
  151. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +27 -8
  152. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  153. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  154. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  155. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  156. package/src/components/Hero/Hero.stories.mdx +143 -113
  157. package/src/components/Hero/Hero.test.tsx +146 -58
  158. package/src/components/Hero/Hero.tsx +144 -112
  159. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  160. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  161. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -17
  162. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -25
  163. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  164. package/src/components/Icons/Icon.stories.mdx +80 -23
  165. package/src/components/Icons/Icon.test.tsx +51 -2
  166. package/src/components/Icons/Icon.tsx +93 -71
  167. package/src/components/Icons/IconTypes.tsx +1 -0
  168. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  169. package/src/components/Image/Image.stories.mdx +160 -71
  170. package/src/components/Image/Image.test.tsx +40 -48
  171. package/src/components/Image/Image.tsx +80 -48
  172. package/src/components/Image/ImageTypes.ts +4 -4
  173. package/src/components/Image/__snapshots__/Image.test.tsx.snap +84 -21
  174. package/src/components/Label/Label.stories.mdx +42 -20
  175. package/src/components/Label/Label.test.tsx +42 -17
  176. package/src/components/Label/Label.tsx +22 -13
  177. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  178. package/src/components/Link/Link.stories.mdx +25 -1
  179. package/src/components/Link/Link.test.tsx +21 -0
  180. package/src/components/Link/Link.tsx +16 -9
  181. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  182. package/src/components/List/List.stories.mdx +75 -40
  183. package/src/components/List/List.test.tsx +73 -22
  184. package/src/components/List/List.tsx +44 -28
  185. package/src/components/List/ListTypes.tsx +1 -1
  186. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  187. package/src/components/Logo/Logo.stories.mdx +40 -16
  188. package/src/components/Logo/Logo.test.tsx +29 -2
  189. package/src/components/Logo/Logo.tsx +28 -11
  190. package/src/components/Logo/LogoSvgs.tsx +4 -0
  191. package/src/components/Logo/LogoTypes.tsx +3 -1
  192. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  193. package/src/components/Modal/Modal.stories.mdx +13 -0
  194. package/src/components/Notification/Notification.stories.mdx +29 -5
  195. package/src/components/Notification/Notification.test.tsx +23 -0
  196. package/src/components/Notification/Notification.tsx +53 -51
  197. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
  198. package/src/components/Pagination/Pagination.stories.mdx +27 -6
  199. package/src/components/Pagination/Pagination.test.tsx +55 -2
  200. package/src/components/Pagination/Pagination.tsx +12 -9
  201. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +244 -27
  202. package/src/components/Placeholder/Placeholder.tsx +3 -1
  203. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  204. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +87 -13
  205. package/src/components/ProgressIndicator/ProgressIndicator.tsx +20 -10
  206. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  207. package/src/components/Radio/Radio.stories.mdx +75 -11
  208. package/src/components/Radio/Radio.test.tsx +83 -9
  209. package/src/components/Radio/Radio.tsx +70 -62
  210. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +163 -5
  211. package/src/components/RadioGroup/RadioGroup.stories.mdx +293 -94
  212. package/src/components/RadioGroup/RadioGroup.test.tsx +193 -68
  213. package/src/components/RadioGroup/RadioGroup.tsx +110 -101
  214. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1258 -902
  215. package/src/components/SearchBar/SearchBar.stories.mdx +101 -36
  216. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +46 -4
  217. package/src/components/SearchBar/SearchBar.tsx +20 -11
  218. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  219. package/src/components/Select/Select.stories.mdx +151 -62
  220. package/src/components/Select/Select.test.tsx +56 -44
  221. package/src/components/Select/Select.tsx +125 -104
  222. package/src/components/Select/SelectTypes.tsx +5 -0
  223. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  224. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +53 -23
  225. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +14 -8
  226. package/src/components/SkeletonLoader/SkeletonLoader.tsx +80 -78
  227. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +0 -5
  228. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  229. package/src/components/Slider/Slider.stories.mdx +123 -41
  230. package/src/components/Slider/Slider.test.tsx +65 -17
  231. package/src/components/Slider/Slider.tsx +30 -23
  232. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  233. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  234. package/src/components/StatusBadge/StatusBadge.test.tsx +19 -1
  235. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  236. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  237. package/src/components/StructuredContent/StructuredContent.stories.mdx +229 -61
  238. package/src/components/StructuredContent/StructuredContent.test.tsx +162 -101
  239. package/src/components/StructuredContent/StructuredContent.tsx +98 -103
  240. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  241. package/src/components/StyleGuide/Bidirectionality.stories.mdx +5 -5
  242. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  243. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  244. package/src/components/StyleGuide/ColorCard.tsx +4 -4
  245. package/src/components/StyleGuide/Colors.stories.mdx +1 -2
  246. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  247. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  248. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  249. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  250. package/src/components/StyleGuide/Typography.stories.mdx +47 -33
  251. package/src/components/Table/Table.stories.mdx +38 -11
  252. package/src/components/Table/Table.test.tsx +16 -1
  253. package/src/components/Table/Table.tsx +10 -8
  254. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  255. package/src/components/Tabs/Tabs.stories.mdx +59 -10
  256. package/src/components/Tabs/Tabs.test.tsx +29 -11
  257. package/src/components/Tabs/Tabs.tsx +28 -21
  258. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  259. package/src/components/Template/Template.stories.mdx +73 -32
  260. package/src/components/Template/Template.test.tsx +68 -5
  261. package/src/components/Template/Template.tsx +89 -71
  262. package/src/components/Template/__snapshots__/Template.test.tsx.snap +195 -22
  263. package/src/components/Text/Text.stories.mdx +32 -15
  264. package/src/components/Text/Text.test.tsx +14 -11
  265. package/src/components/Text/Text.tsx +13 -16
  266. package/src/components/Text/TextTypes.tsx +1 -1
  267. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  268. package/src/components/TextInput/TextInput.stories.mdx +73 -27
  269. package/src/components/TextInput/TextInput.test.tsx +65 -50
  270. package/src/components/TextInput/TextInput.tsx +123 -115
  271. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  272. package/src/components/Toggle/Toggle.stories.mdx +74 -26
  273. package/src/components/Toggle/Toggle.test.tsx +41 -10
  274. package/src/components/Toggle/Toggle.tsx +29 -26
  275. package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
  276. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +191 -4
  277. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  278. package/src/components/VideoPlayer/VideoPlayer.test.tsx +41 -6
  279. package/src/components/VideoPlayer/VideoPlayer.tsx +134 -120
  280. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  281. package/src/docs/Chakra.stories.mdx +50 -9
  282. package/src/docs/Welcome.stories.mdx +168 -0
  283. package/src/{components/Card/CardTypes.tsx → helpers/enums.ts} +2 -2
  284. package/src/hooks/tests/useNYPLTheme.test.tsx +1 -1
  285. package/src/hooks/useCarouselStyles.stories.mdx +30 -0
  286. package/src/hooks/useCarouselStyles.ts +3 -2
  287. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  288. package/src/hooks/useNYPLTheme.ts +31 -7
  289. package/src/hooks/useWindowSize.stories.mdx +23 -0
  290. package/src/index.ts +11 -15
  291. package/src/styles/base/_place-holder.scss +1 -1
  292. package/src/theme/components/accordion.ts +7 -12
  293. package/src/theme/components/breadcrumb.ts +3 -0
  294. package/src/theme/components/button.ts +15 -7
  295. package/src/theme/components/card.ts +56 -36
  296. package/src/theme/components/checkbox.ts +10 -8
  297. package/src/theme/components/checkboxGroup.ts +4 -2
  298. package/src/theme/components/componentWrapper.ts +2 -2
  299. package/src/theme/components/customTable.ts +39 -31
  300. package/src/theme/components/fieldset.ts +1 -2
  301. package/src/theme/components/global.ts +29 -23
  302. package/src/theme/components/heading.ts +1 -1
  303. package/src/theme/components/helperErrorText.ts +1 -0
  304. package/src/theme/components/hero.ts +14 -16
  305. package/src/theme/components/icon.ts +5 -2
  306. package/src/theme/components/image.ts +1 -1
  307. package/src/theme/components/label.ts +4 -3
  308. package/src/theme/components/list.ts +73 -66
  309. package/src/theme/components/notification.ts +7 -7
  310. package/src/theme/components/pagination.ts +2 -5
  311. package/src/theme/components/progressIndicator.ts +3 -3
  312. package/src/theme/components/radio.ts +9 -9
  313. package/src/theme/components/radioGroup.ts +4 -2
  314. package/src/theme/components/select.ts +35 -16
  315. package/src/theme/components/skeletonLoader.ts +3 -3
  316. package/src/theme/components/slider.ts +8 -7
  317. package/src/theme/components/statusBadge.ts +2 -2
  318. package/src/theme/components/structuredContent.ts +66 -1
  319. package/src/theme/components/tabs.ts +2 -2
  320. package/src/theme/components/template.ts +9 -9
  321. package/src/theme/components/textInput.ts +13 -12
  322. package/src/theme/components/toggle.ts +43 -13
  323. package/src/theme/components/videoPlayer.ts +1 -1
  324. package/src/theme/foundations/colors.ts +1 -1
  325. package/src/theme/foundations/radii.ts +1 -0
  326. package/src/theme/foundations/spacing.ts +70 -22
  327. package/src/theme/foundations/typography.ts +2 -2
  328. package/src/utils/componentCategories.ts +28 -21
  329. package/dist/components/Card/CardTypes.d.ts +0 -4
  330. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
  331. package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +0 -4
  332. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  333. package/dist/helpers/generateUUID.d.ts +0 -1
  334. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +0 -4
  335. package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
  336. package/src/docs/Intro.stories.mdx +0 -53
  337. package/src/helpers/generateUUID.tsx +0 -5
@@ -1,7 +1,8 @@
1
+ import { Box, chakra, useMultiStyleConfig } from "@chakra-ui/react";
1
2
  import * as React from "react";
2
- import { Box, useMultiStyleConfig } from "@chakra-ui/react";
3
3
 
4
4
  import { HeroTypes, HeroSecondaryTypes } from "./HeroTypes";
5
+ import Image from "../Image/Image";
5
6
 
6
7
  export interface HeroProps {
7
8
  /** Optional hex color value used to override the default background
@@ -20,11 +21,14 @@ export interface HeroProps {
20
21
  heading?: JSX.Element;
21
22
  /** Used to control how the `Hero` component will be rendered. */
22
23
  heroType?: HeroTypes;
23
- /** Optional `Image` component used for SECONDARY, FIFTYFIFTY and CAMPAIGN
24
- * `Hero` types; Note: `image` can only be used in conjunction with
25
- * `backgroundImageSrc` for CAMPAIGN the `Hero` type.
24
+ /** Text description of the image; to follow best practices for accessibility,
25
+ * this prop should not be left blank if `imageSrc` is passed. */
26
+ imageAlt?: string;
27
+ /** Optional `imageSrc` used for SECONDARY, FIFTYFIFTY and CAMPAIGN
28
+ * `Hero` types; Note: `imageSrc` can only be used in conjunction with
29
+ * `backgroundImageSrc` for the CAMPAIGN `Hero` type.
26
30
  * Note: not all `Hero` variations utilize this prop. */
27
- image?: JSX.Element;
31
+ imageSrc?: string;
28
32
  /** Optional details area that contains location data.
29
33
  * Note: not all `Hero` variations utilize this prop. */
30
34
  locationDetails?: JSX.Element;
@@ -45,125 +49,153 @@ for (const type in HeroTypes) {
45
49
  */
46
50
  const getVariant = (type) => variantMap[type] || HeroTypes.Primary;
47
51
 
48
- export default function Hero(props: React.PropsWithChildren<HeroProps>) {
49
- const {
50
- backgroundColor,
51
- backgroundImageSrc,
52
- foregroundColor,
53
- heading,
54
- heroType,
55
- image,
56
- locationDetails,
57
- subHeaderText,
58
- } = props;
59
- const variant = getVariant(heroType);
60
- const styles = useMultiStyleConfig("Hero", { variant });
61
- const headingStyles = styles.heading;
62
- // We want to add `Hero`-specific styling to the `Heading` component.
63
- const finalHeading =
64
- heading && React.cloneElement(heading, { additionalStyles: headingStyles });
65
- let backgroundImageStyle = {};
66
- let contentBoxStyling = {};
52
+ export const Hero = chakra(
53
+ (props: React.PropsWithChildren<HeroProps>) => {
54
+ const {
55
+ backgroundColor,
56
+ backgroundImageSrc,
57
+ foregroundColor,
58
+ heading,
59
+ heroType,
60
+ imageAlt,
61
+ imageSrc,
62
+ locationDetails,
63
+ subHeaderText,
64
+ ...rest
65
+ } = props;
66
+ const variant = getVariant(heroType);
67
+ const styles = useMultiStyleConfig("Hero", { variant });
68
+ const headingStyles = styles.heading;
69
+ // We want to add `Hero`-specific styling to the `Heading` component.
70
+ const finalHeading =
71
+ heading &&
72
+ React.cloneElement(heading, { additionalStyles: headingStyles });
73
+ let backgroundImageStyle = {};
74
+ let contentBoxStyling = {};
67
75
 
68
- if (heroType === HeroTypes.Primary) {
69
- if (!backgroundImageSrc) {
76
+ if (imageSrc && !imageAlt) {
70
77
  console.warn(
71
- `Warning: it is recommended to use the "backgroundImageSrc" prop for PRIMARY hero.`
78
+ `NYPL Reservoir: The "imageSrc" prop was passed but the "imageAlt" props was not. This will make the rendered image inaccessible.`
72
79
  );
73
80
  }
74
- if (image) {
81
+
82
+ if (heroType === HeroTypes.Primary) {
83
+ if (!backgroundImageSrc) {
84
+ console.warn(
85
+ "NYPL Reservoir Hero: It is recommended to use the `backgroundImageSrc` " +
86
+ "prop for the `HeroTypes.Primary` `heroType` variant."
87
+ );
88
+ }
89
+ if (imageAlt && imageSrc) {
90
+ console.warn(
91
+ "NYPL Reservoir Hero: The `imageSrc` and `imageAlt` props have been " +
92
+ "passed, but the `HeroTypes.Primary` `heroType` variant will not use it."
93
+ );
94
+ }
95
+ } else if (locationDetails) {
75
96
  console.warn(
76
- `Warning: the "image" prop has been passed, but PRIMARY hero will not use it.`
97
+ "NYPL Reservoir Hero: The `locationDetails` prop should only be used " +
98
+ "with the `HeroTypes.Primary` `heroType` variant."
99
+ );
100
+ }
101
+ if (HeroSecondaryTypes.includes(heroType) && backgroundImageSrc) {
102
+ console.warn(
103
+ "NYPL Reservoir Hero: The `backgroundImageSrc` prop has been passed, " +
104
+ "but the `HeroTypes.Secondary` `heroType` variant will not use it."
105
+ );
106
+ }
107
+ if (heroType === HeroTypes.Tertiary && (backgroundImageSrc || imageSrc)) {
108
+ console.warn(
109
+ "NYPL Reservoir Hero: The `HeroTypes.Tertiary` `heroType` variant hero " +
110
+ "will not use any of the image props."
111
+ );
112
+ }
113
+ if (heroType === HeroTypes.Campaign && (!backgroundImageSrc || !imageSrc)) {
114
+ console.warn(
115
+ "NYPL Reservoir Hero: It is recommended to use both the " +
116
+ "`backgroundImageSrc` and `imageSrc` props for the " +
117
+ "`HeroTypes.Campaign` `heroType` variant."
118
+ );
119
+ }
120
+ if (heroType === HeroTypes.FiftyFifty && backgroundImageSrc) {
121
+ console.warn(
122
+ "NYPL Reservoir Hero: The `backgroundImageSrc` prop has been passed, " +
123
+ "but the `HeroTypes.FiftyFifty` `heroType` variant hero will not use it."
77
124
  );
78
125
  }
79
- } else if (locationDetails) {
80
- console.warn(
81
- `Warning: Please provide "locationDetails" only to PRIMARY hero.`
82
- );
83
- }
84
- if (HeroSecondaryTypes.includes(heroType) && backgroundImageSrc) {
85
- console.warn(
86
- `Warning: the "backgroundImageSrc" prop has been passed, but SECONDARY hero will not use it.`
87
- );
88
- }
89
- if (heroType === HeroTypes.Tertiary && (backgroundImageSrc || image)) {
90
- console.warn(`Warning: TERTIARY hero will not use any of the image props.`);
91
- }
92
- if (heroType === HeroTypes.Campaign && (!backgroundImageSrc || !image)) {
93
- console.warn(
94
- `Warning: it is recommended to use both "backgroundImageSrc" and "image" props for CAMPAIGN hero.`
95
- );
96
- }
97
- if (heroType === HeroTypes.FiftyFifty && backgroundImageSrc) {
98
- console.warn(
99
- `Warning: the "backgroundImageSrc" prop has been passed, but FIFTYFIFTY hero will not use it.`
100
- );
101
- }
102
126
 
103
- if (heroType === HeroTypes.Primary) {
104
- backgroundImageStyle = backgroundImageSrc
105
- ? { backgroundImage: `url(${backgroundImageSrc})` }
106
- : {};
107
- } else if (heroType === HeroTypes.Campaign) {
108
- backgroundImageStyle = backgroundImageSrc
109
- ? { backgroundImage: `url(${backgroundImageSrc})` }
110
- : { backgroundColor };
111
- } else if (
112
- heroType === HeroTypes.Tertiary ||
113
- heroType === HeroTypes.FiftyFifty
114
- ) {
115
- backgroundImageStyle = { backgroundColor };
116
- }
127
+ if (heroType === HeroTypes.Primary) {
128
+ backgroundImageStyle = backgroundImageSrc
129
+ ? { backgroundImage: `url(${backgroundImageSrc})` }
130
+ : {};
131
+ } else if (heroType === HeroTypes.Campaign) {
132
+ backgroundImageStyle = backgroundImageSrc
133
+ ? { backgroundImage: `url(${backgroundImageSrc})` }
134
+ : { backgroundColor };
135
+ } else if (
136
+ heroType === HeroTypes.Tertiary ||
137
+ heroType === HeroTypes.FiftyFifty
138
+ ) {
139
+ backgroundImageStyle = { backgroundColor };
140
+ }
117
141
 
118
- if (!HeroSecondaryTypes.includes(heroType)) {
119
- contentBoxStyling = {
120
- color: foregroundColor,
121
- backgroundColor,
122
- };
123
- } else if (foregroundColor || backgroundColor) {
124
- console.warn(
125
- `Warning: the "foregroundColor" and/or "backgroundColor" props have been passed, but SECONDARY Hero will not use them.`
126
- );
127
- }
142
+ if (!HeroSecondaryTypes.includes(heroType)) {
143
+ contentBoxStyling = {
144
+ color: foregroundColor,
145
+ backgroundColor,
146
+ };
147
+ } else if (foregroundColor || backgroundColor) {
148
+ console.warn(
149
+ "NYPL Reservoir Hero: The `foregroundColor` and/or `backgroundColor` " +
150
+ "props have been passed, but the `HeroTypes.Secondary` `heroType` " +
151
+ "variant will not use them."
152
+ );
153
+ }
128
154
 
129
- const childrenToRender =
130
- heroType === HeroTypes.Campaign ? (
131
- <>
132
- {image}
133
- <Box __css={styles.interior}>
155
+ const childrenToRender =
156
+ heroType === HeroTypes.Campaign ? (
157
+ <>
158
+ <Image alt={imageAlt} src={imageSrc} />
159
+ <Box __css={styles.interior}>
160
+ {finalHeading}
161
+ {subHeaderText}
162
+ </Box>
163
+ </>
164
+ ) : (
165
+ <>
166
+ {heroType !== HeroTypes.Primary &&
167
+ heroType !== HeroTypes.Tertiary && (
168
+ <Image alt={imageAlt} src={imageSrc} />
169
+ )}
134
170
  {finalHeading}
135
- {subHeaderText}
136
- </Box>
137
- </>
138
- ) : (
139
- <>
140
- {heroType !== HeroTypes.Primary &&
141
- heroType !== HeroTypes.Tertiary &&
142
- image}
143
- {finalHeading}
144
- {heroType === HeroTypes.Tertiary && subHeaderText ? (
145
- <p>{subHeaderText}</p>
146
- ) : (
147
- <Box __css={styles.bodyText}>{subHeaderText}</Box>
148
- )}
149
- </>
150
- );
171
+ {heroType === HeroTypes.Tertiary && subHeaderText ? (
172
+ <p>{subHeaderText}</p>
173
+ ) : (
174
+ <Box __css={styles.bodyText}>{subHeaderText}</Box>
175
+ )}
176
+ </>
177
+ );
151
178
 
152
- return (
153
- <Box
154
- data-testid="hero"
155
- data-responsive-background-image
156
- style={backgroundImageStyle}
157
- __css={styles}
158
- >
179
+ return (
159
180
  <Box
160
- data-testid="hero-content"
161
- style={contentBoxStyling}
162
- __css={styles.content}
181
+ data-testid="hero"
182
+ data-responsive-background-image
183
+ style={backgroundImageStyle}
184
+ __css={styles}
185
+ {...rest}
163
186
  >
164
- {childrenToRender}
187
+ <Box
188
+ data-testid="hero-content"
189
+ style={contentBoxStyling}
190
+ __css={styles.content}
191
+ >
192
+ {childrenToRender}
193
+ </Box>
194
+ {locationDetails}
165
195
  </Box>
166
- {locationDetails}
167
- </Box>
168
- );
169
- }
196
+ );
197
+ },
198
+ { shouldForwardProp: () => true }
199
+ );
200
+
201
+ export default Hero;
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`Hero Renders the UI snapshot correctly 1`] = `
4
4
  <div
5
- className="css-0"
5
+ className="css-1xdhyk6"
6
6
  data-responsive-background-image={true}
7
7
  data-testid="hero"
8
8
  style={
@@ -22,7 +22,7 @@ exports[`Hero Renders the UI snapshot correctly 1`] = `
22
22
  }
23
23
  >
24
24
  <h1
25
- className="chakra-heading css-0"
25
+ className="chakra-heading css-1xdhyk6"
26
26
  id="primary-hero"
27
27
  >
28
28
  Hero Primary
@@ -38,7 +38,7 @@ exports[`Hero Renders the UI snapshot correctly 1`] = `
38
38
 
39
39
  exports[`Hero Renders the UI snapshot correctly 2`] = `
40
40
  <div
41
- className="css-0"
41
+ className="css-1xdhyk6"
42
42
  data-responsive-background-image={true}
43
43
  data-testid="hero"
44
44
  style={Object {}}
@@ -54,7 +54,7 @@ exports[`Hero Renders the UI snapshot correctly 2`] = `
54
54
  src="https://placeimg.com/800/400/animals"
55
55
  />
56
56
  <h1
57
- className="chakra-heading css-0"
57
+ className="chakra-heading css-1xdhyk6"
58
58
  id="secondary-hero"
59
59
  >
60
60
  Hero Secondary
@@ -70,7 +70,7 @@ exports[`Hero Renders the UI snapshot correctly 2`] = `
70
70
 
71
71
  exports[`Hero Renders the UI snapshot correctly 3`] = `
72
72
  <div
73
- className="css-0"
73
+ className="css-1xdhyk6"
74
74
  data-responsive-background-image={true}
75
75
  data-testid="hero"
76
76
  style={Object {}}
@@ -86,7 +86,7 @@ exports[`Hero Renders the UI snapshot correctly 3`] = `
86
86
  src="https://placeimg.com/800/400/animals"
87
87
  />
88
88
  <h1
89
- className="chakra-heading css-0"
89
+ className="chakra-heading css-1xdhyk6"
90
90
  id="secondary-hero"
91
91
  >
92
92
  Hero Secondary Books and More
@@ -102,7 +102,7 @@ exports[`Hero Renders the UI snapshot correctly 3`] = `
102
102
 
103
103
  exports[`Hero Renders the UI snapshot correctly 4`] = `
104
104
  <div
105
- className="css-0"
105
+ className="css-1xdhyk6"
106
106
  data-responsive-background-image={true}
107
107
  data-testid="hero"
108
108
  style={Object {}}
@@ -118,7 +118,7 @@ exports[`Hero Renders the UI snapshot correctly 4`] = `
118
118
  src="https://placeimg.com/800/400/animals"
119
119
  />
120
120
  <h1
121
- className="chakra-heading css-0"
121
+ className="chakra-heading css-1xdhyk6"
122
122
  id="secondary-hero"
123
123
  >
124
124
  Hero Secondary Locations
@@ -134,7 +134,7 @@ exports[`Hero Renders the UI snapshot correctly 4`] = `
134
134
 
135
135
  exports[`Hero Renders the UI snapshot correctly 5`] = `
136
136
  <div
137
- className="css-0"
137
+ className="css-1xdhyk6"
138
138
  data-responsive-background-image={true}
139
139
  data-testid="hero"
140
140
  style={Object {}}
@@ -150,7 +150,7 @@ exports[`Hero Renders the UI snapshot correctly 5`] = `
150
150
  src="https://placeimg.com/800/400/animals"
151
151
  />
152
152
  <h1
153
- className="chakra-heading css-0"
153
+ className="chakra-heading css-1xdhyk6"
154
154
  id="secondary-hero"
155
155
  >
156
156
  Hero Secondary
@@ -166,7 +166,7 @@ exports[`Hero Renders the UI snapshot correctly 5`] = `
166
166
 
167
167
  exports[`Hero Renders the UI snapshot correctly 6`] = `
168
168
  <div
169
- className="css-0"
169
+ className="css-1xdhyk6"
170
170
  data-responsive-background-image={true}
171
171
  data-testid="hero"
172
172
  style={Object {}}
@@ -182,7 +182,7 @@ exports[`Hero Renders the UI snapshot correctly 6`] = `
182
182
  src="https://placeimg.com/800/400/animals"
183
183
  />
184
184
  <h1
185
- className="chakra-heading css-0"
185
+ className="chakra-heading css-1xdhyk6"
186
186
  id="secondary-hero"
187
187
  >
188
188
  Hero Secondary What's On
@@ -198,7 +198,7 @@ exports[`Hero Renders the UI snapshot correctly 6`] = `
198
198
 
199
199
  exports[`Hero Renders the UI snapshot correctly 7`] = `
200
200
  <div
201
- className="css-0"
201
+ className="css-1xdhyk6"
202
202
  data-responsive-background-image={true}
203
203
  data-testid="hero"
204
204
  style={
@@ -218,7 +218,7 @@ exports[`Hero Renders the UI snapshot correctly 7`] = `
218
218
  }
219
219
  >
220
220
  <h1
221
- className="chakra-heading css-0"
221
+ className="chakra-heading css-1xdhyk6"
222
222
  id="tertiary-hero"
223
223
  >
224
224
  Hero Tertiary
@@ -232,7 +232,7 @@ exports[`Hero Renders the UI snapshot correctly 7`] = `
232
232
 
233
233
  exports[`Hero Renders the UI snapshot correctly 8`] = `
234
234
  <div
235
- className="css-0"
235
+ className="css-1xdhyk6"
236
236
  data-responsive-background-image={true}
237
237
  data-testid="hero"
238
238
  style={
@@ -260,7 +260,7 @@ exports[`Hero Renders the UI snapshot correctly 8`] = `
260
260
  className="css-0"
261
261
  >
262
262
  <h1
263
- className="chakra-heading css-0"
263
+ className="chakra-heading css-1xdhyk6"
264
264
  id="campaign-hero"
265
265
  >
266
266
  Hero Campaign
@@ -273,7 +273,7 @@ exports[`Hero Renders the UI snapshot correctly 8`] = `
273
273
 
274
274
  exports[`Hero Renders the UI snapshot correctly 9`] = `
275
275
  <div
276
- className="css-0"
276
+ className="css-1xdhyk6"
277
277
  data-responsive-background-image={true}
278
278
  data-testid="hero"
279
279
  style={
@@ -305,3 +305,75 @@ exports[`Hero Renders the UI snapshot correctly 9`] = `
305
305
  </div>
306
306
  </div>
307
307
  `;
308
+
309
+ exports[`Hero Renders the UI snapshot correctly 10`] = `
310
+ <div
311
+ className="css-16h1ce8"
312
+ data-responsive-background-image={true}
313
+ data-testid="hero"
314
+ style={
315
+ Object {
316
+ "backgroundImage": "url(https://placeimg.com/1600/800/arch)",
317
+ }
318
+ }
319
+ >
320
+ <div
321
+ className="css-0"
322
+ data-testid="hero-content"
323
+ style={
324
+ Object {
325
+ "backgroundColor": undefined,
326
+ "color": undefined,
327
+ }
328
+ }
329
+ >
330
+ <h1
331
+ className="chakra-heading css-1xdhyk6"
332
+ id="chakra"
333
+ >
334
+ Hero Primary
335
+ </h1>
336
+ <div
337
+ className="css-0"
338
+ >
339
+ Example Subtitle
340
+ </div>
341
+ </div>
342
+ </div>
343
+ `;
344
+
345
+ exports[`Hero Renders the UI snapshot correctly 11`] = `
346
+ <div
347
+ className="css-1xdhyk6"
348
+ data-responsive-background-image={true}
349
+ data-testid="props"
350
+ style={
351
+ Object {
352
+ "backgroundImage": "url(https://placeimg.com/1600/800/arch)",
353
+ }
354
+ }
355
+ >
356
+ <div
357
+ className="css-0"
358
+ data-testid="hero-content"
359
+ style={
360
+ Object {
361
+ "backgroundColor": undefined,
362
+ "color": undefined,
363
+ }
364
+ }
365
+ >
366
+ <h1
367
+ className="chakra-heading css-1xdhyk6"
368
+ id="props"
369
+ >
370
+ Hero Primary
371
+ </h1>
372
+ <div
373
+ className="css-0"
374
+ >
375
+ Example Subtitle
376
+ </div>
377
+ </div>
378
+ </div>
379
+ `;
@@ -25,8 +25,6 @@ import { getCategory } from "../../utils/componentCategories";
25
25
  }}
26
26
  argTypes={{
27
27
  className: { control: false },
28
- height: { table: { defaultValue: { summary: "2px" } } },
29
- width: { table: { defaultValue: { summary: "100%" } } },
30
28
  }}
31
29
  />
32
30
 
@@ -35,7 +33,15 @@ import { getCategory } from "../../utils/componentCategories";
35
33
  | Component Version | DS Version |
36
34
  | ----------------- | ---------- |
37
35
  | Added | `0.23.0` |
38
- | Latest | `0.25.10` |
36
+ | Latest | `0.26.0` |
37
+
38
+ ## Table of Contents
39
+
40
+ - [Overview](#overview)
41
+ - [Component Props](#component-props)
42
+ - [Accessibility](#accessibility)
43
+
44
+ ## Overview
39
45
 
40
46
  <Description of={HorizontalRule} />
41
47
 
@@ -44,8 +50,24 @@ The `HorizontalRule` component renders a basic `<hr>` element. The `height`,
44
50
  number, a `px` value, a `em` value, or a `rem` value. Otherwise, the default
45
51
  value of "2px" will be used.
46
52
 
53
+ ## Component Props
54
+
47
55
  <Canvas withToolbar>
48
- <Story name="HorizontalRule">{(args) => <HorizontalRule {...args} />}</Story>
56
+ <Story name="HorizontalRule" args={{ align: "left" }}>
57
+ {(args) => <HorizontalRule {...args} />}
58
+ </Story>
49
59
  </Canvas>
50
60
 
51
61
  <ArgsTable story="HorizontalRule" />
62
+
63
+ ## Accessibility
64
+
65
+ The `HorizontalRule` component is not just a visual thematic break between
66
+ content or interfaces, it is also picked up by screenreaders. Internally, the
67
+ `HorizontalRule` component uses the `<hr>` element which has a `role` of
68
+ `"separator"`.
69
+
70
+ Resources:
71
+
72
+ - [MDN hr: The Thematic Break (Horizontal Rule) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr)
73
+ - [Not Your Typical Horizontal Rules](https://www.sarasoueidan.com/blog/horizontal-rules/#)
@@ -24,23 +24,6 @@ describe("HorizontalRule", () => {
24
24
  expect(hrClass).toContain("custom-hr");
25
25
  });
26
26
 
27
- it("renders with proper custom class", () => {
28
- const warn = jest.spyOn(console, "warn");
29
- const { rerender } = render(
30
- <HorizontalRule className="custom-hr" height="20px" />
31
- );
32
- expect(warn).not.toHaveBeenCalledWith(
33
- "`HorizontalRule`: For the `height` prop, use a whole number, a `px` " +
34
- "value, a `em` value, or a `rem` value. Using the default of 2px."
35
- );
36
-
37
- rerender(<HorizontalRule className="custom-hr" height="20%" />);
38
- expect(warn).toHaveBeenCalledWith(
39
- "`HorizontalRule`: For the `height` prop, use a whole number, a `px` " +
40
- "value, a `em` value, or a `rem` value. Using the default of 2px."
41
- );
42
- });
43
-
44
27
  it("renders the UI snapshot correctly", () => {
45
28
  const basic = renderer.create(<HorizontalRule />).toJSON();
46
29
  const updatedHeight = renderer
@@ -53,10 +36,19 @@ describe("HorizontalRule", () => {
53
36
  const alignRight = renderer
54
37
  .create(<HorizontalRule align="right" />)
55
38
  .toJSON();
39
+ const withChakraProps = renderer
40
+ .create(<HorizontalRule p="20px" color="ui.error.primary" />)
41
+ .toJSON();
42
+ const withOtherProps = renderer
43
+ .create(<HorizontalRule data-testid="props" />)
44
+ .toJSON();
45
+
56
46
  expect(basic).toMatchSnapshot();
57
47
  expect(updatedHeight).toMatchSnapshot();
58
48
  expect(updatedWidth).toMatchSnapshot();
59
49
  expect(alignLeft).toMatchSnapshot();
60
50
  expect(alignRight).toMatchSnapshot();
51
+ expect(withChakraProps).toMatchSnapshot();
52
+ expect(withOtherProps).toMatchSnapshot();
61
53
  });
62
54
  });
@@ -1,5 +1,5 @@
1
1
  // HorizontalRule
2
- import { Box, useStyleConfig } from "@chakra-ui/react";
2
+ import { Box, chakra, useStyleConfig } from "@chakra-ui/react";
3
3
  import * as React from "react";
4
4
 
5
5
  export interface HorizontalRuleProps {
@@ -9,35 +9,19 @@ export interface HorizontalRuleProps {
9
9
  align?: "left" | "right";
10
10
  /** ClassName you can add in addition to `horizontal-rule` */
11
11
  className?: string;
12
- /** Optional height value. This value should be entered with the same
13
- * formatting as a CSS height attribute except for percent values (ex. `2`,
14
- * `5px`, `1.5rem`). If this prop is omitted or a percent value is used, the
15
- * horizontal rule will have a default height of 2px. */
16
- height?: string;
17
- /** Optional width value. This value should be entered with the same
18
- * formatting as a CSS width attribute (ex. `50%`, `640px`, `20rem`). If
19
- * omitted, the horizontal rule will have a default width of "100%". */
20
- width?: string;
21
12
  }
22
13
 
23
- export default function HorizontalRule(props: HorizontalRuleProps) {
24
- const { align, className, height = "2px", width = "100%" } = props;
14
+ export const HorizontalRule = chakra((props: HorizontalRuleProps) => {
15
+ const { align, className, ...rest } = props;
25
16
  const styles = useStyleConfig("HorizontalRule", { align });
26
- let finalHeight = height;
27
-
28
- if (height.endsWith("%")) {
29
- console.warn(
30
- "`HorizontalRule`: For the `height` prop, use a whole number, a `px`" +
31
- " value, a `em` value, or a `rem` value. Using the default of 2px."
32
- );
33
- finalHeight = "2px";
34
- }
35
17
 
36
18
  const finalStyles = {
37
19
  ...styles,
38
- height: finalHeight,
39
- width,
20
+ height: "2px",
21
+ width: "100%",
40
22
  };
41
23
 
42
- return <Box as="hr" className={className} __css={finalStyles} />;
43
- }
24
+ return <Box as="hr" className={className} __css={finalStyles} {...rest} />;
25
+ });
26
+
27
+ export default HorizontalRule;