@nypl/design-system-react-components 0.25.1 → 0.25.5
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 +118 -1
- package/README.md +98 -50
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/dist/components/Button/Button.d.ts +13 -8
- package/dist/components/Button/ButtonTypes.d.ts +2 -1
- package/dist/components/Card/Card.d.ts +36 -52
- package/dist/components/Card/CardTypes.d.ts +0 -15
- package/dist/components/Checkbox/Checkbox.d.ts +17 -13
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +4 -2
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
- package/dist/components/DatePicker/DatePicker.d.ts +36 -34
- package/dist/components/Fieldset/Fieldset.d.ts +25 -0
- package/dist/components/Heading/Heading.d.ts +4 -4
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
- package/dist/components/Icons/Icon.d.ts +8 -0
- package/dist/components/Icons/IconSvgs.d.ts +11 -0
- package/dist/components/Icons/IconTypes.d.ts +11 -0
- package/dist/components/Image/Image.d.ts +19 -9
- package/dist/components/Image/ImageTypes.d.ts +20 -0
- package/dist/components/Link/Link.d.ts +4 -0
- package/dist/components/List/List.d.ts +19 -14
- package/dist/components/Notification/Notification.d.ts +37 -16
- package/dist/components/Pagination/Pagination.d.ts +16 -13
- package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
- package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
- package/dist/components/Radio/Radio.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
- package/dist/components/SearchBar/SearchBar.d.ts +3 -3
- package/dist/components/Select/Select.d.ts +2 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
- package/dist/components/Slider/Slider.d.ts +57 -0
- package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/TextInput/TextInput.d.ts +12 -0
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
- package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
- package/dist/design-system-react-components.cjs.development.js +6131 -3715
- 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 +6124 -3699
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
- package/dist/hooks/useCarouselStyles.d.ts +16 -0
- package/dist/hooks/useNYPLTheme.d.ts +54 -0
- package/dist/hooks/useWindowSize.d.ts +10 -0
- package/dist/index.d.ts +13 -8
- package/dist/resources.scss +180 -170
- package/dist/styles.css +1 -1
- package/dist/theme/components/button.d.ts +22 -8
- package/dist/theme/components/card.d.ts +168 -0
- package/dist/theme/components/checkbox.d.ts +5 -1
- package/dist/theme/components/checkboxGroup.d.ts +12 -0
- package/dist/theme/components/componentWrapper.d.ts +11 -0
- package/dist/theme/components/datePicker.d.ts +16 -0
- package/dist/theme/components/fieldset.d.ts +27 -0
- package/dist/theme/components/global.d.ts +23 -13
- package/dist/theme/components/globalMixins.d.ts +9 -1
- package/dist/theme/components/heading.d.ts +5 -0
- package/dist/theme/components/helperErrorText.d.ts +10 -0
- package/dist/theme/components/hero.d.ts +1 -0
- package/dist/theme/components/horizontalRule.d.ts +14 -0
- package/dist/theme/components/image.d.ts +31 -0
- package/dist/theme/components/label.d.ts +5 -3
- package/dist/theme/components/link.d.ts +4 -0
- package/dist/theme/components/list.d.ts +89 -0
- package/dist/theme/components/notification.d.ts +75 -0
- package/dist/theme/components/pagination.d.ts +19 -0
- package/dist/theme/components/progressIndicator.d.ts +50 -0
- package/dist/theme/components/radioGroup.d.ts +12 -0
- package/dist/theme/components/select.d.ts +11 -2
- package/dist/theme/components/skeletonLoader.d.ts +98 -0
- package/dist/theme/components/slider.d.ts +51 -0
- package/dist/theme/components/tabs.d.ts +54 -3
- package/dist/theme/components/textInput.d.ts +8 -1
- package/dist/theme/components/videoPlayer.d.ts +40 -0
- package/dist/theme/foundations/breakpoints.d.ts +8 -8
- package/dist/theme/foundations/global.d.ts +6 -1
- package/dist/theme/foundations/radii.d.ts +5 -0
- package/dist/theme/foundations/spacing.d.ts +16 -16
- package/package.json +72 -83
- package/src/__tests__/setup.ts +2 -2
- package/src/components/Accordion/Accordion.stories.mdx +39 -44
- package/src/components/Autosuggest/Autosuggest.stories.mdx +3 -3
- package/src/components/Autosuggest/Autosuggest.stories.tsx +2 -1
- package/src/components/Autosuggest/_Autosuggest.scss +5 -5
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +14 -10
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +23 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +5 -1
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +199 -1
- package/src/components/Button/Button.stories.mdx +15 -10
- package/src/components/Button/Button.test.tsx +21 -7
- package/src/components/Button/Button.tsx +22 -34
- package/src/components/Button/ButtonTypes.tsx +1 -0
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +41 -10
- package/src/components/Card/Card.stories.mdx +296 -259
- package/src/components/Card/Card.test.tsx +156 -84
- package/src/components/Card/Card.tsx +195 -145
- package/src/components/Card/CardTypes.tsx +0 -17
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
- package/src/components/CardEdition/CardEdition.stories.tsx +15 -47
- package/src/components/CardEdition/_CardEdition.scss +22 -23
- package/src/components/Chakra/Box.stories.mdx +15 -16
- package/src/components/Chakra/Center.stories.mdx +31 -16
- package/src/components/Chakra/Grid.stories.mdx +28 -15
- package/src/components/Chakra/Stack.stories.mdx +35 -18
- package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
- package/src/components/Checkbox/Checkbox.test.tsx +47 -2
- package/src/components/Checkbox/Checkbox.tsx +39 -33
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +90 -2
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +82 -2
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +29 -2
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +22 -18
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +47 -81
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
- package/src/components/DatePicker/DatePicker.test.tsx +264 -64
- package/src/components/DatePicker/DatePicker.tsx +159 -128
- package/src/components/DatePicker/_DatePicker.scss +33 -67
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
- package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
- package/src/components/Fieldset/Fieldset.test.tsx +125 -0
- package/src/components/Fieldset/Fieldset.tsx +52 -0
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
- package/src/components/Form/Form.stories.mdx +24 -6
- package/src/components/Form/Form.test.tsx +1 -1
- package/src/components/Form/Form.tsx +1 -0
- package/src/components/Grid/SimpleGrid.stories.mdx +32 -39
- package/src/components/Grid/SimpleGrid.test.tsx +4 -4
- package/src/components/Heading/Heading.stories.mdx +3 -4
- package/src/components/Heading/Heading.tsx +5 -5
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
- package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
- package/src/components/Hero/Hero.stories.mdx +12 -2
- package/src/components/Hero/Hero.tsx +1 -1
- package/src/components/Hero/HeroTypes.tsx +1 -0
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +7 -7
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
- package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
- package/src/components/Icons/Icon.stories.mdx +12 -4
- package/src/components/Icons/Icon.test.tsx +18 -0
- package/src/components/Icons/Icon.tsx +16 -1
- package/src/components/Icons/IconSvgs.tsx +22 -0
- package/src/components/Icons/IconTypes.tsx +11 -0
- package/src/components/Image/Image.stories.mdx +220 -0
- package/src/components/Image/Image.test.tsx +131 -29
- package/src/components/Image/Image.tsx +84 -56
- package/src/components/Image/ImageTypes.ts +22 -0
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
- package/src/components/Input/Input.stories.tsx +23 -67
- package/src/components/Input/Input.test.tsx +4 -4
- package/src/components/Input/_Input.scss +23 -14
- package/src/components/Link/Link.tsx +4 -1
- package/src/components/List/List.stories.mdx +124 -49
- package/src/components/List/List.test.tsx +142 -63
- package/src/components/List/List.tsx +89 -93
- package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
- package/src/components/Modal/Modal.stories.mdx +3 -3
- package/src/components/Modal/_Modal.scss +2 -2
- package/src/components/Notification/Notification.stories.mdx +109 -112
- package/src/components/Notification/Notification.test.tsx +99 -110
- package/src/components/Notification/Notification.tsx +156 -159
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
- package/src/components/Pagination/Pagination.stories.mdx +26 -27
- package/src/components/Pagination/Pagination.stories.tsx +11 -16
- package/src/components/Pagination/Pagination.test.tsx +276 -146
- package/src/components/Pagination/Pagination.tsx +174 -154
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
- package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
- package/src/components/Radio/Radio.test.tsx +20 -4
- package/src/components/Radio/Radio.tsx +6 -3
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
- package/src/components/RadioGroup/RadioGroup.stories.mdx +3 -4
- package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
- package/src/components/RadioGroup/RadioGroup.tsx +19 -19
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
- package/src/components/SearchBar/SearchBar.Test.tsx +20 -1
- package/src/components/SearchBar/SearchBar.stories.mdx +113 -8
- package/src/components/SearchBar/SearchBar.tsx +20 -10
- package/src/components/Select/Select.test.tsx +12 -0
- package/src/components/Select/Select.tsx +5 -2
- package/src/components/Select/SelectTypes.tsx +1 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +28 -59
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +74 -71
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
- package/src/components/Slider/Slider.stories.mdx +529 -0
- package/src/components/Slider/Slider.test.tsx +653 -0
- package/src/components/Slider/Slider.tsx +303 -0
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +1 -1
- package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
- package/src/components/StyleGuide/Buttons.stories.mdx +89 -73
- package/src/components/StyleGuide/ColorCard.tsx +46 -0
- package/src/components/StyleGuide/Colors.stories.mdx +171 -311
- package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
- package/src/components/StyleGuide/Forms.stories.mdx +9 -7
- package/src/components/StyleGuide/Iconography.stories.mdx +85 -91
- package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
- package/src/components/StyleGuide/Typography.stories.mdx +202 -189
- package/src/components/StyleGuide/UIDocCard.tsx +1 -1
- package/src/components/Tabs/Tabs.stories.mdx +73 -11
- package/src/components/Tabs/Tabs.tsx +87 -64
- package/src/components/Template/Template.stories.mdx +25 -27
- package/src/components/TextInput/TextInput.stories.mdx +1 -1
- package/src/components/TextInput/TextInput.test.tsx +22 -2
- package/src/components/TextInput/TextInput.tsx +28 -8
- package/src/components/TextInput/TextInputTypes.tsx +2 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
- package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
- package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
- package/src/docs/Chakra.stories.mdx +244 -63
- package/src/docs/Intro.stories.mdx +5 -2
- package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
- package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
- package/src/hooks/useCarouselStyles.ts +34 -0
- package/src/hooks/useNYPLTheme.ts +67 -0
- package/src/hooks/useWindowSize.ts +40 -0
- package/src/index.ts +22 -19
- package/src/resources.scss +5 -5
- package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
- package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
- package/src/styles/base/{_04-base.scss → _03-base.scss} +7 -2
- package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
- package/src/styles/base/_place-holder.scss +14 -3
- package/src/styles/{03-space → space}/_space-inline.scss +14 -14
- package/src/styles/{03-space → space}/_space-inset.scss +10 -10
- package/src/styles/space/_space-stack.scss +116 -0
- package/src/styles.scss +13 -60
- package/src/theme/components/button.ts +21 -15
- package/src/theme/components/card.ts +174 -0
- package/src/theme/components/checkbox.ts +8 -3
- package/src/theme/components/checkboxGroup.ts +8 -0
- package/src/theme/components/componentWrapper.ts +10 -0
- package/src/theme/components/datePicker.ts +17 -0
- package/src/theme/components/fieldset.ts +18 -0
- package/src/theme/components/global.ts +26 -15
- package/src/theme/components/globalMixins.ts +9 -1
- package/src/theme/components/heading.ts +10 -5
- package/src/theme/components/helperErrorText.ts +9 -0
- package/src/theme/components/hero.ts +4 -3
- package/src/theme/components/horizontalRule.ts +13 -0
- package/src/theme/components/icon.ts +9 -9
- package/src/theme/components/image.ts +116 -0
- package/src/theme/components/label.ts +3 -10
- package/src/theme/components/link.ts +5 -1
- package/src/theme/components/list.ts +73 -0
- package/src/theme/components/notification.ts +93 -0
- package/src/theme/components/pagination.ts +20 -0
- package/src/theme/components/progressIndicator.ts +62 -0
- package/src/theme/components/radio.ts +2 -2
- package/src/theme/components/radioGroup.ts +8 -0
- package/src/theme/components/select.ts +6 -3
- package/src/theme/components/skeletonLoader.ts +107 -0
- package/src/theme/components/slider.ts +79 -0
- package/src/theme/components/statusBadge.ts +1 -2
- package/src/theme/components/tabs.ts +49 -19
- package/src/theme/components/template.ts +8 -8
- package/src/theme/components/textInput.ts +5 -4
- package/src/theme/components/videoPlayer.ts +49 -0
- package/src/theme/foundations/breakpoints.ts +8 -8
- package/src/theme/foundations/global.ts +6 -1
- package/src/theme/foundations/radii.ts +6 -0
- package/src/theme/foundations/spacing.ts +24 -24
- package/src/theme/index.ts +41 -10
- package/src/utils/componentCategories.ts +4 -3
- package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
- package/dist/components/Image/Image.stories.d.ts +0 -18
- package/dist/components/List/List.stories.d.ts +0 -7
- package/dist/theme/components/customCheckboxGroup.d.ts +0 -18
- package/dist/theme/components/customRadioGroup.d.ts +0 -18
- package/src/components/Button/_Button.scss +0 -32
- package/src/components/Card/_Card.scss +0 -308
- package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
- package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
- package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
- package/src/components/Image/Image.stories.tsx +0 -54
- package/src/components/Image/_Image.scss +0 -38
- package/src/components/List/List.stories.tsx +0 -139
- package/src/components/List/_List.scss +0 -76
- package/src/components/Notification/_Notification.scss +0 -110
- package/src/components/Pagination/_Pagination.scss +0 -40
- package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
- package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
- package/src/styles/01-colors/_colors-brand.scss +0 -62
- package/src/styles/01-colors/_colors-utility.scss +0 -67
- package/src/styles/02-typography/_type-scale.css +0 -11
- package/src/styles/02-typography/_type-weight.css +0 -7
- package/src/styles/02-typography/_typefaces.css +0 -4
- package/src/styles/03-space/_space-stack.scss +0 -116
- package/src/styles/03-space/_space.css +0 -30
- package/src/styles/base/_card-grid.scss +0 -78
- package/src/styles/base/_typography.scss +0 -11
- package/src/theme/components/customCheckboxGroup.ts +0 -12
- package/src/theme/components/customRadioGroup.ts +0 -12
|
@@ -5,17 +5,13 @@ exports[`Radio Button renders the UI snapshot correctly 1`] = `
|
|
|
5
5
|
className=" css-0"
|
|
6
6
|
id="radio-group-column"
|
|
7
7
|
>
|
|
8
|
-
<legend
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
<span>
|
|
12
|
-
column
|
|
13
|
-
</span>
|
|
14
|
-
<span
|
|
8
|
+
<legend>
|
|
9
|
+
column
|
|
10
|
+
<div
|
|
15
11
|
className="css-0"
|
|
16
12
|
>
|
|
17
13
|
Optional
|
|
18
|
-
</
|
|
14
|
+
</div>
|
|
19
15
|
</legend>
|
|
20
16
|
<div
|
|
21
17
|
aria-label={null}
|
|
@@ -125,17 +121,13 @@ exports[`Radio Button renders the UI snapshot correctly 2`] = `
|
|
|
125
121
|
className=" css-0"
|
|
126
122
|
id="radio-group-row"
|
|
127
123
|
>
|
|
128
|
-
<legend
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
<span>
|
|
132
|
-
row
|
|
133
|
-
</span>
|
|
134
|
-
<span
|
|
124
|
+
<legend>
|
|
125
|
+
row
|
|
126
|
+
<div
|
|
135
127
|
className="css-0"
|
|
136
128
|
>
|
|
137
129
|
Optional
|
|
138
|
-
</
|
|
130
|
+
</div>
|
|
139
131
|
</legend>
|
|
140
132
|
<div
|
|
141
133
|
aria-label={null}
|
|
@@ -245,17 +237,13 @@ exports[`Radio Button renders the UI snapshot correctly 3`] = `
|
|
|
245
237
|
className=" css-0"
|
|
246
238
|
id="radio-group-noLabel"
|
|
247
239
|
>
|
|
248
|
-
<legend
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
<span>
|
|
252
|
-
no label
|
|
253
|
-
</span>
|
|
254
|
-
<span
|
|
240
|
+
<legend>
|
|
241
|
+
no label
|
|
242
|
+
<div
|
|
255
243
|
className="css-0"
|
|
256
244
|
>
|
|
257
245
|
Optional
|
|
258
|
-
</
|
|
246
|
+
</div>
|
|
259
247
|
</legend>
|
|
260
248
|
<div
|
|
261
249
|
aria-label="no label"
|
|
@@ -365,17 +353,13 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
|
|
|
365
353
|
className=" css-0"
|
|
366
354
|
id="radio-group-helperText"
|
|
367
355
|
>
|
|
368
|
-
<legend
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
<span>
|
|
372
|
-
helperText
|
|
373
|
-
</span>
|
|
374
|
-
<span
|
|
356
|
+
<legend>
|
|
357
|
+
helperText
|
|
358
|
+
<div
|
|
375
359
|
className="css-0"
|
|
376
360
|
>
|
|
377
361
|
Optional
|
|
378
|
-
</
|
|
362
|
+
</div>
|
|
379
363
|
</legend>
|
|
380
364
|
<div
|
|
381
365
|
aria-label={null}
|
|
@@ -483,7 +467,9 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
|
|
|
483
467
|
<div
|
|
484
468
|
aria-atomic={true}
|
|
485
469
|
aria-live="off"
|
|
486
|
-
className="
|
|
470
|
+
className=" css-0"
|
|
471
|
+
data-isinvalid={false}
|
|
472
|
+
id="helperText-helperErrorText"
|
|
487
473
|
>
|
|
488
474
|
helper text
|
|
489
475
|
</div>
|
|
@@ -496,17 +482,13 @@ exports[`Radio Button renders the UI snapshot correctly 5`] = `
|
|
|
496
482
|
className=" css-0"
|
|
497
483
|
id="radio-group-invalidText"
|
|
498
484
|
>
|
|
499
|
-
<legend
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
<span>
|
|
503
|
-
invalidText
|
|
504
|
-
</span>
|
|
505
|
-
<span
|
|
485
|
+
<legend>
|
|
486
|
+
invalidText
|
|
487
|
+
<div
|
|
506
488
|
className="css-0"
|
|
507
489
|
>
|
|
508
490
|
Optional
|
|
509
|
-
</
|
|
491
|
+
</div>
|
|
510
492
|
</legend>
|
|
511
493
|
<div
|
|
512
494
|
aria-label={null}
|
|
@@ -616,12 +598,8 @@ exports[`Radio Button renders the UI snapshot correctly 6`] = `
|
|
|
616
598
|
className=" css-0"
|
|
617
599
|
id="radio-group-optReq"
|
|
618
600
|
>
|
|
619
|
-
<legend
|
|
620
|
-
|
|
621
|
-
>
|
|
622
|
-
<span>
|
|
623
|
-
no optional or required label
|
|
624
|
-
</span>
|
|
601
|
+
<legend>
|
|
602
|
+
no optional or required label
|
|
625
603
|
</legend>
|
|
626
604
|
<div
|
|
627
605
|
aria-label={null}
|
|
@@ -731,17 +709,13 @@ exports[`Radio Button renders the UI snapshot correctly 7`] = `
|
|
|
731
709
|
className=" css-0"
|
|
732
710
|
id="radio-group-required"
|
|
733
711
|
>
|
|
734
|
-
<legend
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
<span>
|
|
738
|
-
required
|
|
739
|
-
</span>
|
|
740
|
-
<span
|
|
712
|
+
<legend>
|
|
713
|
+
required
|
|
714
|
+
<div
|
|
741
715
|
className="css-0"
|
|
742
716
|
>
|
|
743
|
-
|
|
744
|
-
</
|
|
717
|
+
Optional
|
|
718
|
+
</div>
|
|
745
719
|
</legend>
|
|
746
720
|
<div
|
|
747
721
|
aria-label={null}
|
|
@@ -853,17 +827,13 @@ exports[`Radio Button renders the UI snapshot correctly 8`] = `
|
|
|
853
827
|
className=" css-0"
|
|
854
828
|
id="radio-group-invalid"
|
|
855
829
|
>
|
|
856
|
-
<legend
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
<span>
|
|
860
|
-
invalid
|
|
861
|
-
</span>
|
|
862
|
-
<span
|
|
830
|
+
<legend>
|
|
831
|
+
invalid
|
|
832
|
+
<div
|
|
863
833
|
className="css-0"
|
|
864
834
|
>
|
|
865
835
|
Optional
|
|
866
|
-
</
|
|
836
|
+
</div>
|
|
867
837
|
</legend>
|
|
868
838
|
<div
|
|
869
839
|
aria-label={null}
|
|
@@ -872,6 +842,7 @@ exports[`Radio Button renders the UI snapshot correctly 8`] = `
|
|
|
872
842
|
>
|
|
873
843
|
<label
|
|
874
844
|
className="chakra-radio css-78joka"
|
|
845
|
+
data-invalid=""
|
|
875
846
|
>
|
|
876
847
|
<input
|
|
877
848
|
aria-invalid={true}
|
|
@@ -922,6 +893,7 @@ exports[`Radio Button renders the UI snapshot correctly 8`] = `
|
|
|
922
893
|
</label>
|
|
923
894
|
<label
|
|
924
895
|
className="chakra-radio css-78joka"
|
|
896
|
+
data-invalid=""
|
|
925
897
|
>
|
|
926
898
|
<input
|
|
927
899
|
aria-invalid={true}
|
|
@@ -979,17 +951,13 @@ exports[`Radio Button renders the UI snapshot correctly 9`] = `
|
|
|
979
951
|
className=" css-0"
|
|
980
952
|
id="radio-group-disabled"
|
|
981
953
|
>
|
|
982
|
-
<legend
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
<span>
|
|
986
|
-
disabled
|
|
987
|
-
</span>
|
|
988
|
-
<span
|
|
954
|
+
<legend>
|
|
955
|
+
disabled
|
|
956
|
+
<div
|
|
989
957
|
className="css-0"
|
|
990
958
|
>
|
|
991
959
|
Optional
|
|
992
|
-
</
|
|
960
|
+
</div>
|
|
993
961
|
</legend>
|
|
994
962
|
<div
|
|
995
963
|
aria-label={null}
|
|
@@ -998,6 +966,7 @@ exports[`Radio Button renders the UI snapshot correctly 9`] = `
|
|
|
998
966
|
>
|
|
999
967
|
<label
|
|
1000
968
|
className="chakra-radio css-78joka"
|
|
969
|
+
data-disabled=""
|
|
1001
970
|
>
|
|
1002
971
|
<input
|
|
1003
972
|
aria-disabled={true}
|
|
@@ -1048,6 +1017,7 @@ exports[`Radio Button renders the UI snapshot correctly 9`] = `
|
|
|
1048
1017
|
</label>
|
|
1049
1018
|
<label
|
|
1050
1019
|
className="chakra-radio css-78joka"
|
|
1020
|
+
data-disabled=""
|
|
1051
1021
|
>
|
|
1052
1022
|
<input
|
|
1053
1023
|
aria-disabled={true}
|
|
@@ -19,12 +19,13 @@ const optionsGroup = [
|
|
|
19
19
|
"Villagers",
|
|
20
20
|
];
|
|
21
21
|
const selectProps = {
|
|
22
|
-
name: "
|
|
22
|
+
name: "selectName",
|
|
23
23
|
labelText: "Select a category",
|
|
24
24
|
optionsData: optionsGroup,
|
|
25
25
|
};
|
|
26
26
|
const textInputProps = {
|
|
27
27
|
labelText: "Item Search",
|
|
28
|
+
name: "textInputName",
|
|
28
29
|
placeholder: "Item Search",
|
|
29
30
|
};
|
|
30
31
|
const helperErrorText = "Search for items in Animal Crossing New Horizons";
|
|
@@ -102,6 +103,24 @@ describe("SearchBar", () => {
|
|
|
102
103
|
expect(screen.queryByText(helperErrorText)).not.toBeInTheDocument();
|
|
103
104
|
});
|
|
104
105
|
|
|
106
|
+
it("does not render the default invalid text from the Select or TextInput components", () => {
|
|
107
|
+
render(
|
|
108
|
+
<SearchBar
|
|
109
|
+
id="id"
|
|
110
|
+
labelText="searchbar"
|
|
111
|
+
onSubmit={searchBarSubmit}
|
|
112
|
+
selectProps={selectProps}
|
|
113
|
+
textInputProps={textInputProps}
|
|
114
|
+
helperErrorText={helperErrorText}
|
|
115
|
+
invalidText={invalidText}
|
|
116
|
+
isInvalid
|
|
117
|
+
/>
|
|
118
|
+
);
|
|
119
|
+
expect(
|
|
120
|
+
screen.queryByText("There is an error related to this field.")
|
|
121
|
+
).not.toBeInTheDocument();
|
|
122
|
+
});
|
|
123
|
+
|
|
105
124
|
it("calls the callback function on submit ", () => {
|
|
106
125
|
render(
|
|
107
126
|
<SearchBar
|
|
@@ -40,6 +40,11 @@ import DSProvider from "../../theme/provider";
|
|
|
40
40
|
|
|
41
41
|
# SearchBar
|
|
42
42
|
|
|
43
|
+
| Component Version | DS Version |
|
|
44
|
+
| ----------------- | ---------- |
|
|
45
|
+
| Added | `0.0.4` |
|
|
46
|
+
| Latest | `0.25.4` |
|
|
47
|
+
|
|
43
48
|
<Description of={SearchBar} />
|
|
44
49
|
|
|
45
50
|
The main wrapper element that is rendered is a `<form>` DOM element. All the
|
|
@@ -51,6 +56,9 @@ based on the required props.
|
|
|
51
56
|
The `Select` dropdown narrows the search within a specific category, typically
|
|
52
57
|
title or author. Toggle the `Select` through the Controls.
|
|
53
58
|
|
|
59
|
+
Note: The labels for the `Select` and `TextInput` components are not visible but
|
|
60
|
+
aria-labels are used to make these children components accessible.
|
|
61
|
+
|
|
54
62
|
export const optionsGroup = [
|
|
55
63
|
"Art",
|
|
56
64
|
"Bushes",
|
|
@@ -68,13 +76,13 @@ export const optionsGroup = [
|
|
|
68
76
|
<Story
|
|
69
77
|
name="Basic"
|
|
70
78
|
args={{
|
|
71
|
-
|
|
72
|
-
showSelect: true,
|
|
79
|
+
helperErrorText: "Search for items in Animal Crossing New Horizons",
|
|
73
80
|
invalidText: "Could not find the item :(",
|
|
74
81
|
isDisabled: false,
|
|
75
82
|
isInvalid: false,
|
|
76
83
|
isRequired: false,
|
|
77
|
-
|
|
84
|
+
showHelperText: true,
|
|
85
|
+
showSelect: true,
|
|
78
86
|
}}
|
|
79
87
|
>
|
|
80
88
|
{(args) => (
|
|
@@ -83,13 +91,14 @@ export const optionsGroup = [
|
|
|
83
91
|
{...args}
|
|
84
92
|
selectProps={
|
|
85
93
|
args.showSelect && {
|
|
86
|
-
name: "nhItemSearch",
|
|
87
94
|
labelText: "Select a category",
|
|
95
|
+
name: "selectName",
|
|
88
96
|
optionsData: optionsGroup,
|
|
89
97
|
}
|
|
90
98
|
}
|
|
91
99
|
textInputProps={{
|
|
92
100
|
labelText: "Item Search",
|
|
101
|
+
name: "textInputName",
|
|
93
102
|
placeholder: "Item Search",
|
|
94
103
|
}}
|
|
95
104
|
helperErrorText={args.showHelperText && args.helperErrorText}
|
|
@@ -127,14 +136,19 @@ const selectProps = {
|
|
|
127
136
|
### TextInput Component
|
|
128
137
|
|
|
129
138
|
To render the `TextInput` component, an object must be passed to the
|
|
130
|
-
`textInputProps` prop. It _must_ include `labelText` and `placeholder`
|
|
139
|
+
`textInputProps` prop. It _must_ include `labelText`, `name`, and `placeholder`
|
|
131
140
|
properties. The `labelText` value won't be rendered but will be used for its
|
|
132
|
-
`aria-label` attribute.
|
|
141
|
+
`aria-label` attribute. Optional values to pass include `onChange` and `value`.
|
|
133
142
|
|
|
134
143
|
```
|
|
135
144
|
const textInputProps = {
|
|
136
145
|
labelText: "Item Search",
|
|
146
|
+
name: "textInputName",
|
|
147
|
+
onChange: (event) => {
|
|
148
|
+
console.log(event.target.value);
|
|
149
|
+
},
|
|
137
150
|
placeholder: "Item Search",
|
|
151
|
+
value: "Horizon"
|
|
138
152
|
};
|
|
139
153
|
|
|
140
154
|
// ...
|
|
@@ -202,8 +216,8 @@ precedence.
|
|
|
202
216
|
<Story
|
|
203
217
|
name="Search Autocomplete"
|
|
204
218
|
args={{
|
|
205
|
-
isInvalid: false,
|
|
206
219
|
isDisabled: false,
|
|
220
|
+
isInvalid: false,
|
|
207
221
|
isRequired: false,
|
|
208
222
|
}}
|
|
209
223
|
>
|
|
@@ -237,9 +251,10 @@ handle the error state yourself.
|
|
|
237
251
|
onSubmit={() => {}}
|
|
238
252
|
textInputProps={{
|
|
239
253
|
labelText: "Item Search",
|
|
254
|
+
name: "textInputName",
|
|
240
255
|
placeholder: "Item Search",
|
|
241
256
|
}}
|
|
242
|
-
helperErrorText="
|
|
257
|
+
helperErrorText="This is the helper text!"
|
|
243
258
|
invalidText="Could not find the item :("
|
|
244
259
|
isInvalid
|
|
245
260
|
/>
|
|
@@ -258,6 +273,7 @@ handle the disabled state yourself.
|
|
|
258
273
|
obSubmit={() => {}}
|
|
259
274
|
textInputProps={{
|
|
260
275
|
labelText: "Item Search",
|
|
276
|
+
name: "textInputName",
|
|
261
277
|
placeholder: "Item Search",
|
|
262
278
|
}}
|
|
263
279
|
helperErrorText="Reason for disabled state."
|
|
@@ -265,3 +281,92 @@ handle the disabled state yourself.
|
|
|
265
281
|
/>
|
|
266
282
|
</DSProvider>
|
|
267
283
|
</Canvas>
|
|
284
|
+
|
|
285
|
+
### TextInput and onSubmit Values
|
|
286
|
+
|
|
287
|
+
_NOTE: open the browser console to see the values logged in the example below._
|
|
288
|
+
|
|
289
|
+
It is possible to get certain values from the `SearchBar` component by passing
|
|
290
|
+
callback functions as props.
|
|
291
|
+
|
|
292
|
+
The keyword value in the `TextInput` component can be accessed by passing a
|
|
293
|
+
function to the `onChange` property in the `textInputProp` prop. This is useful
|
|
294
|
+
for validating the keyword the user entered.
|
|
295
|
+
|
|
296
|
+
To get values when the form is submitted, you must:
|
|
297
|
+
|
|
298
|
+
- pass values for the `name` property in the `selectProps` and `textInputProps`
|
|
299
|
+
prop objects.
|
|
300
|
+
- get the values returned in the `onSubmit` callback function.
|
|
301
|
+
|
|
302
|
+
In the following example, the `name` for the `Select` is "selectName" and the
|
|
303
|
+
`name` for the `TextInput` is "textInputName". The `onSubmit` function can get
|
|
304
|
+
the submitted values through the `event` object. In the example below, the
|
|
305
|
+
values can be retrieved as `event.target.selectName.value` and
|
|
306
|
+
`event.target.textInputName.value`.
|
|
307
|
+
|
|
308
|
+
```tsx
|
|
309
|
+
function SearchBarValueExample() {
|
|
310
|
+
const textInputOnChange = (event) => {
|
|
311
|
+
console.log(`onChange TextInput value: ${event.target.value}`);
|
|
312
|
+
};
|
|
313
|
+
const onSubmit = (event) => {
|
|
314
|
+
event.preventDefault();
|
|
315
|
+
console.log(`onSubmit Select value: ${event.target.searchName.value}`);
|
|
316
|
+
console.log(`onSubmit TextInput value ${event.target.textInputName.value}`);
|
|
317
|
+
};
|
|
318
|
+
return (
|
|
319
|
+
<SearchBar
|
|
320
|
+
onSubmit={onSubmit}
|
|
321
|
+
selectProps={{
|
|
322
|
+
labelText: "Select a category",
|
|
323
|
+
name: "selectName",
|
|
324
|
+
optionsData: optionsGroup,
|
|
325
|
+
}}
|
|
326
|
+
textInputProps={{
|
|
327
|
+
labelText: "Item Search",
|
|
328
|
+
name: "textInputName",
|
|
329
|
+
onChange: textInputOnChange,
|
|
330
|
+
placeholder: "Item Search",
|
|
331
|
+
}}
|
|
332
|
+
helperErrorText="Search for an item"
|
|
333
|
+
invalidText="Could not find the item :("
|
|
334
|
+
/>
|
|
335
|
+
);
|
|
336
|
+
}
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
export function SearchBarValueExample() {
|
|
340
|
+
const textInputOnChange = (event) => {
|
|
341
|
+
console.log(`onChange TextInput value: ${event.target.value}`);
|
|
342
|
+
};
|
|
343
|
+
const onSubmit = (event) => {
|
|
344
|
+
event.preventDefault();
|
|
345
|
+
console.log(`onSubmit Select value: ${event.target.selectName.value}`);
|
|
346
|
+
console.log(`onSubmit TextInput value ${event.target.textInputName.value}`);
|
|
347
|
+
};
|
|
348
|
+
return (
|
|
349
|
+
<SearchBar
|
|
350
|
+
onSubmit={onSubmit}
|
|
351
|
+
selectProps={{
|
|
352
|
+
labelText: "Select a category",
|
|
353
|
+
name: "selectName",
|
|
354
|
+
optionsData: optionsGroup,
|
|
355
|
+
}}
|
|
356
|
+
textInputProps={{
|
|
357
|
+
labelText: "Item Search",
|
|
358
|
+
name: "textInputName",
|
|
359
|
+
onChange: textInputOnChange,
|
|
360
|
+
placeholder: "Item Search",
|
|
361
|
+
}}
|
|
362
|
+
helperErrorText="Search for an item"
|
|
363
|
+
invalidText="Could not find the item :("
|
|
364
|
+
/>
|
|
365
|
+
);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
<Canvas>
|
|
369
|
+
<DSProvider>
|
|
370
|
+
<SearchBarValueExample />
|
|
371
|
+
</DSProvider>
|
|
372
|
+
</Canvas>
|
|
@@ -20,7 +20,14 @@ interface SelectProps {
|
|
|
20
20
|
}
|
|
21
21
|
interface TextInputProps {
|
|
22
22
|
labelText: string;
|
|
23
|
+
name: string;
|
|
24
|
+
onChange?: (
|
|
25
|
+
event:
|
|
26
|
+
| React.ChangeEvent<HTMLInputElement>
|
|
27
|
+
| React.ChangeEvent<HTMLTextAreaElement>
|
|
28
|
+
) => void;
|
|
23
29
|
placeholder: string;
|
|
30
|
+
value?: string;
|
|
24
31
|
}
|
|
25
32
|
|
|
26
33
|
export interface SearchBarProps {
|
|
@@ -51,9 +58,6 @@ export interface SearchBarProps {
|
|
|
51
58
|
onSubmit: (event: React.FormEvent) => void;
|
|
52
59
|
/** Required props to render a `Select` element. */
|
|
53
60
|
selectProps?: SelectProps | undefined;
|
|
54
|
-
/** Will be used to visually display the label text for this
|
|
55
|
-
* `SearchBar` component. False by default. */
|
|
56
|
-
showLabel?: boolean;
|
|
57
61
|
/** Custom input element to render instead of a `TextInput` element. */
|
|
58
62
|
textInputElement?: JSX.Element;
|
|
59
63
|
/** Required props to render a `TextInput` element. */
|
|
@@ -83,7 +87,14 @@ export default function SearchBar(props: SearchBarProps) {
|
|
|
83
87
|
textInputProps,
|
|
84
88
|
} = props;
|
|
85
89
|
const styles = useMultiStyleConfig("SearchBar", { hasSelect: selectProps });
|
|
86
|
-
const stateProps = {
|
|
90
|
+
const stateProps = {
|
|
91
|
+
helperText: "",
|
|
92
|
+
isDisabled,
|
|
93
|
+
isInvalid,
|
|
94
|
+
isRequired,
|
|
95
|
+
showHelperInvalidText: false,
|
|
96
|
+
showLabel: false,
|
|
97
|
+
};
|
|
87
98
|
const helperErrorTextID = generateUUID();
|
|
88
99
|
const ariaDescribedby = helperErrorTextID;
|
|
89
100
|
const footnote = isInvalid ? invalidText : helperErrorText;
|
|
@@ -94,8 +105,6 @@ export default function SearchBar(props: SearchBarProps) {
|
|
|
94
105
|
id={generateUUID()}
|
|
95
106
|
name={selectProps?.name}
|
|
96
107
|
labelText={selectProps?.labelText}
|
|
97
|
-
showLabel={false}
|
|
98
|
-
helperText=""
|
|
99
108
|
type={SelectTypes.SearchBar}
|
|
100
109
|
{...stateProps}
|
|
101
110
|
>
|
|
@@ -112,14 +121,15 @@ export default function SearchBar(props: SearchBarProps) {
|
|
|
112
121
|
id={generateUUID()}
|
|
113
122
|
labelText={textInputProps?.labelText}
|
|
114
123
|
placeholder={textInputProps?.placeholder}
|
|
124
|
+
onChange={textInputProps?.onChange}
|
|
125
|
+
name={textInputProps?.name}
|
|
115
126
|
type={TextInputTypes.text}
|
|
116
127
|
variantType={
|
|
117
128
|
selectElem
|
|
118
129
|
? TextInputVariants.SearchBarSelect
|
|
119
130
|
: TextInputVariants.SearchBar
|
|
120
131
|
}
|
|
121
|
-
|
|
122
|
-
showLabel={false}
|
|
132
|
+
value={textInputProps?.value}
|
|
123
133
|
{...stateProps}
|
|
124
134
|
/>
|
|
125
135
|
);
|
|
@@ -130,7 +140,7 @@ export default function SearchBar(props: SearchBarProps) {
|
|
|
130
140
|
buttonType={ButtonTypes.SearchBar}
|
|
131
141
|
type="submit"
|
|
132
142
|
onClick={buttonOnClick}
|
|
133
|
-
|
|
143
|
+
isDisabled={isDisabled}
|
|
134
144
|
>
|
|
135
145
|
<Icon
|
|
136
146
|
name={IconNames.Search}
|
|
@@ -142,7 +152,7 @@ export default function SearchBar(props: SearchBarProps) {
|
|
|
142
152
|
);
|
|
143
153
|
// Render the `HelperErrorText` component.
|
|
144
154
|
const helperErrorTextElem = footnote && (
|
|
145
|
-
<HelperErrorText id={helperErrorTextID}
|
|
155
|
+
<HelperErrorText id={helperErrorTextID} isInvalid={isInvalid}>
|
|
146
156
|
{footnote}
|
|
147
157
|
</HelperErrorText>
|
|
148
158
|
);
|
|
@@ -149,6 +149,18 @@ describe("Select", () => {
|
|
|
149
149
|
).toBeInTheDocument();
|
|
150
150
|
});
|
|
151
151
|
|
|
152
|
+
it("does not render the error text when 'isInvalid' is true and 'showHelperInvalidText' is false", () => {
|
|
153
|
+
render(
|
|
154
|
+
<Select {...baseProps} showHelperInvalidText={false} isInvalid>
|
|
155
|
+
{baseOptions}
|
|
156
|
+
</Select>
|
|
157
|
+
);
|
|
158
|
+
|
|
159
|
+
expect(
|
|
160
|
+
screen.queryByText("There is an error related to this field.")
|
|
161
|
+
).not.toBeInTheDocument();
|
|
162
|
+
});
|
|
163
|
+
|
|
152
164
|
it("renders custom error text when 'invalidText' prop is passed and 'isInvalid' prop is set to true", () => {
|
|
153
165
|
render(
|
|
154
166
|
<Select
|
|
@@ -38,6 +38,8 @@ export interface SelectProps {
|
|
|
38
38
|
/** The callback function to get the selected value.
|
|
39
39
|
* Should be passed along with `value` for controlled components. */
|
|
40
40
|
onChange?: (event: React.FormEvent) => void;
|
|
41
|
+
/** Offers the ability to hide the helper/invalid text. */
|
|
42
|
+
showHelperInvalidText?: boolean;
|
|
41
43
|
/** Offers the ability to show the select's label onscreen or hide it. Refer
|
|
42
44
|
* to the `labelText` property for more information. */
|
|
43
45
|
showLabel?: boolean;
|
|
@@ -70,6 +72,7 @@ const Select = React.forwardRef<
|
|
|
70
72
|
labelText,
|
|
71
73
|
name,
|
|
72
74
|
onChange,
|
|
75
|
+
showHelperInvalidText = true,
|
|
73
76
|
showLabel = true,
|
|
74
77
|
showOptReqLabel = true,
|
|
75
78
|
type = SelectTypes.Default,
|
|
@@ -131,9 +134,9 @@ const Select = React.forwardRef<
|
|
|
131
134
|
>
|
|
132
135
|
{children}
|
|
133
136
|
</ChakraSelect>
|
|
134
|
-
{footnote && (
|
|
137
|
+
{footnote && showHelperInvalidText && (
|
|
135
138
|
<Box __css={styles.helper} aria-disabled={isDisabled}>
|
|
136
|
-
<HelperErrorText
|
|
139
|
+
<HelperErrorText isInvalid={isInvalid} id={id + `-helperText`}>
|
|
137
140
|
{footnote}
|
|
138
141
|
</HelperErrorText>
|
|
139
142
|
</Box>
|