@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
@@ -5,23 +5,25 @@ import {
5
5
  useMultiStyleConfig,
6
6
  } from "@chakra-ui/react";
7
7
 
8
- import Label from "../Label/Label";
9
- import HelperErrorText from "../HelperErrorText/HelperErrorText";
10
- import generateUUID from "../../helpers/generateUUID";
11
- import { IconNames, IconSizes } from "../Icons/IconTypes";
8
+ import HelperErrorText, {
9
+ HelperErrorTextType,
10
+ } from "../HelperErrorText/HelperErrorText";
12
11
  import Icon from "../Icons/Icon";
12
+ import { IconNames, IconSizes } from "../Icons/IconTypes";
13
+ import Label from "../Label/Label";
13
14
  import { SelectTypes } from "./SelectTypes";
15
+ import generateUUID from "../../helpers/generateUUID";
14
16
 
15
17
  export interface SelectProps {
16
18
  /** A class name for the `div` parent element. */
17
19
  className?: string;
18
20
  /** Optional string to populate the `HelperErrorText` for the standard state. */
19
- helperText?: string;
21
+ helperText?: HelperErrorTextType;
20
22
  /** ID that other components can cross reference for accessibility purposes */
21
23
  id?: string;
22
24
  /** Optional string to populate the `HelperErrorText` for the error state
23
25
  * when `isInvalid` is true. */
24
- invalidText?: string;
26
+ invalidText?: HelperErrorTextType;
25
27
  /** Adds the `disabled` and `aria-disabled` attributes to the select when true */
26
28
  isDisabled?: boolean;
27
29
  /** Adds the `aria-invalid` attribute to the select when true. This also makes
@@ -87,7 +89,9 @@ const Select = React.forwardRef<
87
89
  const finalInvalidText = invalidText
88
90
  ? invalidText
89
91
  : "There is an error related to this field.";
90
- const footnote = isInvalid ? finalInvalidText : helperText;
92
+ const footnote: HelperErrorTextType = isInvalid
93
+ ? finalInvalidText
94
+ : helperText;
91
95
  // To control the `Select` component, both `onChange` and `value`
92
96
  // must be passed.
93
97
  const controlledProps = onChange ? { onChange, value } : {};
@@ -140,9 +144,11 @@ const Select = React.forwardRef<
140
144
  </ChakraSelect>
141
145
  {footnote && showHelperInvalidText && (
142
146
  <Box __css={styles.helper} aria-disabled={isDisabled}>
143
- <HelperErrorText isInvalid={isInvalid} id={id + `-helperText`}>
144
- {footnote}
145
- </HelperErrorText>
147
+ <HelperErrorText
148
+ id={`${id}-helperText`}
149
+ isInvalid={isInvalid}
150
+ text={footnote}
151
+ />
146
152
  </Box>
147
153
  )}
148
154
  </Box>
@@ -1,20 +1,30 @@
1
+ import { action } from "@storybook/addon-actions";
1
2
  import {
2
- Meta,
3
- Story,
4
- Canvas,
5
3
  ArgsTable,
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 { action } from "@storybook/addon-actions";
10
10
 
11
- import { getCategory } from "../../utils/componentCategories";
11
+ import SimpleGrid from "../Grid/SimpleGrid";
12
12
  import SkeletonLoader from "./SkeletonLoader";
13
13
  import {
14
- SkeletonLoaderLayouts,
15
14
  SkeletonLoaderImageRatios,
15
+ SkeletonLoaderLayouts,
16
16
  } from "./SkeletonLoaderTypes";
17
- import SimpleGrid from "../Grid/SimpleGrid";
17
+ import { getCategory } from "../../utils/componentCategories";
18
+ import { getStorybookEnumValues } from "../../utils/utils";
19
+
20
+ export const imageRatiosEnumValues = getStorybookEnumValues(
21
+ SkeletonLoaderImageRatios,
22
+ "SkeletonLoaderImageRatios"
23
+ );
24
+ export const layoutsEnumValues = getStorybookEnumValues(
25
+ SkeletonLoaderLayouts,
26
+ "SkeletonLoaderLayouts"
27
+ );
18
28
 
19
29
  <Meta
20
30
  title={getCategory("SkeletonLoader")}
@@ -23,17 +33,25 @@ import SimpleGrid from "../Grid/SimpleGrid";
23
33
  parameters={{
24
34
  design: {
25
35
  type: "figma",
26
- url:
27
- "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=17219%3A7",
36
+ url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=17219%3A7",
28
37
  },
29
38
  jest: ["SkeletonLoader.test.tsx"],
30
39
  }}
31
40
  argTypes={{
32
- className: { table: { disable: true } },
41
+ className: { control: false },
33
42
  contentSize: { table: { defaultValue: { summary: "3" } } },
34
43
  headingSize: { table: { defaultValue: { summary: "1" } } },
35
- imageAspectRatio: { table: { defaultValue: { summary: "square" } } },
36
- layout: { table: { defaultValue: { summary: "column" } } },
44
+ imageAspectRatio: {
45
+ control: { type: "select" },
46
+ table: {
47
+ defaultValue: { summary: "SkeletonLoaderImageRatios.Square" },
48
+ },
49
+ options: imageRatiosEnumValues.options,
50
+ },
51
+ layout: {
52
+ table: { defaultValue: { summary: "SkeletonLoaderLayouts.Column" } },
53
+ options: layoutsEnumValues.options,
54
+ },
37
55
  showButton: { table: { defaultValue: { summary: "false" } } },
38
56
  showContent: { table: { defaultValue: { summary: "true" } } },
39
57
  showHeading: { table: { defaultValue: { summary: "true" } } },
@@ -58,16 +76,32 @@ to better view the example. The default value is `100%`.
58
76
 
59
77
  <Canvas withToolbar>
60
78
  <Story
61
- name="Basic with Props"
79
+ name="SkeletonLoader with Controls"
62
80
  args={{
81
+ border: false,
82
+ className: undefined,
83
+ contentSize: 3,
84
+ headingSize: 1,
85
+ imageAspectRatio: "SkeletonLoaderImageRatios.Square",
86
+ layout: "SkeletonLoaderLayouts.Column",
87
+ showButton: false,
88
+ showContent: true,
89
+ showHeading: true,
90
+ showImage: true,
63
91
  width: "300px",
64
92
  }}
65
93
  >
66
- {(args) => <SkeletonLoader {...args} />}
94
+ {(args) => (
95
+ <SkeletonLoader
96
+ {...args}
97
+ imageAspectRatio={imageRatiosEnumValues.getValue(args.imageAspectRatio)}
98
+ layout={layoutsEnumValues.getValue(args.layout)}
99
+ />
100
+ )}
67
101
  </Story>
68
102
  </Canvas>
69
103
 
70
- <ArgsTable story="Basic with Props" />
104
+ <ArgsTable story="SkeletonLoader with Controls" />
71
105
 
72
106
  # Card Placeholders in a Grid
73
107
 
@@ -15,13 +15,17 @@ export interface SkeletonLoaderProps {
15
15
  border?: boolean;
16
16
  /** Additional class name for the Skeleton component. */
17
17
  className?: string;
18
- /** Optional numeric value to control the number of lines for content placeholder; default value is `3`. */
18
+ /** Optional numeric value to control the number of lines for content
19
+ * placeholder; default value is `3`. */
19
20
  contentSize?: number;
20
- /** Optional numeric value to control the number of lines for heading placeholder; default value is `1`. */
21
+ /** Optional numeric value to control the number of lines for heading
22
+ * placeholder; default value is `1`. */
21
23
  headingSize?: number;
22
- /** Optional value to control the aspect ratio of the image placeholder; default value is `square`. */
24
+ /** Optional value to control the aspect ratio of the image placeholder;
25
+ * default value is `SkeletonLoaderImageRatios.Square`. */
23
26
  imageAspectRatio?: SkeletonLoaderImageRatios;
24
- /** Optional value to control the position of the image placeholder; default value is `column`. */
27
+ /** Optional value to control the position of the image placeholder;
28
+ * default value is `SkeletonLoaderLayouts.Column`. */
25
29
  layout?: SkeletonLoaderLayouts;
26
30
  /** Optional boolean value to control visibility of button placeholder. */
27
31
  showButton?: boolean;
@@ -1,17 +1,17 @@
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 Slider from "./Slider";
11
- import SimpleGrid from "../Grid/SimpleGrid";
12
- import { GridGaps } from "../Grid/GridTypes";
13
10
  import Heading from "../Heading/Heading";
14
11
  import { HeadingLevels } from "../Heading/HeadingTypes";
12
+ import { GridGaps } from "../Grid/GridTypes";
13
+ import SimpleGrid from "../Grid/SimpleGrid";
14
+ import Slider from "./Slider";
15
15
  import { getCategory } from "../../utils/componentCategories";
16
16
  import DSProvider from "../../theme/provider";
17
17
 
@@ -22,16 +22,52 @@ import DSProvider from "../../theme/provider";
22
22
  parameters={{
23
23
  design: {
24
24
  type: "figma",
25
- url:
26
- "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36889%3A25871",
25
+ url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36889%3A25871",
27
26
  },
28
27
  jest: ["Slider.test.tsx"],
29
28
  }}
30
29
  argTypes={{
31
- className: { table: { disable: true } },
32
- id: { table: { disable: true } },
33
- name: { table: { disable: true } },
34
- onChange: { table: { disable: true } },
30
+ className: { control: false },
31
+ defaultValue: {
32
+ control: false,
33
+ table: { defaultValue: { summary: 0 } },
34
+ },
35
+ id: { control: false },
36
+ isDisabled: {
37
+ table: { defaultValue: { summary: false } },
38
+ },
39
+ isInvalid: {
40
+ table: { defaultValue: { summary: false } },
41
+ },
42
+ isRequired: {
43
+ table: { defaultValue: { summary: false } },
44
+ },
45
+ max: {
46
+ table: { defaultValue: { summary: 100 } },
47
+ },
48
+ min: {
49
+ table: { defaultValue: { summary: 0 } },
50
+ },
51
+ name: { control: false },
52
+ onChange: { control: false },
53
+ optReqFlag: {
54
+ table: { defaultValue: { summary: true } },
55
+ },
56
+ showBoxes: {
57
+ table: { defaultValue: { summary: true } },
58
+ },
59
+ showHelperInvalidText: {
60
+ table: { defaultValue: { summary: true } },
61
+ },
62
+ showLabel: {
63
+ table: { defaultValue: { summary: true } },
64
+ },
65
+ showValues: {
66
+ table: { defaultValue: { summary: true } },
67
+ },
68
+ step: {
69
+ table: { defaultValue: { summary: 1 } },
70
+ },
35
71
  }}
36
72
  />
37
73
 
@@ -40,7 +76,7 @@ import DSProvider from "../../theme/provider";
40
76
  | Component Version | DS Version |
41
77
  | ----------------- | ---------- |
42
78
  | Added | `0.25.4` |
43
- | Latest | `0.25.8` |
79
+ | Latest | `0.25.9` |
44
80
 
45
81
  <Description of={Slider} />
46
82
 
@@ -49,10 +85,12 @@ For this type of component, the `value` prop must be a single number.
49
85
 
50
86
  <Canvas withToolbar>
51
87
  <Story
52
- name="Slider with Props"
88
+ name="Slider with Controls"
53
89
  args={{
90
+ className: undefined,
54
91
  defaultValue: 50,
55
92
  helperText: "Pass in a value from the min 0 to the max 100 values.",
93
+ id: "slider-id",
56
94
  invalidText: "Oh no this is an error :(",
57
95
  isDisabled: false,
58
96
  isInvalid: false,
@@ -61,6 +99,8 @@ For this type of component, the `value` prop must be a single number.
61
99
  labelText: "Slider label",
62
100
  max: 100,
63
101
  min: 0,
102
+ name: undefined,
103
+ onChange: undefined,
64
104
  optReqFlag: true,
65
105
  showBoxes: true,
66
106
  showHelperInvalidText: true,
@@ -69,15 +109,19 @@ For this type of component, the `value` prop must be a single number.
69
109
  step: 1,
70
110
  }}
71
111
  argTypes={{
72
- defaultValue: { table: { disable: true } },
73
- isRangeSlider: { table: { disable: true } },
112
+ isRangeSlider: {
113
+ control: false,
114
+ table: {
115
+ defaultValue: { summary: false },
116
+ },
117
+ },
74
118
  }}
75
119
  >
76
120
  {(args) => <Slider {...args} />}
77
121
  </Story>
78
122
  </Canvas>
79
123
 
80
- <ArgsTable story="Slider with Props" />
124
+ <ArgsTable story="Slider with Controls" />
81
125
 
82
126
  ### Accessibility
83
127
 
@@ -101,8 +145,10 @@ numbers. This signifies the starting and ending values of the range slider.
101
145
  <Story
102
146
  name="Range Slider with Props"
103
147
  args={{
148
+ className: undefined,
104
149
  defaultValue: [25, 75],
105
150
  helperText: "Pass in a value from the min 0 to the max 100 values.",
151
+ id: "slider-range-id",
106
152
  invalidText: "Oh no this is an error :(",
107
153
  isDisabled: false,
108
154
  isInvalid: false,
@@ -111,6 +157,8 @@ numbers. This signifies the starting and ending values of the range slider.
111
157
  labelText: "Range Slider label",
112
158
  max: 100,
113
159
  min: 0,
160
+ name: undefined,
161
+ onChange: undefined,
114
162
  optReqFlag: true,
115
163
  showBoxes: true,
116
164
  showHelperInvalidText: true,
@@ -119,16 +167,18 @@ numbers. This signifies the starting and ending values of the range slider.
119
167
  step: 1,
120
168
  }}
121
169
  argTypes={{
122
- defaultValue: { table: { disable: true } },
123
- isRangeSlider: { table: { disable: true } },
170
+ isRangeSlider: {
171
+ control: false,
172
+ table: {
173
+ defaultValue: { summary: false },
174
+ },
175
+ },
124
176
  }}
125
177
  >
126
178
  {(args) => <Slider {...args} />}
127
179
  </Story>
128
180
  </Canvas>
129
181
 
130
- <ArgsTable story="Range Slider with Props" />
131
-
132
182
  ### Accessibility
133
183
 
134
184
  Chakra's `RangeSlider` component is accessible and, as recommended, we pass in
@@ -14,7 +14,9 @@ import {
14
14
 
15
15
  import generateUUID from "../../helpers/generateUUID";
16
16
  import Label from "../Label/Label";
17
- import HelperErrorText from "../HelperErrorText/HelperErrorText";
17
+ import HelperErrorText, {
18
+ HelperErrorTextType,
19
+ } from "../HelperErrorText/HelperErrorText";
18
20
  import TextInput from "../TextInput/TextInput";
19
21
  import { TextInputTypes } from "../TextInput/TextInputTypes";
20
22
 
@@ -26,12 +28,12 @@ export interface SliderProps {
26
28
  */
27
29
  defaultValue?: number | number[];
28
30
  /** Optional string to populate the HelperErrorText for standard state */
29
- helperText?: string;
31
+ helperText?: HelperErrorTextType;
30
32
  /** ID that other components can cross reference for accessibility purposes. */
31
33
  id?: string;
32
34
  /** Optional string to populate the `HelperErrorText` for the error state
33
35
  * when `isInvalid` is true. */
34
- invalidText?: string;
36
+ invalidText?: HelperErrorTextType;
35
37
  /** Adds the 'disabled' state to the slider and text input(s) when true. */
36
38
  isDisabled?: boolean;
37
39
  /** Adds the 'invalid' state to the slider and text input(s) when true. */
@@ -103,9 +105,8 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
103
105
  typeof defaultValue === "number" ? [min, max] : defaultValue;
104
106
  // We need to set the default value correctly for both types of sliders.
105
107
  const finalDevaultValue = isRangeSlider ? rangeSliderDefault : defaultValue;
106
- const [currentValue, setCurrentValue] = React.useState<typeof defaultValue>(
107
- finalDevaultValue
108
- );
108
+ const [currentValue, setCurrentValue] =
109
+ React.useState<typeof defaultValue>(finalDevaultValue);
109
110
  let finalIsInvalid = isInvalid;
110
111
  // In the Range Slider, if the first value is bigger than the second value,
111
112
  // then set the invalid state.
@@ -113,7 +114,9 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
113
114
  finalIsInvalid = true;
114
115
  }
115
116
  const optReqText = isRequired ? "Required" : "Optional";
116
- const footnote = finalIsInvalid ? invalidText : helperText;
117
+ const footnote: HelperErrorTextType = finalIsInvalid
118
+ ? invalidText
119
+ : helperText;
117
120
  const styles = useMultiStyleConfig("CustomSlider", {
118
121
  isDisabled,
119
122
  isInvalid: finalIsInvalid,
@@ -299,9 +302,11 @@ export default function Slider(props: React.PropsWithChildren<SliderProps>) {
299
302
 
300
303
  {footnote && showHelperInvalidText && (
301
304
  <Box __css={styles.helper}>
302
- <HelperErrorText id={`${id}-helperText`} isInvalid={finalIsInvalid}>
303
- {footnote}
304
- </HelperErrorText>
305
+ <HelperErrorText
306
+ id={`${id}-helperText`}
307
+ isInvalid={finalIsInvalid}
308
+ text={footnote}
309
+ />
305
310
  </Box>
306
311
  )}
307
312
  </Box>
@@ -168,11 +168,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 1`] = `
168
168
  aria-atomic={true}
169
169
  aria-live="off"
170
170
  className=" css-0"
171
+ dangerouslySetInnerHTML={
172
+ Object {
173
+ "__html": "Component helper text.",
174
+ }
175
+ }
171
176
  data-isinvalid={false}
172
177
  id="defaultRangeSlider-helperText"
173
- >
174
- Component helper text.
175
- </div>
178
+ />
176
179
  </div>
177
180
  </div>
178
181
  `;
@@ -347,11 +350,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 2`] = `
347
350
  aria-atomic={true}
348
351
  aria-live="polite"
349
352
  className=" css-0"
353
+ dangerouslySetInnerHTML={
354
+ Object {
355
+ "__html": "Component error text :(",
356
+ }
357
+ }
350
358
  data-isinvalid={true}
351
359
  id="errored-helperText"
352
- >
353
- Component error text :(
354
- </div>
360
+ />
355
361
  </div>
356
362
  </div>
357
363
  `;
@@ -526,11 +532,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 3`] = `
526
532
  aria-atomic={true}
527
533
  aria-live="off"
528
534
  className=" css-0"
535
+ dangerouslySetInnerHTML={
536
+ Object {
537
+ "__html": "Component helper text.",
538
+ }
539
+ }
529
540
  data-isinvalid={false}
530
541
  id="required-helperText"
531
- >
532
- Component helper text.
533
- </div>
542
+ />
534
543
  </div>
535
544
  </div>
536
545
  `;
@@ -705,11 +714,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 4`] = `
705
714
  aria-atomic={true}
706
715
  aria-live="off"
707
716
  className=" css-0"
717
+ dangerouslySetInnerHTML={
718
+ Object {
719
+ "__html": "Component helper text.",
720
+ }
721
+ }
708
722
  data-isinvalid={false}
709
723
  id="disabled-helperText"
710
- >
711
- Component helper text.
712
- </div>
724
+ />
713
725
  </div>
714
726
  </div>
715
727
  `;
@@ -986,11 +998,14 @@ exports[`Slider Range Slider renders the UI snapshot correctly 6`] = `
986
998
  aria-atomic={true}
987
999
  aria-live="off"
988
1000
  className=" css-0"
1001
+ dangerouslySetInnerHTML={
1002
+ Object {
1003
+ "__html": "Component helper text.",
1004
+ }
1005
+ }
989
1006
  data-isinvalid={false}
990
1007
  id="noVisibleValues-helperText"
991
- >
992
- Component helper text.
993
- </div>
1008
+ />
994
1009
  </div>
995
1010
  </div>
996
1011
  `;
@@ -1226,11 +1241,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 1`] = `
1226
1241
  aria-atomic={true}
1227
1242
  aria-live="off"
1228
1243
  className=" css-0"
1244
+ dangerouslySetInnerHTML={
1245
+ Object {
1246
+ "__html": "Component helper text.",
1247
+ }
1248
+ }
1229
1249
  data-isinvalid={false}
1230
1250
  id="defaultSlider-helperText"
1231
- >
1232
- Component helper text.
1233
- </div>
1251
+ />
1234
1252
  </div>
1235
1253
  </div>
1236
1254
  `;
@@ -1363,11 +1381,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 2`] = `
1363
1381
  aria-atomic={true}
1364
1382
  aria-live="polite"
1365
1383
  className=" css-0"
1384
+ dangerouslySetInnerHTML={
1385
+ Object {
1386
+ "__html": "Component error text :(",
1387
+ }
1388
+ }
1366
1389
  data-isinvalid={true}
1367
1390
  id="errored-helperText"
1368
- >
1369
- Component error text :(
1370
- </div>
1391
+ />
1371
1392
  </div>
1372
1393
  </div>
1373
1394
  `;
@@ -1500,11 +1521,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 3`] = `
1500
1521
  aria-atomic={true}
1501
1522
  aria-live="off"
1502
1523
  className=" css-0"
1524
+ dangerouslySetInnerHTML={
1525
+ Object {
1526
+ "__html": "Component helper text.",
1527
+ }
1528
+ }
1503
1529
  data-isinvalid={false}
1504
1530
  id="required-helperText"
1505
- >
1506
- Component helper text.
1507
- </div>
1531
+ />
1508
1532
  </div>
1509
1533
  </div>
1510
1534
  `;
@@ -1638,11 +1662,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 4`] = `
1638
1662
  aria-atomic={true}
1639
1663
  aria-live="off"
1640
1664
  className=" css-0"
1665
+ dangerouslySetInnerHTML={
1666
+ Object {
1667
+ "__html": "Component helper text.",
1668
+ }
1669
+ }
1641
1670
  data-isinvalid={false}
1642
1671
  id="disabled-helperText"
1643
- >
1644
- Component helper text.
1645
- </div>
1672
+ />
1646
1673
  </div>
1647
1674
  </div>
1648
1675
  `;
@@ -1855,11 +1882,14 @@ exports[`Slider Single Slider renders the UI snapshot correctly 6`] = `
1855
1882
  aria-atomic={true}
1856
1883
  aria-live="off"
1857
1884
  className=" css-0"
1885
+ dangerouslySetInnerHTML={
1886
+ Object {
1887
+ "__html": "Component helper text.",
1888
+ }
1889
+ }
1858
1890
  data-isinvalid={false}
1859
1891
  id="noVisibleValues-helperText"
1860
- >
1861
- Component helper text.
1862
- </div>
1892
+ />
1863
1893
  </div>
1864
1894
  </div>
1865
1895
  `;
@@ -1,18 +1,23 @@
1
+ import { VStack } from "@chakra-ui/react";
1
2
  import {
2
- Meta,
3
- Story,
4
- Canvas,
5
3
  ArgsTable,
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 { VStack } from "@chakra-ui/react";
10
10
 
11
11
  import StatusBadge from "./StatusBadge";
12
12
  import { StatusBadgeTypes } from "./StatusBadgeTypes";
13
- import getCSSVariable from "../../helpers/getCSSVariable";
14
13
  import { getCategory } from "../../utils/componentCategories";
15
14
  import DSProvider from "../../theme/provider";
15
+ import { getStorybookEnumValues } from "../../utils/utils";
16
+
17
+ export const enumValues = getStorybookEnumValues(
18
+ StatusBadgeTypes,
19
+ "StatusBadgeTypes"
20
+ );
16
21
 
17
22
  <Meta
18
23
  title={getCategory("StatusBadge")}
@@ -21,19 +26,20 @@ import DSProvider from "../../theme/provider";
21
26
  parameters={{
22
27
  design: {
23
28
  type: "figma",
24
- url:
25
- "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11256%3A0",
29
+ url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11256%3A0",
26
30
  },
27
31
  jest: ["StatusBadge.test.tsx"],
28
32
  }}
29
33
  argTypes={{
30
- className: { table: { disable: true } },
31
- id: { table: { disable: true } },
34
+ className: { control: false },
35
+ id: { control: false },
32
36
  level: {
33
- control: {
34
- type: "select",
35
- },
36
- options: Object.values(StatusBadgeTypes).map((value) => value),
37
+ control: { type: "select" },
38
+ table: { defaultValue: { summary: "StatusBadgeTypes.Low" } },
39
+ options: enumValues.options,
40
+ },
41
+ text: {
42
+ description: "Only used for Storybook",
37
43
  },
38
44
  }}
39
45
  />
@@ -49,14 +55,23 @@ import DSProvider from "../../theme/provider";
49
55
 
50
56
  <Canvas withToolbar>
51
57
  <Story
52
- name="Basic with props"
53
- args={{ level: StatusBadgeTypes.Low, text: "Registration Required" }}
58
+ name="StatusBadge"
59
+ args={{
60
+ className: undefined,
61
+ id: "statusBadge-id",
62
+ level: "StatusBadgeTypes.Low",
63
+ text: "Registration Required",
64
+ }}
54
65
  >
55
- {(args) => <StatusBadge {...args}>{args.text}</StatusBadge>}
66
+ {(args) => (
67
+ <StatusBadge level={enumValues.getValue(args.level)}>
68
+ {args.text}
69
+ </StatusBadge>
70
+ )}
56
71
  </Story>
57
72
  </Canvas>
58
73
 
59
- <ArgsTable story="Basic with props" />
74
+ <ArgsTable story="StatusBadge" />
60
75
 
61
76
  ## Patterns
62
77