@nypl/design-system-react-components 0.25.11 → 0.26.0

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 (347) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/README.md +14 -26
  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 +2 -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 +10 -7
  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 +8 -0
  32. package/dist/components/Logo/LogoTypes.d.ts +10 -2
  33. package/dist/components/Notification/Notification.d.ts +7 -7
  34. package/dist/components/Pagination/Pagination.d.ts +8 -4
  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 +5 -5
  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 +18 -9
  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 +2802 -1686
  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 +2811 -1699
  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 +6 -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 -6
  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 +6 -14
  75. package/dist/theme/components/global.d.ts +37 -29
  76. package/dist/theme/components/globalMixins.d.ts +8 -8
  77. package/dist/theme/components/heading.d.ts +53 -0
  78. package/dist/theme/components/helperErrorText.d.ts +1 -0
  79. package/dist/theme/components/hero.d.ts +21 -15
  80. package/dist/theme/components/image.d.ts +1 -1
  81. package/dist/theme/components/label.d.ts +9 -10
  82. package/dist/theme/components/list.d.ts +105 -9
  83. package/dist/theme/components/notification.d.ts +7 -4
  84. package/dist/theme/components/pagination.d.ts +2 -5
  85. package/dist/theme/components/radio.d.ts +10 -6
  86. package/dist/theme/components/radioGroup.d.ts +4 -2
  87. package/dist/theme/components/select.d.ts +38 -13
  88. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  89. package/dist/theme/components/slider.d.ts +14 -7
  90. package/dist/theme/components/structuredContent.d.ts +197 -0
  91. package/dist/theme/components/textInput.d.ts +22 -14
  92. package/dist/theme/components/toggle.d.ts +25 -6
  93. package/dist/theme/foundations/global.d.ts +33 -3
  94. package/dist/theme/foundations/radii.d.ts +1 -0
  95. package/dist/theme/foundations/spacing.d.ts +46 -43
  96. package/dist/utils/utils.d.ts +10 -0
  97. package/package.json +5 -6
  98. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +34 -0
  99. package/src/components/Accordion/Accordion.stories.mdx +150 -66
  100. package/src/components/Accordion/Accordion.test.tsx +65 -17
  101. package/src/components/Accordion/Accordion.tsx +61 -27
  102. package/src/components/Accordion/AccordionTypes.tsx +5 -0
  103. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +505 -14
  104. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  105. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +53 -18
  106. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +66 -35
  107. package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
  108. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +2 -1
  109. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +308 -10
  110. package/src/components/Button/Button.stories.mdx +87 -23
  111. package/src/components/Button/Button.test.tsx +25 -0
  112. package/src/components/Button/Button.tsx +18 -7
  113. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  114. package/src/components/Card/Card.stories.mdx +493 -329
  115. package/src/components/Card/Card.test.tsx +138 -18
  116. package/src/components/Card/Card.tsx +151 -85
  117. package/src/components/Card/__snapshots__/Card.test.tsx.snap +220 -100
  118. package/src/components/Chakra/Center.stories.mdx +2 -2
  119. package/src/components/Chakra/Grid.stories.mdx +4 -4
  120. package/src/components/Checkbox/Checkbox.stories.mdx +73 -9
  121. package/src/components/Checkbox/Checkbox.test.tsx +89 -10
  122. package/src/components/Checkbox/Checkbox.tsx +27 -16
  123. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +209 -6
  124. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +135 -23
  125. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +216 -90
  126. package/src/components/CheckboxGroup/CheckboxGroup.tsx +39 -26
  127. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +493 -89
  128. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  129. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  130. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  131. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  132. package/src/components/DatePicker/DatePicker.test.tsx +94 -15
  133. package/src/components/DatePicker/DatePicker.tsx +67 -58
  134. package/src/components/DatePicker/_DatePicker.scss +71 -13
  135. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  136. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  137. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  138. package/src/components/Fieldset/Fieldset.tsx +35 -30
  139. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  140. package/src/components/Form/Form.stories.mdx +118 -47
  141. package/src/components/Form/Form.test.tsx +59 -16
  142. package/src/components/Form/Form.tsx +89 -65
  143. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  144. package/src/components/Grid/GridTypes.tsx +7 -7
  145. package/src/components/Grid/SimpleGrid.stories.mdx +87 -41
  146. package/src/components/Grid/SimpleGrid.test.tsx +24 -9
  147. package/src/components/Grid/SimpleGrid.tsx +29 -20
  148. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  149. package/src/components/Heading/Heading.stories.mdx +56 -25
  150. package/src/components/Heading/Heading.test.tsx +17 -7
  151. package/src/components/Heading/Heading.tsx +60 -58
  152. package/src/components/Heading/HeadingTypes.tsx +1 -1
  153. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +27 -8
  154. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  155. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  156. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  157. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  158. package/src/components/Hero/Hero.stories.mdx +143 -113
  159. package/src/components/Hero/Hero.test.tsx +146 -58
  160. package/src/components/Hero/Hero.tsx +144 -112
  161. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  162. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  163. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -17
  164. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -25
  165. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  166. package/src/components/Icons/Icon.stories.mdx +80 -23
  167. package/src/components/Icons/Icon.test.tsx +51 -2
  168. package/src/components/Icons/Icon.tsx +93 -71
  169. package/src/components/Icons/IconTypes.tsx +9 -6
  170. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  171. package/src/components/Image/Image.stories.mdx +160 -71
  172. package/src/components/Image/Image.test.tsx +40 -48
  173. package/src/components/Image/Image.tsx +80 -48
  174. package/src/components/Image/ImageTypes.ts +4 -4
  175. package/src/components/Image/__snapshots__/Image.test.tsx.snap +84 -21
  176. package/src/components/Label/Label.stories.mdx +42 -20
  177. package/src/components/Label/Label.test.tsx +42 -17
  178. package/src/components/Label/Label.tsx +22 -13
  179. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  180. package/src/components/Link/Link.stories.mdx +25 -1
  181. package/src/components/Link/Link.test.tsx +21 -0
  182. package/src/components/Link/Link.tsx +16 -9
  183. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  184. package/src/components/List/List.stories.mdx +75 -40
  185. package/src/components/List/List.test.tsx +73 -22
  186. package/src/components/List/List.tsx +44 -28
  187. package/src/components/List/ListTypes.tsx +1 -1
  188. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  189. package/src/components/Logo/Logo.stories.mdx +40 -16
  190. package/src/components/Logo/Logo.test.tsx +29 -2
  191. package/src/components/Logo/Logo.tsx +28 -11
  192. package/src/components/Logo/LogoSvgs.tsx +16 -0
  193. package/src/components/Logo/LogoTypes.tsx +9 -1
  194. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  195. package/src/components/Modal/Modal.stories.mdx +13 -0
  196. package/src/components/Notification/Notification.stories.mdx +34 -5
  197. package/src/components/Notification/Notification.test.tsx +43 -9
  198. package/src/components/Notification/Notification.tsx +59 -55
  199. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +256 -32
  200. package/src/components/Pagination/Pagination.stories.mdx +76 -13
  201. package/src/components/Pagination/Pagination.test.tsx +116 -5
  202. package/src/components/Pagination/Pagination.tsx +54 -29
  203. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +247 -30
  204. package/src/components/Placeholder/Placeholder.tsx +3 -1
  205. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  206. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +87 -13
  207. package/src/components/ProgressIndicator/ProgressIndicator.tsx +20 -10
  208. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  209. package/src/components/Radio/Radio.stories.mdx +75 -11
  210. package/src/components/Radio/Radio.test.tsx +83 -9
  211. package/src/components/Radio/Radio.tsx +70 -61
  212. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +168 -10
  213. package/src/components/RadioGroup/RadioGroup.stories.mdx +293 -94
  214. package/src/components/RadioGroup/RadioGroup.test.tsx +193 -68
  215. package/src/components/RadioGroup/RadioGroup.tsx +110 -101
  216. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1258 -902
  217. package/src/components/SearchBar/SearchBar.stories.mdx +104 -39
  218. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +66 -6
  219. package/src/components/SearchBar/SearchBar.tsx +23 -13
  220. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  221. package/src/components/Select/Select.stories.mdx +151 -62
  222. package/src/components/Select/Select.test.tsx +56 -44
  223. package/src/components/Select/Select.tsx +125 -104
  224. package/src/components/Select/SelectTypes.tsx +5 -0
  225. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  226. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +53 -23
  227. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +14 -8
  228. package/src/components/SkeletonLoader/SkeletonLoader.tsx +80 -78
  229. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +0 -5
  230. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  231. package/src/components/Slider/Slider.stories.mdx +123 -41
  232. package/src/components/Slider/Slider.test.tsx +65 -17
  233. package/src/components/Slider/Slider.tsx +34 -24
  234. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  235. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  236. package/src/components/StatusBadge/StatusBadge.test.tsx +19 -1
  237. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  238. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  239. package/src/components/StructuredContent/StructuredContent.stories.mdx +229 -61
  240. package/src/components/StructuredContent/StructuredContent.test.tsx +162 -101
  241. package/src/components/StructuredContent/StructuredContent.tsx +98 -103
  242. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  243. package/src/components/StyleGuide/Bidirectionality.stories.mdx +9 -9
  244. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  245. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  246. package/src/components/StyleGuide/ColorCard.tsx +4 -4
  247. package/src/components/StyleGuide/Colors.stories.mdx +34 -20
  248. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  249. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  250. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  251. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  252. package/src/components/StyleGuide/Typography.stories.mdx +47 -33
  253. package/src/components/Table/Table.stories.mdx +38 -11
  254. package/src/components/Table/Table.test.tsx +16 -1
  255. package/src/components/Table/Table.tsx +10 -8
  256. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  257. package/src/components/Tabs/Tabs.stories.mdx +59 -10
  258. package/src/components/Tabs/Tabs.test.tsx +29 -11
  259. package/src/components/Tabs/Tabs.tsx +28 -21
  260. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  261. package/src/components/Template/Template.stories.mdx +73 -32
  262. package/src/components/Template/Template.test.tsx +68 -5
  263. package/src/components/Template/Template.tsx +86 -72
  264. package/src/components/Template/__snapshots__/Template.test.tsx.snap +195 -22
  265. package/src/components/Text/Text.stories.mdx +32 -15
  266. package/src/components/Text/Text.test.tsx +14 -11
  267. package/src/components/Text/Text.tsx +13 -16
  268. package/src/components/Text/TextTypes.tsx +1 -1
  269. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  270. package/src/components/TextInput/TextInput.stories.mdx +73 -27
  271. package/src/components/TextInput/TextInput.test.tsx +65 -50
  272. package/src/components/TextInput/TextInput.tsx +123 -115
  273. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  274. package/src/components/Toggle/Toggle.stories.mdx +74 -26
  275. package/src/components/Toggle/Toggle.test.tsx +41 -10
  276. package/src/components/Toggle/Toggle.tsx +31 -27
  277. package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
  278. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +195 -8
  279. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  280. package/src/components/VideoPlayer/VideoPlayer.test.tsx +41 -6
  281. package/src/components/VideoPlayer/VideoPlayer.tsx +134 -120
  282. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  283. package/src/docs/Chakra.stories.mdx +51 -10
  284. package/src/docs/Welcome.stories.mdx +168 -0
  285. package/src/{components/Card/CardTypes.tsx → helpers/enums.ts} +2 -2
  286. package/src/hooks/tests/useNYPLTheme.test.tsx +1 -1
  287. package/src/hooks/useCarouselStyles.stories.mdx +30 -0
  288. package/src/hooks/useCarouselStyles.ts +3 -2
  289. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  290. package/src/hooks/useNYPLTheme.ts +31 -7
  291. package/src/hooks/useWindowSize.stories.mdx +23 -0
  292. package/src/index.ts +11 -15
  293. package/src/styles/base/_place-holder.scss +3 -1
  294. package/src/styles.scss +0 -2
  295. package/src/theme/components/accordion.ts +7 -12
  296. package/src/theme/components/breadcrumb.ts +7 -0
  297. package/src/theme/components/button.ts +15 -7
  298. package/src/theme/components/card.ts +56 -36
  299. package/src/theme/components/checkbox.ts +12 -14
  300. package/src/theme/components/checkboxGroup.ts +4 -2
  301. package/src/theme/components/componentWrapper.ts +2 -2
  302. package/src/theme/components/customTable.ts +39 -31
  303. package/src/theme/components/fieldset.ts +3 -2
  304. package/src/theme/components/global.ts +42 -33
  305. package/src/theme/components/globalMixins.ts +8 -8
  306. package/src/theme/components/heading.ts +1 -1
  307. package/src/theme/components/helperErrorText.ts +1 -0
  308. package/src/theme/components/hero.ts +14 -16
  309. package/src/theme/components/icon.ts +5 -2
  310. package/src/theme/components/image.ts +1 -1
  311. package/src/theme/components/label.ts +4 -3
  312. package/src/theme/components/list.ts +76 -65
  313. package/src/theme/components/notification.ts +10 -7
  314. package/src/theme/components/pagination.ts +2 -5
  315. package/src/theme/components/progressIndicator.ts +3 -3
  316. package/src/theme/components/radio.ts +11 -14
  317. package/src/theme/components/radioGroup.ts +4 -2
  318. package/src/theme/components/select.ts +37 -18
  319. package/src/theme/components/skeletonLoader.ts +3 -3
  320. package/src/theme/components/slider.ts +19 -15
  321. package/src/theme/components/statusBadge.ts +2 -2
  322. package/src/theme/components/structuredContent.ts +66 -1
  323. package/src/theme/components/tabs.ts +2 -2
  324. package/src/theme/components/template.ts +9 -9
  325. package/src/theme/components/textInput.ts +13 -12
  326. package/src/theme/components/toggle.ts +76 -42
  327. package/src/theme/components/videoPlayer.ts +1 -1
  328. package/src/theme/foundations/colors.ts +20 -13
  329. package/src/theme/foundations/global.ts +17 -5
  330. package/src/theme/foundations/radii.ts +1 -0
  331. package/src/theme/foundations/spacing.ts +70 -22
  332. package/src/theme/foundations/typography.ts +3 -3
  333. package/src/utils/componentCategories.ts +28 -21
  334. package/src/utils/utils.ts +28 -0
  335. package/dist/components/Card/CardTypes.d.ts +0 -4
  336. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
  337. package/dist/components/Pagination/Pagination.stories.d.ts +0 -13
  338. package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +0 -4
  339. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  340. package/dist/helpers/generateUUID.d.ts +0 -1
  341. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +0 -4
  342. package/src/components/Pagination/Pagination.stories.tsx +0 -54
  343. package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
  344. package/src/docs/Intro.stories.mdx +0 -53
  345. package/src/helpers/generateUUID.tsx +0 -5
  346. package/src/styles/base/_03-base.scss +0 -25
  347. package/src/styles/base/_04-focus.scss +0 -22
@@ -7,10 +7,16 @@ const blogs = {
7
7
  color: "ui.gray.xdark",
8
8
  },
9
9
  },
10
+ svg: {
11
+ fill: "ui.black",
12
+ },
10
13
  };
11
14
  const booksAndMore = {
12
15
  bg: "section.books-and-more.secondary",
13
16
  };
17
+ const education = {
18
+ bg: "section.education.secondary",
19
+ };
14
20
  const locations = {
15
21
  bg: "section.locations.primary",
16
22
  };
@@ -78,6 +84,7 @@ const Breadcrumb = {
78
84
  variants: {
79
85
  blogs,
80
86
  booksAndMore,
87
+ education,
81
88
  locations,
82
89
  research,
83
90
  whatsOn,
@@ -6,8 +6,9 @@ const baseStyle = {
6
6
  cursor: "pointer",
7
7
  color: "ui.white",
8
8
  justifyContent: "center",
9
- py: "xs",
10
- px: "s",
9
+ maxHeight: "2.5rem",
10
+ py: "inset.narrow",
11
+ px: "inset.default",
11
12
  textDecoration: "none",
12
13
  wordWrap: "normal",
13
14
  fontWeight: "button.default",
@@ -44,6 +45,10 @@ const secondary = {
44
45
  fontSize: "button.default",
45
46
  _hover: {
46
47
  bg: "ui.gray.xx-light-cool",
48
+ borderColor: "ui.gray.medium",
49
+ },
50
+ _disabled: {
51
+ bg: "ui.gray.x-light-cool",
47
52
  },
48
53
  };
49
54
  const link = {
@@ -65,12 +70,15 @@ const pill = {
65
70
  borderColor: "ui.gray.light-cool",
66
71
  color: "inherit",
67
72
  borderRadius: "pill",
68
- py: "xs",
69
- paddingInlineStart: "m",
70
- paddingInlineEnd: "m",
73
+ py: "inset.narrow",
74
+ px: "inset.wide",
71
75
  fontSize: "button.default",
72
76
  _hover: {
73
77
  bg: "ui.gray.xx-light-cool",
78
+ borderColor: "ui.gray.medium",
79
+ },
80
+ _disabled: {
81
+ bg: "ui.gray.x-light-cool",
74
82
  },
75
83
  };
76
84
  const iconOnly = {
@@ -81,8 +89,8 @@ const iconOnly = {
81
89
  _hover: {
82
90
  bg: "ui.gray.xx-light-cool",
83
91
  },
84
- paddingInlineStart: "xs",
85
- paddingInlineEnd: "xs",
92
+ paddingInlineStart: "inset.narrow",
93
+ paddingInlineEnd: "inset.narrow",
86
94
  };
87
95
  const callout = {
88
96
  bg: "brand.primary",
@@ -6,36 +6,48 @@ const imageSizes = {
6
6
  large: { flex: { md: "0 0 360px" } },
7
7
  };
8
8
  // This is complicated and can be refactored later...
9
- const getBodyPaddingStyles = ({ border, hasImage, imageAtEnd, isRow }) => {
9
+ const getBodyPaddingStyles = ({
10
+ hasImage,
11
+ isBordered,
12
+ imageIsAtEnd,
13
+ isRow,
14
+ }) => {
10
15
  let bodyPadding = null;
11
- if (border) {
12
- bodyPadding = "s";
16
+ if (isBordered) {
17
+ bodyPadding = "inset.default";
13
18
  if (hasImage) {
14
- bodyPadding = "0 var(--nypl-space-s) var(--nypl-space-s)";
19
+ bodyPadding =
20
+ "0 var(--nypl-space-inset-default) var(--nypl-space-inset-default)";
15
21
  }
16
22
  }
17
- if (isRow && border) {
18
- bodyPadding = "var(--nypl-space-s)";
23
+ if (isRow && isBordered) {
24
+ bodyPadding = "inset.default";
19
25
  }
20
- if (isRow && border && hasImage) {
26
+ if (isRow && isBordered && hasImage) {
21
27
  bodyPadding = {
22
- base: "0 var(--nypl-space-s) var(--nypl-space-s)",
23
- md: "var(--nypl-space-s) var(--nypl-space-s) var(--nypl-space-s) 0",
28
+ base: "0 var(--nypl-space-inset-default) var(--nypl-space-inset-default)",
29
+ md: "var(--nypl-space-inset-default) var(--nypl-space-inset-default) var(--nypl-space-inset-default) 0",
24
30
  };
25
- if (imageAtEnd) {
31
+ if (imageIsAtEnd) {
26
32
  bodyPadding = {
27
- base: "var(--nypl-space-s) var(--nypl-space-s) 0",
28
- md: "var(--nypl-space-s) 0 var(--nypl-space-s) var(--nypl-space-s)",
33
+ base: "var(--nypl-space-inset-default) var(--nypl-space-inset-default) 0",
34
+ md: "var(--nypl-space-inset-default) 0 var(--nypl-space-inset-default) var(--nypl-space-inset-default)",
29
35
  };
30
36
  }
31
37
  }
32
38
  return bodyPadding;
33
39
  };
34
40
  const Card = {
35
- parts: ["body", "heading"],
41
+ parts: ["actions", "body", "heading"],
36
42
  baseStyle: (props) => {
37
- const { border, center, hasImage, imageAtEnd, layout, mainActionLink } =
38
- props;
43
+ const {
44
+ hasImage,
45
+ imageIsAtEnd,
46
+ isBordered,
47
+ isCentered,
48
+ layout,
49
+ mainActionLink,
50
+ } = props;
39
51
  const isRow = layout === "row";
40
52
  const layoutStyles = isRow
41
53
  ? {
@@ -46,23 +58,23 @@ const Card = {
46
58
  },
47
59
  maxWidth: "100%",
48
60
  textAlign: "left",
49
- alignItems: center ? "center" : null,
61
+ alignItems: isCentered ? "center" : null,
50
62
  }
51
63
  : {};
52
- const baseBorderStyles = border
64
+ const baseBorderStyles = isBordered
53
65
  ? {
54
66
  border: "1px solid",
55
67
  borderColor: "ui.gray.medium",
56
68
  }
57
69
  : {};
58
70
  const bodyPadding = getBodyPaddingStyles({
59
- border,
71
+ isBordered,
60
72
  hasImage,
61
- imageAtEnd,
73
+ imageIsAtEnd,
62
74
  isRow,
63
75
  });
64
76
  let bodyMargin = null;
65
- if (center) {
77
+ if (isCentered) {
66
78
  bodyMargin = "auto";
67
79
  if (isRow) {
68
80
  bodyMargin = "0";
@@ -72,10 +84,11 @@ const Card = {
72
84
  alignItems: "flex-start",
73
85
  display: "flex",
74
86
  flexFlow: "column wrap",
75
- textAlign: center ? "center" : null,
76
- heading: {
77
- marginBottom: "xs",
78
- a: mainActionLink ? { color: "ui.black" } : null,
87
+ textAlign: isCentered ? "center" : null,
88
+ actions: {
89
+ width: ["100%", "100%", "180px"],
90
+ marginLeft: ["0", "0", "m"],
91
+ marginTop: ["xs", "xs", "0"],
79
92
  },
80
93
  body: {
81
94
  display: { md: "block" },
@@ -83,6 +96,10 @@ const Card = {
83
96
  margin: bodyMargin,
84
97
  padding: bodyPadding,
85
98
  },
99
+ heading: {
100
+ marginBottom: "xs",
101
+ a: mainActionLink ? { color: "ui.black" } : null,
102
+ },
86
103
  ...baseBorderStyles,
87
104
  ...layoutStyles,
88
105
  };
@@ -91,13 +108,15 @@ const Card = {
91
108
 
92
109
  const CardActions = {
93
110
  baseStyle: (props) => {
94
- const { bottomBorder, center, layout, topBorder } = props;
111
+ const { bottomBorder, isCentered, layout, topBorder } = props;
95
112
  let justifyContent = null;
96
- if (center) {
97
- justifyContent = "center";
98
- } else if (layout === "row") {
113
+ // Only center in the column layout.
114
+ if (layout === "row") {
99
115
  justifyContent = "left";
116
+ } else if (isCentered) {
117
+ justifyContent = "center";
100
118
  }
119
+
101
120
  const topBorderStyles = topBorder
102
121
  ? {
103
122
  borderTop: "1px solid",
@@ -135,30 +154,31 @@ const CardContent = {
135
154
  };
136
155
 
137
156
  const CardImage = {
138
- baseStyle: ({ center, imageAtEnd, imageSize, layout }) => {
157
+ baseStyle: ({ imageIsAtEnd, isCentered, layout, size }) => {
139
158
  // These sizes are only for the "row" layout.
140
- const size = imageSizes[imageSize] || {};
159
+ const imageSize = imageSizes[size] || {};
141
160
  const layoutStyles =
142
161
  layout === "row"
143
162
  ? {
144
163
  flex: { md: "0 0 225px" },
145
164
  maxWidth: { base: "100%", md: "50%" },
146
165
  textAlign: "left",
147
- alignItems: center ? "center" : null,
166
+ alignItems: isCentered ? "center" : null,
148
167
  margin: {
149
- base: imageAtEnd ? "var(--nypl-space-m) 0 0" : null,
150
- md: imageAtEnd
168
+ base: imageIsAtEnd ? "var(--nypl-space-m) 0 0" : null,
169
+ md: imageIsAtEnd
151
170
  ? "0 0 0 var(--nypl-space-m)"
152
171
  : "0 var(--nypl-space-m) 0 0",
153
172
  },
154
173
  width: { base: "100%", md: null },
155
- ...size,
174
+ marginBottom: ["xs", "xs"],
175
+ ...imageSize,
156
176
  }
157
177
  : {
158
178
  marginBottom: "xs",
159
179
  width: "100%",
160
180
  };
161
- const imageAtEndStyles = imageAtEnd
181
+ const imageIsAtEndStyles = imageIsAtEnd
162
182
  ? {
163
183
  marginBottom: "0",
164
184
  marginTop: "s",
@@ -167,7 +187,7 @@ const CardImage = {
167
187
  : {};
168
188
 
169
189
  return {
170
- ...imageAtEndStyles,
190
+ ...imageIsAtEndStyles,
171
191
  ...layoutStyles,
172
192
  };
173
193
  },
@@ -4,7 +4,7 @@
4
4
  import {
5
5
  checkboxRadioLabelStyles,
6
6
  checkboxRadioControlSize,
7
- checkboxRadioHelperStyle,
7
+ checkboxRadioHelperErrorTextStyle,
8
8
  } from "./global";
9
9
 
10
10
  // Style object for the Checkbox's visual icon.
@@ -36,8 +36,10 @@ const baseStyleControl = {
36
36
 
37
37
  _disabled: {
38
38
  bg: "ui.white",
39
- borderColor: "ui.gray.medium",
40
- color: "ui.gray.medium",
39
+ borderColor: "ui.disabled.primary",
40
+ svg: {
41
+ color: "ui.disabled.primary",
42
+ },
41
43
  },
42
44
 
43
45
  _indeterminate: {
@@ -53,7 +55,7 @@ const baseStyleControl = {
53
55
 
54
56
  _disabled: {
55
57
  bg: "ui.white",
56
- borderColor: "ui.gray.medium",
58
+ borderColor: "ui.disabled.primary",
57
59
  },
58
60
 
59
61
  _focus: {
@@ -69,20 +71,16 @@ const baseStyleControl = {
69
71
  };
70
72
 
71
73
  // Style object for the Checkbox's label
72
- const baseStyleLabel = {
73
- ...checkboxRadioLabelStyles,
74
- };
74
+ const baseStyleLabel = checkboxRadioLabelStyles;
75
75
 
76
76
  // Style object for the Checkbox's helper text
77
- const baseStyleHelper = {
78
- ...checkboxRadioHelperStyle,
79
- };
77
+ const baseStyleHelperErrorText = checkboxRadioHelperErrorTextStyle;
80
78
 
81
79
  const baseStyle = {
82
80
  icon: baseStyleIcon,
83
81
  control: baseStyleControl,
84
82
  label: baseStyleLabel,
85
- helper: baseStyleHelper,
83
+ helperErrorText: baseStyleHelperErrorText,
86
84
  };
87
85
 
88
86
  // Sticking to "lg" for the default size.
@@ -91,15 +89,15 @@ const sizes = {
91
89
  // Controls the width/height of the checkbox itself.
92
90
  control: {
93
91
  ...checkboxRadioControlSize,
94
- borderRadius: "sm",
92
+ borderRadius: "checkbox",
95
93
  },
96
94
  // Controls the font-size of the label only.
97
- label: { fontSize: "text.default" },
95
+ label: { fontSize: "label.default" },
98
96
  },
99
97
  };
100
98
 
101
99
  const Checkbox = {
102
- parts: ["icon", "control", "label", "helper"],
100
+ parts: ["helperErrorText", "icon", "control", "label"],
103
101
  baseStyle,
104
102
  sizes,
105
103
  // Default values
@@ -1,8 +1,10 @@
1
1
  import { checkboxRadioGroupStyles } from "./global";
2
2
 
3
3
  const CheckboxGroup = {
4
- parts: ["helper", "stack"],
5
- baseStyle: checkboxRadioGroupStyles,
4
+ parts: ["helperErrorText", "stack"],
5
+ baseStyle: ({ isFullWidth = false }) => ({
6
+ ...checkboxRadioGroupStyles(isFullWidth),
7
+ }),
6
8
  };
7
9
 
8
10
  export default CheckboxGroup;
@@ -1,7 +1,7 @@
1
1
  const ComponentWrapper = {
2
+ parts: ["helperErrorText"],
2
3
  baseStyle: ({ hasChildren }) => ({
3
- helperText: {
4
- marginBottom: "0",
4
+ helperErrorText: {
5
5
  marginTop: hasChildren ? "xs" : "0",
6
6
  },
7
7
  }),
@@ -1,4 +1,40 @@
1
- const baseStyle = ({
1
+ export const baseTHStyles = (
2
+ showRowDividers = false,
3
+ columnHeadersTextColor = false
4
+ ) => ({
5
+ border: showRowDividers ? undefined : "none",
6
+ borderBottom: showRowDividers ? undefined : "0px",
7
+ color: columnHeadersTextColor ? columnHeadersTextColor : "ui.black",
8
+ fontSize: "0",
9
+ fontWeight: "bold",
10
+ letterSpacing: "0",
11
+ paddingLeft: 0,
12
+ paddingRight: "m",
13
+ textTransform: "capitalize",
14
+ _first: {
15
+ paddingLeft: showRowDividers ? "m" : null,
16
+ },
17
+ _last: {
18
+ paddingRight: showRowDividers ? "m" : "0",
19
+ },
20
+ });
21
+ export const baseTDStyles = (
22
+ showRowDividers = false,
23
+ useRowHeaders = false
24
+ ) => ({
25
+ border: showRowDividers ? undefined : "none",
26
+ borderBottom: showRowDividers ? undefined : "0px",
27
+ letterSpacing: "0",
28
+ paddingLeft: 0,
29
+ paddingRight: "m",
30
+ _first: {
31
+ paddingLeft: showRowDividers && !useRowHeaders ? "m" : null,
32
+ },
33
+ _last: {
34
+ paddingRight: showRowDividers ? "m" : "0",
35
+ },
36
+ });
37
+ export const baseStyle = ({
2
38
  columnHeadersTextColor,
3
39
  showRowDividers,
4
40
  useRowHeaders,
@@ -12,36 +48,8 @@ const baseStyle = ({
12
48
  color: "var(--nypl-colors-ui-black)",
13
49
  },
14
50
  },
15
- th: {
16
- border: showRowDividers ? undefined : "none",
17
- borderBottom: showRowDividers ? undefined : "0px",
18
- color: columnHeadersTextColor ? columnHeadersTextColor : "ui.black",
19
- fontSize: "0",
20
- fontWeight: "bold",
21
- letterSpacing: "0",
22
- paddingLeft: 0,
23
- paddingRight: "m",
24
- textTransform: "capitalize",
25
- _first: {
26
- paddingLeft: showRowDividers ? "m" : null,
27
- },
28
- _last: {
29
- paddingRight: showRowDividers ? "m" : "0",
30
- },
31
- },
32
- td: {
33
- border: showRowDividers ? undefined : "none",
34
- borderBottom: showRowDividers ? undefined : "0px",
35
- letterSpacing: "0",
36
- paddingLeft: 0,
37
- paddingRight: "m",
38
- _first: {
39
- paddingLeft: showRowDividers && !useRowHeaders ? "m" : null,
40
- },
41
- _last: {
42
- paddingRight: showRowDividers ? "m" : "0",
43
- },
44
- },
51
+ th: baseTHStyles(showRowDividers, columnHeadersTextColor),
52
+ td: baseTDStyles(showRowDividers, useRowHeaders),
45
53
  caption: {
46
54
  captionSide: "top",
47
55
  color: "ui.black",
@@ -2,15 +2,16 @@ import { labelLegendText } from "./global";
2
2
  import { screenreaderOnly } from "./globalMixins";
3
3
 
4
4
  const Fieldset = {
5
- parts: ["helper"],
6
5
  baseStyle: ({ isLegendHidden }) => {
7
6
  const screenreaderStyles = isLegendHidden ? screenreaderOnly : {};
7
+
8
8
  return {
9
+ border: 0,
10
+ padding: 0,
9
11
  legend: {
10
12
  ...labelLegendText,
11
13
  ...screenreaderStyles,
12
14
  },
13
- helper: { ...labelLegendText.helper },
14
15
  };
15
16
  },
16
17
  };
@@ -4,26 +4,20 @@ export { wrapperStyles } from "./globalMixins";
4
4
  /** Reusable component styles. */
5
5
 
6
6
  // Used in `Select` and `TextInput`.
7
- const activeFocus = {
8
- border: "1px solid",
9
- borderColor: "ui.focus",
7
+ const activeFocus = (darkMode = false) => ({
8
+ boxShadow: "none",
9
+ outline: "2px solid",
10
+ outlineOffset: "2px",
11
+ outlineColor: darkMode ? "ui.white" : "ui.focus",
10
12
  zIndex: "9999",
11
- outline: "1px solid",
12
- outlineColor: "ui.focus",
13
- };
14
- // Used in `Select` and `TextInput`.
15
- const helperTextMargin = {
16
- marginTop: "xxs",
17
- marginBottom: "0",
18
- };
13
+ });
19
14
  // Used in `Checkbox` and `Radio`.
20
15
  const checkboxRadioLabelStyles = {
21
16
  userSelect: "none",
22
- fontSize: "text.default",
23
17
  fontWeight: "text.default",
24
18
  marginBottom: "0",
25
19
  marginLeft: "xs",
26
- verticalAlign: "middle",
20
+ width: "100%",
27
21
  _disabled: {
28
22
  color: "ui.gray.dark",
29
23
  opacity: 1,
@@ -40,43 +34,58 @@ const checkboxRadioControlSize = {
40
34
  w: "1.375rem",
41
35
  };
42
36
  // Used in `Checkbox` and `Radio`.
43
- const checkboxRadioHelperStyle = {
44
- ...helperTextMargin,
37
+ const checkboxRadioHelperErrorTextStyle = {
45
38
  marginLeft: "30px", // calc(22px + var(--nypl-space-xs))
46
39
  _disabled: {
40
+ color: "ui.gray.dark",
47
41
  fontStyle: "italic",
48
42
  },
49
43
  };
44
+ const checkboxRadioGroupStyles = (isFullWidth = false) => ({
45
+ helperErrorText: {
46
+ marginTop: "xs",
47
+ },
48
+ stack: {
49
+ width: isFullWidth ? "100%" : "fit-content",
50
+ },
51
+ });
50
52
  // Used in `Label` and `Fieldset`.
51
53
  const labelLegendText = {
52
- alignItems: "baseline",
53
- width: "100%",
54
- marginBottom: "xs",
54
+ display: "inline-block",
55
55
  fontSize: "label.default",
56
56
  fontWeight: "label.default",
57
- display: "flex",
58
- justifyContent: "space-between",
59
- helper: {
60
- marginLeft: "m",
61
- fontSize: "helper.default",
62
- fontWeight: "helper.default",
57
+ marginBottom: "xs",
58
+ width: "100%",
59
+ span: {
60
+ fontWeight: "regular",
63
61
  },
64
62
  };
65
- const checkboxRadioGroupStyles = {
66
- helper: {
67
- marginTop: "s",
68
- },
69
- stack: {
70
- width: "fit-content",
71
- },
63
+ // Used for the disabled state of Select and TextInput
64
+ const selectTextInputDisabledStyles = {
65
+ bg: "ui.disabled.secondary",
66
+ borderColor: "ui.disabled.primary",
67
+ color: "ui.gray.dark",
68
+ opacity: "1",
69
+ };
70
+ // Used for the focus state of Select and TextInput
71
+ const selectTextInputFocusStyles = {
72
+ ...activeFocus(),
73
+ borderColor: "ui.focus",
74
+ };
75
+ // Used for p, ul, and ol
76
+ const textMargin = {
77
+ margin: "0",
78
+ marginBottom: "s",
72
79
  };
73
80
 
74
81
  export {
75
82
  activeFocus,
76
83
  checkboxRadioControlSize,
77
84
  checkboxRadioGroupStyles,
78
- checkboxRadioHelperStyle,
85
+ checkboxRadioHelperErrorTextStyle,
79
86
  checkboxRadioLabelStyles,
80
- helperTextMargin,
81
87
  labelLegendText,
88
+ selectTextInputDisabledStyles,
89
+ selectTextInputFocusStyles,
90
+ textMargin,
82
91
  };
@@ -2,6 +2,14 @@
2
2
  * These objects are also SCSS mixins but are now JS objects in the
3
3
  * context of css-in-js and the custom NYPL-theme.
4
4
  */
5
+ const screenreaderOnly = {
6
+ clip: "rect(1px, 1px, 1px, 1px)",
7
+ height: "1px",
8
+ overflow: "hidden",
9
+ position: "absolute !important",
10
+ width: "1px",
11
+ wordWrap: "normal",
12
+ };
5
13
  const wrapperStyles = {
6
14
  marginY: "0",
7
15
  marginX: "auto",
@@ -12,13 +20,5 @@ const wrapperStyles = {
12
20
  paddingLeft: "0",
13
21
  width: "100%",
14
22
  };
15
- const screenreaderOnly = {
16
- clip: "rect(1px, 1px, 1px, 1px)",
17
- height: "1px",
18
- overflow: "hidden",
19
- position: "absolute !important",
20
- width: "1px",
21
- wordWrap: "normal",
22
- };
23
23
 
24
24
  export { screenreaderOnly, wrapperStyles };
@@ -8,7 +8,7 @@ const margins = {
8
8
  };
9
9
 
10
10
  // Heading Styles
11
- const headings = {
11
+ export const headings = {
12
12
  h1: {
13
13
  fontSize: "heading.primary", // var(--nypl-fontSizes-4);
14
14
  fontWeight: "heading.primary",
@@ -1,5 +1,6 @@
1
1
  const helperErrorText = {
2
2
  baseStyle: ({ isInvalid }) => ({
3
+ marginTop: "xxs",
3
4
  marginBottom: "0",
4
5
  fontSize: "helper.default",
5
6
  color: isInvalid ? "ui.error.primary" : "ui.black",