@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
@@ -0,0 +1,63 @@
1
+ import * as React from "react";
2
+ import { Box, useMultiStyleConfig } from "@chakra-ui/react";
3
+ import generateUUID from "../../helpers/generateUUID";
4
+ import Heading from "../Heading/Heading";
5
+ import { HeadingLevels } from "../Heading/HeadingTypes";
6
+ import HelperErrorText from "../HelperErrorText/HelperErrorText";
7
+ import Text from "../Text/Text";
8
+
9
+ export interface ComponentWrapperProps {
10
+ /** The UI elements that will be wrapped by this component */
11
+ children: React.ReactNode;
12
+ /** Optional string to set the text for a video description */
13
+ descriptionText?: string;
14
+ /** Optional string to set the text for a `Heading` component */
15
+ headingText?: string;
16
+ /** Optional string to set the text for a `HelperErrorText` component */
17
+ helperText?: string;
18
+ /** ID that other components can cross reference for accessibility purposes */
19
+ id?: string;
20
+ }
21
+
22
+ function ComponentWrapper(
23
+ props: React.PropsWithChildren<ComponentWrapperProps>
24
+ ) {
25
+ const {
26
+ children,
27
+ descriptionText,
28
+ headingText,
29
+ helperText,
30
+ id = generateUUID(),
31
+ } = props;
32
+ const hasChildren = !!children;
33
+ const styles = useMultiStyleConfig("ComponentWrapper", { hasChildren });
34
+
35
+ if (!hasChildren) {
36
+ console.warn("Component Wrapper has no children.");
37
+ }
38
+
39
+ return (
40
+ <Box __css={styles}>
41
+ <>
42
+ {headingText && (
43
+ <Heading
44
+ id={`${id}-heading`}
45
+ level={HeadingLevels.Two}
46
+ text={headingText}
47
+ />
48
+ )}
49
+ {descriptionText && <Text>{descriptionText}</Text>}
50
+ {children}
51
+ {helperText && (
52
+ <Box __css={styles.helperText}>
53
+ <HelperErrorText id={`${id}-helperText`} isInvalid={false}>
54
+ {helperText}
55
+ </HelperErrorText>
56
+ </Box>
57
+ )}
58
+ </>
59
+ </Box>
60
+ );
61
+ }
62
+
63
+ export default ComponentWrapper;
@@ -3,14 +3,14 @@ import {
3
3
  Story,
4
4
  Canvas,
5
5
  ArgsTable,
6
- Preview,
7
6
  Description,
8
7
  } from "@storybook/addon-docs/blocks";
9
8
  import { withDesign } from "storybook-addon-designs";
10
- import { getCategory } from "../../utils/componentCategories";
11
9
 
10
+ import { getCategory } from "../../utils/componentCategories";
12
11
  import DatePicker from "./DatePicker";
13
12
  import { DatePickerTypes } from "./DatePickerTypes";
13
+ import DSProvider from "../../theme/provider";
14
14
 
15
15
  <Meta
16
16
  title={getCategory("DatePicker")}
@@ -25,13 +25,11 @@ import { DatePickerTypes } from "./DatePickerTypes";
25
25
  jest: ["DatePicker.test.tsx"],
26
26
  }}
27
27
  argTypes={{
28
- blockName: { table: { disable: true } },
29
28
  className: { table: { disable: true } },
30
- modifiers: { table: { disable: true } },
31
29
  id: { table: { disable: true } },
32
- nameTo: { table: { disable: true } },
33
30
  nameFrom: { table: { disable: true } },
34
- value: { table: { disable: true } },
31
+ nameTo: { table: { disable: true } },
32
+ onChange: { table: { disable: true } },
35
33
  refTo: { table: { disable: true } },
36
34
  }}
37
35
  />
@@ -41,30 +39,37 @@ import { DatePickerTypes } from "./DatePickerTypes";
41
39
  | Component Version | DS Version |
42
40
  | ----------------- | ---------- |
43
41
  | Added | `0.24.0` |
44
- | Latest | `0.24.0` |
42
+ | Latest | `0.25.3` |
45
43
 
46
44
  <Description of={DatePicker} />
47
45
 
46
+ This is fully customizable to allow selectable full dates, only the month, or
47
+ only they year as input. Initial date values and max and min date values can
48
+ also be added through props.
49
+
48
50
  <Canvas withToolbar>
49
51
  <Story
50
52
  name="DatePicker"
51
53
  args={{
52
- dateType: DatePickerTypes.Full,
53
54
  dateFormat: "yyyy-MM-dd",
54
- dateRange: false,
55
- initialDate: "1/1/2021",
56
- minDate: "1/1/2021",
57
- maxDate: "1/1/2022",
58
- nameFrom: "visit-dates",
59
- labelText: "Select the date you want to visit NYPL",
55
+ dateType: DatePickerTypes.Full,
60
56
  helperText: "Note that the Library may be closed on Sundays.",
61
57
  helperTextFrom: "Select start date.",
62
58
  helperTextTo: "Select end date.",
59
+ initialDate: "1/1/2021",
60
+ initialDateTo: "1/30/2021",
63
61
  invalidText: "Please select a valid date.",
62
+ isDateRange: false,
63
+ isDisabled: false,
64
+ isInvalid: false,
65
+ isRequired: false,
66
+ labelText: "Select the date you want to visit NYPL",
67
+ maxDate: "1/1/2022",
68
+ minDate: "1/1/2021",
69
+ nameFrom: "visit-dates-from",
70
+ nameTo: "visit-dates-to",
71
+ showHelperInvalidText: true,
64
72
  showLabel: true,
65
- errored: false,
66
- disabled: false,
67
- required: false,
68
73
  showOptReqLabel: true,
69
74
  }}
70
75
  >
@@ -76,38 +81,48 @@ import { DatePickerTypes } from "./DatePickerTypes";
76
81
 
77
82
  ## Date Range
78
83
 
79
- A date range can be rendered by setting the `dateRange` prop to `true`. This
84
+ A date range can be rendered by setting the `isDateRange` prop to `true`. This
80
85
  will render two input fields with labels "From" and "To". If the component has
81
- an error, or if this is a required field, or if it is disabled, then both input
82
- elements will share the props and styling. Note that for date range types, a
83
- `fieldset` is used as the parent wrapper and the `labelText` is used for the
84
- `legend` element text.
86
+ an error, has required fields, or if it is disabled, then both input elements
87
+ will share the props and styling. Note that for date range types, a `fieldset`
88
+ is used as the parent wrapper and the `labelText` is used for the `legend`
89
+ element text.
85
90
 
86
91
  Note: In the following example, the minimum date is "1/1/2021" and the max date
87
- is "1/1/22". This means only values within this range are selectable from the
92
+ is "3/1/21". This means only values within this range are selectable from the
88
93
  popup calendar.
89
94
 
90
95
  <Canvas withToolbar>
91
96
  <Story name="Date Range">
92
97
  <DatePicker
93
98
  id="date-range"
94
- dateType={DatePickerTypes.Full}
95
99
  dateFormat="yyyy-MM-dd"
96
- dateRange={true}
100
+ dateType={DatePickerTypes.Full}
97
101
  minDate="1/1/2021"
98
- maxDate="1/1/2022"
102
+ maxDate="3/1/2021"
99
103
  labelText="Select the date range you want to visit NYPL"
100
- nameFrom="visit-dates"
104
+ nameFrom="visit-dates-from"
105
+ nameTo="visit-dates-to"
101
106
  helperTextFrom="From this date."
102
107
  helperTextTo="To this date."
103
108
  helperText="Select a valid date range."
104
- invalidText="Please select a valid date range."
109
+ invalidText="There was an error with the date range :("
105
110
  showOptReqLabel={false}
111
+ isDateRange
106
112
  />
107
113
  </Story>
108
114
  </Canvas>
109
115
 
110
- ## Month Date Input
116
+ ## Calendar Types
117
+
118
+ ### Full Date Input
119
+
120
+ By default, the `DatePicker` will display the input date value in the full
121
+ format that contains the year, month, and day such as "2021-01-30". Although
122
+ this is the default, it can be explicitly set through the `dateType` prop with
123
+ value of `DatePickerTypes.Full`.
124
+
125
+ ### Month Date Input
111
126
 
112
127
  It's possible to select dates by skipping the day value and only selecting
113
128
  the month and the year when `dateType` is set to `DatePickerTypes.Month`. Note
@@ -118,7 +133,6 @@ that all 12 months will appear in the popup calendar with their abbreviated name
118
133
  <DatePicker
119
134
  id="month-date"
120
135
  dateType={DatePickerTypes.Month}
121
- dateRange={false}
122
136
  labelText="Select the month you want to visit NYPL"
123
137
  helperText="Note that the Library may be closed on Sundays."
124
138
  invalidText="Please select a valid month."
@@ -126,7 +140,7 @@ that all 12 months will appear in the popup calendar with their abbreviated name
126
140
  </Story>
127
141
  </Canvas>
128
142
 
129
- ## Year Date Input
143
+ ### Year Date Input
130
144
 
131
145
  It's possible to select dates by only the year when `dateType` is set to
132
146
  `DatePickerTypes.Year`. Note that only 12 values will appear in the popup
@@ -135,9 +149,8 @@ calendar; the four previous years, the current year, and the next seven years.
135
149
  <Canvas withToolbar>
136
150
  <Story name="Year Date Input">
137
151
  <DatePicker
138
- id="month-date"
152
+ id="year-date"
139
153
  dateType={DatePickerTypes.Year}
140
- dateRange={false}
141
154
  labelText="Select the year you want to visit NYPL"
142
155
  helperText="Note that the Library may be closed on Sundays."
143
156
  showOptReqLabel={false}
@@ -149,28 +162,116 @@ calendar; the four previous years, the current year, and the next seven years.
149
162
 
150
163
  ### Errored State
151
164
 
152
- <DatePicker
153
- id="month-date"
154
- dateType={DatePickerTypes.Full}
155
- dateRange={true}
156
- labelText="Select the year you want to visit NYPL"
157
- helperText="Note that the Library may be closed on Sundays."
158
- invalidText="Please select a valid year."
159
- errored={true}
160
- showOptReqLabel={false}
161
- />
162
- <br />
165
+ <Canvas>
166
+ <DSProvider>
167
+ <DatePicker
168
+ id="invalid-date"
169
+ dateType={DatePickerTypes.Full}
170
+ labelText="Select the year you want to visit NYPL"
171
+ helperText="Note that the Library may be closed on Sundays."
172
+ invalidText="Please select a valid date."
173
+ showOptReqLabel={false}
174
+ isInvalid
175
+ isDateRange
176
+ />
177
+ </DSProvider>
178
+ </Canvas>
163
179
 
164
180
  ### Disabled State
165
181
 
166
- <DatePicker
167
- id="month-date"
168
- dateType={DatePickerTypes.Full}
169
- dateRange={true}
170
- labelText="Select the year you want to visit NYPL"
171
- disabled={true}
172
- showOptReqLabel={false}
173
- />
182
+ <Canvas>
183
+ <DSProvider>
184
+ <DatePicker
185
+ id="disabled-date"
186
+ dateType={DatePickerTypes.Full}
187
+ labelText="Select the year you want to visit NYPL"
188
+ showOptReqLabel={false}
189
+ isDateRange
190
+ isDisabled
191
+ />
192
+ </DSProvider>
193
+ </Canvas>
194
+
195
+ ### Required State
196
+
197
+ The "Required" or "Optional" text in the legend in the date range, or the label
198
+ in a normal date input, can be hidden when `showOptReqLabel` is set to `false`.
199
+
200
+ <Canvas>
201
+ <DSProvider>
202
+ <DatePicker
203
+ id="disabled-date"
204
+ dateType={DatePickerTypes.Full}
205
+ labelText="Select the year you want to visit NYPL"
206
+ isDateRange
207
+ isRequired
208
+ />
209
+ </DSProvider>
210
+ </Canvas>
211
+
212
+ ## Date Inputs and Output
213
+
214
+ ### Initial Date Values
215
+
216
+ The initial date values can be set through `initialDate` for the "From" input
217
+ field and `initialDateTo` for the "To" input field. In the following examples,
218
+ `initialDate` is `"12/1/21"` and `initialDateTo` is `"12/10/21"`. The
219
+ `initialDate` and `initialDateTo` values are used in the JS `Date` function so
220
+ they needs to be in that specific format. Note that according to the NYPL
221
+ styleguide, we display dates as "year-month-day" by default.
222
+
223
+ <Canvas>
224
+ <DSProvider>
225
+ <DatePicker
226
+ id="init-dates"
227
+ dateType={DatePickerTypes.Full}
228
+ labelText="Select the date you want to visit NYPL"
229
+ initialDate="12/1/21"
230
+ initialDateTo="12/10/21"
231
+ isDateRange
232
+ />
233
+ </DSProvider>
234
+ </Canvas>
235
+
236
+ ### Date Format
237
+
238
+ The display date format can be updated through the `dateFormat` prop. The
239
+ default is set to `"yyyy-MM-dd"` based on the NYPL styleguide. This should be
240
+ written in [ISO-8601 format](https://www.w3.org/TR/NOTE-datetime).
241
+
242
+ <Canvas>
243
+ <DSProvider>
244
+ <DatePicker
245
+ id="format-date"
246
+ dateFormat="MM-dd-yyyy"
247
+ dateType={DatePickerTypes.Full}
248
+ labelText="Select the date you want to visit NYPL"
249
+ initialDate="12/1/21"
250
+ initialDateTo="12/10/21"
251
+ isDateRange
252
+ />
253
+ </DSProvider>
254
+ </Canvas>
255
+
256
+ ### Max and Min Date Values
257
+
258
+ The maximum and minimum date values can be set through the `maxDate` and
259
+ `minDate` props, respectively. In this example, go back to January through
260
+ February to see the dates that are available to select.
261
+
262
+ <Canvas>
263
+ <DSProvider>
264
+ <DatePicker
265
+ id="max-min-dates"
266
+ dateFormat="MM-dd-yyyy"
267
+ dateType={DatePickerTypes.Full}
268
+ labelText="Select the date you want to visit NYPL"
269
+ minDate="1/1/2021"
270
+ maxDate="3/1/2021"
271
+ isDateRange
272
+ />
273
+ </DSProvider>
274
+ </Canvas>
174
275
 
175
276
  ## Getting Date Data Values
176
277
 
@@ -178,11 +279,11 @@ calendar; the four previous years, the current year, and the next seven years.
178
279
 
179
280
  If your application uses controlled React components and the DS DatePicker must
180
281
  be controlled, you can extract the data through the `onChange` prop function.
181
- This will be called every time the date is updated in either the start date input
182
- field or the end date input field. The returned data is an object with `startDate`
183
- and `endDate` keys and `Date` object values.
282
+ This will be called every time the date is updated in either the start date
283
+ input field or the end date input field. The returned data is an object with
284
+ `startDate` and `endDate` keys and `Date` object values.
184
285
 
185
- ```jsx
286
+ ```tsx
186
287
  const onChange = (data) => {
187
288
  // This will return an object such as:
188
289
  // {
@@ -200,10 +301,10 @@ const onChange = (data) => {
200
301
  <DatePicker
201
302
  id="date-range"
202
303
  dateType={DatePickerTypes.Full}
203
- dateRange={true}
204
304
  labelText="Select the date range you want to visit NYPL"
205
305
  invalidText="Please select a valid date range."
206
306
  onChange={onChange}
307
+ isDateRange
207
308
  />;
208
309
  ```
209
310
 
@@ -219,7 +320,7 @@ obtained.
219
320
  The following example is using the `register` React `ref` from the
220
321
  `react-hook-form` package.
221
322
 
222
- ```jsx
323
+ ```tsx
223
324
  import { useFormContext } from "react-hook-form";
224
325
  // ...
225
326
  const { register, handleSubmit } = useFormContext();
@@ -244,13 +345,13 @@ const submitForm = (formData) => {
244
345
  <DatePicker
245
346
  id="date-range"
246
347
  dateType={DatePickerTypes.Full}
247
- dateRange={true}
248
348
  labelText="Select the date range you want to visit NYPL"
249
349
  nameFrom="visitDateFrom"
250
350
  nameTo="visitDateTo"
251
351
  invalidText="Please select a valid date range."
252
352
  ref={register()}
253
353
  refTo={register()}
354
+ isDateRange
254
355
  />
255
356
  </form>;
256
357
  ```
@@ -258,21 +359,21 @@ const submitForm = (formData) => {
258
359
  The above is specific to `react-hook-form` but a similar pattern can be used
259
360
  with normal React `ref` values.
260
361
 
261
- ```jsx
362
+ ```tsx
262
363
  const refStart = React.createRef<TextInputRefType>();
263
364
  const refEnd = React.createRef<TextInputRefType>();
264
365
  // ...
265
366
  <DatePicker
266
367
  id="date-range"
267
368
  dateType={DatePickerTypes.Full}
268
- dateRange={true}
269
369
  labelText="Select the date range you want to visit NYPL"
270
370
  nameFrom="visitDateFrom"
271
371
  nameTo="visitDateTo"
272
372
  invalidText="Please select a valid date range."
273
373
  ref={refStart}
274
374
  refTo={refEnd}
275
- />
375
+ isDateRange
376
+ />;
276
377
 
277
378
  // ...
278
379
  // Get the value through: