@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,90 +0,0 @@
|
|
|
1
|
-
import { Box, VStack } from "@chakra-ui/react";
|
|
2
|
-
import {
|
|
3
|
-
ArgsTable,
|
|
4
|
-
Canvas,
|
|
5
|
-
Description,
|
|
6
|
-
Meta,
|
|
7
|
-
Story,
|
|
8
|
-
} from "@storybook/addon-docs";
|
|
9
|
-
|
|
10
|
-
import Button from "../Button/Button";
|
|
11
|
-
import SkipNavigation from "./SkipNavigation";
|
|
12
|
-
import { getCategory } from "../../utils/componentCategories";
|
|
13
|
-
|
|
14
|
-
<Meta
|
|
15
|
-
title={getCategory("SkipNavigation")}
|
|
16
|
-
component={SkipNavigation}
|
|
17
|
-
parameters={{
|
|
18
|
-
jest: ["SkipNavigation.test.tsx"],
|
|
19
|
-
}}
|
|
20
|
-
argTypes={{
|
|
21
|
-
className: { control: false },
|
|
22
|
-
id: { control: false },
|
|
23
|
-
target: { control: false },
|
|
24
|
-
}}
|
|
25
|
-
/>
|
|
26
|
-
|
|
27
|
-
# SkipNavigation
|
|
28
|
-
|
|
29
|
-
| Component Version | DS Version |
|
|
30
|
-
| ----------------- | ---------- |
|
|
31
|
-
| Added | `0.28.0` |
|
|
32
|
-
| Latest | `0.28.0` |
|
|
33
|
-
|
|
34
|
-
## Table of Contents
|
|
35
|
-
|
|
36
|
-
- [Overview](#overview)
|
|
37
|
-
- [Component Props](#component-props)
|
|
38
|
-
- [Accessibility](#accessibility)
|
|
39
|
-
|
|
40
|
-
## Overview
|
|
41
|
-
|
|
42
|
-
<Description of={SkipNavigation} />
|
|
43
|
-
|
|
44
|
-
**NOTE: In order to see the links in the `SkipNavigation` component, start by focusing
|
|
45
|
-
on the button below by tabbing or clicking on it. Then press "tab" to see the
|
|
46
|
-
first link and press "tab" again to see the second link. Hiding the links
|
|
47
|
-
intentional as the links should initially be visually hidden.**
|
|
48
|
-
|
|
49
|
-
## Component Props
|
|
50
|
-
|
|
51
|
-
<Canvas>
|
|
52
|
-
<Story
|
|
53
|
-
name="SkipNavigation with Controls"
|
|
54
|
-
args={{
|
|
55
|
-
className: undefined,
|
|
56
|
-
id: "skip-nav",
|
|
57
|
-
target: "mainContent",
|
|
58
|
-
}}
|
|
59
|
-
>
|
|
60
|
-
{(args) => (
|
|
61
|
-
<>
|
|
62
|
-
<Button>Focus on me and then press "tab"</Button>
|
|
63
|
-
<SkipNavigation {...args} />
|
|
64
|
-
</>
|
|
65
|
-
)}
|
|
66
|
-
</Story>
|
|
67
|
-
</Canvas>
|
|
68
|
-
|
|
69
|
-
<ArgsTable story="SkipNavigation with Controls" />
|
|
70
|
-
|
|
71
|
-
## Accessibility
|
|
72
|
-
|
|
73
|
-
To create a useable page for screen readers, a link or a navigational list of
|
|
74
|
-
links should be added before all the content on a page. The Reservoir Design
|
|
75
|
-
System (DS) achieves this through the `SkipNavigation` component which renders
|
|
76
|
-
a `<nav>` element with an `aria-label` of "Skip Navigation". Inside the `<nav>`
|
|
77
|
-
element, an unordered list is rendered.
|
|
78
|
-
|
|
79
|
-
The reason this is a navigation list of links is because the first main link
|
|
80
|
-
points to the anchor of the main content, in this case `"#mainContent"`. The
|
|
81
|
-
second link points to accessibility information on [NYPL.org/accessibility](https://nypl.org/accessibility).
|
|
82
|
-
|
|
83
|
-
See the [Skip Navigation accessibility guide](https://nypl.github.io/nypl-design-system/storybook-static/?path=/story/accessibility-guide-skip-navigation--page)
|
|
84
|
-
for more information on how to use this component with other DS components.
|
|
85
|
-
|
|
86
|
-
Resources:
|
|
87
|
-
|
|
88
|
-
- [WebAIM Skip Navigation Links](https://webaim.org/techniques/skipnav/)
|
|
89
|
-
- [WebAIM CSS in Action "Skip" links](https://webaim.org/techniques/css/invisiblecontent/#skipnavlinks)
|
|
90
|
-
- [CSS-Tricks A Deep Dive on Skipping to Content](https://css-tricks.com/a-deep-dive-on-skipping-to-content/)
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { render, screen, within } from "@testing-library/react";
|
|
3
|
-
import { axe } from "jest-axe";
|
|
4
|
-
import renderer from "react-test-renderer";
|
|
5
|
-
|
|
6
|
-
import SkipNavigation from "./SkipNavigation";
|
|
7
|
-
|
|
8
|
-
describe("SkipNavigation Accessibility", () => {
|
|
9
|
-
it("passes axe accessibility test", async () => {
|
|
10
|
-
const { container } = render(<SkipNavigation />);
|
|
11
|
-
expect(await axe(container)).toHaveNoViolations();
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
describe("Label", () => {
|
|
16
|
-
it("renders a nav element with an unordered list", () => {
|
|
17
|
-
render(<SkipNavigation />);
|
|
18
|
-
const nav = screen.getByRole("navigation");
|
|
19
|
-
|
|
20
|
-
expect(nav).toBeInTheDocument();
|
|
21
|
-
expect(nav).toHaveAttribute("aria-label", "Skip Navigation");
|
|
22
|
-
// Chakra renders other lists so we only want the list we
|
|
23
|
-
// created within the nav element.
|
|
24
|
-
const { getByRole } = within(nav);
|
|
25
|
-
expect(getByRole("list")).toBeInTheDocument();
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it("renders two links", () => {
|
|
29
|
-
render(<SkipNavigation />);
|
|
30
|
-
const links = screen.getAllByRole("link");
|
|
31
|
-
|
|
32
|
-
expect(links[0]).toHaveAttribute("href", "#mainContent");
|
|
33
|
-
expect(links[1]).toHaveAttribute(
|
|
34
|
-
"href",
|
|
35
|
-
"https://www.nypl.org/accessibility"
|
|
36
|
-
);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it("renders a custom main link target", () => {
|
|
40
|
-
render(<SkipNavigation target="customId" />);
|
|
41
|
-
const links = screen.getAllByRole("link");
|
|
42
|
-
|
|
43
|
-
expect(links[0]).toHaveAttribute("href", "customId");
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it("Renders the UI snapshot correctly", () => {
|
|
47
|
-
const simple = renderer.create(<SkipNavigation />).toJSON();
|
|
48
|
-
const customTarget = renderer
|
|
49
|
-
.create(<SkipNavigation target="customId" />)
|
|
50
|
-
.toJSON();
|
|
51
|
-
const withChakraProps = renderer
|
|
52
|
-
.create(<SkipNavigation p="20px" color="ui.error.primary" />)
|
|
53
|
-
.toJSON();
|
|
54
|
-
const withOtherProps = renderer
|
|
55
|
-
.create(<SkipNavigation data-testid="props" />)
|
|
56
|
-
.toJSON();
|
|
57
|
-
|
|
58
|
-
expect(simple).toMatchSnapshot();
|
|
59
|
-
expect(customTarget).toMatchSnapshot();
|
|
60
|
-
expect(withChakraProps).toMatchSnapshot();
|
|
61
|
-
expect(withOtherProps).toMatchSnapshot();
|
|
62
|
-
});
|
|
63
|
-
});
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Box, chakra, useStyleConfig } from "@chakra-ui/react";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
|
|
4
|
-
import Link from "../Link/Link";
|
|
5
|
-
import List from "../List/List";
|
|
6
|
-
|
|
7
|
-
interface SkipNavigationProps {
|
|
8
|
-
/** Additional CSS class name to render in the `nav` element. */
|
|
9
|
-
className?: string;
|
|
10
|
-
/** ID that other components can cross reference for accessibility purposes */
|
|
11
|
-
id?: string;
|
|
12
|
-
/** The anchor target for the main skip link. The default is "#mainContent". */
|
|
13
|
-
target?: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* SkipNavigation is a component that is used to provide a navigational list of
|
|
18
|
-
* links. The first link is used to skip to the main content of the page using
|
|
19
|
-
* the `#mainContent` id, and the second link points to accessibility information
|
|
20
|
-
* on NYPL.org. These links are visually hidden but can be read by screenreaders.
|
|
21
|
-
*/
|
|
22
|
-
export const SkipNavigation = chakra(
|
|
23
|
-
(props: React.PropsWithChildren<SkipNavigationProps>) => {
|
|
24
|
-
const { className, id, target = "#mainContent", ...rest } = props;
|
|
25
|
-
const styles = useStyleConfig("SkipNavigation");
|
|
26
|
-
|
|
27
|
-
return (
|
|
28
|
-
<Box
|
|
29
|
-
as="nav"
|
|
30
|
-
aria-label="Skip Navigation"
|
|
31
|
-
className={className}
|
|
32
|
-
id={id}
|
|
33
|
-
__css={styles}
|
|
34
|
-
{...rest}
|
|
35
|
-
>
|
|
36
|
-
<List inline noStyling type="ul">
|
|
37
|
-
<li>
|
|
38
|
-
<Link href={target}>Skip to Main Content</Link>
|
|
39
|
-
</li>
|
|
40
|
-
<li>
|
|
41
|
-
<Link href="https://www.nypl.org/accessibility">
|
|
42
|
-
Click to learn about accessibility at the Library
|
|
43
|
-
</Link>
|
|
44
|
-
</li>
|
|
45
|
-
</List>
|
|
46
|
-
</Box>
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
export default SkipNavigation;
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`Label Renders the UI snapshot correctly 1`] = `
|
|
4
|
-
<nav
|
|
5
|
-
aria-label="Skip Navigation"
|
|
6
|
-
className="css-1xdhyk6"
|
|
7
|
-
>
|
|
8
|
-
<ul
|
|
9
|
-
className="css-1xdhyk6"
|
|
10
|
-
>
|
|
11
|
-
<li>
|
|
12
|
-
<a
|
|
13
|
-
className="css-1xdhyk6"
|
|
14
|
-
href="#mainContent"
|
|
15
|
-
rel={null}
|
|
16
|
-
target={null}
|
|
17
|
-
>
|
|
18
|
-
Skip to Main Content
|
|
19
|
-
</a>
|
|
20
|
-
</li>
|
|
21
|
-
<li>
|
|
22
|
-
<a
|
|
23
|
-
className="css-1xdhyk6"
|
|
24
|
-
href="https://www.nypl.org/accessibility"
|
|
25
|
-
rel={null}
|
|
26
|
-
target={null}
|
|
27
|
-
>
|
|
28
|
-
Click to learn about accessibility at the Library
|
|
29
|
-
</a>
|
|
30
|
-
</li>
|
|
31
|
-
</ul>
|
|
32
|
-
</nav>
|
|
33
|
-
`;
|
|
34
|
-
|
|
35
|
-
exports[`Label Renders the UI snapshot correctly 2`] = `
|
|
36
|
-
<nav
|
|
37
|
-
aria-label="Skip Navigation"
|
|
38
|
-
className="css-1xdhyk6"
|
|
39
|
-
>
|
|
40
|
-
<ul
|
|
41
|
-
className="css-1xdhyk6"
|
|
42
|
-
>
|
|
43
|
-
<li>
|
|
44
|
-
<a
|
|
45
|
-
className="css-1xdhyk6"
|
|
46
|
-
href="customId"
|
|
47
|
-
rel={null}
|
|
48
|
-
target={null}
|
|
49
|
-
>
|
|
50
|
-
Skip to Main Content
|
|
51
|
-
</a>
|
|
52
|
-
</li>
|
|
53
|
-
<li>
|
|
54
|
-
<a
|
|
55
|
-
className="css-1xdhyk6"
|
|
56
|
-
href="https://www.nypl.org/accessibility"
|
|
57
|
-
rel={null}
|
|
58
|
-
target={null}
|
|
59
|
-
>
|
|
60
|
-
Click to learn about accessibility at the Library
|
|
61
|
-
</a>
|
|
62
|
-
</li>
|
|
63
|
-
</ul>
|
|
64
|
-
</nav>
|
|
65
|
-
`;
|
|
66
|
-
|
|
67
|
-
exports[`Label Renders the UI snapshot correctly 3`] = `
|
|
68
|
-
<nav
|
|
69
|
-
aria-label="Skip Navigation"
|
|
70
|
-
className="css-kle7zy"
|
|
71
|
-
>
|
|
72
|
-
<ul
|
|
73
|
-
className="css-1xdhyk6"
|
|
74
|
-
>
|
|
75
|
-
<li>
|
|
76
|
-
<a
|
|
77
|
-
className="css-1xdhyk6"
|
|
78
|
-
href="#mainContent"
|
|
79
|
-
rel={null}
|
|
80
|
-
target={null}
|
|
81
|
-
>
|
|
82
|
-
Skip to Main Content
|
|
83
|
-
</a>
|
|
84
|
-
</li>
|
|
85
|
-
<li>
|
|
86
|
-
<a
|
|
87
|
-
className="css-1xdhyk6"
|
|
88
|
-
href="https://www.nypl.org/accessibility"
|
|
89
|
-
rel={null}
|
|
90
|
-
target={null}
|
|
91
|
-
>
|
|
92
|
-
Click to learn about accessibility at the Library
|
|
93
|
-
</a>
|
|
94
|
-
</li>
|
|
95
|
-
</ul>
|
|
96
|
-
</nav>
|
|
97
|
-
`;
|
|
98
|
-
|
|
99
|
-
exports[`Label Renders the UI snapshot correctly 4`] = `
|
|
100
|
-
<nav
|
|
101
|
-
aria-label="Skip Navigation"
|
|
102
|
-
className="css-1xdhyk6"
|
|
103
|
-
data-testid="props"
|
|
104
|
-
>
|
|
105
|
-
<ul
|
|
106
|
-
className="css-1xdhyk6"
|
|
107
|
-
>
|
|
108
|
-
<li>
|
|
109
|
-
<a
|
|
110
|
-
className="css-1xdhyk6"
|
|
111
|
-
href="#mainContent"
|
|
112
|
-
rel={null}
|
|
113
|
-
target={null}
|
|
114
|
-
>
|
|
115
|
-
Skip to Main Content
|
|
116
|
-
</a>
|
|
117
|
-
</li>
|
|
118
|
-
<li>
|
|
119
|
-
<a
|
|
120
|
-
className="css-1xdhyk6"
|
|
121
|
-
href="https://www.nypl.org/accessibility"
|
|
122
|
-
rel={null}
|
|
123
|
-
target={null}
|
|
124
|
-
>
|
|
125
|
-
Click to learn about accessibility at the Library
|
|
126
|
-
</a>
|
|
127
|
-
</li>
|
|
128
|
-
</ul>
|
|
129
|
-
</nav>
|
|
130
|
-
`;
|