@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
|
@@ -2,20 +2,12 @@ import {
|
|
|
2
2
|
Meta,
|
|
3
3
|
Story,
|
|
4
4
|
ArgsTable,
|
|
5
|
-
|
|
5
|
+
Canvas,
|
|
6
6
|
Description,
|
|
7
7
|
} from "@storybook/addon-docs/blocks";
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
9
|
|
|
10
10
|
import SearchBar from "./SearchBar";
|
|
11
|
-
import Select from "../Select/Select";
|
|
12
|
-
import HelperErrorText from "../HelperErrorText/HelperErrorText";
|
|
13
|
-
import Button from "../Button/Button";
|
|
14
|
-
import { ButtonTypes } from "../Button/ButtonTypes";
|
|
15
|
-
import Icon from "../Icons/Icon";
|
|
16
|
-
import { IconNames } from "../Icons/IconTypes";
|
|
17
|
-
import Input from "../Input/Input";
|
|
18
|
-
import { InputTypes } from "../Input/InputTypes";
|
|
19
11
|
import * as stories from "../Autosuggest/Autosuggest.stories.tsx";
|
|
20
12
|
import { getCategory } from "../../utils/componentCategories";
|
|
21
13
|
import DSProvider from "../../theme/provider";
|
|
@@ -33,188 +25,214 @@ import DSProvider from "../../theme/provider";
|
|
|
33
25
|
jest: ["SearchBar.test.tsx"],
|
|
34
26
|
}}
|
|
35
27
|
argTypes={{
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
},
|
|
28
|
+
action: { table: { disable: true } },
|
|
29
|
+
ariaLabel: { table: { disable: true } },
|
|
30
|
+
buttonOnClick: { table: { disable: true } },
|
|
31
|
+
className: { table: { disable: true } },
|
|
32
|
+
id: { table: { disable: true } },
|
|
33
|
+
method: { table: { disable: true } },
|
|
34
|
+
onSubmit: { table: { disable: true } },
|
|
35
|
+
selectProps: { table: { disable: true } },
|
|
36
|
+
textInputProps: { table: { disable: true } },
|
|
37
|
+
textInputElement: { table: { disable: true } },
|
|
39
38
|
}}
|
|
40
39
|
/>
|
|
41
40
|
|
|
42
41
|
# SearchBar
|
|
43
42
|
|
|
43
|
+
| Component Version | DS Version |
|
|
44
|
+
| ----------------- | ---------- |
|
|
45
|
+
| Added | `0.0.4` |
|
|
46
|
+
| Latest | `0.25.4` |
|
|
47
|
+
|
|
44
48
|
<Description of={SearchBar} />
|
|
45
49
|
|
|
46
|
-
The main wrapper element that is rendered is `<form>` DOM element. All the
|
|
47
|
-
passed to `SearchBar` will apply to the `<form>` element
|
|
48
|
-
|
|
50
|
+
The main wrapper element that is rendered is a `<form>` DOM element. All the
|
|
51
|
+
props passed to `SearchBar` will apply to the `<form>` element and its children.
|
|
52
|
+
The `SearchBar` component will render a `Select` component (optional),
|
|
53
|
+
`TextInput` component, `Button` component, and `HelperErrorText` component
|
|
54
|
+
based on the required props.
|
|
49
55
|
|
|
50
56
|
The `Select` dropdown narrows the search within a specific category, typically
|
|
51
|
-
title or author.
|
|
52
|
-
|
|
53
|
-
the
|
|
54
|
-
|
|
55
|
-
_Note: The `HelperErrorText` component should be the next direct sibling of the
|
|
56
|
-
`SearchBar` component if it will be used._
|
|
57
|
-
|
|
58
|
-
export const optionsGroup = {
|
|
59
|
-
Art: [
|
|
60
|
-
"Academic Painting",
|
|
61
|
-
"Amazing Painting",
|
|
62
|
-
"Ancient Statue",
|
|
63
|
-
"Basic Painting",
|
|
64
|
-
"Beautiful Statue",
|
|
65
|
-
],
|
|
66
|
-
Bushes: [
|
|
67
|
-
"Blue-Hydrangea Bush",
|
|
68
|
-
"Blue-Hydrangea Start",
|
|
69
|
-
"Holly Bush",
|
|
70
|
-
"Orange-Tea-Olive Bush",
|
|
71
|
-
"Pink Camellia Bush",
|
|
72
|
-
],
|
|
73
|
-
Clothing: ["3D Glasses", "Academy Uniform", "Acid-Washed Jacket"],
|
|
74
|
-
"DIY Recipes": ["Acorn Pochette", "Acoustic Guitar", "Angled Signpost"],
|
|
75
|
-
Flowers: [
|
|
76
|
-
"Black Cosmos",
|
|
77
|
-
"Blue Pansies",
|
|
78
|
-
"Gold Roses",
|
|
79
|
-
"Lily of the Valley",
|
|
80
|
-
"Orange Hyacinth",
|
|
81
|
-
],
|
|
82
|
-
Fossils: [
|
|
83
|
-
"Acanthostega",
|
|
84
|
-
"Amber",
|
|
85
|
-
"Ammonite",
|
|
86
|
-
"Ankylo Skull",
|
|
87
|
-
"Anomalocaris",
|
|
88
|
-
"Australopith",
|
|
89
|
-
],
|
|
90
|
-
Fruits: ["Apples", "Oranges", "Pears", "Coconuts", "Cherries"],
|
|
91
|
-
Furniture: [
|
|
92
|
-
"Abstract Wall",
|
|
93
|
-
"Accessories Stand",
|
|
94
|
-
"ACNH Switch",
|
|
95
|
-
"Air Circulator",
|
|
96
|
-
],
|
|
97
|
-
Materials: [
|
|
98
|
-
"Acorn",
|
|
99
|
-
"Aquaris Fragment",
|
|
100
|
-
"Bamboo Piece",
|
|
101
|
-
"Boot",
|
|
102
|
-
"Clump of Weeds",
|
|
103
|
-
],
|
|
104
|
-
NPC: ["Celeste", "Kicks", "Leif", "Redd", "Saharah"],
|
|
105
|
-
Songs: ["Agent K.K.", "Café K.K.", "Comrade K.K."],
|
|
106
|
-
Tools: [
|
|
107
|
-
"Axe",
|
|
108
|
-
"Bamboo Wand",
|
|
109
|
-
"Fishing Rod",
|
|
110
|
-
"Shovel",
|
|
111
|
-
"Slingshot",
|
|
112
|
-
"Watering Can",
|
|
113
|
-
],
|
|
114
|
-
Villagers: ["Agnes", "Alfonso", "Anchovy", "Axel", "Aurora"],
|
|
115
|
-
};
|
|
57
|
+
title or author. Toggle the `Select` through the Controls.
|
|
58
|
+
|
|
59
|
+
Note: The labels for the `Select` and `TextInput` components are not visible but
|
|
60
|
+
aria-labels are used to make these children components accessible.
|
|
116
61
|
|
|
117
|
-
|
|
62
|
+
export const optionsGroup = [
|
|
63
|
+
"Art",
|
|
64
|
+
"Bushes",
|
|
65
|
+
"Clothing",
|
|
66
|
+
"Flowers",
|
|
67
|
+
"Fossils",
|
|
68
|
+
"Fruits",
|
|
69
|
+
"Furniture",
|
|
70
|
+
"Songs",
|
|
71
|
+
"Tools",
|
|
72
|
+
"Villagers",
|
|
73
|
+
];
|
|
74
|
+
|
|
75
|
+
<Canvas withToolbar>
|
|
118
76
|
<Story
|
|
119
77
|
name="Basic"
|
|
120
78
|
args={{
|
|
79
|
+
helperErrorText: "Search for items in Animal Crossing New Horizons",
|
|
80
|
+
invalidText: "Could not find the item :(",
|
|
81
|
+
isDisabled: false,
|
|
82
|
+
isInvalid: false,
|
|
83
|
+
isRequired: false,
|
|
121
84
|
showHelperText: true,
|
|
122
85
|
showSelect: true,
|
|
123
|
-
isErrorState: false,
|
|
124
|
-
disabledButton: false,
|
|
125
86
|
}}
|
|
126
87
|
>
|
|
127
88
|
{(args) => (
|
|
128
|
-
<
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
id="inputBasic"
|
|
146
|
-
ariaLabelledBy="buttonBasic"
|
|
147
|
-
placeholder="Item Search"
|
|
148
|
-
required={true}
|
|
149
|
-
type={InputTypes.text}
|
|
150
|
-
attributes={{
|
|
151
|
-
["aria-describedby"]: "helperTextBasic",
|
|
152
|
-
}}
|
|
153
|
-
errored={args.isErrorState}
|
|
154
|
-
/>
|
|
155
|
-
<Button
|
|
156
|
-
buttonType={ButtonTypes.Primary}
|
|
157
|
-
id="buttonBasic"
|
|
158
|
-
type="submit"
|
|
159
|
-
disabled={args.disabledButton}
|
|
160
|
-
>
|
|
161
|
-
<Icon
|
|
162
|
-
name={IconNames.search}
|
|
163
|
-
decorative={true}
|
|
164
|
-
modifiers={["small", "icon-left"]}
|
|
165
|
-
/>
|
|
166
|
-
Search
|
|
167
|
-
</Button>
|
|
168
|
-
</SearchBar>
|
|
169
|
-
{args.showHelperText && (
|
|
170
|
-
<HelperErrorText id="helperTextBasic" isError={args.isErrorState}>
|
|
171
|
-
Search for items in Animal Crossing New Horizons
|
|
172
|
-
</HelperErrorText>
|
|
173
|
-
)}
|
|
174
|
-
</div>
|
|
89
|
+
<SearchBar
|
|
90
|
+
onSubmit={() => {}}
|
|
91
|
+
{...args}
|
|
92
|
+
selectProps={
|
|
93
|
+
args.showSelect && {
|
|
94
|
+
labelText: "Select a category",
|
|
95
|
+
name: "selectName",
|
|
96
|
+
optionsData: optionsGroup,
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
textInputProps={{
|
|
100
|
+
labelText: "Item Search",
|
|
101
|
+
name: "textInputName",
|
|
102
|
+
placeholder: "Item Search",
|
|
103
|
+
}}
|
|
104
|
+
helperErrorText={args.showHelperText && args.helperErrorText}
|
|
105
|
+
/>
|
|
175
106
|
)}
|
|
176
107
|
</Story>
|
|
177
|
-
</
|
|
108
|
+
</Canvas>
|
|
178
109
|
|
|
179
110
|
<ArgsTable story="Basic" />
|
|
180
111
|
|
|
112
|
+
## Component Props
|
|
113
|
+
|
|
114
|
+
### Select Component
|
|
115
|
+
|
|
116
|
+
To render an optional `Select` component, an object must be passed to the
|
|
117
|
+
`selectProps` prop. It _must_ include `name`, `labelText`, and `optionsData`
|
|
118
|
+
properties. The `labelText` value won't be rendered but will be used for its
|
|
119
|
+
`aria-label` attribute.
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
const selectProps = {
|
|
123
|
+
name: "select-form-name",
|
|
124
|
+
labelText: "Select a category",
|
|
125
|
+
optionsData: optionsGroup,
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
// ...
|
|
129
|
+
<SearchBar
|
|
130
|
+
onSubmit={() => {}}
|
|
131
|
+
selectProps={selectProps}
|
|
132
|
+
// ...
|
|
133
|
+
/>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### TextInput Component
|
|
137
|
+
|
|
138
|
+
To render the `TextInput` component, an object must be passed to the
|
|
139
|
+
`textInputProps` prop. It _must_ include `labelText`, `name`, and `placeholder`
|
|
140
|
+
properties. The `labelText` value won't be rendered but will be used for its
|
|
141
|
+
`aria-label` attribute. Optional values to pass include `onChange` and `value`.
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
const textInputProps = {
|
|
145
|
+
labelText: "Item Search",
|
|
146
|
+
name: "textInputName",
|
|
147
|
+
onChange: (event) => {
|
|
148
|
+
console.log(event.target.value);
|
|
149
|
+
},
|
|
150
|
+
placeholder: "Item Search",
|
|
151
|
+
value: "Horizon"
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// ...
|
|
155
|
+
<SearchBar
|
|
156
|
+
onSubmit={() => {}}
|
|
157
|
+
textInputProps={textInputProps}
|
|
158
|
+
// ...
|
|
159
|
+
/>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Custom Input Component
|
|
163
|
+
|
|
164
|
+
To render a custom input component, pass the component to the `textInputElement`
|
|
165
|
+
prop. This will render your custom input component such as an `Autocomplete`
|
|
166
|
+
component. Check the "Search Autocomplete" example for more details.
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
const textInputElement = <CustomInput {...props} />;
|
|
170
|
+
|
|
171
|
+
// ...
|
|
172
|
+
<SearchBar
|
|
173
|
+
onSubmit={() => {}}
|
|
174
|
+
textInputElement={textInputElement}
|
|
175
|
+
// ...
|
|
176
|
+
/>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Button Component
|
|
180
|
+
|
|
181
|
+
A `Button` component will automatically be rendered for the `SearchBar`
|
|
182
|
+
component. If you want to pass a callback function to the `Button`, use the
|
|
183
|
+
`buttonOnClick` prop.
|
|
184
|
+
|
|
185
|
+
### HelperErrorText Component
|
|
186
|
+
|
|
187
|
+
To render the `HelperErrorText` component, pass a string value to the
|
|
188
|
+
`helperErrorText` prop. For the invalid state when `isInvalid` is true, pass the
|
|
189
|
+
error string in the `invalidText` prop.
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
const helperErrorText = "";
|
|
193
|
+
|
|
194
|
+
// ...
|
|
195
|
+
<SearchBar
|
|
196
|
+
onSubmit={() => {}}
|
|
197
|
+
helperErrorText="Search for items in Animal Crossing New Horizons"
|
|
198
|
+
// ...
|
|
199
|
+
/>
|
|
200
|
+
```
|
|
201
|
+
|
|
181
202
|
## Search Autocomplete
|
|
182
203
|
|
|
183
204
|
While the Design System does not implement an `Autosuggest` or `Autocomplete`
|
|
184
205
|
component, it does show a pattern for using the `react-autosuggest` package.
|
|
185
206
|
In this example, we're using the `react-autosuggest` example found in the
|
|
186
207
|
[Basic Autosuggest story](https://nypl.github.io/nypl-design-system/storybook-static/?path=/story/autosuggest--autosuggest-library)
|
|
187
|
-
as the main component inside the `SearchBar` component.
|
|
188
|
-
the Autosuggest story along with this story to see how to compose all the
|
|
189
|
-
components together.
|
|
208
|
+
as the main component inside the `SearchBar` component.
|
|
190
209
|
|
|
191
|
-
|
|
192
|
-
|
|
210
|
+
In order to render this custom input element in the `SearchBar` component, pass
|
|
211
|
+
it in the `textInputElement` prop. Do not pass an object to the `textInputProps`
|
|
212
|
+
prop since the custom input component passed in `textInputElement` will take
|
|
213
|
+
precedence.
|
|
214
|
+
|
|
215
|
+
<Canvas withToolbar>
|
|
216
|
+
<Story
|
|
217
|
+
name="Search Autocomplete"
|
|
218
|
+
args={{
|
|
219
|
+
isDisabled: false,
|
|
220
|
+
isInvalid: false,
|
|
221
|
+
isRequired: false,
|
|
222
|
+
}}
|
|
223
|
+
>
|
|
193
224
|
{(args) => (
|
|
194
225
|
<div style={{ minHeight: "150px" }}>
|
|
195
|
-
<SearchBar
|
|
196
|
-
{
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
>
|
|
202
|
-
<Icon
|
|
203
|
-
name={IconNames.search}
|
|
204
|
-
decorative={true}
|
|
205
|
-
modifiers={["small", "icon-left"]}
|
|
206
|
-
/>
|
|
207
|
-
Search
|
|
208
|
-
</Button>
|
|
209
|
-
</SearchBar>
|
|
210
|
-
<HelperErrorText id="autosuggest-helperText" isError={false}>
|
|
211
|
-
Select your home library. Start by typing the name of the library. Try{" "}
|
|
212
|
-
{'"'}ba{'"'}.
|
|
213
|
-
</HelperErrorText>
|
|
226
|
+
<SearchBar
|
|
227
|
+
onSubmit={() => {}}
|
|
228
|
+
textInputElement={stories.SearchBarExample()}
|
|
229
|
+
helperErrorText="Select your home library. Start by typing the name of the library. Try 'ba'."
|
|
230
|
+
{...args}
|
|
231
|
+
/>
|
|
214
232
|
</div>
|
|
215
233
|
)}
|
|
216
234
|
</Story>
|
|
217
|
-
</
|
|
235
|
+
</Canvas>
|
|
218
236
|
|
|
219
237
|
## Other Examples
|
|
220
238
|
|
|
@@ -223,75 +241,132 @@ Here are the same possible states of the `SearchBar` component in static example
|
|
|
223
241
|
|
|
224
242
|
### Error State
|
|
225
243
|
|
|
226
|
-
For the error state,
|
|
227
|
-
|
|
244
|
+
For the error state, set the `isInvalid` prop to `true`. This will update the
|
|
245
|
+
state for all its children. If you passed a custom input element, you must
|
|
246
|
+
handle the error state yourself.
|
|
228
247
|
|
|
229
|
-
<
|
|
248
|
+
<Canvas>
|
|
230
249
|
<DSProvider>
|
|
231
|
-
<SearchBar
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
/>
|
|
243
|
-
<Button
|
|
244
|
-
buttonType={ButtonTypes.Primary}
|
|
245
|
-
id="button-error-state"
|
|
246
|
-
type="submit"
|
|
247
|
-
>
|
|
248
|
-
<Icon
|
|
249
|
-
name={IconNames.search}
|
|
250
|
-
decorative={true}
|
|
251
|
-
modifiers={["small", "icon-left"]}
|
|
252
|
-
/>
|
|
253
|
-
Search
|
|
254
|
-
</Button>
|
|
255
|
-
</SearchBar>
|
|
256
|
-
<HelperErrorText id="error-helperText" isError={true}>
|
|
257
|
-
Sorry, we can't find that item!
|
|
258
|
-
</HelperErrorText>
|
|
250
|
+
<SearchBar
|
|
251
|
+
onSubmit={() => {}}
|
|
252
|
+
textInputProps={{
|
|
253
|
+
labelText: "Item Search",
|
|
254
|
+
name: "textInputName",
|
|
255
|
+
placeholder: "Item Search",
|
|
256
|
+
}}
|
|
257
|
+
helperErrorText="This is the helper text!"
|
|
258
|
+
invalidText="Could not find the item :("
|
|
259
|
+
isInvalid
|
|
260
|
+
/>
|
|
259
261
|
</DSProvider>
|
|
260
|
-
</
|
|
261
|
-
|
|
262
|
-
<br />
|
|
262
|
+
</Canvas>
|
|
263
263
|
|
|
264
264
|
### Disabled State
|
|
265
265
|
|
|
266
|
-
For the disabled state,
|
|
267
|
-
|
|
266
|
+
For the disabled state, set the `isDisabled` prop to `true`. This will update
|
|
267
|
+
the state for all its children. If you passed a custom input element, you must
|
|
268
|
+
handle the disabled state yourself.
|
|
268
269
|
|
|
269
|
-
<
|
|
270
|
+
<Canvas>
|
|
270
271
|
<DSProvider>
|
|
271
|
-
<SearchBar
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
272
|
+
<SearchBar
|
|
273
|
+
obSubmit={() => {}}
|
|
274
|
+
textInputProps={{
|
|
275
|
+
labelText: "Item Search",
|
|
276
|
+
name: "textInputName",
|
|
277
|
+
placeholder: "Item Search",
|
|
278
|
+
}}
|
|
279
|
+
helperErrorText="Reason for disabled state."
|
|
280
|
+
isDisabled
|
|
281
|
+
/>
|
|
282
|
+
</DSProvider>
|
|
283
|
+
</Canvas>
|
|
284
|
+
|
|
285
|
+
### TextInput and onSubmit Values
|
|
286
|
+
|
|
287
|
+
_NOTE: open the browser console to see the values logged in the example below._
|
|
288
|
+
|
|
289
|
+
It is possible to get certain values from the `SearchBar` component by passing
|
|
290
|
+
callback functions as props.
|
|
291
|
+
|
|
292
|
+
The keyword value in the `TextInput` component can be accessed by passing a
|
|
293
|
+
function to the `onChange` property in the `textInputProp` prop. This is useful
|
|
294
|
+
for validating the keyword the user entered.
|
|
295
|
+
|
|
296
|
+
To get values when the form is submitted, you must:
|
|
297
|
+
|
|
298
|
+
- pass values for the `name` property in the `selectProps` and `textInputProps`
|
|
299
|
+
prop objects.
|
|
300
|
+
- get the values returned in the `onSubmit` callback function.
|
|
301
|
+
|
|
302
|
+
In the following example, the `name` for the `Select` is "selectName" and the
|
|
303
|
+
`name` for the `TextInput` is "textInputName". The `onSubmit` function can get
|
|
304
|
+
the submitted values through the `event` object. In the example below, the
|
|
305
|
+
values can be retrieved as `event.target.selectName.value` and
|
|
306
|
+
`event.target.textInputName.value`.
|
|
307
|
+
|
|
308
|
+
```tsx
|
|
309
|
+
function SearchBarValueExample() {
|
|
310
|
+
const textInputOnChange = (event) => {
|
|
311
|
+
console.log(`onChange TextInput value: ${event.target.value}`);
|
|
312
|
+
};
|
|
313
|
+
const onSubmit = (event) => {
|
|
314
|
+
event.preventDefault();
|
|
315
|
+
console.log(`onSubmit Select value: ${event.target.searchName.value}`);
|
|
316
|
+
console.log(`onSubmit TextInput value ${event.target.textInputName.value}`);
|
|
317
|
+
};
|
|
318
|
+
return (
|
|
319
|
+
<SearchBar
|
|
320
|
+
onSubmit={onSubmit}
|
|
321
|
+
selectProps={{
|
|
322
|
+
labelText: "Select a category",
|
|
323
|
+
name: "selectName",
|
|
324
|
+
optionsData: optionsGroup,
|
|
325
|
+
}}
|
|
326
|
+
textInputProps={{
|
|
327
|
+
labelText: "Item Search",
|
|
328
|
+
name: "textInputName",
|
|
329
|
+
onChange: textInputOnChange,
|
|
330
|
+
placeholder: "Item Search",
|
|
331
|
+
}}
|
|
332
|
+
helperErrorText="Search for an item"
|
|
333
|
+
invalidText="Could not find the item :("
|
|
334
|
+
/>
|
|
335
|
+
);
|
|
336
|
+
}
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
export function SearchBarValueExample() {
|
|
340
|
+
const textInputOnChange = (event) => {
|
|
341
|
+
console.log(`onChange TextInput value: ${event.target.value}`);
|
|
342
|
+
};
|
|
343
|
+
const onSubmit = (event) => {
|
|
344
|
+
event.preventDefault();
|
|
345
|
+
console.log(`onSubmit Select value: ${event.target.selectName.value}`);
|
|
346
|
+
console.log(`onSubmit TextInput value ${event.target.textInputName.value}`);
|
|
347
|
+
};
|
|
348
|
+
return (
|
|
349
|
+
<SearchBar
|
|
350
|
+
onSubmit={onSubmit}
|
|
351
|
+
selectProps={{
|
|
352
|
+
labelText: "Select a category",
|
|
353
|
+
name: "selectName",
|
|
354
|
+
optionsData: optionsGroup,
|
|
355
|
+
}}
|
|
356
|
+
textInputProps={{
|
|
357
|
+
labelText: "Item Search",
|
|
358
|
+
name: "textInputName",
|
|
359
|
+
onChange: textInputOnChange,
|
|
360
|
+
placeholder: "Item Search",
|
|
361
|
+
}}
|
|
362
|
+
helperErrorText="Search for an item"
|
|
363
|
+
invalidText="Could not find the item :("
|
|
364
|
+
/>
|
|
365
|
+
);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
<Canvas>
|
|
369
|
+
<DSProvider>
|
|
370
|
+
<SearchBarValueExample />
|
|
296
371
|
</DSProvider>
|
|
297
|
-
</
|
|
372
|
+
</Canvas>
|