@nypl/design-system-react-components 0.25.11 → 0.26.0

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 (347) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/README.md +14 -26
  3. package/dist/components/Accordion/Accordion.d.ts +6 -4
  4. package/dist/components/Accordion/AccordionTypes.d.ts +5 -0
  5. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -4
  6. package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +2 -1
  7. package/dist/components/Button/Button.d.ts +2 -2
  8. package/dist/components/Card/Card.d.ts +22 -29
  9. package/dist/components/Checkbox/Checkbox.d.ts +3 -3
  10. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +9 -6
  11. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
  12. package/dist/components/DatePicker/DatePicker.d.ts +5 -6
  13. package/dist/components/Fieldset/Fieldset.d.ts +5 -6
  14. package/dist/components/Form/Form.d.ts +6 -6
  15. package/dist/components/Grid/GridTypes.d.ts +7 -7
  16. package/dist/components/Grid/SimpleGrid.d.ts +1 -1
  17. package/dist/components/Heading/Heading.d.ts +5 -5
  18. package/dist/components/Heading/HeadingTypes.d.ts +1 -1
  19. package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
  20. package/dist/components/Hero/Hero.d.ts +9 -5
  21. package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
  22. package/dist/components/Icons/Icon.d.ts +2 -1
  23. package/dist/components/Icons/IconTypes.d.ts +10 -7
  24. package/dist/components/Image/Image.d.ts +27 -9
  25. package/dist/components/Image/ImageTypes.d.ts +4 -4
  26. package/dist/components/Label/Label.d.ts +7 -4
  27. package/dist/components/Link/Link.d.ts +1 -1
  28. package/dist/components/List/List.d.ts +11 -11
  29. package/dist/components/List/ListTypes.d.ts +1 -1
  30. package/dist/components/Logo/Logo.d.ts +2 -1
  31. package/dist/components/Logo/LogoSvgs.d.ts +8 -0
  32. package/dist/components/Logo/LogoTypes.d.ts +10 -2
  33. package/dist/components/Notification/Notification.d.ts +7 -7
  34. package/dist/components/Pagination/Pagination.d.ts +8 -4
  35. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
  36. package/dist/components/Radio/Radio.d.ts +5 -7
  37. package/dist/components/RadioGroup/RadioGroup.d.ts +16 -8
  38. package/dist/components/SearchBar/SearchBar.d.ts +5 -5
  39. package/dist/components/Select/Select.d.ts +12 -8
  40. package/dist/components/Select/SelectTypes.d.ts +4 -0
  41. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -6
  42. package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +0 -4
  43. package/dist/components/Slider/Slider.d.ts +6 -4
  44. package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
  45. package/dist/components/StructuredContent/StructuredContent.d.ts +10 -23
  46. package/dist/components/Table/Table.d.ts +1 -1
  47. package/dist/components/Tabs/Tabs.d.ts +7 -6
  48. package/dist/components/Template/Template.d.ts +18 -9
  49. package/dist/components/Text/Text.d.ts +4 -4
  50. package/dist/components/Text/TextTypes.d.ts +1 -1
  51. package/dist/components/TextInput/TextInput.d.ts +7 -7
  52. package/dist/components/Toggle/Toggle.d.ts +8 -10
  53. package/dist/components/Toggle/{ToggleSizes.d.ts → ToggleTypes.d.ts} +1 -1
  54. package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
  55. package/dist/design-system-react-components.cjs.development.js +2802 -1686
  56. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  57. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  58. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  59. package/dist/design-system-react-components.esm.js +2811 -1699
  60. package/dist/design-system-react-components.esm.js.map +1 -1
  61. package/dist/helpers/enums.d.ts +4 -0
  62. package/dist/hooks/useCarouselStyles.d.ts +3 -2
  63. package/dist/hooks/useNYPLTheme.d.ts +12 -0
  64. package/dist/index.d.ts +11 -9
  65. package/dist/styles.css +1 -1
  66. package/dist/theme/components/accordion.d.ts +7 -12
  67. package/dist/theme/components/breadcrumb.d.ts +6 -0
  68. package/dist/theme/components/button.d.ts +10 -2
  69. package/dist/theme/components/card.d.ts +44 -24
  70. package/dist/theme/components/checkbox.d.ts +6 -6
  71. package/dist/theme/components/checkboxGroup.d.ts +4 -2
  72. package/dist/theme/components/componentWrapper.d.ts +2 -2
  73. package/dist/theme/components/customTable.d.ts +84 -1
  74. package/dist/theme/components/fieldset.d.ts +6 -14
  75. package/dist/theme/components/global.d.ts +37 -29
  76. package/dist/theme/components/globalMixins.d.ts +8 -8
  77. package/dist/theme/components/heading.d.ts +53 -0
  78. package/dist/theme/components/helperErrorText.d.ts +1 -0
  79. package/dist/theme/components/hero.d.ts +21 -15
  80. package/dist/theme/components/image.d.ts +1 -1
  81. package/dist/theme/components/label.d.ts +9 -10
  82. package/dist/theme/components/list.d.ts +105 -9
  83. package/dist/theme/components/notification.d.ts +7 -4
  84. package/dist/theme/components/pagination.d.ts +2 -5
  85. package/dist/theme/components/radio.d.ts +10 -6
  86. package/dist/theme/components/radioGroup.d.ts +4 -2
  87. package/dist/theme/components/select.d.ts +38 -13
  88. package/dist/theme/components/skeletonLoader.d.ts +2 -2
  89. package/dist/theme/components/slider.d.ts +14 -7
  90. package/dist/theme/components/structuredContent.d.ts +197 -0
  91. package/dist/theme/components/textInput.d.ts +22 -14
  92. package/dist/theme/components/toggle.d.ts +25 -6
  93. package/dist/theme/foundations/global.d.ts +33 -3
  94. package/dist/theme/foundations/radii.d.ts +1 -0
  95. package/dist/theme/foundations/spacing.d.ts +46 -43
  96. package/dist/utils/utils.d.ts +10 -0
  97. package/package.json +5 -6
  98. package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +34 -0
  99. package/src/components/Accordion/Accordion.stories.mdx +150 -66
  100. package/src/components/Accordion/Accordion.test.tsx +65 -17
  101. package/src/components/Accordion/Accordion.tsx +61 -27
  102. package/src/components/Accordion/AccordionTypes.tsx +5 -0
  103. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +505 -14
  104. package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
  105. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +53 -18
  106. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +66 -35
  107. package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
  108. package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +2 -1
  109. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +308 -10
  110. package/src/components/Button/Button.stories.mdx +87 -23
  111. package/src/components/Button/Button.test.tsx +25 -0
  112. package/src/components/Button/Button.tsx +18 -7
  113. package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
  114. package/src/components/Card/Card.stories.mdx +493 -329
  115. package/src/components/Card/Card.test.tsx +138 -18
  116. package/src/components/Card/Card.tsx +151 -85
  117. package/src/components/Card/__snapshots__/Card.test.tsx.snap +220 -100
  118. package/src/components/Chakra/Center.stories.mdx +2 -2
  119. package/src/components/Chakra/Grid.stories.mdx +4 -4
  120. package/src/components/Checkbox/Checkbox.stories.mdx +73 -9
  121. package/src/components/Checkbox/Checkbox.test.tsx +89 -10
  122. package/src/components/Checkbox/Checkbox.tsx +27 -16
  123. package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +209 -6
  124. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +135 -23
  125. package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +216 -90
  126. package/src/components/CheckboxGroup/CheckboxGroup.tsx +39 -26
  127. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +493 -89
  128. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
  129. package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
  130. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
  131. package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
  132. package/src/components/DatePicker/DatePicker.test.tsx +94 -15
  133. package/src/components/DatePicker/DatePicker.tsx +67 -58
  134. package/src/components/DatePicker/_DatePicker.scss +71 -13
  135. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
  136. package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
  137. package/src/components/Fieldset/Fieldset.test.tsx +58 -28
  138. package/src/components/Fieldset/Fieldset.tsx +35 -30
  139. package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
  140. package/src/components/Form/Form.stories.mdx +118 -47
  141. package/src/components/Form/Form.test.tsx +59 -16
  142. package/src/components/Form/Form.tsx +89 -65
  143. package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
  144. package/src/components/Grid/GridTypes.tsx +7 -7
  145. package/src/components/Grid/SimpleGrid.stories.mdx +87 -41
  146. package/src/components/Grid/SimpleGrid.test.tsx +24 -9
  147. package/src/components/Grid/SimpleGrid.tsx +29 -20
  148. package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
  149. package/src/components/Heading/Heading.stories.mdx +56 -25
  150. package/src/components/Heading/Heading.test.tsx +17 -7
  151. package/src/components/Heading/Heading.tsx +60 -58
  152. package/src/components/Heading/HeadingTypes.tsx +1 -1
  153. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +27 -8
  154. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
  155. package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
  156. package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
  157. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
  158. package/src/components/Hero/Hero.stories.mdx +143 -113
  159. package/src/components/Hero/Hero.test.tsx +146 -58
  160. package/src/components/Hero/Hero.tsx +144 -112
  161. package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
  162. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
  163. package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -17
  164. package/src/components/HorizontalRule/HorizontalRule.tsx +9 -25
  165. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
  166. package/src/components/Icons/Icon.stories.mdx +80 -23
  167. package/src/components/Icons/Icon.test.tsx +51 -2
  168. package/src/components/Icons/Icon.tsx +93 -71
  169. package/src/components/Icons/IconTypes.tsx +9 -6
  170. package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
  171. package/src/components/Image/Image.stories.mdx +160 -71
  172. package/src/components/Image/Image.test.tsx +40 -48
  173. package/src/components/Image/Image.tsx +80 -48
  174. package/src/components/Image/ImageTypes.ts +4 -4
  175. package/src/components/Image/__snapshots__/Image.test.tsx.snap +84 -21
  176. package/src/components/Label/Label.stories.mdx +42 -20
  177. package/src/components/Label/Label.test.tsx +42 -17
  178. package/src/components/Label/Label.tsx +22 -13
  179. package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
  180. package/src/components/Link/Link.stories.mdx +25 -1
  181. package/src/components/Link/Link.test.tsx +21 -0
  182. package/src/components/Link/Link.tsx +16 -9
  183. package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
  184. package/src/components/List/List.stories.mdx +75 -40
  185. package/src/components/List/List.test.tsx +73 -22
  186. package/src/components/List/List.tsx +44 -28
  187. package/src/components/List/ListTypes.tsx +1 -1
  188. package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
  189. package/src/components/Logo/Logo.stories.mdx +40 -16
  190. package/src/components/Logo/Logo.test.tsx +29 -2
  191. package/src/components/Logo/Logo.tsx +28 -11
  192. package/src/components/Logo/LogoSvgs.tsx +16 -0
  193. package/src/components/Logo/LogoTypes.tsx +9 -1
  194. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
  195. package/src/components/Modal/Modal.stories.mdx +13 -0
  196. package/src/components/Notification/Notification.stories.mdx +34 -5
  197. package/src/components/Notification/Notification.test.tsx +43 -9
  198. package/src/components/Notification/Notification.tsx +59 -55
  199. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +256 -32
  200. package/src/components/Pagination/Pagination.stories.mdx +76 -13
  201. package/src/components/Pagination/Pagination.test.tsx +116 -5
  202. package/src/components/Pagination/Pagination.tsx +54 -29
  203. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +247 -30
  204. package/src/components/Placeholder/Placeholder.tsx +3 -1
  205. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
  206. package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +87 -13
  207. package/src/components/ProgressIndicator/ProgressIndicator.tsx +20 -10
  208. package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
  209. package/src/components/Radio/Radio.stories.mdx +75 -11
  210. package/src/components/Radio/Radio.test.tsx +83 -9
  211. package/src/components/Radio/Radio.tsx +70 -61
  212. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +168 -10
  213. package/src/components/RadioGroup/RadioGroup.stories.mdx +293 -94
  214. package/src/components/RadioGroup/RadioGroup.test.tsx +193 -68
  215. package/src/components/RadioGroup/RadioGroup.tsx +110 -101
  216. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1258 -902
  217. package/src/components/SearchBar/SearchBar.stories.mdx +104 -39
  218. package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +66 -6
  219. package/src/components/SearchBar/SearchBar.tsx +23 -13
  220. package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
  221. package/src/components/Select/Select.stories.mdx +151 -62
  222. package/src/components/Select/Select.test.tsx +56 -44
  223. package/src/components/Select/Select.tsx +125 -104
  224. package/src/components/Select/SelectTypes.tsx +5 -0
  225. package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
  226. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +53 -23
  227. package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +14 -8
  228. package/src/components/SkeletonLoader/SkeletonLoader.tsx +80 -78
  229. package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +0 -5
  230. package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
  231. package/src/components/Slider/Slider.stories.mdx +123 -41
  232. package/src/components/Slider/Slider.test.tsx +65 -17
  233. package/src/components/Slider/Slider.tsx +34 -24
  234. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
  235. package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
  236. package/src/components/StatusBadge/StatusBadge.test.tsx +19 -1
  237. package/src/components/StatusBadge/StatusBadge.tsx +25 -20
  238. package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
  239. package/src/components/StructuredContent/StructuredContent.stories.mdx +229 -61
  240. package/src/components/StructuredContent/StructuredContent.test.tsx +162 -101
  241. package/src/components/StructuredContent/StructuredContent.tsx +98 -103
  242. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
  243. package/src/components/StyleGuide/Bidirectionality.stories.mdx +9 -9
  244. package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
  245. package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
  246. package/src/components/StyleGuide/ColorCard.tsx +4 -4
  247. package/src/components/StyleGuide/Colors.stories.mdx +34 -20
  248. package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
  249. package/src/components/StyleGuide/Forms.stories.mdx +27 -12
  250. package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
  251. package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
  252. package/src/components/StyleGuide/Typography.stories.mdx +47 -33
  253. package/src/components/Table/Table.stories.mdx +38 -11
  254. package/src/components/Table/Table.test.tsx +16 -1
  255. package/src/components/Table/Table.tsx +10 -8
  256. package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
  257. package/src/components/Tabs/Tabs.stories.mdx +59 -10
  258. package/src/components/Tabs/Tabs.test.tsx +29 -11
  259. package/src/components/Tabs/Tabs.tsx +28 -21
  260. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
  261. package/src/components/Template/Template.stories.mdx +73 -32
  262. package/src/components/Template/Template.test.tsx +68 -5
  263. package/src/components/Template/Template.tsx +86 -72
  264. package/src/components/Template/__snapshots__/Template.test.tsx.snap +195 -22
  265. package/src/components/Text/Text.stories.mdx +32 -15
  266. package/src/components/Text/Text.test.tsx +14 -11
  267. package/src/components/Text/Text.tsx +13 -16
  268. package/src/components/Text/TextTypes.tsx +1 -1
  269. package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
  270. package/src/components/TextInput/TextInput.stories.mdx +73 -27
  271. package/src/components/TextInput/TextInput.test.tsx +65 -50
  272. package/src/components/TextInput/TextInput.tsx +123 -115
  273. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
  274. package/src/components/Toggle/Toggle.stories.mdx +74 -26
  275. package/src/components/Toggle/Toggle.test.tsx +41 -10
  276. package/src/components/Toggle/Toggle.tsx +31 -27
  277. package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
  278. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +195 -8
  279. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
  280. package/src/components/VideoPlayer/VideoPlayer.test.tsx +41 -6
  281. package/src/components/VideoPlayer/VideoPlayer.tsx +134 -120
  282. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
  283. package/src/docs/Chakra.stories.mdx +51 -10
  284. package/src/docs/Welcome.stories.mdx +168 -0
  285. package/src/{components/Card/CardTypes.tsx → helpers/enums.ts} +2 -2
  286. package/src/hooks/tests/useNYPLTheme.test.tsx +1 -1
  287. package/src/hooks/useCarouselStyles.stories.mdx +30 -0
  288. package/src/hooks/useCarouselStyles.ts +3 -2
  289. package/src/hooks/useNYPLTheme.stories.mdx +101 -0
  290. package/src/hooks/useNYPLTheme.ts +31 -7
  291. package/src/hooks/useWindowSize.stories.mdx +23 -0
  292. package/src/index.ts +11 -15
  293. package/src/styles/base/_place-holder.scss +3 -1
  294. package/src/styles.scss +0 -2
  295. package/src/theme/components/accordion.ts +7 -12
  296. package/src/theme/components/breadcrumb.ts +7 -0
  297. package/src/theme/components/button.ts +15 -7
  298. package/src/theme/components/card.ts +56 -36
  299. package/src/theme/components/checkbox.ts +12 -14
  300. package/src/theme/components/checkboxGroup.ts +4 -2
  301. package/src/theme/components/componentWrapper.ts +2 -2
  302. package/src/theme/components/customTable.ts +39 -31
  303. package/src/theme/components/fieldset.ts +3 -2
  304. package/src/theme/components/global.ts +42 -33
  305. package/src/theme/components/globalMixins.ts +8 -8
  306. package/src/theme/components/heading.ts +1 -1
  307. package/src/theme/components/helperErrorText.ts +1 -0
  308. package/src/theme/components/hero.ts +14 -16
  309. package/src/theme/components/icon.ts +5 -2
  310. package/src/theme/components/image.ts +1 -1
  311. package/src/theme/components/label.ts +4 -3
  312. package/src/theme/components/list.ts +76 -65
  313. package/src/theme/components/notification.ts +10 -7
  314. package/src/theme/components/pagination.ts +2 -5
  315. package/src/theme/components/progressIndicator.ts +3 -3
  316. package/src/theme/components/radio.ts +11 -14
  317. package/src/theme/components/radioGroup.ts +4 -2
  318. package/src/theme/components/select.ts +37 -18
  319. package/src/theme/components/skeletonLoader.ts +3 -3
  320. package/src/theme/components/slider.ts +19 -15
  321. package/src/theme/components/statusBadge.ts +2 -2
  322. package/src/theme/components/structuredContent.ts +66 -1
  323. package/src/theme/components/tabs.ts +2 -2
  324. package/src/theme/components/template.ts +9 -9
  325. package/src/theme/components/textInput.ts +13 -12
  326. package/src/theme/components/toggle.ts +76 -42
  327. package/src/theme/components/videoPlayer.ts +1 -1
  328. package/src/theme/foundations/colors.ts +20 -13
  329. package/src/theme/foundations/global.ts +17 -5
  330. package/src/theme/foundations/radii.ts +1 -0
  331. package/src/theme/foundations/spacing.ts +70 -22
  332. package/src/theme/foundations/typography.ts +3 -3
  333. package/src/utils/componentCategories.ts +28 -21
  334. package/src/utils/utils.ts +28 -0
  335. package/dist/components/Card/CardTypes.d.ts +0 -4
  336. package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
  337. package/dist/components/Pagination/Pagination.stories.d.ts +0 -13
  338. package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +0 -4
  339. package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
  340. package/dist/helpers/generateUUID.d.ts +0 -1
  341. package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +0 -4
  342. package/src/components/Pagination/Pagination.stories.tsx +0 -54
  343. package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
  344. package/src/docs/Intro.stories.mdx +0 -53
  345. package/src/helpers/generateUUID.tsx +0 -5
  346. package/src/styles/base/_03-base.scss +0 -25
  347. package/src/styles/base/_04-focus.scss +0 -22
@@ -60,9 +60,18 @@ import { getCategory } from "../../utils/componentCategories";
60
60
  | Component Version | DS Version |
61
61
  | ----------------- | ---------- |
62
62
  | Added | `0.3.6` |
63
- | Latest | `0.25.10` |
63
+ | Latest | `0.26.0` |
64
64
 
65
- ## TemplateAppContainer Component
65
+ ## Table of Contents
66
+
67
+ - [TemplateAppContainer Overview](#templateappcontainer-overview)
68
+ - [TemplateAppContainer Component Props](#templateappcontainer-component-props)
69
+ - [TemplateAppContainer Accessibility](#templateappcontainer-accessibility)
70
+ - [Template Children Overview](#template-children-overview)
71
+ - [Template Children Component Props](#template-children-component-props)
72
+ - [Full Example with Template Children Components](#full-example-with-template-children-components)
73
+
74
+ ## TemplateAppContainer Overview
66
75
 
67
76
  <Description of={TemplateAppContainer} />
68
77
 
@@ -74,13 +83,7 @@ Likewise, if you have a custom `Footer` component that _already_ renders an HTML
74
83
  `<footer>` element, set `renderFooterElement` to false so only one `<footer>`
75
84
  element is rendered.
76
85
 
77
- If you need to render an alert or notification at the top of the page with an
78
- `aside` HTML element or HTML element with the `role="complementary"` attribute,
79
- then pass that alert or notification component to the `aboveHeader` prop. These
80
- elements should _not_ be rendered in the `header` HTML section since that's an
81
- accessibility violation.
82
-
83
- <b>This is the recommended way to render an app page template.</b>
86
+ **This is the recommended way to render an app page template.**
84
87
 
85
88
  ```jsx
86
89
  import { TemplateAppContainer } from "@nypl/design-system-react-components";
@@ -107,6 +110,8 @@ import { TemplateAppContainer } from "@nypl/design-system-react-components";
107
110
  />;
108
111
  ```
109
112
 
113
+ ## TemplateAppContainer Component Props
114
+
110
115
  <Canvas>
111
116
  <Story
112
117
  name="TemplateAppContainer Component"
@@ -124,6 +129,7 @@ import { TemplateAppContainer } from "@nypl/design-system-react-components";
124
129
  <Placeholder variant="short">More Content</Placeholder>
125
130
  </>
126
131
  ),
132
+ contentId: "mainContent",
127
133
  contentSidebar: <Placeholder>Left Sidebar</Placeholder>,
128
134
  contentTop: <Placeholder>Content Top</Placeholder>,
129
135
  footer: <Placeholder variant="short">Footer</Placeholder>,
@@ -152,13 +158,45 @@ import { TemplateAppContainer } from "@nypl/design-system-react-components";
152
158
 
153
159
  <ArgsTable story="TemplateAppContainer Component" />
154
160
 
155
- ## Template Children Components
161
+ ## TemplateAppContainer Accessibility
156
162
 
157
- The DS also provides a set of "template" components that work together to
158
- render a consistent mobile and desktop layout. More information on individual
159
- components and how they should be composed can be found below. Even though these
160
- component are available for use, we recommend using the `TemplateAppContainer`
161
- component and passing down children component as props as needed.
163
+ **The `TemplateAppContainer` component is the recommended way to render the entire
164
+ application.** Therefore, this accessibility section is specifically for the
165
+ `TemplateAppContainer` but the same rules apply to the individual "Template"
166
+ components.
167
+
168
+ The `TemplateAppContainer` component renders the header as a `<header>` element,
169
+ the content as a `<main>` element, and the footer as a `<footer>` element.
170
+
171
+ If you need to render an alert or notification at the top of the page with an
172
+ `aside` HTML element or HTML element with the `role="complementary"` attribute,
173
+ then pass that alert or notification component to the `aboveHeader` prop. These
174
+ elements should _not_ be rendered in the `header` HTML section since that's an
175
+ accessibility violation.
176
+
177
+ The `TemplateAppContainer` component renders a full DOM and one of the children
178
+ is the `main` HTML element with a default "id" of `"mainContent"`. This should
179
+ be used as the anchor element that the skip navigation link points to. As of
180
+ v0.25.13, the consuming application is responsible for adding the skip
181
+ navigation feature to the application. If your application is using the current
182
+ NYPL Header, it already contains the skip navigation feature but make sure it is
183
+ pointing to the correct anchor element.
184
+
185
+ Resources
186
+
187
+ - [W3C Aria Landmarks Example](https://www.w3.org/TR/wai-aria-practices/examples/landmarks/complementary.html)
188
+ - [Digital A11y Role=Complementary](https://www.digitala11y.com/complementary-role/)
189
+ - [WebAim Skip Navigation Link](https://webaim.org/techniques/skipnav/)
190
+ - [A11ymatters Skip Navigation Link](https://www.a11ymatters.com/pattern/skip-link/)
191
+
192
+ ## Template Children Overview
193
+
194
+ The Reservoir Design System (DS) also provides a set of "template" components
195
+ that work together to render a consistent mobile and desktop layout. More
196
+ information on individual components and how they should be composed can be
197
+ found below. Even though these component are available for use, we recommend
198
+ using the `TemplateAppContainer` component and passing down children component
199
+ as props as needed.
162
200
 
163
201
  Basic "template" components structure:
164
202
 
@@ -203,6 +241,8 @@ import {
203
241
  </Template>
204
242
  ```
205
243
 
244
+ ## Template Children Component Props
245
+
206
246
  <Canvas>
207
247
  <Story
208
248
  name="Template Children Components"
@@ -212,6 +252,7 @@ import {
212
252
  argTypes={{
213
253
  aboveHeader: { table: { disable: true } },
214
254
  breakout: { table: { disable: true } },
255
+ contentId: { table: { disable: true } },
215
256
  contentPrimary: { table: { disable: true } },
216
257
  contentSidebar: { table: { disable: true } },
217
258
  contentTop: { table: { disable: true } },
@@ -334,7 +375,7 @@ The components consist of:
334
375
  ```
335
376
  <Template>
336
377
  <TemplateHeader>...</TemplateHeader>
337
- <TemplateContent sidebar="left">
378
+ <TemplateContent id="mainContent" sidebar="left">
338
379
  // ...
339
380
  </TemplateContent>
340
381
  <Template>
@@ -513,18 +554,14 @@ This is best viewed in the Storybook "Canvas" and not "Docs" section.
513
554
  ]}
514
555
  />
515
556
  <Hero
557
+ backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
516
558
  heroType={HeroTypes.Campaign}
517
559
  heading={
518
560
  <Heading level={HeadingLevels.One} id="1" text="Hero Campaign" />
519
561
  }
562
+ imageAlt="Image example"
563
+ imageSrc="https://placeimg.com/800/400/animals"
520
564
  subHeaderText={otherSubHeaderText}
521
- backgroundImageSrc="https://placeimg.com/2400/800/nature/grayscale"
522
- image={
523
- <Image
524
- src="https://placeimg.com/800/400/animals"
525
- alt="Image example"
526
- />
527
- }
528
565
  />
529
566
  </TemplateBreakout>
530
567
  </TemplateHeader>
@@ -547,7 +584,7 @@ This is best viewed in the Storybook "Canvas" and not "Docs" section.
547
584
  </TemplateContentTop>
548
585
  <TemplateContentPrimary>
549
586
  <p>This is the main content!</p>
550
- <Accordion contentData={faqContent} />
587
+ <Accordion accordionData={faqContent} />
551
588
  <HorizontalRule />
552
589
  <p>Fill out the form!</p>
553
590
  <Form action="/end/point">
@@ -584,11 +621,13 @@ This is best viewed in the Storybook "Canvas" and not "Docs" section.
584
621
  <TemplateContentSidebar>
585
622
  <p>Sidebar information in a `Card` component.</p>
586
623
  <Card
587
- center
588
- imageSrc="https://placeimg.com/400/200/animals"
589
- imageAlt="Alt text"
590
- imageAspectRatio={ImageRatios.Square}
591
- imageSize={ImageSizes.Small}
624
+ imageProps={{
625
+ alt: "Alt text",
626
+ aspectRatio: ImageRatios.Square,
627
+ size: ImageSizes.Small,
628
+ src: "https://placeimg.com/400/200/animals",
629
+ }}
630
+ isCentered
592
631
  >
593
632
  <CardHeading level={HeadingLevels.Two} id="heading1">
594
633
  Small Animal Image
@@ -606,9 +645,11 @@ This is best viewed in the Storybook "Canvas" and not "Docs" section.
606
645
  <TemplateFooter>
607
646
  <Card
608
647
  id="custom-card"
609
- imageAlt="Alt text"
610
- imageSrc="https://cdn-d8.nypl.org/s3fs-public/2020-05/NYPL_MainFacadeRev2Cam2.png"
611
- imageAspectRatio={ImageRatios.SixteenByNine}
648
+ imageProps={{
649
+ alt: "Alt text",
650
+ aspectRatio: ImageRatios.SixteenByNine,
651
+ src: "https://cdn-d8.nypl.org/s3fs-public/2020-05/NYPL_MainFacadeRev2Cam2.png",
652
+ }}
612
653
  layout="horizontal"
613
654
  backgroundColor="#616161"
614
655
  foregroundColor="#FFF"
@@ -100,6 +100,23 @@ describe("TemplateAppContainer component", () => {
100
100
  expect(screen.getByText("Footer")).toBeInTheDocument();
101
101
  });
102
102
 
103
+ it("renders a #mainContent id in the `main` DOM element", () => {
104
+ const { container } = render(
105
+ <TemplateAppContainer
106
+ aboveHeader={aboveHeader}
107
+ header={header}
108
+ breakout={breakout}
109
+ sidebar={sidebar}
110
+ contentTop={contentTop}
111
+ contentSidebar={contentSidebar}
112
+ contentPrimary={contentPrimary}
113
+ footer={footer}
114
+ />
115
+ );
116
+ expect(container.querySelector("#mainContent")).toBeInTheDocument();
117
+ expect(screen.getByRole("main")).toHaveAttribute("id", "mainContent");
118
+ });
119
+
103
120
  it("renders only one header in a custom header component", () => {
104
121
  const customHeader = <header>Custom header</header>;
105
122
  render(
@@ -134,8 +151,9 @@ describe("TemplateAppContainer component", () => {
134
151
  />
135
152
  );
136
153
  expect(warn).toHaveBeenCalledWith(
137
- "`TemplateHeader`: An HTML `header` element was passed in. Set " +
138
- "`renderHeaderElement` to `false` to avoid nested HTML `header` elements."
154
+ "NYPL Reservoir TemplateHeader: An HTML `header` element was passed " +
155
+ "in. Set `renderHeaderElement` to `false` to avoid nested HTML " +
156
+ "`header` elements."
139
157
  );
140
158
  });
141
159
 
@@ -172,8 +190,9 @@ describe("TemplateAppContainer component", () => {
172
190
  />
173
191
  );
174
192
  expect(warn).toHaveBeenCalledWith(
175
- "`TemplateFooter`: An HTML `footer` element was passed in. Set " +
176
- "`renderFooterElement` to `false` to avoid nested HTML `footer` elements."
193
+ "NYPL Reservoir TemplateFooter: An HTML `footer` element was passed " +
194
+ "in. Set `renderFooterElement` to `false` to avoid nested HTML " +
195
+ "`footer` elements."
177
196
  );
178
197
  });
179
198
  });
@@ -207,7 +226,18 @@ describe("Template components", () => {
207
226
  expect(screen.getByText("Footer")).toBeInTheDocument();
208
227
  });
209
228
 
210
- it("Renders the UI snapshot correctly", () => {
229
+ it("renders a #mainContent id in the TemplateContent component", () => {
230
+ const { container } = render(
231
+ <TemplateContent>
232
+ <TemplateContentPrimary>{contentPrimary}</TemplateContentPrimary>
233
+ </TemplateContent>
234
+ );
235
+
236
+ expect(container.querySelector("#mainContent")).toBeInTheDocument();
237
+ expect(screen.getByRole("main")).toHaveAttribute("id", "mainContent");
238
+ });
239
+
240
+ it("renders the UI snapshot correctly", () => {
211
241
  const templateComponents = renderer
212
242
  .create(
213
243
  <Template>
@@ -239,8 +269,41 @@ describe("Template components", () => {
239
269
  />
240
270
  )
241
271
  .toJSON();
272
+ const withChakraProps = renderer
273
+ .create(
274
+ <TemplateAppContainer
275
+ aboveHeader={aboveHeader}
276
+ header={header}
277
+ breakout={breakout}
278
+ sidebar={sidebar}
279
+ contentTop={contentTop}
280
+ contentSidebar={contentSidebar}
281
+ contentPrimary={contentPrimary}
282
+ footer={footer}
283
+ p="20px"
284
+ color="ui.error.primary"
285
+ />
286
+ )
287
+ .toJSON();
288
+ const withOtherProps = renderer
289
+ .create(
290
+ <TemplateAppContainer
291
+ aboveHeader={aboveHeader}
292
+ header={header}
293
+ breakout={breakout}
294
+ sidebar={sidebar}
295
+ contentTop={contentTop}
296
+ contentSidebar={contentSidebar}
297
+ contentPrimary={contentPrimary}
298
+ footer={footer}
299
+ data-testid="props"
300
+ />
301
+ )
302
+ .toJSON();
242
303
 
243
304
  expect(templateComponents).toMatchSnapshot();
244
305
  expect(singleComponent).toMatchSnapshot();
306
+ expect(withChakraProps).toMatchSnapshot();
307
+ expect(withOtherProps).toMatchSnapshot();
245
308
  });
246
309
  });
@@ -1,5 +1,5 @@
1
+ import { Box, chakra, useStyleConfig } from "@chakra-ui/react";
1
2
  import * as React from "react";
2
- import { Box, useStyleConfig } from "@chakra-ui/react";
3
3
 
4
4
  export interface TemplateProps {}
5
5
  export interface TemplateHeaderProps {
@@ -15,7 +15,12 @@ export interface TemplateSidebarProps {
15
15
  * right side of the `TemplateContentPrimary` component. */
16
16
  sidebar?: "none" | "left" | "right";
17
17
  }
18
- export interface TemplateContentProps extends TemplateSidebarProps {}
18
+ export interface TemplateContentProps extends TemplateSidebarProps {
19
+ /** ID used for the `main` HTML element. Defaults to "mainContent". Useful
20
+ * anchor for the application skip navigation. */
21
+ id?: string;
22
+ }
23
+
19
24
  export interface TemplateAppContainerProps
20
25
  extends TemplateFooterProps,
21
26
  TemplateHeaderProps,
@@ -25,6 +30,9 @@ export interface TemplateAppContainerProps
25
30
  aboveHeader?: React.ReactElement;
26
31
  /** DOM that will be rendered in the `TemplateBreakout` component section. */
27
32
  breakout?: React.ReactElement;
33
+ /** ID used for the `main` HTML element. Defaults to "mainContent". Useful
34
+ * anchor for the application skip navigation. */
35
+ contentId?: string;
28
36
  /** DOM that will be rendered in the `TemplateContentPrimary` component section. */
29
37
  contentPrimary?: React.ReactElement;
30
38
  /** DOM that will be rendered in the `TemplateContentSidebar` component section. */
@@ -39,16 +47,16 @@ export interface TemplateAppContainerProps
39
47
 
40
48
  /**
41
49
  * The main top-level parent component that wraps all template-related
42
- * components. For backwards compatibility, this renders a `nypl-ds` CSS class.
50
+ * components.
43
51
  */
44
- const Template = (props: React.PropsWithChildren<TemplateProps>) => {
52
+ const Template = chakra((props: React.PropsWithChildren<TemplateProps>) => {
45
53
  const styles = useStyleConfig("Template", {});
46
54
  return (
47
- <Box __css={styles} className="nypl-ds">
55
+ <Box __css={styles} {...props}>
48
56
  {props.children}
49
57
  </Box>
50
58
  );
51
- };
59
+ });
52
60
 
53
61
  /**
54
62
  * This optional component renders its children from edge-to-edge and should
@@ -84,8 +92,9 @@ const TemplateHeader = ({
84
92
  React.Children.map(children, (child: React.ReactElement) => {
85
93
  if (child?.type === "header" || child?.props?.mdxType === "header") {
86
94
  console.warn(
87
- "`TemplateHeader`: An HTML `header` element was passed in. Set " +
88
- "`renderHeaderElement` to `false` to avoid nested HTML `header` elements."
95
+ "NYPL Reservoir TemplateHeader: An HTML `header` element was passed " +
96
+ "in. Set `renderHeaderElement` to `false` to avoid nested HTML " +
97
+ "`header` elements."
89
98
  );
90
99
  }
91
100
  });
@@ -110,16 +119,18 @@ const TemplateBreakout = (props: React.PropsWithChildren<TemplateProps>) => {
110
119
 
111
120
  /**
112
121
  * This component is most useful to render content on the page. This renders an
113
- * HTML `<main>` element and takes a `sidebar` prop with optional "left" or
114
- * "right" values. This will set the correct styling needed for the
115
- * `TemplateContentPrimary` and `TemplateContentSidebar` components. Note that
116
- * `TemplateContentPrimary` and `TemplateContentSidebar` must be ordered
117
- * correctly as children elements for the appropriate styles to take effect.
122
+ * HTML `<main>` element with an id of "mainContent". The "mainContent" id should
123
+ * be used as the consuming application's skip navigation link. The `TemplateContent`
124
+ * component also takes a `sidebar` prop with optional "left" or "right" values.
125
+ * This will set the correct *styling* needed for the `TemplateContentPrimary`
126
+ * and `TemplateContentSidebar` components. Note that `TemplateContentPrimary`
127
+ * and `TemplateContentSidebar` must be ordered correctly as children elements
128
+ * for the appropriate styles to take effect.
118
129
  */
119
130
  const TemplateContent = (
120
131
  props: React.PropsWithChildren<TemplateContentProps>
121
132
  ) => {
122
- const { sidebar = "none", children } = props;
133
+ const { children, id = "mainContent", sidebar = "none" } = props;
123
134
  const styles = useStyleConfig("TemplateContent", {
124
135
  variant: sidebar !== "none" ? "sidebar" : null,
125
136
  });
@@ -143,7 +154,7 @@ const TemplateContent = (
143
154
  );
144
155
 
145
156
  return (
146
- <Box as="main" __css={styles}>
157
+ <Box as="main" id={id} __css={styles}>
147
158
  {newChildren}
148
159
  </Box>
149
160
  );
@@ -216,8 +227,9 @@ const TemplateFooter = ({
216
227
  React.Children.map(children, (child: React.ReactElement) => {
217
228
  if (child?.type === "footer" || child?.props?.mdxType === "footer") {
218
229
  console.warn(
219
- "`TemplateFooter`: An HTML `footer` element was passed in. Set " +
220
- "`renderFooterElement` to `false` to avoid nested HTML `footer` elements."
230
+ "NYPL Reservoir TemplateFooter: An HTML `footer` element was passed " +
231
+ "in. Set `renderFooterElement` to `false` to avoid nested HTML " +
232
+ "`footer` elements."
221
233
  );
222
234
  }
223
235
  });
@@ -233,67 +245,68 @@ const TemplateFooter = ({
233
245
  * be rendered. For example, if you want to render content in the
234
246
  * `TemplateContentPrimary` section, then pass it as a prop to `contentPrimary`.
235
247
  */
236
- const TemplateAppContainer = (
237
- props: React.PropsWithChildren<TemplateAppContainerProps>
238
- ) => {
239
- const {
240
- aboveHeader,
241
- breakout,
242
- contentPrimary,
243
- contentSidebar,
244
- contentTop,
245
- footer,
246
- header,
247
- sidebar = "none",
248
- renderFooterElement = true,
249
- renderHeaderElement = true,
250
- } = props;
251
- const aboveHeaderElem = aboveHeader && (
252
- <TemplateAboveHeader>{aboveHeader}</TemplateAboveHeader>
253
- );
254
- const breakoutElem = breakout && (
255
- <TemplateBreakout>{breakout}</TemplateBreakout>
256
- );
257
- const contentTopElem = contentTop && (
258
- <TemplateContentTop>{contentTop}</TemplateContentTop>
259
- );
260
- const contentPrimaryElem = contentPrimary && (
261
- <TemplateContentPrimary>{contentPrimary}</TemplateContentPrimary>
262
- );
263
- const contentSidebarElem = contentSidebar && (
264
- <TemplateContentSidebar>{contentSidebar}</TemplateContentSidebar>
265
- );
266
- return (
267
- <Template>
268
- {aboveHeaderElem}
269
- {(header || breakoutElem) && (
270
- <TemplateHeader renderHeaderElement={renderHeaderElement}>
271
- {header}
272
- {breakoutElem}
273
- </TemplateHeader>
274
- )}
275
- {/* Note that setting `sidebar` as a prop here affects the
248
+ export const TemplateAppContainer = chakra(
249
+ (props: React.PropsWithChildren<TemplateAppContainerProps>) => {
250
+ const {
251
+ aboveHeader,
252
+ breakout,
253
+ contentId = "mainContent",
254
+ contentPrimary,
255
+ contentSidebar,
256
+ contentTop,
257
+ footer,
258
+ header,
259
+ sidebar = "none",
260
+ renderFooterElement = true,
261
+ renderHeaderElement = true,
262
+ ...rest
263
+ } = props;
264
+ const aboveHeaderElem = aboveHeader && (
265
+ <TemplateAboveHeader>{aboveHeader}</TemplateAboveHeader>
266
+ );
267
+ const breakoutElem = breakout && (
268
+ <TemplateBreakout>{breakout}</TemplateBreakout>
269
+ );
270
+ const contentTopElem = contentTop && (
271
+ <TemplateContentTop>{contentTop}</TemplateContentTop>
272
+ );
273
+ const contentPrimaryElem = contentPrimary && (
274
+ <TemplateContentPrimary>{contentPrimary}</TemplateContentPrimary>
275
+ );
276
+ const contentSidebarElem = contentSidebar && (
277
+ <TemplateContentSidebar>{contentSidebar}</TemplateContentSidebar>
278
+ );
279
+ return (
280
+ <Template {...rest}>
281
+ {aboveHeaderElem}
282
+ {(header || breakoutElem) && (
283
+ <TemplateHeader renderHeaderElement={renderHeaderElement}>
284
+ {header}
285
+ {breakoutElem}
286
+ </TemplateHeader>
287
+ )}
288
+ {/* Note that setting `sidebar` as a prop here affects the
276
289
  TemplateContentSidebar and TemplateContentPrimary components. */}
277
- <TemplateContent sidebar={sidebar}>
278
- {contentTopElem}
290
+ <TemplateContent id={contentId} sidebar={sidebar}>
291
+ {contentTopElem}
279
292
 
280
- {sidebar === "left" && contentSidebarElem}
293
+ {sidebar === "left" && contentSidebarElem}
281
294
 
282
- {contentPrimaryElem}
295
+ {contentPrimaryElem}
283
296
 
284
- {sidebar === "right" && contentSidebarElem}
285
- </TemplateContent>
286
- {footer && (
287
- <TemplateFooter renderFooterElement={renderFooterElement}>
288
- {footer}
289
- </TemplateFooter>
290
- )}
291
- </Template>
292
- );
293
- };
297
+ {sidebar === "right" && contentSidebarElem}
298
+ </TemplateContent>
299
+ {footer && (
300
+ <TemplateFooter renderFooterElement={renderFooterElement}>
301
+ {footer}
302
+ </TemplateFooter>
303
+ )}
304
+ </Template>
305
+ );
306
+ }
307
+ );
294
308
 
295
309
  export {
296
- TemplateAppContainer,
297
310
  Template,
298
311
  TemplateAboveHeader,
299
312
  TemplateHeader,
@@ -304,3 +317,4 @@ export {
304
317
  TemplateContentSidebar,
305
318
  TemplateFooter,
306
319
  };
320
+ export default TemplateAppContainer;