@nypl/design-system-react-components 1.0.0 → 1.0.3-beta
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/README.md +3 -5
- package/dist/components/Checkbox/Checkbox.d.ts +0 -1
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -0
- package/dist/components/Heading/Heading.d.ts +2 -0
- package/dist/components/Logo/Logo.d.ts +1 -1
- package/dist/components/Logo/LogoSvgs.d.ts +4 -0
- package/dist/components/Slider/Slider.d.ts +1 -2
- package/dist/components/TextInput/TextInput.d.ts +2 -1
- package/dist/design-system-react-components.cjs.development.js +1038 -674
- 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 +1039 -675
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/{tests → __tests__}/useCarouselStyles.test.d.ts +0 -0
- package/dist/theme/components/button.d.ts +1 -0
- package/dist/theme/components/card.d.ts +98 -13
- package/dist/theme/components/checkboxGroup.d.ts +1 -1
- package/dist/theme/components/global.d.ts +2 -2
- package/dist/theme/components/heading.d.ts +4 -16
- package/dist/theme/components/image.d.ts +6 -0
- package/dist/theme/components/radio.d.ts +8 -0
- package/dist/theme/components/radioGroup.d.ts +1 -1
- package/dist/theme/components/skipNavigation.d.ts +3 -0
- package/dist/theme/components/structuredContent.d.ts +0 -5
- package/dist/theme/components/template.d.ts +4 -1
- package/dist/utils/utils.d.ts +15 -0
- package/package.json +6 -7
- package/CHANGELOG.md +0 -1399
- package/src/__tests__/fileMock.ts +0 -6
- package/src/__tests__/setup.ts +0 -27
- package/src/__tests__/utils/utils.test.ts +0 -18
- package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +0 -42
- package/src/components/Accordion/Accordion.stories.mdx +0 -361
- package/src/components/Accordion/Accordion.test.tsx +0 -237
- package/src/components/Accordion/Accordion.tsx +0 -136
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +0 -734
- package/src/components/Autosuggest/Autosuggest.stories.mdx +0 -75
- package/src/components/Autosuggest/Autosuggest.stories.tsx +0 -211
- package/src/components/Autosuggest/_Autosuggest.scss +0 -51
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +0 -231
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +0 -144
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -98
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +0 -695
- package/src/components/Button/Button.stories.mdx +0 -320
- package/src/components/Button/Button.test.tsx +0 -184
- package/src/components/Button/Button.tsx +0 -95
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -106
- package/src/components/ButtonGroup/ButtonGroup.stories.mdx +0 -147
- package/src/components/ButtonGroup/ButtonGroup.test.tsx +0 -141
- package/src/components/ButtonGroup/ButtonGroup.tsx +0 -99
- package/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap +0 -117
- package/src/components/Card/Card.stories.mdx +0 -1043
- package/src/components/Card/Card.test.tsx +0 -388
- package/src/components/Card/Card.tsx +0 -345
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +0 -568
- package/src/components/Chakra/Box.stories.mdx +0 -52
- package/src/components/Chakra/Center.stories.mdx +0 -96
- package/src/components/Chakra/Flex.stories.mdx +0 -111
- package/src/components/Chakra/Grid.stories.mdx +0 -89
- package/src/components/Chakra/Stack.stories.mdx +0 -109
- package/src/components/Checkbox/Checkbox.stories.mdx +0 -243
- package/src/components/Checkbox/Checkbox.test.tsx +0 -319
- package/src/components/Checkbox/Checkbox.tsx +0 -166
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +0 -616
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +0 -462
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +0 -492
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +0 -173
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +0 -1722
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +0 -163
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +0 -67
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +0 -98
- package/src/components/DatePicker/DatePicker.stories.mdx +0 -452
- package/src/components/DatePicker/DatePicker.test.tsx +0 -940
- package/src/components/DatePicker/DatePicker.tsx +0 -450
- package/src/components/DatePicker/_DatePicker.scss +0 -100
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -889
- package/src/components/Fieldset/Fieldset.stories.mdx +0 -96
- package/src/components/Fieldset/Fieldset.test.tsx +0 -155
- package/src/components/Fieldset/Fieldset.tsx +0 -55
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +0 -89
- package/src/components/Form/Form.stories.mdx +0 -426
- package/src/components/Form/Form.test.tsx +0 -234
- package/src/components/Form/Form.tsx +0 -124
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -115
- package/src/components/Grid/SimpleGrid.stories.mdx +0 -338
- package/src/components/Grid/SimpleGrid.test.tsx +0 -79
- package/src/components/Grid/SimpleGrid.tsx +0 -49
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +0 -23
- package/src/components/Heading/Heading.stories.mdx +0 -184
- package/src/components/Heading/Heading.test.tsx +0 -171
- package/src/components/Heading/Heading.tsx +0 -101
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +0 -90
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +0 -172
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +0 -114
- package/src/components/HelperErrorText/HelperErrorText.tsx +0 -62
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +0 -93
- package/src/components/Hero/Hero.stories.mdx +0 -378
- package/src/components/Hero/Hero.test.tsx +0 -611
- package/src/components/Hero/Hero.tsx +0 -203
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +0 -379
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +0 -73
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +0 -54
- package/src/components/HorizontalRule/HorizontalRule.tsx +0 -27
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +0 -44
- package/src/components/Icons/Icon.stories.mdx +0 -413
- package/src/components/Icons/Icon.test.tsx +0 -120
- package/src/components/Icons/Icon.tsx +0 -187
- package/src/components/Icons/IconSvgs.tsx +0 -64
- package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +0 -129
- package/src/components/Image/Image.stories.mdx +0 -332
- package/src/components/Image/Image.test.tsx +0 -155
- package/src/components/Image/Image.tsx +0 -171
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +0 -269
- package/src/components/Label/Label.stories.mdx +0 -100
- package/src/components/Label/Label.test.tsx +0 -116
- package/src/components/Label/Label.tsx +0 -55
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +0 -45
- package/src/components/Link/Link.stories.mdx +0 -249
- package/src/components/Link/Link.test.tsx +0 -224
- package/src/components/Link/Link.tsx +0 -178
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +0 -286
- package/src/components/List/List.stories.mdx +0 -393
- package/src/components/List/List.test.tsx +0 -265
- package/src/components/List/List.tsx +0 -156
- package/src/components/List/__snapshots__/List.test.tsx.snap +0 -213
- package/src/components/Logo/Logo.stories.mdx +0 -290
- package/src/components/Logo/Logo.test.tsx +0 -116
- package/src/components/Logo/Logo.tsx +0 -147
- package/src/components/Logo/LogoSvgs.tsx +0 -82
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +0 -142
- package/src/components/Modal/Modal.stories.mdx +0 -301
- package/src/components/Modal/Modal.test.tsx +0 -157
- package/src/components/Modal/Modal.tsx +0 -154
- package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +0 -25
- package/src/components/Notification/Notification.stories.mdx +0 -358
- package/src/components/Notification/Notification.test.tsx +0 -279
- package/src/components/Notification/Notification.tsx +0 -224
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +0 -525
- package/src/components/Pagination/Pagination.stories.mdx +0 -184
- package/src/components/Pagination/Pagination.test.tsx +0 -419
- package/src/components/Pagination/Pagination.tsx +0 -269
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -544
- package/src/components/Placeholder/Placeholder.tsx +0 -19
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +0 -360
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +0 -298
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +0 -132
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +0 -434
- package/src/components/Radio/Radio.stories.mdx +0 -216
- package/src/components/Radio/Radio.test.tsx +0 -247
- package/src/components/Radio/Radio.tsx +0 -128
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +0 -411
- package/src/components/RadioGroup/RadioGroup.stories.mdx +0 -478
- package/src/components/RadioGroup/RadioGroup.test.tsx +0 -471
- package/src/components/RadioGroup/RadioGroup.tsx +0 -170
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +0 -1430
- package/src/components/SearchBar/SearchBar.stories.mdx +0 -518
- package/src/components/SearchBar/SearchBar.test.tsx +0 -435
- package/src/components/SearchBar/SearchBar.tsx +0 -210
- package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +0 -1027
- package/src/components/Select/Select.stories.mdx +0 -439
- package/src/components/Select/Select.test.tsx +0 -358
- package/src/components/Select/Select.tsx +0 -181
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +0 -885
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +0 -142
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +0 -116
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +0 -123
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +0 -898
- package/src/components/SkipNavigation/SkipNavigation.stories.mdx +0 -90
- package/src/components/SkipNavigation/SkipNavigation.test.tsx +0 -63
- package/src/components/SkipNavigation/SkipNavigation.tsx +0 -51
- package/src/components/SkipNavigation/__snapshots__/SkipNavigation.test.tsx.snap +0 -130
- package/src/components/Slider/Slider.stories.mdx +0 -628
- package/src/components/Slider/Slider.test.tsx +0 -736
- package/src/components/Slider/Slider.tsx +0 -322
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +0 -2153
- package/src/components/StatusBadge/StatusBadge.stories.mdx +0 -109
- package/src/components/StatusBadge/StatusBadge.test.tsx +0 -70
- package/src/components/StatusBadge/StatusBadge.tsx +0 -35
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +0 -47
- package/src/components/StructuredContent/StructuredContent.stories.mdx +0 -567
- package/src/components/StructuredContent/StructuredContent.test.tsx +0 -435
- package/src/components/StructuredContent/StructuredContent.tsx +0 -139
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +0 -368
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +0 -206
- package/src/components/StyleGuide/Breakpoints.stories.mdx +0 -55
- package/src/components/StyleGuide/Buttons.stories.mdx +0 -194
- package/src/components/StyleGuide/ColorCard.tsx +0 -43
- package/src/components/StyleGuide/Colors.stories.mdx +0 -201
- package/src/components/StyleGuide/DesignTokens.stories.mdx +0 -193
- package/src/components/StyleGuide/Forms.stories.mdx +0 -94
- package/src/components/StyleGuide/Iconography.stories.mdx +0 -142
- package/src/components/StyleGuide/Spacing.stories.mdx +0 -116
- package/src/components/StyleGuide/Typography.stories.mdx +0 -419
- package/src/components/Table/Table.stories.mdx +0 -276
- package/src/components/Table/Table.test.tsx +0 -208
- package/src/components/Table/Table.tsx +0 -131
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +0 -1703
- package/src/components/Tabs/Tabs.stories.mdx +0 -338
- package/src/components/Tabs/Tabs.test.tsx +0 -298
- package/src/components/Tabs/Tabs.tsx +0 -264
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +0 -584
- package/src/components/Template/Template.stories.mdx +0 -691
- package/src/components/Template/Template.test.tsx +0 -309
- package/src/components/Template/Template.tsx +0 -326
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +0 -342
- package/src/components/Text/Text.stories.mdx +0 -103
- package/src/components/Text/Text.test.tsx +0 -63
- package/src/components/Text/Text.tsx +0 -50
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +0 -50
- package/src/components/TextInput/TextInput.stories.mdx +0 -268
- package/src/components/TextInput/TextInput.test.tsx +0 -451
- package/src/components/TextInput/TextInput.tsx +0 -240
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +0 -264
- package/src/components/Toggle/Toggle.stories.mdx +0 -237
- package/src/components/Toggle/Toggle.test.tsx +0 -170
- package/src/components/Toggle/Toggle.tsx +0 -126
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +0 -442
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +0 -211
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +0 -308
- package/src/components/VideoPlayer/VideoPlayer.tsx +0 -188
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +0 -187
- package/src/docs/Chakra.stories.mdx +0 -563
- package/src/docs/Welcome.stories.mdx +0 -148
- package/src/helpers/types.ts +0 -1
- package/src/hooks/tests/useCarouselStyles.test.ts +0 -140
- package/src/hooks/tests/useNYPLTheme.test.tsx +0 -36
- package/src/hooks/useCarouselStyles.stories.mdx +0 -30
- package/src/hooks/useCarouselStyles.ts +0 -35
- package/src/hooks/useNYPLTheme.stories.mdx +0 -98
- package/src/hooks/useNYPLTheme.ts +0 -91
- package/src/hooks/useWindowSize.stories.mdx +0 -23
- package/src/hooks/useWindowSize.ts +0 -40
- package/src/index.ts +0 -136
- package/src/resources.scss +0 -6
- package/src/styles/base/_01-breakpoints.scss +0 -27
- package/src/styles/base/_02-mixins.scss +0 -103
- package/src/styles/base/_place-holder.scss +0 -33
- package/src/styles/space/_space-inline.scss +0 -79
- package/src/styles/space/_space-inset.scss +0 -57
- package/src/styles/space/_space-stack.scss +0 -116
- package/src/styles.scss +0 -23
- package/src/theme/components/accordion.ts +0 -25
- package/src/theme/components/breadcrumb.ts +0 -94
- package/src/theme/components/button.ts +0 -132
- package/src/theme/components/buttonGroup.ts +0 -10
- package/src/theme/components/card.ts +0 -231
- package/src/theme/components/checkbox.ts +0 -110
- package/src/theme/components/checkboxGroup.ts +0 -10
- package/src/theme/components/componentWrapper.ts +0 -14
- package/src/theme/components/customTable.ts +0 -77
- package/src/theme/components/datePicker.ts +0 -17
- package/src/theme/components/fieldset.ts +0 -23
- package/src/theme/components/global.ts +0 -91
- package/src/theme/components/globalMixins.ts +0 -24
- package/src/theme/components/heading.ts +0 -79
- package/src/theme/components/helperErrorText.ts +0 -14
- package/src/theme/components/hero.ts +0 -238
- package/src/theme/components/horizontalRule.ts +0 -17
- package/src/theme/components/icon.ts +0 -88
- package/src/theme/components/image.ts +0 -135
- package/src/theme/components/label.ts +0 -15
- package/src/theme/components/link.ts +0 -63
- package/src/theme/components/list.ts +0 -88
- package/src/theme/components/logo.ts +0 -58
- package/src/theme/components/notification.ts +0 -132
- package/src/theme/components/pagination.ts +0 -17
- package/src/theme/components/progressIndicator.ts +0 -67
- package/src/theme/components/radio.ts +0 -103
- package/src/theme/components/radioGroup.ts +0 -10
- package/src/theme/components/searchBar.ts +0 -19
- package/src/theme/components/select.ts +0 -72
- package/src/theme/components/skeletonLoader.ts +0 -113
- package/src/theme/components/skipNavigation.ts +0 -26
- package/src/theme/components/slider.ts +0 -95
- package/src/theme/components/statusBadge.ts +0 -26
- package/src/theme/components/structuredContent.ts +0 -149
- package/src/theme/components/tabs.ts +0 -109
- package/src/theme/components/template.ts +0 -114
- package/src/theme/components/text.ts +0 -38
- package/src/theme/components/textInput.ts +0 -65
- package/src/theme/components/toggle.ts +0 -109
- package/src/theme/components/videoPlayer.ts +0 -47
- package/src/theme/foundations/breakpoints.ts +0 -24
- package/src/theme/foundations/colors.ts +0 -212
- package/src/theme/foundations/global.ts +0 -43
- package/src/theme/foundations/radii.ts +0 -7
- package/src/theme/foundations/shadows.ts +0 -5
- package/src/theme/foundations/spacing.ts +0 -136
- package/src/theme/foundations/typography.ts +0 -107
- package/src/theme/index.ts +0 -131
- package/src/theme/provider.tsx +0 -9
- package/src/theme/types.ts +0 -1
- package/src/utils/componentCategories.ts +0 -152
- package/src/utils/interfaces.ts +0 -5
- package/src/utils/utils.ts +0 -44
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Box,
|
|
3
|
-
chakra,
|
|
4
|
-
Input as ChakraInput,
|
|
5
|
-
Textarea as ChakraTextarea,
|
|
6
|
-
useMultiStyleConfig,
|
|
7
|
-
} from "@chakra-ui/react";
|
|
8
|
-
import * as React from "react";
|
|
9
|
-
|
|
10
|
-
import Label from "../Label/Label";
|
|
11
|
-
import HelperErrorText, {
|
|
12
|
-
HelperErrorTextType,
|
|
13
|
-
} from "../HelperErrorText/HelperErrorText";
|
|
14
|
-
|
|
15
|
-
// HTML Input types as defined by MDN: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input
|
|
16
|
-
export type TextInputTypes =
|
|
17
|
-
| "email"
|
|
18
|
-
| "hidden"
|
|
19
|
-
| "number"
|
|
20
|
-
| "password"
|
|
21
|
-
| "text"
|
|
22
|
-
| "textarea"
|
|
23
|
-
| "tel"
|
|
24
|
-
| "url";
|
|
25
|
-
|
|
26
|
-
// Only used internally.
|
|
27
|
-
export const TextInputFormats = {
|
|
28
|
-
email: "jdoe@domain.com",
|
|
29
|
-
hidden: "",
|
|
30
|
-
password: "",
|
|
31
|
-
text: "",
|
|
32
|
-
tel: "(123) 123-1234",
|
|
33
|
-
textarea: "",
|
|
34
|
-
url: "https://domain.com",
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
// Only used internally in `TextInput` and `SearchBar`.
|
|
38
|
-
export type TextInputVariants = "default" | "searchBar" | "searchBarSelect";
|
|
39
|
-
|
|
40
|
-
export interface InputProps {
|
|
41
|
-
/** A class name for the TextInput parent div. */
|
|
42
|
-
className?: string;
|
|
43
|
-
/** The starting value of the input field. */
|
|
44
|
-
defaultValue?: string;
|
|
45
|
-
/** Populates the HelperErrorText for the standard state */
|
|
46
|
-
helperText?: HelperErrorTextType;
|
|
47
|
-
/** ID that other components can cross reference for accessibility purposes */
|
|
48
|
-
id: string;
|
|
49
|
-
/** Populates the HelperErrorText for the error state */
|
|
50
|
-
invalidText?: HelperErrorTextType;
|
|
51
|
-
/** Adds the `disabled` and `aria-disabled` prop to the input when true */
|
|
52
|
-
isDisabled?: boolean;
|
|
53
|
-
/** Adds errored styling to the input/textarea and helper text elements */
|
|
54
|
-
isInvalid?: boolean;
|
|
55
|
-
/** Will add `required` and `aria-required` props to the input/textarea elements */
|
|
56
|
-
isRequired?: boolean;
|
|
57
|
-
/** Provides text for a `Label` component if `showLabel` is set to true;
|
|
58
|
-
* populates an `aria-label` attribute if `showLabel` is set to false. */
|
|
59
|
-
labelText: string;
|
|
60
|
-
/** The max number for a `number` TextInput type. */
|
|
61
|
-
max?: number;
|
|
62
|
-
/** The max length of the input field. */
|
|
63
|
-
maxLength?: number;
|
|
64
|
-
/** The min number for a `number` TextInput type. */
|
|
65
|
-
min?: number;
|
|
66
|
-
/** Used to reference the input element in forms. */
|
|
67
|
-
name?: string;
|
|
68
|
-
/** The action to perform on the `input`/`textarea`'s onChange function */
|
|
69
|
-
onChange?: (
|
|
70
|
-
event:
|
|
71
|
-
| React.ChangeEvent<HTMLInputElement>
|
|
72
|
-
| React.ChangeEvent<HTMLTextAreaElement>
|
|
73
|
-
) => void;
|
|
74
|
-
/** The action to perform on the `input`/`textarea`'s onClick function */
|
|
75
|
-
onClick?: (event: React.MouseEvent<HTMLInputElement, MouseEvent>) => void;
|
|
76
|
-
/** The action to perform on the `input`/`textarea`'s onFocus function */
|
|
77
|
-
onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
78
|
-
/** Populates the placeholder for the input/textarea elements */
|
|
79
|
-
placeholder?: string;
|
|
80
|
-
/** Offers the ability to hide the helper/invalid text. */
|
|
81
|
-
showHelperInvalidText?: boolean;
|
|
82
|
-
/** Offers the ability to show the label onscreen or hide it. Refer to the
|
|
83
|
-
* `labelText` property for more information. */
|
|
84
|
-
showLabel?: boolean;
|
|
85
|
-
/** Whether or not to display the "(Required)" text in the label text.
|
|
86
|
-
* True by default. */
|
|
87
|
-
showRequiredLabel?: boolean;
|
|
88
|
-
/** The amount to increase or decrease when using the number type. */
|
|
89
|
-
step?: number;
|
|
90
|
-
/** FOR INTERNAL DS USE ONLY: the input variant to display. */
|
|
91
|
-
textInputType?: TextInputVariants;
|
|
92
|
-
/** HTML Input types as defined by MDN: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input */
|
|
93
|
-
type?: TextInputTypes;
|
|
94
|
-
/** Populates the value of the input/textarea elements */
|
|
95
|
-
value?: string;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* The type used for `ref`s. We want to extend both `input` and `textarea`
|
|
100
|
-
* since both are available to create through `TextInput`.
|
|
101
|
-
*/
|
|
102
|
-
export type TextInputRefType = HTMLInputElement & HTMLTextAreaElement;
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Renders either an `input` element with a specified type or a `textarea`
|
|
106
|
-
* element. All types will render an accessible `Label` component and an
|
|
107
|
-
* optional `HelperErrorText` component.
|
|
108
|
-
*/
|
|
109
|
-
export const TextInput = chakra(
|
|
110
|
-
React.forwardRef<TextInputRefType, InputProps>(
|
|
111
|
-
(props, ref: React.Ref<TextInputRefType>) => {
|
|
112
|
-
const {
|
|
113
|
-
className,
|
|
114
|
-
defaultValue,
|
|
115
|
-
helperText,
|
|
116
|
-
id,
|
|
117
|
-
invalidText,
|
|
118
|
-
isDisabled = false,
|
|
119
|
-
isInvalid = false,
|
|
120
|
-
isRequired = false,
|
|
121
|
-
labelText,
|
|
122
|
-
max,
|
|
123
|
-
maxLength,
|
|
124
|
-
min,
|
|
125
|
-
name,
|
|
126
|
-
onChange,
|
|
127
|
-
onClick,
|
|
128
|
-
onFocus,
|
|
129
|
-
placeholder,
|
|
130
|
-
showHelperInvalidText = true,
|
|
131
|
-
showLabel = true,
|
|
132
|
-
showRequiredLabel = true,
|
|
133
|
-
step = 1,
|
|
134
|
-
textInputType = "default",
|
|
135
|
-
type = "text",
|
|
136
|
-
value,
|
|
137
|
-
...rest
|
|
138
|
-
} = props;
|
|
139
|
-
const styles = useMultiStyleConfig("TextInput", {
|
|
140
|
-
variant: textInputType,
|
|
141
|
-
});
|
|
142
|
-
const isTextArea = type === "textarea";
|
|
143
|
-
const isHidden = type === "hidden";
|
|
144
|
-
const finalInvalidText = invalidText
|
|
145
|
-
? invalidText
|
|
146
|
-
: "There is an error related to this field.";
|
|
147
|
-
let footnote: HelperErrorTextType = isInvalid
|
|
148
|
-
? finalInvalidText
|
|
149
|
-
: helperText;
|
|
150
|
-
let ariaAttributes = {};
|
|
151
|
-
let fieldOutput;
|
|
152
|
-
let options;
|
|
153
|
-
|
|
154
|
-
if (!id) {
|
|
155
|
-
console.warn(
|
|
156
|
-
"NYPL Reservoir TextInput: This component's required `id` prop was not passed."
|
|
157
|
-
);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
if (!showLabel) {
|
|
161
|
-
ariaAttributes["aria-label"] =
|
|
162
|
-
labelText && footnote ? `${labelText} - ${footnote}` : labelText;
|
|
163
|
-
} else if (helperText) {
|
|
164
|
-
ariaAttributes["aria-describedby"] = `${id}-helperText`;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
if (type === "tel" || type === "url" || type === "email") {
|
|
168
|
-
const example = TextInputFormats[type] || "";
|
|
169
|
-
footnote = (
|
|
170
|
-
<>
|
|
171
|
-
Ex: {example}
|
|
172
|
-
<br />
|
|
173
|
-
{footnote}
|
|
174
|
-
</>
|
|
175
|
-
);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// When the type is "hidden", the input element needs fewer attributes.
|
|
179
|
-
options = isHidden
|
|
180
|
-
? { id, "aria-hidden": isHidden, name, onChange, ref }
|
|
181
|
-
: {
|
|
182
|
-
"aria-required": isRequired,
|
|
183
|
-
defaultValue,
|
|
184
|
-
id,
|
|
185
|
-
isDisabled,
|
|
186
|
-
isRequired,
|
|
187
|
-
isInvalid,
|
|
188
|
-
max,
|
|
189
|
-
maxLength,
|
|
190
|
-
min,
|
|
191
|
-
name,
|
|
192
|
-
onChange,
|
|
193
|
-
onClick,
|
|
194
|
-
onFocus,
|
|
195
|
-
placeholder,
|
|
196
|
-
ref,
|
|
197
|
-
// The `step` attribute is useful for the number type.
|
|
198
|
-
step: type === "number" ? step : null,
|
|
199
|
-
...ariaAttributes,
|
|
200
|
-
...rest,
|
|
201
|
-
};
|
|
202
|
-
// For `input` and `textarea`, all attributes are the same but `input`
|
|
203
|
-
// also needs `type` and `value` to render correctly.
|
|
204
|
-
if (!isTextArea) {
|
|
205
|
-
options = { type, value, ...options } as any;
|
|
206
|
-
fieldOutput = <ChakraInput {...options} __css={styles.input} />;
|
|
207
|
-
} else {
|
|
208
|
-
fieldOutput = (
|
|
209
|
-
<ChakraTextarea {...options} __css={styles.textarea}>
|
|
210
|
-
{value}
|
|
211
|
-
</ChakraTextarea>
|
|
212
|
-
);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
return (
|
|
216
|
-
<Box __css={styles} className={className} {...rest}>
|
|
217
|
-
{labelText && showLabel && !isHidden && (
|
|
218
|
-
<Label
|
|
219
|
-
htmlFor={id}
|
|
220
|
-
id={`${id}-label`}
|
|
221
|
-
isRequired={showRequiredLabel && isRequired}
|
|
222
|
-
>
|
|
223
|
-
{labelText}
|
|
224
|
-
</Label>
|
|
225
|
-
)}
|
|
226
|
-
{fieldOutput}
|
|
227
|
-
{footnote && showHelperInvalidText && !isHidden && (
|
|
228
|
-
<HelperErrorText
|
|
229
|
-
id={`${id}-helperText`}
|
|
230
|
-
isInvalid={isInvalid}
|
|
231
|
-
text={footnote}
|
|
232
|
-
/>
|
|
233
|
-
)}
|
|
234
|
-
</Box>
|
|
235
|
-
);
|
|
236
|
-
}
|
|
237
|
-
)
|
|
238
|
-
);
|
|
239
|
-
|
|
240
|
-
export default TextInput;
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`UI Snapshots renders the text input UI snapshot correctly 1`] = `
|
|
4
|
-
<div
|
|
5
|
-
className="css-1xdhyk6"
|
|
6
|
-
>
|
|
7
|
-
<label
|
|
8
|
-
className="css-1xdhyk6"
|
|
9
|
-
htmlFor="myTextInput"
|
|
10
|
-
id="myTextInput-label"
|
|
11
|
-
>
|
|
12
|
-
Custom Input Label
|
|
13
|
-
<span>
|
|
14
|
-
(Required)
|
|
15
|
-
</span>
|
|
16
|
-
</label>
|
|
17
|
-
<input
|
|
18
|
-
aria-required={true}
|
|
19
|
-
className="chakra-input css-0"
|
|
20
|
-
disabled={false}
|
|
21
|
-
id="myTextInput"
|
|
22
|
-
onBlur={[Function]}
|
|
23
|
-
onFocus={[Function]}
|
|
24
|
-
placeholder="Input Placeholder"
|
|
25
|
-
required={true}
|
|
26
|
-
step={null}
|
|
27
|
-
type="text"
|
|
28
|
-
/>
|
|
29
|
-
</div>
|
|
30
|
-
`;
|
|
31
|
-
|
|
32
|
-
exports[`UI Snapshots renders the text input UI snapshot correctly 2`] = `
|
|
33
|
-
<div
|
|
34
|
-
className="css-1xdhyk6"
|
|
35
|
-
>
|
|
36
|
-
<label
|
|
37
|
-
className="css-1xdhyk6"
|
|
38
|
-
htmlFor="myTextInput"
|
|
39
|
-
id="myTextInput-label"
|
|
40
|
-
>
|
|
41
|
-
Custom Input Label
|
|
42
|
-
</label>
|
|
43
|
-
<input
|
|
44
|
-
className="chakra-input css-0"
|
|
45
|
-
disabled={false}
|
|
46
|
-
id="myTextInput"
|
|
47
|
-
onBlur={[Function]}
|
|
48
|
-
onFocus={[Function]}
|
|
49
|
-
placeholder="Input Placeholder"
|
|
50
|
-
required={false}
|
|
51
|
-
step={null}
|
|
52
|
-
type="text"
|
|
53
|
-
/>
|
|
54
|
-
</div>
|
|
55
|
-
`;
|
|
56
|
-
|
|
57
|
-
exports[`UI Snapshots renders the text input UI snapshot correctly 3`] = `
|
|
58
|
-
<div
|
|
59
|
-
className="css-1xdhyk6"
|
|
60
|
-
>
|
|
61
|
-
<input
|
|
62
|
-
aria-label="Custom Input Label"
|
|
63
|
-
aria-required={true}
|
|
64
|
-
className="chakra-input css-0"
|
|
65
|
-
disabled={false}
|
|
66
|
-
id="myTextInput"
|
|
67
|
-
onBlur={[Function]}
|
|
68
|
-
onFocus={[Function]}
|
|
69
|
-
placeholder="Input Placeholder"
|
|
70
|
-
required={true}
|
|
71
|
-
step={null}
|
|
72
|
-
type="text"
|
|
73
|
-
/>
|
|
74
|
-
</div>
|
|
75
|
-
`;
|
|
76
|
-
|
|
77
|
-
exports[`UI Snapshots renders the text input UI snapshot correctly 4`] = `
|
|
78
|
-
<div
|
|
79
|
-
className="css-1xdhyk6"
|
|
80
|
-
>
|
|
81
|
-
<label
|
|
82
|
-
className="css-1xdhyk6"
|
|
83
|
-
htmlFor="myTextInput"
|
|
84
|
-
id="myTextInput-label"
|
|
85
|
-
>
|
|
86
|
-
Custom Input Label
|
|
87
|
-
<span>
|
|
88
|
-
(Required)
|
|
89
|
-
</span>
|
|
90
|
-
</label>
|
|
91
|
-
<input
|
|
92
|
-
aria-describedby="myTextInput-helperText"
|
|
93
|
-
aria-required={true}
|
|
94
|
-
className="chakra-input css-0"
|
|
95
|
-
disabled={false}
|
|
96
|
-
id="myTextInput"
|
|
97
|
-
onBlur={[Function]}
|
|
98
|
-
onFocus={[Function]}
|
|
99
|
-
placeholder="Input Placeholder"
|
|
100
|
-
required={true}
|
|
101
|
-
step={null}
|
|
102
|
-
type="text"
|
|
103
|
-
/>
|
|
104
|
-
<div
|
|
105
|
-
aria-atomic={true}
|
|
106
|
-
aria-live="off"
|
|
107
|
-
className="css-1xdhyk6"
|
|
108
|
-
dangerouslySetInnerHTML={
|
|
109
|
-
Object {
|
|
110
|
-
"__html": "Custom helper text",
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
data-isinvalid={false}
|
|
114
|
-
id="myTextInput-helperText"
|
|
115
|
-
/>
|
|
116
|
-
</div>
|
|
117
|
-
`;
|
|
118
|
-
|
|
119
|
-
exports[`UI Snapshots renders the text input UI snapshot correctly 5`] = `
|
|
120
|
-
<div
|
|
121
|
-
className="css-1xdhyk6"
|
|
122
|
-
>
|
|
123
|
-
<label
|
|
124
|
-
className="css-1xdhyk6"
|
|
125
|
-
htmlFor="myTextInput"
|
|
126
|
-
id="myTextInput-label"
|
|
127
|
-
>
|
|
128
|
-
Custom Input Label
|
|
129
|
-
<span>
|
|
130
|
-
(Required)
|
|
131
|
-
</span>
|
|
132
|
-
</label>
|
|
133
|
-
<input
|
|
134
|
-
aria-invalid={true}
|
|
135
|
-
aria-required={true}
|
|
136
|
-
className="chakra-input css-0"
|
|
137
|
-
disabled={false}
|
|
138
|
-
id="myTextInput"
|
|
139
|
-
onBlur={[Function]}
|
|
140
|
-
onFocus={[Function]}
|
|
141
|
-
placeholder="Input Placeholder"
|
|
142
|
-
required={true}
|
|
143
|
-
step={null}
|
|
144
|
-
type="text"
|
|
145
|
-
/>
|
|
146
|
-
<div
|
|
147
|
-
aria-atomic={true}
|
|
148
|
-
aria-live="polite"
|
|
149
|
-
className="css-1xdhyk6"
|
|
150
|
-
dangerouslySetInnerHTML={
|
|
151
|
-
Object {
|
|
152
|
-
"__html": "There is an error related to this field.",
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
data-isinvalid={true}
|
|
156
|
-
id="myTextInput-helperText"
|
|
157
|
-
/>
|
|
158
|
-
</div>
|
|
159
|
-
`;
|
|
160
|
-
|
|
161
|
-
exports[`UI Snapshots renders the text input UI snapshot correctly 6`] = `
|
|
162
|
-
<div
|
|
163
|
-
className="css-1xdhyk6"
|
|
164
|
-
>
|
|
165
|
-
<label
|
|
166
|
-
className="css-1xdhyk6"
|
|
167
|
-
htmlFor="myTextInput"
|
|
168
|
-
id="myTextInput-label"
|
|
169
|
-
>
|
|
170
|
-
Custom Input Label
|
|
171
|
-
<span>
|
|
172
|
-
(Required)
|
|
173
|
-
</span>
|
|
174
|
-
</label>
|
|
175
|
-
<input
|
|
176
|
-
aria-required={true}
|
|
177
|
-
className="chakra-input css-0"
|
|
178
|
-
disabled={true}
|
|
179
|
-
id="myTextInput"
|
|
180
|
-
onBlur={[Function]}
|
|
181
|
-
onFocus={[Function]}
|
|
182
|
-
placeholder="Input Placeholder"
|
|
183
|
-
required={true}
|
|
184
|
-
step={null}
|
|
185
|
-
type="text"
|
|
186
|
-
/>
|
|
187
|
-
</div>
|
|
188
|
-
`;
|
|
189
|
-
|
|
190
|
-
exports[`UI Snapshots renders the text input UI snapshot correctly 7`] = `
|
|
191
|
-
<div
|
|
192
|
-
className="css-kle7zy"
|
|
193
|
-
>
|
|
194
|
-
<label
|
|
195
|
-
className="css-1xdhyk6"
|
|
196
|
-
htmlFor="chakra"
|
|
197
|
-
id="chakra-label"
|
|
198
|
-
>
|
|
199
|
-
Custom Input Label
|
|
200
|
-
</label>
|
|
201
|
-
<input
|
|
202
|
-
className="chakra-input css-0"
|
|
203
|
-
disabled={false}
|
|
204
|
-
id="chakra"
|
|
205
|
-
onBlur={[Function]}
|
|
206
|
-
onFocus={[Function]}
|
|
207
|
-
placeholder="Input Placeholder"
|
|
208
|
-
required={false}
|
|
209
|
-
step={null}
|
|
210
|
-
type="text"
|
|
211
|
-
/>
|
|
212
|
-
</div>
|
|
213
|
-
`;
|
|
214
|
-
|
|
215
|
-
exports[`UI Snapshots renders the text input UI snapshot correctly 8`] = `
|
|
216
|
-
<div
|
|
217
|
-
className="css-1xdhyk6"
|
|
218
|
-
data-testid="props"
|
|
219
|
-
>
|
|
220
|
-
<label
|
|
221
|
-
className="css-1xdhyk6"
|
|
222
|
-
htmlFor="props"
|
|
223
|
-
id="props-label"
|
|
224
|
-
>
|
|
225
|
-
Custom Input Label
|
|
226
|
-
</label>
|
|
227
|
-
<input
|
|
228
|
-
className="chakra-input css-0"
|
|
229
|
-
data-testid="props"
|
|
230
|
-
disabled={false}
|
|
231
|
-
id="props"
|
|
232
|
-
onBlur={[Function]}
|
|
233
|
-
onFocus={[Function]}
|
|
234
|
-
placeholder="Input Placeholder"
|
|
235
|
-
required={false}
|
|
236
|
-
step={null}
|
|
237
|
-
type="text"
|
|
238
|
-
/>
|
|
239
|
-
</div>
|
|
240
|
-
`;
|
|
241
|
-
|
|
242
|
-
exports[`UI Snapshots renders the textarea UI snapshot correctly 1`] = `
|
|
243
|
-
<div
|
|
244
|
-
className="css-1xdhyk6"
|
|
245
|
-
>
|
|
246
|
-
<label
|
|
247
|
-
className="css-1xdhyk6"
|
|
248
|
-
htmlFor="myTextarea"
|
|
249
|
-
id="myTextarea-label"
|
|
250
|
-
>
|
|
251
|
-
Custom textarea Label
|
|
252
|
-
</label>
|
|
253
|
-
<textarea
|
|
254
|
-
className="chakra-textarea css-0"
|
|
255
|
-
disabled={false}
|
|
256
|
-
id="myTextarea"
|
|
257
|
-
onBlur={[Function]}
|
|
258
|
-
onFocus={[Function]}
|
|
259
|
-
placeholder="Textarea Placeholder"
|
|
260
|
-
required={false}
|
|
261
|
-
step={null}
|
|
262
|
-
/>
|
|
263
|
-
</div>
|
|
264
|
-
`;
|