@nypl/design-system-react-components 0.25.1 → 0.25.5
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 +118 -1
- package/README.md +98 -50
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/dist/components/Button/Button.d.ts +13 -8
- package/dist/components/Button/ButtonTypes.d.ts +2 -1
- package/dist/components/Card/Card.d.ts +36 -52
- package/dist/components/Card/CardTypes.d.ts +0 -15
- package/dist/components/Checkbox/Checkbox.d.ts +17 -13
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +4 -2
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
- package/dist/components/DatePicker/DatePicker.d.ts +36 -34
- package/dist/components/Fieldset/Fieldset.d.ts +25 -0
- package/dist/components/Heading/Heading.d.ts +4 -4
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
- package/dist/components/Icons/Icon.d.ts +8 -0
- package/dist/components/Icons/IconSvgs.d.ts +11 -0
- package/dist/components/Icons/IconTypes.d.ts +11 -0
- package/dist/components/Image/Image.d.ts +19 -9
- package/dist/components/Image/ImageTypes.d.ts +20 -0
- package/dist/components/Link/Link.d.ts +4 -0
- package/dist/components/List/List.d.ts +19 -14
- package/dist/components/Notification/Notification.d.ts +37 -16
- package/dist/components/Pagination/Pagination.d.ts +16 -13
- package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
- package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
- package/dist/components/Radio/Radio.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
- package/dist/components/SearchBar/SearchBar.d.ts +3 -3
- package/dist/components/Select/Select.d.ts +2 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
- package/dist/components/Slider/Slider.d.ts +57 -0
- package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/TextInput/TextInput.d.ts +12 -0
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
- package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
- package/dist/design-system-react-components.cjs.development.js +6131 -3715
- 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 +6124 -3699
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
- package/dist/hooks/useCarouselStyles.d.ts +16 -0
- package/dist/hooks/useNYPLTheme.d.ts +54 -0
- package/dist/hooks/useWindowSize.d.ts +10 -0
- package/dist/index.d.ts +13 -8
- package/dist/resources.scss +180 -170
- package/dist/styles.css +1 -1
- package/dist/theme/components/button.d.ts +22 -8
- package/dist/theme/components/card.d.ts +168 -0
- package/dist/theme/components/checkbox.d.ts +5 -1
- package/dist/theme/components/checkboxGroup.d.ts +12 -0
- package/dist/theme/components/componentWrapper.d.ts +11 -0
- package/dist/theme/components/datePicker.d.ts +16 -0
- package/dist/theme/components/fieldset.d.ts +27 -0
- package/dist/theme/components/global.d.ts +23 -13
- package/dist/theme/components/globalMixins.d.ts +9 -1
- package/dist/theme/components/heading.d.ts +5 -0
- package/dist/theme/components/helperErrorText.d.ts +10 -0
- package/dist/theme/components/hero.d.ts +1 -0
- package/dist/theme/components/horizontalRule.d.ts +14 -0
- package/dist/theme/components/image.d.ts +31 -0
- package/dist/theme/components/label.d.ts +5 -3
- package/dist/theme/components/link.d.ts +4 -0
- package/dist/theme/components/list.d.ts +89 -0
- package/dist/theme/components/notification.d.ts +75 -0
- package/dist/theme/components/pagination.d.ts +19 -0
- package/dist/theme/components/progressIndicator.d.ts +50 -0
- package/dist/theme/components/radioGroup.d.ts +12 -0
- package/dist/theme/components/select.d.ts +11 -2
- package/dist/theme/components/skeletonLoader.d.ts +98 -0
- package/dist/theme/components/slider.d.ts +51 -0
- package/dist/theme/components/tabs.d.ts +54 -3
- package/dist/theme/components/textInput.d.ts +8 -1
- package/dist/theme/components/videoPlayer.d.ts +40 -0
- package/dist/theme/foundations/breakpoints.d.ts +8 -8
- package/dist/theme/foundations/global.d.ts +6 -1
- package/dist/theme/foundations/radii.d.ts +5 -0
- package/dist/theme/foundations/spacing.d.ts +16 -16
- package/package.json +72 -83
- package/src/__tests__/setup.ts +2 -2
- package/src/components/Accordion/Accordion.stories.mdx +39 -44
- package/src/components/Autosuggest/Autosuggest.stories.mdx +3 -3
- package/src/components/Autosuggest/Autosuggest.stories.tsx +2 -1
- package/src/components/Autosuggest/_Autosuggest.scss +5 -5
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +14 -10
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +23 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +5 -1
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +199 -1
- package/src/components/Button/Button.stories.mdx +15 -10
- package/src/components/Button/Button.test.tsx +21 -7
- package/src/components/Button/Button.tsx +22 -34
- package/src/components/Button/ButtonTypes.tsx +1 -0
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +41 -10
- package/src/components/Card/Card.stories.mdx +296 -259
- package/src/components/Card/Card.test.tsx +156 -84
- package/src/components/Card/Card.tsx +195 -145
- package/src/components/Card/CardTypes.tsx +0 -17
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
- package/src/components/CardEdition/CardEdition.stories.tsx +15 -47
- package/src/components/CardEdition/_CardEdition.scss +22 -23
- package/src/components/Chakra/Box.stories.mdx +15 -16
- package/src/components/Chakra/Center.stories.mdx +31 -16
- package/src/components/Chakra/Grid.stories.mdx +28 -15
- package/src/components/Chakra/Stack.stories.mdx +35 -18
- package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
- package/src/components/Checkbox/Checkbox.test.tsx +47 -2
- package/src/components/Checkbox/Checkbox.tsx +39 -33
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +90 -2
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +82 -2
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +29 -2
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +22 -18
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +47 -81
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
- package/src/components/DatePicker/DatePicker.test.tsx +264 -64
- package/src/components/DatePicker/DatePicker.tsx +159 -128
- package/src/components/DatePicker/_DatePicker.scss +33 -67
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
- package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
- package/src/components/Fieldset/Fieldset.test.tsx +125 -0
- package/src/components/Fieldset/Fieldset.tsx +52 -0
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
- package/src/components/Form/Form.stories.mdx +24 -6
- package/src/components/Form/Form.test.tsx +1 -1
- package/src/components/Form/Form.tsx +1 -0
- package/src/components/Grid/SimpleGrid.stories.mdx +32 -39
- package/src/components/Grid/SimpleGrid.test.tsx +4 -4
- package/src/components/Heading/Heading.stories.mdx +3 -4
- package/src/components/Heading/Heading.tsx +5 -5
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
- package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
- package/src/components/Hero/Hero.stories.mdx +12 -2
- package/src/components/Hero/Hero.tsx +1 -1
- package/src/components/Hero/HeroTypes.tsx +1 -0
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +7 -7
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
- package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
- package/src/components/Icons/Icon.stories.mdx +12 -4
- package/src/components/Icons/Icon.test.tsx +18 -0
- package/src/components/Icons/Icon.tsx +16 -1
- package/src/components/Icons/IconSvgs.tsx +22 -0
- package/src/components/Icons/IconTypes.tsx +11 -0
- package/src/components/Image/Image.stories.mdx +220 -0
- package/src/components/Image/Image.test.tsx +131 -29
- package/src/components/Image/Image.tsx +84 -56
- package/src/components/Image/ImageTypes.ts +22 -0
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
- package/src/components/Input/Input.stories.tsx +23 -67
- package/src/components/Input/Input.test.tsx +4 -4
- package/src/components/Input/_Input.scss +23 -14
- package/src/components/Link/Link.tsx +4 -1
- package/src/components/List/List.stories.mdx +124 -49
- package/src/components/List/List.test.tsx +142 -63
- package/src/components/List/List.tsx +89 -93
- package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
- package/src/components/Modal/Modal.stories.mdx +3 -3
- package/src/components/Modal/_Modal.scss +2 -2
- package/src/components/Notification/Notification.stories.mdx +109 -112
- package/src/components/Notification/Notification.test.tsx +99 -110
- package/src/components/Notification/Notification.tsx +156 -159
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
- package/src/components/Pagination/Pagination.stories.mdx +26 -27
- package/src/components/Pagination/Pagination.stories.tsx +11 -16
- package/src/components/Pagination/Pagination.test.tsx +276 -146
- package/src/components/Pagination/Pagination.tsx +174 -154
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
- package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
- package/src/components/Radio/Radio.test.tsx +20 -4
- package/src/components/Radio/Radio.tsx +6 -3
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
- package/src/components/RadioGroup/RadioGroup.stories.mdx +3 -4
- package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
- package/src/components/RadioGroup/RadioGroup.tsx +19 -19
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
- package/src/components/SearchBar/SearchBar.Test.tsx +20 -1
- package/src/components/SearchBar/SearchBar.stories.mdx +113 -8
- package/src/components/SearchBar/SearchBar.tsx +20 -10
- package/src/components/Select/Select.test.tsx +12 -0
- package/src/components/Select/Select.tsx +5 -2
- package/src/components/Select/SelectTypes.tsx +1 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +28 -59
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +74 -71
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
- package/src/components/Slider/Slider.stories.mdx +529 -0
- package/src/components/Slider/Slider.test.tsx +653 -0
- package/src/components/Slider/Slider.tsx +303 -0
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +1 -1
- package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
- package/src/components/StyleGuide/Buttons.stories.mdx +89 -73
- package/src/components/StyleGuide/ColorCard.tsx +46 -0
- package/src/components/StyleGuide/Colors.stories.mdx +171 -311
- package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
- package/src/components/StyleGuide/Forms.stories.mdx +9 -7
- package/src/components/StyleGuide/Iconography.stories.mdx +85 -91
- package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
- package/src/components/StyleGuide/Typography.stories.mdx +202 -189
- package/src/components/StyleGuide/UIDocCard.tsx +1 -1
- package/src/components/Tabs/Tabs.stories.mdx +73 -11
- package/src/components/Tabs/Tabs.tsx +87 -64
- package/src/components/Template/Template.stories.mdx +25 -27
- package/src/components/TextInput/TextInput.stories.mdx +1 -1
- package/src/components/TextInput/TextInput.test.tsx +22 -2
- package/src/components/TextInput/TextInput.tsx +28 -8
- package/src/components/TextInput/TextInputTypes.tsx +2 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
- package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
- package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
- package/src/docs/Chakra.stories.mdx +244 -63
- package/src/docs/Intro.stories.mdx +5 -2
- package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
- package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
- package/src/hooks/useCarouselStyles.ts +34 -0
- package/src/hooks/useNYPLTheme.ts +67 -0
- package/src/hooks/useWindowSize.ts +40 -0
- package/src/index.ts +22 -19
- package/src/resources.scss +5 -5
- package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
- package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
- package/src/styles/base/{_04-base.scss → _03-base.scss} +7 -2
- package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
- package/src/styles/base/_place-holder.scss +14 -3
- package/src/styles/{03-space → space}/_space-inline.scss +14 -14
- package/src/styles/{03-space → space}/_space-inset.scss +10 -10
- package/src/styles/space/_space-stack.scss +116 -0
- package/src/styles.scss +13 -60
- package/src/theme/components/button.ts +21 -15
- package/src/theme/components/card.ts +174 -0
- package/src/theme/components/checkbox.ts +8 -3
- package/src/theme/components/checkboxGroup.ts +8 -0
- package/src/theme/components/componentWrapper.ts +10 -0
- package/src/theme/components/datePicker.ts +17 -0
- package/src/theme/components/fieldset.ts +18 -0
- package/src/theme/components/global.ts +26 -15
- package/src/theme/components/globalMixins.ts +9 -1
- package/src/theme/components/heading.ts +10 -5
- package/src/theme/components/helperErrorText.ts +9 -0
- package/src/theme/components/hero.ts +4 -3
- package/src/theme/components/horizontalRule.ts +13 -0
- package/src/theme/components/icon.ts +9 -9
- package/src/theme/components/image.ts +116 -0
- package/src/theme/components/label.ts +3 -10
- package/src/theme/components/link.ts +5 -1
- package/src/theme/components/list.ts +73 -0
- package/src/theme/components/notification.ts +93 -0
- package/src/theme/components/pagination.ts +20 -0
- package/src/theme/components/progressIndicator.ts +62 -0
- package/src/theme/components/radio.ts +2 -2
- package/src/theme/components/radioGroup.ts +8 -0
- package/src/theme/components/select.ts +6 -3
- package/src/theme/components/skeletonLoader.ts +107 -0
- package/src/theme/components/slider.ts +79 -0
- package/src/theme/components/statusBadge.ts +1 -2
- package/src/theme/components/tabs.ts +49 -19
- package/src/theme/components/template.ts +8 -8
- package/src/theme/components/textInput.ts +5 -4
- package/src/theme/components/videoPlayer.ts +49 -0
- package/src/theme/foundations/breakpoints.ts +8 -8
- package/src/theme/foundations/global.ts +6 -1
- package/src/theme/foundations/radii.ts +6 -0
- package/src/theme/foundations/spacing.ts +24 -24
- package/src/theme/index.ts +41 -10
- package/src/utils/componentCategories.ts +4 -3
- package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
- package/dist/components/Image/Image.stories.d.ts +0 -18
- package/dist/components/List/List.stories.d.ts +0 -7
- package/dist/theme/components/customCheckboxGroup.d.ts +0 -18
- package/dist/theme/components/customRadioGroup.d.ts +0 -18
- package/src/components/Button/_Button.scss +0 -32
- package/src/components/Card/_Card.scss +0 -308
- package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
- package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
- package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
- package/src/components/Image/Image.stories.tsx +0 -54
- package/src/components/Image/_Image.scss +0 -38
- package/src/components/List/List.stories.tsx +0 -139
- package/src/components/List/_List.scss +0 -76
- package/src/components/Notification/_Notification.scss +0 -110
- package/src/components/Pagination/_Pagination.scss +0 -40
- package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
- package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
- package/src/styles/01-colors/_colors-brand.scss +0 -62
- package/src/styles/01-colors/_colors-utility.scss +0 -67
- package/src/styles/02-typography/_type-scale.css +0 -11
- package/src/styles/02-typography/_type-weight.css +0 -7
- package/src/styles/02-typography/_typefaces.css +0 -4
- package/src/styles/03-space/_space-stack.scss +0 -116
- package/src/styles/03-space/_space.css +0 -30
- package/src/styles/base/_card-grid.scss +0 -78
- package/src/styles/base/_typography.scss +0 -11
- package/src/theme/components/customCheckboxGroup.ts +0 -12
- package/src/theme/components/customRadioGroup.ts +0 -12
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
Story,
|
|
4
4
|
Canvas,
|
|
5
5
|
ArgsTable,
|
|
6
|
-
Preview,
|
|
7
6
|
Description,
|
|
8
7
|
} from "@storybook/addon-docs/blocks";
|
|
9
8
|
import { withDesign } from "storybook-addon-designs";
|
|
10
|
-
import { getCategory } from "../../utils/componentCategories";
|
|
11
9
|
|
|
10
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
12
11
|
import DatePicker from "./DatePicker";
|
|
13
12
|
import { DatePickerTypes } from "./DatePickerTypes";
|
|
13
|
+
import DSProvider from "../../theme/provider";
|
|
14
14
|
|
|
15
15
|
<Meta
|
|
16
16
|
title={getCategory("DatePicker")}
|
|
@@ -25,13 +25,11 @@ import { DatePickerTypes } from "./DatePickerTypes";
|
|
|
25
25
|
jest: ["DatePicker.test.tsx"],
|
|
26
26
|
}}
|
|
27
27
|
argTypes={{
|
|
28
|
-
blockName: { table: { disable: true } },
|
|
29
28
|
className: { table: { disable: true } },
|
|
30
|
-
modifiers: { table: { disable: true } },
|
|
31
29
|
id: { table: { disable: true } },
|
|
32
|
-
nameTo: { table: { disable: true } },
|
|
33
30
|
nameFrom: { table: { disable: true } },
|
|
34
|
-
|
|
31
|
+
nameTo: { table: { disable: true } },
|
|
32
|
+
onChange: { table: { disable: true } },
|
|
35
33
|
refTo: { table: { disable: true } },
|
|
36
34
|
}}
|
|
37
35
|
/>
|
|
@@ -41,30 +39,37 @@ import { DatePickerTypes } from "./DatePickerTypes";
|
|
|
41
39
|
| Component Version | DS Version |
|
|
42
40
|
| ----------------- | ---------- |
|
|
43
41
|
| Added | `0.24.0` |
|
|
44
|
-
| Latest | `0.
|
|
42
|
+
| Latest | `0.25.3` |
|
|
45
43
|
|
|
46
44
|
<Description of={DatePicker} />
|
|
47
45
|
|
|
46
|
+
This is fully customizable to allow selectable full dates, only the month, or
|
|
47
|
+
only they year as input. Initial date values and max and min date values can
|
|
48
|
+
also be added through props.
|
|
49
|
+
|
|
48
50
|
<Canvas withToolbar>
|
|
49
51
|
<Story
|
|
50
52
|
name="DatePicker"
|
|
51
53
|
args={{
|
|
52
|
-
dateType: DatePickerTypes.Full,
|
|
53
54
|
dateFormat: "yyyy-MM-dd",
|
|
54
|
-
|
|
55
|
-
initialDate: "1/1/2021",
|
|
56
|
-
minDate: "1/1/2021",
|
|
57
|
-
maxDate: "1/1/2022",
|
|
58
|
-
nameFrom: "visit-dates",
|
|
59
|
-
labelText: "Select the date you want to visit NYPL",
|
|
55
|
+
dateType: DatePickerTypes.Full,
|
|
60
56
|
helperText: "Note that the Library may be closed on Sundays.",
|
|
61
57
|
helperTextFrom: "Select start date.",
|
|
62
58
|
helperTextTo: "Select end date.",
|
|
59
|
+
initialDate: "1/1/2021",
|
|
60
|
+
initialDateTo: "1/30/2021",
|
|
63
61
|
invalidText: "Please select a valid date.",
|
|
62
|
+
isDateRange: false,
|
|
63
|
+
isDisabled: false,
|
|
64
|
+
isInvalid: false,
|
|
65
|
+
isRequired: false,
|
|
66
|
+
labelText: "Select the date you want to visit NYPL",
|
|
67
|
+
maxDate: "1/1/2022",
|
|
68
|
+
minDate: "1/1/2021",
|
|
69
|
+
nameFrom: "visit-dates-from",
|
|
70
|
+
nameTo: "visit-dates-to",
|
|
71
|
+
showHelperInvalidText: true,
|
|
64
72
|
showLabel: true,
|
|
65
|
-
errored: false,
|
|
66
|
-
disabled: false,
|
|
67
|
-
required: false,
|
|
68
73
|
showOptReqLabel: true,
|
|
69
74
|
}}
|
|
70
75
|
>
|
|
@@ -76,38 +81,48 @@ import { DatePickerTypes } from "./DatePickerTypes";
|
|
|
76
81
|
|
|
77
82
|
## Date Range
|
|
78
83
|
|
|
79
|
-
A date range can be rendered by setting the `
|
|
84
|
+
A date range can be rendered by setting the `isDateRange` prop to `true`. This
|
|
80
85
|
will render two input fields with labels "From" and "To". If the component has
|
|
81
|
-
an error,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
86
|
+
an error, has required fields, or if it is disabled, then both input elements
|
|
87
|
+
will share the props and styling. Note that for date range types, a `fieldset`
|
|
88
|
+
is used as the parent wrapper and the `labelText` is used for the `legend`
|
|
89
|
+
element text.
|
|
85
90
|
|
|
86
91
|
Note: In the following example, the minimum date is "1/1/2021" and the max date
|
|
87
|
-
is "
|
|
92
|
+
is "3/1/21". This means only values within this range are selectable from the
|
|
88
93
|
popup calendar.
|
|
89
94
|
|
|
90
95
|
<Canvas withToolbar>
|
|
91
96
|
<Story name="Date Range">
|
|
92
97
|
<DatePicker
|
|
93
98
|
id="date-range"
|
|
94
|
-
dateType={DatePickerTypes.Full}
|
|
95
99
|
dateFormat="yyyy-MM-dd"
|
|
96
|
-
|
|
100
|
+
dateType={DatePickerTypes.Full}
|
|
97
101
|
minDate="1/1/2021"
|
|
98
|
-
maxDate="
|
|
102
|
+
maxDate="3/1/2021"
|
|
99
103
|
labelText="Select the date range you want to visit NYPL"
|
|
100
|
-
nameFrom="visit-dates"
|
|
104
|
+
nameFrom="visit-dates-from"
|
|
105
|
+
nameTo="visit-dates-to"
|
|
101
106
|
helperTextFrom="From this date."
|
|
102
107
|
helperTextTo="To this date."
|
|
103
108
|
helperText="Select a valid date range."
|
|
104
|
-
invalidText="
|
|
109
|
+
invalidText="There was an error with the date range :("
|
|
105
110
|
showOptReqLabel={false}
|
|
111
|
+
isDateRange
|
|
106
112
|
/>
|
|
107
113
|
</Story>
|
|
108
114
|
</Canvas>
|
|
109
115
|
|
|
110
|
-
##
|
|
116
|
+
## Calendar Types
|
|
117
|
+
|
|
118
|
+
### Full Date Input
|
|
119
|
+
|
|
120
|
+
By default, the `DatePicker` will display the input date value in the full
|
|
121
|
+
format that contains the year, month, and day such as "2021-01-30". Although
|
|
122
|
+
this is the default, it can be explicitly set through the `dateType` prop with
|
|
123
|
+
value of `DatePickerTypes.Full`.
|
|
124
|
+
|
|
125
|
+
### Month Date Input
|
|
111
126
|
|
|
112
127
|
It's possible to select dates by skipping the day value and only selecting
|
|
113
128
|
the month and the year when `dateType` is set to `DatePickerTypes.Month`. Note
|
|
@@ -118,7 +133,6 @@ that all 12 months will appear in the popup calendar with their abbreviated name
|
|
|
118
133
|
<DatePicker
|
|
119
134
|
id="month-date"
|
|
120
135
|
dateType={DatePickerTypes.Month}
|
|
121
|
-
dateRange={false}
|
|
122
136
|
labelText="Select the month you want to visit NYPL"
|
|
123
137
|
helperText="Note that the Library may be closed on Sundays."
|
|
124
138
|
invalidText="Please select a valid month."
|
|
@@ -126,7 +140,7 @@ that all 12 months will appear in the popup calendar with their abbreviated name
|
|
|
126
140
|
</Story>
|
|
127
141
|
</Canvas>
|
|
128
142
|
|
|
129
|
-
|
|
143
|
+
### Year Date Input
|
|
130
144
|
|
|
131
145
|
It's possible to select dates by only the year when `dateType` is set to
|
|
132
146
|
`DatePickerTypes.Year`. Note that only 12 values will appear in the popup
|
|
@@ -135,9 +149,8 @@ calendar; the four previous years, the current year, and the next seven years.
|
|
|
135
149
|
<Canvas withToolbar>
|
|
136
150
|
<Story name="Year Date Input">
|
|
137
151
|
<DatePicker
|
|
138
|
-
id="
|
|
152
|
+
id="year-date"
|
|
139
153
|
dateType={DatePickerTypes.Year}
|
|
140
|
-
dateRange={false}
|
|
141
154
|
labelText="Select the year you want to visit NYPL"
|
|
142
155
|
helperText="Note that the Library may be closed on Sundays."
|
|
143
156
|
showOptReqLabel={false}
|
|
@@ -149,28 +162,116 @@ calendar; the four previous years, the current year, and the next seven years.
|
|
|
149
162
|
|
|
150
163
|
### Errored State
|
|
151
164
|
|
|
152
|
-
<
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
165
|
+
<Canvas>
|
|
166
|
+
<DSProvider>
|
|
167
|
+
<DatePicker
|
|
168
|
+
id="invalid-date"
|
|
169
|
+
dateType={DatePickerTypes.Full}
|
|
170
|
+
labelText="Select the year you want to visit NYPL"
|
|
171
|
+
helperText="Note that the Library may be closed on Sundays."
|
|
172
|
+
invalidText="Please select a valid date."
|
|
173
|
+
showOptReqLabel={false}
|
|
174
|
+
isInvalid
|
|
175
|
+
isDateRange
|
|
176
|
+
/>
|
|
177
|
+
</DSProvider>
|
|
178
|
+
</Canvas>
|
|
163
179
|
|
|
164
180
|
### Disabled State
|
|
165
181
|
|
|
166
|
-
<
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
182
|
+
<Canvas>
|
|
183
|
+
<DSProvider>
|
|
184
|
+
<DatePicker
|
|
185
|
+
id="disabled-date"
|
|
186
|
+
dateType={DatePickerTypes.Full}
|
|
187
|
+
labelText="Select the year you want to visit NYPL"
|
|
188
|
+
showOptReqLabel={false}
|
|
189
|
+
isDateRange
|
|
190
|
+
isDisabled
|
|
191
|
+
/>
|
|
192
|
+
</DSProvider>
|
|
193
|
+
</Canvas>
|
|
194
|
+
|
|
195
|
+
### Required State
|
|
196
|
+
|
|
197
|
+
The "Required" or "Optional" text in the legend in the date range, or the label
|
|
198
|
+
in a normal date input, can be hidden when `showOptReqLabel` is set to `false`.
|
|
199
|
+
|
|
200
|
+
<Canvas>
|
|
201
|
+
<DSProvider>
|
|
202
|
+
<DatePicker
|
|
203
|
+
id="disabled-date"
|
|
204
|
+
dateType={DatePickerTypes.Full}
|
|
205
|
+
labelText="Select the year you want to visit NYPL"
|
|
206
|
+
isDateRange
|
|
207
|
+
isRequired
|
|
208
|
+
/>
|
|
209
|
+
</DSProvider>
|
|
210
|
+
</Canvas>
|
|
211
|
+
|
|
212
|
+
## Date Inputs and Output
|
|
213
|
+
|
|
214
|
+
### Initial Date Values
|
|
215
|
+
|
|
216
|
+
The initial date values can be set through `initialDate` for the "From" input
|
|
217
|
+
field and `initialDateTo` for the "To" input field. In the following examples,
|
|
218
|
+
`initialDate` is `"12/1/21"` and `initialDateTo` is `"12/10/21"`. The
|
|
219
|
+
`initialDate` and `initialDateTo` values are used in the JS `Date` function so
|
|
220
|
+
they needs to be in that specific format. Note that according to the NYPL
|
|
221
|
+
styleguide, we display dates as "year-month-day" by default.
|
|
222
|
+
|
|
223
|
+
<Canvas>
|
|
224
|
+
<DSProvider>
|
|
225
|
+
<DatePicker
|
|
226
|
+
id="init-dates"
|
|
227
|
+
dateType={DatePickerTypes.Full}
|
|
228
|
+
labelText="Select the date you want to visit NYPL"
|
|
229
|
+
initialDate="12/1/21"
|
|
230
|
+
initialDateTo="12/10/21"
|
|
231
|
+
isDateRange
|
|
232
|
+
/>
|
|
233
|
+
</DSProvider>
|
|
234
|
+
</Canvas>
|
|
235
|
+
|
|
236
|
+
### Date Format
|
|
237
|
+
|
|
238
|
+
The display date format can be updated through the `dateFormat` prop. The
|
|
239
|
+
default is set to `"yyyy-MM-dd"` based on the NYPL styleguide. This should be
|
|
240
|
+
written in [ISO-8601 format](https://www.w3.org/TR/NOTE-datetime).
|
|
241
|
+
|
|
242
|
+
<Canvas>
|
|
243
|
+
<DSProvider>
|
|
244
|
+
<DatePicker
|
|
245
|
+
id="format-date"
|
|
246
|
+
dateFormat="MM-dd-yyyy"
|
|
247
|
+
dateType={DatePickerTypes.Full}
|
|
248
|
+
labelText="Select the date you want to visit NYPL"
|
|
249
|
+
initialDate="12/1/21"
|
|
250
|
+
initialDateTo="12/10/21"
|
|
251
|
+
isDateRange
|
|
252
|
+
/>
|
|
253
|
+
</DSProvider>
|
|
254
|
+
</Canvas>
|
|
255
|
+
|
|
256
|
+
### Max and Min Date Values
|
|
257
|
+
|
|
258
|
+
The maximum and minimum date values can be set through the `maxDate` and
|
|
259
|
+
`minDate` props, respectively. In this example, go back to January through
|
|
260
|
+
February to see the dates that are available to select.
|
|
261
|
+
|
|
262
|
+
<Canvas>
|
|
263
|
+
<DSProvider>
|
|
264
|
+
<DatePicker
|
|
265
|
+
id="max-min-dates"
|
|
266
|
+
dateFormat="MM-dd-yyyy"
|
|
267
|
+
dateType={DatePickerTypes.Full}
|
|
268
|
+
labelText="Select the date you want to visit NYPL"
|
|
269
|
+
minDate="1/1/2021"
|
|
270
|
+
maxDate="3/1/2021"
|
|
271
|
+
isDateRange
|
|
272
|
+
/>
|
|
273
|
+
</DSProvider>
|
|
274
|
+
</Canvas>
|
|
174
275
|
|
|
175
276
|
## Getting Date Data Values
|
|
176
277
|
|
|
@@ -178,11 +279,11 @@ calendar; the four previous years, the current year, and the next seven years.
|
|
|
178
279
|
|
|
179
280
|
If your application uses controlled React components and the DS DatePicker must
|
|
180
281
|
be controlled, you can extract the data through the `onChange` prop function.
|
|
181
|
-
This will be called every time the date is updated in either the start date
|
|
182
|
-
field or the end date input field. The returned data is an object with
|
|
183
|
-
and `endDate` keys and `Date` object values.
|
|
282
|
+
This will be called every time the date is updated in either the start date
|
|
283
|
+
input field or the end date input field. The returned data is an object with
|
|
284
|
+
`startDate` and `endDate` keys and `Date` object values.
|
|
184
285
|
|
|
185
|
-
```
|
|
286
|
+
```tsx
|
|
186
287
|
const onChange = (data) => {
|
|
187
288
|
// This will return an object such as:
|
|
188
289
|
// {
|
|
@@ -200,10 +301,10 @@ const onChange = (data) => {
|
|
|
200
301
|
<DatePicker
|
|
201
302
|
id="date-range"
|
|
202
303
|
dateType={DatePickerTypes.Full}
|
|
203
|
-
dateRange={true}
|
|
204
304
|
labelText="Select the date range you want to visit NYPL"
|
|
205
305
|
invalidText="Please select a valid date range."
|
|
206
306
|
onChange={onChange}
|
|
307
|
+
isDateRange
|
|
207
308
|
/>;
|
|
208
309
|
```
|
|
209
310
|
|
|
@@ -219,7 +320,7 @@ obtained.
|
|
|
219
320
|
The following example is using the `register` React `ref` from the
|
|
220
321
|
`react-hook-form` package.
|
|
221
322
|
|
|
222
|
-
```
|
|
323
|
+
```tsx
|
|
223
324
|
import { useFormContext } from "react-hook-form";
|
|
224
325
|
// ...
|
|
225
326
|
const { register, handleSubmit } = useFormContext();
|
|
@@ -244,13 +345,13 @@ const submitForm = (formData) => {
|
|
|
244
345
|
<DatePicker
|
|
245
346
|
id="date-range"
|
|
246
347
|
dateType={DatePickerTypes.Full}
|
|
247
|
-
dateRange={true}
|
|
248
348
|
labelText="Select the date range you want to visit NYPL"
|
|
249
349
|
nameFrom="visitDateFrom"
|
|
250
350
|
nameTo="visitDateTo"
|
|
251
351
|
invalidText="Please select a valid date range."
|
|
252
352
|
ref={register()}
|
|
253
353
|
refTo={register()}
|
|
354
|
+
isDateRange
|
|
254
355
|
/>
|
|
255
356
|
</form>;
|
|
256
357
|
```
|
|
@@ -258,21 +359,21 @@ const submitForm = (formData) => {
|
|
|
258
359
|
The above is specific to `react-hook-form` but a similar pattern can be used
|
|
259
360
|
with normal React `ref` values.
|
|
260
361
|
|
|
261
|
-
```
|
|
362
|
+
```tsx
|
|
262
363
|
const refStart = React.createRef<TextInputRefType>();
|
|
263
364
|
const refEnd = React.createRef<TextInputRefType>();
|
|
264
365
|
// ...
|
|
265
366
|
<DatePicker
|
|
266
367
|
id="date-range"
|
|
267
368
|
dateType={DatePickerTypes.Full}
|
|
268
|
-
dateRange={true}
|
|
269
369
|
labelText="Select the date range you want to visit NYPL"
|
|
270
370
|
nameFrom="visitDateFrom"
|
|
271
371
|
nameTo="visitDateTo"
|
|
272
372
|
invalidText="Please select a valid date range."
|
|
273
373
|
ref={refStart}
|
|
274
374
|
refTo={refEnd}
|
|
275
|
-
|
|
375
|
+
isDateRange
|
|
376
|
+
/>;
|
|
276
377
|
|
|
277
378
|
// ...
|
|
278
379
|
// Get the value through:
|