@nypl/design-system-react-components 0.25.13 → 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 (299) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +10 -10
  3. package/dist/components/Accordion/Accordion.d.ts +1 -1
  4. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  5. package/dist/components/Button/Button.d.ts +2 -2
  6. package/dist/components/Card/Card.d.ts +11 -9
  7. package/dist/components/Checkbox/Checkbox.d.ts +2 -2
  8. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +5 -4
  9. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
  10. package/dist/components/DatePicker/DatePicker.d.ts +5 -6
  11. package/dist/components/Fieldset/Fieldset.d.ts +5 -6
  12. package/dist/components/Form/Form.d.ts +6 -6
  13. package/dist/components/Grid/GridTypes.d.ts +7 -7
  14. package/dist/components/Grid/SimpleGrid.d.ts +1 -1
  15. package/dist/components/Heading/Heading.d.ts +1 -1
  16. package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
  17. package/dist/components/Hero/Hero.d.ts +2 -1
  18. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
  19. package/dist/components/Icons/Icon.d.ts +2 -1
  20. package/dist/components/Image/Image.d.ts +2 -2
  21. package/dist/components/Label/Label.d.ts +7 -4
  22. package/dist/components/Link/Link.d.ts +1 -1
  23. package/dist/components/List/List.d.ts +11 -11
  24. package/dist/components/List/ListTypes.d.ts +1 -1
  25. package/dist/components/Logo/Logo.d.ts +2 -1
  26. package/dist/components/Logo/LogoSvgs.d.ts +2 -0
  27. package/dist/components/Logo/LogoTypes.d.ts +2 -0
  28. package/dist/components/Notification/Notification.d.ts +4 -4
  29. package/dist/components/Pagination/Pagination.d.ts +2 -2
  30. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
  31. package/dist/components/Radio/Radio.d.ts +4 -6
  32. package/dist/components/RadioGroup/RadioGroup.d.ts +12 -6
  33. package/dist/components/SearchBar/SearchBar.d.ts +4 -4
  34. package/dist/components/Select/Select.d.ts +10 -6
  35. package/dist/components/Select/SelectTypes.d.ts +4 -0
  36. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +4 -3
  37. package/dist/components/Slider/Slider.d.ts +6 -4
  38. package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
  39. package/dist/components/StructuredContent/StructuredContent.d.ts +2 -2
  40. package/dist/components/Table/Table.d.ts +1 -1
  41. package/dist/components/Tabs/Tabs.d.ts +4 -3
  42. package/dist/components/Template/Template.d.ts +4 -3
  43. package/dist/components/Text/Text.d.ts +1 -1
  44. package/dist/components/TextInput/TextInput.d.ts +5 -5
  45. package/dist/components/Toggle/Toggle.d.ts +3 -4
  46. package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
  47. package/dist/design-system-react-components.cjs.development.js +1663 -1139
  48. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  49. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  50. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  51. package/dist/design-system-react-components.esm.js +1667 -1143
  52. package/dist/design-system-react-components.esm.js.map +1 -1
  53. package/dist/hooks/useCarouselStyles.d.ts +3 -2
  54. package/dist/hooks/useNYPLTheme.d.ts +12 -0
  55. package/dist/index.d.ts +4 -1
  56. package/dist/styles.css +1 -1
  57. package/dist/theme/components/button.d.ts +10 -2
  58. package/dist/theme/components/card.d.ts +42 -22
  59. package/dist/theme/components/checkbox.d.ts +5 -4
  60. package/dist/theme/components/checkboxGroup.d.ts +1 -1
  61. package/dist/theme/components/componentWrapper.d.ts +2 -2
  62. package/dist/theme/components/customTable.d.ts +84 -1
  63. package/dist/theme/components/fieldset.d.ts +4 -14
  64. package/dist/theme/components/global.d.ts +23 -17
  65. package/dist/theme/components/heading.d.ts +53 -0
  66. package/dist/theme/components/helperErrorText.d.ts +1 -0
  67. package/dist/theme/components/hero.d.ts +20 -14
  68. package/dist/theme/components/label.d.ts +9 -10
  69. package/dist/theme/components/list.d.ts +99 -9
  70. package/dist/theme/components/radio.d.ts +6 -4
  71. package/dist/theme/components/radioGroup.d.ts +1 -1
  72. package/dist/theme/components/select.d.ts +34 -5
  73. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  74. package/dist/theme/components/slider.d.ts +6 -3
  75. package/dist/theme/components/structuredContent.d.ts +197 -0
  76. package/dist/theme/components/textInput.d.ts +18 -6
  77. package/dist/theme/components/toggle.d.ts +7 -4
  78. package/dist/theme/foundations/global.d.ts +2 -0
  79. package/dist/theme/foundations/radii.d.ts +1 -0
  80. package/dist/theme/foundations/spacing.d.ts +46 -43
  81. package/package.json +5 -6
  82. package/src/components/Accordion/Accordion.stories.mdx +9 -9
  83. package/src/components/Accordion/Accordion.test.tsx +21 -0
  84. package/src/components/Accordion/Accordion.tsx +13 -9
  85. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +276 -27
  86. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  87. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +21 -5
  88. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +52 -31
  89. package/src/components/Breadcrumbs/Breadcrumbs.tsx +8 -7
  90. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +211 -12
  91. package/src/components/Button/Button.stories.mdx +87 -23
  92. package/src/components/Button/Button.test.tsx +25 -0
  93. package/src/components/Button/Button.tsx +18 -7
  94. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  95. package/src/components/Card/Card.stories.mdx +287 -194
  96. package/src/components/Card/Card.test.tsx +102 -0
  97. package/src/components/Card/Card.tsx +73 -32
  98. package/src/components/Card/__snapshots__/Card.test.tsx.snap +195 -35
  99. package/src/components/Chakra/Grid.stories.mdx +4 -4
  100. package/src/components/Checkbox/Checkbox.stories.mdx +62 -10
  101. package/src/components/Checkbox/Checkbox.test.tsx +32 -9
  102. package/src/components/Checkbox/Checkbox.tsx +20 -15
  103. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +134 -7
  104. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +65 -17
  105. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +137 -81
  106. package/src/components/CheckboxGroup/CheckboxGroup.tsx +31 -21
  107. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +332 -97
  108. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  109. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  110. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  111. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  112. package/src/components/DatePicker/DatePicker.test.tsx +89 -13
  113. package/src/components/DatePicker/DatePicker.tsx +62 -56
  114. package/src/components/DatePicker/_DatePicker.scss +71 -13
  115. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  116. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  117. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  118. package/src/components/Fieldset/Fieldset.tsx +35 -30
  119. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  120. package/src/components/Form/Form.stories.mdx +72 -39
  121. package/src/components/Form/Form.test.tsx +58 -15
  122. package/src/components/Form/Form.tsx +89 -67
  123. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  124. package/src/components/Grid/GridTypes.tsx +7 -7
  125. package/src/components/Grid/SimpleGrid.stories.mdx +34 -6
  126. package/src/components/Grid/SimpleGrid.test.tsx +9 -0
  127. package/src/components/Grid/SimpleGrid.tsx +29 -20
  128. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  129. package/src/components/Heading/Heading.stories.mdx +36 -3
  130. package/src/components/Heading/Heading.test.tsx +10 -0
  131. package/src/components/Heading/Heading.tsx +56 -50
  132. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +26 -7
  133. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  134. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  135. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  136. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  137. package/src/components/Hero/Hero.stories.mdx +125 -95
  138. package/src/components/Hero/Hero.test.tsx +33 -0
  139. package/src/components/Hero/Hero.tsx +135 -126
  140. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  141. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  142. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -19
  143. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -26
  144. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  145. package/src/components/Icons/Icon.stories.mdx +31 -6
  146. package/src/components/Icons/Icon.test.tsx +38 -0
  147. package/src/components/Icons/Icon.tsx +93 -76
  148. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  149. package/src/components/Image/Image.stories.mdx +29 -5
  150. package/src/components/Image/Image.test.tsx +8 -0
  151. package/src/components/Image/Image.tsx +38 -26
  152. package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
  153. package/src/components/Label/Label.stories.mdx +42 -20
  154. package/src/components/Label/Label.test.tsx +42 -17
  155. package/src/components/Label/Label.tsx +22 -13
  156. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  157. package/src/components/Link/Link.stories.mdx +25 -1
  158. package/src/components/Link/Link.test.tsx +21 -0
  159. package/src/components/Link/Link.tsx +8 -8
  160. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  161. package/src/components/List/List.stories.mdx +75 -40
  162. package/src/components/List/List.test.tsx +67 -19
  163. package/src/components/List/List.tsx +38 -25
  164. package/src/components/List/ListTypes.tsx +1 -1
  165. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  166. package/src/components/Logo/Logo.stories.mdx +30 -6
  167. package/src/components/Logo/Logo.test.tsx +17 -0
  168. package/src/components/Logo/Logo.tsx +18 -6
  169. package/src/components/Logo/LogoSvgs.tsx +4 -0
  170. package/src/components/Logo/LogoTypes.tsx +2 -0
  171. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  172. package/src/components/Modal/Modal.stories.mdx +13 -0
  173. package/src/components/Notification/Notification.stories.mdx +25 -1
  174. package/src/components/Notification/Notification.test.tsx +23 -0
  175. package/src/components/Notification/Notification.tsx +46 -44
  176. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
  177. package/src/components/Pagination/Pagination.stories.mdx +24 -4
  178. package/src/components/Pagination/Pagination.test.tsx +25 -0
  179. package/src/components/Pagination/Pagination.tsx +6 -6
  180. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +244 -27
  181. package/src/components/Placeholder/Placeholder.tsx +3 -1
  182. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  183. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +81 -11
  184. package/src/components/ProgressIndicator/ProgressIndicator.tsx +17 -9
  185. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  186. package/src/components/Radio/Radio.stories.mdx +64 -12
  187. package/src/components/Radio/Radio.test.tsx +28 -8
  188. package/src/components/Radio/Radio.tsx +66 -63
  189. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +103 -6
  190. package/src/components/RadioGroup/RadioGroup.stories.mdx +224 -89
  191. package/src/components/RadioGroup/RadioGroup.test.tsx +122 -62
  192. package/src/components/RadioGroup/RadioGroup.tsx +106 -100
  193. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1236 -1020
  194. package/src/components/SearchBar/SearchBar.stories.mdx +101 -36
  195. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +46 -4
  196. package/src/components/SearchBar/SearchBar.tsx +17 -8
  197. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  198. package/src/components/Select/Select.stories.mdx +128 -49
  199. package/src/components/Select/Select.test.tsx +63 -16
  200. package/src/components/Select/Select.tsx +125 -92
  201. package/src/components/Select/SelectTypes.tsx +5 -0
  202. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  203. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +42 -10
  204. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +8 -0
  205. package/src/components/SkeletonLoader/SkeletonLoader.tsx +76 -72
  206. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  207. package/src/components/Slider/Slider.stories.mdx +91 -42
  208. package/src/components/Slider/Slider.test.tsx +65 -17
  209. package/src/components/Slider/Slider.tsx +26 -19
  210. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  211. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  212. package/src/components/StatusBadge/StatusBadge.test.tsx +16 -0
  213. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  214. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  215. package/src/components/StructuredContent/StructuredContent.stories.mdx +131 -12
  216. package/src/components/StructuredContent/StructuredContent.test.tsx +34 -0
  217. package/src/components/StructuredContent/StructuredContent.tsx +80 -75
  218. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  219. package/src/components/StyleGuide/Bidirectionality.stories.mdx +5 -5
  220. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  221. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  222. package/src/components/StyleGuide/ColorCard.tsx +1 -1
  223. package/src/components/StyleGuide/Colors.stories.mdx +1 -2
  224. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  225. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  226. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  227. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  228. package/src/components/StyleGuide/Typography.stories.mdx +30 -21
  229. package/src/components/Table/Table.stories.mdx +38 -11
  230. package/src/components/Table/Table.test.tsx +15 -0
  231. package/src/components/Table/Table.tsx +7 -7
  232. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  233. package/src/components/Tabs/Tabs.stories.mdx +52 -3
  234. package/src/components/Tabs/Tabs.test.tsx +16 -0
  235. package/src/components/Tabs/Tabs.tsx +10 -6
  236. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  237. package/src/components/Template/Template.stories.mdx +47 -43
  238. package/src/components/Template/Template.test.tsx +33 -0
  239. package/src/components/Template/Template.tsx +65 -60
  240. package/src/components/Template/__snapshots__/Template.test.tsx.snap +191 -20
  241. package/src/components/Text/Text.stories.mdx +20 -1
  242. package/src/components/Text/Text.test.tsx +12 -0
  243. package/src/components/Text/Text.tsx +6 -4
  244. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  245. package/src/components/TextInput/TextInput.stories.mdx +65 -19
  246. package/src/components/TextInput/TextInput.test.tsx +42 -28
  247. package/src/components/TextInput/TextInput.tsx +121 -113
  248. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  249. package/src/components/Toggle/Toggle.stories.mdx +80 -22
  250. package/src/components/Toggle/Toggle.test.tsx +27 -9
  251. package/src/components/Toggle/Toggle.tsx +22 -18
  252. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +128 -5
  253. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  254. package/src/components/VideoPlayer/VideoPlayer.test.tsx +23 -0
  255. package/src/components/VideoPlayer/VideoPlayer.tsx +133 -126
  256. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  257. package/src/docs/Chakra.stories.mdx +50 -9
  258. package/src/docs/Welcome.stories.mdx +160 -41
  259. package/src/hooks/useCarouselStyles.stories.mdx +22 -2
  260. package/src/hooks/useCarouselStyles.ts +3 -2
  261. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  262. package/src/hooks/useNYPLTheme.ts +30 -6
  263. package/src/hooks/useWindowSize.stories.mdx +23 -0
  264. package/src/index.ts +4 -1
  265. package/src/styles/base/_place-holder.scss +1 -1
  266. package/src/theme/components/button.ts +15 -7
  267. package/src/theme/components/card.ts +30 -19
  268. package/src/theme/components/checkbox.ts +10 -8
  269. package/src/theme/components/checkboxGroup.ts +1 -1
  270. package/src/theme/components/componentWrapper.ts +2 -2
  271. package/src/theme/components/customTable.ts +39 -31
  272. package/src/theme/components/fieldset.ts +1 -2
  273. package/src/theme/components/global.ts +25 -20
  274. package/src/theme/components/heading.ts +1 -1
  275. package/src/theme/components/helperErrorText.ts +1 -0
  276. package/src/theme/components/hero.ts +13 -15
  277. package/src/theme/components/label.ts +4 -3
  278. package/src/theme/components/list.ts +73 -66
  279. package/src/theme/components/notification.ts +2 -2
  280. package/src/theme/components/radio.ts +9 -9
  281. package/src/theme/components/radioGroup.ts +1 -1
  282. package/src/theme/components/select.ts +35 -22
  283. package/src/theme/components/skeletonLoader.ts +3 -3
  284. package/src/theme/components/slider.ts +8 -7
  285. package/src/theme/components/statusBadge.ts +2 -2
  286. package/src/theme/components/structuredContent.ts +66 -1
  287. package/src/theme/components/tabs.ts +2 -2
  288. package/src/theme/components/template.ts +9 -9
  289. package/src/theme/components/textInput.ts +13 -12
  290. package/src/theme/components/toggle.ts +17 -10
  291. package/src/theme/components/videoPlayer.ts +1 -1
  292. package/src/theme/foundations/colors.ts +1 -1
  293. package/src/theme/foundations/radii.ts +1 -0
  294. package/src/theme/foundations/spacing.ts +70 -22
  295. package/src/theme/foundations/typography.ts +2 -2
  296. package/src/utils/componentCategories.ts +1 -2
  297. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  298. package/dist/helpers/generateUUID.d.ts +0 -1
  299. package/src/helpers/generateUUID.tsx +0 -5
@@ -1,74 +1,81 @@
1
1
  import { textMargin } from "./global";
2
2
 
3
- const List = {
4
- baseStyle: ({ inline, noStyling }) => ({
5
- // Browser automatically applies margin, so by default we unset it.
6
- margin: noStyling ? "0" : "unset",
7
- listStyle: noStyling ? "none" : null,
8
- marginInlineStart: "unset",
9
- paddingLeft: noStyling ? "0" : "l",
10
- padding: noStyling ? "0" : null,
11
- display: inline ? "flex" : null,
12
- li: {
13
- marginRight: inline ? "xs" : null,
14
- listStyleType: inline ? "none" : null,
15
- _notFirst: {
16
- marginTop: inline ? null : "xxs",
17
- },
3
+ export const baseListStyles = (inline = false, noStyling = false) => ({
4
+ // Browser automatically applies margin, so by default we unset it.
5
+ margin: noStyling ? "0" : "unset",
6
+ listStyle: noStyling ? "none" : null,
7
+ marginInlineStart: "unset",
8
+ paddingLeft: noStyling ? "0" : "l",
9
+ padding: noStyling ? "0" : null,
10
+ display: inline ? "flex" : null,
11
+ li: {
12
+ marginRight: inline ? "xs" : null,
13
+ listStyleType: inline ? "none" : null,
14
+ _notFirst: {
15
+ marginTop: inline ? null : "xxs",
16
+ },
17
+ },
18
+ });
19
+ export const baseUnorderedStyles = (noStyling = false) => ({
20
+ ...textMargin,
21
+ listStyle: "none",
22
+ li: {
23
+ _before: {
24
+ color: "ui.gray.medium",
25
+ // \2022 is the CSS Code/unicode for a bullet.
26
+ content: noStyling ? "unset" : `"\\2022"`,
27
+ // Needed to add space between the bullet and the text.
28
+ display: "inline-block",
29
+ fontWeight: "bold",
30
+ fontSize: "2",
31
+ lineHeight: "0.9",
32
+ marginLeft: "-1rem",
33
+ width: "1rem",
18
34
  },
19
- }),
35
+ },
36
+ });
37
+ export const baseSectionDefinitionStyles = {
38
+ borderBottom: "1px solid",
39
+ borderColor: "ui.gray.light-cool",
40
+ paddingLeft: "0",
41
+ h2: {
42
+ borderTop: "3px solid",
43
+ borderColor: "section.research.primary",
44
+ margin: "0",
45
+ padding: "var(--nypl-space-xs) 0 0",
46
+ },
47
+ };
48
+ export const baseDefinitionStyles = {
49
+ ...baseSectionDefinitionStyles,
50
+ dl: {
51
+ display: "grid",
52
+ gridTemplateColumns: { base: "100%", md: "max(250px) 1fr" },
53
+ gridTemplateRows: "1fr",
54
+ margin: "var(--nypl-space-xs) 0 0",
55
+ },
56
+ dt: {
57
+ borderTop: "1px solid",
58
+ borderColor: "ui.gray.light-cool",
59
+ fontWeight: "label.default",
60
+ paddingBottom: { base: "0", md: "s" },
61
+ paddingTop: "s",
62
+ paddingRight: { md: "table.column" },
63
+ },
64
+ dd: {
65
+ margin: "0",
66
+ paddingBottom: "s",
67
+ borderTop: { base: "none", md: "1px solid" },
68
+ borderColor: { md: "ui.gray.light-cool" },
69
+ paddingTop: { md: "s" },
70
+ },
71
+ };
72
+
73
+ const List = {
74
+ baseStyle: ({ inline, noStyling }) => baseListStyles(inline, noStyling),
20
75
  variants: {
21
- ul: ({ noStyling }) => ({
22
- ...textMargin,
23
- listStyle: "none",
24
- li: {
25
- _before: {
26
- color: "ui.gray.medium",
27
- // \2022 is the CSS Code/unicode for a bullet.
28
- content: noStyling ? "unset" : `"\\2022"`,
29
- // Needed to add space between the bullet and the text.
30
- display: "inline-block",
31
- fontWeight: "bold",
32
- fontSize: "2",
33
- lineHeight: "0.9",
34
- marginLeft: "-1rem",
35
- width: "1rem",
36
- },
37
- },
38
- }),
76
+ ul: ({ noStyling }) => baseUnorderedStyles(noStyling),
39
77
  ol: textMargin,
40
- dl: {
41
- borderBottom: "1px solid",
42
- borderColor: "ui.gray.light-cool",
43
- paddingLeft: "0",
44
- h2: {
45
- borderTop: "3px solid",
46
- borderColor: "section.research.primary",
47
- margin: "0",
48
- padding: "var(--nypl-space-xs) 0 0",
49
- },
50
- dl: {
51
- display: "grid",
52
- gridTemplateColumns: { base: "100%", md: "max(250px) 1fr" },
53
- gridTemplateRows: "1fr",
54
- margin: "var(--nypl-space-xs) 0 0",
55
- },
56
- dt: {
57
- borderTop: "1px solid",
58
- borderColor: "ui.gray.light-cool",
59
- fontWeight: "label.default",
60
- paddingBottom: { base: "0", md: "s" },
61
- paddingTop: "s",
62
- paddingRight: { md: "m" },
63
- },
64
- dd: {
65
- margin: "0",
66
- paddingBottom: "s",
67
- borderTop: { base: "none", md: "1px solid" },
68
- borderColor: { md: "ui.gray.light-cool" },
69
- paddingTop: { md: "s" },
70
- },
71
- },
78
+ dl: baseDefinitionStyles,
72
79
  },
73
80
  };
74
81
 
@@ -13,7 +13,7 @@ const Notification = {
13
13
  return {
14
14
  bg,
15
15
  display: "flex",
16
- fontSize: "-1", // slightly smaller than the default size
16
+ fontSize: "text.caption", // slightly smaller than the default size
17
17
  position: "relative",
18
18
  textAlign: isCentered ? "center" : null,
19
19
  borderRadius: noMargin ? "0" : "4px",
@@ -21,7 +21,7 @@ const Notification = {
21
21
  container: {
22
22
  margin: "auto",
23
23
  maxWidth: "var(--nypl-breakpoint-xl)",
24
- padding: "s",
24
+ padding: "inset.default",
25
25
  paddingRight: dismissible ? "l" : null,
26
26
  paddingLeft: isCentered && dismissible ? "l" : null,
27
27
  width: "100%",
@@ -1,7 +1,8 @@
1
1
  import {
2
+ activeFocus,
2
3
  checkboxRadioLabelStyles,
3
4
  checkboxRadioControlSize,
4
- checkboxRadioHelperStyle,
5
+ checkboxRadioHelperErrorTextStyle,
5
6
  } from "./global";
6
7
 
7
8
  // Style object for the Radio's "control" or visual icon.
@@ -19,12 +20,10 @@ const baseStyleControl = {
19
20
  borderColor: "ui.focus",
20
21
  color: "ui.white",
21
22
  _disabled: {
22
- color: "ui.gray.medium",
23
- borderColor: "ui.gray.medium",
23
+ borderColor: "ui.disabled.primary",
24
24
  bg: "ui.white",
25
-
26
25
  _before: {
27
- bg: "ui.gray.medium",
26
+ bg: "ui.disabled.primary",
28
27
  },
29
28
  },
30
29
  _invalid: {
@@ -49,10 +48,11 @@ const baseStyleControl = {
49
48
  },
50
49
  },
51
50
  _disabled: {
52
- borderColor: "ui.gray.medium",
51
+ borderColor: "ui.disabled.primary",
53
52
  bg: "ui.white",
54
53
  },
55
54
  _focus: {
55
+ ...activeFocus(),
56
56
  boxShadow: "outline",
57
57
  borderColor: "ui.focus",
58
58
  },
@@ -70,14 +70,14 @@ const baseStyleControl = {
70
70
  const baseStyleLabel = checkboxRadioLabelStyles;
71
71
 
72
72
  // Style object for the Radio's helper text
73
- const baseStyleHelper = checkboxRadioHelperStyle;
73
+ const baseStyleHelperErrorText = checkboxRadioHelperErrorTextStyle;
74
74
 
75
75
  const baseStyle = {
76
76
  // Chakra-inserted elements in the Chakra Radio component
77
77
  control: baseStyleControl,
78
78
  label: baseStyleLabel,
79
79
  // Custom element in the DS Radio component.
80
- helper: baseStyleHelper,
80
+ helperErrorText: baseStyleHelperErrorText,
81
81
  };
82
82
 
83
83
  // Sticking to "md" for the default size.
@@ -91,7 +91,7 @@ const sizes = {
91
91
  };
92
92
 
93
93
  const Radio = {
94
- parts: ["control", "label", "helper"],
94
+ parts: ["control", "helperErrorText", "label"],
95
95
  baseStyle,
96
96
  sizes,
97
97
  // Default values
@@ -1,7 +1,7 @@
1
1
  import { checkboxRadioGroupStyles } from "./global";
2
2
 
3
3
  const RadioGroup = {
4
- parts: ["helper", "stack"],
4
+ parts: ["helperErrorText", "stack"],
5
5
  baseStyle: ({ isFullWidth = false }) => ({
6
6
  ...checkboxRadioGroupStyles(isFullWidth),
7
7
  }),
@@ -1,23 +1,25 @@
1
- import { activeFocus, helperTextMargin } from "./global";
1
+ import {
2
+ selectTextInputDisabledStyles,
3
+ selectTextInputFocusStyles,
4
+ } from "./global";
2
5
 
3
6
  const select = {
4
7
  backgroundColor: "ui.white",
5
8
  borderRadius: "sm",
6
9
  borderColor: "ui.gray.medium",
7
10
  fontSize: "text.caption",
8
- paddingTop: "xs",
9
- paddingRight: "xl",
10
- paddingBottom: "xs",
11
- paddingLeft: "s",
11
+ paddingTop: "inset.narrow",
12
+ paddingRight: "inset.extrawide",
13
+ paddingBottom: "inset.narrow",
14
+ paddingLeft: "inset.default",
12
15
  _hover: {
13
16
  borderColor: "ui.gray.dark",
14
17
  },
15
- _active: activeFocus(),
18
+ _active: selectTextInputFocusStyles,
16
19
  _disabled: {
17
- color: "ui.gray.xdark",
18
- bg: "ui.gray.xx-light-cool",
19
- opacity: "1",
20
+ ...selectTextInputDisabledStyles,
20
21
  },
22
+ _focus: selectTextInputFocusStyles,
21
23
  _invalid: {
22
24
  border: "1px solid",
23
25
  borderColor: "ui.error.primary",
@@ -26,19 +28,30 @@ const select = {
26
28
  };
27
29
 
28
30
  const Select = {
29
- parts: ["select", "helper"],
30
- baseStyle: {
31
- marginBottom: "xs",
32
- // The backgroundColor set to "ui.white" hides the arrow SVG icon when
33
- // the component is focused. The background is added for dark mode and
34
- // so we need to add specific selector.
35
- ".chakra-select__icon-wrapper": {
36
- zIndex: "9999",
37
- },
38
- helper: {
39
- ...helperTextMargin,
40
- },
41
- select,
31
+ parts: ["helperText", "inline", "select"],
32
+ baseStyle: ({ labelPosition, labelWidth }) => {
33
+ return {
34
+ marginBottom: "xs",
35
+ // The backgroundColor set to "ui.white" hides the arrow SVG icon when
36
+ // the component is focused. The background is added for dark mode and
37
+ // so we need to add specific selector.
38
+ ".chakra-select__icon-wrapper": {
39
+ zIndex: "9999",
40
+ },
41
+ helperText: {
42
+ marginLeft:
43
+ labelPosition === "inline" ? { md: `${labelWidth}px` } : null,
44
+ },
45
+ inline: {
46
+ display: { md: "flex" },
47
+ gap: { md: "var(--nypl-space-xs)" },
48
+ alignItems: { md: "flex-end" },
49
+ },
50
+ select: {
51
+ ...select,
52
+ flex: labelPosition === "inline" ? { md: "1" } : null,
53
+ },
54
+ };
42
55
  },
43
56
  variants: {
44
57
  searchbar: {
@@ -23,8 +23,8 @@ const imageRowHeightStyles = {
23
23
  // NYPL's skeleton loader component.
24
24
  const SkeletonLoader = {
25
25
  parts: ["section", "image", "container", "heading", "content", "button"],
26
- baseStyle: ({ border, imageAspectRatio }) => {
27
- const borderStyles = border ? { ...borderRules } : {};
26
+ baseStyle: ({ imageAspectRatio, isBordered }) => {
27
+ const borderStyles = isBordered ? { ...borderRules } : {};
28
28
 
29
29
  return {
30
30
  margin: "auto",
@@ -99,7 +99,7 @@ const fade = () =>
99
99
  const Skeleton = {
100
100
  baseStyle: {
101
101
  borderRadius: "2px",
102
- background: "ui.gray.light-warm",
102
+ background: "ui.gray.light-cool",
103
103
  animation: `${fade()} 1000ms cubic-bezier(0.25, -0.5, 1, 0) infinite`,
104
104
  },
105
105
  };
@@ -8,7 +8,6 @@ const staticValues = {
8
8
  const CustomSlider = {
9
9
  parts: [
10
10
  "container",
11
- "helper",
12
11
  "leftValue",
13
12
  "rightValue",
14
13
  "textInput",
@@ -22,7 +21,7 @@ const CustomSlider = {
22
21
  if (isInvalid) {
23
22
  baseColor = "ui.error.primary";
24
23
  } else if (isDisabled) {
25
- baseColor = "ui.gray.light-cool";
24
+ baseColor = "ui.disabled.primary";
26
25
  }
27
26
 
28
27
  return {
@@ -30,16 +29,14 @@ const CustomSlider = {
30
29
  display: "flex",
31
30
  alignItems: "center",
32
31
  },
33
- helper: {
34
- marginTop: "xs",
35
- },
36
- leftValue: staticValues,
32
+ leftValue: { ...staticValues, color: isDisabled ? "ui.gray.dark" : null },
37
33
  rightValue: {
38
34
  ...staticValues,
39
35
  marginLeft: "s",
40
36
  // If the text input boxes are shown, then there already is
41
37
  // a margin, so we can set this static value to "0".
42
38
  marginRight: showBoxes ? "0" : "s",
39
+ color: isDisabled ? "ui.gray.dark" : null,
43
40
  },
44
41
  textInput: {
45
42
  // Allows for three or more digits present in the
@@ -62,7 +59,7 @@ const CustomSlider = {
62
59
  track: {
63
60
  bgColor: "ui.gray.light-cool",
64
61
  _disabled: {
65
- bgColor: "ui.gray.light-cool",
62
+ bgColor: "ui.disabled.primary",
66
63
  },
67
64
  },
68
65
  thumb: {
@@ -74,6 +71,10 @@ const CustomSlider = {
74
71
  _active: {
75
72
  transform: "translateY(-50%) scale(1.0)",
76
73
  },
74
+ _disabled: {
75
+ bgColor: "ui.disabled.secondary",
76
+ borderColor: "ui.disabled.primary",
77
+ },
77
78
  },
78
79
  };
79
80
  },
@@ -5,8 +5,8 @@ const StatusBadge = {
5
5
  display: "block",
6
6
  fontSize: "-1", // slightly smaller than the default size
7
7
  fontStyle: "italic",
8
- py: "xxs",
9
- px: "xs",
8
+ py: "inset.extranarrow",
9
+ px: "inset.narrow",
10
10
  textAlign: "center",
11
11
  width: "fit-content",
12
12
  },
@@ -1,3 +1,14 @@
1
+ import { baseTDStyles, baseTHStyles } from "./customTable";
2
+ import { textMargin } from "./global";
3
+ import { headings } from "./heading";
4
+ import { baseLinkStyles } from "./link";
5
+ import {
6
+ baseDefinitionStyles,
7
+ baseListStyles,
8
+ baseSectionDefinitionStyles,
9
+ baseUnorderedStyles,
10
+ } from "./list";
11
+
1
12
  const StructuredContent = {
2
13
  parts: ["image", "imageFigure", "imageWrapper"],
3
14
  baseStyle: ({ hasFigureImage, imageAspectRatio, imagePosition }) => {
@@ -15,7 +26,7 @@ const StructuredContent = {
15
26
  ? null
16
27
  : imagePosition === "left"
17
28
  ? "0"
18
- : "m",
29
+ : "l",
19
30
  ],
20
31
  marginRight: [
21
32
  "auto",
@@ -67,6 +78,60 @@ const StructuredContent = {
67
78
  !hasFigureImage || imageAspectRatio === "original" ? "m" : null,
68
79
  ...styles,
69
80
  },
81
+ /** The following styles are meant to target HTML elements that are
82
+ * not rendered from the Reservoir DS. Typically, these HTML elements
83
+ * are added from an API response.
84
+ */
85
+ // This gives Chakra `Box` styles to divs inside the
86
+ // main `StructuredContent` content area.
87
+ ".structuredcontent-body > div": {
88
+ marginTop: "var(--nypl-space-l)",
89
+ marginInlineEnd: "var(--nypl-space-0)",
90
+ marginBottom: "var(--nypl-space-0)",
91
+ marginInlineStart: "var(--nypl-space-0)",
92
+ },
93
+ a: baseLinkStyles,
94
+ ul: {
95
+ ...baseListStyles(),
96
+ listStyle: "none",
97
+ ...baseUnorderedStyles(),
98
+ },
99
+ ol: {
100
+ ...baseListStyles(),
101
+ ...textMargin,
102
+ },
103
+ // For section, h2 in the definition list.
104
+ section: baseSectionDefinitionStyles,
105
+ dl: baseDefinitionStyles.dl,
106
+ dt: baseDefinitionStyles.dt,
107
+ dd: baseDefinitionStyles.dd,
108
+ table: {
109
+ width: "100%",
110
+ th: {
111
+ // These styles, except for `baseTHStyles`, are set from
112
+ // Chakra so they are copied explicitly.
113
+ textAlign: "start",
114
+ paddingInlineStart: "var(--nypl-space-6)",
115
+ paddingInlineEnd: "var(--nypl-space-6)",
116
+ paddingTop: "var(--nypl-space-3)",
117
+ paddingBottom: "var(--nypl-space-3)",
118
+ lineHeight: "var(--nypl-lineHeights-4)",
119
+ ...baseTHStyles(),
120
+ },
121
+ td: {
122
+ // These styles, except for `baseTDStyles`, are set from
123
+ // Chakra so they are copied explicitly.
124
+ textAlign: "start",
125
+ paddingInlineStart: "var(--nypl-space-6)",
126
+ paddingInlineEnd: "var(--nypl-space-6)",
127
+ paddingTop: "var(--nypl-space-4)",
128
+ paddingBottom: "var(--nypl-space-4)",
129
+ lineHeight: "var(--nypl-lineHeights-5)",
130
+ ...baseTDStyles(),
131
+ },
132
+ },
133
+ // h1, h2, h3, h4, h5, h6
134
+ ...headings,
70
135
  };
71
136
  },
72
137
  };
@@ -21,14 +21,14 @@ const tab = {
21
21
  },
22
22
  whiteSpace: "nowrap",
23
23
  _hover: {
24
- bg: "ui.gray.x-light-warm",
24
+ bg: "ui.gray.x-light-cool",
25
25
  borderTopRadius: "sm",
26
26
  borderBottom: "1px solid",
27
27
  borderBottomColor: "ui.black",
28
28
  },
29
29
  _selected: {
30
30
  fontWeight: "bold",
31
- bg: "ui.gray.light-warm",
31
+ bg: "ui.gray.light-cool",
32
32
  border: "0",
33
33
  borderTopRadius: "sm",
34
34
  borderBottom: "3px solid",
@@ -34,21 +34,21 @@ const Template = {
34
34
  };
35
35
  const TemplateHeader = {
36
36
  baseStyle: {
37
- marginBottom: "l", // --nypl-space-l
37
+ marginBottom: "page.hstack", // --nypl-space-l
38
38
  },
39
39
  };
40
40
  const TemplateBreakout = {
41
41
  baseStyle: {
42
42
  ...breakout,
43
43
  width: "100vw",
44
- marginBottom: "l", // --nypl-space-l
44
+ marginBottom: "page.hstack", // --nypl-space-l
45
45
  },
46
46
  };
47
47
  const TemplateContent = {
48
48
  baseStyle: {
49
49
  ...wrapperStyles,
50
50
  display: "block",
51
- marginBottom: "l", // --nypl-space-l
51
+ marginBottom: "page.hstack", // --nypl-space-l
52
52
  },
53
53
  variants: {
54
54
  sidebar: {
@@ -63,13 +63,13 @@ const TemplateContent = {
63
63
  const TemplateContentTop = {
64
64
  baseStyle: {
65
65
  flex: "1 0 100%",
66
- marginBottom: "l", // --nypl-space-l
66
+ marginBottom: "page.hstack", // --nypl-space-l
67
67
  },
68
68
  };
69
69
  const TemplateContentPrimary = {
70
70
  baseStyle: {
71
71
  flex: "1 1",
72
- marginBottom: "l", // --nypl-space-l
72
+ marginBottom: "page.hstack", // --nypl-space-l
73
73
  },
74
74
  variants: {
75
75
  left: {
@@ -84,20 +84,20 @@ const TemplateContentPrimary = {
84
84
  const TemplateContentSidebar = {
85
85
  baseStyle: {
86
86
  flex: "0 0 255px",
87
- order: { md: "1" },
88
- marginBottom: "l", // --nypl-space-l
87
+ order: { md: "page.vstack" },
88
+ marginBottom: "page.hstack", // --nypl-space-l
89
89
  },
90
90
  variants: {
91
91
  left: {
92
92
  marginRight: {
93
93
  base: 0,
94
- md: "xl", // --nypl-space-xl
94
+ md: "page.vstack", // --nypl-space-xl
95
95
  },
96
96
  },
97
97
  right: {
98
98
  marginLeft: {
99
99
  base: 0,
100
- md: "xl", // --nypl-space-xl
100
+ md: "page.vstack", // --nypl-space-xl
101
101
  },
102
102
  },
103
103
  },
@@ -1,4 +1,7 @@
1
- import { activeFocus, helperTextMargin } from "./global";
1
+ import {
2
+ selectTextInputDisabledStyles,
3
+ selectTextInputFocusStyles,
4
+ } from "./global";
2
5
 
3
6
  const input = {
4
7
  bgColor: "ui.white",
@@ -6,18 +9,19 @@ const input = {
6
9
  borderColor: "ui.gray.medium",
7
10
  borderRadius: "sm",
8
11
  fontSize: "text.caption",
9
- py: "xs",
10
- px: "s",
12
+ py: "inset.narrow",
13
+ px: "inset.default",
11
14
  _hover: {
12
15
  borderColor: "ui.gray.dark",
13
16
  },
14
17
  _disabled: {
15
- bgColor: "ui.gray.xx-light-cool",
16
- color: "ui.gray.xdark",
17
- opacity: "1",
18
+ ...selectTextInputDisabledStyles,
19
+ _placeholder: {
20
+ color: "ui.gray.medium",
21
+ },
18
22
  },
19
- _active: activeFocus(),
20
- _focus: activeFocus(),
23
+ _active: selectTextInputFocusStyles,
24
+ _focus: selectTextInputFocusStyles,
21
25
  _placeholder: {
22
26
  color: "ui.gray.dark",
23
27
  fontStyle: "italic",
@@ -31,11 +35,8 @@ const input = {
31
35
  };
32
36
 
33
37
  const TextInput = {
34
- parts: ["helper", "input", "textarea"],
38
+ parts: ["input", "textarea"],
35
39
  baseStyle: {
36
- helper: {
37
- ...helperTextMargin,
38
- },
39
40
  input,
40
41
  textarea: {
41
42
  ...input,
@@ -1,12 +1,16 @@
1
- import { helperTextMargin } from "./global";
2
1
  import { cssVar } from "@chakra-ui/theme-tools";
2
+ import { ToggleSizes } from "../../components/Toggle/ToggleTypes";
3
3
 
4
- const baseStyle = {
5
- label: { alignItems: "start", display: "flex", width: "fit-content" },
6
- helper: {
7
- ...helperTextMargin,
8
- marginLeft: "xxs",
9
- },
4
+ const toggleBaseStyle = ({ isDisabled, size }) => {
5
+ const label = { alignItems: "start", display: "flex", width: "fit-content" };
6
+ const helperErrorText = {
7
+ marginLeft: size === ToggleSizes.Default ? "xxl" : "xl",
8
+ fontStyle: isDisabled ? "italic" : null,
9
+ };
10
+ return {
11
+ label,
12
+ helperErrorText,
13
+ };
10
14
  };
11
15
  const $width = cssVar("switch-track-width");
12
16
  const $height = cssVar("switch-track-height");
@@ -50,7 +54,10 @@ const Switch = {
50
54
  fontSize: "label.default",
51
55
  marginLeft: "xs",
52
56
  marginTop: size === "lg" ? "xxxs" : null,
53
- _disabled: { fontStyle: "italic" },
57
+ _disabled: {
58
+ color: "ui.gray.dark",
59
+ fontStyle: "italic",
60
+ },
54
61
  },
55
62
  thumb: {
56
63
  _disabled: {
@@ -85,8 +92,8 @@ const Switch = {
85
92
  };
86
93
 
87
94
  const Toggle = {
88
- parts: ["helper"],
89
- baseStyle,
95
+ parts: ["helperErrorText"],
96
+ baseStyle: toggleBaseStyle,
90
97
  // Default values
91
98
  defaultProps: {
92
99
  size: "lg",
@@ -11,7 +11,7 @@ const square = {
11
11
  };
12
12
 
13
13
  const invalid = {
14
- backgroundColor: "ui.gray.light-warm",
14
+ backgroundColor: "ui.gray.light-cool",
15
15
  height: "auto",
16
16
  padding: "s",
17
17
  };