@nypl/design-system-react-components 0.25.8 → 0.25.11
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 +110 -1
- package/README.md +1 -1
- package/dist/components/Button/Button.d.ts +6 -6
- package/dist/components/Button/ButtonTypes.d.ts +0 -1
- package/dist/components/Card/Card.d.ts +6 -4
- package/dist/components/Checkbox/Checkbox.d.ts +3 -2
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
- package/dist/components/DatePicker/DatePicker.d.ts +4 -3
- package/dist/components/Fieldset/Fieldset.d.ts +1 -3
- package/dist/components/Form/Form.d.ts +15 -14
- package/dist/components/Form/FormTypes.d.ts +2 -2
- package/dist/components/Heading/Heading.d.ts +7 -3
- package/dist/components/Heading/HeadingTypes.d.ts +6 -6
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +3 -3
- package/dist/components/Icons/Icon.d.ts +4 -4
- package/dist/components/Icons/IconSvgs.d.ts +0 -21
- package/dist/components/Icons/IconTypes.d.ts +0 -23
- package/dist/components/Image/Image.d.ts +11 -3
- package/dist/components/List/List.d.ts +1 -1
- package/dist/components/Logo/Logo.d.ts +28 -0
- package/dist/components/Logo/LogoSvgs.d.ts +34 -0
- package/dist/components/Logo/LogoTypes.d.ts +46 -0
- package/dist/components/Modal/Modal.d.ts +0 -4
- package/dist/components/Notification/Notification.d.ts +4 -2
- package/dist/components/Placeholder/Placeholder.d.ts +3 -5
- package/dist/components/Radio/Radio.d.ts +6 -5
- package/dist/components/RadioGroup/RadioGroup.d.ts +6 -5
- package/dist/components/SearchBar/SearchBar.d.ts +15 -7
- package/dist/components/Select/Select.d.ts +7 -2
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
- package/dist/components/Slider/Slider.d.ts +3 -2
- package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
- package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
- package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
- package/dist/components/Table/Table.d.ts +29 -0
- package/dist/components/Template/Template.d.ts +30 -6
- package/dist/components/Text/Text.d.ts +2 -2
- package/dist/components/TextInput/TextInput.d.ts +4 -3
- package/dist/components/Toggle/Toggle.d.ts +3 -2
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +14 -5
- package/dist/design-system-react-components.cjs.development.js +6721 -5777
- 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 +6774 -5839
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/index.d.ts +10 -8
- package/dist/resources.scss +0 -2
- package/dist/styles.css +2 -2
- package/dist/theme/components/breadcrumb.d.ts +1 -1
- package/dist/theme/components/button.d.ts +0 -12
- package/dist/theme/components/card.d.ts +14 -2
- package/dist/theme/components/customTable.d.ts +56 -0
- package/dist/theme/components/fieldset.d.ts +2 -2
- package/dist/theme/components/global.d.ts +1 -1
- package/dist/theme/components/heading.d.ts +4 -0
- package/dist/theme/components/label.d.ts +1 -1
- package/dist/theme/components/link.d.ts +14 -1
- package/dist/theme/components/list.d.ts +0 -2
- package/dist/theme/components/logo.d.ts +4 -0
- package/dist/theme/components/notification.d.ts +13 -4
- package/dist/theme/components/searchBar.d.ts +9 -11
- package/dist/theme/components/select.d.ts +1 -0
- package/dist/theme/components/structuredContent.d.ts +33 -0
- package/dist/theme/components/template.d.ts +10 -10
- package/dist/theme/components/textInput.d.ts +4 -0
- package/dist/theme/components/toggle.d.ts +8 -5
- package/dist/utils/utils.d.ts +10 -0
- package/package.json +40 -37
- package/src/__tests__/utils/utils.test.ts +23 -1
- package/src/components/Accordion/Accordion.stories.mdx +15 -13
- package/src/components/Accordion/Accordion.test.tsx +45 -1
- package/src/components/Accordion/Accordion.tsx +20 -8
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +243 -0
- package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
- package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
- package/src/components/Autosuggest/_Autosuggest.scss +2 -6
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +43 -13
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +15 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +9 -3
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +5 -5
- package/src/components/Button/Button.stories.mdx +93 -48
- package/src/components/Button/Button.test.tsx +0 -12
- package/src/components/Button/Button.tsx +7 -7
- package/src/components/Button/ButtonTypes.tsx +0 -1
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
- package/src/components/Card/Card.stories.mdx +186 -71
- package/src/components/Card/Card.test.tsx +45 -22
- package/src/components/Card/Card.tsx +21 -6
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +9 -3
- package/src/components/Chakra/Box.stories.mdx +3 -3
- package/src/components/Chakra/Center.stories.mdx +5 -5
- package/src/components/Chakra/Flex.stories.mdx +113 -0
- package/src/components/Chakra/Grid.stories.mdx +3 -3
- package/src/components/Chakra/Stack.stories.mdx +2 -2
- package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
- package/src/components/Checkbox/Checkbox.tsx +13 -8
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
- package/src/components/DatePicker/DatePicker.test.tsx +6 -6
- package/src/components/DatePicker/DatePicker.tsx +17 -11
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +50 -24
- package/src/components/Fieldset/Fieldset.stories.mdx +20 -9
- package/src/components/Fieldset/Fieldset.tsx +2 -4
- package/src/components/Form/Form.stories.mdx +75 -49
- package/src/components/Form/Form.test.tsx +92 -3
- package/src/components/Form/Form.tsx +28 -23
- package/src/components/Form/FormTypes.tsx +2 -2
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -1
- package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
- package/src/components/Heading/Heading.stories.mdx +59 -23
- package/src/components/Heading/Heading.test.tsx +82 -18
- package/src/components/Heading/Heading.tsx +31 -31
- package/src/components/Heading/HeadingTypes.tsx +6 -6
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
- package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
- package/src/components/Hero/Hero.stories.mdx +72 -53
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +11 -9
- package/src/components/HorizontalRule/HorizontalRule.tsx +4 -6
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +4 -4
- package/src/components/Icons/Icon.stories.mdx +78 -77
- package/src/components/Icons/Icon.test.tsx +1 -1
- package/src/components/Icons/Icon.tsx +5 -6
- package/src/components/Icons/IconSvgs.tsx +0 -42
- package/src/components/Icons/IconTypes.tsx +0 -24
- package/src/components/Image/Image.stories.mdx +66 -18
- package/src/components/Image/Image.tsx +21 -10
- package/src/components/Label/Label.stories.mdx +20 -19
- package/src/components/Link/Link.stories.mdx +102 -51
- package/src/components/Link/Link.test.tsx +38 -8
- package/src/components/Link/Link.tsx +19 -12
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +60 -0
- package/src/components/List/List.stories.mdx +60 -29
- package/src/components/List/List.test.tsx +1 -1
- package/src/components/List/List.tsx +2 -2
- package/src/components/List/__snapshots__/List.test.tsx.snap +3 -1
- package/src/components/Logo/Logo.stories.mdx +222 -0
- package/src/components/Logo/Logo.test.tsx +98 -0
- package/src/components/Logo/Logo.tsx +97 -0
- package/src/components/Logo/LogoSvgs.tsx +66 -0
- package/src/components/Logo/LogoTypes.tsx +48 -0
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
- package/src/components/Modal/Modal.stories.mdx +20 -5
- package/src/components/Modal/Modal.tsx +2 -8
- package/src/components/Notification/Notification.stories.mdx +128 -38
- package/src/components/Notification/Notification.test.tsx +49 -1
- package/src/components/Notification/Notification.tsx +25 -12
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +4 -0
- package/src/components/Pagination/Pagination.stories.mdx +18 -7
- package/src/components/Pagination/Pagination.tsx +3 -3
- package/src/components/Placeholder/Placeholder.tsx +7 -14
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +72 -43
- package/src/components/Radio/Radio.stories.mdx +39 -19
- package/src/components/Radio/Radio.tsx +13 -9
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +5 -5
- package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
- package/src/components/RadioGroup/RadioGroup.test.tsx +13 -11
- package/src/components/RadioGroup/RadioGroup.tsx +97 -94
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +24 -21
- package/src/components/SearchBar/SearchBar.Test.tsx +160 -34
- package/src/components/SearchBar/SearchBar.stories.mdx +115 -33
- package/src/components/SearchBar/SearchBar.tsx +72 -51
- package/src/components/Select/Select.stories.mdx +48 -14
- package/src/components/Select/Select.test.tsx +89 -0
- package/src/components/Select/Select.tsx +27 -12
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +545 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
- package/src/components/Slider/Slider.stories.mdx +72 -22
- package/src/components/Slider/Slider.tsx +15 -10
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +67 -30
- package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
- package/src/components/StatusBadge/StatusBadge.tsx +2 -1
- package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
- package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
- package/src/components/StructuredContent/StructuredContent.tsx +153 -0
- package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
- package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
- package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
- package/src/components/StyleGuide/ColorCard.tsx +1 -2
- package/src/components/StyleGuide/Colors.stories.mdx +3 -11
- package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
- package/src/components/StyleGuide/Forms.stories.mdx +2 -10
- package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
- package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
- package/src/components/StyleGuide/Typography.stories.mdx +64 -76
- package/src/components/Table/Table.stories.mdx +165 -0
- package/src/components/Table/Table.test.tsx +137 -0
- package/src/components/Table/Table.tsx +126 -0
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +1179 -0
- package/src/components/Tabs/Tabs.stories.mdx +20 -14
- package/src/components/Tabs/Tabs.test.tsx +21 -5
- package/src/components/Tabs/Tabs.tsx +35 -20
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +195 -0
- package/src/components/Template/Template.stories.mdx +132 -48
- package/src/components/Template/Template.test.tsx +128 -6
- package/src/components/Template/Template.tsx +93 -13
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +169 -0
- package/src/components/Text/Text.stories.mdx +33 -11
- package/src/components/Text/Text.tsx +2 -2
- package/src/components/TextInput/TextInput.stories.mdx +84 -17
- package/src/components/TextInput/TextInput.test.tsx +96 -0
- package/src/components/TextInput/TextInput.tsx +12 -8
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
- package/src/components/Toggle/Toggle.stories.mdx +33 -9
- package/src/components/Toggle/Toggle.tsx +14 -9
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +4 -4
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +64 -14
- package/src/components/VideoPlayer/VideoPlayer.tsx +17 -7
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +12 -6
- package/src/docs/Chakra.stories.mdx +5 -8
- package/src/docs/Intro.stories.mdx +2 -2
- package/src/index.ts +13 -6
- package/src/styles/base/_03-base.scss +1 -1
- package/src/styles/base/_place-holder.scss +7 -7
- package/src/styles.scss +1 -5
- package/src/theme/components/breadcrumb.ts +4 -4
- package/src/theme/components/button.ts +5 -12
- package/src/theme/components/card.ts +5 -2
- package/src/theme/components/checkbox.ts +1 -1
- package/src/theme/components/customTable.ts +63 -0
- package/src/theme/components/datePicker.ts +1 -1
- package/src/theme/components/global.ts +7 -7
- package/src/theme/components/heading.ts +13 -11
- package/src/theme/components/helperErrorText.ts +1 -1
- package/src/theme/components/image.ts +1 -1
- package/src/theme/components/link.ts +17 -5
- package/src/theme/components/list.ts +3 -5
- package/src/theme/components/logo.ts +54 -0
- package/src/theme/components/notification.ts +19 -9
- package/src/theme/components/searchBar.ts +11 -13
- package/src/theme/components/select.ts +1 -0
- package/src/theme/components/statusBadge.ts +1 -1
- package/src/theme/components/structuredContent.ts +74 -0
- package/src/theme/components/template.ts +10 -10
- package/src/theme/components/text.ts +6 -6
- package/src/theme/components/textInput.ts +2 -0
- package/src/theme/components/toggle.ts +10 -6
- package/src/theme/components/videoPlayer.ts +0 -2
- package/src/theme/foundations/global.ts +2 -2
- package/src/theme/foundations/typography.ts +84 -12
- package/src/theme/index.ts +6 -0
- package/src/utils/componentCategories.ts +2 -1
- package/src/utils/utils.ts +17 -0
- package/dist/__tests__/utils/bem.test.d.ts +0 -1
- package/dist/components/CardEdition/CardEdition.d.ts +0 -21
- package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
- package/dist/components/Input/Input.d.ts +0 -36
- package/dist/components/Input/Input.stories.d.ts +0 -29
- package/dist/components/Input/InputTypes.d.ts +0 -6
- package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
- package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
- package/dist/helpers/getCSSVariable.d.ts +0 -1
- package/dist/interfaces.d.ts +0 -3
- package/dist/utils/bem.d.ts +0 -1
- package/src/__tests__/utils/bem.test.ts +0 -37
- package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
- package/src/components/CardEdition/CardEdition.test.tsx +0 -395
- package/src/components/CardEdition/CardEdition.tsx +0 -60
- package/src/components/CardEdition/_CardEdition.scss +0 -137
- package/src/components/Input/Input.stories.tsx +0 -133
- package/src/components/Input/Input.test.tsx +0 -266
- package/src/components/Input/Input.tsx +0 -81
- package/src/components/Input/InputTypes.tsx +0 -8
- package/src/components/Input/_Input.scss +0 -78
- package/src/components/StyleGuide/UIDocCard.tsx +0 -36
- package/src/helpers/CSSVariablesHelper.tsx +0 -34
- package/src/helpers/getCSSVariable.tsx +0 -5
- package/src/interfaces.ts +0 -3
- package/src/utils/bem.ts +0 -44
|
@@ -17,6 +17,8 @@ interface BaseProps {
|
|
|
17
17
|
centered?: boolean;
|
|
18
18
|
/** Optional custom `Icon` that will override the default `Icon`. */
|
|
19
19
|
icon?: JSX.Element;
|
|
20
|
+
/** ID that other components can cross reference for accessibility purposes. */
|
|
21
|
+
id?: string;
|
|
20
22
|
/** Optional prop to control the coloring of the `Notification` text and the
|
|
21
23
|
* visibility of an applicable icon. */
|
|
22
24
|
notificationType?: NotificationTypes;
|
|
@@ -28,6 +30,8 @@ type BasePropsWithoutAlignText = Omit<BaseProps, "alignText">;
|
|
|
28
30
|
type BasePropsWithoutCentered = Omit<BaseProps, "centered">;
|
|
29
31
|
|
|
30
32
|
export interface NotificationProps extends BasePropsWithoutAlignText {
|
|
33
|
+
/** Label used to describe the `Notification`'s aside HTML element. */
|
|
34
|
+
ariaLabel?: string;
|
|
31
35
|
/** Additional `className` to add. */
|
|
32
36
|
className?: string;
|
|
33
37
|
/** Optional prop to control whether a `Notification` can be dismissed
|
|
@@ -35,8 +39,6 @@ export interface NotificationProps extends BasePropsWithoutAlignText {
|
|
|
35
39
|
dismissible?: boolean;
|
|
36
40
|
/** Optional custom `Icon` that will override the default `Icon`. */
|
|
37
41
|
icon?: JSX.Element;
|
|
38
|
-
/** ID that other components can cross reference for accessibility purposes. */
|
|
39
|
-
id?: string;
|
|
40
42
|
/** Optional prop to control the margin around the `Notification` component. */
|
|
41
43
|
noMargin?: boolean;
|
|
42
44
|
/** Content to be rendered in a `NotificationContent` component. */
|
|
@@ -53,7 +55,7 @@ export interface NotificationProps extends BasePropsWithoutAlignText {
|
|
|
53
55
|
export function NotificationHeading(
|
|
54
56
|
props: React.PropsWithChildren<BasePropsWithoutAlignText>
|
|
55
57
|
) {
|
|
56
|
-
const { centered, children, icon, notificationType } = props;
|
|
58
|
+
const { centered, children, icon, id, notificationType } = props;
|
|
57
59
|
const styles = useMultiStyleConfig("NotificationHeading", {
|
|
58
60
|
centered,
|
|
59
61
|
icon,
|
|
@@ -62,7 +64,11 @@ export function NotificationHeading(
|
|
|
62
64
|
return (
|
|
63
65
|
<Box as="header" __css={styles}>
|
|
64
66
|
{icon}
|
|
65
|
-
<Heading
|
|
67
|
+
<Heading
|
|
68
|
+
additionalStyles={styles.heading}
|
|
69
|
+
id={`${id}-heading`}
|
|
70
|
+
level={HeadingLevels.Four}
|
|
71
|
+
>
|
|
66
72
|
{children}
|
|
67
73
|
</Heading>
|
|
68
74
|
</Box>
|
|
@@ -95,6 +101,7 @@ export function NotificationContent(
|
|
|
95
101
|
*/
|
|
96
102
|
export default function Notification(props: NotificationProps) {
|
|
97
103
|
const {
|
|
104
|
+
ariaLabel,
|
|
98
105
|
centered = false,
|
|
99
106
|
className,
|
|
100
107
|
dismissible = false,
|
|
@@ -110,15 +117,15 @@ export default function Notification(props: NotificationProps) {
|
|
|
110
117
|
const handleClose = () => setIsOpen(false);
|
|
111
118
|
const styles = useMultiStyleConfig("Notification", {
|
|
112
119
|
centered,
|
|
120
|
+
dismissible,
|
|
113
121
|
noMargin,
|
|
114
122
|
notificationType,
|
|
115
|
-
showIcon,
|
|
116
123
|
});
|
|
117
124
|
const iconElement = () => {
|
|
118
125
|
const baseIconProps = {
|
|
126
|
+
additionalStyles: styles.icon,
|
|
119
127
|
decorative: false,
|
|
120
128
|
size: IconSizes.Large,
|
|
121
|
-
additionalStyles: styles.icon,
|
|
122
129
|
};
|
|
123
130
|
// If the icon should not display, return null.
|
|
124
131
|
if (!showIcon) {
|
|
@@ -132,16 +139,19 @@ export default function Notification(props: NotificationProps) {
|
|
|
132
139
|
});
|
|
133
140
|
const iconProps = {
|
|
134
141
|
[NotificationTypes.Announcement]: {
|
|
135
|
-
name: IconNames.SpeakerNotes,
|
|
136
142
|
color: IconColors.SectionResearchSecondary,
|
|
143
|
+
name: IconNames.SpeakerNotes,
|
|
144
|
+
title: "Notification announcement icon",
|
|
137
145
|
},
|
|
138
146
|
[NotificationTypes.Standard]: {
|
|
139
|
-
name: IconNames.AlertNotificationImportant,
|
|
140
147
|
color: IconColors.UiBlack,
|
|
148
|
+
name: IconNames.AlertNotificationImportant,
|
|
149
|
+
title: "Notification standard icon",
|
|
141
150
|
},
|
|
142
151
|
[NotificationTypes.Warning]: {
|
|
143
|
-
name: IconNames.ErrorFilled,
|
|
144
152
|
color: IconColors.BrandPrimary,
|
|
153
|
+
name: IconNames.ErrorFilled,
|
|
154
|
+
title: "Notification warning icon",
|
|
145
155
|
},
|
|
146
156
|
};
|
|
147
157
|
return (
|
|
@@ -159,10 +169,11 @@ export default function Notification(props: NotificationProps) {
|
|
|
159
169
|
additionalStyles={styles.dismissibleButton}
|
|
160
170
|
>
|
|
161
171
|
<Icon
|
|
162
|
-
id={`${id}-notification-dismissible-icon`}
|
|
163
172
|
decorative={false}
|
|
173
|
+
id={`${id}-notification-dismissible-icon`}
|
|
164
174
|
name={IconNames.Close}
|
|
165
175
|
size={IconSizes.Large}
|
|
176
|
+
title="Notification close icon"
|
|
166
177
|
/>
|
|
167
178
|
</Button>
|
|
168
179
|
);
|
|
@@ -171,6 +182,7 @@ export default function Notification(props: NotificationProps) {
|
|
|
171
182
|
<NotificationHeading
|
|
172
183
|
centered={centered}
|
|
173
184
|
icon={iconElem}
|
|
185
|
+
id={id}
|
|
174
186
|
notificationType={notificationType}
|
|
175
187
|
>
|
|
176
188
|
{notificationHeading}
|
|
@@ -194,11 +206,12 @@ export default function Notification(props: NotificationProps) {
|
|
|
194
206
|
}
|
|
195
207
|
return (
|
|
196
208
|
<Box
|
|
209
|
+
aria-label={ariaLabel}
|
|
197
210
|
as="aside"
|
|
198
|
-
id={id}
|
|
199
211
|
className={className}
|
|
200
|
-
__css={styles}
|
|
201
212
|
data-type={notificationType}
|
|
213
|
+
id={id}
|
|
214
|
+
__css={styles}
|
|
202
215
|
>
|
|
203
216
|
<Box __css={styles.container}>
|
|
204
217
|
{childHeading}
|
|
@@ -46,6 +46,7 @@ exports[`Notification renders the UI snapshot correctly 1`] = `
|
|
|
46
46
|
</svg>
|
|
47
47
|
<h4
|
|
48
48
|
className="chakra-heading css-0"
|
|
49
|
+
id="notificationID1-heading"
|
|
49
50
|
>
|
|
50
51
|
Notification Heading
|
|
51
52
|
</h4>
|
|
@@ -109,6 +110,7 @@ exports[`Notification renders the UI snapshot correctly 2`] = `
|
|
|
109
110
|
</svg>
|
|
110
111
|
<h4
|
|
111
112
|
className="chakra-heading css-0"
|
|
113
|
+
id="notificationID2-heading"
|
|
112
114
|
>
|
|
113
115
|
Notification Heading
|
|
114
116
|
</h4>
|
|
@@ -172,6 +174,7 @@ exports[`Notification renders the UI snapshot correctly 3`] = `
|
|
|
172
174
|
</svg>
|
|
173
175
|
<h4
|
|
174
176
|
className="chakra-heading css-0"
|
|
177
|
+
id="notificationID3-heading"
|
|
175
178
|
>
|
|
176
179
|
Notification Heading
|
|
177
180
|
</h4>
|
|
@@ -257,6 +260,7 @@ exports[`Notification renders the UI snapshot correctly 5`] = `
|
|
|
257
260
|
>
|
|
258
261
|
<h4
|
|
259
262
|
className="chakra-heading css-0"
|
|
263
|
+
id="notificationID5-heading"
|
|
260
264
|
>
|
|
261
265
|
Notification Heading
|
|
262
266
|
</h4>
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
2
|
ArgsTable,
|
|
5
3
|
Canvas,
|
|
6
4
|
Description,
|
|
7
|
-
|
|
5
|
+
Meta,
|
|
6
|
+
Story,
|
|
7
|
+
} from "@storybook/addon-docs";
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
9
|
import { withQuery } from "@storybook/addon-queryparams";
|
|
10
|
+
|
|
10
11
|
import Pagination from "./Pagination";
|
|
11
12
|
import * as stories from "./Pagination.stories.tsx";
|
|
12
13
|
import { getCategory } from "../../utils/componentCategories";
|
|
@@ -23,9 +24,11 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
23
24
|
jest: ["Pagination.test.tsx"],
|
|
24
25
|
}}
|
|
25
26
|
argTypes={{
|
|
26
|
-
|
|
27
|
-
getPageHref: {
|
|
28
|
-
|
|
27
|
+
className: { control: false },
|
|
28
|
+
getPageHref: { control: false },
|
|
29
|
+
id: { control: false },
|
|
30
|
+
initialPage: { table: { defaultValue: { summary: 1 } } },
|
|
31
|
+
onPageChange: { control: false },
|
|
29
32
|
}}
|
|
30
33
|
/>
|
|
31
34
|
|
|
@@ -34,7 +37,7 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
34
37
|
| Component Version | DS Version |
|
|
35
38
|
| ----------------- | ---------- |
|
|
36
39
|
| Added | `0.0.10` |
|
|
37
|
-
| Latest | `0.25.
|
|
40
|
+
| Latest | `0.25.10` |
|
|
38
41
|
|
|
39
42
|
<Description of={Pagination} />
|
|
40
43
|
|
|
@@ -69,7 +72,11 @@ const getPageHref = (selectedPage: number) => {
|
|
|
69
72
|
<Story
|
|
70
73
|
name="Pagination with URL Updates"
|
|
71
74
|
args={{
|
|
75
|
+
className: undefined,
|
|
76
|
+
getPageHref: undefined,
|
|
77
|
+
id: "pagination-id",
|
|
72
78
|
initialPage: 1,
|
|
79
|
+
onPageChange: undefined,
|
|
73
80
|
pageCount: 10,
|
|
74
81
|
}}
|
|
75
82
|
>
|
|
@@ -102,7 +109,11 @@ const onPageChange = (currentPage: number) => {
|
|
|
102
109
|
<Story
|
|
103
110
|
name="Pagination with Unchanging URL"
|
|
104
111
|
args={{
|
|
112
|
+
className: undefined,
|
|
113
|
+
getPageHref: undefined,
|
|
114
|
+
id: "pagination-id-2",
|
|
105
115
|
initialPage: 7,
|
|
116
|
+
onPageChange: undefined,
|
|
106
117
|
pageCount: 100,
|
|
107
118
|
}}
|
|
108
119
|
>
|
|
@@ -31,10 +31,10 @@ export interface PaginationProps {
|
|
|
31
31
|
const Pagination: React.FC<PaginationProps> = (props: PaginationProps) => {
|
|
32
32
|
const {
|
|
33
33
|
className,
|
|
34
|
-
initialPage = 1,
|
|
35
34
|
getPageHref,
|
|
36
35
|
id = generateUUID(),
|
|
37
|
-
|
|
36
|
+
initialPage = 1,
|
|
37
|
+
onPageChange,
|
|
38
38
|
pageCount,
|
|
39
39
|
} = props;
|
|
40
40
|
const [currentPage, setCurrentPage] = useState<number>(initialPage);
|
|
@@ -63,7 +63,7 @@ const Pagination: React.FC<PaginationProps> = (props: PaginationProps) => {
|
|
|
63
63
|
e.preventDefault && e.preventDefault();
|
|
64
64
|
if (currentPage === selectedPage) return;
|
|
65
65
|
setCurrentPage(selectedPage);
|
|
66
|
-
onPageChange(selectedPage);
|
|
66
|
+
onPageChange && onPageChange(selectedPage);
|
|
67
67
|
};
|
|
68
68
|
// Select the previous page.
|
|
69
69
|
const previousPage = (e: Event) => {
|
|
@@ -1,24 +1,17 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import bem from "../../utils/bem";
|
|
3
2
|
|
|
4
3
|
export interface PlaceholderProps {
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
/** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
|
|
8
|
-
modifiers?: string[];
|
|
4
|
+
/** Modifier string for the classname. */
|
|
5
|
+
variant?: string;
|
|
9
6
|
}
|
|
10
7
|
|
|
11
8
|
/** Creates a gray box with an editable string for dropping in spaces
|
|
12
9
|
* within components or on templates where a component will be but
|
|
13
10
|
* that hasn't been created yet
|
|
14
11
|
*/
|
|
15
|
-
export default function Placeholder(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return
|
|
20
|
-
<div className={bem("placeholder", modifiers, blockName)}>
|
|
21
|
-
{props.children}
|
|
22
|
-
</div>
|
|
23
|
-
);
|
|
12
|
+
export default function Placeholder({
|
|
13
|
+
children,
|
|
14
|
+
variant,
|
|
15
|
+
}: React.PropsWithChildren<PlaceholderProps>) {
|
|
16
|
+
return <div className={`placeholder placeholder-${variant}`}>{children}</div>;
|
|
24
17
|
}
|
|
@@ -1,22 +1,32 @@
|
|
|
1
|
+
import { Box } from "@chakra-ui/react";
|
|
1
2
|
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
3
|
ArgsTable,
|
|
5
4
|
Canvas,
|
|
6
5
|
Description,
|
|
7
|
-
|
|
6
|
+
Meta,
|
|
7
|
+
Story,
|
|
8
|
+
} from "@storybook/addon-docs";
|
|
8
9
|
import { withDesign } from "storybook-addon-designs";
|
|
9
|
-
import { Box } from "@chakra-ui/react";
|
|
10
10
|
|
|
11
|
+
import { GridGaps } from "../Grid/GridTypes";
|
|
11
12
|
import ProgressIndicator from "./ProgressIndicator";
|
|
12
13
|
import {
|
|
13
14
|
ProgressIndicatorSizes,
|
|
14
15
|
ProgressIndicatorTypes,
|
|
15
16
|
} from "./ProgressIndicatorTypes";
|
|
17
|
+
import SimpleGrid from "../Grid/SimpleGrid";
|
|
16
18
|
import { getCategory } from "../../utils/componentCategories";
|
|
17
19
|
import DSProvider from "../../theme/provider";
|
|
18
|
-
import
|
|
19
|
-
|
|
20
|
+
import { getStorybookEnumValues } from "../../utils/utils";
|
|
21
|
+
|
|
22
|
+
export const sizesEnumValues = getStorybookEnumValues(
|
|
23
|
+
ProgressIndicatorSizes,
|
|
24
|
+
"ProgressIndicatorSizes"
|
|
25
|
+
);
|
|
26
|
+
export const typesEnumValues = getStorybookEnumValues(
|
|
27
|
+
ProgressIndicatorTypes,
|
|
28
|
+
"ProgressIndicatorTypes"
|
|
29
|
+
);
|
|
20
30
|
|
|
21
31
|
<Meta
|
|
22
32
|
title={getCategory("ProgressIndicator")}
|
|
@@ -30,7 +40,29 @@ import { GridGaps } from "../Grid/GridTypes";
|
|
|
30
40
|
jest: ["ProgressIndicator.test.tsx"],
|
|
31
41
|
}}
|
|
32
42
|
argTypes={{
|
|
33
|
-
|
|
43
|
+
darkMode: {
|
|
44
|
+
table: { defaultValue: { summary: false } },
|
|
45
|
+
},
|
|
46
|
+
id: { control: false },
|
|
47
|
+
indicatorType: {
|
|
48
|
+
control: { type: "radio" },
|
|
49
|
+
table: { defaultValue: { summary: "ProgressIndicatorTypes.Linear" } },
|
|
50
|
+
options: typesEnumValues.options,
|
|
51
|
+
},
|
|
52
|
+
isIndeterminate: {
|
|
53
|
+
table: { defaultValue: { summary: false } },
|
|
54
|
+
},
|
|
55
|
+
showLabel: {
|
|
56
|
+
table: { defaultValue: { summary: true } },
|
|
57
|
+
},
|
|
58
|
+
size: {
|
|
59
|
+
control: { type: "radio" },
|
|
60
|
+
table: { defaultValue: { summary: "ProgressIndicatorSizes.Default" } },
|
|
61
|
+
options: sizesEnumValues.options,
|
|
62
|
+
},
|
|
63
|
+
value: {
|
|
64
|
+
table: { defaultValue: { summary: 0 } },
|
|
65
|
+
},
|
|
34
66
|
}}
|
|
35
67
|
/>
|
|
36
68
|
|
|
@@ -45,22 +77,29 @@ import { GridGaps } from "../Grid/GridTypes";
|
|
|
45
77
|
|
|
46
78
|
<Canvas withToolbar>
|
|
47
79
|
<Story
|
|
48
|
-
name="
|
|
80
|
+
name="ProgressIndicator with Controls"
|
|
49
81
|
args={{
|
|
50
82
|
darkMode: false,
|
|
51
|
-
|
|
83
|
+
id: "progressIndicator-id",
|
|
84
|
+
indicatorType: "ProgressIndicatorTypes.Linear",
|
|
52
85
|
isIndeterminate: false,
|
|
53
86
|
labelText: "Progress",
|
|
54
87
|
showLabel: true,
|
|
55
|
-
size: ProgressIndicatorSizes.Default,
|
|
88
|
+
size: "ProgressIndicatorSizes.Default",
|
|
56
89
|
value: 50,
|
|
57
90
|
}}
|
|
58
91
|
>
|
|
59
|
-
{(args) =>
|
|
92
|
+
{(args) => (
|
|
93
|
+
<ProgressIndicator
|
|
94
|
+
{...args}
|
|
95
|
+
indicatorType={typesEnumValues.getValue(args.indicatorType)}
|
|
96
|
+
size={sizesEnumValues.getValue(args.size)}
|
|
97
|
+
/>
|
|
98
|
+
)}
|
|
60
99
|
</Story>
|
|
61
100
|
</Canvas>
|
|
62
101
|
|
|
63
|
-
<ArgsTable story="
|
|
102
|
+
<ArgsTable story="ProgressIndicator with Controls" />
|
|
64
103
|
|
|
65
104
|
## Linear Type
|
|
66
105
|
|
|
@@ -70,20 +109,15 @@ dialogs, etc.
|
|
|
70
109
|
<Canvas>
|
|
71
110
|
<Story
|
|
72
111
|
name="Linear Type"
|
|
73
|
-
args={{
|
|
74
|
-
darkMode: false,
|
|
75
|
-
indicatorType: ProgressIndicatorTypes.Linear,
|
|
76
|
-
isIndeterminate: false,
|
|
77
|
-
labelText: "Linear Progress Type",
|
|
78
|
-
showLabel: true,
|
|
79
|
-
size: ProgressIndicatorSizes.Default,
|
|
80
|
-
value: 50,
|
|
81
|
-
}}
|
|
82
112
|
argTypes={{
|
|
83
113
|
indicatorType: { table: { disable: true } },
|
|
84
114
|
}}
|
|
85
115
|
>
|
|
86
|
-
|
|
116
|
+
<ProgressIndicator
|
|
117
|
+
indicatorType={ProgressIndicatorTypes.Linear}
|
|
118
|
+
labelText="Linear Progress Type"
|
|
119
|
+
value={50}
|
|
120
|
+
/>
|
|
87
121
|
</Story>
|
|
88
122
|
</Canvas>
|
|
89
123
|
|
|
@@ -96,20 +130,15 @@ full-screen loading. Set the `indicatorType` prop to
|
|
|
96
130
|
<Canvas>
|
|
97
131
|
<Story
|
|
98
132
|
name="Circular Type"
|
|
99
|
-
args={{
|
|
100
|
-
darkMode: false,
|
|
101
|
-
indicatorType: ProgressIndicatorTypes.Circular,
|
|
102
|
-
isIndeterminate: false,
|
|
103
|
-
labelText: "Circular Progress Type",
|
|
104
|
-
showLabel: true,
|
|
105
|
-
size: ProgressIndicatorSizes.Default,
|
|
106
|
-
value: 50,
|
|
107
|
-
}}
|
|
108
133
|
argTypes={{
|
|
109
134
|
indicatorType: { table: { disable: true } },
|
|
110
135
|
}}
|
|
111
136
|
>
|
|
112
|
-
|
|
137
|
+
<ProgressIndicator
|
|
138
|
+
indicatorType={ProgressIndicatorTypes.Circular}
|
|
139
|
+
labelText="Linear Progress Type"
|
|
140
|
+
value={50}
|
|
141
|
+
/>
|
|
113
142
|
</Story>
|
|
114
143
|
</Canvas>
|
|
115
144
|
|
|
@@ -145,13 +174,13 @@ percentage will not displayed.
|
|
|
145
174
|
<DSProvider>
|
|
146
175
|
<SimpleGrid columns={1} gap={GridGaps.Medium}>
|
|
147
176
|
<ProgressIndicator
|
|
148
|
-
labelText="Default 48px size"
|
|
149
177
|
indicatorType={ProgressIndicatorTypes.Circular}
|
|
178
|
+
labelText="Default 48px size"
|
|
150
179
|
value={50}
|
|
151
180
|
/>
|
|
152
181
|
<ProgressIndicator
|
|
153
|
-
labelText="Small 24px size"
|
|
154
182
|
indicatorType={ProgressIndicatorTypes.Circular}
|
|
183
|
+
labelText="Small 24px size"
|
|
155
184
|
size={ProgressIndicatorSizes.Small}
|
|
156
185
|
value={50}
|
|
157
186
|
/>
|
|
@@ -174,14 +203,14 @@ the progress element to provide a description of the progress for screen readers
|
|
|
174
203
|
<SimpleGrid columns={1} gap={GridGaps.Medium}>
|
|
175
204
|
<ProgressIndicator
|
|
176
205
|
labelText="This label will be added through aria-label"
|
|
177
|
-
value={50}
|
|
178
206
|
showLabel={false}
|
|
207
|
+
value={50}
|
|
179
208
|
/>
|
|
180
209
|
<ProgressIndicator
|
|
181
|
-
labelText="This label will be added through aria-label"
|
|
182
210
|
indicatorType={ProgressIndicatorTypes.Circular}
|
|
183
|
-
|
|
211
|
+
labelText="This label will be added through aria-label"
|
|
184
212
|
showLabel={false}
|
|
213
|
+
value={50}
|
|
185
214
|
/>
|
|
186
215
|
</SimpleGrid>
|
|
187
216
|
</DSProvider>
|
|
@@ -197,14 +226,14 @@ exact value or progress of the task is unknown.
|
|
|
197
226
|
<DSProvider>
|
|
198
227
|
<SimpleGrid columns={1} gap={GridGaps.Medium}>
|
|
199
228
|
<ProgressIndicator
|
|
200
|
-
labelText="Indeterminate state"
|
|
201
229
|
isIndeterminate
|
|
230
|
+
labelText="Indeterminate state"
|
|
202
231
|
value={50}
|
|
203
232
|
/>
|
|
204
233
|
<ProgressIndicator
|
|
205
|
-
labelText="Indeterminate state"
|
|
206
234
|
indicatorType={ProgressIndicatorTypes.Circular}
|
|
207
235
|
isIndeterminate
|
|
236
|
+
labelText="Indeterminate state"
|
|
208
237
|
value={50}
|
|
209
238
|
/>
|
|
210
239
|
</SimpleGrid>
|
|
@@ -224,10 +253,10 @@ Note: the background is manually set to better showcase the `darkMode` prop.
|
|
|
224
253
|
<SimpleGrid columns={1} gap={GridGaps.Medium}>
|
|
225
254
|
<ProgressIndicator labelText="Dark Mode" value={50} darkMode />
|
|
226
255
|
<ProgressIndicator
|
|
227
|
-
|
|
256
|
+
darkMode
|
|
228
257
|
indicatorType={ProgressIndicatorTypes.Circular}
|
|
258
|
+
labelText="Dark Mode"
|
|
229
259
|
value={50}
|
|
230
|
-
darkMode
|
|
231
260
|
/>
|
|
232
261
|
</SimpleGrid>
|
|
233
262
|
</Box>
|
|
@@ -255,8 +284,8 @@ function ProgressIndicatorExample() {
|
|
|
255
284
|
<SimpleGrid columns={1} gap={GridGaps.Medium}>
|
|
256
285
|
<ProgressIndicator labelText="Progress example" value={value} />
|
|
257
286
|
<ProgressIndicator
|
|
258
|
-
labelText="Progress example"
|
|
259
287
|
indicatorType={ProgressIndicatorTypes.Circular}
|
|
288
|
+
labelText="Progress example"
|
|
260
289
|
value={value}
|
|
261
290
|
/>
|
|
262
291
|
</SimpleGrid>
|
|
@@ -276,8 +305,8 @@ export function ProgressIndicatorExample() {
|
|
|
276
305
|
<SimpleGrid columns={1} gap={GridGaps.Medium}>
|
|
277
306
|
<ProgressIndicator labelText="Progress example" value={value} />
|
|
278
307
|
<ProgressIndicator
|
|
279
|
-
labelText="Progress example"
|
|
280
308
|
indicatorType={ProgressIndicatorTypes.Circular}
|
|
309
|
+
labelText="Progress example"
|
|
281
310
|
value={value}
|
|
282
311
|
/>
|
|
283
312
|
</SimpleGrid>
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import { HStack } from "@chakra-ui/react";
|
|
1
2
|
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
|
-
Canvas,
|
|
5
3
|
ArgsTable,
|
|
4
|
+
Canvas,
|
|
6
5
|
Description,
|
|
6
|
+
Meta,
|
|
7
|
+
Story,
|
|
7
8
|
} from "@storybook/addon-docs";
|
|
8
9
|
import { withDesign } from "storybook-addon-designs";
|
|
9
|
-
import { HStack } from "@chakra-ui/react";
|
|
10
10
|
|
|
11
|
+
import Radio from "./Radio";
|
|
11
12
|
import { getCategory } from "../../utils/componentCategories";
|
|
12
13
|
import DSProvider from "../../theme/provider";
|
|
13
|
-
import Radio from "./Radio";
|
|
14
14
|
|
|
15
15
|
<Meta
|
|
16
16
|
title={getCategory("Radio")}
|
|
@@ -19,16 +19,32 @@ import Radio from "./Radio";
|
|
|
19
19
|
parameters={{
|
|
20
20
|
design: {
|
|
21
21
|
type: "figma",
|
|
22
|
-
url:
|
|
23
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11895%3A742",
|
|
22
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11895%3A742",
|
|
24
23
|
},
|
|
25
24
|
jest: ["Radio.test.tsx"],
|
|
26
25
|
}}
|
|
27
26
|
argTypes={{
|
|
28
|
-
className: {
|
|
29
|
-
id: {
|
|
30
|
-
isChecked: {
|
|
31
|
-
|
|
27
|
+
className: { control: false },
|
|
28
|
+
id: { control: false },
|
|
29
|
+
isChecked: { control: false },
|
|
30
|
+
isDisabled: {
|
|
31
|
+
table: { defaultValue: { summary: false } },
|
|
32
|
+
},
|
|
33
|
+
isInvalid: {
|
|
34
|
+
table: { defaultValue: { summary: false } },
|
|
35
|
+
},
|
|
36
|
+
isRequired: {
|
|
37
|
+
table: { defaultValue: { summary: false } },
|
|
38
|
+
},
|
|
39
|
+
key: { table: { disable: true } },
|
|
40
|
+
onChange: { control: false },
|
|
41
|
+
ref: { table: { disable: true } },
|
|
42
|
+
showHelperInvalidText: {
|
|
43
|
+
table: { defaultValue: { summary: true } },
|
|
44
|
+
},
|
|
45
|
+
showLabel: {
|
|
46
|
+
table: { defaultValue: { summary: true } },
|
|
47
|
+
},
|
|
32
48
|
}}
|
|
33
49
|
/>
|
|
34
50
|
|
|
@@ -37,7 +53,7 @@ import Radio from "./Radio";
|
|
|
37
53
|
| Component Version | DS Version |
|
|
38
54
|
| ----------------- | ---------- |
|
|
39
55
|
| Added | `0.22.0` |
|
|
40
|
-
| Latest | `0.25.
|
|
56
|
+
| Latest | `0.25.10` |
|
|
41
57
|
|
|
42
58
|
<Description of={Radio} />
|
|
43
59
|
|
|
@@ -50,16 +66,20 @@ component will handle all the states and data management.
|
|
|
50
66
|
<Story
|
|
51
67
|
name="Radio"
|
|
52
68
|
args={{
|
|
69
|
+
className: undefined,
|
|
70
|
+
helperText: "This is the helper text!",
|
|
71
|
+
id: "radio-id",
|
|
72
|
+
invalidText: "This is the error text :(",
|
|
73
|
+
isChecked: undefined,
|
|
74
|
+
isDisabled: false,
|
|
75
|
+
isInvalid: false,
|
|
76
|
+
isRequired: false,
|
|
53
77
|
labelText: "Test Label",
|
|
54
|
-
showLabel: true,
|
|
55
|
-
id: "test_id",
|
|
56
78
|
name: "test_name",
|
|
79
|
+
onChange: undefined,
|
|
80
|
+
showHelperInvalidText: true,
|
|
81
|
+
showLabel: true,
|
|
57
82
|
value: "1",
|
|
58
|
-
isDisabled: false,
|
|
59
|
-
isRequired: false,
|
|
60
|
-
isInvalid: false,
|
|
61
|
-
helperText: "This is the helper text!",
|
|
62
|
-
invalidText: "This is the error text :(",
|
|
63
83
|
}}
|
|
64
84
|
>
|
|
65
85
|
{(args) => <Radio {...args} />}
|
|
@@ -5,20 +5,22 @@ import {
|
|
|
5
5
|
useMultiStyleConfig,
|
|
6
6
|
} from "@chakra-ui/react";
|
|
7
7
|
|
|
8
|
+
import HelperErrorText, {
|
|
9
|
+
HelperErrorTextType,
|
|
10
|
+
} from "../HelperErrorText/HelperErrorText";
|
|
8
11
|
import generateUUID from "../../helpers/generateUUID";
|
|
9
|
-
import HelperErrorText from "../HelperErrorText/HelperErrorText";
|
|
10
12
|
|
|
11
13
|
export interface RadioProps {
|
|
12
14
|
/** Additional class name. */
|
|
13
15
|
className?: string;
|
|
14
|
-
/** Optional string to populate the HelperErrorText for the error state
|
|
15
|
-
* when `isInvalid` is true.
|
|
16
|
-
*/
|
|
17
|
-
invalidText?: string;
|
|
18
16
|
/** Optional string to populate the HelperErrorText for the standard state. */
|
|
19
|
-
helperText?:
|
|
17
|
+
helperText?: HelperErrorTextType;
|
|
20
18
|
/** ID that other components can cross reference for accessibility purposes */
|
|
21
19
|
id?: string;
|
|
20
|
+
/** Optional string to populate the HelperErrorText for the error state
|
|
21
|
+
* when `isInvalid` is true.
|
|
22
|
+
*/
|
|
23
|
+
invalidText?: HelperErrorTextType;
|
|
22
24
|
/** When using the Radio as a "controlled" form element, you can specify the
|
|
23
25
|
* `Radio`'s checked state using this prop. You must also pass an onChange prop.
|
|
24
26
|
* Learn more about controlled and uncontrolled form fields: https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/ */
|
|
@@ -100,9 +102,11 @@ const Radio = React.forwardRef<HTMLInputElement, RadioProps>((props, ref?) => {
|
|
|
100
102
|
</ChakraRadio>
|
|
101
103
|
{footnote && showHelperInvalidText && (
|
|
102
104
|
<Box __css={styles.helper} aria-disabled={isDisabled}>
|
|
103
|
-
<HelperErrorText
|
|
104
|
-
{
|
|
105
|
-
|
|
105
|
+
<HelperErrorText
|
|
106
|
+
id={`${id}-helperText`}
|
|
107
|
+
isInvalid={isInvalid}
|
|
108
|
+
text={footnote}
|
|
109
|
+
/>
|
|
106
110
|
</Box>
|
|
107
111
|
)}
|
|
108
112
|
</>
|