@nypl/design-system-react-components 0.23.4 → 0.25.1
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 +98 -1
- package/README.md +46 -11
- package/dist/components/Accordion/Accordion.d.ts +14 -14
- package/dist/components/Autosuggest/Autosuggest.stories.d.ts +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +11 -14
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +6 -0
- package/dist/components/Button/Button.d.ts +6 -13
- package/dist/components/Button/ButtonTypes.d.ts +5 -3
- package/dist/components/Card/Card.d.ts +59 -10
- package/dist/components/Card/CardTypes.d.ts +19 -0
- package/dist/components/CardEdition/CardEdition.d.ts +21 -0
- package/dist/components/{StyleGuide/Colors.stories.d.ts → CardEdition/CardEdition.stories.d.ts} +5 -2
- package/dist/components/Checkbox/Checkbox.d.ts +21 -16
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +43 -0
- package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +4 -0
- package/dist/components/DatePicker/DatePicker.d.ts +79 -0
- package/dist/components/DatePicker/DatePickerTypes.d.ts +5 -0
- package/dist/components/Form/Form.d.ts +16 -8
- package/dist/components/Form/FormTypes.d.ts +2 -0
- 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 +9 -11
- package/dist/components/Heading/{HeadingDisplaySizes.d.ts → HeadingTypes.d.ts} +8 -0
- package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +2 -1
- package/dist/components/Hero/Hero.d.ts +19 -14
- package/dist/components/Hero/HeroTypes.d.ts +10 -5
- package/dist/components/Icons/Icon.d.ts +13 -16
- package/dist/components/Icons/IconSvgs.d.ts +4 -0
- package/dist/components/Icons/IconTypes.d.ts +78 -60
- package/dist/components/Image/Image.stories.d.ts +2 -1
- package/dist/components/Label/Label.d.ts +10 -26
- package/dist/components/Link/Link.d.ts +8 -12
- package/dist/components/List/List.stories.d.ts +1 -0
- package/dist/components/Radio/Radio.d.ts +30 -24
- package/dist/components/RadioGroup/RadioGroup.d.ts +40 -0
- package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +4 -0
- 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 +1 -1
- package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +2 -2
- package/dist/components/StatusBadge/StatusBadge.d.ts +8 -6
- package/dist/components/StatusBadge/StatusBadgeTypes.d.ts +5 -0
- package/dist/components/Tabs/Tabs.d.ts +25 -0
- 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 +37 -30
- package/dist/components/TextInput/TextInputTypes.d.ts +5 -0
- package/dist/design-system-react-components.cjs.development.js +4102 -917
- 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 +4023 -920
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/index.d.ts +23 -5
- package/dist/resources.scss +133 -24
- 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 +109 -0
- package/dist/theme/components/checkbox.d.ts +91 -0
- package/dist/theme/components/customCheckboxGroup.d.ts +18 -0
- package/dist/theme/components/customRadioGroup.d.ts +18 -0
- package/dist/theme/components/global.d.ts +55 -0
- package/dist/theme/components/globalMixins.d.ts +15 -0
- package/dist/theme/components/heading.d.ts +110 -0
- package/dist/theme/components/hero.d.ts +492 -0
- package/dist/theme/components/icon.d.ts +13 -0
- package/dist/theme/components/label.d.ts +16 -0
- package/dist/theme/components/link.d.ts +45 -0
- package/dist/theme/components/radio.d.ts +95 -0
- package/dist/theme/components/searchBar.d.ts +20 -0
- package/dist/theme/components/select.d.ts +58 -0
- package/dist/theme/components/statusBadge.d.ts +25 -0
- package/dist/theme/components/tabs.d.ts +85 -0
- 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 +105 -0
- package/dist/theme/foundations/breakpoints.d.ts +23 -0
- package/dist/theme/foundations/colors.d.ts +3 -0
- package/dist/theme/foundations/global.d.ts +23 -0
- package/dist/theme/foundations/shadows.d.ts +4 -0
- package/dist/theme/foundations/spacing.d.ts +77 -0
- package/dist/theme/foundations/typography.d.ts +8 -0
- package/dist/theme/index.d.ts +20 -0
- package/dist/theme/provider.d.ts +5 -0
- package/dist/theme/types.d.ts +1 -0
- package/dist/utils/utils.d.ts +6 -0
- package/package.json +9 -2
- package/src/components/Accordion/Accordion.stories.mdx +233 -33
- 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 -3
- package/src/components/Autosuggest/Autosuggest.stories.tsx +1 -1
- package/src/components/Autosuggest/_Autosuggest.scss +2 -2
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +57 -56
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +31 -25
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +71 -73
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +6 -0
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +100 -0
- package/src/components/Button/Button.stories.mdx +125 -138
- package/src/components/Button/Button.test.tsx +65 -11
- package/src/components/Button/Button.tsx +72 -68
- package/src/components/Button/ButtonTypes.tsx +4 -2
- package/src/components/Button/_Button.scss +7 -92
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +58 -3
- package/src/components/Card/Card.stories.mdx +694 -0
- package/src/components/Card/Card.test.tsx +97 -102
- package/src/components/Card/Card.tsx +182 -31
- package/src/components/Card/CardTypes.tsx +21 -0
- package/src/components/Card/_Card.scss +234 -49
- package/src/components/{Card/Card.stories.tsx → CardEdition/CardEdition.stories.tsx} +32 -22
- package/src/components/CardEdition/CardEdition.test.tsx +395 -0
- package/src/components/CardEdition/CardEdition.tsx +60 -0
- package/src/components/CardEdition/_CardEdition.scss +138 -0
- package/src/components/Chakra/Box.stories.mdx +57 -0
- package/src/components/Chakra/Center.stories.mdx +99 -0
- package/src/components/Chakra/Grid.stories.mdx +79 -0
- package/src/components/Chakra/Stack.stories.mdx +93 -0
- package/src/components/Checkbox/Checkbox.stories.mdx +57 -35
- package/src/components/Checkbox/Checkbox.test.tsx +117 -147
- package/src/components/Checkbox/Checkbox.tsx +76 -50
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +325 -0
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +249 -0
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +345 -0
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +148 -0
- package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +4 -0
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +1360 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +284 -0
- package/src/components/DatePicker/DatePicker.test.tsx +657 -0
- package/src/components/DatePicker/DatePicker.tsx +396 -0
- package/src/components/DatePicker/DatePickerTypes.tsx +5 -0
- package/src/components/DatePicker/_DatePicker.scss +76 -0
- package/src/components/Form/Form.stories.mdx +130 -27
- package/src/components/Form/Form.test.tsx +78 -36
- package/src/components/Form/Form.tsx +53 -19
- package/src/components/Form/FormTypes.tsx +3 -0
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +38 -0
- package/src/components/Grid/GridTypes.tsx +9 -0
- package/src/components/Grid/SimpleGrid.stories.mdx +275 -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 +63 -33
- package/src/components/Heading/Heading.test.tsx +24 -16
- package/src/components/Heading/Heading.tsx +54 -38
- package/src/components/Heading/{HeadingDisplaySizes.tsx → HeadingTypes.tsx} +9 -0
- package/src/components/HelperErrorText/HelperErrorText.stories.tsx +2 -1
- package/src/components/HelperErrorText/_HelperErrorText.scss +1 -1
- package/src/components/Hero/Hero.stories.mdx +195 -85
- package/src/components/Hero/Hero.test.tsx +544 -113
- package/src/components/Hero/Hero.tsx +80 -93
- package/src/components/Hero/HeroTypes.tsx +17 -5
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +307 -0
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +6 -1
- package/src/components/HorizontalRule/_HorizontalRule.scss +1 -1
- package/src/components/Icons/Icon.stories.mdx +89 -74
- package/src/components/Icons/Icon.test.tsx +30 -22
- package/src/components/Icons/Icon.tsx +63 -61
- package/src/components/Icons/IconSvgs.tsx +8 -0
- package/src/components/Icons/IconTypes.tsx +80 -60
- package/src/components/Image/Image.stories.tsx +2 -1
- package/src/components/Input/_Input.scss +2 -2
- package/src/components/Label/Label.stories.mdx +77 -0
- package/src/components/Label/Label.test.tsx +43 -12
- package/src/components/Label/Label.tsx +28 -45
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +41 -0
- package/src/components/Link/Link.stories.mdx +47 -41
- package/src/components/Link/Link.test.tsx +33 -44
- package/src/components/Link/Link.tsx +114 -100
- package/src/components/List/List.stories.mdx +7 -3
- package/src/components/List/List.stories.tsx +14 -9
- package/src/components/List/List.test.tsx +12 -8
- package/src/components/List/List.tsx +9 -7
- package/src/components/List/_List.scss +3 -3
- package/src/components/Modal/Modal.stories.mdx +7 -3
- package/src/components/Modal/_Modal.scss +1 -1
- package/src/components/Notification/Notification.stories.mdx +99 -65
- package/src/components/Notification/Notification.test.tsx +3 -16
- package/src/components/Notification/Notification.tsx +12 -12
- package/src/components/Notification/_Notification.scss +5 -4
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +1 -1
- package/src/components/Pagination/Pagination.stories.mdx +7 -1
- package/src/components/Pagination/Pagination.test.tsx +16 -10
- package/src/components/Radio/Radio.stories.mdx +57 -46
- package/src/components/Radio/Radio.test.tsx +92 -138
- package/src/components/Radio/Radio.tsx +70 -69
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +250 -0
- package/src/components/RadioGroup/RadioGroup.stories.mdx +247 -0
- package/src/components/RadioGroup/RadioGroup.test.tsx +327 -0
- package/src/components/RadioGroup/RadioGroup.tsx +154 -0
- package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +4 -0
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1101 -0
- package/src/components/SearchBar/SearchBar.Test.tsx +151 -16
- package/src/components/SearchBar/SearchBar.stories.mdx +196 -224
- package/src/components/SearchBar/SearchBar.tsx +151 -46
- package/src/components/Select/Select.stories.mdx +193 -168
- package/src/components/Select/Select.test.tsx +129 -324
- package/src/components/Select/Select.tsx +120 -160
- package/src/components/Select/SelectTypes.tsx +4 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +18 -29
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +7 -7
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +4 -2
- package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +2 -2
- package/src/components/SkeletonLoader/_SkeletonLoader.scss +3 -3
- 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 +112 -90
- package/src/components/StyleGuide/Buttons.stories.mdx +98 -100
- package/src/components/StyleGuide/Colors.stories.mdx +336 -0
- package/src/components/StyleGuide/Forms.stories.mdx +85 -0
- package/src/components/StyleGuide/Iconography.stories.mdx +86 -93
- package/src/components/StyleGuide/Spacing.stories.mdx +0 -1
- package/src/components/StyleGuide/Typography.stories.mdx +164 -166
- package/src/components/StyleGuide/UIDocCard.tsx +4 -4
- package/src/components/Tabs/Tabs.stories.mdx +221 -0
- package/src/components/Tabs/Tabs.test.tsx +264 -0
- package/src/components/Tabs/Tabs.tsx +220 -0
- package/src/components/Template/Template.stories.mdx +574 -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 +90 -90
- package/src/components/TextInput/TextInput.test.tsx +103 -83
- package/src/components/TextInput/TextInput.tsx +108 -91
- package/src/components/TextInput/TextInputTypes.tsx +6 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +2 -1
- package/src/components/VideoPlayer/VideoPlayer.tsx +4 -2
- package/src/components/VideoPlayer/_VideoPlayer.scss +1 -1
- package/src/docs/Chakra.stories.mdx +341 -0
- package/src/docs/Intro.stories.mdx +31 -24
- package/src/index.ts +70 -5
- package/src/styles/01-colors/_colors-brand.scss +6 -4
- package/src/styles/01-colors/_colors-utility.scss +14 -15
- package/src/styles/03-space/_space-inline.scss +47 -7
- package/src/styles/03-space/_space-inset.scss +33 -5
- package/src/styles/03-space/_space-stack.scss +48 -8
- package/src/styles/base/_02-breakpoints.scss +5 -4
- package/src/styles/base/_04-base.scss +2 -1
- package/src/styles/base/_place-holder.scss +1 -1
- package/src/styles/base/_typography.scss +1 -29
- package/src/styles.scss +22 -25
- package/src/theme/components/accordion.ts +30 -0
- package/src/theme/components/breadcrumb.ts +77 -0
- package/src/theme/components/button.ts +125 -0
- package/src/theme/components/checkbox.ts +107 -0
- package/src/theme/components/customCheckboxGroup.ts +12 -0
- package/src/theme/components/customRadioGroup.ts +12 -0
- package/src/theme/components/global.ts +71 -0
- package/src/theme/components/globalMixins.ts +16 -0
- package/src/theme/components/heading.ts +72 -0
- package/src/theme/components/hero.ts +239 -0
- package/src/theme/components/icon.ts +79 -0
- package/src/theme/components/label.ts +17 -0
- package/src/theme/components/link.ts +47 -0
- package/src/theme/components/radio.ts +106 -0
- package/src/theme/components/searchBar.ts +21 -0
- package/src/theme/components/select.ts +50 -0
- package/src/theme/components/statusBadge.ts +27 -0
- package/src/theme/components/tabs.ts +79 -0
- package/src/theme/components/template.ts +114 -0
- package/src/theme/components/text.ts +31 -0
- package/src/theme/components/textInput.ts +61 -0
- package/src/theme/foundations/breakpoints.ts +24 -0
- package/src/theme/foundations/colors.ts +208 -0
- package/src/theme/foundations/global.ts +26 -0
- package/src/theme/foundations/shadows.ts +5 -0
- package/src/theme/foundations/spacing.ts +85 -0
- package/src/theme/foundations/typography.ts +35 -0
- package/src/theme/index.ts +88 -0
- package/src/theme/provider.tsx +9 -0
- package/src/theme/types.ts +1 -0
- package/src/utils/componentCategories.ts +56 -21
- package/src/utils/utils.ts +13 -0
- package/dist/components/Accordion/Accordion.stories.d.ts +0 -5
- package/dist/components/Card/Card.stories.d.ts +0 -27
- package/dist/components/Label/Label.stories.d.ts +0 -12
- package/dist/components/StatusBadge/StatusBadge.stories.d.ts +0 -8
- package/dist/components/Template/Template.stories.d.ts +0 -29
- package/src/components/Accordion/Accordion.stories.tsx +0 -65
- package/src/components/Accordion/_Accordion.scss +0 -81
- package/src/components/Breadcrumbs/_Breadcrumbs.scss +0 -97
- package/src/components/Checkbox/_Checkbox.scss +0 -97
- package/src/components/Form/_Form.scss +0 -28
- package/src/components/Heading/_Heading.scss +0 -163
- package/src/components/Hero/_Hero.scss +0 -256
- package/src/components/Icons/_Icons.scss +0 -116
- package/src/components/Label/Label.stories.tsx +0 -30
- package/src/components/Label/_Label.scss +0 -22
- package/src/components/Link/_Link.scss +0 -73
- package/src/components/Radio/_Radio.scss +0 -84
- package/src/components/SearchBar/_SearchBar.scss +0 -16
- package/src/components/Select/_Select.scss +0 -82
- package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -33
- package/src/components/StatusBadge/_StatusBadge.scss +0 -23
- package/src/components/StyleGuide/Colors.stories.tsx +0 -288
- package/src/components/Template/Template.stories.tsx +0 -85
- package/src/components/Template/_Template.scss +0 -63
- package/src/components/TextInput/_TextInput.scss +0 -59
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,103 @@ Currently, this repo is in Prerelease. When it is released, this project will ad
|
|
|
8
8
|
|
|
9
9
|
## Prerelease
|
|
10
10
|
|
|
11
|
+
## 0.25.1 (October 14, 2021)
|
|
12
|
+
|
|
13
|
+
### Adds
|
|
14
|
+
|
|
15
|
+
- Updates the `Accordion` component to internally use Chakra components.
|
|
16
|
+
- Adds DS `SimpleGrid` component composed from Chakra's `Simplegrid` component.
|
|
17
|
+
- Adds DS `Text` component composed from Chakra's `Text` component.
|
|
18
|
+
- Update the NYPL Colors with updated color names and values.
|
|
19
|
+
- Composes the DS `TextInput` component from Chakra's `Input` and `Textarea` components.
|
|
20
|
+
- Composes the DS `Select` component from Chakra's `Select` component.
|
|
21
|
+
- Composes the DS `Hero` component from Chakra's component.
|
|
22
|
+
- Composes the DS `CheckboxGroup` component from Chakra's `CheckboxGroup` component.
|
|
23
|
+
- Composes the DS "Template" components (`Template`, `TemplateHeader`, `TemplateBreakout`, `TemplateContent`, `TemplateContentPrimary`, `TemplateContentSidebar`, `TemplateFooter`) from Chakra's `Box` component for page layouts through children components.
|
|
24
|
+
- Composes the DS `TemplateAppContainer` component from Chakra's `Box` component for page layouts through props.
|
|
25
|
+
- Composes the DS `Link` component with Chakra component and fixes the `Button` type.
|
|
26
|
+
- Exports Chakra's `Grid` and `GridItem` components.
|
|
27
|
+
- Composes the DS `Label` component with Chakra component and updates the font size.
|
|
28
|
+
- Composes the DS `StatusBadge` component from Chakra's component.
|
|
29
|
+
- Composes the DS `Forms` component using DS and Chakra components.
|
|
30
|
+
- Composes the DS `Icon` component with Chakra's `Icon` component. Added new props for `Icon` sizing, alignment, name, and rotation.
|
|
31
|
+
- Composes the DS `SearchBar` component from DS `Select`, `TextInput`, `Button`, and `HelperErrorText` components.
|
|
32
|
+
- Composes the DS `Breadcrumbs` component from Chakra's `Breadcumb`, `BreadcrumbItem` and `BreadcrumbLink` components.
|
|
33
|
+
|
|
34
|
+
### Changes
|
|
35
|
+
|
|
36
|
+
- Updates spacing values to use NYPL spacing rather than "em"s.
|
|
37
|
+
- Updates the `SkeletonLoaderLayouts` enum values from `Horizontal` and `Vertical` to `Row` and `Column`, respectively.
|
|
38
|
+
- Updates the `CardLayouts` enum values from `Horizontal` and `Vertical` to `Row` and `Column`, respectively.
|
|
39
|
+
- Updates font size of the `legend` element used in `CheckboxGroup`, `DatePicker` and `RadioGroup`.
|
|
40
|
+
|
|
41
|
+
## 0.25.0
|
|
42
|
+
|
|
43
|
+
### Breaking Changes
|
|
44
|
+
|
|
45
|
+
- Renames `HeadingDisplaySizes.tsx` to `HeadingTypes.tsx`.
|
|
46
|
+
|
|
47
|
+
### Adds
|
|
48
|
+
|
|
49
|
+
- Integrates Chakra-UI into the codebase.
|
|
50
|
+
- Moved SCSS and CSS variable styles into a custom NYPL theme to extend Chakra's base theme.
|
|
51
|
+
- Adds `DSProvider` component to use the NYPL theme in consuming applications.
|
|
52
|
+
- Exports Chakra's `Box`, `Center`, `Circle`, `Square`, `Stack`, `HStack`, and `VStack` components.
|
|
53
|
+
- Composes the DS `Button` component from Chakra's `Button` component.
|
|
54
|
+
- Composes the DS `Heading` component from Chakra's `Heading` component.
|
|
55
|
+
- Composes the DS `Tabs` component from Chakra's `Tabs`, `TabList`, `Tab`, `TabPanels`, and `TabPanel` components.
|
|
56
|
+
- Composes the DS `Radio` component from Chakra's `Radio` component.
|
|
57
|
+
- Composes the DS `RadioGroup` component from Chakra's `RadioGroup` component.
|
|
58
|
+
- Composes the DS `Checkbox` component from Chakra's `Checkbox` component.
|
|
59
|
+
- Updates the `errorText` prop name to `invalidText`.
|
|
60
|
+
|
|
61
|
+
### Removes
|
|
62
|
+
|
|
63
|
+
- Removes the `color-classes` SCSS mixin.
|
|
64
|
+
|
|
65
|
+
### Changes
|
|
66
|
+
|
|
67
|
+
- Updates the development preview URL from the Netlify link to the Tugboat QA link.
|
|
68
|
+
|
|
69
|
+
## 0.24.1
|
|
70
|
+
|
|
71
|
+
### Adds
|
|
72
|
+
|
|
73
|
+
- Adds `FormSpacing` enum to DS exports.
|
|
74
|
+
- Adds `utility_account_filled`, `utility_account_unfilled`, `utility_hamburger` and `utility_search` icons to `Icon` component.
|
|
75
|
+
|
|
76
|
+
### Changes
|
|
77
|
+
|
|
78
|
+
- Updates `General Guidelines` for `Buttons Style Guide`.
|
|
79
|
+
|
|
80
|
+
### Fixes
|
|
81
|
+
|
|
82
|
+
- Fixes left padding on `Card` when `imageAtEnd` and `border` are both `true`.
|
|
83
|
+
|
|
84
|
+
## 0.24.0
|
|
85
|
+
|
|
86
|
+
### Breaking Changes
|
|
87
|
+
|
|
88
|
+
- Renames original `Card` components to be `CardEdition`.
|
|
89
|
+
|
|
90
|
+
### Adds
|
|
91
|
+
|
|
92
|
+
- Adds the `DatePicker` component.
|
|
93
|
+
- Adds new `Card` component.
|
|
94
|
+
- Adds `spacing` prop to `Form` component to allow for spacing variations.
|
|
95
|
+
- Adds Style Guide `Forms`
|
|
96
|
+
|
|
97
|
+
### Changes
|
|
98
|
+
|
|
99
|
+
- Exports `VideoPlayerAspectRatios`.
|
|
100
|
+
- Adds additional props for the `DatePicker` component based on its TAD Addendum section.
|
|
101
|
+
- Adds Tugboat QA configuration for PR preview deployments to replace Netlify.
|
|
102
|
+
- Updates the `DatePicker`, `TextInput`, `Select`, and `Label` components to pass an optional `showOptReqLabel` prop to conditionally render "Required"/"Optional" in the label text.
|
|
103
|
+
|
|
104
|
+
### Fixes
|
|
105
|
+
|
|
106
|
+
- Fixes Accordion FAQ Storybook example rendering bug.
|
|
107
|
+
|
|
11
108
|
## 0.23.4
|
|
12
109
|
|
|
13
110
|
### Adds
|
|
@@ -132,7 +229,7 @@ Currently, this repo is in Prerelease. When it is released, this project will ad
|
|
|
132
229
|
- Removes `--ui-success` CSS variable and adds `--ui-success-primary` and `--ui-success-secondary`
|
|
133
230
|
- Removes `checkboxId` prop from `Checkbox` component and employs `id` in its place.
|
|
134
231
|
- Removes `defaultChecked` prop from `Checkbox` component.
|
|
135
|
-
- Removed `labelOptions`
|
|
232
|
+
- Removed `labelOptions` prop from `Checkbox` component and employs `labelText` in its place.
|
|
136
233
|
|
|
137
234
|
### Changes
|
|
138
235
|
|
package/README.md
CHANGED
|
@@ -9,18 +9,19 @@ The NYPL Design System (DS) is NYPL’s open-source extensible React library for
|
|
|
9
9
|
Storybook documentation
|
|
10
10
|
|
|
11
11
|
- [Production - deployed to Github Pages](https://nypl.github.io/nypl-design-system/storybook-static/?path=/story/introduction--page)
|
|
12
|
-
- [Development - deployed to
|
|
12
|
+
- [Development - deployed to Tugboat QA](https://development-6y1v6na1ceqnmojvc5akrm5ewys3cshs.tugboat.qa/?path=/story/introduction--page)
|
|
13
13
|
|
|
14
14
|
| Table of Contents | |
|
|
15
15
|
| ----------------- | ----------------------------------------------------------------------------------- |
|
|
16
16
|
| 1. | [Contributing Quickstart](#contributing-quickstart) |
|
|
17
17
|
| 2. | [Developing with NPM Link](#developing-with-npm-link) |
|
|
18
18
|
| 3. | [Using the Design System in Your Product](#using-the-design-system-in-your-product) |
|
|
19
|
-
| 4. | [
|
|
20
|
-
| 5. | [
|
|
21
|
-
| 6. | [
|
|
22
|
-
| 7. | [
|
|
23
|
-
| 8. | [
|
|
19
|
+
| 4. | [Using Chakra UI Components](#using-chakra-ui-components) |
|
|
20
|
+
| 5. | [CDN](#cdn) |
|
|
21
|
+
| 6. | [Accessibility Product Requirements](#accessibility-product-requirements) |
|
|
22
|
+
| 7. | [Storybook](#storybook) |
|
|
23
|
+
| 8. | [Typescript Usage](#typescript-usage) |
|
|
24
|
+
| 9. | [Unit Testing](#unit-testing) |
|
|
24
25
|
|
|
25
26
|
## Contributing Quickstart
|
|
26
27
|
|
|
@@ -142,6 +143,30 @@ Some CSS rules in the Design System, such as the universal focus styling and the
|
|
|
142
143
|
</div>
|
|
143
144
|
```
|
|
144
145
|
|
|
146
|
+
4. Import the `DSProvider` component
|
|
147
|
+
|
|
148
|
+
While the Chakra UI integration into the DS is a work-in-progress, there is one necessary step consuming applications need to take for component styles to properly render. In order render styles properly, consuming applications need to wrap all the DS components with a simple provider component. Fortunately, this only needs to be done once at the top level of the consuming application.
|
|
149
|
+
|
|
150
|
+
Once the following is completed, DS components that internally use Chakra UI will render styles properly.
|
|
151
|
+
|
|
152
|
+
```jsx
|
|
153
|
+
// your main application file
|
|
154
|
+
import { DSProvider } from "@nypl/design-system-react-components";
|
|
155
|
+
|
|
156
|
+
// ...
|
|
157
|
+
const ApplicationContainer = (props) => {
|
|
158
|
+
// ...
|
|
159
|
+
return (
|
|
160
|
+
<DSProvider>
|
|
161
|
+
<div className="my-app nypl-ds">
|
|
162
|
+
// ...
|
|
163
|
+
{children}
|
|
164
|
+
</div>
|
|
165
|
+
</DSProvider>
|
|
166
|
+
);
|
|
167
|
+
};
|
|
168
|
+
```
|
|
169
|
+
|
|
145
170
|
### NYPL DS, NYPL Header, and NYPL Footer
|
|
146
171
|
|
|
147
172
|
Please note that the NYPL Header and Footer should be _outside_ of the `.nypl-ds` wrapper class.
|
|
@@ -158,6 +183,16 @@ Please note that the NYPL Header and Footer should be _outside_ of the `.nypl-ds
|
|
|
158
183
|
</body>
|
|
159
184
|
```
|
|
160
185
|
|
|
186
|
+
## Using Chakra UI Components
|
|
187
|
+
|
|
188
|
+
The Chakra UI component library is integrated into the NYPL Design System and is currently a work-in-progress. We
|
|
189
|
+
are in the middle of the process of using Chakra components and patterns to build DS components, and therefore documentation and features are expected to change. While the implementation details of DS components will use Chakra, the DS package itself will export _some_ Chakra components.
|
|
190
|
+
|
|
191
|
+
The list of re-exported Chakra components can be found in the main
|
|
192
|
+
[index.ts](/index.ts) file.
|
|
193
|
+
|
|
194
|
+
Find more information about the Design System's use of [Chakra](/src/docs/Chakra.stories.mdx).
|
|
195
|
+
|
|
161
196
|
## CDN
|
|
162
197
|
|
|
163
198
|
You can also use the Design System styles in your project through the `unpkg` CDN:
|
|
@@ -182,7 +217,7 @@ NYPL's Metronome instance is currently password protected. For access to Metrono
|
|
|
182
217
|
|
|
183
218
|
## Storybook
|
|
184
219
|
|
|
185
|
-
The NYPL Design System leverages Storybook to document all the React components and style guidelines.
|
|
220
|
+
The NYPL Design System leverages Storybook to document all the React components and style guidelines. The Storybook documentation can be found [here](https://nypl.github.io/nypl-design-system/storybook-static/?path=/story/introduction--page). For your convenience, the NYPL Design System components have been organized into logical categories based on both form and function. Please refer to the COMPONENTS section in the Storybook sidebar.
|
|
186
221
|
|
|
187
222
|
### Documentation Instances
|
|
188
223
|
|
|
@@ -196,11 +231,11 @@ As of July, 2021, the Github Pages production site gets deployed every two weeks
|
|
|
196
231
|
|
|
197
232
|
**Development**
|
|
198
233
|
|
|
199
|
-
The development Storybook documentation is deployed to [
|
|
234
|
+
The development Storybook documentation is deployed to [Tugboat QA](https://development-6y1v6na1ceqnmojvc5akrm5ewys3cshs.tugboat.qa/?path=/story/introduction--page). This development site has all the working updates that get merged to the `development` branch. This means that this site is constantly being updated as pull requests are being merged in. This site is used to see the lastest changes during a working sprint before a production release is made.
|
|
200
235
|
|
|
201
236
|
**Preview Sites**
|
|
202
237
|
|
|
203
|
-
Preview Storybook documentation sites are deployed to
|
|
238
|
+
Preview Storybook documentation sites are deployed to Tugboat QA for every pull request. They follow a pattern such as `pr[number]-[hash].tugboat.qa` where `[number]` is the number of the pull request it is deploying. For example, for pull request #101, Tugboat will deploy a "preview" site to `pr101-wldudndlk24kas42.tugboat.qa`. Since these "preview" sites are brought up only for pull requests, this means that the URL varies and that those instances are eventually shut off. They are not meant to be used as long-term sites but rather for reviewing working changes within the team.
|
|
204
239
|
|
|
205
240
|
### React Component Documentation
|
|
206
241
|
|
|
@@ -237,7 +272,7 @@ You can then view `/storybook-static/index.html` in your browser. _Make sure not
|
|
|
237
272
|
|
|
238
273
|
## Typescript Usage
|
|
239
274
|
|
|
240
|
-
The NYPL Design System is built with Typescript. Check out the Design System's [Typescript documentation](/
|
|
275
|
+
The NYPL Design System is built with Typescript. Check out the Design System's [Typescript documentation](/TYPESCRIPT.md) for more information on why we chose to build React components in Typescript and the benefits and the gotchas we encountered.
|
|
241
276
|
|
|
242
277
|
## Unit Testing
|
|
243
278
|
|
|
@@ -309,7 +344,7 @@ Now, if we unintentionally update the `Notification.tsx` component to render a `
|
|
|
309
344
|
If you want to update any existing snapshots, re-run the test script as:
|
|
310
345
|
|
|
311
346
|
```sh
|
|
312
|
-
$ npm test -- updateSnapshot
|
|
347
|
+
$ npm test -- --updateSnapshot
|
|
313
348
|
```
|
|
314
349
|
|
|
315
350
|
Each snapshot file also includes a link to its [Jest Snapshot documentation](https://jestjs.io/docs/snapshot-testing) which is recommended to read!
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
export interface AccordionContentDataProps {
|
|
3
|
+
label: string;
|
|
4
|
+
panel: string | React.ReactNode;
|
|
5
|
+
}
|
|
2
6
|
export interface AccordionProps {
|
|
3
|
-
/**
|
|
4
|
-
|
|
5
|
-
/** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
|
|
6
|
-
blockName?: string;
|
|
7
|
-
/** className you can add in addition to 'input' */
|
|
8
|
-
className?: string;
|
|
9
|
-
/** Whether the accordion is open by default */
|
|
10
|
-
defaultOpen?: boolean;
|
|
7
|
+
/** Array of data to display */
|
|
8
|
+
contentData: AccordionContentDataProps[];
|
|
11
9
|
/** ID that other components can cross reference for accessibility purposes */
|
|
12
10
|
id?: string;
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
/** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
|
|
16
|
-
modifiers?: string[];
|
|
11
|
+
/** Whether the accordion is open by default only on its initial rendering */
|
|
12
|
+
isDefaultOpen?: boolean;
|
|
17
13
|
}
|
|
18
|
-
/**
|
|
19
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Accordion component that shows content on toggle. Can be used to display
|
|
16
|
+
* multiple accordion items together.
|
|
17
|
+
*/
|
|
18
|
+
declare function Accordion(props: React.PropsWithChildren<AccordionProps>): JSX.Element;
|
|
19
|
+
export default Accordion;
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
2
|
+
import { ColorVariants } from "./BreadcrumbsTypes";
|
|
3
|
+
export interface BreadcrumbsDataProps {
|
|
3
4
|
url: string;
|
|
4
|
-
text: string;
|
|
5
|
-
}
|
|
5
|
+
text: string | React.ReactNode;
|
|
6
|
+
}
|
|
6
7
|
export interface BreadcrumbProps {
|
|
7
|
-
/** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
|
|
8
|
-
blockName?: string;
|
|
9
8
|
/** Breadcrumb links as an array */
|
|
10
|
-
|
|
9
|
+
breadcrumbsData: BreadcrumbsDataProps[];
|
|
11
10
|
/** className you can add in addition to 'input' */
|
|
12
11
|
className?: string;
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
static defaultProps: {};
|
|
18
|
-
constructor(props: BreadcrumbProps);
|
|
19
|
-
render(): JSX.Element;
|
|
12
|
+
/** ID that other components can cross reference for accessibility purposes */
|
|
13
|
+
id?: string;
|
|
14
|
+
/** Used to control how the `Hero` component will be rendered. */
|
|
15
|
+
colorVariant?: ColorVariants;
|
|
20
16
|
}
|
|
21
|
-
|
|
17
|
+
declare function Breadcrumbs(props: React.PropsWithChildren<BreadcrumbProps>): JSX.Element;
|
|
18
|
+
export default Breadcrumbs;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { ButtonGroup } from "@chakra-ui/react";
|
|
2
3
|
import { ButtonTypes } from "./ButtonTypes";
|
|
4
|
+
declare type ButtonElementType = "submit" | "button" | "reset";
|
|
3
5
|
interface ButtonProps {
|
|
4
6
|
/** Additional attributes passed to the button */
|
|
5
7
|
attributes?: {
|
|
6
8
|
[key: string]: any;
|
|
7
9
|
};
|
|
8
|
-
/** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
|
|
9
|
-
blockName?: string;
|
|
10
10
|
/** The kind of button assigned through the `ButtonTypes` enum */
|
|
11
11
|
buttonType?: ButtonTypes;
|
|
12
12
|
/** Additional className for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
|
|
@@ -15,21 +15,14 @@ interface ButtonProps {
|
|
|
15
15
|
disabled?: boolean;
|
|
16
16
|
/** ID that other components can cross reference for accessibility purposes */
|
|
17
17
|
id?: string;
|
|
18
|
-
/** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
|
|
19
|
-
modifiers?: string[];
|
|
20
18
|
/** Trigger the Button's action through the `mouseDown` event handler instead of `onClick`. `false` by default. */
|
|
21
19
|
mouseDown?: boolean;
|
|
22
20
|
/** The action to perform on the `<button>`'s onClick function */
|
|
23
21
|
onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;
|
|
24
22
|
/** The html button attribute */
|
|
25
|
-
type?:
|
|
23
|
+
type?: ButtonElementType;
|
|
26
24
|
}
|
|
27
25
|
/** Renders a simple `button` element with custom classes and modifiers. */
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
};
|
|
32
|
-
constructor(props: ButtonProps);
|
|
33
|
-
render(): JSX.Element;
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
26
|
+
declare function Button(props: React.PropsWithChildren<ButtonProps>): JSX.Element;
|
|
27
|
+
export { ButtonGroup };
|
|
28
|
+
export default Button;
|
|
@@ -1,21 +1,70 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { CardImageRatios, CardImageSizes, CardLayouts } from "./CardTypes";
|
|
3
|
+
interface CardImageProps {
|
|
4
|
+
/** Text description of the image */
|
|
5
|
+
alt: string;
|
|
6
|
+
/** Custom image component used in place of DS `Image` component */
|
|
7
|
+
component?: React.ReactNode;
|
|
8
|
+
/** ClassName you can add in addition to 'image' */
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Optional value to control the aspect ratio of the cartd image; default value is `square` */
|
|
11
|
+
imageAspectRatio?: CardImageRatios;
|
|
12
|
+
/** Optional value to control the size of the card image */
|
|
13
|
+
imageSize?: CardImageSizes;
|
|
14
|
+
/** The src attribute is required, and contains the path to the image you want to embed. */
|
|
15
|
+
src: string;
|
|
16
|
+
}
|
|
17
|
+
interface CardContentProps {
|
|
18
|
+
/** Optional className that would be applied to the `card-content` element */
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
interface CardActionsProps {
|
|
22
|
+
/** Optional boolean value to control visibility of border on the bottom edge of the card actions element */
|
|
23
|
+
bottomBorder?: boolean;
|
|
24
|
+
/** Optional className that would be applied to the `card-actions` element */
|
|
4
25
|
className?: string;
|
|
26
|
+
/** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
|
|
27
|
+
modifiers?: string[];
|
|
28
|
+
/** Optional boolean value to control visibility of border on the top edge of the card actions element */
|
|
29
|
+
topBorder?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface CardProps {
|
|
32
|
+
/** Optional hex color value used to set the card background color */
|
|
33
|
+
backgroundColor?: string;
|
|
5
34
|
/** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
|
|
6
35
|
blockName?: string;
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
|
|
36
|
+
/** Optional boolean value to control the visibility of a border around the card */
|
|
37
|
+
border?: boolean;
|
|
38
|
+
/** Optional boolean value to control the alignment of the text and elements within the card */
|
|
39
|
+
center?: boolean;
|
|
40
|
+
/** ClassName that appears in addition to "card" */
|
|
41
|
+
className?: string;
|
|
42
|
+
/** Optional hex color value used to override the default text color */
|
|
43
|
+
foregroundColor?: string;
|
|
13
44
|
/** ID that other components can cross reference for accessibility purposes */
|
|
14
45
|
id?: string;
|
|
15
|
-
/**
|
|
16
|
-
|
|
46
|
+
/** Text description of the image; to follow best practices for accessibility, this prop should not be left blank if `imageSrc` is passed */
|
|
47
|
+
imageAlt?: string;
|
|
48
|
+
/** Optional value to control the aspect ratio of the card image; default value is `square` */
|
|
49
|
+
imageAspectRatio?: CardImageRatios;
|
|
50
|
+
/** Optional boolean value to control the position of the card image */
|
|
51
|
+
imageAtEnd?: boolean;
|
|
52
|
+
/** Custom image component used in place of DS `Image` component */
|
|
53
|
+
imageComponent?: React.ReactNode;
|
|
54
|
+
/** Optional value to control the size of the card image */
|
|
55
|
+
imageSize?: CardImageSizes;
|
|
56
|
+
/** The path to the image displayed with the card */
|
|
57
|
+
imageSrc?: string;
|
|
58
|
+
/** Optional value to control the position of the image placeholder; default value is `column` */
|
|
59
|
+
layout?: CardLayouts;
|
|
17
60
|
/** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
|
|
18
61
|
modifiers?: string[];
|
|
62
|
+
/** Optional padding value. This value should be entered with the same formatting as a CSS padding attribute (ex. `5%`, `20px`, `2rem`). If omitted, the Card will use the default padding. */
|
|
63
|
+
padding?: string;
|
|
19
64
|
}
|
|
65
|
+
export declare function CardImage(props: React.PropsWithChildren<CardImageProps>): JSX.Element;
|
|
66
|
+
export declare const CardHeading: (props: any) => JSX.Element;
|
|
67
|
+
export declare function CardContent(props: React.PropsWithChildren<CardContentProps>): JSX.Element;
|
|
68
|
+
export declare function CardActions(props: React.PropsWithChildren<CardActionsProps>): JSX.Element;
|
|
20
69
|
export default function Card(props: React.PropsWithChildren<CardProps>): JSX.Element;
|
|
21
70
|
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare enum CardLayouts {
|
|
2
|
+
Row = "row",
|
|
3
|
+
Column = "column"
|
|
4
|
+
}
|
|
5
|
+
export declare enum CardImageRatios {
|
|
6
|
+
FourByThree = "four-by-three",
|
|
7
|
+
OneByTwo = "one-by-two",
|
|
8
|
+
Original = "original",
|
|
9
|
+
SixteenByNine = "sixteen-by-nine",
|
|
10
|
+
Square = "square",
|
|
11
|
+
ThreeByFour = "three-by-four",
|
|
12
|
+
ThreeByTwo = "three-by-two",
|
|
13
|
+
TwoByOne = "two-by-one"
|
|
14
|
+
}
|
|
15
|
+
export declare enum CardImageSizes {
|
|
16
|
+
Large = "large",
|
|
17
|
+
Medium = "medium",
|
|
18
|
+
Small = "small"
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface CardEditionProps {
|
|
3
|
+
/** ClassName that appears in addition to "card" */
|
|
4
|
+
className?: string;
|
|
5
|
+
/** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
|
|
6
|
+
blockName?: string;
|
|
7
|
+
/** Calls to Action for the card, such as "download" on a card for a book */
|
|
8
|
+
ctas?: React.ReactNode;
|
|
9
|
+
/** Footer that appears within the card but below the three columns within it */
|
|
10
|
+
footer?: React.ReactNode;
|
|
11
|
+
/** Heading that appears within the card but above the three columns within it */
|
|
12
|
+
heading?: React.ReactNode;
|
|
13
|
+
/** ID that other components can cross reference for accessibility purposes */
|
|
14
|
+
id?: string;
|
|
15
|
+
/** First column within the card */
|
|
16
|
+
image?: React.ReactNode;
|
|
17
|
+
/** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
|
|
18
|
+
modifiers?: string[];
|
|
19
|
+
}
|
|
20
|
+
export default function CardEdition(props: React.PropsWithChildren<CardEditionProps>): JSX.Element;
|
|
21
|
+
export {};
|
package/dist/components/{StyleGuide/Colors.stories.d.ts → CardEdition/CardEdition.stories.d.ts}
RENAMED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import CardEdition from "./CardEdition";
|
|
1
3
|
declare const _default: {
|
|
2
4
|
title: any;
|
|
5
|
+
component: typeof CardEdition;
|
|
3
6
|
};
|
|
4
7
|
export default _default;
|
|
5
|
-
export declare const
|
|
8
|
+
export declare const cardEdition: {
|
|
6
9
|
(): JSX.Element;
|
|
7
10
|
storyName: string;
|
|
8
11
|
parameters: {
|
|
@@ -12,7 +15,7 @@ export declare const colorsBrand: {
|
|
|
12
15
|
};
|
|
13
16
|
};
|
|
14
17
|
};
|
|
15
|
-
export declare const
|
|
18
|
+
export declare const ExampleCardEdition: {
|
|
16
19
|
(): JSX.Element;
|
|
17
20
|
storyName: string;
|
|
18
21
|
parameters: {
|
|
@@ -1,33 +1,38 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
export interface CheckboxProps {
|
|
3
|
-
/** The checkbox's label. This will serve as the text content for a `<label>` element if `showlabel` is true, or an "aria-label" if `showLabel` is false. */
|
|
4
|
-
labelText: string;
|
|
5
|
-
/** Additional attributes to pass to the `<input>` tag */
|
|
6
|
-
attributes?: {
|
|
7
|
-
[key: string]: any;
|
|
8
|
-
};
|
|
9
|
-
/** When using the Checkbox as a "controlled" form element, you can specify the Checkbox's checked state using this prop. Learn more about controlled and uncontrolled form fields: https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/ */
|
|
10
|
-
checked?: boolean;
|
|
11
3
|
/** className you can add in addition to 'input' */
|
|
12
4
|
className?: string;
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
errored?: boolean;
|
|
17
|
-
/** Optional string to populate the HelperErrorText for error state */
|
|
5
|
+
/** Optional string to populate the HelperErrorText for the error state
|
|
6
|
+
* when `isInvalid` is true.
|
|
7
|
+
*/
|
|
18
8
|
errorText?: string;
|
|
19
9
|
/** Optional string to populate the HelperErrorText for standard state */
|
|
20
10
|
helperText?: string;
|
|
21
11
|
/** ID that other components can cross reference for accessibility purposes */
|
|
22
12
|
id?: string;
|
|
23
|
-
/**
|
|
24
|
-
|
|
13
|
+
/** When using the Checkbox as a "controlled" form element, you can specify the
|
|
14
|
+
* Checkbox's checked state using this prop.
|
|
15
|
+
* Learn more about controlled and uncontrolled form fields:
|
|
16
|
+
* https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/ */
|
|
17
|
+
isChecked?: boolean;
|
|
18
|
+
/** Adds the 'disabled' and `aria-disabled` attributes to the input when true.
|
|
19
|
+
* This also makes the text italic and color scheme gray.
|
|
20
|
+
*/
|
|
21
|
+
isDisabled?: boolean;
|
|
22
|
+
/** Adds the 'aria-invalid' attribute to the input when true. This also makes
|
|
23
|
+
* the color theme "NYPL error" red for the button and text.
|
|
24
|
+
*/
|
|
25
|
+
isInvalid?: boolean;
|
|
26
|
+
/** Adds the 'required' attribute to the input when true. */
|
|
27
|
+
isRequired?: boolean;
|
|
28
|
+
/** The checkbox's label. This will serve as the text content for a `<label>` element if `showlabel` is true, or an "aria-label" if `showLabel` is false. */
|
|
29
|
+
labelText: string;
|
|
25
30
|
/** The name prop indicates into which group of checkboxes this checkbox belongs. If none is specified, 'default' will be used */
|
|
26
31
|
name?: string;
|
|
27
32
|
/** The action to perform on the `<input>`'s onChange function */
|
|
28
33
|
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
29
34
|
/** Offers the ability to show the checkbox's label onscreen or hide it. Refer to the `labelText` property for more information. */
|
|
30
|
-
showLabel
|
|
35
|
+
showLabel?: boolean;
|
|
31
36
|
/** Populates the value of the input */
|
|
32
37
|
value?: string;
|
|
33
38
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { CheckboxGroupLayoutTypes } from "./CheckboxGroupLayoutTypes";
|
|
3
|
+
export interface CheckboxGroupProps {
|
|
4
|
+
/** Any child node passed to the component. */
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
/** Populates the initial value of the input */
|
|
7
|
+
defaultValue?: string[];
|
|
8
|
+
/** Optional string to populate the HelperErrorText for error state */
|
|
9
|
+
invalidText?: string;
|
|
10
|
+
/** Optional string to populate the HelperErrorText for standard state */
|
|
11
|
+
helperText?: string;
|
|
12
|
+
/** ID that other components can cross reference for accessibility purposes */
|
|
13
|
+
id?: string;
|
|
14
|
+
/** Adds the 'disabled' prop to the input when true. */
|
|
15
|
+
isDisabled?: boolean;
|
|
16
|
+
/** A`dds the 'aria-invalid' attribute to the input and
|
|
17
|
+
* sets the error state when true. */
|
|
18
|
+
isInvalid?: boolean;
|
|
19
|
+
/** Adds the 'required' attribute to the input when true. */
|
|
20
|
+
isRequired?: boolean;
|
|
21
|
+
/** The checkbox group label displayed in a `legend` element if `showlabel` is
|
|
22
|
+
* true, or an "aria-label" if `showLabel` is false. */
|
|
23
|
+
labelText: string;
|
|
24
|
+
/** Renders the checkbox buttons in a row or column (default). */
|
|
25
|
+
layout?: CheckboxGroupLayoutTypes;
|
|
26
|
+
/** The `name` prop indicates the form group for all the `Checkbox` children. */
|
|
27
|
+
name: string;
|
|
28
|
+
/** The action to perform on the `<input>`'s onChange function */
|
|
29
|
+
onChange?: (value: string[]) => void;
|
|
30
|
+
/** Whether or not to display "Required"/"Optional" in the label text. */
|
|
31
|
+
optReqFlag?: boolean;
|
|
32
|
+
/** Offers the ability to show the group's legend onscreen or hide it. Refer
|
|
33
|
+
* to the `labelText` property for more information. */
|
|
34
|
+
showLabel?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Wrapper component to wrap `Checkbox` components. Can be displayed in a
|
|
38
|
+
* column or in a row. The `CheckboxGroup` component renders all the necessary
|
|
39
|
+
* wrapping and associated text elements, but the checkbox input elements
|
|
40
|
+
* _need_ to be child `Checkbox` components from the NYPL Design System.
|
|
41
|
+
*/
|
|
42
|
+
declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLInputElement>>;
|
|
43
|
+
export default CheckboxGroup;
|