@nypl/design-system-react-components 1.0.2 → 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.
- package/README.md +0 -2
- package/dist/components/Slider/Slider.d.ts +1 -2
- package/dist/components/TextInput/TextInput.d.ts +2 -1
- package/dist/design-system-react-components.cjs.development.js +33 -10
- package/dist/design-system-react-components.cjs.development.js.map +1 -1
- package/dist/design-system-react-components.cjs.production.min.js +1 -1
- package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
- package/dist/design-system-react-components.esm.js +33 -10
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/{tests → __tests__}/useCarouselStyles.test.d.ts +0 -0
- package/dist/theme/components/global.d.ts +1 -1
- package/dist/theme/components/radio.d.ts +8 -0
- package/dist/theme/components/template.d.ts +4 -1
- package/package.json +2 -3
- package/CHANGELOG.md +0 -1430
- package/src/__tests__/fileMock.ts +0 -6
- package/src/__tests__/setup.ts +0 -27
- package/src/__tests__/utils/utils.test.ts +0 -18
- package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +0 -42
- package/src/components/Accordion/Accordion.stories.mdx +0 -333
- package/src/components/Accordion/Accordion.test.tsx +0 -237
- package/src/components/Accordion/Accordion.tsx +0 -137
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +0 -734
- package/src/components/Autosuggest/Autosuggest.stories.mdx +0 -75
- package/src/components/Autosuggest/Autosuggest.stories.tsx +0 -211
- package/src/components/Autosuggest/_Autosuggest.scss +0 -51
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +0 -231
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +0 -144
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -98
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +0 -695
- package/src/components/Button/Button.stories.mdx +0 -320
- package/src/components/Button/Button.test.tsx +0 -184
- package/src/components/Button/Button.tsx +0 -95
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -106
- package/src/components/ButtonGroup/ButtonGroup.stories.mdx +0 -178
- package/src/components/ButtonGroup/ButtonGroup.test.tsx +0 -141
- package/src/components/ButtonGroup/ButtonGroup.tsx +0 -100
- package/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap +0 -117
- package/src/components/Card/Card.stories.mdx +0 -1041
- package/src/components/Card/Card.test.tsx +0 -388
- package/src/components/Card/Card.tsx +0 -346
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +0 -568
- package/src/components/Chakra/Box.stories.mdx +0 -52
- package/src/components/Chakra/Center.stories.mdx +0 -96
- package/src/components/Chakra/Flex.stories.mdx +0 -111
- package/src/components/Chakra/Grid.stories.mdx +0 -89
- package/src/components/Chakra/Stack.stories.mdx +0 -109
- package/src/components/Checkbox/Checkbox.stories.mdx +0 -243
- package/src/components/Checkbox/Checkbox.test.tsx +0 -350
- package/src/components/Checkbox/Checkbox.tsx +0 -152
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +0 -661
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +0 -462
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +0 -492
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +0 -173
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +0 -1842
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +0 -163
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +0 -76
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +0 -103
- package/src/components/DatePicker/DatePicker.stories.mdx +0 -452
- package/src/components/DatePicker/DatePicker.test.tsx +0 -940
- package/src/components/DatePicker/DatePicker.tsx +0 -450
- package/src/components/DatePicker/_DatePicker.scss +0 -100
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -908
- package/src/components/Fieldset/Fieldset.stories.mdx +0 -96
- package/src/components/Fieldset/Fieldset.test.tsx +0 -155
- package/src/components/Fieldset/Fieldset.tsx +0 -55
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +0 -89
- package/src/components/Form/Form.stories.mdx +0 -426
- package/src/components/Form/Form.test.tsx +0 -234
- package/src/components/Form/Form.tsx +0 -124
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -115
- package/src/components/Grid/SimpleGrid.stories.mdx +0 -336
- package/src/components/Grid/SimpleGrid.test.tsx +0 -79
- package/src/components/Grid/SimpleGrid.tsx +0 -49
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +0 -23
- package/src/components/Heading/Heading.stories.mdx +0 -187
- package/src/components/Heading/Heading.test.tsx +0 -171
- package/src/components/Heading/Heading.tsx +0 -104
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +0 -90
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +0 -172
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +0 -114
- package/src/components/HelperErrorText/HelperErrorText.tsx +0 -62
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +0 -93
- package/src/components/Hero/Hero.stories.mdx +0 -378
- package/src/components/Hero/Hero.test.tsx +0 -611
- package/src/components/Hero/Hero.tsx +0 -203
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +0 -379
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +0 -73
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +0 -54
- package/src/components/HorizontalRule/HorizontalRule.tsx +0 -27
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +0 -44
- package/src/components/Icons/Icon.stories.mdx +0 -413
- package/src/components/Icons/Icon.test.tsx +0 -120
- package/src/components/Icons/Icon.tsx +0 -187
- package/src/components/Icons/IconSvgs.tsx +0 -64
- package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +0 -129
- package/src/components/Image/Image.stories.mdx +0 -332
- package/src/components/Image/Image.test.tsx +0 -155
- package/src/components/Image/Image.tsx +0 -171
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +0 -269
- package/src/components/Label/Label.stories.mdx +0 -100
- package/src/components/Label/Label.test.tsx +0 -116
- package/src/components/Label/Label.tsx +0 -55
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +0 -45
- package/src/components/Link/Link.stories.mdx +0 -249
- package/src/components/Link/Link.test.tsx +0 -224
- package/src/components/Link/Link.tsx +0 -178
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +0 -286
- package/src/components/List/List.stories.mdx +0 -393
- package/src/components/List/List.test.tsx +0 -265
- package/src/components/List/List.tsx +0 -156
- package/src/components/List/__snapshots__/List.test.tsx.snap +0 -213
- package/src/components/Logo/Logo.stories.mdx +0 -295
- package/src/components/Logo/Logo.test.tsx +0 -116
- package/src/components/Logo/Logo.tsx +0 -151
- package/src/components/Logo/LogoSvgs.tsx +0 -90
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +0 -142
- package/src/components/Modal/Modal.stories.mdx +0 -294
- package/src/components/Modal/Modal.test.tsx +0 -157
- package/src/components/Modal/Modal.tsx +0 -154
- package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +0 -25
- package/src/components/Notification/Notification.stories.mdx +0 -358
- package/src/components/Notification/Notification.test.tsx +0 -279
- package/src/components/Notification/Notification.tsx +0 -224
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +0 -525
- package/src/components/Pagination/Pagination.stories.mdx +0 -184
- package/src/components/Pagination/Pagination.test.tsx +0 -419
- package/src/components/Pagination/Pagination.tsx +0 -269
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -544
- package/src/components/Placeholder/Placeholder.tsx +0 -19
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +0 -360
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +0 -298
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +0 -132
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +0 -434
- package/src/components/Radio/Radio.stories.mdx +0 -216
- package/src/components/Radio/Radio.test.tsx +0 -247
- package/src/components/Radio/Radio.tsx +0 -119
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +0 -451
- package/src/components/RadioGroup/RadioGroup.stories.mdx +0 -479
- package/src/components/RadioGroup/RadioGroup.test.tsx +0 -471
- package/src/components/RadioGroup/RadioGroup.tsx +0 -171
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +0 -1550
- package/src/components/SearchBar/SearchBar.stories.mdx +0 -518
- package/src/components/SearchBar/SearchBar.test.tsx +0 -435
- package/src/components/SearchBar/SearchBar.tsx +0 -210
- package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +0 -1049
- package/src/components/Select/Select.stories.mdx +0 -439
- package/src/components/Select/Select.test.tsx +0 -358
- package/src/components/Select/Select.tsx +0 -183
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +0 -895
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +0 -142
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +0 -116
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +0 -123
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +0 -898
- package/src/components/SkipNavigation/SkipNavigation.stories.mdx +0 -90
- package/src/components/SkipNavigation/SkipNavigation.test.tsx +0 -63
- package/src/components/SkipNavigation/SkipNavigation.tsx +0 -51
- package/src/components/SkipNavigation/__snapshots__/SkipNavigation.test.tsx.snap +0 -130
- package/src/components/Slider/Slider.stories.mdx +0 -628
- package/src/components/Slider/Slider.test.tsx +0 -736
- package/src/components/Slider/Slider.tsx +0 -322
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +0 -2186
- package/src/components/StatusBadge/StatusBadge.stories.mdx +0 -109
- package/src/components/StatusBadge/StatusBadge.test.tsx +0 -70
- package/src/components/StatusBadge/StatusBadge.tsx +0 -35
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +0 -47
- package/src/components/StructuredContent/StructuredContent.stories.mdx +0 -567
- package/src/components/StructuredContent/StructuredContent.test.tsx +0 -435
- package/src/components/StructuredContent/StructuredContent.tsx +0 -139
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +0 -368
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +0 -206
- package/src/components/StyleGuide/Breakpoints.stories.mdx +0 -55
- package/src/components/StyleGuide/Buttons.stories.mdx +0 -194
- package/src/components/StyleGuide/ColorCard.tsx +0 -43
- package/src/components/StyleGuide/Colors.stories.mdx +0 -201
- package/src/components/StyleGuide/DesignTokens.stories.mdx +0 -193
- package/src/components/StyleGuide/Forms.stories.mdx +0 -94
- package/src/components/StyleGuide/Iconography.stories.mdx +0 -142
- package/src/components/StyleGuide/Spacing.stories.mdx +0 -116
- package/src/components/StyleGuide/Typography.stories.mdx +0 -419
- package/src/components/Table/Table.stories.mdx +0 -272
- package/src/components/Table/Table.test.tsx +0 -241
- package/src/components/Table/Table.tsx +0 -152
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +0 -1703
- package/src/components/Tabs/Tabs.stories.mdx +0 -338
- package/src/components/Tabs/Tabs.test.tsx +0 -298
- package/src/components/Tabs/Tabs.tsx +0 -264
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +0 -584
- package/src/components/Template/Template.stories.mdx +0 -695
- package/src/components/Template/Template.test.tsx +0 -309
- package/src/components/Template/Template.tsx +0 -326
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +0 -342
- package/src/components/Text/Text.stories.mdx +0 -103
- package/src/components/Text/Text.test.tsx +0 -63
- package/src/components/Text/Text.tsx +0 -50
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +0 -50
- package/src/components/TextInput/TextInput.stories.mdx +0 -268
- package/src/components/TextInput/TextInput.test.tsx +0 -451
- package/src/components/TextInput/TextInput.tsx +0 -240
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +0 -274
- package/src/components/Toggle/Toggle.stories.mdx +0 -237
- package/src/components/Toggle/Toggle.test.tsx +0 -170
- package/src/components/Toggle/Toggle.tsx +0 -128
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +0 -470
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +0 -212
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +0 -308
- package/src/components/VideoPlayer/VideoPlayer.tsx +0 -188
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +0 -192
- package/src/docs/Chakra.stories.mdx +0 -563
- package/src/docs/Welcome.stories.mdx +0 -148
- package/src/helpers/types.ts +0 -1
- package/src/hooks/tests/useCarouselStyles.test.ts +0 -140
- package/src/hooks/tests/useNYPLTheme.test.tsx +0 -36
- package/src/hooks/useCarouselStyles.stories.mdx +0 -30
- package/src/hooks/useCarouselStyles.ts +0 -35
- package/src/hooks/useNYPLTheme.stories.mdx +0 -98
- package/src/hooks/useNYPLTheme.ts +0 -91
- package/src/hooks/useWindowSize.stories.mdx +0 -23
- package/src/hooks/useWindowSize.ts +0 -40
- package/src/index.ts +0 -136
- package/src/resources.scss +0 -6
- package/src/styles/base/_01-breakpoints.scss +0 -27
- package/src/styles/base/_02-mixins.scss +0 -103
- package/src/styles/base/_place-holder.scss +0 -33
- package/src/styles/space/_space-inline.scss +0 -79
- package/src/styles/space/_space-inset.scss +0 -57
- package/src/styles/space/_space-stack.scss +0 -116
- package/src/styles.scss +0 -23
- package/src/theme/components/accordion.ts +0 -25
- package/src/theme/components/breadcrumb.ts +0 -94
- package/src/theme/components/button.ts +0 -133
- package/src/theme/components/buttonGroup.ts +0 -10
- package/src/theme/components/card.ts +0 -237
- package/src/theme/components/checkbox.ts +0 -110
- package/src/theme/components/checkboxGroup.ts +0 -10
- package/src/theme/components/componentWrapper.ts +0 -14
- package/src/theme/components/customTable.ts +0 -77
- package/src/theme/components/datePicker.ts +0 -17
- package/src/theme/components/fieldset.ts +0 -23
- package/src/theme/components/global.ts +0 -91
- package/src/theme/components/globalMixins.ts +0 -24
- package/src/theme/components/heading.ts +0 -79
- package/src/theme/components/helperErrorText.ts +0 -14
- package/src/theme/components/hero.ts +0 -238
- package/src/theme/components/horizontalRule.ts +0 -17
- package/src/theme/components/icon.ts +0 -88
- package/src/theme/components/image.ts +0 -136
- package/src/theme/components/label.ts +0 -15
- package/src/theme/components/link.ts +0 -63
- package/src/theme/components/list.ts +0 -88
- package/src/theme/components/logo.ts +0 -58
- package/src/theme/components/notification.ts +0 -132
- package/src/theme/components/pagination.ts +0 -17
- package/src/theme/components/progressIndicator.ts +0 -67
- package/src/theme/components/radio.ts +0 -103
- package/src/theme/components/radioGroup.ts +0 -10
- package/src/theme/components/searchBar.ts +0 -19
- package/src/theme/components/select.ts +0 -72
- package/src/theme/components/skeletonLoader.ts +0 -113
- package/src/theme/components/skipNavigation.ts +0 -29
- package/src/theme/components/slider.ts +0 -95
- package/src/theme/components/statusBadge.ts +0 -26
- package/src/theme/components/structuredContent.ts +0 -149
- package/src/theme/components/tabs.ts +0 -109
- package/src/theme/components/template.ts +0 -114
- package/src/theme/components/text.ts +0 -38
- package/src/theme/components/textInput.ts +0 -65
- package/src/theme/components/toggle.ts +0 -109
- package/src/theme/components/videoPlayer.ts +0 -47
- package/src/theme/foundations/breakpoints.ts +0 -24
- package/src/theme/foundations/colors.ts +0 -212
- package/src/theme/foundations/global.ts +0 -43
- package/src/theme/foundations/radii.ts +0 -7
- package/src/theme/foundations/shadows.ts +0 -5
- package/src/theme/foundations/spacing.ts +0 -136
- package/src/theme/foundations/typography.ts +0 -107
- package/src/theme/index.ts +0 -131
- package/src/theme/provider.tsx +0 -9
- package/src/theme/types.ts +0 -1
- package/src/utils/componentCategories.ts +0 -152
- package/src/utils/interfaces.ts +0 -5
- package/src/utils/utils.ts +0 -84
|
@@ -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,336 +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 = <Icon key={name} name={iconNames[name]} size="xxxlarge" />;
|
|
230
|
-
icons.push(iconRender);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
<Canvas>
|
|
234
|
-
<Story name="Other SimpleGrid Examples">
|
|
235
|
-
<SimpleGrid columns={5}>{icons}</SimpleGrid>
|
|
236
|
-
</Story>
|
|
237
|
-
</Canvas>
|
|
238
|
-
|
|
239
|
-
### Images
|
|
240
|
-
|
|
241
|
-
This example is rendering square `Image` components with the `columns` prop set
|
|
242
|
-
to `6`.
|
|
243
|
-
|
|
244
|
-
<Canvas>
|
|
245
|
-
<DSProvider>
|
|
246
|
-
<SimpleGrid columns={6}>
|
|
247
|
-
<Image src="https://placeimg.com/300/300/animals?x=1" alt="" />
|
|
248
|
-
<Image src="https://placeimg.com/300/300/animals?x=2" alt="" />
|
|
249
|
-
<Image src="https://placeimg.com/300/300/animals?x=3" alt="" />
|
|
250
|
-
<Image src="https://placeimg.com/300/300/animals?x=4" alt="" />
|
|
251
|
-
<Image src="https://placeimg.com/300/300/animals?x=5" alt="" />
|
|
252
|
-
<Image src="https://placeimg.com/300/300/animals?x=6" alt="" />
|
|
253
|
-
<Image src="https://placeimg.com/300/300/animals?x=7" alt="" />
|
|
254
|
-
<Image src="https://placeimg.com/300/300/animals?x=8" alt="" />
|
|
255
|
-
<Image src="https://placeimg.com/300/300/animals?x=9" alt="" />
|
|
256
|
-
<Image src="https://placeimg.com/300/300/animals?x=10" alt="" />
|
|
257
|
-
<Image src="https://placeimg.com/300/300/animals?x=11" alt="" />
|
|
258
|
-
<Image src="https://placeimg.com/300/300/animals?x=12" alt="" />
|
|
259
|
-
<Image src="https://placeimg.com/300/300/animals?x=13" alt="" />
|
|
260
|
-
<Image src="https://placeimg.com/300/300/animals?x=14" alt="" />
|
|
261
|
-
<Image src="https://placeimg.com/300/300/animals?x=15" alt="" />
|
|
262
|
-
<Image src="https://placeimg.com/300/300/animals?x=16" alt="" />
|
|
263
|
-
<Image src="https://placeimg.com/300/300/animals?x=17" alt="" />
|
|
264
|
-
<Image src="https://placeimg.com/300/300/animals?x=18" alt="" />
|
|
265
|
-
</SimpleGrid>
|
|
266
|
-
</DSProvider>
|
|
267
|
-
</Canvas>
|
|
268
|
-
|
|
269
|
-
### Horizontal Cards
|
|
270
|
-
|
|
271
|
-
This example is rendering horizontal `Card` components with the `columns` prop
|
|
272
|
-
set to `1`.
|
|
273
|
-
|
|
274
|
-
<Canvas>
|
|
275
|
-
<DSProvider>
|
|
276
|
-
<SimpleGrid columns={1}>
|
|
277
|
-
<Card
|
|
278
|
-
imageProps={{
|
|
279
|
-
alt: "Alt text",
|
|
280
|
-
aspectRatio: "fourByThree",
|
|
281
|
-
src: "https://placeimg.com/400/200/animals",
|
|
282
|
-
}}
|
|
283
|
-
isBordered
|
|
284
|
-
isCentered
|
|
285
|
-
layout="row"
|
|
286
|
-
>
|
|
287
|
-
<CardHeading level="four" id="heading1">
|
|
288
|
-
Card Heading
|
|
289
|
-
</CardHeading>
|
|
290
|
-
<CardContent>
|
|
291
|
-
Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
|
|
292
|
-
Sed posuere consectetur est at lobortis. Cras justo odio, dapibus ac
|
|
293
|
-
facilisis in, egestas eget quam.
|
|
294
|
-
</CardContent>
|
|
295
|
-
</Card>
|
|
296
|
-
<Card
|
|
297
|
-
imageProps={{
|
|
298
|
-
alt: "Alt text",
|
|
299
|
-
aspectRatio: "fourByThree",
|
|
300
|
-
src: "https://placeimg.com/410/210/animals",
|
|
301
|
-
}}
|
|
302
|
-
isBordered
|
|
303
|
-
isCentered
|
|
304
|
-
layout="row"
|
|
305
|
-
>
|
|
306
|
-
<CardHeading level="four" id="heading2">
|
|
307
|
-
Card Heading
|
|
308
|
-
</CardHeading>
|
|
309
|
-
<CardContent>
|
|
310
|
-
Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
|
|
311
|
-
Sed posuere consectetur est at lobortis. Cras justo odio, dapibus ac
|
|
312
|
-
facilisis in, egestas eget quam.
|
|
313
|
-
</CardContent>
|
|
314
|
-
</Card>
|
|
315
|
-
<Card
|
|
316
|
-
imageProps={{
|
|
317
|
-
alt: "Alt text",
|
|
318
|
-
aspectRatio: "fourByThree",
|
|
319
|
-
src: "https://placeimg.com/320/320/animals",
|
|
320
|
-
}}
|
|
321
|
-
isBordered
|
|
322
|
-
isCentered
|
|
323
|
-
layout="row"
|
|
324
|
-
>
|
|
325
|
-
<CardHeading level="four" id="heading3">
|
|
326
|
-
Card Heading
|
|
327
|
-
</CardHeading>
|
|
328
|
-
<CardContent>
|
|
329
|
-
Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
|
|
330
|
-
Sed posuere consectetur est at lobortis. Cras justo odio, dapibus ac
|
|
331
|
-
facilisis in, egestas eget quam.
|
|
332
|
-
</CardContent>
|
|
333
|
-
</Card>
|
|
334
|
-
</SimpleGrid>
|
|
335
|
-
</DSProvider>
|
|
336
|
-
</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;
|