@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
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Meta,
|
|
3
|
+
Story,
|
|
4
|
+
Canvas,
|
|
5
|
+
ArgsTable,
|
|
6
|
+
Description,
|
|
7
|
+
} from "@storybook/addon-docs/blocks";
|
|
8
|
+
import { withDesign } from "storybook-addon-designs";
|
|
9
|
+
import { VStack } from "@chakra-ui/react";
|
|
10
|
+
|
|
11
|
+
import StatusBadge from "./StatusBadge";
|
|
12
|
+
import { StatusBadgeTypes } from "./StatusBadgeTypes";
|
|
13
|
+
import getCSSVariable from "../../helpers/getCSSVariable";
|
|
14
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
15
|
+
import DSProvider from "../../theme/provider";
|
|
16
|
+
|
|
17
|
+
<Meta
|
|
18
|
+
title={getCategory("StatusBadge")}
|
|
19
|
+
component={StatusBadge}
|
|
20
|
+
decorators={[withDesign]}
|
|
21
|
+
parameters={{
|
|
22
|
+
design: {
|
|
23
|
+
type: "figma",
|
|
24
|
+
url:
|
|
25
|
+
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11256%3A0",
|
|
26
|
+
},
|
|
27
|
+
jest: ["StatusBadge.test.tsx"],
|
|
28
|
+
}}
|
|
29
|
+
argTypes={{
|
|
30
|
+
className: { table: { disable: true } },
|
|
31
|
+
id: { table: { disable: true } },
|
|
32
|
+
level: {
|
|
33
|
+
control: {
|
|
34
|
+
type: "select",
|
|
35
|
+
},
|
|
36
|
+
options: Object.values(StatusBadgeTypes).map((value) => value),
|
|
37
|
+
},
|
|
38
|
+
}}
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
# StatusBadge
|
|
42
|
+
|
|
43
|
+
| Component Version | DS Version |
|
|
44
|
+
| ----------------- | ---------- |
|
|
45
|
+
| Added | `0.18.7` |
|
|
46
|
+
| Latest | `0.25.1` |
|
|
47
|
+
|
|
48
|
+
<Description of={StatusBadge} />
|
|
49
|
+
|
|
50
|
+
<Canvas withToolbar>
|
|
51
|
+
<Story
|
|
52
|
+
name="Basic with props"
|
|
53
|
+
args={{ level: StatusBadgeTypes.Low, text: "Registration Required" }}
|
|
54
|
+
>
|
|
55
|
+
{(args) => <StatusBadge {...args}>{args.text}</StatusBadge>}
|
|
56
|
+
</Story>
|
|
57
|
+
</Canvas>
|
|
58
|
+
|
|
59
|
+
<ArgsTable story="Basic with props" />
|
|
60
|
+
|
|
61
|
+
## Patterns
|
|
62
|
+
|
|
63
|
+
### Higher Barrier
|
|
64
|
+
|
|
65
|
+
Used in instances where the associated message is the highest barrier. Use
|
|
66
|
+
`"high"` and `"medium"` for these levels.
|
|
67
|
+
|
|
68
|
+
<Canvas>
|
|
69
|
+
<DSProvider>
|
|
70
|
+
<VStack spacing="s" align="stretch">
|
|
71
|
+
<StatusBadge level={StatusBadgeTypes.High}>
|
|
72
|
+
On-Site Access Only
|
|
73
|
+
</StatusBadge>
|
|
74
|
+
<StatusBadge level={StatusBadgeTypes.Medium}>Cancelled</StatusBadge>
|
|
75
|
+
</VStack>
|
|
76
|
+
</DSProvider>
|
|
77
|
+
</Canvas>
|
|
78
|
+
|
|
79
|
+
### Lower Barrier
|
|
80
|
+
|
|
81
|
+
Used in instances where the associated message is the lower barrier. Use
|
|
82
|
+
`"low"` for this level which is the default.
|
|
83
|
+
|
|
84
|
+
<Canvas>
|
|
85
|
+
<DSProvider>
|
|
86
|
+
<VStack spacing="s" align="stretch">
|
|
87
|
+
<StatusBadge>Library Card Required</StatusBadge>
|
|
88
|
+
<StatusBadge>Registration Required</StatusBadge>
|
|
89
|
+
</VStack>
|
|
90
|
+
</DSProvider>
|
|
91
|
+
</Canvas>
|
|
@@ -1,25 +1,53 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { render, screen } from "@testing-library/react";
|
|
3
3
|
import { axe } from "jest-axe";
|
|
4
|
+
import renderer from "react-test-renderer";
|
|
4
5
|
|
|
5
6
|
import StatusBadge from "./StatusBadge";
|
|
7
|
+
import { StatusBadgeTypes } from "./StatusBadgeTypes";
|
|
6
8
|
|
|
7
9
|
describe("StatusBadge Accessibility", () => {
|
|
8
10
|
it("passes axe accessibility test", async () => {
|
|
9
11
|
const { container } = render(
|
|
10
|
-
<StatusBadge
|
|
12
|
+
<StatusBadge>Registration Required</StatusBadge>
|
|
11
13
|
);
|
|
12
14
|
expect(await axe(container)).toHaveNoViolations();
|
|
13
15
|
});
|
|
14
16
|
});
|
|
15
17
|
|
|
16
|
-
describe("StatusBadge
|
|
17
|
-
it("
|
|
18
|
-
render(<StatusBadge
|
|
18
|
+
describe("StatusBadge", () => {
|
|
19
|
+
it("renders a status badge and text", () => {
|
|
20
|
+
render(<StatusBadge>Registration Required</StatusBadge>);
|
|
19
21
|
expect(screen.getByText("Registration Required")).toBeInTheDocument();
|
|
20
22
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
|
|
24
|
+
it("throws a warning when no children are passed", () => {
|
|
25
|
+
const warn = jest.spyOn(console, "warn");
|
|
26
|
+
render(<StatusBadge></StatusBadge>);
|
|
27
|
+
expect(warn).toHaveBeenCalledWith("Status Badge has no children.");
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("renders the UI snapshot correctly", () => {
|
|
31
|
+
const low = renderer
|
|
32
|
+
.create(<StatusBadge id="low">Registration Required</StatusBadge>)
|
|
33
|
+
.toJSON();
|
|
34
|
+
const medium = renderer
|
|
35
|
+
.create(
|
|
36
|
+
<StatusBadge id="medium" level={StatusBadgeTypes.Medium}>
|
|
37
|
+
Registration Required
|
|
38
|
+
</StatusBadge>
|
|
39
|
+
)
|
|
40
|
+
.toJSON();
|
|
41
|
+
const high = renderer
|
|
42
|
+
.create(
|
|
43
|
+
<StatusBadge id="high" level={StatusBadgeTypes.High}>
|
|
44
|
+
Registration Required
|
|
45
|
+
</StatusBadge>
|
|
46
|
+
)
|
|
47
|
+
.toJSON();
|
|
48
|
+
|
|
49
|
+
expect(low).toMatchSnapshot();
|
|
50
|
+
expect(medium).toMatchSnapshot();
|
|
51
|
+
expect(high).toMatchSnapshot();
|
|
24
52
|
});
|
|
25
53
|
});
|
|
@@ -1,37 +1,36 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { Box, useStyleConfig } from "@chakra-ui/react";
|
|
3
|
+
|
|
4
|
+
import { StatusBadgeTypes } from "./StatusBadgeTypes";
|
|
5
|
+
import generateUUID from "../../helpers/generateUUID";
|
|
3
6
|
|
|
4
7
|
export interface StatusBadgeProps {
|
|
5
|
-
/**
|
|
6
|
-
blockName?: string;
|
|
7
|
-
/** ClassName that appears in addition to "status-badge" */
|
|
8
|
+
/** Additional class for the component */
|
|
8
9
|
className?: string;
|
|
9
|
-
/**
|
|
10
|
-
|
|
10
|
+
/** ID that other components can cross reference for accessibility purposes */
|
|
11
|
+
id?: string;
|
|
12
|
+
/** Level of the status badge through StatusBadgeTypes. */
|
|
13
|
+
level?: StatusBadgeTypes;
|
|
11
14
|
}
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
function StatusBadge(props: React.PropsWithChildren<StatusBadgeProps>) {
|
|
17
|
+
const {
|
|
18
|
+
children,
|
|
19
|
+
className,
|
|
20
|
+
id = generateUUID(),
|
|
21
|
+
level = StatusBadgeTypes.Low,
|
|
22
|
+
} = props;
|
|
23
|
+
const styles = useStyleConfig("StatusBadge", { variant: level });
|
|
21
24
|
|
|
22
|
-
if (!
|
|
23
|
-
console.warn("Status Badge has no children");
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (level) {
|
|
27
|
-
statusBadgeModifiers = [level];
|
|
25
|
+
if (!children) {
|
|
26
|
+
console.warn("Status Badge has no children.");
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
return (
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
>
|
|
34
|
-
{props.children}
|
|
35
|
-
</div>
|
|
30
|
+
<Box id={id} className={className} __css={styles}>
|
|
31
|
+
{children}
|
|
32
|
+
</Box>
|
|
36
33
|
);
|
|
37
34
|
}
|
|
35
|
+
|
|
36
|
+
export default StatusBadge;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`StatusBadge renders the UI snapshot correctly 1`] = `
|
|
4
|
+
<div
|
|
5
|
+
className="css-0"
|
|
6
|
+
id="low"
|
|
7
|
+
>
|
|
8
|
+
Registration Required
|
|
9
|
+
</div>
|
|
10
|
+
`;
|
|
11
|
+
|
|
12
|
+
exports[`StatusBadge renders the UI snapshot correctly 2`] = `
|
|
13
|
+
<div
|
|
14
|
+
className="css-0"
|
|
15
|
+
id="medium"
|
|
16
|
+
>
|
|
17
|
+
Registration Required
|
|
18
|
+
</div>
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
exports[`StatusBadge renders the UI snapshot correctly 3`] = `
|
|
22
|
+
<div
|
|
23
|
+
className="css-0"
|
|
24
|
+
id="high"
|
|
25
|
+
>
|
|
26
|
+
Registration Required
|
|
27
|
+
</div>
|
|
28
|
+
`;
|
|
@@ -4,7 +4,7 @@ import SearchBar from "../SearchBar/SearchBar";
|
|
|
4
4
|
import Input from "../Input/Input";
|
|
5
5
|
import { InputTypes } from "../Input/InputTypes";
|
|
6
6
|
import Icon from "../Icons/Icon";
|
|
7
|
-
import { IconNames } from "../Icons/IconTypes";
|
|
7
|
+
import { IconNames, IconSizes, IconAlign } from "../Icons/IconTypes";
|
|
8
8
|
import Button from "../Button/Button";
|
|
9
9
|
import { ButtonTypes } from "../Button/ButtonTypes";
|
|
10
10
|
import HelperErrorText from "../HelperErrorText/HelperErrorText";
|
|
@@ -132,9 +132,9 @@ won't hurt.
|
|
|
132
132
|
/>
|
|
133
133
|
<Button buttonType={ButtonTypes.Primary} id="button-ex1" type="submit">
|
|
134
134
|
<Icon
|
|
135
|
-
name={IconNames.
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
name={IconNames.Search}
|
|
136
|
+
size={IconSizes.Small}
|
|
137
|
+
align={IconAlign.Left}
|
|
138
138
|
/>
|
|
139
139
|
Search
|
|
140
140
|
</Button>
|
|
@@ -170,9 +170,9 @@ block to see its code implementation.
|
|
|
170
170
|
type="submit"
|
|
171
171
|
>
|
|
172
172
|
<Icon
|
|
173
|
-
name={IconNames.
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
name={IconNames.Search}
|
|
174
|
+
size={IconSizes.Small}
|
|
175
|
+
align={IconAlign.Left}
|
|
176
176
|
/>
|
|
177
177
|
يبحث
|
|
178
178
|
</Button>
|
|
@@ -209,9 +209,9 @@ block to see its code implementation.
|
|
|
209
209
|
type="submit"
|
|
210
210
|
>
|
|
211
211
|
<Icon
|
|
212
|
-
name={IconNames.
|
|
213
|
-
|
|
214
|
-
|
|
212
|
+
name={IconNames.Search}
|
|
213
|
+
size={IconSizes.Small}
|
|
214
|
+
align={IconAlign.Left}
|
|
215
215
|
/>
|
|
216
216
|
يبحث
|
|
217
217
|
</Button>
|
|
@@ -237,14 +237,14 @@ help reduce any visual mistakes.
|
|
|
237
237
|
|
|
238
238
|
<Canvas>
|
|
239
239
|
<DSProvider>
|
|
240
|
-
<div style={{ display: "flex",
|
|
240
|
+
<div style={{ display: "flex", flexDirection: "column" }}>
|
|
241
241
|
<div style={{ width: "300px" }}>
|
|
242
242
|
A regular button:
|
|
243
243
|
<Button buttonType={ButtonTypes.Primary} id="button-ex4" type="submit">
|
|
244
244
|
<Icon
|
|
245
|
-
name={IconNames.
|
|
246
|
-
|
|
247
|
-
|
|
245
|
+
name={IconNames.Search}
|
|
246
|
+
size={IconSizes.Small}
|
|
247
|
+
align={IconAlign.Left}
|
|
248
248
|
/>
|
|
249
249
|
Search
|
|
250
250
|
</Button>
|
|
@@ -258,9 +258,9 @@ help reduce any visual mistakes.
|
|
|
258
258
|
type="submit"
|
|
259
259
|
>
|
|
260
260
|
<Icon
|
|
261
|
-
name={IconNames.
|
|
262
|
-
|
|
263
|
-
|
|
261
|
+
name={IconNames.Search}
|
|
262
|
+
size={IconSizes.Small}
|
|
263
|
+
align={IconAlign.Left}
|
|
264
264
|
/>
|
|
265
265
|
Search
|
|
266
266
|
</Button>
|
|
@@ -18,24 +18,48 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
18
18
|
|
|
19
19
|
# Breakpoints
|
|
20
20
|
|
|
21
|
+
| Table of Contents |
|
|
22
|
+
| ---------------------------------------------- |
|
|
23
|
+
| 1. [General Information](#general-information) |
|
|
24
|
+
| 2. [CSS Variables](#css-variables) |
|
|
25
|
+
| 3. [Figma Reference](#figma-reference) |
|
|
26
|
+
|
|
27
|
+
## General Information
|
|
28
|
+
|
|
21
29
|
The DS adheres to four global breakpoints for responsive layouts and typography.
|
|
22
30
|
|
|
23
|
-
- Desktop: 1280px
|
|
24
|
-
- Tablet Landscape: 960px
|
|
25
|
-
- Tablet Portrait: 600px
|
|
26
31
|
- Mobile: 320px
|
|
32
|
+
- Tablet Portrait: 600px
|
|
33
|
+
- Tablet Landscape: 960px
|
|
34
|
+
- Desktop: 1280px
|
|
27
35
|
|
|
28
|
-
|
|
36
|
+
## CSS Variables
|
|
29
37
|
|
|
30
38
|
The following CSS variables are available through the DS.
|
|
31
39
|
|
|
40
|
+
```scss
|
|
41
|
+
--nypl-breakpoint-small: 320px;
|
|
42
|
+
--nypl-breakpoint-medium: 600px;
|
|
43
|
+
--nypl-breakpoint-large: 960px;
|
|
44
|
+
--nypl-breakpoint-xl: 1280px;
|
|
32
45
|
```
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
46
|
+
|
|
47
|
+
## SCSS Variables
|
|
48
|
+
|
|
49
|
+
If you are using SCSS and imported the NYPL Design System `/dist/resources.scss`
|
|
50
|
+
file, then you can use the following SCSS variables in your media queries or
|
|
51
|
+
SCSS `breakpoint` function (if used).
|
|
52
|
+
|
|
53
|
+
```scss
|
|
54
|
+
$nypl-breakpoint-small: 320px;
|
|
55
|
+
$nypl-breakpoint-medium: 600px;
|
|
56
|
+
$nypl-breakpoint-large: 960px;
|
|
57
|
+
$nypl-breakpoint-xl: 1280px;
|
|
58
|
+
$nypl-max-width: $nypl-breakpoint-xl;
|
|
37
59
|
```
|
|
38
60
|
|
|
39
|
-
|
|
61
|
+
## Figma Reference
|
|
62
|
+
|
|
63
|
+
For additional spacing information, please refer to the Figma Main file.
|
|
40
64
|
|
|
41
|
-
https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=17983%3A60146
|
|
65
|
+
- https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=17983%3A60146
|
|
@@ -6,18 +6,19 @@ import {
|
|
|
6
6
|
Description,
|
|
7
7
|
} from "@storybook/addon-docs/blocks";
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
|
+
import { ButtonGroup } from "@chakra-ui/react";
|
|
9
10
|
|
|
10
|
-
import
|
|
11
|
-
import Button, { ButtonGroup } from "../Button/Button";
|
|
11
|
+
import Button from "../Button/Button";
|
|
12
12
|
import { ButtonTypes } from "../Button/ButtonTypes";
|
|
13
13
|
import Icon from "../Icons/Icon";
|
|
14
14
|
import {
|
|
15
|
-
|
|
15
|
+
IconAlign,
|
|
16
16
|
IconNames,
|
|
17
17
|
IconRotationTypes,
|
|
18
18
|
IconSizes,
|
|
19
19
|
} from "../Icons/IconTypes";
|
|
20
20
|
import getCSSVariable from "../../helpers/getCSSVariable";
|
|
21
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
21
22
|
import DSProvider from "../../theme/provider";
|
|
22
23
|
|
|
23
24
|
<Meta
|
|
@@ -26,15 +27,26 @@ import DSProvider from "../../theme/provider";
|
|
|
26
27
|
parameters={{
|
|
27
28
|
design: {
|
|
28
29
|
type: "figma",
|
|
29
|
-
url:
|
|
30
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298",
|
|
30
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298",
|
|
31
31
|
},
|
|
32
32
|
}}
|
|
33
33
|
/>
|
|
34
34
|
|
|
35
35
|
# Buttons
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
| Table of Contents |
|
|
38
|
+
| ---------------------------------------------- |
|
|
39
|
+
| 1. [General Information](#general-information) |
|
|
40
|
+
| 2. [Guidelines](#guidelines) |
|
|
41
|
+
| 3. [Button Groups](#button-groups) |
|
|
42
|
+
| 4. [Button Types](#button-types) |
|
|
43
|
+
| 5. [Patterns](#patterns) |
|
|
44
|
+
| 6. [Figma Reference](#figma-reference) |
|
|
45
|
+
|
|
46
|
+
## General Information
|
|
47
|
+
|
|
48
|
+
Use the NYPL Design System [Button](https://nypl.github.io/nypl-design-system/storybook-static/?path=/docs/form-elements-button--basic)
|
|
49
|
+
component to render form buttons.
|
|
38
50
|
|
|
39
51
|
```jsx
|
|
40
52
|
import { Button, ButtonTypes } from "@nypl/design-system-react-components";
|
|
@@ -42,86 +54,53 @@ import { Button, ButtonTypes } from "@nypl/design-system-react-components";
|
|
|
42
54
|
<Button buttonType={ButtonTypes.Primary}>Button Text</Button>;
|
|
43
55
|
```
|
|
44
56
|
|
|
45
|
-
##
|
|
46
|
-
|
|
47
|
-
For information about using the `Button` component, please see below.
|
|
48
|
-
|
|
49
|
-
- [General Guidelines](#general-guidelines)
|
|
50
|
-
- [Spacing](#spacing)
|
|
51
|
-
- [Button Types](#button-types)
|
|
52
|
-
- [Patterns](#patterns)
|
|
53
|
-
- [Figma Reference](#figma-reference)
|
|
54
|
-
|
|
55
|
-
## General Guidelines
|
|
57
|
+
## Guidelines
|
|
56
58
|
|
|
57
59
|
- Button text is optional.
|
|
58
60
|
- Button text should be title case.
|
|
59
61
|
- Button icon is optional.
|
|
60
62
|
- Buttons may have an icon on either the left or the right.
|
|
61
|
-
- Buttons by default are blue. However, Donation buttons are red.
|
|
62
|
-
- Buttons used for Back to Top actions have a Secondary button style with an
|
|
63
|
-
|
|
63
|
+
- Buttons by default are blue. However, Donation callout buttons are red.
|
|
64
|
+
- Buttons used for Back to Top actions have a Secondary button style with an
|
|
65
|
+
arrow icon pointing up.
|
|
66
|
+
- When buttons are used in a group, they should be wrapped in a `ButtonGroup`.
|
|
67
|
+
- When buttons are used in a group where the user can move forward or backward,
|
|
68
|
+
the `Primary` button is on the right and the `Secondary` button on the left
|
|
69
|
+
(i.e. cancel = secondary, submit = primary).
|
|
70
|
+
|
|
71
|
+
## Button Groups
|
|
64
72
|
|
|
65
|
-
|
|
73
|
+
When `Button` components are displayed in a group, use the `ButtonGroup`
|
|
74
|
+
component to handle the spacing and layout. The `ButtonGroup` component will use
|
|
75
|
+
`--nypl-space-xs` (0.5rem) for spacing in horizontal group layouts.
|
|
66
76
|
|
|
67
|
-
|
|
77
|
+
Standalone `Button` components and the `ButtonGroup` component should use
|
|
78
|
+
`--nypl-space-l` (2rem) for spacing between all other UI elements. This spacing
|
|
79
|
+
can be achieved by using the `Form` component to wrap the `Button`s.
|
|
68
80
|
|
|
69
81
|
<Canvas>
|
|
70
82
|
<DSProvider>
|
|
71
83
|
<ButtonGroup>
|
|
72
|
-
<Button
|
|
73
|
-
|
|
74
|
-
attributes={{
|
|
75
|
-
style: {
|
|
76
|
-
marginRight: getCSSVariable("--space-xs"),
|
|
77
|
-
},
|
|
78
|
-
}}
|
|
79
|
-
>
|
|
80
|
-
Button Text
|
|
81
|
-
</Button>
|
|
82
|
-
<Button
|
|
83
|
-
buttonType={ButtonTypes.Primary}
|
|
84
|
-
attributes={{
|
|
85
|
-
style: {
|
|
86
|
-
marginRight: getCSSVariable("--space-xs"),
|
|
87
|
-
},
|
|
88
|
-
}}
|
|
89
|
-
>
|
|
90
|
-
<Icon decorative modifiers={["small", "icon-left"]} name="search" />
|
|
91
|
-
Button Text
|
|
92
|
-
</Button>
|
|
93
|
-
<Button
|
|
94
|
-
buttonType={ButtonTypes.Primary}
|
|
95
|
-
attributes={{
|
|
96
|
-
style: {
|
|
97
|
-
marginRight: getCSSVariable("--space-xs"),
|
|
98
|
-
},
|
|
99
|
-
}}
|
|
100
|
-
>
|
|
84
|
+
<Button buttonType={ButtonTypes.Primary}>Button Text</Button>
|
|
85
|
+
<Button buttonType={ButtonTypes.Primary}>
|
|
101
86
|
<Icon
|
|
102
|
-
name={IconNames.
|
|
103
|
-
|
|
104
|
-
|
|
87
|
+
name={IconNames.Search}
|
|
88
|
+
size={IconSizes.Small}
|
|
89
|
+
align={IconAlign.Left}
|
|
105
90
|
/>
|
|
106
|
-
</Button>
|
|
107
|
-
<Button
|
|
108
|
-
buttonType={ButtonTypes.Primary}
|
|
109
|
-
attributes={{
|
|
110
|
-
style: {
|
|
111
|
-
backgroundColor: getCSSVariable("--section-books-and-more-primary"),
|
|
112
|
-
marginRight: getCSSVariable("--space-xs"),
|
|
113
|
-
},
|
|
114
|
-
}}
|
|
115
|
-
>
|
|
116
91
|
Button Text
|
|
117
92
|
</Button>
|
|
93
|
+
<Button buttonType={ButtonTypes.Primary}>
|
|
94
|
+
<Icon name={IconNames.Close} size={IconSizes.Medium} />
|
|
95
|
+
</Button>
|
|
96
|
+
<Button buttonType={ButtonTypes.Callout}>Donate</Button>
|
|
118
97
|
<Button buttonType={ButtonTypes.Secondary}>
|
|
119
98
|
Back to Top
|
|
120
99
|
<Icon
|
|
121
|
-
name={IconNames.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
100
|
+
name={IconNames.Arrow}
|
|
101
|
+
size={IconSizes.Small}
|
|
102
|
+
align={IconAlign.Right}
|
|
103
|
+
iconRotation={IconRotationTypes.Rotate180}
|
|
125
104
|
/>
|
|
126
105
|
</Button>
|
|
127
106
|
</ButtonGroup>
|
|
@@ -130,15 +109,20 @@ Buttons should use `--space-xs` (0.5rem) for spacing in situations where multipl
|
|
|
130
109
|
|
|
131
110
|
## Button Types
|
|
132
111
|
|
|
133
|
-
The `buttonType` prop should be used to render various forms of the button
|
|
112
|
+
The `buttonType` prop should be used to render various forms of the button
|
|
113
|
+
component. Note that the `SearchBar` type is only used internally in the
|
|
114
|
+
`SearchBar` component.
|
|
134
115
|
|
|
135
116
|
<Canvas>
|
|
136
117
|
<DSProvider>
|
|
137
118
|
<ButtonGroup>
|
|
138
119
|
<Button buttonType={ButtonTypes.Primary}>Primary Button</Button>
|
|
139
120
|
<Button buttonType={ButtonTypes.Secondary}>Secondary Button</Button>
|
|
121
|
+
<Button buttonType={ButtonTypes.Callout}>Callout Button</Button>
|
|
140
122
|
<Button buttonType={ButtonTypes.Pill}>Pill Button</Button>
|
|
141
123
|
<Button buttonType={ButtonTypes.Link}>Link Button</Button>
|
|
124
|
+
<Button buttonType={ButtonTypes.SearchBar}>SearchBar Button</Button>
|
|
125
|
+
<Button buttonType={ButtonTypes.NoBrand}>NoBrand Button</Button>
|
|
142
126
|
</ButtonGroup>
|
|
143
127
|
</DSProvider>
|
|
144
128
|
</Canvas>
|
|
@@ -154,6 +138,11 @@ The `buttonType` prop should be used to render various forms of the button compo
|
|
|
154
138
|
- often paired with a Primary button
|
|
155
139
|
- Visual Treatment: rectangular, outlined
|
|
156
140
|
|
|
141
|
+
### ButtonTypes.Callout
|
|
142
|
+
|
|
143
|
+
- used for call to actions such as donation buttons
|
|
144
|
+
- Visual Treatment: rectangular, NYPL red background
|
|
145
|
+
|
|
157
146
|
### ButtonTypes.Pill
|
|
158
147
|
|
|
159
148
|
- used for equally weighted actions
|
|
@@ -165,31 +154,58 @@ The `buttonType` prop should be used to render various forms of the button compo
|
|
|
165
154
|
- used for equally weighted actions
|
|
166
155
|
- Visual Treatment: text link with underline
|
|
167
156
|
|
|
157
|
+
### ButtonTypes.SearchBar
|
|
158
|
+
|
|
159
|
+
- used internally in the `SearchBar` component for visual flow when it is next
|
|
160
|
+
to the `TextInput` component
|
|
161
|
+
- Visual Treatment: rectangular, filled, no border radius on the left side
|
|
162
|
+
|
|
163
|
+
### ButtonTypes.NoBrand
|
|
164
|
+
|
|
165
|
+
- used in cases where there is no brand color
|
|
166
|
+
- Visual Treatment: rectangular, filled with a black background
|
|
167
|
+
|
|
168
168
|
## Patterns
|
|
169
169
|
|
|
170
|
-
Buttons are blue by default
|
|
171
|
-
|
|
170
|
+
- Buttons are blue by default.
|
|
171
|
+
- Buttons that are intended as a call out (i.e. Donation buttons) should be set
|
|
172
|
+
as `ButtonTypes.Callout`.
|
|
173
|
+
- The "Back to Top" button must be set as `ButtonTypes.Secondary` and must
|
|
174
|
+
include an up arrow icon.
|
|
175
|
+
- Previous and Next buttons should be set as `ButtonTypes.Secondary` and be
|
|
176
|
+
wrapped in a `ButtonGroup`.
|
|
177
|
+
- Only use the `ButtonTypes.NoBrand` style where there is no brand color. _This
|
|
178
|
+
should be rarely used._
|
|
172
179
|
|
|
173
180
|
<Canvas>
|
|
174
181
|
<DSProvider>
|
|
175
182
|
<ButtonGroup>
|
|
176
|
-
<Button
|
|
177
|
-
buttonType={ButtonTypes.Primary}
|
|
178
|
-
attributes={{
|
|
179
|
-
style: {
|
|
180
|
-
backgroundColor: getCSSVariable("--section-books-and-more-primary"),
|
|
181
|
-
},
|
|
182
|
-
}}
|
|
183
|
-
>
|
|
184
|
-
Donate to this library
|
|
185
|
-
</Button>
|
|
183
|
+
<Button buttonType={ButtonTypes.Callout}>Donate to this library</Button>
|
|
186
184
|
<Button buttonType={ButtonTypes.Secondary}>
|
|
187
185
|
Back to Top
|
|
188
186
|
<Icon
|
|
189
|
-
name={IconNames.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
187
|
+
name={IconNames.Arrow}
|
|
188
|
+
iconRotation={IconRotationTypes.Rotate180}
|
|
189
|
+
size={IconSizes.Small}
|
|
190
|
+
align={IconAlign.Right}
|
|
191
|
+
/>
|
|
192
|
+
</Button>
|
|
193
|
+
<Button buttonType={ButtonTypes.Secondary}>
|
|
194
|
+
<Icon
|
|
195
|
+
name={IconNames.Arrow}
|
|
196
|
+
iconRotation={IconRotationTypes.Rotate90}
|
|
197
|
+
align={IconAlign.Left}
|
|
198
|
+
size={IconSizes.Small}
|
|
199
|
+
/>
|
|
200
|
+
Previous
|
|
201
|
+
</Button>
|
|
202
|
+
<Button buttonType={ButtonTypes.Secondary}>
|
|
203
|
+
Next
|
|
204
|
+
<Icon
|
|
205
|
+
name={IconNames.Arrow}
|
|
206
|
+
iconRotation={IconRotationTypes.Rotate270}
|
|
207
|
+
align={IconAlign.Right}
|
|
208
|
+
size={IconSizes.Small}
|
|
193
209
|
/>
|
|
194
210
|
</Button>
|
|
195
211
|
</ButtonGroup>
|
|
@@ -200,4 +216,4 @@ The "Back to Top" button must be of `ButtonTypes` `Secondary` and must include a
|
|
|
200
216
|
|
|
201
217
|
For more styling information, please refer to the Figma Main file.
|
|
202
218
|
|
|
203
|
-
https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298
|
|
219
|
+
- https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298
|