@nypl/design-system-react-components 0.25.5 → 0.25.9
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/CHANGELOG.md +91 -1
- package/README.md +1 -1
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -0
- package/dist/components/Button/Button.d.ts +6 -6
- package/dist/components/Button/ButtonTypes.d.ts +0 -1
- package/dist/components/Card/Card.d.ts +6 -4
- package/dist/components/Checkbox/Checkbox.d.ts +3 -2
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
- package/dist/components/DatePicker/DatePicker.d.ts +3 -2
- package/dist/components/Form/Form.d.ts +2 -2
- package/dist/components/Heading/Heading.d.ts +7 -3
- package/dist/components/Heading/HeadingTypes.d.ts +6 -6
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -2
- package/dist/components/Icons/Icon.d.ts +4 -4
- package/dist/components/Icons/IconSvgs.d.ts +1 -21
- package/dist/components/Icons/IconTypes.d.ts +1 -23
- package/dist/components/Image/Image.d.ts +11 -3
- package/dist/components/Image/ImageTypes.d.ts +3 -1
- package/dist/components/Link/LinkTypes.d.ts +1 -0
- package/dist/components/Logo/Logo.d.ts +28 -0
- package/dist/components/Logo/LogoSvgs.d.ts +18 -0
- package/dist/components/Logo/LogoTypes.d.ts +30 -0
- package/dist/components/Modal/Modal.d.ts +0 -4
- package/dist/components/Notification/Notification.d.ts +4 -2
- package/dist/components/Placeholder/Placeholder.d.ts +3 -5
- package/dist/components/Radio/Radio.d.ts +6 -5
- package/dist/components/RadioGroup/RadioGroup.d.ts +3 -2
- package/dist/components/SearchBar/SearchBar.d.ts +10 -2
- package/dist/components/Select/Select.d.ts +5 -2
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
- package/dist/components/Slider/Slider.d.ts +3 -2
- package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
- package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
- package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
- package/dist/components/Table/Table.d.ts +23 -0
- package/dist/components/Template/Template.d.ts +8 -3
- package/dist/components/Text/Text.d.ts +2 -2
- package/dist/components/TextInput/TextInput.d.ts +4 -3
- package/dist/components/Toggle/Toggle.d.ts +48 -0
- package/dist/components/Toggle/ToggleSizes.d.ts +4 -0
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +17 -6
- package/dist/design-system-react-components.cjs.development.js +5989 -5490
- 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 +6057 -5551
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/index.d.ts +11 -4
- package/dist/styles.css +2 -2
- package/dist/theme/components/breadcrumb.d.ts +9 -0
- package/dist/theme/components/button.d.ts +0 -12
- package/dist/theme/components/card.d.ts +14 -2
- package/dist/theme/components/customTable.d.ts +47 -0
- package/dist/theme/components/fieldset.d.ts +2 -2
- package/dist/theme/components/global.d.ts +1 -1
- package/dist/theme/components/heading.d.ts +4 -0
- package/dist/theme/components/label.d.ts +1 -1
- package/dist/theme/components/link.d.ts +14 -1
- package/dist/theme/components/list.d.ts +0 -2
- package/dist/theme/components/logo.d.ts +4 -0
- package/dist/theme/components/notification.d.ts +8 -4
- package/dist/theme/components/searchBar.d.ts +7 -13
- package/dist/theme/components/select.d.ts +1 -0
- package/dist/theme/components/structuredContent.d.ts +33 -0
- package/dist/theme/components/template.d.ts +10 -10
- package/dist/theme/components/textInput.d.ts +2 -0
- package/dist/theme/components/toggle.d.ts +71 -0
- package/dist/theme/foundations/spacing.d.ts +2 -0
- package/dist/utils/utils.d.ts +10 -0
- package/package.json +2 -3
- package/src/__tests__/utils/utils.test.ts +23 -1
- package/src/components/Accordion/Accordion.stories.mdx +15 -14
- package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
- package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
- package/src/components/Autosuggest/_Autosuggest.scss +2 -6
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +50 -14
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +20 -0
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -0
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +198 -0
- package/src/components/Button/Button.stories.mdx +93 -48
- package/src/components/Button/Button.test.tsx +0 -12
- package/src/components/Button/Button.tsx +7 -8
- package/src/components/Button/ButtonTypes.tsx +0 -1
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
- package/src/components/Card/Card.stories.mdx +246 -64
- package/src/components/Card/Card.test.tsx +45 -22
- package/src/components/Card/Card.tsx +26 -13
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +75 -37
- package/src/components/Chakra/Box.stories.mdx +3 -3
- package/src/components/Chakra/Center.stories.mdx +5 -5
- package/src/components/Chakra/Grid.stories.mdx +14 -17
- package/src/components/Chakra/Stack.stories.mdx +2 -2
- package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
- package/src/components/Checkbox/Checkbox.tsx +13 -8
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
- package/src/components/DatePicker/DatePicker.test.tsx +8 -6
- package/src/components/DatePicker/DatePicker.tsx +10 -6
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
- package/src/components/Fieldset/Fieldset.stories.mdx +19 -8
- package/src/components/Form/Form.stories.mdx +49 -41
- package/src/components/Form/Form.tsx +5 -4
- package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
- package/src/components/Heading/Heading.stories.mdx +59 -23
- package/src/components/Heading/Heading.test.tsx +82 -18
- package/src/components/Heading/Heading.tsx +31 -31
- package/src/components/Heading/HeadingTypes.tsx +6 -6
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
- package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
- package/src/components/Hero/Hero.stories.mdx +72 -53
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +9 -8
- package/src/components/HorizontalRule/HorizontalRule.tsx +2 -4
- package/src/components/Icons/Icon.stories.mdx +77 -75
- package/src/components/Icons/Icon.tsx +4 -5
- package/src/components/Icons/IconSvgs.tsx +2 -42
- package/src/components/Icons/IconTypes.tsx +1 -24
- package/src/components/Image/Image.stories.mdx +214 -104
- package/src/components/Image/Image.test.tsx +10 -0
- package/src/components/Image/Image.tsx +21 -10
- package/src/components/Image/ImageTypes.ts +2 -0
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
- package/src/components/Label/Label.stories.mdx +21 -20
- package/src/components/Link/Link.stories.mdx +103 -53
- package/src/components/Link/Link.test.tsx +108 -7
- package/src/components/Link/Link.tsx +58 -19
- package/src/components/Link/LinkTypes.tsx +1 -0
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +261 -0
- package/src/components/List/List.stories.mdx +36 -24
- package/src/components/Logo/Logo.stories.mdx +220 -0
- package/src/components/Logo/Logo.test.tsx +98 -0
- package/src/components/Logo/Logo.tsx +97 -0
- package/src/components/Logo/LogoSvgs.tsx +34 -0
- package/src/components/Logo/LogoTypes.tsx +32 -0
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
- package/src/components/Modal/Modal.stories.mdx +20 -5
- package/src/components/Modal/Modal.tsx +2 -8
- package/src/components/Notification/Notification.stories.mdx +96 -40
- package/src/components/Notification/Notification.test.tsx +62 -16
- package/src/components/Notification/Notification.tsx +26 -9
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +121 -0
- package/src/components/Pagination/Pagination.stories.mdx +18 -8
- package/src/components/Pagination/Pagination.tsx +1 -1
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +42 -0
- package/src/components/Placeholder/Placeholder.tsx +7 -14
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +74 -46
- package/src/components/Radio/Radio.stories.mdx +39 -19
- package/src/components/Radio/Radio.tsx +13 -9
- package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
- package/src/components/RadioGroup/RadioGroup.tsx +15 -11
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +6 -3
- package/src/components/SearchBar/SearchBar.Test.tsx +114 -22
- package/src/components/SearchBar/SearchBar.stories.mdx +111 -33
- package/src/components/SearchBar/SearchBar.tsx +57 -33
- package/src/components/Select/Select.stories.mdx +177 -66
- package/src/components/Select/Select.test.tsx +2 -2
- package/src/components/Select/Select.tsx +22 -12
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
- package/src/components/Slider/Slider.stories.mdx +74 -23
- package/src/components/Slider/Slider.test.tsx +35 -0
- package/src/components/Slider/Slider.tsx +22 -11
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +60 -30
- package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
- package/src/components/StatusBadge/StatusBadge.tsx +2 -1
- package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
- package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
- package/src/components/StructuredContent/StructuredContent.tsx +153 -0
- package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
- package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
- package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
- package/src/components/StyleGuide/ColorCard.tsx +1 -2
- package/src/components/StyleGuide/Colors.stories.mdx +3 -11
- package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
- package/src/components/StyleGuide/Forms.stories.mdx +2 -10
- package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
- package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
- package/src/components/StyleGuide/Typography.stories.mdx +64 -76
- package/src/components/Table/Table.stories.mdx +66 -0
- package/src/components/Table/Table.test.tsx +60 -0
- package/src/components/Table/Table.tsx +116 -0
- package/src/components/Tabs/Tabs.stories.mdx +19 -13
- package/src/components/Tabs/Tabs.test.tsx +1 -1
- package/src/components/Template/Template.stories.mdx +57 -49
- package/src/components/Template/Template.test.tsx +65 -5
- package/src/components/Template/Template.tsx +35 -5
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +76 -0
- package/src/components/Text/Text.stories.mdx +33 -11
- package/src/components/Text/Text.tsx +2 -2
- package/src/components/TextInput/TextInput.stories.mdx +84 -17
- package/src/components/TextInput/TextInput.test.tsx +96 -0
- package/src/components/TextInput/TextInput.tsx +12 -8
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
- package/src/components/Toggle/Toggle.stories.mdx +200 -0
- package/src/components/Toggle/Toggle.test.tsx +140 -0
- package/src/components/Toggle/Toggle.tsx +123 -0
- package/src/components/Toggle/ToggleSizes.tsx +4 -0
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +255 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +96 -25
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +103 -1
- package/src/components/VideoPlayer/VideoPlayer.tsx +72 -22
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +57 -3
- package/src/docs/Chakra.stories.mdx +5 -8
- package/src/docs/Intro.stories.mdx +2 -2
- package/src/index.ts +13 -4
- package/src/styles/base/_03-base.scss +1 -1
- package/src/styles/base/_place-holder.scss +7 -7
- package/src/styles.scss +1 -5
- package/src/theme/components/breadcrumb.ts +14 -4
- package/src/theme/components/button.ts +5 -12
- package/src/theme/components/card.ts +9 -7
- package/src/theme/components/checkbox.ts +1 -1
- package/src/theme/components/customTable.ts +50 -0
- package/src/theme/components/datePicker.ts +1 -1
- package/src/theme/components/global.ts +7 -7
- package/src/theme/components/heading.ts +13 -11
- package/src/theme/components/helperErrorText.ts +1 -1
- package/src/theme/components/icon.ts +2 -2
- package/src/theme/components/image.ts +9 -1
- package/src/theme/components/link.ts +17 -5
- package/src/theme/components/list.ts +1 -3
- package/src/theme/components/logo.ts +54 -0
- package/src/theme/components/notification.ts +9 -7
- package/src/theme/components/searchBar.ts +7 -13
- package/src/theme/components/select.ts +1 -0
- package/src/theme/components/statusBadge.ts +1 -1
- package/src/theme/components/structuredContent.ts +54 -0
- package/src/theme/components/template.ts +10 -10
- package/src/theme/components/text.ts +6 -6
- package/src/theme/components/textInput.ts +1 -0
- package/src/theme/components/toggle.ts +69 -0
- package/src/theme/components/videoPlayer.ts +0 -2
- package/src/theme/foundations/global.ts +2 -2
- package/src/theme/foundations/spacing.ts +3 -0
- package/src/theme/foundations/typography.ts +84 -12
- package/src/theme/index.ts +8 -0
- package/src/utils/componentCategories.ts +4 -2
- package/src/utils/utils.ts +17 -0
- package/dist/__tests__/utils/bem.test.d.ts +0 -1
- package/dist/components/CardEdition/CardEdition.d.ts +0 -21
- package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
- package/dist/components/Input/Input.d.ts +0 -36
- package/dist/components/Input/Input.stories.d.ts +0 -29
- package/dist/components/Input/InputTypes.d.ts +0 -6
- package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
- package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
- package/dist/helpers/getCSSVariable.d.ts +0 -1
- package/dist/interfaces.d.ts +0 -3
- package/dist/utils/bem.d.ts +0 -1
- package/src/__tests__/utils/bem.test.ts +0 -37
- package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
- package/src/components/CardEdition/CardEdition.test.tsx +0 -395
- package/src/components/CardEdition/CardEdition.tsx +0 -60
- package/src/components/CardEdition/_CardEdition.scss +0 -137
- package/src/components/Input/Input.stories.tsx +0 -133
- package/src/components/Input/Input.test.tsx +0 -266
- package/src/components/Input/Input.tsx +0 -81
- package/src/components/Input/InputTypes.tsx +0 -8
- package/src/components/Input/_Input.scss +0 -78
- package/src/components/StyleGuide/UIDocCard.tsx +0 -36
- package/src/helpers/CSSVariablesHelper.tsx +0 -34
- package/src/helpers/getCSSVariable.tsx +0 -5
- package/src/interfaces.ts +0 -3
- package/src/utils/bem.ts +0 -44
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Toggle Renders the UI snapshot correctly 1`] = `
|
|
4
|
+
<div
|
|
5
|
+
className="css-0"
|
|
6
|
+
>
|
|
7
|
+
<label
|
|
8
|
+
className="chakra-switch css-u8kezd"
|
|
9
|
+
onClick={[Function]}
|
|
10
|
+
>
|
|
11
|
+
<input
|
|
12
|
+
aria-disabled={false}
|
|
13
|
+
aria-invalid={false}
|
|
14
|
+
aria-label="Test Label"
|
|
15
|
+
checked={false}
|
|
16
|
+
className="chakra-switch__input"
|
|
17
|
+
disabled={false}
|
|
18
|
+
id="inputID"
|
|
19
|
+
name="default"
|
|
20
|
+
onBlur={[Function]}
|
|
21
|
+
onChange={[Function]}
|
|
22
|
+
onFocus={[Function]}
|
|
23
|
+
onKeyDown={[Function]}
|
|
24
|
+
onKeyUp={[Function]}
|
|
25
|
+
required={false}
|
|
26
|
+
style={
|
|
27
|
+
Object {
|
|
28
|
+
"border": "0px",
|
|
29
|
+
"clip": "rect(0px, 0px, 0px, 0px)",
|
|
30
|
+
"height": "1px",
|
|
31
|
+
"margin": "-1px",
|
|
32
|
+
"overflow": "hidden",
|
|
33
|
+
"padding": "0px",
|
|
34
|
+
"position": "absolute",
|
|
35
|
+
"whiteSpace": "nowrap",
|
|
36
|
+
"width": "1px",
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
type="checkbox"
|
|
40
|
+
/>
|
|
41
|
+
<span
|
|
42
|
+
aria-hidden={true}
|
|
43
|
+
className="chakra-switch__track css-14qxnv8"
|
|
44
|
+
onMouseDown={[Function]}
|
|
45
|
+
onMouseEnter={[Function]}
|
|
46
|
+
onMouseLeave={[Function]}
|
|
47
|
+
onMouseUp={[Function]}
|
|
48
|
+
>
|
|
49
|
+
<span
|
|
50
|
+
className="chakra-switch__thumb css-0"
|
|
51
|
+
/>
|
|
52
|
+
</span>
|
|
53
|
+
<span
|
|
54
|
+
className="chakra-switch__label css-1y8kf23"
|
|
55
|
+
onMouseDown={[Function]}
|
|
56
|
+
onTouchStart={[Function]}
|
|
57
|
+
>
|
|
58
|
+
Test Label
|
|
59
|
+
</span>
|
|
60
|
+
</label>
|
|
61
|
+
</div>
|
|
62
|
+
`;
|
|
63
|
+
|
|
64
|
+
exports[`Toggle Renders the UI snapshot correctly 2`] = `
|
|
65
|
+
<div
|
|
66
|
+
className="css-0"
|
|
67
|
+
>
|
|
68
|
+
<label
|
|
69
|
+
className="chakra-switch css-u8kezd"
|
|
70
|
+
data-checked=""
|
|
71
|
+
onClick={[Function]}
|
|
72
|
+
>
|
|
73
|
+
<input
|
|
74
|
+
aria-disabled={false}
|
|
75
|
+
aria-invalid={false}
|
|
76
|
+
aria-label="Test Label"
|
|
77
|
+
checked={true}
|
|
78
|
+
className="chakra-switch__input"
|
|
79
|
+
disabled={false}
|
|
80
|
+
id="Toggle-checked"
|
|
81
|
+
name="default"
|
|
82
|
+
onBlur={[Function]}
|
|
83
|
+
onChange={[Function]}
|
|
84
|
+
onFocus={[Function]}
|
|
85
|
+
onKeyDown={[Function]}
|
|
86
|
+
onKeyUp={[Function]}
|
|
87
|
+
required={false}
|
|
88
|
+
style={
|
|
89
|
+
Object {
|
|
90
|
+
"border": "0px",
|
|
91
|
+
"clip": "rect(0px, 0px, 0px, 0px)",
|
|
92
|
+
"height": "1px",
|
|
93
|
+
"margin": "-1px",
|
|
94
|
+
"overflow": "hidden",
|
|
95
|
+
"padding": "0px",
|
|
96
|
+
"position": "absolute",
|
|
97
|
+
"whiteSpace": "nowrap",
|
|
98
|
+
"width": "1px",
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
type="checkbox"
|
|
102
|
+
/>
|
|
103
|
+
<span
|
|
104
|
+
aria-hidden={true}
|
|
105
|
+
className="chakra-switch__track css-14qxnv8"
|
|
106
|
+
data-checked=""
|
|
107
|
+
onMouseDown={[Function]}
|
|
108
|
+
onMouseEnter={[Function]}
|
|
109
|
+
onMouseLeave={[Function]}
|
|
110
|
+
onMouseUp={[Function]}
|
|
111
|
+
>
|
|
112
|
+
<span
|
|
113
|
+
className="chakra-switch__thumb css-0"
|
|
114
|
+
data-checked=""
|
|
115
|
+
/>
|
|
116
|
+
</span>
|
|
117
|
+
<span
|
|
118
|
+
className="chakra-switch__label css-1y8kf23"
|
|
119
|
+
data-checked=""
|
|
120
|
+
onMouseDown={[Function]}
|
|
121
|
+
onTouchStart={[Function]}
|
|
122
|
+
>
|
|
123
|
+
Test Label
|
|
124
|
+
</span>
|
|
125
|
+
</label>
|
|
126
|
+
</div>
|
|
127
|
+
`;
|
|
128
|
+
|
|
129
|
+
exports[`Toggle Renders the UI snapshot correctly 3`] = `
|
|
130
|
+
<div
|
|
131
|
+
className="css-0"
|
|
132
|
+
>
|
|
133
|
+
<label
|
|
134
|
+
className="chakra-switch css-u8kezd"
|
|
135
|
+
data-invalid=""
|
|
136
|
+
onClick={[Function]}
|
|
137
|
+
>
|
|
138
|
+
<input
|
|
139
|
+
aria-disabled={false}
|
|
140
|
+
aria-invalid={true}
|
|
141
|
+
aria-label="Test Label"
|
|
142
|
+
checked={false}
|
|
143
|
+
className="chakra-switch__input"
|
|
144
|
+
disabled={false}
|
|
145
|
+
id="Toggle-invalid"
|
|
146
|
+
name="default"
|
|
147
|
+
onBlur={[Function]}
|
|
148
|
+
onChange={[Function]}
|
|
149
|
+
onFocus={[Function]}
|
|
150
|
+
onKeyDown={[Function]}
|
|
151
|
+
onKeyUp={[Function]}
|
|
152
|
+
required={false}
|
|
153
|
+
style={
|
|
154
|
+
Object {
|
|
155
|
+
"border": "0px",
|
|
156
|
+
"clip": "rect(0px, 0px, 0px, 0px)",
|
|
157
|
+
"height": "1px",
|
|
158
|
+
"margin": "-1px",
|
|
159
|
+
"overflow": "hidden",
|
|
160
|
+
"padding": "0px",
|
|
161
|
+
"position": "absolute",
|
|
162
|
+
"whiteSpace": "nowrap",
|
|
163
|
+
"width": "1px",
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
type="checkbox"
|
|
167
|
+
/>
|
|
168
|
+
<span
|
|
169
|
+
aria-hidden={true}
|
|
170
|
+
className="chakra-switch__track css-14qxnv8"
|
|
171
|
+
data-invalid=""
|
|
172
|
+
onMouseDown={[Function]}
|
|
173
|
+
onMouseEnter={[Function]}
|
|
174
|
+
onMouseLeave={[Function]}
|
|
175
|
+
onMouseUp={[Function]}
|
|
176
|
+
>
|
|
177
|
+
<span
|
|
178
|
+
className="chakra-switch__thumb css-0"
|
|
179
|
+
/>
|
|
180
|
+
</span>
|
|
181
|
+
<span
|
|
182
|
+
className="chakra-switch__label css-1y8kf23"
|
|
183
|
+
data-invalid=""
|
|
184
|
+
onMouseDown={[Function]}
|
|
185
|
+
onTouchStart={[Function]}
|
|
186
|
+
>
|
|
187
|
+
Test Label
|
|
188
|
+
</span>
|
|
189
|
+
</label>
|
|
190
|
+
</div>
|
|
191
|
+
`;
|
|
192
|
+
|
|
193
|
+
exports[`Toggle Renders the UI snapshot correctly 4`] = `
|
|
194
|
+
<div
|
|
195
|
+
className="css-0"
|
|
196
|
+
>
|
|
197
|
+
<label
|
|
198
|
+
className="chakra-switch css-u8kezd"
|
|
199
|
+
data-disabled=""
|
|
200
|
+
onClick={[Function]}
|
|
201
|
+
>
|
|
202
|
+
<input
|
|
203
|
+
aria-disabled={true}
|
|
204
|
+
aria-invalid={false}
|
|
205
|
+
aria-label="Test Label"
|
|
206
|
+
checked={false}
|
|
207
|
+
className="chakra-switch__input"
|
|
208
|
+
disabled={true}
|
|
209
|
+
id="Toggle-disabled"
|
|
210
|
+
name="default"
|
|
211
|
+
onBlur={[Function]}
|
|
212
|
+
onChange={[Function]}
|
|
213
|
+
onFocus={[Function]}
|
|
214
|
+
onKeyDown={[Function]}
|
|
215
|
+
onKeyUp={[Function]}
|
|
216
|
+
required={false}
|
|
217
|
+
style={
|
|
218
|
+
Object {
|
|
219
|
+
"border": "0px",
|
|
220
|
+
"clip": "rect(0px, 0px, 0px, 0px)",
|
|
221
|
+
"height": "1px",
|
|
222
|
+
"margin": "-1px",
|
|
223
|
+
"overflow": "hidden",
|
|
224
|
+
"padding": "0px",
|
|
225
|
+
"position": "absolute",
|
|
226
|
+
"whiteSpace": "nowrap",
|
|
227
|
+
"width": "1px",
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
type="checkbox"
|
|
231
|
+
/>
|
|
232
|
+
<span
|
|
233
|
+
aria-hidden={true}
|
|
234
|
+
className="chakra-switch__track css-14qxnv8"
|
|
235
|
+
data-disabled=""
|
|
236
|
+
onMouseDown={[Function]}
|
|
237
|
+
onMouseEnter={[Function]}
|
|
238
|
+
onMouseLeave={[Function]}
|
|
239
|
+
onMouseUp={[Function]}
|
|
240
|
+
>
|
|
241
|
+
<span
|
|
242
|
+
className="chakra-switch__thumb css-0"
|
|
243
|
+
/>
|
|
244
|
+
</span>
|
|
245
|
+
<span
|
|
246
|
+
className="chakra-switch__label css-1y8kf23"
|
|
247
|
+
data-disabled=""
|
|
248
|
+
onMouseDown={[Function]}
|
|
249
|
+
onTouchStart={[Function]}
|
|
250
|
+
>
|
|
251
|
+
Test Label
|
|
252
|
+
</span>
|
|
253
|
+
</label>
|
|
254
|
+
</div>
|
|
255
|
+
`;
|
|
@@ -1,17 +1,27 @@
|
|
|
1
|
+
import { action } from "@storybook/addon-actions";
|
|
1
2
|
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
|
-
Canvas,
|
|
5
3
|
ArgsTable,
|
|
4
|
+
Canvas,
|
|
6
5
|
Description,
|
|
7
|
-
|
|
6
|
+
Meta,
|
|
7
|
+
Story,
|
|
8
|
+
} from "@storybook/addon-docs";
|
|
8
9
|
import { withDesign } from "storybook-addon-designs";
|
|
9
10
|
|
|
10
|
-
import DSProvider from "../../theme/provider";
|
|
11
11
|
import VideoPlayer from "./VideoPlayer";
|
|
12
|
-
import { VideoPlayerTypes } from "./VideoPlayerTypes";
|
|
13
|
-
import { action } from "@storybook/addon-actions";
|
|
12
|
+
import { VideoPlayerAspectRatios, VideoPlayerTypes } from "./VideoPlayerTypes";
|
|
14
13
|
import { getCategory } from "../../utils/componentCategories";
|
|
14
|
+
import DSProvider from "../../theme/provider";
|
|
15
|
+
import { getStorybookEnumValues } from "../../utils/utils";
|
|
16
|
+
|
|
17
|
+
export const ratiosEnumValues = getStorybookEnumValues(
|
|
18
|
+
VideoPlayerAspectRatios,
|
|
19
|
+
"VideoPlayerAspectRatios"
|
|
20
|
+
);
|
|
21
|
+
export const typesEnumValues = getStorybookEnumValues(
|
|
22
|
+
VideoPlayerTypes,
|
|
23
|
+
"VideoPlayerTypes"
|
|
24
|
+
);
|
|
15
25
|
|
|
16
26
|
<Meta
|
|
17
27
|
title={getCategory("VideoPlayer")}
|
|
@@ -20,15 +30,27 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
20
30
|
parameters={{
|
|
21
31
|
design: {
|
|
22
32
|
type: "figma",
|
|
23
|
-
url:
|
|
24
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=10968%3A3680",
|
|
33
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=10968%3A3680",
|
|
25
34
|
},
|
|
26
35
|
jest: ["VideoPlayer.test.tsx"],
|
|
27
36
|
}}
|
|
28
37
|
argTypes={{
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
38
|
+
aspectRatio: {
|
|
39
|
+
control: { type: "select" },
|
|
40
|
+
table: {
|
|
41
|
+
defaultValue: { summary: "VideoPlayerAspectRatios.SixteenByNine" },
|
|
42
|
+
},
|
|
43
|
+
options: ratiosEnumValues.options,
|
|
44
|
+
},
|
|
45
|
+
className: { control: false },
|
|
46
|
+
id: { control: false },
|
|
47
|
+
showHelperInvalidText: {
|
|
48
|
+
table: { defaultValue: { summary: true } },
|
|
49
|
+
},
|
|
50
|
+
videoType: {
|
|
51
|
+
control: { type: "select" },
|
|
52
|
+
options: typesEnumValues.options,
|
|
53
|
+
},
|
|
32
54
|
}}
|
|
33
55
|
/>
|
|
34
56
|
|
|
@@ -37,11 +59,13 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
37
59
|
| Component Version | DS Version |
|
|
38
60
|
| ----------------- | ---------- |
|
|
39
61
|
| Added | `0.23.2` |
|
|
40
|
-
| Latest | `0.25.
|
|
62
|
+
| Latest | `0.25.9` |
|
|
41
63
|
|
|
42
64
|
<Description of={VideoPlayer} />
|
|
43
65
|
|
|
44
|
-
The `VideoPlayer` component is used to embed a `Vimeo` or `YouTube` video player on a page. The component requires both the `videoType` and `videoId` props.
|
|
66
|
+
The `VideoPlayer` component is used to embed a `Vimeo` or `YouTube` video player on a page. The component requires the `embedCode` prop or both the `videoType` and `videoId` props. The component will not function properly if you try to set all of them.
|
|
67
|
+
|
|
68
|
+
You can extract the videoId from the video's URL. **IMPORTANT:** Do not try to enter the full video URL as the `videoId` value.
|
|
45
69
|
|
|
46
70
|
The `aspectRatio` prop is used to control the sizing of the space allotted for the video rendering. Ultimately, the `aspectRatio` prop should be set to match the aspect ratio of the video that is being rendered. The default aspect ratio is `16:9`.
|
|
47
71
|
|
|
@@ -49,25 +73,27 @@ The `aspectRatio` prop is used to control the sizing of the space allotted for t
|
|
|
49
73
|
<Story
|
|
50
74
|
name="VideoPlayer"
|
|
51
75
|
args={{
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
headingText: "NYPL Video",
|
|
76
|
+
aspectRatio: "VideoPlayerAspectRatios.SixteenByNine",
|
|
77
|
+
className: undefined,
|
|
55
78
|
descriptionText:
|
|
56
79
|
"Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.",
|
|
80
|
+
embedCode: `<iframe src="https://player.vimeo.com/video/421404144?h=5467db7edd" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>`,
|
|
81
|
+
headingText: "NYPL Video",
|
|
57
82
|
helperText:
|
|
58
83
|
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.",
|
|
84
|
+
id: "videoPlayer-id",
|
|
85
|
+
iframeTitle: undefined,
|
|
86
|
+
showHelperInvalidText: true,
|
|
87
|
+
videoId: undefined,
|
|
88
|
+
videoType: undefined,
|
|
59
89
|
}}
|
|
60
90
|
>
|
|
61
91
|
{(args) => (
|
|
62
92
|
<VideoPlayer
|
|
63
93
|
{...args}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
? args.videoId || "474719268"
|
|
68
|
-
: args.videoId || "nm-dD2tx6bk"
|
|
69
|
-
}
|
|
70
|
-
aspectRatio={args.aspectRatio}
|
|
94
|
+
aspectRatio={ratiosEnumValues.getValue(args.aspectRatio)}
|
|
95
|
+
embedCode={args.embedCode}
|
|
96
|
+
videoType={args.videoType && typesEnumValues.getValue(args.videoType)}
|
|
71
97
|
/>
|
|
72
98
|
)}
|
|
73
99
|
</Story>
|
|
@@ -94,6 +120,37 @@ https://www.youtube.com/watch?v=[VIDEO_ID]
|
|
|
94
120
|
https://www.youtube.com/watch?v=nm-dD2tx6bk
|
|
95
121
|
```
|
|
96
122
|
|
|
123
|
+
## Example Embed Code Snippets
|
|
124
|
+
|
|
125
|
+
The examples below are shown with precise HTML formatting. However, often the embed code snippets provided by 3rd party video services are delivered as one long string.
|
|
126
|
+
|
|
127
|
+
### Vimeo
|
|
128
|
+
|
|
129
|
+
```html
|
|
130
|
+
<iframe
|
|
131
|
+
src="https://player.vimeo.com/video/421404144?h=5467db7edd"
|
|
132
|
+
width="640"
|
|
133
|
+
height="360"
|
|
134
|
+
frameborder="0"
|
|
135
|
+
allow="autoplay; fullscreen; picture-in-picture"
|
|
136
|
+
allowfullscreen
|
|
137
|
+
></iframe>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### YouTube
|
|
141
|
+
|
|
142
|
+
```html
|
|
143
|
+
<iframe
|
|
144
|
+
width="560"
|
|
145
|
+
height="315"
|
|
146
|
+
src="https://www.youtube.com/embed/nm-dD2tx6bk"
|
|
147
|
+
title="YouTube video player"
|
|
148
|
+
frameborder="0"
|
|
149
|
+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
|
150
|
+
allowfullscreen
|
|
151
|
+
></iframe>
|
|
152
|
+
```
|
|
153
|
+
|
|
97
154
|
## Errored
|
|
98
155
|
|
|
99
156
|
If the necessary props are not passed to the `VideoPlayer` component, the component UI will display an error message.
|
|
@@ -101,8 +158,22 @@ If the necessary props are not passed to the `VideoPlayer` component, the compon
|
|
|
101
158
|
<Canvas>
|
|
102
159
|
<DSProvider>
|
|
103
160
|
<VideoPlayer
|
|
104
|
-
type={VideoPlayerTypes.Vimeo}
|
|
105
161
|
videoId="https://vimeo.com/474719268"
|
|
162
|
+
videoType={VideoPlayerTypes.Vimeo}
|
|
163
|
+
/>
|
|
164
|
+
</DSProvider>
|
|
165
|
+
</Canvas>
|
|
166
|
+
|
|
167
|
+
## HTML in Helper Text
|
|
168
|
+
|
|
169
|
+
It's possible to include HTML in the `helperText` prop.
|
|
170
|
+
|
|
171
|
+
<Canvas>
|
|
172
|
+
<DSProvider>
|
|
173
|
+
<VideoPlayer
|
|
174
|
+
helperText="This helper text <b>contains HTML</b>."
|
|
175
|
+
videoId="474719268"
|
|
176
|
+
videoType={VideoPlayerTypes.Vimeo}
|
|
106
177
|
/>
|
|
107
178
|
</DSProvider>
|
|
108
179
|
</Canvas>
|
|
@@ -63,6 +63,46 @@ describe("VideoPlayer", () => {
|
|
|
63
63
|
});
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
+
describe("using embedCode prop", () => {
|
|
67
|
+
const embedCode = `<iframe src="https://player.vimeo.com/video/421404144?h=5467db7edd" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>`;
|
|
68
|
+
const embedCodeWithTitle = `<iframe title="Pre-Existing iFrame Title" src="https://player.vimeo.com/video/421404144?h=5467db7edd" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>`;
|
|
69
|
+
|
|
70
|
+
it("Renders custom embed code", () => {
|
|
71
|
+
render(<VideoPlayer embedCode={embedCode} />);
|
|
72
|
+
expect(screen.getByTitle("Video player")).toBeInTheDocument();
|
|
73
|
+
expect(screen.getByTitle("Video player")).toHaveAttribute(
|
|
74
|
+
"src",
|
|
75
|
+
`https://player.vimeo.com/video/421404144?h=5467db7edd`
|
|
76
|
+
);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("Renders custom embed code with custom iframe title", () => {
|
|
80
|
+
render(
|
|
81
|
+
<VideoPlayer embedCode={embedCode} iframeTitle="Custom iFrame Title" />
|
|
82
|
+
);
|
|
83
|
+
expect(screen.getByTitle("Custom iFrame Title")).toBeInTheDocument();
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it("Renders custom embed code with pre-existing title", () => {
|
|
87
|
+
render(<VideoPlayer embedCode={embedCodeWithTitle} />);
|
|
88
|
+
expect(
|
|
89
|
+
screen.getByTitle("Pre-Existing iFrame Title")
|
|
90
|
+
).toBeInTheDocument();
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it("Renders custom embed code with pre-existing title and ignores `iframeTitle` prop", () => {
|
|
94
|
+
render(
|
|
95
|
+
<VideoPlayer
|
|
96
|
+
embedCode={embedCodeWithTitle}
|
|
97
|
+
iframeTitle="Custom iFrame Title"
|
|
98
|
+
/>
|
|
99
|
+
);
|
|
100
|
+
expect(
|
|
101
|
+
screen.getByTitle("Pre-Existing iFrame Title")
|
|
102
|
+
).toBeInTheDocument();
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
66
106
|
describe("text elements", () => {
|
|
67
107
|
beforeEach(() => {
|
|
68
108
|
utils = render(
|
|
@@ -121,7 +161,7 @@ describe("VideoPlayer", () => {
|
|
|
121
161
|
});
|
|
122
162
|
|
|
123
163
|
describe("prop validation", () => {
|
|
124
|
-
it("Throws error if videoId not formatted properly", () => {
|
|
164
|
+
it("Throws error if the videoId prop not is formatted properly", () => {
|
|
125
165
|
render(
|
|
126
166
|
<VideoPlayer
|
|
127
167
|
videoType={VideoPlayerTypes.Vimeo}
|
|
@@ -135,6 +175,56 @@ describe("VideoPlayer", () => {
|
|
|
135
175
|
)
|
|
136
176
|
).toBeInTheDocument();
|
|
137
177
|
});
|
|
178
|
+
|
|
179
|
+
it("Throws appropriate error if VideoPlayer props are not configured properly", () => {
|
|
180
|
+
const warn = jest.spyOn(console, "warn");
|
|
181
|
+
|
|
182
|
+
render(<VideoPlayer />);
|
|
183
|
+
expect(warn).toHaveBeenCalledWith(
|
|
184
|
+
"VideoPlayer requires either the `embedCode` prop or both the `videoType` and `videoId` props."
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
render(<VideoPlayer videoId="http://vimeo.com/474719268" />);
|
|
188
|
+
expect(warn).toHaveBeenCalledWith(
|
|
189
|
+
"VideoPlayer also requires the `videoType` prop. You have only set the `videoId` prop."
|
|
190
|
+
);
|
|
191
|
+
|
|
192
|
+
render(<VideoPlayer videoType={VideoPlayerTypes.Vimeo} />);
|
|
193
|
+
expect(warn).toHaveBeenCalledWith(
|
|
194
|
+
"VideoPlayer also requires the `videoId` prop. You have only set the `videoType` prop."
|
|
195
|
+
);
|
|
196
|
+
|
|
197
|
+
render(
|
|
198
|
+
<VideoPlayer
|
|
199
|
+
embedCode="<iframe src='https://player.vimeo.com/video/421404144?h=5467db7edd' width='640' height='360' frameborder='0' allow='autoplay; fullscreen; picture-in-picture' allowfullscreen></iframe>"
|
|
200
|
+
videoType={VideoPlayerTypes.Vimeo}
|
|
201
|
+
videoId="http://vimeo.com/474719268"
|
|
202
|
+
/>
|
|
203
|
+
);
|
|
204
|
+
expect(warn).toHaveBeenCalledWith(
|
|
205
|
+
"VideoPlayer can accept the `embedCode` prop or the `videoType` and `videoId` props. You have set both."
|
|
206
|
+
);
|
|
207
|
+
|
|
208
|
+
render(
|
|
209
|
+
<VideoPlayer
|
|
210
|
+
embedCode="<iframe src='https://player.vimeo.com/video/421404144?h=5467db7edd' width='640' height='360' frameborder='0' allow='autoplay; fullscreen; picture-in-picture' allowfullscreen></iframe>"
|
|
211
|
+
videoType={VideoPlayerTypes.Vimeo}
|
|
212
|
+
/>
|
|
213
|
+
);
|
|
214
|
+
expect(warn).toHaveBeenCalledWith(
|
|
215
|
+
"VideoPlayer can accept the `embedCode` prop or the `videoType` and `videoId` props. You have set both."
|
|
216
|
+
);
|
|
217
|
+
|
|
218
|
+
render(
|
|
219
|
+
<VideoPlayer
|
|
220
|
+
embedCode="<iframe src='https://player.vimeo.com/video/421404144?h=5467db7edd' width='640' height='360' frameborder='0' allow='autoplay; fullscreen; picture-in-picture' allowfullscreen></iframe>"
|
|
221
|
+
videoId="http://vimeo.com/474719268"
|
|
222
|
+
/>
|
|
223
|
+
);
|
|
224
|
+
expect(warn).toHaveBeenCalledWith(
|
|
225
|
+
"VideoPlayer can accept the `embedCode` prop or the `videoType` and `videoId` props. You have set both."
|
|
226
|
+
);
|
|
227
|
+
});
|
|
138
228
|
});
|
|
139
229
|
|
|
140
230
|
it("renders the UI snapshot correctly", () => {
|
|
@@ -159,6 +249,17 @@ describe("VideoPlayer", () => {
|
|
|
159
249
|
/>
|
|
160
250
|
)
|
|
161
251
|
.toJSON();
|
|
252
|
+
const videoPlayerUsingEmbedCode = renderer
|
|
253
|
+
.create(
|
|
254
|
+
<VideoPlayer
|
|
255
|
+
descriptionText="VideoPlayer description"
|
|
256
|
+
embedCode="<iframe src='https://player.vimeo.com/video/421404144?h=5467db7edd' width='640' height='360' frameborder='0' allow='autoplay; fullscreen; picture-in-picture' allowfullscreen></iframe>"
|
|
257
|
+
headingText="VideoPlayer Heading"
|
|
258
|
+
id="video-player-with-text"
|
|
259
|
+
helperText="VideoPlayer helper test."
|
|
260
|
+
/>
|
|
261
|
+
)
|
|
262
|
+
.toJSON();
|
|
162
263
|
const videoPlayerError = renderer
|
|
163
264
|
.create(
|
|
164
265
|
<VideoPlayer
|
|
@@ -171,6 +272,7 @@ describe("VideoPlayer", () => {
|
|
|
171
272
|
|
|
172
273
|
expect(videoPlayerWithoutText).toMatchSnapshot();
|
|
173
274
|
expect(videoPlayerWithText).toMatchSnapshot();
|
|
275
|
+
expect(videoPlayerUsingEmbedCode).toMatchSnapshot();
|
|
174
276
|
expect(videoPlayerError).toMatchSnapshot();
|
|
175
277
|
});
|
|
176
278
|
});
|