@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.
- package/README.md +3 -5
- package/dist/components/Checkbox/Checkbox.d.ts +0 -1
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -0
- package/dist/components/Heading/Heading.d.ts +2 -0
- package/dist/components/Logo/Logo.d.ts +1 -1
- package/dist/components/Logo/LogoSvgs.d.ts +4 -0
- 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 +1038 -674
- 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 +1039 -675
- 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/button.d.ts +1 -0
- package/dist/theme/components/card.d.ts +98 -13
- package/dist/theme/components/checkboxGroup.d.ts +1 -1
- package/dist/theme/components/global.d.ts +2 -2
- package/dist/theme/components/heading.d.ts +4 -16
- package/dist/theme/components/image.d.ts +6 -0
- package/dist/theme/components/radio.d.ts +8 -0
- package/dist/theme/components/radioGroup.d.ts +1 -1
- package/dist/theme/components/skipNavigation.d.ts +3 -0
- package/dist/theme/components/structuredContent.d.ts +0 -5
- package/dist/theme/components/template.d.ts +4 -1
- package/dist/utils/utils.d.ts +15 -0
- package/package.json +6 -7
- package/CHANGELOG.md +0 -1399
- 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 -361
- package/src/components/Accordion/Accordion.test.tsx +0 -237
- package/src/components/Accordion/Accordion.tsx +0 -136
- 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 -147
- package/src/components/ButtonGroup/ButtonGroup.test.tsx +0 -141
- package/src/components/ButtonGroup/ButtonGroup.tsx +0 -99
- package/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap +0 -117
- package/src/components/Card/Card.stories.mdx +0 -1043
- package/src/components/Card/Card.test.tsx +0 -388
- package/src/components/Card/Card.tsx +0 -345
- 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 -319
- package/src/components/Checkbox/Checkbox.tsx +0 -166
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +0 -616
- 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 -1722
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +0 -163
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +0 -67
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +0 -98
- 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 -889
- 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 -338
- 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 -184
- package/src/components/Heading/Heading.test.tsx +0 -171
- package/src/components/Heading/Heading.tsx +0 -101
- 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 -290
- package/src/components/Logo/Logo.test.tsx +0 -116
- package/src/components/Logo/Logo.tsx +0 -147
- package/src/components/Logo/LogoSvgs.tsx +0 -82
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +0 -142
- package/src/components/Modal/Modal.stories.mdx +0 -301
- 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 -128
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +0 -411
- package/src/components/RadioGroup/RadioGroup.stories.mdx +0 -478
- package/src/components/RadioGroup/RadioGroup.test.tsx +0 -471
- package/src/components/RadioGroup/RadioGroup.tsx +0 -170
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +0 -1430
- 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 -1027
- 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 -181
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +0 -885
- 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 -2153
- 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 -276
- package/src/components/Table/Table.test.tsx +0 -208
- package/src/components/Table/Table.tsx +0 -131
- 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 -691
- 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 -264
- 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 -126
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +0 -442
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +0 -211
- 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 -187
- 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 -132
- package/src/theme/components/buttonGroup.ts +0 -10
- package/src/theme/components/card.ts +0 -231
- 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 -135
- 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 -26
- 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 -44
|
@@ -1,96 +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 Fieldset from "./Fieldset";
|
|
11
|
-
import { getCategory } from "../../utils/componentCategories";
|
|
12
|
-
import DSProvider from "../../theme/provider";
|
|
13
|
-
|
|
14
|
-
<Meta
|
|
15
|
-
title={getCategory("Fieldset")}
|
|
16
|
-
component={Fieldset}
|
|
17
|
-
decorators={[withDesign]}
|
|
18
|
-
parameters={{
|
|
19
|
-
jest: ["Fieldset.test.tsx"],
|
|
20
|
-
}}
|
|
21
|
-
argTypes={{
|
|
22
|
-
children: { table: { disable: true } },
|
|
23
|
-
className: { control: false },
|
|
24
|
-
id: { control: false },
|
|
25
|
-
isLegendHidden: {
|
|
26
|
-
table: { defaultValue: { summary: false } },
|
|
27
|
-
},
|
|
28
|
-
isRequired: {
|
|
29
|
-
table: { defaultValue: { summary: false } },
|
|
30
|
-
},
|
|
31
|
-
showRequiredLabel: {
|
|
32
|
-
table: { defaultValue: { summary: false } },
|
|
33
|
-
},
|
|
34
|
-
}}
|
|
35
|
-
/>
|
|
36
|
-
|
|
37
|
-
# Fieldset
|
|
38
|
-
|
|
39
|
-
| Component Version | DS Version |
|
|
40
|
-
| ----------------- | ---------- |
|
|
41
|
-
| Added | `0.25.3` |
|
|
42
|
-
| Latest | `0.26.0` |
|
|
43
|
-
|
|
44
|
-
## Table of Contents
|
|
45
|
-
|
|
46
|
-
- [Overview](#overview)
|
|
47
|
-
- [Component Props](#component-props)
|
|
48
|
-
- [Accessibility](#accessibility)
|
|
49
|
-
|
|
50
|
-
## Overview
|
|
51
|
-
|
|
52
|
-
<Description of={Fieldset} />
|
|
53
|
-
|
|
54
|
-
## Component Props
|
|
55
|
-
|
|
56
|
-
<Canvas withToolbar>
|
|
57
|
-
<Story
|
|
58
|
-
name="Fieldset"
|
|
59
|
-
args={{
|
|
60
|
-
className: undefined,
|
|
61
|
-
id: "fieldset-id",
|
|
62
|
-
isLegendHidden: false,
|
|
63
|
-
isRequired: false,
|
|
64
|
-
legendText: "This is the legend text",
|
|
65
|
-
showRequiredLabel: true,
|
|
66
|
-
}}
|
|
67
|
-
>
|
|
68
|
-
{(args) => (
|
|
69
|
-
<Fieldset {...args}>
|
|
70
|
-
<p>Text children in the Fieldset component.</p>
|
|
71
|
-
</Fieldset>
|
|
72
|
-
)}
|
|
73
|
-
</Story>
|
|
74
|
-
</Canvas>
|
|
75
|
-
|
|
76
|
-
<ArgsTable story="Fieldset" />
|
|
77
|
-
|
|
78
|
-
## Accessibility
|
|
79
|
-
|
|
80
|
-
This is a simple component but is very important to use when building web forms.
|
|
81
|
-
Syntactically, the `Fieldset` component is used to group form elements. Semantically,
|
|
82
|
-
the form elements that are group should have a similar theme or context. For
|
|
83
|
-
example, when building out a form for a user to create an account, one `Fieldset`
|
|
84
|
-
should be used to group the user's first and last names and another `Fieldset`
|
|
85
|
-
to group the user's address information.
|
|
86
|
-
|
|
87
|
-
The Reservoir DS implements the `Fieldset` component in the following form
|
|
88
|
-
components:
|
|
89
|
-
|
|
90
|
-
- `CheckboxGroup`, `DatePicker`, `RadioGroup`.
|
|
91
|
-
|
|
92
|
-
Resources:
|
|
93
|
-
|
|
94
|
-
- [W3C Grouping form controls with FIELDSET and LEGEND](https://www.w3.org/TR/2008/WD-WCAG20-TECHS-20080430/H82.html)
|
|
95
|
-
- [GOV.UK Using the fieldset and legend elements](https://accessibility.blog.gov.uk/2016/07/22/using-the-fieldset-and-legend-elements/)
|
|
96
|
-
- [MDN fieldset: The Field Set element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset)
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { render, screen } from "@testing-library/react";
|
|
3
|
-
import { axe } from "jest-axe";
|
|
4
|
-
import renderer from "react-test-renderer";
|
|
5
|
-
|
|
6
|
-
import Fieldset from "./Fieldset";
|
|
7
|
-
|
|
8
|
-
describe("Fieldset Accessibility", () => {
|
|
9
|
-
it("passes axe accessibility", async () => {
|
|
10
|
-
const { container } = render(
|
|
11
|
-
<Fieldset id="fieldset" legendText="Legend Text">
|
|
12
|
-
<p>Some other fields</p>
|
|
13
|
-
</Fieldset>
|
|
14
|
-
);
|
|
15
|
-
expect(await axe(container)).toHaveNoViolations();
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
it("passes axe accessibility with the legend hidden", async () => {
|
|
19
|
-
const { container } = render(
|
|
20
|
-
<Fieldset id="fieldset" legendText="Legend Text" isLegendHidden>
|
|
21
|
-
<p>Some other fields</p>
|
|
22
|
-
</Fieldset>
|
|
23
|
-
);
|
|
24
|
-
expect(await axe(container)).toHaveNoViolations();
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
describe("Fieldset", () => {
|
|
29
|
-
it("renders text in a legend and fieldset along with its children", () => {
|
|
30
|
-
render(
|
|
31
|
-
<Fieldset id="fieldset" legendText="Legend Text">
|
|
32
|
-
<p>Some other fields</p>
|
|
33
|
-
</Fieldset>
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
expect(screen.getByRole("group")).toBeInTheDocument();
|
|
37
|
-
// `legend` has no HTML role
|
|
38
|
-
expect(screen.getByText(/Legend Text/i)).toBeInTheDocument();
|
|
39
|
-
expect(screen.getByText("Some other fields")).toBeInTheDocument();
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
it("renders '(Required)' text in the legend when `isRequired` is true", () => {
|
|
43
|
-
render(
|
|
44
|
-
<Fieldset id="fieldset" legendText="Legend Text" isRequired>
|
|
45
|
-
<p>Some other fields</p>
|
|
46
|
-
</Fieldset>
|
|
47
|
-
);
|
|
48
|
-
|
|
49
|
-
expect(screen.getByText(/Required/i)).toBeInTheDocument();
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it("can hide the '(Required)' text in the legend but still show the main text", () => {
|
|
53
|
-
const { rerender } = render(
|
|
54
|
-
<Fieldset id="fieldset" legendText="Legend Text" isRequired>
|
|
55
|
-
<p>Some other fields</p>
|
|
56
|
-
</Fieldset>
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
expect(screen.getByText(/Required/i)).toBeInTheDocument();
|
|
60
|
-
|
|
61
|
-
rerender(
|
|
62
|
-
<Fieldset
|
|
63
|
-
id="fieldset"
|
|
64
|
-
isRequired
|
|
65
|
-
legendText="Legend Text"
|
|
66
|
-
showRequiredLabel={false}
|
|
67
|
-
>
|
|
68
|
-
<p>Some other fields</p>
|
|
69
|
-
</Fieldset>
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
expect(screen.getByText(/Legend Text/i)).toBeInTheDocument();
|
|
73
|
-
expect(screen.queryByText(/Required/i)).not.toBeInTheDocument();
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
it("logs a warning when there is no `id` passed", () => {
|
|
77
|
-
const warn = jest.spyOn(console, "warn");
|
|
78
|
-
render(
|
|
79
|
-
// @ts-ignore: Typescript complains when a required prop is not passed, but
|
|
80
|
-
// here we don't want to pass the required prop to make sure the warning appears.
|
|
81
|
-
<Fieldset legendText="Legend Text">
|
|
82
|
-
<p>Some other fields</p>
|
|
83
|
-
</Fieldset>
|
|
84
|
-
);
|
|
85
|
-
expect(warn).toHaveBeenCalledWith(
|
|
86
|
-
"NYPL Reservoir Fieldset: This component's required `id` prop was not passed."
|
|
87
|
-
);
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
it("renders the UI snapshot correctly", () => {
|
|
91
|
-
const basic = renderer
|
|
92
|
-
.create(
|
|
93
|
-
<Fieldset id="fieldset" legendText="Legend Text">
|
|
94
|
-
<p>Some other fields</p>
|
|
95
|
-
</Fieldset>
|
|
96
|
-
)
|
|
97
|
-
.toJSON();
|
|
98
|
-
const required = renderer
|
|
99
|
-
.create(
|
|
100
|
-
<Fieldset id="fieldset" legendText="Legend Text" isRequired>
|
|
101
|
-
<p>Some other fields</p>
|
|
102
|
-
</Fieldset>
|
|
103
|
-
)
|
|
104
|
-
.toJSON();
|
|
105
|
-
const hiddenHelperText = renderer
|
|
106
|
-
.create(
|
|
107
|
-
<Fieldset
|
|
108
|
-
id="fieldset"
|
|
109
|
-
legendText="Legend Text"
|
|
110
|
-
isRequired
|
|
111
|
-
showRequiredLabel={false}
|
|
112
|
-
>
|
|
113
|
-
<p>Some other fields</p>
|
|
114
|
-
</Fieldset>
|
|
115
|
-
)
|
|
116
|
-
.toJSON();
|
|
117
|
-
const hiddenLegend = renderer
|
|
118
|
-
.create(
|
|
119
|
-
<Fieldset id="fieldset" legendText="Legend Text" isLegendHidden>
|
|
120
|
-
<p>Some other fields</p>
|
|
121
|
-
</Fieldset>
|
|
122
|
-
)
|
|
123
|
-
.toJSON();
|
|
124
|
-
const withChakraProps = renderer
|
|
125
|
-
.create(
|
|
126
|
-
<Fieldset
|
|
127
|
-
id="withChakraProps"
|
|
128
|
-
legendText="Legend Text"
|
|
129
|
-
p="20px"
|
|
130
|
-
color="ui.error.primary"
|
|
131
|
-
>
|
|
132
|
-
<p>Some other fields</p>
|
|
133
|
-
</Fieldset>
|
|
134
|
-
)
|
|
135
|
-
.toJSON();
|
|
136
|
-
const withOtherProps = renderer
|
|
137
|
-
.create(
|
|
138
|
-
<Fieldset
|
|
139
|
-
id="withOtherProps"
|
|
140
|
-
legendText="Legend Text"
|
|
141
|
-
data-testid="props"
|
|
142
|
-
>
|
|
143
|
-
<p>Some other fields</p>
|
|
144
|
-
</Fieldset>
|
|
145
|
-
)
|
|
146
|
-
.toJSON();
|
|
147
|
-
|
|
148
|
-
expect(basic).toMatchSnapshot();
|
|
149
|
-
expect(required).toMatchSnapshot();
|
|
150
|
-
expect(hiddenHelperText).toMatchSnapshot();
|
|
151
|
-
expect(hiddenLegend).toMatchSnapshot();
|
|
152
|
-
expect(withChakraProps).toMatchSnapshot();
|
|
153
|
-
expect(withOtherProps).toMatchSnapshot();
|
|
154
|
-
});
|
|
155
|
-
});
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Box, chakra, useMultiStyleConfig } from "@chakra-ui/react";
|
|
2
|
-
import React from "react";
|
|
3
|
-
|
|
4
|
-
interface FieldsetProps {
|
|
5
|
-
/** Additional class name to add. */
|
|
6
|
-
className?: string;
|
|
7
|
-
/** ID that other components can cross reference for accessibility purposes */
|
|
8
|
-
id: string;
|
|
9
|
-
/** Flag to show or hide the text in the `legend` element. False by default. */
|
|
10
|
-
isLegendHidden?: boolean;
|
|
11
|
-
/** Flag to render "Required" in the `legend`. True by default. */
|
|
12
|
-
isRequired?: boolean;
|
|
13
|
-
/** Text to display in the `legend` element. */
|
|
14
|
-
legendText?: string;
|
|
15
|
-
/** Whether or not to display the "(Required)" text in the `legend` text.
|
|
16
|
-
* True by default. */
|
|
17
|
-
showRequiredLabel?: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* A wrapper component that renders a `fieldset` element along with a `legend`
|
|
22
|
-
* element as its first child. Commonly used to wrap form components.
|
|
23
|
-
*/
|
|
24
|
-
export const Fieldset = chakra(
|
|
25
|
-
({
|
|
26
|
-
children,
|
|
27
|
-
className,
|
|
28
|
-
id,
|
|
29
|
-
isLegendHidden = false,
|
|
30
|
-
isRequired = false,
|
|
31
|
-
legendText,
|
|
32
|
-
showRequiredLabel = true,
|
|
33
|
-
...rest
|
|
34
|
-
}: React.PropsWithChildren<FieldsetProps>) => {
|
|
35
|
-
const styles = useMultiStyleConfig("Fieldset", { isLegendHidden });
|
|
36
|
-
|
|
37
|
-
if (!id) {
|
|
38
|
-
console.warn(
|
|
39
|
-
"NYPL Reservoir Fieldset: This component's required `id` prop was not passed."
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return (
|
|
44
|
-
<Box as="fieldset" id={id} __css={styles} className={className} {...rest}>
|
|
45
|
-
<legend>
|
|
46
|
-
{legendText}
|
|
47
|
-
{showRequiredLabel && isRequired && <span> (Required)</span>}
|
|
48
|
-
</legend>
|
|
49
|
-
{children}
|
|
50
|
-
</Box>
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
export default Fieldset;
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`Fieldset renders the UI snapshot correctly 1`] = `
|
|
4
|
-
<fieldset
|
|
5
|
-
className="css-1xdhyk6"
|
|
6
|
-
id="fieldset"
|
|
7
|
-
>
|
|
8
|
-
<legend>
|
|
9
|
-
Legend Text
|
|
10
|
-
</legend>
|
|
11
|
-
<p>
|
|
12
|
-
Some other fields
|
|
13
|
-
</p>
|
|
14
|
-
</fieldset>
|
|
15
|
-
`;
|
|
16
|
-
|
|
17
|
-
exports[`Fieldset renders the UI snapshot correctly 2`] = `
|
|
18
|
-
<fieldset
|
|
19
|
-
className="css-1xdhyk6"
|
|
20
|
-
id="fieldset"
|
|
21
|
-
>
|
|
22
|
-
<legend>
|
|
23
|
-
Legend Text
|
|
24
|
-
<span>
|
|
25
|
-
(Required)
|
|
26
|
-
</span>
|
|
27
|
-
</legend>
|
|
28
|
-
<p>
|
|
29
|
-
Some other fields
|
|
30
|
-
</p>
|
|
31
|
-
</fieldset>
|
|
32
|
-
`;
|
|
33
|
-
|
|
34
|
-
exports[`Fieldset renders the UI snapshot correctly 3`] = `
|
|
35
|
-
<fieldset
|
|
36
|
-
className="css-1xdhyk6"
|
|
37
|
-
id="fieldset"
|
|
38
|
-
>
|
|
39
|
-
<legend>
|
|
40
|
-
Legend Text
|
|
41
|
-
</legend>
|
|
42
|
-
<p>
|
|
43
|
-
Some other fields
|
|
44
|
-
</p>
|
|
45
|
-
</fieldset>
|
|
46
|
-
`;
|
|
47
|
-
|
|
48
|
-
exports[`Fieldset renders the UI snapshot correctly 4`] = `
|
|
49
|
-
<fieldset
|
|
50
|
-
className="css-1xdhyk6"
|
|
51
|
-
id="fieldset"
|
|
52
|
-
>
|
|
53
|
-
<legend>
|
|
54
|
-
Legend Text
|
|
55
|
-
</legend>
|
|
56
|
-
<p>
|
|
57
|
-
Some other fields
|
|
58
|
-
</p>
|
|
59
|
-
</fieldset>
|
|
60
|
-
`;
|
|
61
|
-
|
|
62
|
-
exports[`Fieldset renders the UI snapshot correctly 5`] = `
|
|
63
|
-
<fieldset
|
|
64
|
-
className="css-kle7zy"
|
|
65
|
-
id="withChakraProps"
|
|
66
|
-
>
|
|
67
|
-
<legend>
|
|
68
|
-
Legend Text
|
|
69
|
-
</legend>
|
|
70
|
-
<p>
|
|
71
|
-
Some other fields
|
|
72
|
-
</p>
|
|
73
|
-
</fieldset>
|
|
74
|
-
`;
|
|
75
|
-
|
|
76
|
-
exports[`Fieldset renders the UI snapshot correctly 6`] = `
|
|
77
|
-
<fieldset
|
|
78
|
-
className="css-1xdhyk6"
|
|
79
|
-
data-testid="props"
|
|
80
|
-
id="withOtherProps"
|
|
81
|
-
>
|
|
82
|
-
<legend>
|
|
83
|
-
Legend Text
|
|
84
|
-
</legend>
|
|
85
|
-
<p>
|
|
86
|
-
Some other fields
|
|
87
|
-
</p>
|
|
88
|
-
</fieldset>
|
|
89
|
-
`;
|