@nypl/design-system-react-components 0.25.0 → 0.25.4
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 +142 -1
- package/README.md +98 -50
- package/dist/components/Accordion/Accordion.d.ts +14 -14
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +15 -14
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +6 -0
- package/dist/components/Button/Button.d.ts +13 -8
- package/dist/components/Button/ButtonTypes.d.ts +3 -1
- package/dist/components/Card/Card.d.ts +36 -52
- package/dist/components/Card/CardTypes.d.ts +2 -17
- package/dist/components/Checkbox/Checkbox.d.ts +17 -13
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +45 -0
- package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +4 -0
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
- package/dist/components/DatePicker/DatePicker.d.ts +37 -35
- package/dist/components/Fieldset/Fieldset.d.ts +25 -0
- package/dist/components/Form/Form.d.ts +13 -8
- package/dist/components/Form/FormTypes.d.ts +2 -8
- package/dist/components/Grid/GridTypes.d.ts +9 -0
- package/dist/components/Grid/SimpleGrid.d.ts +14 -0
- package/dist/components/Heading/Heading.d.ts +4 -4
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
- package/dist/components/Hero/Hero.d.ts +19 -14
- package/dist/components/Hero/HeroTypes.d.ts +10 -5
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
- package/dist/components/Icons/Icon.d.ts +19 -14
- package/dist/components/Icons/IconSvgs.d.ts +11 -0
- package/dist/components/Icons/IconTypes.d.ts +89 -64
- package/dist/components/Image/Image.d.ts +19 -9
- package/dist/components/Image/ImageTypes.d.ts +20 -0
- package/dist/components/Label/Label.d.ts +5 -17
- package/dist/components/Link/Link.d.ts +12 -12
- 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 +45 -27
- package/dist/components/Select/Select.d.ts +34 -35
- package/dist/components/Select/SelectTypes.d.ts +4 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
- package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +2 -2
- package/dist/components/Slider/Slider.d.ts +57 -0
- package/dist/components/StatusBadge/StatusBadge.d.ts +8 -6
- package/dist/components/StatusBadge/StatusBadgeTypes.d.ts +5 -0
- package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/Template/Template.d.ts +91 -0
- package/dist/components/Text/Text.d.ts +16 -0
- package/dist/components/Text/TextTypes.d.ts +6 -0
- package/dist/components/TextInput/TextInput.d.ts +44 -31
- package/dist/components/TextInput/TextInputTypes.d.ts +5 -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 +6473 -2630
- 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 +6463 -2631
- 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 +19 -7
- package/dist/resources.scss +180 -170
- package/dist/styles.css +1 -1
- package/dist/theme/components/accordion.d.ts +25 -0
- package/dist/theme/components/breadcrumb.d.ts +90 -0
- package/dist/theme/components/button.d.ts +39 -15
- package/dist/theme/components/card.d.ts +168 -0
- package/dist/theme/components/checkbox.d.ts +12 -8
- 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 +65 -0
- package/dist/theme/components/globalMixins.d.ts +23 -0
- package/dist/theme/components/heading.d.ts +55 -20
- package/dist/theme/components/helperErrorText.d.ts +10 -0
- package/dist/theme/components/hero.d.ts +493 -0
- package/dist/theme/components/horizontalRule.d.ts +14 -0
- package/dist/theme/components/icon.d.ts +13 -0
- package/dist/theme/components/image.d.ts +31 -0
- package/dist/theme/components/label.d.ts +18 -0
- package/dist/theme/components/link.d.ts +49 -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/radio.d.ts +8 -7
- package/dist/theme/components/radioGroup.d.ts +12 -0
- package/dist/theme/components/searchBar.d.ts +20 -0
- package/dist/theme/components/select.d.ts +67 -0
- package/dist/theme/components/skeletonLoader.d.ts +98 -0
- package/dist/theme/components/slider.d.ts +51 -0
- package/dist/theme/components/statusBadge.d.ts +25 -0
- package/dist/theme/components/tabs.d.ts +63 -12
- package/dist/theme/components/template.d.ts +105 -0
- package/dist/theme/components/text.d.ts +20 -0
- package/dist/theme/components/textInput.d.ts +112 -0
- 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 +8 -0
- package/dist/theme/foundations/radii.d.ts +5 -0
- package/dist/theme/foundations/shadows.d.ts +4 -0
- package/dist/theme/foundations/spacing.d.ts +16 -16
- package/dist/utils/utils.d.ts +6 -0
- package/package.json +72 -82
- package/src/__tests__/setup.ts +2 -2
- package/src/components/Accordion/Accordion.stories.mdx +223 -34
- package/src/components/Accordion/Accordion.test.tsx +135 -19
- package/src/components/Accordion/Accordion.tsx +81 -56
- package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -4
- package/src/components/Autosuggest/Autosuggest.stories.tsx +3 -2
- package/src/components/Autosuggest/_Autosuggest.scss +5 -5
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +48 -50
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +54 -25
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +75 -73
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +6 -0
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +298 -0
- package/src/components/Button/Button.stories.mdx +45 -36
- package/src/components/Button/Button.test.tsx +37 -11
- package/src/components/Button/Button.tsx +22 -34
- package/src/components/Button/ButtonTypes.tsx +2 -0
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +50 -8
- package/src/components/Card/Card.stories.mdx +314 -273
- package/src/components/Card/Card.test.tsx +157 -91
- package/src/components/Card/Card.tsx +195 -145
- package/src/components/Card/CardTypes.tsx +2 -19
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
- package/src/components/CardEdition/CardEdition.stories.tsx +26 -53
- package/src/components/CardEdition/CardEdition.test.tsx +23 -31
- package/src/components/CardEdition/_CardEdition.scss +22 -23
- package/src/components/Chakra/Box.stories.mdx +15 -16
- package/src/components/Chakra/Center.stories.mdx +56 -24
- package/src/components/Chakra/Grid.stories.mdx +92 -0
- package/src/components/Chakra/Stack.stories.mdx +38 -21
- package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
- package/src/components/Checkbox/Checkbox.test.tsx +47 -2
- package/src/components/Checkbox/Checkbox.tsx +44 -41
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +92 -7
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +329 -0
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +372 -0
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +152 -0
- package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +4 -0
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +1326 -0
- 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 +165 -134
- package/src/components/DatePicker/_DatePicker.scss +33 -66
- 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 +70 -27
- package/src/components/Form/Form.test.tsx +58 -45
- package/src/components/Form/Form.tsx +50 -21
- package/src/components/Form/FormTypes.tsx +3 -8
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +24 -14
- package/src/components/Grid/GridTypes.tsx +9 -0
- package/src/components/Grid/SimpleGrid.stories.mdx +268 -0
- package/src/components/Grid/SimpleGrid.test.tsx +66 -0
- package/src/components/Grid/SimpleGrid.tsx +37 -0
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +8 -0
- package/src/components/Heading/Heading.stories.mdx +3 -3
- package/src/components/Heading/Heading.tsx +12 -6
- 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 +198 -121
- package/src/components/Hero/Hero.test.tsx +537 -107
- package/src/components/Hero/Hero.tsx +79 -92
- package/src/components/Hero/HeroTypes.tsx +18 -5
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +307 -0
- 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 +94 -77
- package/src/components/Icons/Icon.test.tsx +48 -22
- package/src/components/Icons/Icon.tsx +78 -61
- package/src/components/Icons/IconSvgs.tsx +22 -0
- package/src/components/Icons/IconTypes.tsx +91 -64
- 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/Label/Label.stories.mdx +28 -7
- package/src/components/Label/Label.test.tsx +43 -12
- package/src/components/Label/Label.tsx +21 -34
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +41 -0
- package/src/components/Link/Link.stories.mdx +41 -41
- package/src/components/Link/Link.test.tsx +33 -44
- package/src/components/Link/Link.tsx +117 -100
- package/src/components/List/List.stories.mdx +124 -51
- 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 +119 -111
- package/src/components/Notification/Notification.test.tsx +102 -126
- package/src/components/Notification/Notification.tsx +157 -161
- 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 -140
- 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 +4 -5
- package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
- package/src/components/RadioGroup/RadioGroup.tsx +21 -29
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
- package/src/components/SearchBar/SearchBar.Test.tsx +170 -16
- package/src/components/SearchBar/SearchBar.stories.mdx +294 -219
- package/src/components/SearchBar/SearchBar.tsx +161 -46
- package/src/components/Select/Select.stories.mdx +188 -170
- package/src/components/Select/Select.test.tsx +132 -375
- package/src/components/Select/Select.tsx +121 -165
- package/src/components/Select/SelectTypes.tsx +5 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +33 -76
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +75 -70
- package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +2 -2
- 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/StatusBadge/StatusBadge.stories.mdx +91 -0
- package/src/components/StatusBadge/StatusBadge.test.tsx +35 -7
- package/src/components/StatusBadge/StatusBadge.tsx +24 -25
- package/src/components/StatusBadge/StatusBadgeTypes.tsx +5 -0
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +28 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +17 -17
- package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
- package/src/components/StyleGuide/Buttons.stories.mdx +102 -86
- package/src/components/StyleGuide/ColorCard.tsx +46 -0
- package/src/components/StyleGuide/Colors.stories.mdx +196 -0
- 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 +119 -127
- 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 +88 -67
- package/src/components/Template/Template.stories.mdx +572 -0
- package/src/components/Template/Template.test.tsx +124 -0
- package/src/components/Template/Template.tsx +226 -0
- package/src/components/Text/Text.stories.mdx +70 -0
- package/src/components/Text/Text.test.tsx +63 -0
- package/src/components/Text/Text.tsx +55 -0
- package/src/components/Text/TextTypes.tsx +6 -0
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +33 -0
- package/src/components/TextInput/TextInput.stories.mdx +89 -90
- package/src/components/TextInput/TextInput.test.tsx +84 -85
- package/src/components/TextInput/TextInput.tsx +121 -95
- package/src/components/TextInput/TextInputTypes.tsx +8 -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 +246 -65
- package/src/docs/Intro.stories.mdx +18 -13
- 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 +39 -16
- 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/_03-base.scss +25 -0
- 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 -62
- package/src/theme/components/accordion.ts +30 -0
- package/src/theme/components/breadcrumb.ts +77 -0
- package/src/theme/components/button.ts +91 -71
- package/src/theme/components/card.ts +174 -0
- package/src/theme/components/checkbox.ts +22 -29
- 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 +82 -0
- package/src/theme/components/globalMixins.ts +24 -0
- package/src/theme/components/heading.ts +25 -13
- package/src/theme/components/helperErrorText.ts +9 -0
- package/src/theme/components/hero.ts +240 -0
- package/src/theme/components/horizontalRule.ts +13 -0
- package/src/theme/components/icon.ts +79 -0
- package/src/theme/components/image.ts +116 -0
- package/src/theme/components/label.ts +10 -0
- package/src/theme/components/link.ts +51 -0
- 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 +22 -33
- package/src/theme/components/radioGroup.ts +8 -0
- package/src/theme/components/searchBar.ts +21 -0
- package/src/theme/components/select.ts +53 -0
- package/src/theme/components/skeletonLoader.ts +107 -0
- package/src/theme/components/slider.ts +79 -0
- package/src/theme/components/statusBadge.ts +26 -0
- package/src/theme/components/tabs.ts +102 -69
- package/src/theme/components/template.ts +114 -0
- package/src/theme/components/text.ts +31 -0
- package/src/theme/components/textInput.ts +62 -0
- package/src/theme/components/videoPlayer.ts +49 -0
- package/src/theme/foundations/breakpoints.ts +8 -8
- package/src/theme/foundations/colors.ts +29 -13
- package/src/theme/foundations/global.ts +8 -0
- package/src/theme/foundations/radii.ts +6 -0
- package/src/theme/foundations/shadows.ts +5 -0
- package/src/theme/foundations/spacing.ts +24 -24
- package/src/theme/index.ts +74 -13
- package/src/utils/componentCategories.ts +12 -5
- package/src/utils/utils.ts +13 -0
- package/dist/components/Accordion/Accordion.stories.d.ts +0 -6
- 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/components/StatusBadge/StatusBadge.stories.d.ts +0 -8
- package/dist/components/StyleGuide/Colors.stories.d.ts +0 -25
- package/dist/components/Template/Template.stories.d.ts +0 -30
- package/dist/theme/components/customRadioGroup.d.ts +0 -17
- package/src/components/Accordion/Accordion.stories.tsx +0 -66
- package/src/components/Accordion/_Accordion.scss +0 -81
- package/src/components/Breadcrumbs/_Breadcrumbs.scss +0 -97
- package/src/components/Button/_Button.scss +0 -56
- package/src/components/Card/_Card.scss +0 -308
- package/src/components/Form/_Form.scss +0 -67
- package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
- package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
- package/src/components/Hero/_Hero.scss +0 -256
- package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
- package/src/components/Icons/_Icons.scss +0 -116
- package/src/components/Image/Image.stories.tsx +0 -54
- package/src/components/Image/_Image.scss +0 -38
- package/src/components/Label/_Label.scss +0 -22
- package/src/components/Link/_Link.scss +0 -73
- 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/SearchBar/_SearchBar.scss +0 -16
- package/src/components/Select/_Select.scss +0 -82
- package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
- package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -34
- package/src/components/StatusBadge/_StatusBadge.scss +0 -23
- package/src/components/StyleGuide/Colors.stories.tsx +0 -289
- package/src/components/Template/Template.stories.tsx +0 -86
- package/src/components/Template/_Template.scss +0 -63
- package/src/components/TextInput/_TextInput.scss +0 -59
- package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
- package/src/styles/01-colors/_colors-brand.scss +0 -56
- package/src/styles/01-colors/_colors-utility.scss +0 -65
- 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/_04-base.scss +0 -19
- package/src/styles/base/_card-grid.scss +0 -78
- package/src/styles/base/_typography.scss +0 -11
- package/src/theme/components/customRadioGroup.ts +0 -18
|
@@ -1,69 +1,78 @@
|
|
|
1
1
|
import React, { useState, forwardRef } from "react";
|
|
2
2
|
import ReactDatePicker from "react-datepicker";
|
|
3
3
|
|
|
4
|
-
import { FormRow, FormField } from "../Form/Form";
|
|
5
4
|
import { DatePickerTypes } from "./DatePickerTypes";
|
|
5
|
+
import Fieldset from "../Fieldset/Fieldset";
|
|
6
|
+
import { FormRow, FormField } from "../Form/Form";
|
|
7
|
+
import { FormSpacing } from "../Form/FormTypes";
|
|
8
|
+
import HelperErrorText from "../HelperErrorText/HelperErrorText";
|
|
6
9
|
import TextInput, {
|
|
7
10
|
InputProps,
|
|
8
11
|
TextInputRefType,
|
|
9
12
|
} from "../TextInput/TextInput";
|
|
10
|
-
import HelperErrorText from "../HelperErrorText/HelperErrorText";
|
|
11
13
|
import generateUUID from "../../helpers/generateUUID";
|
|
12
|
-
import
|
|
14
|
+
import { useMultiStyleConfig } from "@chakra-ui/system";
|
|
13
15
|
|
|
14
16
|
// The object shape for the DatePicker's start and end date state values.
|
|
15
17
|
// Internal use only.
|
|
16
18
|
interface FullDateType {
|
|
17
|
-
|
|
19
|
+
/** Date object that gets returned for the onChange
|
|
20
|
+
* function only for date ranges. */
|
|
18
21
|
endDate?: Date;
|
|
22
|
+
/** Date object that gets returned for the onChange function. */
|
|
23
|
+
startDate: Date;
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
// Used for the input fields' parent wrapper. Internal use only.
|
|
22
27
|
interface DateRangeRowProps {
|
|
28
|
+
/** ID that other components can cross reference for accessibility purposes. */
|
|
29
|
+
id?: string;
|
|
23
30
|
/** Whether to render a single date input or two for a range of two dates. */
|
|
24
|
-
|
|
31
|
+
isDateRange?: boolean;
|
|
25
32
|
}
|
|
26
33
|
|
|
27
34
|
// Interface used by the `div` or `fieldset` parent wrapper element.
|
|
28
35
|
// Internal use only.
|
|
29
36
|
interface DatePickerWrapperProps extends DateRangeRowProps {
|
|
30
|
-
/**
|
|
31
|
-
|
|
37
|
+
/** Additional className. */
|
|
38
|
+
className?: string;
|
|
39
|
+
/** Adds the 'required' property to the input element(s). */
|
|
40
|
+
isRequired?: boolean;
|
|
32
41
|
/** Passed to the `TextInput` component to render a label associated with an input field. */
|
|
33
42
|
labelText: string;
|
|
34
43
|
/** Offers the ability to show the label onscreen or hide it. */
|
|
35
44
|
showLabel?: boolean;
|
|
36
|
-
/**
|
|
37
|
-
|
|
38
|
-
className?: string;
|
|
45
|
+
/** Whether or not to display the "Required"/"Optional" text in the label text. */
|
|
46
|
+
showOptReqLabel?: boolean;
|
|
39
47
|
}
|
|
40
48
|
|
|
41
49
|
// Interface used by the internal DS `TextInput` component as a custom
|
|
42
50
|
// component for the ReactDatePicker plugin component. Internal use only.
|
|
43
51
|
interface CustomTextInputProps extends InputProps {
|
|
44
|
-
/** Data value used by the ReactDatePicker plugin and the custom TextInput component. */
|
|
45
|
-
value?: string;
|
|
46
|
-
/** Event handler used by the ReactDatePicker plugin to open the popup calendar. */
|
|
47
|
-
onClick?: (data: any) => any;
|
|
48
|
-
/** The ReactDatePicker plugin has its own `required` prop so we use this to
|
|
49
|
-
* pass the value from the parent `DatePicker` component. */
|
|
50
|
-
dsRequired?: boolean;
|
|
51
52
|
/** The ReactDatePicker plugin has its own `id` prop so we use this to pass the
|
|
52
53
|
* value from the parent `DatePicker` component. */
|
|
53
54
|
dsId?: string;
|
|
54
55
|
/** The ReactDatePicker plugin manipulates the ref value so we declare our
|
|
55
56
|
* own for some cases. */
|
|
56
57
|
dsRef?: React.Ref<TextInputRefType>;
|
|
58
|
+
/** The ReactDatePicker plugin has its own `required` prop so we use this to
|
|
59
|
+
* pass the value from the parent `DatePicker` component. */
|
|
60
|
+
isRequired?: boolean;
|
|
61
|
+
/** Event handler used by the ReactDatePicker plugin to open the popup calendar. */
|
|
62
|
+
onClick?: (data: any) => any;
|
|
57
63
|
/** Whether or not to display the "Required"/"Optional" text in the label text. */
|
|
58
64
|
showOptReqLabel?: boolean;
|
|
65
|
+
/** Data value used by the ReactDatePicker plugin and the custom TextInput component. */
|
|
66
|
+
value?: string;
|
|
59
67
|
}
|
|
60
68
|
|
|
61
69
|
// Main interface for the exported DS DatePicker component.
|
|
62
70
|
export interface DatePickerProps extends DatePickerWrapperProps {
|
|
71
|
+
/** The date format to display. Defaults to "yyyy-MM-dd".
|
|
72
|
+
* Must be in ISO-8601 format. */
|
|
73
|
+
dateFormat?: string;
|
|
63
74
|
/** DatePicker date types that can be rendered. */
|
|
64
75
|
dateType?: DatePickerTypes;
|
|
65
|
-
/** The date format to display. Defaults to "yyyy-MM-dd". */
|
|
66
|
-
dateFormat?: string;
|
|
67
76
|
/** Populates the `HelperErrorText` component in this component. */
|
|
68
77
|
helperText?: string;
|
|
69
78
|
/** Populates the `HelperErrorText` component in the "From" `TextInput` component. */
|
|
@@ -73,73 +82,67 @@ export interface DatePickerProps extends DatePickerWrapperProps {
|
|
|
73
82
|
/** The initial date value. This must be in the mm/dd/yyyy format. */
|
|
74
83
|
initialDate?: string;
|
|
75
84
|
/** The initialTo date value used for date ranges.
|
|
76
|
-
* This must be in the mm/dd/yyyy format.
|
|
77
|
-
*/
|
|
85
|
+
* This must be in the mm/dd/yyyy format. */
|
|
78
86
|
initialDateTo?: string;
|
|
79
|
-
/**
|
|
80
|
-
*
|
|
81
|
-
*/
|
|
82
|
-
minDate?: string;
|
|
83
|
-
/** The maximum date value that applies to both input fields.
|
|
84
|
-
* This must be in the mm/dd/yyyy format.
|
|
85
|
-
*/
|
|
86
|
-
maxDate?: string;
|
|
87
|
-
/** Populates the `HelperErrorText` error state for both "From" and "To" input components. */
|
|
87
|
+
/** Populates the `HelperErrorText` error state for both "From"
|
|
88
|
+
* and "To" input components. */
|
|
88
89
|
invalidText?: string;
|
|
89
|
-
/** Helper for modifiers array; adds 'errored' styling. */
|
|
90
|
-
errored?: boolean;
|
|
91
|
-
/** Adds the 'required' property to the input element(s). */
|
|
92
|
-
required?: boolean;
|
|
93
|
-
/** Whether or not to display the "Required"/"Optional" text in the label text. */
|
|
94
|
-
showOptReqLabel?: boolean;
|
|
95
90
|
/** Adds the 'disabled' property to the input element(s). */
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
91
|
+
isDisabled?: boolean;
|
|
92
|
+
/** Adds 'isInvalid' styling. */
|
|
93
|
+
isInvalid?: boolean;
|
|
94
|
+
/** Adds the 'required' property to the input element(s). */
|
|
95
|
+
isRequired?: boolean;
|
|
96
|
+
/** The maximum date value that applies to both input fields.
|
|
97
|
+
* This must be in the mm/dd/yyyy format. */
|
|
98
|
+
maxDate?: string;
|
|
99
|
+
/** The minimum date value that applies to both input fields.
|
|
100
|
+
* This must be in the mm/dd/yyyy format. */
|
|
101
|
+
minDate?: string;
|
|
103
102
|
/** Value name for the single input field or the "From" input field in a date range. */
|
|
104
103
|
nameFrom?: string;
|
|
105
104
|
/** Value name for the "To" input field */
|
|
106
105
|
nameTo?: string;
|
|
107
|
-
/** An additional explicit React ref passed for a date range's "From" input field. */
|
|
108
|
-
refTo?: React.Ref<TextInputRefType>;
|
|
109
106
|
/** The action to perform on the `input`'s onChange function for both fields.
|
|
110
107
|
* This will return the data in an object with `startDate` and `endDate` keys.
|
|
111
108
|
*/
|
|
112
109
|
onChange?: (data: FullDateType) => void;
|
|
110
|
+
/** An additional explicit React ref passed for a date range's "To"
|
|
111
|
+
* input field. Note that the "From" input takes the initial "ref" value. */
|
|
112
|
+
refTo?: React.Ref<TextInputRefType>;
|
|
113
|
+
/** Offers the ability to hide the helper/invalid text. */
|
|
114
|
+
showHelperInvalidText?: boolean;
|
|
115
|
+
/** Whether or not to display the "Required"/"Optional" text in the label text. */
|
|
116
|
+
showOptReqLabel?: boolean;
|
|
113
117
|
}
|
|
114
118
|
|
|
115
119
|
/**
|
|
116
120
|
* A Design System `TextInput` component that is used as the custom input
|
|
117
|
-
* element for the `
|
|
118
|
-
* internally, the `
|
|
121
|
+
* element for the `react-datepicker` plugin. This uses `forwardRef` because,
|
|
122
|
+
* internally, the `react-datepicker` plugin needs to keep track of the input data.
|
|
119
123
|
* @note This is only used internally for this file.
|
|
120
|
-
* @note we don't declare an `onClick` prop but the `
|
|
121
|
-
* care of that. That is used and needed to open/close the popup calendar.
|
|
122
|
-
* @note we can't use the prop name "required" for the `required` prop we need.
|
|
123
|
-
* Instead, we are calling it `dsRequired`. This is because the `DatePicker`
|
|
124
|
-
* plugin internally makes use of the "required" name so we need a new name.
|
|
124
|
+
* @note we don't declare an `onClick` prop but the `react-datepicker` plugin
|
|
125
|
+
* takes care of that. That is used and needed to open/close the popup calendar.
|
|
125
126
|
*/
|
|
126
127
|
const CustomTextInput = forwardRef<TextInputRefType, CustomTextInputProps>(
|
|
127
128
|
(
|
|
128
129
|
{
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
disabled,
|
|
134
|
-
dsRequired,
|
|
135
|
-
showOptReqLabel,
|
|
136
|
-
errored,
|
|
130
|
+
additionalStyles = {},
|
|
131
|
+
attributes,
|
|
132
|
+
dsId,
|
|
133
|
+
dsRef,
|
|
137
134
|
helperText,
|
|
138
135
|
invalidText,
|
|
136
|
+
isDisabled,
|
|
137
|
+
isInvalid,
|
|
138
|
+
isRequired,
|
|
139
|
+
labelText,
|
|
140
|
+
onChange,
|
|
139
141
|
onClick,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
142
|
+
showLabel,
|
|
143
|
+
showHelperInvalidText,
|
|
144
|
+
showOptReqLabel,
|
|
145
|
+
value,
|
|
143
146
|
},
|
|
144
147
|
ref: React.Ref<TextInputRefType>
|
|
145
148
|
) => (
|
|
@@ -149,17 +152,19 @@ const CustomTextInput = forwardRef<TextInputRefType, CustomTextInputProps>(
|
|
|
149
152
|
onChange={onChange}
|
|
150
153
|
value={value}
|
|
151
154
|
labelText={labelText}
|
|
152
|
-
|
|
153
|
-
|
|
155
|
+
isDisabled={isDisabled}
|
|
156
|
+
isRequired={isRequired}
|
|
157
|
+
showHelperInvalidText={showHelperInvalidText}
|
|
154
158
|
showOptReqLabel={showOptReqLabel}
|
|
155
|
-
|
|
159
|
+
isInvalid={isInvalid}
|
|
156
160
|
helperText={helperText}
|
|
157
161
|
invalidText={invalidText}
|
|
158
|
-
// Use either the specific prop-based or the forwardRef value.
|
|
159
|
-
// react-datepicker manipulates the `ref` value so
|
|
160
|
-
// specific ref
|
|
162
|
+
// Use either the specific prop-based or the `forwardRef` value.
|
|
163
|
+
// `react-datepicker` manipulates the `ref` value so when we
|
|
164
|
+
// want a specific ref, use the `dsRef` prop.
|
|
161
165
|
ref={dsRef || ref}
|
|
162
166
|
attributes={{ ...attributes, onClick }}
|
|
167
|
+
additionalStyles={additionalStyles}
|
|
163
168
|
/>
|
|
164
169
|
)
|
|
165
170
|
);
|
|
@@ -171,23 +176,32 @@ const CustomTextInput = forwardRef<TextInputRefType, CustomTextInputProps>(
|
|
|
171
176
|
* @note This is only used internally for this file.
|
|
172
177
|
*/
|
|
173
178
|
const DatePickerWrapper: React.FC<DatePickerWrapperProps> = ({
|
|
179
|
+
children,
|
|
180
|
+
className,
|
|
174
181
|
id,
|
|
175
|
-
|
|
176
|
-
|
|
182
|
+
isDateRange,
|
|
183
|
+
isRequired,
|
|
177
184
|
labelText,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}) =>
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
<
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
185
|
+
showLabel,
|
|
186
|
+
showOptReqLabel,
|
|
187
|
+
}) => (
|
|
188
|
+
<FormField id={`${id}-form-field}`}>
|
|
189
|
+
{isDateRange ? (
|
|
190
|
+
<Fieldset
|
|
191
|
+
id={id}
|
|
192
|
+
className={className}
|
|
193
|
+
isLegendHidden={!showLabel}
|
|
194
|
+
legendText={labelText}
|
|
195
|
+
optReqFlag={showOptReqLabel}
|
|
196
|
+
isRequired={isRequired}
|
|
197
|
+
>
|
|
198
|
+
{children}
|
|
199
|
+
</Fieldset>
|
|
200
|
+
) : (
|
|
201
|
+
children
|
|
202
|
+
)}
|
|
203
|
+
</FormField>
|
|
204
|
+
);
|
|
191
205
|
|
|
192
206
|
/**
|
|
193
207
|
* This is the wrapper component that conditionally renders the input fields
|
|
@@ -195,11 +209,15 @@ const DatePickerWrapper: React.FC<DatePickerWrapperProps> = ({
|
|
|
195
209
|
* layout for the two side-by-side date input fields.
|
|
196
210
|
* @note This is only used internally for this file.
|
|
197
211
|
*/
|
|
198
|
-
const DateRangeRow: React.FC<DateRangeRowProps> = ({
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
212
|
+
const DateRangeRow: React.FC<DateRangeRowProps> = ({
|
|
213
|
+
id,
|
|
214
|
+
isDateRange,
|
|
215
|
+
children,
|
|
216
|
+
}) =>
|
|
217
|
+
isDateRange ? (
|
|
218
|
+
<FormRow id={`${id}-form-row`} gap={FormSpacing.ExtraSmall}>
|
|
219
|
+
{children}
|
|
220
|
+
</FormRow>
|
|
203
221
|
) : (
|
|
204
222
|
<>{children}</>
|
|
205
223
|
);
|
|
@@ -210,37 +228,38 @@ const DateRangeRow: React.FC<DateRangeRowProps> = ({ dateRange, children }) =>
|
|
|
210
228
|
const DatePicker = React.forwardRef<TextInputRefType, DatePickerProps>(
|
|
211
229
|
(props, ref?) => {
|
|
212
230
|
const {
|
|
213
|
-
|
|
214
|
-
dateType = DatePickerTypes.Full,
|
|
231
|
+
className,
|
|
215
232
|
dateFormat = "yyyy-MM-dd",
|
|
216
|
-
|
|
217
|
-
labelText = "From",
|
|
218
|
-
showLabel = true,
|
|
233
|
+
dateType = DatePickerTypes.Full,
|
|
219
234
|
helperText,
|
|
220
235
|
helperTextFrom,
|
|
221
236
|
helperTextTo,
|
|
237
|
+
id = generateUUID(),
|
|
238
|
+
initialDate,
|
|
239
|
+
initialDateTo,
|
|
222
240
|
invalidText,
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
241
|
+
isDateRange = false,
|
|
242
|
+
isDisabled,
|
|
243
|
+
isInvalid,
|
|
244
|
+
isRequired,
|
|
245
|
+
labelText = "From",
|
|
246
|
+
maxDate,
|
|
247
|
+
minDate,
|
|
227
248
|
nameFrom,
|
|
228
249
|
nameTo,
|
|
229
|
-
blockName,
|
|
230
|
-
modifiers = [],
|
|
231
|
-
className,
|
|
232
|
-
refTo,
|
|
233
250
|
onChange,
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
251
|
+
refTo,
|
|
252
|
+
showHelperInvalidText = true,
|
|
253
|
+
showLabel = true,
|
|
254
|
+
showOptReqLabel = true,
|
|
238
255
|
} = props;
|
|
256
|
+
const styles = useMultiStyleConfig("DatePicker", {});
|
|
257
|
+
const finalStyles = isDateRange ? styles : {};
|
|
239
258
|
const initStartDate = initialDate ? new Date(initialDate) : new Date();
|
|
240
259
|
const initEndDate = initialDateTo ? new Date(initialDateTo) : new Date();
|
|
241
260
|
let initFullDate: FullDateType = { startDate: initStartDate };
|
|
242
261
|
// Only include the `endDate` key for date ranges.
|
|
243
|
-
if (
|
|
262
|
+
if (isDateRange) {
|
|
244
263
|
initFullDate = { ...initFullDate, endDate: initEndDate };
|
|
245
264
|
}
|
|
246
265
|
const [fullDate, setFullDate] = useState<FullDateType>(initFullDate);
|
|
@@ -253,7 +272,7 @@ const DatePicker = React.forwardRef<TextInputRefType, DatePickerProps>(
|
|
|
253
272
|
};
|
|
254
273
|
// How many years to display in the DatePickerTypes.Year option.
|
|
255
274
|
const yearsToDisplay = 12;
|
|
256
|
-
// Both ReactDatePicker components share some props.
|
|
275
|
+
// Both `ReactDatePicker` components share some props.
|
|
257
276
|
let baseDatePickerAttrs = {
|
|
258
277
|
popperClassName: "date-picker-calendar",
|
|
259
278
|
popperPlacement: "bottom-start",
|
|
@@ -268,24 +287,30 @@ const DatePicker = React.forwardRef<TextInputRefType, DatePickerProps>(
|
|
|
268
287
|
minDate: minDate ? new Date(minDate) : null,
|
|
269
288
|
maxDate: maxDate ? new Date(maxDate) : null,
|
|
270
289
|
dateFormat,
|
|
271
|
-
disabled,
|
|
272
290
|
};
|
|
273
|
-
// Both TextInput components share some props.
|
|
291
|
+
// Both custom `TextInput` components share some props.
|
|
274
292
|
let baseCustomTextInputAttrs = {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
//
|
|
278
|
-
//
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
293
|
+
dsId: `${id}-start`,
|
|
294
|
+
isRequired,
|
|
295
|
+
// In the date range type, don't display the "required"/"optional" text
|
|
296
|
+
// in individual input labels. It'll display in the legend element.
|
|
297
|
+
showOptReqLabel: isDateRange ? false : showOptReqLabel,
|
|
298
|
+
// Always display the labels for the input fields when
|
|
299
|
+
// the DatePicker component is a date range type.
|
|
300
|
+
showLabel: isDateRange ? true : showLabel,
|
|
301
|
+
isDisabled,
|
|
302
|
+
isInvalid,
|
|
303
|
+
helperText: isDateRange ? helperTextFrom : helperText,
|
|
304
|
+
showHelperInvalidText,
|
|
283
305
|
invalidText,
|
|
306
|
+
additionalStyles: finalStyles.subLabels,
|
|
284
307
|
};
|
|
308
|
+
// These are attribute objects for the `react-datepicker` package component.
|
|
285
309
|
let startDatePickerAttrs = {};
|
|
286
310
|
let endDatePickerAttrs = {};
|
|
311
|
+
// This sets set only for date ranges for the "To" input field.
|
|
287
312
|
let endDatePickerElement = null;
|
|
288
|
-
// This changes to "From" when `
|
|
313
|
+
// This changes to "From" when `isDateRange` is true.
|
|
289
314
|
let startLabelText = labelText;
|
|
290
315
|
|
|
291
316
|
// Update the appropriate props for the selected date type to render.
|
|
@@ -309,20 +334,20 @@ const DatePicker = React.forwardRef<TextInputRefType, DatePickerProps>(
|
|
|
309
334
|
);
|
|
310
335
|
}
|
|
311
336
|
|
|
312
|
-
// Set the "From" DatePicker values here based
|
|
313
|
-
// range is selected additional props get added automatically.
|
|
337
|
+
// Set the "From" DatePicker values here based on the base props. If a date
|
|
338
|
+
// range is selected, additional props get added automatically.
|
|
314
339
|
startDatePickerAttrs = { ...baseDatePickerAttrs };
|
|
315
340
|
|
|
316
|
-
// A date range is selected. We must now update the props for the
|
|
317
|
-
// input component and render an end/"To" input component.
|
|
318
|
-
if (
|
|
319
|
-
modifiers.push("date-range");
|
|
341
|
+
// A date range is selected. We must now update the props for the
|
|
342
|
+
// "start"/"from" input component and render an "end"/"To" input component.
|
|
343
|
+
if (isDateRange) {
|
|
320
344
|
const endCustomTextInputAttrs = {
|
|
321
345
|
...baseCustomTextInputAttrs,
|
|
346
|
+
dsId: `${id}-end`,
|
|
322
347
|
helperText: helperTextTo,
|
|
323
348
|
};
|
|
324
|
-
// These props are used to follow the pattern recommended by
|
|
325
|
-
// react-datepicker plugin.
|
|
349
|
+
// These props are used to follow the pattern recommended by
|
|
350
|
+
// the react-datepicker plugin.
|
|
326
351
|
startDatePickerAttrs = {
|
|
327
352
|
...startDatePickerAttrs,
|
|
328
353
|
selectsStart: true,
|
|
@@ -373,20 +398,26 @@ const DatePicker = React.forwardRef<TextInputRefType, DatePickerProps>(
|
|
|
373
398
|
return (
|
|
374
399
|
<DatePickerWrapper
|
|
375
400
|
id={id}
|
|
376
|
-
|
|
401
|
+
isDateRange={isDateRange}
|
|
377
402
|
showLabel={showLabel}
|
|
378
403
|
labelText={labelText}
|
|
379
|
-
className={
|
|
404
|
+
className={className}
|
|
405
|
+
isRequired={isRequired}
|
|
406
|
+
showOptReqLabel={showOptReqLabel}
|
|
380
407
|
>
|
|
381
|
-
<DateRangeRow
|
|
382
|
-
<FormField
|
|
408
|
+
<DateRangeRow id={id} isDateRange={isDateRange}>
|
|
409
|
+
<FormField id={`${id}-start-form`}>
|
|
410
|
+
{startDatePickerElement}
|
|
411
|
+
</FormField>
|
|
383
412
|
|
|
384
413
|
{endDatePickerElement && (
|
|
385
|
-
<FormField>{endDatePickerElement}</FormField>
|
|
414
|
+
<FormField id={`${id}-end-form`}>{endDatePickerElement}</FormField>
|
|
386
415
|
)}
|
|
387
416
|
</DateRangeRow>
|
|
388
|
-
{helperText &&
|
|
389
|
-
<HelperErrorText
|
|
417
|
+
{helperText && isDateRange && showHelperInvalidText && (
|
|
418
|
+
<HelperErrorText id={`${id}-helper-text`} isInvalid={false}>
|
|
419
|
+
{helperText}
|
|
420
|
+
</HelperErrorText>
|
|
390
421
|
)}
|
|
391
422
|
</DatePickerWrapper>
|
|
392
423
|
);
|
|
@@ -1,75 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
&.date-picker {
|
|
9
|
-
@include fieldset-reset;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.label,
|
|
13
|
-
.label__required-helper {
|
|
14
|
-
font-size: var(--font-size--2);
|
|
15
|
-
font-weight: var(--font-weight-regular);
|
|
16
|
-
margin-bottom: 0;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.date-picker {
|
|
21
|
-
.sr-only {
|
|
22
|
-
@include screenreader-only();
|
|
1
|
+
// Styles needed to override `react-datepicker` plugin styles.
|
|
2
|
+
.date-picker-calendar {
|
|
3
|
+
// Make sure the width is enough to fit 12 selectable years.
|
|
4
|
+
.react-datepicker__year-wrapper {
|
|
5
|
+
max-width: 220px;
|
|
23
6
|
}
|
|
24
7
|
|
|
25
|
-
|
|
26
|
-
.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.date-picker-calendar {
|
|
35
|
-
// Make sure the width is enough to fit 12 selectable years
|
|
36
|
-
.react-datepicker__year-wrapper {
|
|
37
|
-
max-width: 220px;
|
|
8
|
+
// Moving away from React DatePickers default blue color theme:
|
|
9
|
+
.react-datepicker__year,
|
|
10
|
+
.react-datepicker__month,
|
|
11
|
+
.react-datepicker__day {
|
|
12
|
+
// For currently selected ranges
|
|
13
|
+
&--in-range.react-datepicker__day--in-range {
|
|
14
|
+
opacity: 0.5;
|
|
38
15
|
}
|
|
39
16
|
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
// For ranges about to be selected
|
|
50
|
-
&-text--keyboard-selected,
|
|
51
|
-
&--keyboard-selected,
|
|
52
|
-
&--in-range,
|
|
53
|
-
&--in-selecting-range {
|
|
54
|
-
background-color: $black;
|
|
55
|
-
border-radius: 0;
|
|
56
|
-
color: $white;
|
|
57
|
-
opacity: 0.3;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Selected states
|
|
61
|
-
&-text--selected,
|
|
62
|
-
&--selected {
|
|
63
|
-
background-color: $black;
|
|
64
|
-
border-radius: 0;
|
|
65
|
-
color: $white;
|
|
66
|
-
opacity: 1;
|
|
67
|
-
}
|
|
17
|
+
// For ranges about to be selected.
|
|
18
|
+
&-text--keyboard-selected,
|
|
19
|
+
&--keyboard-selected,
|
|
20
|
+
&--in-range,
|
|
21
|
+
&--in-selecting-range {
|
|
22
|
+
background-color: var(--nypl-colors-ui-black);
|
|
23
|
+
border-radius: 0;
|
|
24
|
+
color: var(--nypl-colors-ui-white);
|
|
25
|
+
opacity: 0.3;
|
|
68
26
|
}
|
|
69
27
|
|
|
70
|
-
//
|
|
71
|
-
|
|
72
|
-
|
|
28
|
+
// Selected states.
|
|
29
|
+
&-text--selected,
|
|
30
|
+
&--selected {
|
|
31
|
+
background-color: var(--nypl-colors-ui-black);
|
|
32
|
+
border-radius: 0;
|
|
33
|
+
color: var(--nypl-colors-ui-white);
|
|
34
|
+
opacity: 1;
|
|
73
35
|
}
|
|
74
36
|
}
|
|
37
|
+
|
|
38
|
+
// Shift the triangle to the left.
|
|
39
|
+
.react-datepicker__triangle {
|
|
40
|
+
transform: translate(32px, 0px) !important;
|
|
41
|
+
}
|
|
75
42
|
}
|