@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,192 +1,148 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import
|
|
2
|
+
import {
|
|
3
|
+
Box,
|
|
4
|
+
Select as ChakraSelect,
|
|
5
|
+
useMultiStyleConfig,
|
|
6
|
+
} from "@chakra-ui/react";
|
|
7
|
+
|
|
3
8
|
import Label from "../Label/Label";
|
|
4
9
|
import HelperErrorText from "../HelperErrorText/HelperErrorText";
|
|
5
10
|
import generateUUID from "../../helpers/generateUUID";
|
|
11
|
+
import { IconNames, IconSizes } from "../Icons/IconTypes";
|
|
12
|
+
import Icon from "../Icons/Icon";
|
|
13
|
+
import { SelectTypes } from "./SelectTypes";
|
|
6
14
|
|
|
7
15
|
export interface SelectProps {
|
|
8
|
-
/**
|
|
9
|
-
ariaLabel?: string;
|
|
10
|
-
/** Additional attributes passed to the <select> tag */
|
|
11
|
-
attributes?: { [key: string]: any };
|
|
12
|
-
/** BlockName for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
|
|
13
|
-
blockName?: string;
|
|
14
|
-
/** ClassName you can add in addition to 'select' */
|
|
16
|
+
/** A class name for the `div` parent element. */
|
|
15
17
|
className?: string;
|
|
16
|
-
|
|
17
|
-
/** When true, disables the select */
|
|
18
|
-
disabled?: boolean;
|
|
19
|
-
/** Helper for modifiers array; adds 'errored' styling */
|
|
20
|
-
errored?: boolean;
|
|
21
|
-
/** Populates the HelperErrorText for error state */
|
|
22
|
-
invalidText?: string;
|
|
23
|
-
/** DEPRECATED - ID of associated HelperText */
|
|
24
|
-
helperTextId?: string;
|
|
25
|
-
/** Populates the HelperErrorText for standard state */
|
|
18
|
+
/** Optional string to populate the `HelperErrorText` for the standard state. */
|
|
26
19
|
helperText?: string;
|
|
27
20
|
/** ID that other components can cross reference for accessibility purposes */
|
|
28
21
|
id?: string;
|
|
29
|
-
/**
|
|
22
|
+
/** Optional string to populate the `HelperErrorText` for the error state
|
|
23
|
+
* when `isInvalid` is true. */
|
|
24
|
+
invalidText?: string;
|
|
25
|
+
/** Adds the `disabled` and `aria-disabled` attributes to the select when true */
|
|
26
|
+
isDisabled?: boolean;
|
|
27
|
+
/** Adds the `aria-invalid` attribute to the select when true. This also makes
|
|
28
|
+
* the color theme "NYPL error" red for the select and text. */
|
|
29
|
+
isInvalid?: boolean;
|
|
30
|
+
/** Adds the `required` and `aria-required` attributes to the input when true. */
|
|
30
31
|
isRequired?: boolean;
|
|
31
|
-
/**
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
/** Provides text for a `Label` component if `showLabel` is set to `true`;
|
|
33
|
+
* populates an `aria-label` attribute on the select input if `showLabel` is
|
|
34
|
+
* set to `false`. */
|
|
34
35
|
labelText: string;
|
|
35
|
-
/**
|
|
36
|
-
modifiers?: string[];
|
|
37
|
-
/** The name of the select element to use in form submission */
|
|
36
|
+
/** Used to reference the select element in forms. */
|
|
38
37
|
name: string;
|
|
39
|
-
/**
|
|
40
|
-
|
|
41
|
-
/** Passes selects' current value to the React state handler */
|
|
38
|
+
/** The callback function to get the selected value.
|
|
39
|
+
* Should be passed along with `value` for controlled components. */
|
|
42
40
|
onChange?: (event: React.FormEvent) => void;
|
|
43
|
-
/**
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
|
|
47
|
-
/** Offers the ability to show the label onscreen or hide it. Refer to the `labelText` property for more information. */
|
|
41
|
+
/** Offers the ability to hide the helper/invalid text. */
|
|
42
|
+
showHelperInvalidText?: boolean;
|
|
43
|
+
/** Offers the ability to show the select's label onscreen or hide it. Refer
|
|
44
|
+
* to the `labelText` property for more information. */
|
|
48
45
|
showLabel?: boolean;
|
|
49
46
|
/** Whether or not to display the "Required"/"Optional" text in the label text. */
|
|
50
47
|
showOptReqLabel?: boolean;
|
|
48
|
+
/** The variant to display. */
|
|
49
|
+
type?: SelectTypes;
|
|
50
|
+
/** The value of the selected option.
|
|
51
|
+
* Should be passed along with `onChange` for controlled components. */
|
|
52
|
+
value?: string;
|
|
51
53
|
}
|
|
52
54
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const footnote = errored ? errorOutput : helperText;
|
|
97
|
-
|
|
98
|
-
// Support for deprecated prop
|
|
99
|
-
if (ariaLabel) attributes["aria-label"] = ariaLabel;
|
|
100
|
-
|
|
101
|
-
// Support for deprecated props
|
|
102
|
-
if (labelId && !helperTextId) {
|
|
103
|
-
ariaLabelledBy = labelId;
|
|
104
|
-
} else if (helperTextId && !labelId) {
|
|
105
|
-
ariaLabelledBy = helperTextId;
|
|
106
|
-
} else if (labelId && helperTextId) {
|
|
107
|
-
ariaLabelledBy = labelId + " " + helperTextId;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (React.Children.count(children) > 10) {
|
|
111
|
-
console.warn(
|
|
112
|
-
"NYPL DS recommends that <select> fields have no more than 10 options; an auto-complete text input is a good alternative for 11 or more options."
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (React.Children.count(children) < 4) {
|
|
117
|
-
console.warn(
|
|
118
|
-
"NYPL DS recommends that <select> fields have at least 4 options; a radio button group is a good alternative for 3 or fewer options."
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (ariaLabel) {
|
|
123
|
-
console.warn(
|
|
124
|
-
"The ariaLabel prop has been deprecated in the Select component and will be removed in a future release. Check the documentation for updated props."
|
|
125
|
-
);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (helperTextId) {
|
|
129
|
-
console.warn(
|
|
130
|
-
"The helperTextId prop has been deprecated in the Select component and will be removed in a future release. Check the documentation for updated props."
|
|
131
|
-
);
|
|
132
|
-
}
|
|
55
|
+
/**
|
|
56
|
+
* Component that renders Chakra's `Select` component along with an accessible
|
|
57
|
+
* `Label` and optional `HelperErrorText` component.
|
|
58
|
+
*/
|
|
59
|
+
const Select = React.forwardRef<
|
|
60
|
+
HTMLSelectElement,
|
|
61
|
+
React.PropsWithChildren<SelectProps>
|
|
62
|
+
>((props: React.PropsWithChildren<SelectProps>, ref?) => {
|
|
63
|
+
const {
|
|
64
|
+
children,
|
|
65
|
+
className,
|
|
66
|
+
helperText,
|
|
67
|
+
id = generateUUID(),
|
|
68
|
+
invalidText,
|
|
69
|
+
isDisabled = false,
|
|
70
|
+
isInvalid = false,
|
|
71
|
+
isRequired = false,
|
|
72
|
+
labelText,
|
|
73
|
+
name,
|
|
74
|
+
onChange,
|
|
75
|
+
showHelperInvalidText = true,
|
|
76
|
+
showLabel = true,
|
|
77
|
+
showOptReqLabel = true,
|
|
78
|
+
type = SelectTypes.Default,
|
|
79
|
+
value,
|
|
80
|
+
} = props;
|
|
81
|
+
const ariaAttributes = {};
|
|
82
|
+
const optReqFlag = isRequired ? "Required" : "Optional";
|
|
83
|
+
const styles = useMultiStyleConfig("CustomSelect", { variant: type });
|
|
84
|
+
const finalInvalidText = invalidText
|
|
85
|
+
? invalidText
|
|
86
|
+
: "There is an error related to this field.";
|
|
87
|
+
const footnote = isInvalid ? finalInvalidText : helperText;
|
|
88
|
+
// To control the `Select` component, both `onChange` and `value`
|
|
89
|
+
// must be passed.
|
|
90
|
+
const controlledProps = onChange && value ? { onChange, value } : {};
|
|
91
|
+
|
|
92
|
+
if (!showLabel) {
|
|
93
|
+
ariaAttributes["aria-label"] =
|
|
94
|
+
labelText && footnote ? `${labelText} - ${footnote}` : labelText;
|
|
95
|
+
} else if (helperText) {
|
|
96
|
+
ariaAttributes["aria-describedby"] = `${id}-helperText`;
|
|
97
|
+
}
|
|
133
98
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
99
|
+
if (React.Children.count(children) > 10) {
|
|
100
|
+
console.warn(
|
|
101
|
+
"NYPL DS recommends that <select> fields have no more than 10 options; an auto-complete text input is a good alternative for 11 or more options."
|
|
102
|
+
);
|
|
103
|
+
}
|
|
139
104
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
105
|
+
if (React.Children.count(children) < 4) {
|
|
106
|
+
console.warn(
|
|
107
|
+
"NYPL DS recommends that <select> fields have at least 4 options; a radio button group is a good alternative for 3 or fewer options."
|
|
108
|
+
);
|
|
109
|
+
}
|
|
145
110
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
>
|
|
154
|
-
{labelText}
|
|
155
|
-
</Label>
|
|
156
|
-
)}
|
|
157
|
-
<select
|
|
158
|
-
name={name}
|
|
159
|
-
id={id}
|
|
160
|
-
className={bem("selectfield", modifiers, blockName, [className])}
|
|
161
|
-
aria-required={req}
|
|
162
|
-
required={req}
|
|
163
|
-
disabled={disabled}
|
|
164
|
-
aria-label={ariaLabel}
|
|
165
|
-
aria-labelledby={ariaLabelledBy}
|
|
166
|
-
value={selectedOption}
|
|
167
|
-
ref={ref}
|
|
168
|
-
onBlur={onBlur}
|
|
169
|
-
onChange={onChange}
|
|
170
|
-
{...attributes}
|
|
111
|
+
return (
|
|
112
|
+
<Box className={className} __css={styles}>
|
|
113
|
+
{showLabel && (
|
|
114
|
+
<Label
|
|
115
|
+
id={`${id}-label`}
|
|
116
|
+
htmlFor={id}
|
|
117
|
+
optReqFlag={showOptReqLabel && optReqFlag}
|
|
171
118
|
>
|
|
172
|
-
{
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
{
|
|
181
|
-
|
|
119
|
+
{labelText}
|
|
120
|
+
</Label>
|
|
121
|
+
)}
|
|
122
|
+
<ChakraSelect
|
|
123
|
+
id={id}
|
|
124
|
+
variant="outline"
|
|
125
|
+
isRequired={isRequired}
|
|
126
|
+
isDisabled={isDisabled}
|
|
127
|
+
isInvalid={isInvalid}
|
|
128
|
+
name={name}
|
|
129
|
+
ref={ref}
|
|
130
|
+
{...controlledProps}
|
|
131
|
+
{...ariaAttributes}
|
|
132
|
+
icon={<Icon name={IconNames.Arrow} size={IconSizes.Medium} />}
|
|
133
|
+
__css={styles.select}
|
|
134
|
+
>
|
|
135
|
+
{children}
|
|
136
|
+
</ChakraSelect>
|
|
137
|
+
{footnote && showHelperInvalidText && (
|
|
138
|
+
<Box __css={styles.helper} aria-disabled={isDisabled}>
|
|
139
|
+
<HelperErrorText isInvalid={isInvalid} id={id + `-helperText`}>
|
|
182
140
|
{footnote}
|
|
183
141
|
</HelperErrorText>
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
);
|
|
189
|
-
|
|
190
|
-
Select.displayName = "Select";
|
|
142
|
+
</Box>
|
|
143
|
+
)}
|
|
144
|
+
</Box>
|
|
145
|
+
);
|
|
146
|
+
});
|
|
191
147
|
|
|
192
148
|
export default Select;
|
|
@@ -3,18 +3,18 @@ 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";
|
|
9
|
+
import { action } from "@storybook/addon-actions";
|
|
10
10
|
|
|
11
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
11
12
|
import SkeletonLoader from "./SkeletonLoader";
|
|
12
13
|
import {
|
|
13
14
|
SkeletonLoaderLayouts,
|
|
14
15
|
SkeletonLoaderImageRatios,
|
|
15
16
|
} from "./SkeletonLoaderTypes";
|
|
16
|
-
import
|
|
17
|
-
import { getCategory } from "../../utils/componentCategories";
|
|
17
|
+
import SimpleGrid from "../Grid/SimpleGrid";
|
|
18
18
|
|
|
19
19
|
<Meta
|
|
20
20
|
title={getCategory("SkeletonLoader")}
|
|
@@ -29,33 +29,15 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
29
29
|
jest: ["SkeletonLoader.test.tsx"],
|
|
30
30
|
}}
|
|
31
31
|
argTypes={{
|
|
32
|
-
attributes: { table: { disable: true } },
|
|
33
32
|
className: { table: { disable: true } },
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
table: { defaultValue: { summary: "true" } },
|
|
43
|
-
},
|
|
44
|
-
showContent: {
|
|
45
|
-
table: { defaultValue: { summary: "true" } },
|
|
46
|
-
},
|
|
47
|
-
showButton: {
|
|
48
|
-
table: { defaultValue: { summary: "false" } },
|
|
49
|
-
},
|
|
50
|
-
headingSize: {
|
|
51
|
-
table: { defaultValue: { summary: "1" } },
|
|
52
|
-
},
|
|
53
|
-
contentSize: {
|
|
54
|
-
table: { defaultValue: { summary: "3" } },
|
|
55
|
-
},
|
|
56
|
-
imageAspectRatio: {
|
|
57
|
-
table: { defaultValue: { summary: "square" } },
|
|
58
|
-
},
|
|
33
|
+
contentSize: { table: { defaultValue: { summary: "3" } } },
|
|
34
|
+
headingSize: { table: { defaultValue: { summary: "1" } } },
|
|
35
|
+
imageAspectRatio: { table: { defaultValue: { summary: "square" } } },
|
|
36
|
+
layout: { table: { defaultValue: { summary: "column" } } },
|
|
37
|
+
showButton: { table: { defaultValue: { summary: "false" } } },
|
|
38
|
+
showContent: { table: { defaultValue: { summary: "true" } } },
|
|
39
|
+
showHeading: { table: { defaultValue: { summary: "true" } } },
|
|
40
|
+
showImage: { table: { defaultValue: { summary: "true" } } },
|
|
59
41
|
}}
|
|
60
42
|
/>
|
|
61
43
|
|
|
@@ -64,38 +46,34 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
64
46
|
| Component Version | DS Version |
|
|
65
47
|
| ----------------- | ---------- |
|
|
66
48
|
| Added | `0.17.3` |
|
|
67
|
-
| Latest | `0.
|
|
49
|
+
| Latest | `0.25.3` |
|
|
68
50
|
|
|
69
51
|
<Description of={SkeletonLoader} />
|
|
70
52
|
|
|
71
|
-
The `
|
|
53
|
+
The `layout`, `width`, and placeholder elements within the `SkeletonLoader` can
|
|
54
|
+
be customized.
|
|
72
55
|
|
|
73
|
-
Please note that the initial rendering below has the `width` prop set to `300px
|
|
56
|
+
Please note that the initial rendering below has the `width` prop set to `300px`
|
|
57
|
+
to better view the example. The default value is `100%`.
|
|
74
58
|
|
|
75
|
-
<
|
|
59
|
+
<Canvas withToolbar>
|
|
76
60
|
<Story
|
|
77
|
-
name="
|
|
61
|
+
name="Basic with Props"
|
|
78
62
|
args={{
|
|
79
63
|
width: "300px",
|
|
80
64
|
}}
|
|
81
65
|
>
|
|
82
66
|
{(args) => <SkeletonLoader {...args} />}
|
|
83
67
|
</Story>
|
|
84
|
-
</
|
|
68
|
+
</Canvas>
|
|
85
69
|
|
|
86
|
-
<ArgsTable story="
|
|
70
|
+
<ArgsTable story="Basic with Props" />
|
|
87
71
|
|
|
88
72
|
# Card Placeholders in a Grid
|
|
89
73
|
|
|
90
|
-
<
|
|
74
|
+
<Canvas>
|
|
91
75
|
<Story name="Placeholders in a Grid">
|
|
92
|
-
<
|
|
93
|
-
style={{
|
|
94
|
-
display: "grid",
|
|
95
|
-
gap: "2rem",
|
|
96
|
-
"grid-template-columns": "repeat(3, 1fr)",
|
|
97
|
-
}}
|
|
98
|
-
>
|
|
76
|
+
<SimpleGrid columns={3}>
|
|
99
77
|
<SkeletonLoader
|
|
100
78
|
imageAspectRatio={SkeletonLoaderImageRatios.Landscape}
|
|
101
79
|
border
|
|
@@ -120,41 +98,20 @@ Please note that the initial rendering below has the `width` prop set to `300px`
|
|
|
120
98
|
imageAspectRatio={SkeletonLoaderImageRatios.Landscape}
|
|
121
99
|
border
|
|
122
100
|
/>
|
|
123
|
-
</
|
|
101
|
+
</SimpleGrid>
|
|
124
102
|
</Story>
|
|
125
|
-
</
|
|
103
|
+
</Canvas>
|
|
126
104
|
|
|
127
105
|
# Text Placeholders in a List
|
|
128
106
|
|
|
129
|
-
<
|
|
107
|
+
<Canvas>
|
|
130
108
|
<Story name="Placeholders in a List">
|
|
131
|
-
<
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}}
|
|
137
|
-
>
|
|
138
|
-
<SkeletonLoader
|
|
139
|
-
layout={SkeletonLoaderLayouts.Horizontal}
|
|
140
|
-
showImage={false}
|
|
141
|
-
/>
|
|
142
|
-
<SkeletonLoader
|
|
143
|
-
layout={SkeletonLoaderLayouts.Horizontal}
|
|
144
|
-
showImage={false}
|
|
145
|
-
/>
|
|
146
|
-
<SkeletonLoader
|
|
147
|
-
layout={SkeletonLoaderLayouts.Horizontal}
|
|
148
|
-
showImage={false}
|
|
149
|
-
/>
|
|
150
|
-
<SkeletonLoader
|
|
151
|
-
layout={SkeletonLoaderLayouts.Horizontal}
|
|
152
|
-
showImage={false}
|
|
153
|
-
/>
|
|
154
|
-
<SkeletonLoader
|
|
155
|
-
layout={SkeletonLoaderLayouts.Horizontal}
|
|
156
|
-
showImage={false}
|
|
157
|
-
/>
|
|
158
|
-
</div>
|
|
109
|
+
<SimpleGrid columns={1}>
|
|
110
|
+
<SkeletonLoader layout={SkeletonLoaderLayouts.Row} showImage={false} />
|
|
111
|
+
<SkeletonLoader layout={SkeletonLoaderLayouts.Row} showImage={false} />
|
|
112
|
+
<SkeletonLoader layout={SkeletonLoaderLayouts.Row} showImage={false} />
|
|
113
|
+
<SkeletonLoader layout={SkeletonLoaderLayouts.Row} showImage={false} />
|
|
114
|
+
<SkeletonLoader layout={SkeletonLoaderLayouts.Row} showImage={false} />
|
|
115
|
+
</SimpleGrid>
|
|
159
116
|
</Story>
|
|
160
|
-
</
|
|
117
|
+
</Canvas>
|