@nypl/design-system-react-components 1.0.0 → 1.0.3-beta

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 (296) hide show
  1. package/README.md +3 -5
  2. package/dist/components/Checkbox/Checkbox.d.ts +0 -1
  3. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -0
  4. package/dist/components/Heading/Heading.d.ts +2 -0
  5. package/dist/components/Logo/Logo.d.ts +1 -1
  6. package/dist/components/Logo/LogoSvgs.d.ts +4 -0
  7. package/dist/components/Slider/Slider.d.ts +1 -2
  8. package/dist/components/TextInput/TextInput.d.ts +2 -1
  9. package/dist/design-system-react-components.cjs.development.js +1038 -674
  10. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  11. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  12. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  13. package/dist/design-system-react-components.esm.js +1039 -675
  14. package/dist/design-system-react-components.esm.js.map +1 -1
  15. package/dist/hooks/{tests → __tests__}/useCarouselStyles.test.d.ts +0 -0
  16. package/dist/theme/components/button.d.ts +1 -0
  17. package/dist/theme/components/card.d.ts +98 -13
  18. package/dist/theme/components/checkboxGroup.d.ts +1 -1
  19. package/dist/theme/components/global.d.ts +2 -2
  20. package/dist/theme/components/heading.d.ts +4 -16
  21. package/dist/theme/components/image.d.ts +6 -0
  22. package/dist/theme/components/radio.d.ts +8 -0
  23. package/dist/theme/components/radioGroup.d.ts +1 -1
  24. package/dist/theme/components/skipNavigation.d.ts +3 -0
  25. package/dist/theme/components/structuredContent.d.ts +0 -5
  26. package/dist/theme/components/template.d.ts +4 -1
  27. package/dist/utils/utils.d.ts +15 -0
  28. package/package.json +6 -7
  29. package/CHANGELOG.md +0 -1399
  30. package/src/__tests__/fileMock.ts +0 -6
  31. package/src/__tests__/setup.ts +0 -27
  32. package/src/__tests__/utils/utils.test.ts +0 -18
  33. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +0 -42
  34. package/src/components/Accordion/Accordion.stories.mdx +0 -361
  35. package/src/components/Accordion/Accordion.test.tsx +0 -237
  36. package/src/components/Accordion/Accordion.tsx +0 -136
  37. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +0 -734
  38. package/src/components/Autosuggest/Autosuggest.stories.mdx +0 -75
  39. package/src/components/Autosuggest/Autosuggest.stories.tsx +0 -211
  40. package/src/components/Autosuggest/_Autosuggest.scss +0 -51
  41. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +0 -231
  42. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +0 -144
  43. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -98
  44. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +0 -695
  45. package/src/components/Button/Button.stories.mdx +0 -320
  46. package/src/components/Button/Button.test.tsx +0 -184
  47. package/src/components/Button/Button.tsx +0 -95
  48. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -106
  49. package/src/components/ButtonGroup/ButtonGroup.stories.mdx +0 -147
  50. package/src/components/ButtonGroup/ButtonGroup.test.tsx +0 -141
  51. package/src/components/ButtonGroup/ButtonGroup.tsx +0 -99
  52. package/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap +0 -117
  53. package/src/components/Card/Card.stories.mdx +0 -1043
  54. package/src/components/Card/Card.test.tsx +0 -388
  55. package/src/components/Card/Card.tsx +0 -345
  56. package/src/components/Card/__snapshots__/Card.test.tsx.snap +0 -568
  57. package/src/components/Chakra/Box.stories.mdx +0 -52
  58. package/src/components/Chakra/Center.stories.mdx +0 -96
  59. package/src/components/Chakra/Flex.stories.mdx +0 -111
  60. package/src/components/Chakra/Grid.stories.mdx +0 -89
  61. package/src/components/Chakra/Stack.stories.mdx +0 -109
  62. package/src/components/Checkbox/Checkbox.stories.mdx +0 -243
  63. package/src/components/Checkbox/Checkbox.test.tsx +0 -319
  64. package/src/components/Checkbox/Checkbox.tsx +0 -166
  65. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +0 -616
  66. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +0 -462
  67. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +0 -492
  68. package/src/components/CheckboxGroup/CheckboxGroup.tsx +0 -173
  69. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +0 -1722
  70. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +0 -163
  71. package/src/components/ComponentWrapper/ComponentWrapper.tsx +0 -67
  72. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +0 -98
  73. package/src/components/DatePicker/DatePicker.stories.mdx +0 -452
  74. package/src/components/DatePicker/DatePicker.test.tsx +0 -940
  75. package/src/components/DatePicker/DatePicker.tsx +0 -450
  76. package/src/components/DatePicker/_DatePicker.scss +0 -100
  77. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -889
  78. package/src/components/Fieldset/Fieldset.stories.mdx +0 -96
  79. package/src/components/Fieldset/Fieldset.test.tsx +0 -155
  80. package/src/components/Fieldset/Fieldset.tsx +0 -55
  81. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +0 -89
  82. package/src/components/Form/Form.stories.mdx +0 -426
  83. package/src/components/Form/Form.test.tsx +0 -234
  84. package/src/components/Form/Form.tsx +0 -124
  85. package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -115
  86. package/src/components/Grid/SimpleGrid.stories.mdx +0 -338
  87. package/src/components/Grid/SimpleGrid.test.tsx +0 -79
  88. package/src/components/Grid/SimpleGrid.tsx +0 -49
  89. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +0 -23
  90. package/src/components/Heading/Heading.stories.mdx +0 -184
  91. package/src/components/Heading/Heading.test.tsx +0 -171
  92. package/src/components/Heading/Heading.tsx +0 -101
  93. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +0 -90
  94. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +0 -172
  95. package/src/components/HelperErrorText/HelperErrorText.test.tsx +0 -114
  96. package/src/components/HelperErrorText/HelperErrorText.tsx +0 -62
  97. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +0 -93
  98. package/src/components/Hero/Hero.stories.mdx +0 -378
  99. package/src/components/Hero/Hero.test.tsx +0 -611
  100. package/src/components/Hero/Hero.tsx +0 -203
  101. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +0 -379
  102. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +0 -73
  103. package/src/components/HorizontalRule/HorizontalRule.test.tsx +0 -54
  104. package/src/components/HorizontalRule/HorizontalRule.tsx +0 -27
  105. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +0 -44
  106. package/src/components/Icons/Icon.stories.mdx +0 -413
  107. package/src/components/Icons/Icon.test.tsx +0 -120
  108. package/src/components/Icons/Icon.tsx +0 -187
  109. package/src/components/Icons/IconSvgs.tsx +0 -64
  110. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +0 -129
  111. package/src/components/Image/Image.stories.mdx +0 -332
  112. package/src/components/Image/Image.test.tsx +0 -155
  113. package/src/components/Image/Image.tsx +0 -171
  114. package/src/components/Image/__snapshots__/Image.test.tsx.snap +0 -269
  115. package/src/components/Label/Label.stories.mdx +0 -100
  116. package/src/components/Label/Label.test.tsx +0 -116
  117. package/src/components/Label/Label.tsx +0 -55
  118. package/src/components/Label/__snapshots__/Label.test.tsx.snap +0 -45
  119. package/src/components/Link/Link.stories.mdx +0 -249
  120. package/src/components/Link/Link.test.tsx +0 -224
  121. package/src/components/Link/Link.tsx +0 -178
  122. package/src/components/Link/__snapshots__/Link.test.tsx.snap +0 -286
  123. package/src/components/List/List.stories.mdx +0 -393
  124. package/src/components/List/List.test.tsx +0 -265
  125. package/src/components/List/List.tsx +0 -156
  126. package/src/components/List/__snapshots__/List.test.tsx.snap +0 -213
  127. package/src/components/Logo/Logo.stories.mdx +0 -290
  128. package/src/components/Logo/Logo.test.tsx +0 -116
  129. package/src/components/Logo/Logo.tsx +0 -147
  130. package/src/components/Logo/LogoSvgs.tsx +0 -82
  131. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +0 -142
  132. package/src/components/Modal/Modal.stories.mdx +0 -301
  133. package/src/components/Modal/Modal.test.tsx +0 -157
  134. package/src/components/Modal/Modal.tsx +0 -154
  135. package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +0 -25
  136. package/src/components/Notification/Notification.stories.mdx +0 -358
  137. package/src/components/Notification/Notification.test.tsx +0 -279
  138. package/src/components/Notification/Notification.tsx +0 -224
  139. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +0 -525
  140. package/src/components/Pagination/Pagination.stories.mdx +0 -184
  141. package/src/components/Pagination/Pagination.test.tsx +0 -419
  142. package/src/components/Pagination/Pagination.tsx +0 -269
  143. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -544
  144. package/src/components/Placeholder/Placeholder.tsx +0 -19
  145. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +0 -360
  146. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +0 -298
  147. package/src/components/ProgressIndicator/ProgressIndicator.tsx +0 -132
  148. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +0 -434
  149. package/src/components/Radio/Radio.stories.mdx +0 -216
  150. package/src/components/Radio/Radio.test.tsx +0 -247
  151. package/src/components/Radio/Radio.tsx +0 -128
  152. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +0 -411
  153. package/src/components/RadioGroup/RadioGroup.stories.mdx +0 -478
  154. package/src/components/RadioGroup/RadioGroup.test.tsx +0 -471
  155. package/src/components/RadioGroup/RadioGroup.tsx +0 -170
  156. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +0 -1430
  157. package/src/components/SearchBar/SearchBar.stories.mdx +0 -518
  158. package/src/components/SearchBar/SearchBar.test.tsx +0 -435
  159. package/src/components/SearchBar/SearchBar.tsx +0 -210
  160. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +0 -1027
  161. package/src/components/Select/Select.stories.mdx +0 -439
  162. package/src/components/Select/Select.test.tsx +0 -358
  163. package/src/components/Select/Select.tsx +0 -181
  164. package/src/components/Select/__snapshots__/Select.test.tsx.snap +0 -885
  165. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +0 -142
  166. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +0 -116
  167. package/src/components/SkeletonLoader/SkeletonLoader.tsx +0 -123
  168. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +0 -898
  169. package/src/components/SkipNavigation/SkipNavigation.stories.mdx +0 -90
  170. package/src/components/SkipNavigation/SkipNavigation.test.tsx +0 -63
  171. package/src/components/SkipNavigation/SkipNavigation.tsx +0 -51
  172. package/src/components/SkipNavigation/__snapshots__/SkipNavigation.test.tsx.snap +0 -130
  173. package/src/components/Slider/Slider.stories.mdx +0 -628
  174. package/src/components/Slider/Slider.test.tsx +0 -736
  175. package/src/components/Slider/Slider.tsx +0 -322
  176. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +0 -2153
  177. package/src/components/StatusBadge/StatusBadge.stories.mdx +0 -109
  178. package/src/components/StatusBadge/StatusBadge.test.tsx +0 -70
  179. package/src/components/StatusBadge/StatusBadge.tsx +0 -35
  180. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +0 -47
  181. package/src/components/StructuredContent/StructuredContent.stories.mdx +0 -567
  182. package/src/components/StructuredContent/StructuredContent.test.tsx +0 -435
  183. package/src/components/StructuredContent/StructuredContent.tsx +0 -139
  184. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +0 -368
  185. package/src/components/StyleGuide/Bidirectionality.stories.mdx +0 -206
  186. package/src/components/StyleGuide/Breakpoints.stories.mdx +0 -55
  187. package/src/components/StyleGuide/Buttons.stories.mdx +0 -194
  188. package/src/components/StyleGuide/ColorCard.tsx +0 -43
  189. package/src/components/StyleGuide/Colors.stories.mdx +0 -201
  190. package/src/components/StyleGuide/DesignTokens.stories.mdx +0 -193
  191. package/src/components/StyleGuide/Forms.stories.mdx +0 -94
  192. package/src/components/StyleGuide/Iconography.stories.mdx +0 -142
  193. package/src/components/StyleGuide/Spacing.stories.mdx +0 -116
  194. package/src/components/StyleGuide/Typography.stories.mdx +0 -419
  195. package/src/components/Table/Table.stories.mdx +0 -276
  196. package/src/components/Table/Table.test.tsx +0 -208
  197. package/src/components/Table/Table.tsx +0 -131
  198. package/src/components/Table/__snapshots__/Table.test.tsx.snap +0 -1703
  199. package/src/components/Tabs/Tabs.stories.mdx +0 -338
  200. package/src/components/Tabs/Tabs.test.tsx +0 -298
  201. package/src/components/Tabs/Tabs.tsx +0 -264
  202. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +0 -584
  203. package/src/components/Template/Template.stories.mdx +0 -691
  204. package/src/components/Template/Template.test.tsx +0 -309
  205. package/src/components/Template/Template.tsx +0 -326
  206. package/src/components/Template/__snapshots__/Template.test.tsx.snap +0 -342
  207. package/src/components/Text/Text.stories.mdx +0 -103
  208. package/src/components/Text/Text.test.tsx +0 -63
  209. package/src/components/Text/Text.tsx +0 -50
  210. package/src/components/Text/__snapshots__/Text.test.tsx.snap +0 -50
  211. package/src/components/TextInput/TextInput.stories.mdx +0 -268
  212. package/src/components/TextInput/TextInput.test.tsx +0 -451
  213. package/src/components/TextInput/TextInput.tsx +0 -240
  214. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +0 -264
  215. package/src/components/Toggle/Toggle.stories.mdx +0 -237
  216. package/src/components/Toggle/Toggle.test.tsx +0 -170
  217. package/src/components/Toggle/Toggle.tsx +0 -126
  218. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +0 -442
  219. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +0 -211
  220. package/src/components/VideoPlayer/VideoPlayer.test.tsx +0 -308
  221. package/src/components/VideoPlayer/VideoPlayer.tsx +0 -188
  222. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +0 -187
  223. package/src/docs/Chakra.stories.mdx +0 -563
  224. package/src/docs/Welcome.stories.mdx +0 -148
  225. package/src/helpers/types.ts +0 -1
  226. package/src/hooks/tests/useCarouselStyles.test.ts +0 -140
  227. package/src/hooks/tests/useNYPLTheme.test.tsx +0 -36
  228. package/src/hooks/useCarouselStyles.stories.mdx +0 -30
  229. package/src/hooks/useCarouselStyles.ts +0 -35
  230. package/src/hooks/useNYPLTheme.stories.mdx +0 -98
  231. package/src/hooks/useNYPLTheme.ts +0 -91
  232. package/src/hooks/useWindowSize.stories.mdx +0 -23
  233. package/src/hooks/useWindowSize.ts +0 -40
  234. package/src/index.ts +0 -136
  235. package/src/resources.scss +0 -6
  236. package/src/styles/base/_01-breakpoints.scss +0 -27
  237. package/src/styles/base/_02-mixins.scss +0 -103
  238. package/src/styles/base/_place-holder.scss +0 -33
  239. package/src/styles/space/_space-inline.scss +0 -79
  240. package/src/styles/space/_space-inset.scss +0 -57
  241. package/src/styles/space/_space-stack.scss +0 -116
  242. package/src/styles.scss +0 -23
  243. package/src/theme/components/accordion.ts +0 -25
  244. package/src/theme/components/breadcrumb.ts +0 -94
  245. package/src/theme/components/button.ts +0 -132
  246. package/src/theme/components/buttonGroup.ts +0 -10
  247. package/src/theme/components/card.ts +0 -231
  248. package/src/theme/components/checkbox.ts +0 -110
  249. package/src/theme/components/checkboxGroup.ts +0 -10
  250. package/src/theme/components/componentWrapper.ts +0 -14
  251. package/src/theme/components/customTable.ts +0 -77
  252. package/src/theme/components/datePicker.ts +0 -17
  253. package/src/theme/components/fieldset.ts +0 -23
  254. package/src/theme/components/global.ts +0 -91
  255. package/src/theme/components/globalMixins.ts +0 -24
  256. package/src/theme/components/heading.ts +0 -79
  257. package/src/theme/components/helperErrorText.ts +0 -14
  258. package/src/theme/components/hero.ts +0 -238
  259. package/src/theme/components/horizontalRule.ts +0 -17
  260. package/src/theme/components/icon.ts +0 -88
  261. package/src/theme/components/image.ts +0 -135
  262. package/src/theme/components/label.ts +0 -15
  263. package/src/theme/components/link.ts +0 -63
  264. package/src/theme/components/list.ts +0 -88
  265. package/src/theme/components/logo.ts +0 -58
  266. package/src/theme/components/notification.ts +0 -132
  267. package/src/theme/components/pagination.ts +0 -17
  268. package/src/theme/components/progressIndicator.ts +0 -67
  269. package/src/theme/components/radio.ts +0 -103
  270. package/src/theme/components/radioGroup.ts +0 -10
  271. package/src/theme/components/searchBar.ts +0 -19
  272. package/src/theme/components/select.ts +0 -72
  273. package/src/theme/components/skeletonLoader.ts +0 -113
  274. package/src/theme/components/skipNavigation.ts +0 -26
  275. package/src/theme/components/slider.ts +0 -95
  276. package/src/theme/components/statusBadge.ts +0 -26
  277. package/src/theme/components/structuredContent.ts +0 -149
  278. package/src/theme/components/tabs.ts +0 -109
  279. package/src/theme/components/template.ts +0 -114
  280. package/src/theme/components/text.ts +0 -38
  281. package/src/theme/components/textInput.ts +0 -65
  282. package/src/theme/components/toggle.ts +0 -109
  283. package/src/theme/components/videoPlayer.ts +0 -47
  284. package/src/theme/foundations/breakpoints.ts +0 -24
  285. package/src/theme/foundations/colors.ts +0 -212
  286. package/src/theme/foundations/global.ts +0 -43
  287. package/src/theme/foundations/radii.ts +0 -7
  288. package/src/theme/foundations/shadows.ts +0 -5
  289. package/src/theme/foundations/spacing.ts +0 -136
  290. package/src/theme/foundations/typography.ts +0 -107
  291. package/src/theme/index.ts +0 -131
  292. package/src/theme/provider.tsx +0 -9
  293. package/src/theme/types.ts +0 -1
  294. package/src/utils/componentCategories.ts +0 -152
  295. package/src/utils/interfaces.ts +0 -5
  296. package/src/utils/utils.ts +0 -44
@@ -1,124 +0,0 @@
1
- import { chakra } from "@chakra-ui/react";
2
- import * as React from "react";
3
-
4
- import SimpleGrid, { GridGaps } from "../Grid/SimpleGrid";
5
-
6
- interface FormBaseProps {
7
- /** className to be applied to FormRow, FormField, and Form */
8
- className?: string;
9
- /** Optional spacing size; if omitted, the default `large` (2rem / 32px)
10
- * spacing will be used; ```IMPORTANT: for general form layout, this prop
11
- * should not be used``` */
12
- gap?: GridGaps;
13
- /** ID that other components can cross reference (internal use) */
14
- id: string;
15
- }
16
-
17
- export interface FormChildProps extends Partial<FormBaseProps> {}
18
-
19
- export interface FormProps extends FormBaseProps {
20
- /** Optional form `action` attribute */
21
- action?: string;
22
- /** Optional form `method` attribute */
23
- method?: "get" | "post";
24
- /** Function to call for the `onSubmit` form event. */
25
- onSubmit?: (e: React.FormEvent<HTMLFormElement>) => void;
26
- }
27
-
28
- /** FormRow child-component */
29
- export const FormRow = chakra(
30
- (props: React.PropsWithChildren<FormChildProps>) => {
31
- const { children, className, gap, id, ...rest } = props;
32
- const count = React.Children.count(children);
33
- const alteredChildren = React.Children.map(
34
- children as JSX.Element,
35
- (child: React.ReactElement, i) => {
36
- if (!child) return null;
37
- if (child.type === FormField || child.props.mdxType === "FormField") {
38
- return React.cloneElement(child, { id: `${id}-grandchild${i}` });
39
- }
40
- console.warn(
41
- "NYPL Reservoir FormRow: Children must be `FormField` components."
42
- );
43
- return null;
44
- }
45
- );
46
- return (
47
- <SimpleGrid
48
- columns={count}
49
- className={className}
50
- gap={gap}
51
- id={id}
52
- {...rest}
53
- >
54
- {alteredChildren}
55
- </SimpleGrid>
56
- );
57
- }
58
- );
59
-
60
- /** FormField child-component */
61
- export const FormField = chakra(
62
- (props: React.PropsWithChildren<FormChildProps>) => {
63
- const { children, className, gap, id, ...rest } = props;
64
- return (
65
- <SimpleGrid columns={1} className={className} gap={gap} id={id} {...rest}>
66
- {children}
67
- </SimpleGrid>
68
- );
69
- }
70
- );
71
-
72
- /** Main Form component */
73
- export const Form = chakra(
74
- (props: React.PropsWithChildren<FormProps>) => {
75
- const {
76
- action,
77
- children,
78
- className,
79
- gap = "grid.l",
80
- id,
81
- method,
82
- onSubmit,
83
- ...rest
84
- } = props;
85
-
86
- if (!id) {
87
- console.warn(
88
- "NYPL Reservoir Form: This component's required `id` prop was not passed."
89
- );
90
- }
91
-
92
- const attributes: Partial<FormProps> = {};
93
- action && (attributes["action"] = action);
94
-
95
- method &&
96
- (method === "get" || method === "post") &&
97
- (attributes["method"] = method);
98
-
99
- const alteredChildren = React.Children.map(
100
- children as JSX.Element,
101
- (child: React.ReactElement, i) => {
102
- return React.cloneElement(child, { gap, id: `${id}-child${i}` });
103
- }
104
- );
105
-
106
- return (
107
- <form
108
- aria-label="form"
109
- className={className}
110
- id={id}
111
- onSubmit={onSubmit}
112
- {...attributes}
113
- {...rest}
114
- >
115
- <SimpleGrid columns={1} gap={gap} id={`${id}-parent`}>
116
- {alteredChildren}
117
- </SimpleGrid>
118
- </form>
119
- );
120
- },
121
- { shouldForwardProp: () => true }
122
- );
123
-
124
- export default Form;
@@ -1,115 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`Form Snapshot Renders the UI snapshot correctly 1`] = `
4
- <form
5
- aria-label="form"
6
- className="css-0"
7
- id="snapshot-form"
8
- >
9
- <div
10
- className="css-fadkce"
11
- id="snapshot-form-parent"
12
- >
13
- <div
14
- className="css-dofnwd"
15
- id="snapshot-form-child0"
16
- >
17
- <div
18
- className="css-7ajbp2"
19
- id="snapshot-form-child0-grandchild0"
20
- >
21
- Form Field 1
22
- </div>
23
- <div
24
- className="css-7ajbp2"
25
- id="snapshot-form-child0-grandchild1"
26
- >
27
- Form Field 2
28
- </div>
29
- <div
30
- className="css-7ajbp2"
31
- id="snapshot-form-child0-grandchild2"
32
- >
33
- Form Field 3
34
- </div>
35
- </div>
36
- </div>
37
- </form>
38
- `;
39
-
40
- exports[`Form Snapshot Renders the UI snapshot correctly 2`] = `
41
- <form
42
- aria-label="form"
43
- className="css-qvgr6z"
44
- color="ui.error.primary"
45
- id="chakra"
46
- p="20px"
47
- >
48
- <div
49
- className="css-fadkce"
50
- id="chakra-parent"
51
- >
52
- <div
53
- className="css-dofnwd"
54
- id="chakra-child0"
55
- >
56
- <div
57
- className="css-7ajbp2"
58
- id="chakra-child0-grandchild0"
59
- >
60
- Form Field 1
61
- </div>
62
- <div
63
- className="css-7ajbp2"
64
- id="chakra-child0-grandchild1"
65
- >
66
- Form Field 2
67
- </div>
68
- <div
69
- className="css-7ajbp2"
70
- id="chakra-child0-grandchild2"
71
- >
72
- Form Field 3
73
- </div>
74
- </div>
75
- </div>
76
- </form>
77
- `;
78
-
79
- exports[`Form Snapshot Renders the UI snapshot correctly 3`] = `
80
- <form
81
- aria-label="form"
82
- className="css-0"
83
- data-testid="props"
84
- id="props"
85
- >
86
- <div
87
- className="css-fadkce"
88
- id="props-parent"
89
- >
90
- <div
91
- className="css-dofnwd"
92
- id="props-child0"
93
- >
94
- <div
95
- className="css-7ajbp2"
96
- id="props-child0-grandchild0"
97
- >
98
- Form Field 1
99
- </div>
100
- <div
101
- className="css-7ajbp2"
102
- id="props-child0-grandchild1"
103
- >
104
- Form Field 2
105
- </div>
106
- <div
107
- className="css-7ajbp2"
108
- id="props-child0-grandchild2"
109
- >
110
- Form Field 3
111
- </div>
112
- </div>
113
- </div>
114
- </form>
115
- `;
@@ -1,338 +0,0 @@
1
- import {
2
- ArgsTable,
3
- Canvas,
4
- Description,
5
- Meta,
6
- Story,
7
- } from "@storybook/addon-docs";
8
- import { withDesign } from "storybook-addon-designs";
9
-
10
- import SimpleGrid from "./SimpleGrid";
11
- import Card, { CardHeading, CardContent, CardActions } from "../Card/Card";
12
- import Icon from "../Icons/Icon";
13
- import Image from "../Image/Image";
14
- import { getCategory } from "../../utils/componentCategories";
15
- import DSProvider from "../../theme/provider";
16
-
17
- <Meta
18
- title={getCategory("SimpleGrid")}
19
- component={SimpleGrid}
20
- decorators={[withDesign]}
21
- parameters={{
22
- design: {
23
- type: "figma",
24
- url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36835%3A26613",
25
- },
26
- jest: ["SimpleGrid.test.tsx"],
27
- }}
28
- argTypes={{
29
- className: { control: false },
30
- columns: {
31
- control: { min: 2, type: "number" },
32
- },
33
- gap: {
34
- control: { type: "select" },
35
- table: { defaultValue: { summary: "grid.l" } },
36
- options: [
37
- "grid.xxs",
38
- "grid.xs",
39
- "grid.s",
40
- "grid.m",
41
- "grid.l",
42
- "grid.xl",
43
- "grid.xxl",
44
- ],
45
- },
46
- id: { control: false },
47
- }}
48
- />
49
-
50
- # SimpleGrid
51
-
52
- | Component Version | DS Version |
53
- | ----------------- | ---------- |
54
- | Added | `0.25.1` |
55
- | Latest | `0.28.0` |
56
-
57
- ## Table of Contents
58
-
59
- - [Overview](#overview)
60
- - [Component Props](#component-props)
61
- - [Accessibility](#accessibility)
62
- - [Other SimpleGrid Examples](#other-simplegrid-examples)
63
-
64
- ## Overview
65
-
66
- <Description of={SimpleGrid} />
67
-
68
- The `SimpleGrid` component is used to render UI elements in a uniform grid layout,
69
- with the column widths and grid spacing fixed throughout the grid.
70
-
71
- The NYPL standards for the items per row in a grid is `3` for desktop, `2` for
72
- tablet and `1` for mobile. By default, the `SimpleGrid` component uses these
73
- standards and the `columns` prop is optional. If the `columns` prop is used, the
74
- tablet breakpoint will be dropped and only the mobile breakpoint (1 item per row)
75
- will be triggered.
76
-
77
- ## Component Props
78
-
79
- <Canvas withToolbar>
80
- <Story
81
- name="SimpleGrid with Controls"
82
- args={{
83
- className: undefined,
84
- columns: undefined,
85
- gap: "grid.l",
86
- id: "simpleGrid-id",
87
- }}
88
- >
89
- {(args) => (
90
- <SimpleGrid {...args}>
91
- <Card
92
- imageProps={{
93
- alt: "Alt text",
94
- aspectRatio: "twoByOne",
95
- src: "https://placeimg.com/400/220/animals",
96
- }}
97
- >
98
- <CardHeading level="three">Card Heading</CardHeading>
99
- <CardContent>
100
- Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
101
- libero, a pharetra augue.
102
- </CardContent>
103
- </Card>
104
- <Card
105
- imageProps={{
106
- alt: "Alt text",
107
- aspectRatio: "twoByOne",
108
- src: "https://placeimg.com/400/220/animals",
109
- }}
110
- >
111
- <CardHeading level="three">Card Heading</CardHeading>
112
- <CardContent>
113
- Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
114
- libero, a pharetra augue.
115
- </CardContent>
116
- </Card>
117
- <Card
118
- imageProps={{
119
- alt: "Alt text",
120
- aspectRatio: "twoByOne",
121
- src: "https://placeimg.com/400/240/animals",
122
- }}
123
- >
124
- <CardHeading level="three">Card Heading</CardHeading>
125
- <CardContent>
126
- Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
127
- libero, a pharetra augue.
128
- </CardContent>
129
- </Card>
130
- <Card
131
- imageProps={{
132
- alt: "Alt text",
133
- aspectRatio: "twoByOne",
134
- src: "https://placeimg.com/400/260/animals",
135
- }}
136
- >
137
- <CardHeading level="three">Card Heading</CardHeading>
138
- <CardContent>
139
- Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
140
- libero, a pharetra augue.
141
- </CardContent>
142
- </Card>
143
- <Card
144
- imageProps={{
145
- alt: "Alt text",
146
- aspectRatio: "twoByOne",
147
- src: "https://placeimg.com/400/320/animals",
148
- }}
149
- >
150
- <CardHeading level="three">Card Heading</CardHeading>
151
- <CardContent>
152
- Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
153
- libero, a pharetra augue.
154
- </CardContent>
155
- </Card>
156
- <Card
157
- imageProps={{
158
- alt: "Alt text",
159
- aspectRatio: "twoByOne",
160
- src: "https://placeimg.com/400/300/animals",
161
- }}
162
- >
163
- <CardHeading level="three">Card Heading</CardHeading>
164
- <CardContent>
165
- Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
166
- libero, a pharetra augue.
167
- </CardContent>
168
- </Card>
169
- </SimpleGrid>
170
- )}
171
- </Story>
172
- </Canvas>
173
-
174
- <ArgsTable story="SimpleGrid with Controls" />
175
-
176
- ## Accessibility
177
-
178
- The CSS grid layout properties are used for the `SimpleGrid` component. We don't
179
- recommend using property rules that change the visual order of elements on the
180
- page that don't match with its DOM order. This is because a screenreader won't
181
- pick up `SimpleGrid` CSS rules and will read the page in the expected DOM order
182
- rather than the visual order.
183
-
184
- Resources:
185
-
186
- - [MDN CSS Grid Layout and Accessibility](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_Layout_and_Accessibility)
187
-
188
- ## Other SimpleGrid Examples
189
-
190
- ### Icons
191
-
192
- This example is rendering `Icon` components with the `columns` prop set to `5`.
193
-
194
- export const icons = [];
195
- export const iconNames = [
196
- "accessibilityFull",
197
- "accessibilityPartial",
198
- "actionCheckCircle",
199
- "actionHelpDefault",
200
- "actionHelpOutline",
201
- "alertNotificationImportant",
202
- "actionLaunch",
203
- "arrow",
204
- "check",
205
- "clock",
206
- "close",
207
- "download",
208
- "errorFilled",
209
- "errorOutline",
210
- "fileTypeAudio",
211
- "fileTypeDoc",
212
- "fileTypeGenericDoc",
213
- "fileTypeImage",
214
- "fileTypePdf",
215
- "fileTypeSpreadsheet",
216
- "fileTypeVideo",
217
- "headset",
218
- "minus",
219
- "plus",
220
- "search",
221
- "speakerNotes",
222
- "utilityAccountFilled",
223
- "utilityAccountUnfilled",
224
- "utilityHamburger",
225
- "utilitySearch",
226
- ];
227
- for (const name in iconNames) {
228
- const iname = `Example icon: ${iconNames[name]}`;
229
- const iconRender = (
230
- <Icon key={name} name={iconNames[name]} size="xxxlarge" title={iname} />
231
- );
232
- icons.push(iconRender);
233
- }
234
-
235
- <Canvas>
236
- <Story name="Other SimpleGrid Examples">
237
- <SimpleGrid columns={5}>{icons}</SimpleGrid>
238
- </Story>
239
- </Canvas>
240
-
241
- ### Images
242
-
243
- This example is rendering square `Image` components with the `columns` prop set
244
- to `6`.
245
-
246
- <Canvas>
247
- <DSProvider>
248
- <SimpleGrid columns={6}>
249
- <Image src="https://placeimg.com/300/300/animals?x=1" alt="" />
250
- <Image src="https://placeimg.com/300/300/animals?x=2" alt="" />
251
- <Image src="https://placeimg.com/300/300/animals?x=3" alt="" />
252
- <Image src="https://placeimg.com/300/300/animals?x=4" alt="" />
253
- <Image src="https://placeimg.com/300/300/animals?x=5" alt="" />
254
- <Image src="https://placeimg.com/300/300/animals?x=6" alt="" />
255
- <Image src="https://placeimg.com/300/300/animals?x=7" alt="" />
256
- <Image src="https://placeimg.com/300/300/animals?x=8" alt="" />
257
- <Image src="https://placeimg.com/300/300/animals?x=9" alt="" />
258
- <Image src="https://placeimg.com/300/300/animals?x=10" alt="" />
259
- <Image src="https://placeimg.com/300/300/animals?x=11" alt="" />
260
- <Image src="https://placeimg.com/300/300/animals?x=12" alt="" />
261
- <Image src="https://placeimg.com/300/300/animals?x=13" alt="" />
262
- <Image src="https://placeimg.com/300/300/animals?x=14" alt="" />
263
- <Image src="https://placeimg.com/300/300/animals?x=15" alt="" />
264
- <Image src="https://placeimg.com/300/300/animals?x=16" alt="" />
265
- <Image src="https://placeimg.com/300/300/animals?x=17" alt="" />
266
- <Image src="https://placeimg.com/300/300/animals?x=18" alt="" />
267
- </SimpleGrid>
268
- </DSProvider>
269
- </Canvas>
270
-
271
- ### Horizontal Cards
272
-
273
- This example is rendering horizontal `Card` components with the `columns` prop
274
- set to `1`.
275
-
276
- <Canvas>
277
- <DSProvider>
278
- <SimpleGrid columns={1}>
279
- <Card
280
- imageProps={{
281
- alt: "Alt text",
282
- aspectRatio: "fourByThree",
283
- src: "https://placeimg.com/400/200/animals",
284
- }}
285
- isBordered
286
- isCentered
287
- layout="row"
288
- >
289
- <CardHeading level="four" id="heading1">
290
- Card Heading
291
- </CardHeading>
292
- <CardContent>
293
- Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
294
- Sed posuere consectetur est at lobortis. Cras justo odio, dapibus ac
295
- facilisis in, egestas eget quam.
296
- </CardContent>
297
- </Card>
298
- <Card
299
- imageProps={{
300
- alt: "Alt text",
301
- aspectRatio: "fourByThree",
302
- src: "https://placeimg.com/410/210/animals",
303
- }}
304
- isBordered
305
- isCentered
306
- layout="row"
307
- >
308
- <CardHeading level="four" id="heading2">
309
- Card Heading
310
- </CardHeading>
311
- <CardContent>
312
- Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
313
- Sed posuere consectetur est at lobortis. Cras justo odio, dapibus ac
314
- facilisis in, egestas eget quam.
315
- </CardContent>
316
- </Card>
317
- <Card
318
- imageProps={{
319
- alt: "Alt text",
320
- aspectRatio: "fourByThree",
321
- src: "https://placeimg.com/320/320/animals",
322
- }}
323
- isBordered
324
- isCentered
325
- layout="row"
326
- >
327
- <CardHeading level="four" id="heading3">
328
- Card Heading
329
- </CardHeading>
330
- <CardContent>
331
- Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
332
- Sed posuere consectetur est at lobortis. Cras justo odio, dapibus ac
333
- facilisis in, egestas eget quam.
334
- </CardContent>
335
- </Card>
336
- </SimpleGrid>
337
- </DSProvider>
338
- </Canvas>
@@ -1,79 +0,0 @@
1
- import * as React from "react";
2
- import { render } from "@testing-library/react";
3
- import { axe } from "jest-axe";
4
- import renderer from "react-test-renderer";
5
-
6
- import Card, { CardHeading, CardContent } from "../Card/Card";
7
- import SimpleGrid from "./SimpleGrid";
8
-
9
- describe("Grid Accessibility", () => {
10
- it("passes axe accessibility test with children components", async () => {
11
- const { container } = render(
12
- <SimpleGrid>
13
- <Card
14
- imageProps={{
15
- alt: "Alt text",
16
- aspectRatio: "twoByOne",
17
- src: "https://placeimg.com/500/200/animals",
18
- }}
19
- >
20
- <CardHeading level="two">Card Heading</CardHeading>
21
- <CardContent>
22
- Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
23
- libero, a pharetra augue.
24
- </CardContent>
25
- </Card>
26
- <Card
27
- imageProps={{
28
- alt: "Alt text",
29
- aspectRatio: "twoByOne",
30
- src: "https://placeimg.com/400/220/animals",
31
- }}
32
- >
33
- <CardHeading level="three">Card Heading</CardHeading>
34
- <CardContent>
35
- Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
36
- libero, a pharetra augue.
37
- </CardContent>
38
- </Card>
39
- <Card
40
- imageProps={{
41
- alt: "Alt text",
42
- aspectRatio: "twoByOne",
43
- src: "https://placeimg.com/400/240/animals",
44
- }}
45
- >
46
- <CardHeading level="three">Card Heading</CardHeading>
47
- <CardContent>
48
- Vestibulum id ligula porta felis euismod semper. Nulla vitae elit
49
- libero, a pharetra augue.
50
- </CardContent>
51
- </Card>
52
- </SimpleGrid>
53
- );
54
- expect(await axe(container)).toHaveNoViolations();
55
- });
56
- });
57
-
58
- describe("SimpleGrid", () => {
59
- it("Renders the SimpleGrid UI snapshot correctly", () => {
60
- const tree = renderer.create(<SimpleGrid id="test-grid" />).toJSON();
61
- const withChakraProps = renderer
62
- .create(<SimpleGrid id="chakra" p="20px" color="ui.error.primary" />)
63
- .toJSON();
64
- const withOtherProps = renderer
65
- .create(<SimpleGrid id="props" data-testid="props" />)
66
- .toJSON();
67
-
68
- expect(tree).toMatchSnapshot();
69
- expect(withChakraProps).toMatchSnapshot();
70
- expect(withOtherProps).toMatchSnapshot();
71
- });
72
-
73
- it("Renders SimpleGrid component", () => {
74
- const utils = render(<SimpleGrid id="test-grid-render" />);
75
- expect(
76
- utils.container.querySelector("#test-grid-render")
77
- ).toBeInTheDocument();
78
- });
79
- });
@@ -1,49 +0,0 @@
1
- import { chakra, SimpleGrid as ChakraSimpleGrid } from "@chakra-ui/react";
2
- import * as React from "react";
3
-
4
- export type GridGaps =
5
- | "grid.xxs"
6
- | "grid.xs"
7
- | "grid.s"
8
- | "grid.m"
9
- | "grid.l"
10
- | "grid.xl"
11
- | "grid.xxl";
12
- export interface SimpleGridProps {
13
- /** Additional class name. */
14
- className?: string;
15
- /** Optional numeric value to override the default column count; the default
16
- * column count is 3. */
17
- columns?: number;
18
- /** Optional gap size; if omitted, the default `large` (2rem / 32px) spacing
19
- * will be used; `IMPORTANT: for standard grid layouts, this prop should
20
- * not be used.` */
21
- gap?: GridGaps;
22
- /** ID that other components can cross reference for accessibility purposes */
23
- id?: string;
24
- }
25
-
26
- export const SimpleGrid = chakra(
27
- (props: React.PropsWithChildren<SimpleGridProps>) => {
28
- const { children, columns, className, gap = "grid.l", id, ...rest } = props;
29
-
30
- const responsiveCols = columns
31
- ? { base: 1, md: columns }
32
- : { base: 1, md: 2, lg: 3 };
33
-
34
- return (
35
- <ChakraSimpleGrid
36
- columns={responsiveCols}
37
- gap={gap}
38
- id={id}
39
- className={className}
40
- {...rest}
41
- >
42
- {children}
43
- </ChakraSimpleGrid>
44
- );
45
- },
46
- { shouldForwardProp: () => true }
47
- );
48
-
49
- export default SimpleGrid;