@nypl/design-system-react-components 0.25.8 → 0.25.9

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.
Files changed (250) hide show
  1. package/CHANGELOG.md +45 -1
  2. package/README.md +1 -1
  3. package/dist/components/Button/Button.d.ts +6 -6
  4. package/dist/components/Button/ButtonTypes.d.ts +0 -1
  5. package/dist/components/Card/Card.d.ts +6 -4
  6. package/dist/components/Checkbox/Checkbox.d.ts +3 -2
  7. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
  8. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
  9. package/dist/components/DatePicker/DatePicker.d.ts +3 -2
  10. package/dist/components/Form/Form.d.ts +2 -2
  11. package/dist/components/Heading/Heading.d.ts +7 -3
  12. package/dist/components/Heading/HeadingTypes.d.ts +6 -6
  13. package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
  14. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -2
  15. package/dist/components/Icons/Icon.d.ts +4 -4
  16. package/dist/components/Icons/IconSvgs.d.ts +0 -21
  17. package/dist/components/Icons/IconTypes.d.ts +0 -23
  18. package/dist/components/Image/Image.d.ts +11 -3
  19. package/dist/components/Logo/Logo.d.ts +28 -0
  20. package/dist/components/Logo/LogoSvgs.d.ts +18 -0
  21. package/dist/components/Logo/LogoTypes.d.ts +30 -0
  22. package/dist/components/Modal/Modal.d.ts +0 -4
  23. package/dist/components/Notification/Notification.d.ts +2 -2
  24. package/dist/components/Placeholder/Placeholder.d.ts +3 -5
  25. package/dist/components/Radio/Radio.d.ts +6 -5
  26. package/dist/components/RadioGroup/RadioGroup.d.ts +3 -2
  27. package/dist/components/SearchBar/SearchBar.d.ts +10 -2
  28. package/dist/components/Select/Select.d.ts +3 -2
  29. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
  30. package/dist/components/Slider/Slider.d.ts +3 -2
  31. package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
  32. package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
  33. package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
  34. package/dist/components/Table/Table.d.ts +23 -0
  35. package/dist/components/Template/Template.d.ts +8 -3
  36. package/dist/components/Text/Text.d.ts +2 -2
  37. package/dist/components/TextInput/TextInput.d.ts +4 -3
  38. package/dist/components/Toggle/Toggle.d.ts +3 -2
  39. package/dist/components/VideoPlayer/VideoPlayer.d.ts +14 -5
  40. package/dist/design-system-react-components.cjs.development.js +5630 -5692
  41. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  42. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  43. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  44. package/dist/design-system-react-components.esm.js +4304 -4362
  45. package/dist/design-system-react-components.esm.js.map +1 -1
  46. package/dist/index.d.ts +6 -4
  47. package/dist/styles.css +2 -2
  48. package/dist/theme/components/button.d.ts +0 -12
  49. package/dist/theme/components/card.d.ts +14 -2
  50. package/dist/theme/components/customTable.d.ts +47 -0
  51. package/dist/theme/components/fieldset.d.ts +2 -2
  52. package/dist/theme/components/global.d.ts +1 -1
  53. package/dist/theme/components/heading.d.ts +4 -0
  54. package/dist/theme/components/label.d.ts +1 -1
  55. package/dist/theme/components/link.d.ts +14 -1
  56. package/dist/theme/components/list.d.ts +0 -2
  57. package/dist/theme/components/logo.d.ts +4 -0
  58. package/dist/theme/components/searchBar.d.ts +7 -13
  59. package/dist/theme/components/select.d.ts +1 -0
  60. package/dist/theme/components/structuredContent.d.ts +33 -0
  61. package/dist/theme/components/template.d.ts +10 -10
  62. package/dist/theme/components/textInput.d.ts +2 -0
  63. package/dist/theme/components/toggle.d.ts +8 -5
  64. package/dist/utils/utils.d.ts +10 -0
  65. package/package.json +1 -2
  66. package/src/__tests__/utils/utils.test.ts +23 -1
  67. package/src/components/Accordion/Accordion.stories.mdx +14 -12
  68. package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
  69. package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
  70. package/src/components/Autosuggest/_Autosuggest.scss +2 -6
  71. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +30 -11
  72. package/src/components/Button/Button.stories.mdx +93 -48
  73. package/src/components/Button/Button.test.tsx +0 -12
  74. package/src/components/Button/Button.tsx +7 -7
  75. package/src/components/Button/ButtonTypes.tsx +0 -1
  76. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
  77. package/src/components/Card/Card.stories.mdx +186 -71
  78. package/src/components/Card/Card.test.tsx +45 -22
  79. package/src/components/Card/Card.tsx +17 -5
  80. package/src/components/Card/__snapshots__/Card.test.tsx.snap +8 -2
  81. package/src/components/Chakra/Box.stories.mdx +3 -3
  82. package/src/components/Chakra/Center.stories.mdx +5 -5
  83. package/src/components/Chakra/Grid.stories.mdx +3 -3
  84. package/src/components/Chakra/Stack.stories.mdx +2 -2
  85. package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
  86. package/src/components/Checkbox/Checkbox.tsx +13 -8
  87. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
  88. package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
  89. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
  90. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
  91. package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
  92. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
  93. package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
  94. package/src/components/DatePicker/DatePicker.tsx +10 -6
  95. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +36 -18
  96. package/src/components/Fieldset/Fieldset.stories.mdx +19 -8
  97. package/src/components/Form/Form.stories.mdx +49 -41
  98. package/src/components/Form/Form.tsx +5 -4
  99. package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
  100. package/src/components/Heading/Heading.stories.mdx +59 -23
  101. package/src/components/Heading/Heading.test.tsx +82 -18
  102. package/src/components/Heading/Heading.tsx +31 -31
  103. package/src/components/Heading/HeadingTypes.tsx +6 -6
  104. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
  105. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
  106. package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
  107. package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
  108. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
  109. package/src/components/Hero/Hero.stories.mdx +72 -53
  110. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +9 -8
  111. package/src/components/HorizontalRule/HorizontalRule.tsx +2 -4
  112. package/src/components/Icons/Icon.stories.mdx +77 -76
  113. package/src/components/Icons/Icon.tsx +4 -5
  114. package/src/components/Icons/IconSvgs.tsx +0 -42
  115. package/src/components/Icons/IconTypes.tsx +0 -24
  116. package/src/components/Image/Image.stories.mdx +66 -18
  117. package/src/components/Image/Image.tsx +21 -10
  118. package/src/components/Label/Label.stories.mdx +20 -19
  119. package/src/components/Link/Link.stories.mdx +102 -51
  120. package/src/components/Link/Link.test.tsx +38 -8
  121. package/src/components/Link/Link.tsx +19 -12
  122. package/src/components/Link/__snapshots__/Link.test.tsx.snap +60 -0
  123. package/src/components/List/List.stories.mdx +36 -24
  124. package/src/components/Logo/Logo.stories.mdx +220 -0
  125. package/src/components/Logo/Logo.test.tsx +98 -0
  126. package/src/components/Logo/Logo.tsx +97 -0
  127. package/src/components/Logo/LogoSvgs.tsx +34 -0
  128. package/src/components/Logo/LogoTypes.tsx +32 -0
  129. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
  130. package/src/components/Modal/Modal.stories.mdx +20 -5
  131. package/src/components/Modal/Modal.tsx +2 -8
  132. package/src/components/Notification/Notification.stories.mdx +61 -38
  133. package/src/components/Notification/Notification.tsx +9 -4
  134. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +4 -0
  135. package/src/components/Pagination/Pagination.stories.mdx +17 -6
  136. package/src/components/Pagination/Pagination.tsx +1 -1
  137. package/src/components/Placeholder/Placeholder.tsx +7 -14
  138. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +72 -43
  139. package/src/components/Radio/Radio.stories.mdx +39 -19
  140. package/src/components/Radio/Radio.tsx +13 -9
  141. package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
  142. package/src/components/RadioGroup/RadioGroup.tsx +15 -11
  143. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +6 -3
  144. package/src/components/SearchBar/SearchBar.Test.tsx +58 -10
  145. package/src/components/SearchBar/SearchBar.stories.mdx +109 -30
  146. package/src/components/SearchBar/SearchBar.tsx +53 -32
  147. package/src/components/Select/Select.stories.mdx +48 -14
  148. package/src/components/Select/Select.tsx +16 -10
  149. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
  150. package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
  151. package/src/components/Slider/Slider.stories.mdx +72 -22
  152. package/src/components/Slider/Slider.tsx +15 -10
  153. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +60 -30
  154. package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
  155. package/src/components/StatusBadge/StatusBadge.tsx +2 -1
  156. package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
  157. package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
  158. package/src/components/StructuredContent/StructuredContent.tsx +153 -0
  159. package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
  160. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
  161. package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
  162. package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
  163. package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
  164. package/src/components/StyleGuide/ColorCard.tsx +1 -2
  165. package/src/components/StyleGuide/Colors.stories.mdx +3 -11
  166. package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
  167. package/src/components/StyleGuide/Forms.stories.mdx +2 -10
  168. package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
  169. package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
  170. package/src/components/StyleGuide/Typography.stories.mdx +64 -76
  171. package/src/components/Table/Table.stories.mdx +66 -0
  172. package/src/components/Table/Table.test.tsx +60 -0
  173. package/src/components/Table/Table.tsx +116 -0
  174. package/src/components/Tabs/Tabs.stories.mdx +19 -13
  175. package/src/components/Tabs/Tabs.test.tsx +1 -1
  176. package/src/components/Template/Template.stories.mdx +56 -47
  177. package/src/components/Template/Template.test.tsx +65 -5
  178. package/src/components/Template/Template.tsx +35 -5
  179. package/src/components/Template/__snapshots__/Template.test.tsx.snap +76 -0
  180. package/src/components/Text/Text.stories.mdx +33 -11
  181. package/src/components/Text/Text.tsx +2 -2
  182. package/src/components/TextInput/TextInput.stories.mdx +84 -17
  183. package/src/components/TextInput/TextInput.test.tsx +96 -0
  184. package/src/components/TextInput/TextInput.tsx +12 -8
  185. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
  186. package/src/components/Toggle/Toggle.stories.mdx +33 -9
  187. package/src/components/Toggle/Toggle.tsx +14 -9
  188. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +64 -14
  189. package/src/components/VideoPlayer/VideoPlayer.tsx +17 -7
  190. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +12 -6
  191. package/src/docs/Chakra.stories.mdx +5 -8
  192. package/src/docs/Intro.stories.mdx +2 -2
  193. package/src/index.ts +5 -4
  194. package/src/styles/base/_03-base.scss +1 -1
  195. package/src/styles/base/_place-holder.scss +7 -7
  196. package/src/styles.scss +1 -5
  197. package/src/theme/components/breadcrumb.ts +3 -3
  198. package/src/theme/components/button.ts +5 -12
  199. package/src/theme/components/card.ts +5 -2
  200. package/src/theme/components/checkbox.ts +1 -1
  201. package/src/theme/components/customTable.ts +50 -0
  202. package/src/theme/components/datePicker.ts +1 -1
  203. package/src/theme/components/global.ts +6 -6
  204. package/src/theme/components/heading.ts +13 -11
  205. package/src/theme/components/helperErrorText.ts +1 -1
  206. package/src/theme/components/image.ts +1 -1
  207. package/src/theme/components/link.ts +17 -5
  208. package/src/theme/components/list.ts +1 -3
  209. package/src/theme/components/logo.ts +54 -0
  210. package/src/theme/components/notification.ts +1 -1
  211. package/src/theme/components/searchBar.ts +7 -13
  212. package/src/theme/components/select.ts +1 -0
  213. package/src/theme/components/statusBadge.ts +1 -1
  214. package/src/theme/components/structuredContent.ts +54 -0
  215. package/src/theme/components/template.ts +10 -10
  216. package/src/theme/components/text.ts +6 -6
  217. package/src/theme/components/textInput.ts +1 -0
  218. package/src/theme/components/toggle.ts +9 -5
  219. package/src/theme/components/videoPlayer.ts +0 -2
  220. package/src/theme/foundations/global.ts +2 -2
  221. package/src/theme/foundations/typography.ts +84 -12
  222. package/src/theme/index.ts +6 -0
  223. package/src/utils/componentCategories.ts +1 -1
  224. package/src/utils/utils.ts +17 -0
  225. package/dist/__tests__/utils/bem.test.d.ts +0 -1
  226. package/dist/components/CardEdition/CardEdition.d.ts +0 -21
  227. package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
  228. package/dist/components/Input/Input.d.ts +0 -36
  229. package/dist/components/Input/Input.stories.d.ts +0 -29
  230. package/dist/components/Input/InputTypes.d.ts +0 -6
  231. package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
  232. package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
  233. package/dist/helpers/getCSSVariable.d.ts +0 -1
  234. package/dist/interfaces.d.ts +0 -3
  235. package/dist/utils/bem.d.ts +0 -1
  236. package/src/__tests__/utils/bem.test.ts +0 -37
  237. package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
  238. package/src/components/CardEdition/CardEdition.test.tsx +0 -395
  239. package/src/components/CardEdition/CardEdition.tsx +0 -60
  240. package/src/components/CardEdition/_CardEdition.scss +0 -137
  241. package/src/components/Input/Input.stories.tsx +0 -133
  242. package/src/components/Input/Input.test.tsx +0 -266
  243. package/src/components/Input/Input.tsx +0 -81
  244. package/src/components/Input/InputTypes.tsx +0 -8
  245. package/src/components/Input/_Input.scss +0 -78
  246. package/src/components/StyleGuide/UIDocCard.tsx +0 -36
  247. package/src/helpers/CSSVariablesHelper.tsx +0 -34
  248. package/src/helpers/getCSSVariable.tsx +0 -5
  249. package/src/interfaces.ts +0 -3
  250. package/src/utils/bem.ts +0 -44
@@ -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
- } from "@storybook/addon-docs/blocks";
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 SimpleGrid from "../Grid/SimpleGrid";
19
- import { GridGaps } from "../Grid/GridTypes";
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
- id: { table: { disable: true } },
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="Basic with props"
80
+ name="ProgressIndicator with Controls"
49
81
  args={{
50
82
  darkMode: false,
51
- indicatorType: ProgressIndicatorTypes.Linear,
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) => <ProgressIndicator {...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="Basic with props" />
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
- {(args) => <ProgressIndicator {...args} />}
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
- {(args) => <ProgressIndicator {...args} />}
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
- value={50}
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
- labelText="Dark Mode"
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: { table: { disable: true } },
29
- id: { table: { disable: true } },
30
- isChecked: { table: { disable: true } },
31
- onChange: { table: { disable: true } },
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.0` |
56
+ | Latest | `0.25.9` |
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?: string;
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 isInvalid={isInvalid} id={`${id}-helperText`}>
104
- {footnote}
105
- </HelperErrorText>
105
+ <HelperErrorText
106
+ id={`${id}-helperText`}
107
+ isInvalid={isInvalid}
108
+ text={footnote}
109
+ />
106
110
  </Box>
107
111
  )}
108
112
  </>
@@ -1,17 +1,23 @@
1
1
  import {
2
- Meta,
3
- Story,
4
- Canvas,
5
2
  ArgsTable,
3
+ Canvas,
6
4
  Description,
7
- } from "@storybook/addon-docs/blocks";
5
+ Meta,
6
+ Story,
7
+ } from "@storybook/addon-docs";
8
8
  import { withDesign } from "storybook-addon-designs";
9
9
 
10
- import { getCategory } from "../../utils/componentCategories";
11
- import DSProvider from "../../theme/provider";
10
+ import Radio from "../Radio/Radio";
12
11
  import RadioGroup, { onChangeDefault } from "./RadioGroup";
13
12
  import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
14
- import Radio from "../Radio/Radio";
13
+ import { getCategory } from "../../utils/componentCategories";
14
+ import DSProvider from "../../theme/provider";
15
+ import { getStorybookEnumValues } from "../../utils/utils";
16
+
17
+ export const enumValues = getStorybookEnumValues(
18
+ RadioGroupLayoutTypes,
19
+ "RadioGroupLayoutTypes"
20
+ );
15
21
 
16
22
  <Meta
17
23
  title={getCategory("RadioGroup")}
@@ -20,16 +26,40 @@ import Radio from "../Radio/Radio";
20
26
  parameters={{
21
27
  design: {
22
28
  type: "figma",
23
- url:
24
- "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11895%3A742",
29
+ url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11895%3A742",
25
30
  },
26
31
  jest: ["RadioGroup.test.tsx"],
27
32
  }}
28
33
  argTypes={{
29
34
  children: { table: { disable: true } },
30
- className: { table: { disable: true } },
31
- onChange: { table: { disable: true } },
32
- id: { table: { disable: true } },
35
+ className: { control: false },
36
+ id: { control: false },
37
+ isDisabled: {
38
+ table: { defaultValue: { summary: false } },
39
+ },
40
+ isInvalid: {
41
+ table: { defaultValue: { summary: false } },
42
+ },
43
+ isRequired: {
44
+ table: { defaultValue: { summary: false } },
45
+ },
46
+ layout: {
47
+ control: { type: "select" },
48
+ table: { defaultValue: { summary: "RadioGroupLayoutTypes.Column" } },
49
+ options: enumValues.options,
50
+ },
51
+ key: { table: { disable: true } },
52
+ onChange: { control: false },
53
+ ref: { table: { disable: true } },
54
+ optReqFlag: {
55
+ table: { defaultValue: { summary: true } },
56
+ },
57
+ showHelperInvalidText: {
58
+ table: { defaultValue: { summary: true } },
59
+ },
60
+ showLabel: {
61
+ table: { defaultValue: { summary: true } },
62
+ },
33
63
  }}
34
64
  />
35
65
 
@@ -38,7 +68,7 @@ import Radio from "../Radio/Radio";
38
68
  | Component Version | DS Version |
39
69
  | ----------------- | ---------- |
40
70
  | Added | `0.25.0` |
41
- | Latest | `0.25.3` |
71
+ | Latest | `0.25.9` |
42
72
 
43
73
  <Description of={RadioGroup} />
44
74
 
@@ -46,21 +76,25 @@ import Radio from "../Radio/Radio";
46
76
  <Story
47
77
  name="RadioGroup"
48
78
  args={{
79
+ className: undefined,
49
80
  defaultValue: "4",
50
- invalidText: "error!",
51
81
  helperText: "This is the helper text for the full group.",
82
+ id: "radioGroup-id",
83
+ invalidText: "error!",
52
84
  isDisabled: false,
53
85
  isInvalid: false,
54
86
  isRequired: false,
55
87
  labelText: "Standard Radio Group",
56
- layout: RadioGroupLayoutTypes.Column,
88
+ layout: "RadioGroupLayoutTypes.Column",
57
89
  name: "radio-story",
90
+ onChange: undefined,
58
91
  optReqFlag: true,
92
+ showHelperInvalidText: true,
59
93
  showLabel: true,
60
94
  }}
61
95
  >
62
96
  {(args) => (
63
- <RadioGroup {...args}>
97
+ <RadioGroup {...args} layout={enumValues.getValue(args.layout)}>
64
98
  <Radio value="2" labelText="Radio 2" />
65
99
  <Radio value="3" labelText="Radio 3" />
66
100
  <Radio value="4" labelText="Radio 4" />
@@ -1,17 +1,19 @@
1
- import * as React from "react";
2
1
  import {
3
2
  Box,
4
3
  Stack,
5
4
  useMultiStyleConfig,
6
5
  useRadioGroup,
7
6
  } from "@chakra-ui/react";
7
+ import * as React from "react";
8
8
 
9
- import HelperErrorText from "../HelperErrorText/HelperErrorText";
10
- import generateUUID from "../../helpers/generateUUID";
9
+ import Fieldset from "../Fieldset/Fieldset";
10
+ import HelperErrorText, {
11
+ HelperErrorTextType,
12
+ } from "../HelperErrorText/HelperErrorText";
11
13
  import { spacing } from "../../theme/foundations/spacing";
12
- import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
13
14
  import Radio from "../Radio/Radio";
14
- import Fieldset from "../Fieldset/Fieldset";
15
+ import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
16
+ import generateUUID from "../../helpers/generateUUID";
15
17
 
16
18
  export interface RadioGroupProps {
17
19
  /** Any child node passed to the component. */
@@ -21,11 +23,11 @@ export interface RadioGroupProps {
21
23
  /** Populates the initial value of the input */
22
24
  defaultValue?: string;
23
25
  /** Optional string to populate the HelperErrorText for standard state */
24
- helperText?: string;
26
+ helperText?: HelperErrorTextType;
25
27
  /** ID that other components can cross reference for accessibility purposes */
26
28
  id?: string;
27
29
  /** Optional string to populate the HelperErrorText for error state */
28
- invalidText?: string;
30
+ invalidText?: HelperErrorTextType;
29
31
  /** Adds the 'disabled' prop to the input when true. */
30
32
  isDisabled?: boolean;
31
33
  /** Adds the 'aria-invalid' attribute to the input and
@@ -76,7 +78,7 @@ const RadioGroup = React.forwardRef<HTMLInputElement, RadioGroupProps>(
76
78
  showHelperInvalidText = true,
77
79
  showLabel = true,
78
80
  } = props;
79
- const footnote = isInvalid ? invalidText : helperText;
81
+ const footnote: HelperErrorTextType = isInvalid ? invalidText : helperText;
80
82
  const spacingProp =
81
83
  layout === RadioGroupLayoutTypes.Column ? spacing.s : spacing.l;
82
84
  const newChildren = [];
@@ -141,9 +143,11 @@ const RadioGroup = React.forwardRef<HTMLInputElement, RadioGroupProps>(
141
143
  </Stack>
142
144
  {footnote && showHelperInvalidText && (
143
145
  <Box __css={styles.helper}>
144
- <HelperErrorText isInvalid={isInvalid} id={`${id}-helperErrorText`}>
145
- {footnote}
146
- </HelperErrorText>
146
+ <HelperErrorText
147
+ id={`${id}-helperErrorText`}
148
+ isInvalid={isInvalid}
149
+ text={footnote}
150
+ />
147
151
  </Box>
148
152
  )}
149
153
  </Fieldset>
@@ -468,11 +468,14 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
468
468
  aria-atomic={true}
469
469
  aria-live="off"
470
470
  className=" css-0"
471
+ dangerouslySetInnerHTML={
472
+ Object {
473
+ "__html": "helper text",
474
+ }
475
+ }
471
476
  data-isinvalid={false}
472
477
  id="helperText-helperErrorText"
473
- >
474
- helper text
475
- </div>
478
+ />
476
479
  </div>
477
480
  </fieldset>
478
481
  `;