@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
|
@@ -70,12 +70,20 @@ export const animalCrossing = [
|
|
|
70
70
|
{
|
|
71
71
|
label: "Mr. Resetti",
|
|
72
72
|
content:
|
|
73
|
-
"<strong>Mr. Resetti</strong>, full name Sonny Resetti, is a fictional
|
|
73
|
+
"<strong>Mr. Resetti</strong>, full name Sonny Resetti, is a fictional " +
|
|
74
|
+
"character from the Animal Crossing series of video games by Nintendo. " +
|
|
75
|
+
"His first appearance was in the Nintendo 64 game Dōbutsu no Mori, " +
|
|
76
|
+
"released in Europe and North America on the GameCube as Animal Crossing.",
|
|
74
77
|
},
|
|
75
78
|
{
|
|
76
79
|
label: "Zucker",
|
|
77
80
|
content:
|
|
78
|
-
"<strong>Zucker</strong> is a lazy octopus villager who first appeared
|
|
81
|
+
"<strong>Zucker</strong> is a lazy octopus villager who first appeared " +
|
|
82
|
+
"in New Leaf. His Japanese name and general appearance refers to the " +
|
|
83
|
+
"Japanese snack takoyaki, which is a fried ball of dough commonly " +
|
|
84
|
+
"filled with minced octopus. His catchphrase is a reference to how he " +
|
|
85
|
+
"is an underwater animal. He has the same initial phrase as Bertha. He " +
|
|
86
|
+
"has the nature hobby.",
|
|
79
87
|
},
|
|
80
88
|
];
|
|
81
89
|
|
|
@@ -100,8 +108,13 @@ _Note: this is the recommended approach._
|
|
|
100
108
|
|
|
101
109
|
We recommended passing in the data for the `Tabs` component through the `data`
|
|
102
110
|
prop. This allows the consumer to pass in well-formed data and always generate
|
|
103
|
-
the correct DOM.
|
|
104
|
-
|
|
111
|
+
the correct DOM.
|
|
112
|
+
|
|
113
|
+
Internally in the DS `Tabs` component:
|
|
114
|
+
|
|
115
|
+
- we map through the data array and generate the appropriate components needed
|
|
116
|
+
for the layout.
|
|
117
|
+
- adds the carousel feature for the mobile view.
|
|
105
118
|
|
|
106
119
|
Note that HTML is allowed in the `content` property in each object as part of the
|
|
107
120
|
string or as straight HTML.
|
|
@@ -122,12 +135,36 @@ const animalCrossing = [
|
|
|
122
135
|
content:
|
|
123
136
|
"<p>Totakeke, more commonly known as <b>K.K. Slider or K.K.</b>, is ...",
|
|
124
137
|
},
|
|
138
|
+
{
|
|
139
|
+
label: "Mr. Resetti",
|
|
140
|
+
content:
|
|
141
|
+
"<strong>Mr. Resetti</strong>, full name Sonny Resetti, is a ...",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
label: "Zucker",
|
|
145
|
+
content:
|
|
146
|
+
"<strong>Zucker</strong> is a lazy octopus villager who first ...",
|
|
147
|
+
},
|
|
125
148
|
];
|
|
126
149
|
|
|
127
150
|
// ...
|
|
128
151
|
<Tabs contentData={animalCrossing} />;
|
|
129
152
|
```
|
|
130
153
|
|
|
154
|
+
## Responsive Mobile Carousel
|
|
155
|
+
|
|
156
|
+
For both, the `contentData` prop approach and the children component approach
|
|
157
|
+
(described below in this document), the mobile carousel feature is built. This
|
|
158
|
+
adds "previous" and "next" arrows in the tab list for users to scroll through
|
|
159
|
+
all the tabs while the panel stays static.
|
|
160
|
+
|
|
161
|
+
Note that for the children component approach, we expect a `TabList` component
|
|
162
|
+
to be passed or else the mobile carousel will _not_ be built. More on this in
|
|
163
|
+
the [With Children Components](#with-children-components) section.
|
|
164
|
+
|
|
165
|
+
To view and test this in Storybook, go to the "Canvas" tab and change the
|
|
166
|
+
viewport in the Storybook toolbar at the top of the page.
|
|
167
|
+
|
|
131
168
|
## With Callback Event Function
|
|
132
169
|
|
|
133
170
|
If you need to keep track of the index of current tab that was selected, pass
|
|
@@ -178,7 +215,10 @@ available components, you will probably have to iterate or map through an array
|
|
|
178
215
|
to get the desired outcome. The DS `Tabs` component does this internally for
|
|
179
216
|
you so this should be a last resort option.
|
|
180
217
|
|
|
181
|
-
Make sure
|
|
218
|
+
Make sure that:
|
|
219
|
+
|
|
220
|
+
- all five components are imported to use this approach.
|
|
221
|
+
- the structure follows the example below for the mobile carousel to render properly.
|
|
182
222
|
|
|
183
223
|
```jsx
|
|
184
224
|
import {
|
|
@@ -197,11 +237,16 @@ import {
|
|
|
197
237
|
<Tab>Tom Nook</Tab>
|
|
198
238
|
<Tab>Isabelle</Tab>
|
|
199
239
|
<Tab>K.K. Slider</Tab>
|
|
240
|
+
<Tab>Mr. Resetti</Tab>
|
|
241
|
+
<Tab>Zucker</Tab>
|
|
200
242
|
</TabList>
|
|
201
243
|
<TabPanels>
|
|
202
244
|
<TabPanel>
|
|
203
|
-
|
|
204
|
-
|
|
245
|
+
<p>
|
|
246
|
+
Tom Nook, <b>known in Japan as Tanukichi</b>, is a fictional
|
|
247
|
+
character in the Animal Crossing series who operates the village
|
|
248
|
+
store.
|
|
249
|
+
</p>
|
|
205
250
|
</TabPanel>
|
|
206
251
|
<TabPanel>
|
|
207
252
|
Isabelle, known as Shizue in Japan, is a fictional character from the
|
|
@@ -210,10 +255,27 @@ import {
|
|
|
210
255
|
serves as the secretary to the player character.
|
|
211
256
|
</TabPanel>
|
|
212
257
|
<TabPanel>
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
258
|
+
<p>
|
|
259
|
+
Totakeke, more commonly known as <b>K.K. Slider or K.K.</b>, is a
|
|
260
|
+
fictional character within the Animal Crossing franchise. One of the
|
|
261
|
+
franchise's most popular characters, he debuted in the title Animal
|
|
262
|
+
Crossing, and has appeared in every installment since.
|
|
263
|
+
</p>
|
|
264
|
+
</TabPanel>
|
|
265
|
+
<TabPanel>
|
|
266
|
+
<strong>Mr. Resetti</strong>, full name Sonny Resetti, is a fictional
|
|
267
|
+
character from the Animal Crossing series of video games by Nintendo.
|
|
268
|
+
His first appearance was in the Nintendo 64 game Dōbutsu no Mori,
|
|
269
|
+
released in Europe and North America on the GameCube as Animal
|
|
270
|
+
Crossing.
|
|
271
|
+
</TabPanel>
|
|
272
|
+
<TabPanel>
|
|
273
|
+
<strong>Zucker</strong> is a lazy octopus villager who first appeared
|
|
274
|
+
in New Leaf. His Japanese name and general appearance refers to the
|
|
275
|
+
Japanese snack takoyaki, which is a fried ball of dough commonly
|
|
276
|
+
filled with minced octopus. His catchphrase is a reference to how he
|
|
277
|
+
is an underwater animal. He has the same initial phrase as Bertha. He
|
|
278
|
+
has the nature hobby.
|
|
217
279
|
</TabPanel>
|
|
218
280
|
</TabPanels>
|
|
219
281
|
</Tabs>
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import {
|
|
3
3
|
Box,
|
|
4
|
-
Tabs as ChakraTabs,
|
|
5
|
-
TabList,
|
|
6
4
|
Tab,
|
|
5
|
+
TabList,
|
|
7
6
|
TabPanels,
|
|
8
7
|
TabPanel,
|
|
8
|
+
Tabs as ChakraTabs,
|
|
9
9
|
useMultiStyleConfig,
|
|
10
10
|
} from "@chakra-ui/react";
|
|
11
11
|
|
|
12
12
|
import generateUUID from "../../helpers/generateUUID";
|
|
13
|
-
import { IconNames, IconRotationTypes } from "../Icons/IconTypes";
|
|
13
|
+
import { IconNames, IconRotationTypes, IconSizes } from "../Icons/IconTypes";
|
|
14
14
|
import Icon from "../Icons/Icon";
|
|
15
15
|
import { ButtonTypes } from "../Button/ButtonTypes";
|
|
16
16
|
import Button from "../Button/Button";
|
|
17
|
+
import useCarouselStyles from "../../hooks/useCarouselStyles";
|
|
18
|
+
import useWindowSize from "../../hooks/useWindowSize";
|
|
17
19
|
|
|
18
20
|
// The general shape of the data object for each Tab.
|
|
19
21
|
export interface TabsContentDataProps {
|
|
@@ -44,7 +46,7 @@ const onClickHash = (tabHash) => {
|
|
|
44
46
|
};
|
|
45
47
|
|
|
46
48
|
/**
|
|
47
|
-
* This returns an object with `Tab` and `TabPanel` components to
|
|
49
|
+
* This returns an object with `Tab` and `TabPanel` components to rendered in
|
|
48
50
|
* `TabList` and `TabPanels` components respectively.
|
|
49
51
|
*/
|
|
50
52
|
const getElementsFromContentData = (data, useHash) => {
|
|
@@ -61,8 +63,7 @@ const getElementsFromContentData = (data, useHash) => {
|
|
|
61
63
|
"needed, consider other navigational patterns."
|
|
62
64
|
);
|
|
63
65
|
}
|
|
64
|
-
|
|
65
|
-
data.map((tab, index) => {
|
|
66
|
+
data.forEach((tab, index) => {
|
|
66
67
|
let tempPanel;
|
|
67
68
|
// For URL hash enabled tabs, we need to add a custom `onClick` to handle the URL hash.
|
|
68
69
|
const tempTab = (
|
|
@@ -89,7 +90,10 @@ const getElementsFromContentData = (data, useHash) => {
|
|
|
89
90
|
panels.push(tempPanel);
|
|
90
91
|
});
|
|
91
92
|
|
|
92
|
-
return {
|
|
93
|
+
return {
|
|
94
|
+
tabs: <TabList>{tabs}</TabList>,
|
|
95
|
+
panels: <TabPanels>{panels}</TabPanels>,
|
|
96
|
+
};
|
|
93
97
|
};
|
|
94
98
|
|
|
95
99
|
/**
|
|
@@ -104,7 +108,7 @@ const getElementsFromChildren = (children) => {
|
|
|
104
108
|
return {};
|
|
105
109
|
}
|
|
106
110
|
|
|
107
|
-
children.
|
|
111
|
+
children.forEach((child) => {
|
|
108
112
|
if (child.type === TabList || child.props.mdxType === "TabList") {
|
|
109
113
|
tabs.push(child);
|
|
110
114
|
|
|
@@ -139,9 +143,68 @@ function Tabs(props: React.PropsWithChildren<TabsProps>) {
|
|
|
139
143
|
useHash = false,
|
|
140
144
|
} = props;
|
|
141
145
|
const styles = useMultiStyleConfig("Tabs", {});
|
|
146
|
+
// Just an estimate of the tab width for the mobile carousel.
|
|
147
|
+
const initTabWidth = 65;
|
|
148
|
+
// An estimate for the tab width for larger device widths.
|
|
149
|
+
const mediumTabWidth = 40;
|
|
150
|
+
const [tabWidth, setTabWidth] = React.useState(initTabWidth);
|
|
151
|
+
const windowDimensions = useWindowSize();
|
|
142
152
|
const { tabs, panels } = contentData
|
|
143
153
|
? getElementsFromContentData(contentData, useHash)
|
|
144
154
|
: getElementsFromChildren(children);
|
|
155
|
+
// `tabs` is an array for the children component approach but an object for
|
|
156
|
+
// the `contentData` prop approach. We need to get the right props key value
|
|
157
|
+
// to set the carousel's length.
|
|
158
|
+
const tabProps = tabs[0] ? tabs[0]?.props : (tabs as any).props;
|
|
159
|
+
const { prevSlide, nextSlide, carouselStyle, goToStart } = useCarouselStyles(
|
|
160
|
+
tabProps?.children?.length,
|
|
161
|
+
tabWidth
|
|
162
|
+
);
|
|
163
|
+
React.useEffect(() => {
|
|
164
|
+
if (windowDimensions.width > 320) {
|
|
165
|
+
setTabWidth(mediumTabWidth);
|
|
166
|
+
} else {
|
|
167
|
+
setTabWidth(initTabWidth);
|
|
168
|
+
}
|
|
169
|
+
// If we are on larger viewports, reset the carousel so all tabs display.
|
|
170
|
+
if (windowDimensions.width > 600) {
|
|
171
|
+
goToStart();
|
|
172
|
+
}
|
|
173
|
+
}, [goToStart, windowDimensions.width]);
|
|
174
|
+
const previousButton = (
|
|
175
|
+
<Button
|
|
176
|
+
buttonType={ButtonTypes.Primary}
|
|
177
|
+
attributes={{
|
|
178
|
+
"aria-label": "Previous",
|
|
179
|
+
...styles.buttonArrows,
|
|
180
|
+
left: "0",
|
|
181
|
+
}}
|
|
182
|
+
onClick={prevSlide}
|
|
183
|
+
>
|
|
184
|
+
<Icon
|
|
185
|
+
name={IconNames.Arrow}
|
|
186
|
+
iconRotation={IconRotationTypes.Rotate90}
|
|
187
|
+
size={IconSizes.Small}
|
|
188
|
+
/>
|
|
189
|
+
</Button>
|
|
190
|
+
);
|
|
191
|
+
const nextButton = (
|
|
192
|
+
<Button
|
|
193
|
+
buttonType={ButtonTypes.Primary}
|
|
194
|
+
attributes={{
|
|
195
|
+
"aria-label": "Next",
|
|
196
|
+
...styles.buttonArrows,
|
|
197
|
+
right: "0",
|
|
198
|
+
}}
|
|
199
|
+
onClick={nextSlide}
|
|
200
|
+
>
|
|
201
|
+
<Icon
|
|
202
|
+
name={IconNames.Arrow}
|
|
203
|
+
iconRotation={IconRotationTypes.Rotate270}
|
|
204
|
+
size={IconSizes.Small}
|
|
205
|
+
/>
|
|
206
|
+
</Button>
|
|
207
|
+
);
|
|
145
208
|
|
|
146
209
|
if (children && contentData?.length) {
|
|
147
210
|
console.warn(
|
|
@@ -152,69 +215,27 @@ function Tabs(props: React.PropsWithChildren<TabsProps>) {
|
|
|
152
215
|
return (
|
|
153
216
|
<ChakraTabs
|
|
154
217
|
id={id}
|
|
155
|
-
// The following lazy loads each panel whenever it is needed.
|
|
156
|
-
isLazy
|
|
157
218
|
onChange={onChange}
|
|
158
219
|
defaultIndex={defaultIndex}
|
|
159
220
|
variant="enclosed"
|
|
221
|
+
// The following lazy loads each panel whenever it is needed.
|
|
222
|
+
isLazy
|
|
160
223
|
>
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}}
|
|
177
|
-
>
|
|
178
|
-
<Icon
|
|
179
|
-
name={IconNames.arrow}
|
|
180
|
-
decorative={true}
|
|
181
|
-
iconRotation={IconRotationTypes.rotate90}
|
|
182
|
-
modifiers={["small"]}
|
|
183
|
-
/>
|
|
184
|
-
</Button>
|
|
185
|
-
<TabList>{tabs}</TabList>
|
|
186
|
-
<Button
|
|
187
|
-
buttonType={ButtonTypes.Primary}
|
|
188
|
-
attributes={{
|
|
189
|
-
"aria-label": "Next",
|
|
190
|
-
...styles.buttonArrows,
|
|
191
|
-
}}
|
|
192
|
-
>
|
|
193
|
-
<Icon
|
|
194
|
-
name={IconNames.arrow}
|
|
195
|
-
decorative={true}
|
|
196
|
-
iconRotation={IconRotationTypes.rotate270}
|
|
197
|
-
modifiers={["small"]}
|
|
198
|
-
/>
|
|
199
|
-
</Button>
|
|
200
|
-
</Box>
|
|
201
|
-
<TabPanels>{panels}</TabPanels>
|
|
202
|
-
</>
|
|
203
|
-
) : (
|
|
204
|
-
<>
|
|
205
|
-
<Box
|
|
206
|
-
__css={styles.tablistWrapper}
|
|
207
|
-
sx={{
|
|
208
|
-
"&::-webkit-scrollbar": {
|
|
209
|
-
display: "none",
|
|
210
|
-
},
|
|
211
|
-
}}
|
|
212
|
-
>
|
|
213
|
-
{tabs}
|
|
214
|
-
</Box>
|
|
215
|
-
{panels}
|
|
216
|
-
</>
|
|
217
|
-
)}
|
|
224
|
+
<Box
|
|
225
|
+
__css={styles.tablistWrapper}
|
|
226
|
+
sx={{
|
|
227
|
+
"&::-webkit-scrollbar": {
|
|
228
|
+
display: "none",
|
|
229
|
+
},
|
|
230
|
+
}}
|
|
231
|
+
>
|
|
232
|
+
{previousButton}
|
|
233
|
+
<Box __css={styles.carouselParent}>
|
|
234
|
+
<Box {...carouselStyle}>{tabs}</Box>
|
|
235
|
+
</Box>
|
|
236
|
+
{nextButton}
|
|
237
|
+
</Box>
|
|
238
|
+
{panels}
|
|
218
239
|
</ChakraTabs>
|
|
219
240
|
);
|
|
220
241
|
}
|