@nypl/design-system-react-components 0.25.5 → 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 (275) hide show
  1. package/CHANGELOG.md +91 -1
  2. package/README.md +1 -1
  3. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -0
  4. package/dist/components/Button/Button.d.ts +6 -6
  5. package/dist/components/Button/ButtonTypes.d.ts +0 -1
  6. package/dist/components/Card/Card.d.ts +6 -4
  7. package/dist/components/Checkbox/Checkbox.d.ts +3 -2
  8. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
  9. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
  10. package/dist/components/DatePicker/DatePicker.d.ts +3 -2
  11. package/dist/components/Form/Form.d.ts +2 -2
  12. package/dist/components/Heading/Heading.d.ts +7 -3
  13. package/dist/components/Heading/HeadingTypes.d.ts +6 -6
  14. package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
  15. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -2
  16. package/dist/components/Icons/Icon.d.ts +4 -4
  17. package/dist/components/Icons/IconSvgs.d.ts +1 -21
  18. package/dist/components/Icons/IconTypes.d.ts +1 -23
  19. package/dist/components/Image/Image.d.ts +11 -3
  20. package/dist/components/Image/ImageTypes.d.ts +3 -1
  21. package/dist/components/Link/LinkTypes.d.ts +1 -0
  22. package/dist/components/Logo/Logo.d.ts +28 -0
  23. package/dist/components/Logo/LogoSvgs.d.ts +18 -0
  24. package/dist/components/Logo/LogoTypes.d.ts +30 -0
  25. package/dist/components/Modal/Modal.d.ts +0 -4
  26. package/dist/components/Notification/Notification.d.ts +4 -2
  27. package/dist/components/Placeholder/Placeholder.d.ts +3 -5
  28. package/dist/components/Radio/Radio.d.ts +6 -5
  29. package/dist/components/RadioGroup/RadioGroup.d.ts +3 -2
  30. package/dist/components/SearchBar/SearchBar.d.ts +10 -2
  31. package/dist/components/Select/Select.d.ts +5 -2
  32. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
  33. package/dist/components/Slider/Slider.d.ts +3 -2
  34. package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
  35. package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
  36. package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
  37. package/dist/components/Table/Table.d.ts +23 -0
  38. package/dist/components/Template/Template.d.ts +8 -3
  39. package/dist/components/Text/Text.d.ts +2 -2
  40. package/dist/components/TextInput/TextInput.d.ts +4 -3
  41. package/dist/components/Toggle/Toggle.d.ts +48 -0
  42. package/dist/components/Toggle/ToggleSizes.d.ts +4 -0
  43. package/dist/components/VideoPlayer/VideoPlayer.d.ts +17 -6
  44. package/dist/design-system-react-components.cjs.development.js +5989 -5490
  45. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  46. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  47. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  48. package/dist/design-system-react-components.esm.js +6057 -5551
  49. package/dist/design-system-react-components.esm.js.map +1 -1
  50. package/dist/index.d.ts +11 -4
  51. package/dist/styles.css +2 -2
  52. package/dist/theme/components/breadcrumb.d.ts +9 -0
  53. package/dist/theme/components/button.d.ts +0 -12
  54. package/dist/theme/components/card.d.ts +14 -2
  55. package/dist/theme/components/customTable.d.ts +47 -0
  56. package/dist/theme/components/fieldset.d.ts +2 -2
  57. package/dist/theme/components/global.d.ts +1 -1
  58. package/dist/theme/components/heading.d.ts +4 -0
  59. package/dist/theme/components/label.d.ts +1 -1
  60. package/dist/theme/components/link.d.ts +14 -1
  61. package/dist/theme/components/list.d.ts +0 -2
  62. package/dist/theme/components/logo.d.ts +4 -0
  63. package/dist/theme/components/notification.d.ts +8 -4
  64. package/dist/theme/components/searchBar.d.ts +7 -13
  65. package/dist/theme/components/select.d.ts +1 -0
  66. package/dist/theme/components/structuredContent.d.ts +33 -0
  67. package/dist/theme/components/template.d.ts +10 -10
  68. package/dist/theme/components/textInput.d.ts +2 -0
  69. package/dist/theme/components/toggle.d.ts +71 -0
  70. package/dist/theme/foundations/spacing.d.ts +2 -0
  71. package/dist/utils/utils.d.ts +10 -0
  72. package/package.json +2 -3
  73. package/src/__tests__/utils/utils.test.ts +23 -1
  74. package/src/components/Accordion/Accordion.stories.mdx +15 -14
  75. package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
  76. package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
  77. package/src/components/Autosuggest/_Autosuggest.scss +2 -6
  78. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +50 -14
  79. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +20 -0
  80. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -0
  81. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +198 -0
  82. package/src/components/Button/Button.stories.mdx +93 -48
  83. package/src/components/Button/Button.test.tsx +0 -12
  84. package/src/components/Button/Button.tsx +7 -8
  85. package/src/components/Button/ButtonTypes.tsx +0 -1
  86. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
  87. package/src/components/Card/Card.stories.mdx +246 -64
  88. package/src/components/Card/Card.test.tsx +45 -22
  89. package/src/components/Card/Card.tsx +26 -13
  90. package/src/components/Card/__snapshots__/Card.test.tsx.snap +75 -37
  91. package/src/components/Chakra/Box.stories.mdx +3 -3
  92. package/src/components/Chakra/Center.stories.mdx +5 -5
  93. package/src/components/Chakra/Grid.stories.mdx +14 -17
  94. package/src/components/Chakra/Stack.stories.mdx +2 -2
  95. package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
  96. package/src/components/Checkbox/Checkbox.tsx +13 -8
  97. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
  98. package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
  99. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
  100. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
  101. package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
  102. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
  103. package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
  104. package/src/components/DatePicker/DatePicker.test.tsx +8 -6
  105. package/src/components/DatePicker/DatePicker.tsx +10 -6
  106. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
  107. package/src/components/Fieldset/Fieldset.stories.mdx +19 -8
  108. package/src/components/Form/Form.stories.mdx +49 -41
  109. package/src/components/Form/Form.tsx +5 -4
  110. package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
  111. package/src/components/Heading/Heading.stories.mdx +59 -23
  112. package/src/components/Heading/Heading.test.tsx +82 -18
  113. package/src/components/Heading/Heading.tsx +31 -31
  114. package/src/components/Heading/HeadingTypes.tsx +6 -6
  115. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
  116. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
  117. package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
  118. package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
  119. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
  120. package/src/components/Hero/Hero.stories.mdx +72 -53
  121. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +9 -8
  122. package/src/components/HorizontalRule/HorizontalRule.tsx +2 -4
  123. package/src/components/Icons/Icon.stories.mdx +77 -75
  124. package/src/components/Icons/Icon.tsx +4 -5
  125. package/src/components/Icons/IconSvgs.tsx +2 -42
  126. package/src/components/Icons/IconTypes.tsx +1 -24
  127. package/src/components/Image/Image.stories.mdx +214 -104
  128. package/src/components/Image/Image.test.tsx +10 -0
  129. package/src/components/Image/Image.tsx +21 -10
  130. package/src/components/Image/ImageTypes.ts +2 -0
  131. package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
  132. package/src/components/Label/Label.stories.mdx +21 -20
  133. package/src/components/Link/Link.stories.mdx +103 -53
  134. package/src/components/Link/Link.test.tsx +108 -7
  135. package/src/components/Link/Link.tsx +58 -19
  136. package/src/components/Link/LinkTypes.tsx +1 -0
  137. package/src/components/Link/__snapshots__/Link.test.tsx.snap +261 -0
  138. package/src/components/List/List.stories.mdx +36 -24
  139. package/src/components/Logo/Logo.stories.mdx +220 -0
  140. package/src/components/Logo/Logo.test.tsx +98 -0
  141. package/src/components/Logo/Logo.tsx +97 -0
  142. package/src/components/Logo/LogoSvgs.tsx +34 -0
  143. package/src/components/Logo/LogoTypes.tsx +32 -0
  144. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
  145. package/src/components/Modal/Modal.stories.mdx +20 -5
  146. package/src/components/Modal/Modal.tsx +2 -8
  147. package/src/components/Notification/Notification.stories.mdx +96 -40
  148. package/src/components/Notification/Notification.test.tsx +62 -16
  149. package/src/components/Notification/Notification.tsx +26 -9
  150. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +121 -0
  151. package/src/components/Pagination/Pagination.stories.mdx +18 -8
  152. package/src/components/Pagination/Pagination.tsx +1 -1
  153. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +42 -0
  154. package/src/components/Placeholder/Placeholder.tsx +7 -14
  155. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +74 -46
  156. package/src/components/Radio/Radio.stories.mdx +39 -19
  157. package/src/components/Radio/Radio.tsx +13 -9
  158. package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
  159. package/src/components/RadioGroup/RadioGroup.tsx +15 -11
  160. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +6 -3
  161. package/src/components/SearchBar/SearchBar.Test.tsx +114 -22
  162. package/src/components/SearchBar/SearchBar.stories.mdx +111 -33
  163. package/src/components/SearchBar/SearchBar.tsx +57 -33
  164. package/src/components/Select/Select.stories.mdx +177 -66
  165. package/src/components/Select/Select.test.tsx +2 -2
  166. package/src/components/Select/Select.tsx +22 -12
  167. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
  168. package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
  169. package/src/components/Slider/Slider.stories.mdx +74 -23
  170. package/src/components/Slider/Slider.test.tsx +35 -0
  171. package/src/components/Slider/Slider.tsx +22 -11
  172. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +60 -30
  173. package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
  174. package/src/components/StatusBadge/StatusBadge.tsx +2 -1
  175. package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
  176. package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
  177. package/src/components/StructuredContent/StructuredContent.tsx +153 -0
  178. package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
  179. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
  180. package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
  181. package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
  182. package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
  183. package/src/components/StyleGuide/ColorCard.tsx +1 -2
  184. package/src/components/StyleGuide/Colors.stories.mdx +3 -11
  185. package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
  186. package/src/components/StyleGuide/Forms.stories.mdx +2 -10
  187. package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
  188. package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
  189. package/src/components/StyleGuide/Typography.stories.mdx +64 -76
  190. package/src/components/Table/Table.stories.mdx +66 -0
  191. package/src/components/Table/Table.test.tsx +60 -0
  192. package/src/components/Table/Table.tsx +116 -0
  193. package/src/components/Tabs/Tabs.stories.mdx +19 -13
  194. package/src/components/Tabs/Tabs.test.tsx +1 -1
  195. package/src/components/Template/Template.stories.mdx +57 -49
  196. package/src/components/Template/Template.test.tsx +65 -5
  197. package/src/components/Template/Template.tsx +35 -5
  198. package/src/components/Template/__snapshots__/Template.test.tsx.snap +76 -0
  199. package/src/components/Text/Text.stories.mdx +33 -11
  200. package/src/components/Text/Text.tsx +2 -2
  201. package/src/components/TextInput/TextInput.stories.mdx +84 -17
  202. package/src/components/TextInput/TextInput.test.tsx +96 -0
  203. package/src/components/TextInput/TextInput.tsx +12 -8
  204. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
  205. package/src/components/Toggle/Toggle.stories.mdx +200 -0
  206. package/src/components/Toggle/Toggle.test.tsx +140 -0
  207. package/src/components/Toggle/Toggle.tsx +123 -0
  208. package/src/components/Toggle/ToggleSizes.tsx +4 -0
  209. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +255 -0
  210. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +96 -25
  211. package/src/components/VideoPlayer/VideoPlayer.test.tsx +103 -1
  212. package/src/components/VideoPlayer/VideoPlayer.tsx +72 -22
  213. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +57 -3
  214. package/src/docs/Chakra.stories.mdx +5 -8
  215. package/src/docs/Intro.stories.mdx +2 -2
  216. package/src/index.ts +13 -4
  217. package/src/styles/base/_03-base.scss +1 -1
  218. package/src/styles/base/_place-holder.scss +7 -7
  219. package/src/styles.scss +1 -5
  220. package/src/theme/components/breadcrumb.ts +14 -4
  221. package/src/theme/components/button.ts +5 -12
  222. package/src/theme/components/card.ts +9 -7
  223. package/src/theme/components/checkbox.ts +1 -1
  224. package/src/theme/components/customTable.ts +50 -0
  225. package/src/theme/components/datePicker.ts +1 -1
  226. package/src/theme/components/global.ts +7 -7
  227. package/src/theme/components/heading.ts +13 -11
  228. package/src/theme/components/helperErrorText.ts +1 -1
  229. package/src/theme/components/icon.ts +2 -2
  230. package/src/theme/components/image.ts +9 -1
  231. package/src/theme/components/link.ts +17 -5
  232. package/src/theme/components/list.ts +1 -3
  233. package/src/theme/components/logo.ts +54 -0
  234. package/src/theme/components/notification.ts +9 -7
  235. package/src/theme/components/searchBar.ts +7 -13
  236. package/src/theme/components/select.ts +1 -0
  237. package/src/theme/components/statusBadge.ts +1 -1
  238. package/src/theme/components/structuredContent.ts +54 -0
  239. package/src/theme/components/template.ts +10 -10
  240. package/src/theme/components/text.ts +6 -6
  241. package/src/theme/components/textInput.ts +1 -0
  242. package/src/theme/components/toggle.ts +69 -0
  243. package/src/theme/components/videoPlayer.ts +0 -2
  244. package/src/theme/foundations/global.ts +2 -2
  245. package/src/theme/foundations/spacing.ts +3 -0
  246. package/src/theme/foundations/typography.ts +84 -12
  247. package/src/theme/index.ts +8 -0
  248. package/src/utils/componentCategories.ts +4 -2
  249. package/src/utils/utils.ts +17 -0
  250. package/dist/__tests__/utils/bem.test.d.ts +0 -1
  251. package/dist/components/CardEdition/CardEdition.d.ts +0 -21
  252. package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
  253. package/dist/components/Input/Input.d.ts +0 -36
  254. package/dist/components/Input/Input.stories.d.ts +0 -29
  255. package/dist/components/Input/InputTypes.d.ts +0 -6
  256. package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
  257. package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
  258. package/dist/helpers/getCSSVariable.d.ts +0 -1
  259. package/dist/interfaces.d.ts +0 -3
  260. package/dist/utils/bem.d.ts +0 -1
  261. package/src/__tests__/utils/bem.test.ts +0 -37
  262. package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
  263. package/src/components/CardEdition/CardEdition.test.tsx +0 -395
  264. package/src/components/CardEdition/CardEdition.tsx +0 -60
  265. package/src/components/CardEdition/_CardEdition.scss +0 -137
  266. package/src/components/Input/Input.stories.tsx +0 -133
  267. package/src/components/Input/Input.test.tsx +0 -266
  268. package/src/components/Input/Input.tsx +0 -81
  269. package/src/components/Input/InputTypes.tsx +0 -8
  270. package/src/components/Input/_Input.scss +0 -78
  271. package/src/components/StyleGuide/UIDocCard.tsx +0 -36
  272. package/src/helpers/CSSVariablesHelper.tsx +0 -34
  273. package/src/helpers/getCSSVariable.tsx +0 -5
  274. package/src/interfaces.ts +0 -3
  275. package/src/utils/bem.ts +0 -44
@@ -7,6 +7,8 @@ interface BaseProps {
7
7
  centered?: boolean;
8
8
  /** Optional custom `Icon` that will override the default `Icon`. */
9
9
  icon?: JSX.Element;
10
+ /** ID that other components can cross reference for accessibility purposes. */
11
+ id?: string;
10
12
  /** Optional prop to control the coloring of the `Notification` text and the
11
13
  * visibility of an applicable icon. */
12
14
  notificationType?: NotificationTypes;
@@ -21,14 +23,14 @@ export interface NotificationProps extends BasePropsWithoutAlignText {
21
23
  dismissible?: boolean;
22
24
  /** Optional custom `Icon` that will override the default `Icon`. */
23
25
  icon?: JSX.Element;
24
- /** ID that other components can cross reference for accessibility purposes. */
25
- id?: string;
26
26
  /** Optional prop to control the margin around the `Notification` component. */
27
27
  noMargin?: boolean;
28
28
  /** Content to be rendered in a `NotificationContent` component. */
29
29
  notificationContent: string | JSX.Element;
30
30
  /** Content to be rendered in a `NotificationHeading` component. */
31
31
  notificationHeading?: string;
32
+ /** Prop to display the `Notification` icon. Defaults to `true`. */
33
+ showIcon?: boolean;
32
34
  }
33
35
  /**
34
36
  * NotificationHeading child-component.
@@ -1,12 +1,10 @@
1
1
  import * as React from "react";
2
2
  export interface PlaceholderProps {
3
- /** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
4
- blockName?: string;
5
- /** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
6
- modifiers?: string[];
3
+ /** Modifier string for the classname. */
4
+ variant?: string;
7
5
  }
8
6
  /** Creates a gray box with an editable string for dropping in spaces
9
7
  * within components or on templates where a component will be but
10
8
  * that hasn't been created yet
11
9
  */
12
- export default function Placeholder(props: React.PropsWithChildren<PlaceholderProps>): JSX.Element;
10
+ export default function Placeholder({ children, variant, }: React.PropsWithChildren<PlaceholderProps>): JSX.Element;
@@ -1,15 +1,16 @@
1
1
  import * as React from "react";
2
+ import { HelperErrorTextType } from "../HelperErrorText/HelperErrorText";
2
3
  export interface RadioProps {
3
4
  /** Additional class name. */
4
5
  className?: string;
5
- /** Optional string to populate the HelperErrorText for the error state
6
- * when `isInvalid` is true.
7
- */
8
- invalidText?: string;
9
6
  /** Optional string to populate the HelperErrorText for the standard state. */
10
- helperText?: string;
7
+ helperText?: HelperErrorTextType;
11
8
  /** ID that other components can cross reference for accessibility purposes */
12
9
  id?: string;
10
+ /** Optional string to populate the HelperErrorText for the error state
11
+ * when `isInvalid` is true.
12
+ */
13
+ invalidText?: HelperErrorTextType;
13
14
  /** When using the Radio as a "controlled" form element, you can specify the
14
15
  * `Radio`'s checked state using this prop. You must also pass an onChange prop.
15
16
  * Learn more about controlled and uncontrolled form fields: https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/ */
@@ -1,4 +1,5 @@
1
1
  import * as React from "react";
2
+ import { HelperErrorTextType } from "../HelperErrorText/HelperErrorText";
2
3
  import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
3
4
  export interface RadioGroupProps {
4
5
  /** Any child node passed to the component. */
@@ -8,11 +9,11 @@ export interface RadioGroupProps {
8
9
  /** Populates the initial value of the input */
9
10
  defaultValue?: string;
10
11
  /** Optional string to populate the HelperErrorText for standard state */
11
- helperText?: string;
12
+ helperText?: HelperErrorTextType;
12
13
  /** ID that other components can cross reference for accessibility purposes */
13
14
  id?: string;
14
15
  /** Optional string to populate the HelperErrorText for error state */
15
- invalidText?: string;
16
+ invalidText?: HelperErrorTextType;
16
17
  /** Adds the 'disabled' prop to the input when true. */
17
18
  isDisabled?: boolean;
18
19
  /** Adds the 'aria-invalid' attribute to the input and
@@ -1,4 +1,5 @@
1
1
  import * as React from "react";
2
+ import { HelperErrorTextType } from "../HelperErrorText/HelperErrorText";
2
3
  interface SelectProps {
3
4
  labelText: string;
4
5
  name: string;
@@ -18,13 +19,17 @@ export interface SearchBarProps {
18
19
  buttonOnClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;
19
20
  /** A class name for the `form` element. */
20
21
  className?: string;
22
+ /** Optional string for the SearchBar's description above the component. */
23
+ descriptionText?: string;
24
+ /** Optional string for the SearchBar's heading text above the component. */
25
+ headingText?: string;
21
26
  /** The text to display below the form in a `HelperErrorText` component. */
22
- helperErrorText?: string;
27
+ helperText?: HelperErrorTextType;
23
28
  /** ID that other components can cross reference for accessibility purposes */
24
29
  id?: string;
25
30
  /** Optional string to populate the `HelperErrorText` for the error state
26
31
  * when `isInvalid` is true. */
27
- invalidText?: string;
32
+ invalidText?: HelperErrorTextType;
28
33
  /** Sets children form components in the disabled state. */
29
34
  isDisabled?: boolean;
30
35
  /** Sets children form components in the error state. */
@@ -35,6 +40,9 @@ export interface SearchBarProps {
35
40
  labelText: string;
36
41
  /** Adds 'method' property to the `form` element. */
37
42
  method?: string;
43
+ /** Sets the `Button` variant type to `ButtonTypes.NoBrand` when true;
44
+ * false by default which sets the type to `ButtonTypes.Primary`. */
45
+ noBrandButtonType?: boolean;
38
46
  /** Handler function when the form is submitted. */
39
47
  onSubmit: (event: React.FormEvent) => void;
40
48
  /** Required props to render a `Select` element. */
@@ -1,15 +1,16 @@
1
1
  import React from "react";
2
+ import { HelperErrorTextType } from "../HelperErrorText/HelperErrorText";
2
3
  import { SelectTypes } from "./SelectTypes";
3
4
  export interface SelectProps {
4
5
  /** A class name for the `div` parent element. */
5
6
  className?: string;
6
7
  /** Optional string to populate the `HelperErrorText` for the standard state. */
7
- helperText?: string;
8
+ helperText?: HelperErrorTextType;
8
9
  /** ID that other components can cross reference for accessibility purposes */
9
10
  id?: string;
10
11
  /** Optional string to populate the `HelperErrorText` for the error state
11
12
  * when `isInvalid` is true. */
12
- invalidText?: string;
13
+ invalidText?: HelperErrorTextType;
13
14
  /** Adds the `disabled` and `aria-disabled` attributes to the select when true */
14
15
  isDisabled?: boolean;
15
16
  /** Adds the `aria-invalid` attribute to the select when true. This also makes
@@ -26,6 +27,8 @@ export interface SelectProps {
26
27
  /** The callback function to get the selected value.
27
28
  * Should be passed along with `value` for controlled components. */
28
29
  onChange?: (event: React.FormEvent) => void;
30
+ /** Placeholder text in the select element. */
31
+ placeholder?: string;
29
32
  /** Offers the ability to hide the helper/invalid text. */
30
33
  showHelperInvalidText?: boolean;
31
34
  /** Offers the ability to show the select's label onscreen or hide it. Refer
@@ -5,13 +5,17 @@ export interface SkeletonLoaderProps {
5
5
  border?: boolean;
6
6
  /** Additional class name for the Skeleton component. */
7
7
  className?: string;
8
- /** Optional numeric value to control the number of lines for content placeholder; default value is `3`. */
8
+ /** Optional numeric value to control the number of lines for content
9
+ * placeholder; default value is `3`. */
9
10
  contentSize?: number;
10
- /** Optional numeric value to control the number of lines for heading placeholder; default value is `1`. */
11
+ /** Optional numeric value to control the number of lines for heading
12
+ * placeholder; default value is `1`. */
11
13
  headingSize?: number;
12
- /** Optional value to control the aspect ratio of the image placeholder; default value is `square`. */
14
+ /** Optional value to control the aspect ratio of the image placeholder;
15
+ * default value is `SkeletonLoaderImageRatios.Square`. */
13
16
  imageAspectRatio?: SkeletonLoaderImageRatios;
14
- /** Optional value to control the position of the image placeholder; default value is `column`. */
17
+ /** Optional value to control the position of the image placeholder;
18
+ * default value is `SkeletonLoaderLayouts.Column`. */
15
19
  layout?: SkeletonLoaderLayouts;
16
20
  /** Optional boolean value to control visibility of button placeholder. */
17
21
  showButton?: boolean;
@@ -1,4 +1,5 @@
1
1
  import * as React from "react";
2
+ import { HelperErrorTextType } from "../HelperErrorText/HelperErrorText";
2
3
  export interface SliderProps {
3
4
  /** Additional class name for the Slider component. */
4
5
  className?: string;
@@ -7,12 +8,12 @@ export interface SliderProps {
7
8
  */
8
9
  defaultValue?: number | number[];
9
10
  /** Optional string to populate the HelperErrorText for standard state */
10
- helperText?: string;
11
+ helperText?: HelperErrorTextType;
11
12
  /** ID that other components can cross reference for accessibility purposes. */
12
13
  id?: string;
13
14
  /** Optional string to populate the `HelperErrorText` for the error state
14
15
  * when `isInvalid` is true. */
15
- invalidText?: string;
16
+ invalidText?: HelperErrorTextType;
16
17
  /** Adds the 'disabled' state to the slider and text input(s) when true. */
17
18
  isDisabled?: boolean;
18
19
  /** Adds the 'invalid' state to the slider and text input(s) when true. */
@@ -5,7 +5,8 @@ export interface StatusBadgeProps {
5
5
  className?: string;
6
6
  /** ID that other components can cross reference for accessibility purposes */
7
7
  id?: string;
8
- /** Level of the status badge through StatusBadgeTypes. */
8
+ /** Level of the status badge through StatusBadgeTypes. Defaults to
9
+ * `StatusBadgeTypes.Low`. */
9
10
  level?: StatusBadgeTypes;
10
11
  }
11
12
  declare function StatusBadge(props: React.PropsWithChildren<StatusBadgeProps>): JSX.Element;
@@ -0,0 +1,41 @@
1
+ import * as React from "react";
2
+ import { ImageRatios, ImageSizes } from "../Image/ImageTypes";
3
+ import { StructuredContentImagePosition } from "./StructuredContentTypes";
4
+ export interface StructuredContentProps {
5
+ /** Optional value to set the text for the callout heading text. */
6
+ calloutText?: string;
7
+ /** Additional class name for the `StructuredContent` component. */
8
+ className?: string;
9
+ /** Optional value to set the text for the main heading text. */
10
+ headingText?: string;
11
+ /** ID that other components can cross reference for accessibility purposes. */
12
+ id?: string;
13
+ /** String value used to populate the `alt` attribute of the internal `Image`
14
+ * component's `img` element. @NOTE if an image is used, this value must be passed. */
15
+ imageAlt?: string;
16
+ /** Optional value to control the aspect ratio of the internal `Image` component.
17
+ * Defaults to `ImageRatios.Square`. */
18
+ imageAspectRatio?: ImageRatios;
19
+ /** Optional value to render as a caption for the internal `Image` component. */
20
+ imageCaption?: string;
21
+ /** Optional DOM element to use instead of the DS `Image` component. */
22
+ imageComponent?: JSX.Element;
23
+ /** Optional value to render as a credit for the internal `Image` component. */
24
+ imageCredit?: string;
25
+ /** Optional value to control the positioning of the internal `Image` component.
26
+ * Defaults to `StructuredContentImagePosition.Left`. */
27
+ imagePosition?: StructuredContentImagePosition;
28
+ /** Optional value to control the size of the internal `Image` component.
29
+ * Defaults to `ImageSizes.Medium`. */
30
+ imageSize?: ImageSizes;
31
+ /** Optional value that contains the path to an image. If omitted, the internal
32
+ * DS `Image` component will not render. */
33
+ imageSrc?: string;
34
+ /** Required value to set the text for the body content. */
35
+ bodyContent: string | JSX.Element;
36
+ }
37
+ /**
38
+ * The `StructuredContent` component that displays a heading, callout content,
39
+ * an image, and body content. All are optional except for body content.
40
+ */
41
+ export default function StructuredContent(props: React.PropsWithChildren<StructuredContentProps>): JSX.Element;
@@ -0,0 +1,5 @@
1
+ export declare enum StructuredContentImagePosition {
2
+ Left = "left",
3
+ Right = "right",
4
+ Center = "center"
5
+ }
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ export interface TableProps {
3
+ /** Additional class name for the `Table` component. */
4
+ className?: string;
5
+ /** Array of string values used to populate the `Table` column headers. */
6
+ columnHeaders?: string[];
7
+ /** Hex value to set the background color of the column headers. */
8
+ columnHeadersBackgroundColor?: string;
9
+ /** Hex value to set the text color of the column headers. */
10
+ columnHeadersTextColor?: string;
11
+ /** ID that other components can cross reference for accessibility purposes. */
12
+ id?: string;
13
+ /** If true, the first cell of each row in the `Table` component will be visually styled as a header. The default value is false */
14
+ useRowHeaders?: boolean;
15
+ /** If true, a border will be displayed between each row in the `Table` component. The default value is false. */
16
+ showRowDividers?: boolean;
17
+ /** Two-dimensional array used to populate the table rows. */
18
+ tableData: string[][];
19
+ /** Displays `Table` title element. */
20
+ titleText?: string;
21
+ }
22
+ declare function Table(props: React.PropsWithChildren<TableProps>): JSX.Element;
23
+ export default Table;
@@ -1,6 +1,10 @@
1
1
  import * as React from "react";
2
2
  export interface TemplateProps {
3
3
  }
4
+ export interface TemplateFooterProps {
5
+ /** Flag to render an HTML footer element. True by default. */
6
+ renderFooterElement?: boolean;
7
+ }
4
8
  export interface TemplateSidebarProps {
5
9
  /** Renders the `TemplateContentSidebar` component either on the left or
6
10
  * right side of the `TemplateContentPrimary` component. */
@@ -8,7 +12,7 @@ export interface TemplateSidebarProps {
8
12
  }
9
13
  export interface TemplateContentProps extends TemplateSidebarProps {
10
14
  }
11
- export interface TemplateAppContainerProps extends TemplateSidebarProps {
15
+ export interface TemplateAppContainerProps extends TemplateFooterProps, TemplateSidebarProps {
12
16
  /** DOM that will be rendered in the `TemplateBreakout` component section. */
13
17
  breakout?: React.ReactElement;
14
18
  /** DOM that will be rendered in the `TemplateContentPrimary` component section. */
@@ -77,9 +81,10 @@ declare const TemplateContentSidebar: (props: React.PropsWithChildren<TemplateCo
77
81
  /**
78
82
  * This optional component should be the last child of the `Template`
79
83
  * component. This is rendered as an HTML `<footer>` element and spans the full
80
- * width of the page.
84
+ * width of the page. If an HTML `<footer>` element is already passed in a
85
+ * custom component, set `renderFooterElement` to `false`.
81
86
  */
82
- declare const TemplateFooter: (props: React.PropsWithChildren<TemplateProps>) => JSX.Element;
87
+ declare const TemplateFooter: ({ children, renderFooterElement, }: React.PropsWithChildren<TemplateFooterProps>) => JSX.Element;
83
88
  /**
84
89
  * This single component can be used instead of all the individual template
85
90
  * components. Instead of importing and rendering the needed "template"
@@ -3,14 +3,14 @@ import { TextDisplaySizes } from "./TextTypes";
3
3
  export interface TextProps {
4
4
  /** Additional class name to render in the `Text` component. */
5
5
  className?: string;
6
+ /** Optional prop to control the text styling */
7
+ displaySize?: TextDisplaySizes;
6
8
  /** Optional prop used to show bolded text */
7
9
  isBold?: boolean;
8
10
  /** Optional prop used to show itlicized text */
9
11
  isItalic?: boolean;
10
12
  /** Optional prop used to remove default spacing */
11
13
  noSpace?: boolean;
12
- /** Optional prop to control the text styling */
13
- displaySize?: TextDisplaySizes;
14
14
  }
15
15
  declare function Text(props: React.PropsWithChildren<TextProps>): JSX.Element;
16
16
  export default Text;
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { TextInputTypes, TextInputVariants } from "./TextInputTypes";
3
+ import { HelperErrorTextType } from "../HelperErrorText/HelperErrorText";
3
4
  export interface InputProps {
4
5
  /** Optionally pass in additional Chakra-based styles. */
5
6
  additionalStyles?: {
@@ -14,11 +15,11 @@ export interface InputProps {
14
15
  /** The starting value of the input field. */
15
16
  defaultValue?: string;
16
17
  /** Populates the HelperErrorText for the standard state */
17
- helperText?: string;
18
+ helperText?: HelperErrorTextType;
18
19
  /** ID that other components can cross reference for accessibility purposes */
19
20
  id?: string;
20
21
  /** Populates the HelperErrorText for the error state */
21
- invalidText?: string;
22
+ invalidText?: HelperErrorTextType;
22
23
  /** Adds the `disabled` and `aria-disabled` prop to the input when true */
23
24
  isDisabled?: boolean;
24
25
  /** Adds errored styling to the input/textarea and helper text elements */
@@ -48,7 +49,7 @@ export interface InputProps {
48
49
  type?: TextInputTypes;
49
50
  /** Populates the value of the input/textarea elements */
50
51
  value?: string;
51
- /** The variant to display. */
52
+ /** FOR INTERNAL DS USE ONLY: the input variant to display. */
52
53
  variantType?: TextInputVariants;
53
54
  }
54
55
  /**
@@ -0,0 +1,48 @@
1
+ import * as React from "react";
2
+ import { HelperErrorTextType } from "../HelperErrorText/HelperErrorText";
3
+ import { ToggleSizes } from "./ToggleSizes";
4
+ export interface ToggleProps {
5
+ /** Optionally pass in additional Chakra-based styles. */
6
+ additionalStyles?: {
7
+ [key: string]: any;
8
+ };
9
+ /** Used for uncontrolled scenarios. Sets the state of the Toggle when the page first loads.
10
+ * If true, the toggle will be initially set to the "on" position. */
11
+ defaultChecked?: boolean;
12
+ /** Optional string to populate the HelperErrorText for standard state */
13
+ helperText?: HelperErrorTextType;
14
+ /** ID that other components can cross reference for accessibility purposes */
15
+ id?: string;
16
+ /** Optional string to populate the HelperErrorText for the error state
17
+ * when `isInvalid` is true. */
18
+ invalidText?: HelperErrorTextType;
19
+ /** When using the Toggle as a "controlled" form element, you can specify
20
+ * the Toggle's checked state using this prop.
21
+ * Learn more about controlled and uncontrolled form fields:
22
+ * https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/ */
23
+ isChecked?: boolean;
24
+ /** Adds the 'disabled' and `aria-disabled` attributes to the input when true.
25
+ * This also makes the text italic and color scheme gray. */
26
+ isDisabled?: boolean;
27
+ /** Adds the 'aria-invalid' attribute to the input when true. This also makes
28
+ * the color theme "NYPL error" red for the button and text. */
29
+ isInvalid?: boolean;
30
+ /** Adds the 'required' attribute to the input when true. */
31
+ isRequired?: boolean;
32
+ /** The checkbox's label. This will serve as the text content for a `<label>`
33
+ * element if `showlabel` is true, or an "aria-label" if `showLabel` is false. */
34
+ labelText: string;
35
+ /** The name prop indicates into which group of checkboxes this checkbox
36
+ * belongs. If none is specified, 'default' will be used */
37
+ name?: string;
38
+ /** The action to perform on the `<input>`'s onChange function */
39
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
40
+ /** Offers the ability to hide the helper/invalid text. */
41
+ size?: ToggleSizes;
42
+ }
43
+ export declare const onChangeDefault: () => void;
44
+ /**
45
+ * Component that renders Chakra's `Switch` component along with NYPL defaults.
46
+ */
47
+ declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<HTMLInputElement>>;
48
+ export default Toggle;
@@ -0,0 +1,4 @@
1
+ export declare enum ToggleSizes {
2
+ Large = "large",
3
+ Small = "small"
4
+ }
@@ -1,25 +1,36 @@
1
1
  import * as React from "react";
2
+ import { HelperErrorTextType } from "../HelperErrorText/HelperErrorText";
2
3
  import { VideoPlayerAspectRatios, VideoPlayerTypes } from "./VideoPlayerTypes";
3
4
  export interface VideoPlayerProps {
4
- /** Optional aspect ratio prop to control the sizing of the video player; if omitted, the video player defaults to `sixteen-by-nine` */
5
+ /** Optional aspect ratio prop to control the sizing of the video player; if
6
+ * omitted, the video player defaults to `sixteen-by-nine` */
5
7
  aspectRatio?: VideoPlayerAspectRatios;
6
8
  /** Optional className you can add in addition to `video-player` */
7
9
  className?: string;
8
10
  /** Optional string to set the text for a video description */
9
11
  descriptionText?: string;
12
+ /** Optional string to set a code snippet provided by YouTube or Vimeo; the
13
+ * `videoPlayer` component will accept the `embedCode` prop or the `videoId`
14
+ * and `videoType` props */
15
+ embedCode?: string;
10
16
  /** Optional string to set the text for a `Heading` component */
11
17
  headingText?: string;
12
18
  /** Optional string to set the text for a `HelperErrorText` component */
13
- helperText?: string;
19
+ helperText?: HelperErrorTextType;
14
20
  /** ID that other components can cross reference for accessibility purposes */
15
21
  id?: string;
16
- /** Optional title to be added to the `<iframe>` element for improved accessibility; this title should describe in a few words the content of the video; if omitted, a generic title will be added */
22
+ /** Optional title to be added to the `<iframe>` element for improved
23
+ * accessibility; this title should describe in a few words the content of
24
+ * the video; if omitted, a generic title will be added; if a `title`
25
+ * attribute is already present in the `embedCode` prop, this prop will be
26
+ * ignored */
17
27
  iframeTitle?: string;
18
28
  /** Offers the ability to hide the helper/invalid text. */
19
29
  showHelperInvalidText?: boolean;
20
- /** Required YouTube or Vimeo video ID. This value can be pulled from a video's YouTube or Vimeo URL. */
21
- videoId: string;
30
+ /** Required YouTube or Vimeo video ID. This value can be pulled from a
31
+ * video's YouTube or Vimeo URL. */
32
+ videoId?: string;
22
33
  /** Required. Used to specify which video service is being used. */
23
- videoType: VideoPlayerTypes;
34
+ videoType?: VideoPlayerTypes;
24
35
  }
25
36
  export default function VideoPlayer(props: React.PropsWithChildren<VideoPlayerProps>): JSX.Element;