@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,80 +1,87 @@
1
1
  import * as React from "react";
2
+ import { As, Box, useStyleConfig } from "@chakra-ui/react";
2
3
 
3
- import bem from "../../utils/bem";
4
4
  import { ListTypes } from "./ListTypes";
5
5
  import Heading from "../Heading/Heading";
6
6
  import { HeadingLevels } from "../Heading/HeadingTypes";
7
+ import generateUUID from "../../helpers/generateUUID";
7
8
 
8
9
  interface DefinitionProps {
9
10
  term: string;
10
11
  definition: string;
11
12
  }
12
13
  export interface ListProps {
13
- /** BlockName for use with BEM. See how to work with blockNames and
14
- * BEM here: http://getbem.com/introduction/ */
15
- blockName?: string;
14
+ /** Optionally pass in additional Chakra-based styles. */
15
+ additionalStyles?: { [key: string]: any };
16
16
  /** ClassName you can add in addition to 'list' */
17
17
  className?: string;
18
18
  /** ID that other components can cross reference for accessibility purposes */
19
19
  id?: string;
20
- /** Modifiers array for use with BEM. See how to work with modifiers and
21
- * BEM here: http://getbem.com/introduction/ */
22
- modifiers?: any[];
23
- /** An optional title that will appear over the list. This prop only applies
24
- * to Definition Lists. */
25
- title?: string;
26
- /** Ordered, Unordered, or Definition */
27
- type: ListTypes;
20
+ /** Display the list in a row. */
21
+ inline?: boolean;
28
22
  /** Data to render if children are not passed. For `ListTypes.Ordered` and
29
23
  * `ListTypes.Unordered` `List` types, the data structure is an array of
30
24
  * strings to renders as `li` items. For `ListTypes.Definition` `List` types,
31
25
  * the data structure is an array of objects with `term` and `definition`
32
26
  * properties to render `dt` and `dd` elements, respectively.
33
27
  */
34
- listItems?: (string | DefinitionProps)[];
28
+ listItems?: (string | JSX.Element | DefinitionProps)[];
29
+ /** Remove list styling. */
30
+ noStyling?: boolean;
31
+ /** An optional title that will appear over the list. This prop only applies
32
+ * to Definition Lists. */
33
+ title?: string;
34
+ /** The type of list: Ordered, Unordered, or Definition. Unordered by default. */
35
+ type: ListTypes;
35
36
  }
36
37
 
37
- /** A component that renders list item `li` elements or definition item `dt`
38
- * and `dd` elements based on the `type` prop. */
38
+ /**
39
+ * A component that renders list item `li` elements or definition item `dt`
40
+ * and `dd` elements based on the `type` prop. Note that the `title` prop will
41
+ * only display for the `Definition` list type.
42
+ */
39
43
  export default function List(props: React.PropsWithChildren<ListProps>) {
40
44
  const {
41
- blockName,
45
+ additionalStyles = {},
42
46
  children,
43
47
  className,
44
- id,
45
- modifiers = [],
46
- type,
47
- title,
48
+ id = generateUUID(),
49
+ inline = false,
48
50
  listItems,
51
+ noStyling = false,
52
+ title,
53
+ type = ListTypes.Unordered,
49
54
  } = props;
55
+ const styles = useStyleConfig("List", { inline, noStyling, variant: type });
56
+ const finalStyles = { ...styles, ...additionalStyles };
57
+ let listElement = null;
50
58
 
51
59
  // Either li/dt/dd children elements must be passed or the `listItems`
52
60
  // prop must be used.
53
61
  if (children && (listItems || listItems?.length > 0)) {
54
- throw new Error(
55
- "Pass in either `<li>` children or use the `listItems` data prop, don't use both."
62
+ console.warn(
63
+ "Pass in either `<li>`, `<dt>`, or `<dd>` children or use the `listItems` data prop, but don't use both."
64
+ );
65
+ return null;
66
+ }
67
+ if (!children && !listItems) {
68
+ console.warn(
69
+ "Either `<li>` children or the `listItems` prop must be used."
56
70
  );
71
+ return null;
57
72
  }
58
73
 
59
- const baseClass = "list";
60
- let listTag;
61
- let invalidText = "";
62
74
  /**
63
75
  * This returns either the `children` elements passed to the `List` component
64
- * first, and if that is not passed, it will check and render the data passed
65
- * into `listItems` based on the `ListType` type of list. If it is of type
66
- * Unordered or Ordered, it will return `li` elements. Otherwise, it will
67
- * return a combination of `dt` and `dd` elements for the Definition type.
76
+ * first, otherwise it will check and render the data passed into the
77
+ * `listItems` props based on the `ListType` type. If it is of type "Unordered"
78
+ * or "Ordered", it will return `li` elements. Otherwise, it will return a
79
+ * combination of `dt` and `dd` elements for the "Definition" type.
68
80
  */
69
- const listChildrenElms = (listType) => {
81
+ const listChildrenElms = (listType: ListTypes) => {
70
82
  if (children) {
71
83
  return children;
72
84
  }
73
- if (!listItems || listItems?.length === 0) {
74
- throw new Error(
75
- "Either `<li>` children or the `listItems` prop must be used."
76
- );
77
- }
78
85
  if (listType === ListTypes.Ordered || listType === ListTypes.Unordered) {
79
86
  return listItems.map((item, i) => <li key={i}>{item}</li>);
80
87
  } else if (listType === ListTypes.Definition) {
@@ -86,70 +93,59 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
86
93
  return null;
87
94
  };
88
95
  /**
89
- * Checks for `li` element type and throws an error if it is a different type.
96
+ * Checks for `li` elements and consoles a warning if the
97
+ * children are different HTML elements.
90
98
  */
91
- const checkLiChildrenError = (listType) => {
92
- invalidText = `Direct children of \`List\` (${listType}) should be \`<li>\`s`;
93
- React.Children.map(children, function (child: React.ReactElement) {
99
+ const checkListChildrenError = (listType: ListTypes) => {
100
+ React.Children.map(children, (child: React.ReactElement) => {
94
101
  if (child?.type !== "li" && child?.props?.mdxType !== "li") {
95
- throw new Error(invalidText);
102
+ console.warn(
103
+ `Direct children of \`List\` (${listType}) should be \`<li>\`s.`
104
+ );
105
+ }
106
+ });
107
+ };
108
+ /**
109
+ * Checks for `dt` and `dd` elements and consoles a warning if the
110
+ * children are different HTML elements.
111
+ */
112
+ const checkDefinitionChildrenError = () => {
113
+ React.Children.map(children, function (child: React.ReactElement) {
114
+ if (
115
+ child.type !== "dt" &&
116
+ child.type !== "dd" &&
117
+ child.type !== React.Fragment &&
118
+ child.props.mdxType !== "dt" &&
119
+ child.props.mdxType !== "dd" &&
120
+ child.props.mdxType !== React.Fragment
121
+ ) {
122
+ console.warn(
123
+ "Direct children of `List` (definition) should be `<dt>`s and `<dd>`s."
124
+ );
96
125
  }
97
126
  });
98
127
  };
99
128
 
100
- switch (type) {
101
- case ListTypes.Ordered:
102
- checkLiChildrenError("ordered");
103
- listTag = (
104
- <ol
105
- id={id}
106
- className={bem(baseClass, modifiers, blockName, [className])}
107
- >
108
- {listChildrenElms(type)}
109
- </ol>
110
- );
111
- break;
112
- case ListTypes.Unordered:
113
- checkLiChildrenError("unordered");
114
- listTag = (
115
- <ul
116
- id={id}
117
- className={bem(baseClass, modifiers, blockName, [className])}
118
- >
119
- {listChildrenElms(type)}
120
- </ul>
121
- );
122
- break;
123
- case ListTypes.Definition:
124
- invalidText =
125
- "Direct children of `List` (definition) should be `<dt>`s or `<dd>`s";
126
- React.Children.map(children, function (child: React.ReactElement) {
127
- if (
128
- child.type !== "dt" &&
129
- child.type !== "dd" &&
130
- child.type !== React.Fragment &&
131
- child.props.mdxType !== "dt" &&
132
- child.props.mdxType !== "dd" &&
133
- child.props.mdxType !== React.Fragment
134
- ) {
135
- throw new Error(invalidText);
136
- }
137
- });
138
- listTag = (
139
- <section
140
- id={id}
141
- className={bem("definition-list", modifiers, baseClass)}
142
- >
143
- {title && (
144
- <Heading id={`${id}-heading`} level={HeadingLevels.Two}>
145
- {title}
146
- </Heading>
147
- )}
148
- <dl>{listChildrenElms(type)}</dl>
149
- </section>
150
- );
151
- break;
129
+ if (type === ListTypes.Ordered || type === ListTypes.Unordered) {
130
+ checkListChildrenError(type);
131
+ listElement = (
132
+ <Box as={type as As} id={id} className={className} __css={finalStyles}>
133
+ {listChildrenElms(type)}
134
+ </Box>
135
+ );
136
+ } else if (type === ListTypes.Definition) {
137
+ checkDefinitionChildrenError();
138
+ listElement = (
139
+ <Box as="section" id={id} className={className} __css={finalStyles}>
140
+ {title && (
141
+ <Heading id={`${id}-heading`} level={HeadingLevels.Two}>
142
+ {title}
143
+ </Heading>
144
+ )}
145
+ <dl>{listChildrenElms(type)}</dl>
146
+ </Box>
147
+ );
152
148
  }
153
149
 
154
- return listTag;
150
+ return listElement;
155
151
  }
@@ -0,0 +1,109 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`List Renders the UI snapshot correctly 1`] = `
4
+ <ul
5
+ className="css-0"
6
+ id="unordered"
7
+ >
8
+ <li>
9
+ Mahi-mahi
10
+ </li>
11
+ <li>
12
+ Golden trout
13
+ </li>
14
+ <li>
15
+ Rainbowfish
16
+ </li>
17
+ <li>
18
+ Suckerfish
19
+ </li>
20
+ </ul>
21
+ `;
22
+
23
+ exports[`List Renders the UI snapshot correctly 2`] = `
24
+ <ul
25
+ className="css-0"
26
+ id="ordered"
27
+ >
28
+ <li>
29
+ Mahi-mahi
30
+ </li>
31
+ <li>
32
+ Golden trout
33
+ </li>
34
+ <li>
35
+ Rainbowfish
36
+ </li>
37
+ <li>
38
+ Suckerfish
39
+ </li>
40
+ </ul>
41
+ `;
42
+
43
+ exports[`List Renders the UI snapshot correctly 3`] = `
44
+ <ol
45
+ className="css-0"
46
+ id="unordered-no-styling"
47
+ >
48
+ <li>
49
+ Mahi-mahi
50
+ </li>
51
+ <li>
52
+ Golden trout
53
+ </li>
54
+ <li>
55
+ Rainbowfish
56
+ </li>
57
+ <li>
58
+ Suckerfish
59
+ </li>
60
+ </ol>
61
+ `;
62
+
63
+ exports[`List Renders the UI snapshot correctly 4`] = `
64
+ <ol
65
+ className="css-0"
66
+ id="ordered-no-styling"
67
+ >
68
+ <li>
69
+ Mahi-mahi
70
+ </li>
71
+ <li>
72
+ Golden trout
73
+ </li>
74
+ <li>
75
+ Rainbowfish
76
+ </li>
77
+ <li>
78
+ Suckerfish
79
+ </li>
80
+ </ol>
81
+ `;
82
+
83
+ exports[`List Renders the UI snapshot correctly 5`] = `
84
+ <section
85
+ className="css-0"
86
+ id="definition"
87
+ >
88
+ <h2
89
+ className="chakra-heading css-0"
90
+ id="definition-heading"
91
+ >
92
+ Animal Crossing Fish
93
+ </h2>
94
+ <dl>
95
+ <dt>
96
+ Mahi-mahi
97
+ </dt>
98
+ <dd>
99
+ The mahi-mahi is an ocean fish known...
100
+ </dd>
101
+ <dt>
102
+ Golden trout
103
+ </dt>
104
+ <dd>
105
+ The golden trout is a beautifully colored fish...
106
+ </dd>
107
+ </dl>
108
+ </section>
109
+ `;
@@ -3,7 +3,7 @@ import {
3
3
  Meta,
4
4
  Story,
5
5
  ArgsTable,
6
- Preview,
6
+ Canvas,
7
7
  Description,
8
8
  } from "@storybook/addon-docs/blocks";
9
9
  import Modal from "./Modal";
@@ -118,11 +118,11 @@ export const ModalStory = (args) => {
118
118
  );
119
119
  };
120
120
 
121
- <Preview withToolbar>
121
+ <Canvas withToolbar>
122
122
  <Story name="Basic" args={{ open: false }}>
123
123
  {(args) => <ModalStory {...args} />}
124
124
  </Story>
125
- </Preview>
125
+ </Canvas>
126
126
 
127
127
  <ArgsTable story="Basic" />
128
128
 
@@ -5,9 +5,9 @@
5
5
  }
6
6
 
7
7
  .modal {
8
- @include space-inset-s;
8
+ padding: var(--nypl-space-s);
9
9
 
10
- background-color: var(--ui-gray-warm-xlight);
10
+ background-color: var(--nypl-colors-ui-gray-x-light-warm);
11
11
  height: 100vh;
12
12
  left: 0;
13
13
  overflow-y: auto;