@scottish-government/designsystem-react 0.13.0 → 1.0.1

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 (354) hide show
  1. package/.storybook/sgdsArgTypes.ts +23 -0
  2. package/CHANGELOG.md +23 -0
  3. package/LICENSE.txt +21 -0
  4. package/README.md +4 -5
  5. package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.d.ts +3 -2
  6. package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.jsx +8 -7
  7. package/dist/common/AbstractNotificationBanner/types.d.ts +13 -0
  8. package/dist/common/AbstractNotificationBanner/types.js +2 -0
  9. package/dist/common/ActionLink/ActionLink.d.ts +2 -1
  10. package/dist/common/ActionLink/types.d.ts +7 -0
  11. package/dist/common/ActionLink/types.js +2 -0
  12. package/dist/common/ConditionalWrapper/ConditionalWrapper.d.ts +2 -1
  13. package/dist/common/ConditionalWrapper/ConditionalWrapper.jsx +4 -2
  14. package/dist/common/ConditionalWrapper/types.d.ts +4 -0
  15. package/dist/common/ConditionalWrapper/types.js +2 -0
  16. package/dist/common/FileIcon/FileIcon.d.ts +2 -1
  17. package/dist/common/FileIcon/types.d.ts +6 -0
  18. package/dist/common/FileIcon/types.js +2 -0
  19. package/dist/common/HintText/HintText.d.ts +2 -1
  20. package/dist/common/HintText/HintText.jsx +3 -3
  21. package/dist/common/HintText/types.d.ts +4 -0
  22. package/dist/common/HintText/types.js +2 -0
  23. package/dist/common/Icon/Icon.d.ts +2 -1
  24. package/dist/common/Icon/Icon.jsx +3 -2
  25. package/dist/common/Icon/types.d.ts +8 -0
  26. package/dist/common/Icon/types.js +2 -0
  27. package/dist/common/ScreenReaderText/ScreenReaderText.d.ts +1 -1
  28. package/dist/common/WrapperTag/WrapperTag.d.ts +385 -1
  29. package/dist/common/WrapperTag/WrapperTag.jsx +5 -2
  30. package/dist/common/WrapperTag/types.d.ts +3 -0
  31. package/dist/common/WrapperTag/types.js +2 -0
  32. package/dist/components/Accordion/Accordion.d.ts +3 -2
  33. package/dist/components/Accordion/Accordion.jsx +12 -11
  34. package/dist/components/Accordion/types.d.ts +11 -0
  35. package/dist/components/Accordion/types.js +2 -0
  36. package/dist/components/AspectBox/AspectBox.d.ts +2 -1
  37. package/dist/components/AspectBox/AspectBox.jsx +3 -9
  38. package/dist/components/AspectBox/types.d.ts +3 -0
  39. package/dist/components/AspectBox/types.js +2 -0
  40. package/dist/components/BackToTop/BackToTop.d.ts +2 -1
  41. package/dist/components/BackToTop/BackToTop.jsx +4 -3
  42. package/dist/components/BackToTop/types.d.ts +3 -0
  43. package/dist/components/BackToTop/types.js +2 -0
  44. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +3 -2
  45. package/dist/components/Breadcrumbs/Breadcrumbs.jsx +6 -2
  46. package/dist/components/Breadcrumbs/types.d.ts +5 -0
  47. package/dist/components/Breadcrumbs/types.js +2 -0
  48. package/dist/components/Button/Button.d.ts +2 -1
  49. package/dist/components/Button/Button.jsx +4 -3
  50. package/dist/components/Button/ButtonGroup.d.ts +2 -1
  51. package/dist/components/Button/ButtonGroup.jsx +9 -4
  52. package/dist/components/Button/types.d.ts +20 -0
  53. package/dist/components/Button/types.js +2 -0
  54. package/dist/components/Card/Card.d.ts +34 -0
  55. package/dist/components/Card/Card.jsx +118 -0
  56. package/dist/components/Card/index.d.ts +1 -0
  57. package/dist/components/Card/index.js +8 -0
  58. package/dist/components/Card/types.d.ts +26 -0
  59. package/dist/components/Card/types.js +2 -0
  60. package/dist/components/CategoryItem/CategoryItem.d.ts +2 -1
  61. package/dist/components/CategoryItem/CategoryItem.jsx +8 -5
  62. package/dist/components/CategoryItem/types.d.ts +9 -0
  63. package/dist/components/CategoryItem/types.js +2 -0
  64. package/dist/components/CategoryList/CategoryList.d.ts +2 -1
  65. package/dist/components/CategoryList/CategoryList.jsx +3 -2
  66. package/dist/components/CategoryList/types.d.ts +5 -0
  67. package/dist/components/CategoryList/types.js +2 -0
  68. package/dist/components/Checkbox/Checkbox.d.ts +2 -1
  69. package/dist/components/Checkbox/Checkbox.jsx +4 -3
  70. package/dist/components/Checkbox/CheckboxGroup.d.ts +2 -1
  71. package/dist/components/Checkbox/CheckboxGroup.jsx +5 -4
  72. package/dist/components/Checkbox/types.d.ts +7 -0
  73. package/dist/components/Checkbox/types.js +2 -0
  74. package/dist/components/ConfirmationMessage/ConfirmationMessage.d.ts +2 -1
  75. package/dist/components/ConfirmationMessage/ConfirmationMessage.jsx +3 -2
  76. package/dist/components/ConfirmationMessage/types.d.ts +6 -0
  77. package/dist/components/ConfirmationMessage/types.js +2 -0
  78. package/dist/components/ContentsNav/ContentsNav.d.ts +3 -2
  79. package/dist/components/ContentsNav/ContentsNav.jsx +7 -5
  80. package/dist/components/ContentsNav/types.d.ts +9 -0
  81. package/dist/components/ContentsNav/types.js +2 -0
  82. package/dist/components/CookieBanner/CookieBanner.d.ts +3 -2
  83. package/dist/components/CookieBanner/CookieBanner.jsx +13 -3
  84. package/dist/components/DatePicker/DatePicker.d.ts +2 -1
  85. package/dist/components/DatePicker/DatePicker.jsx +7 -7
  86. package/dist/components/DatePicker/types.d.ts +18 -0
  87. package/dist/components/DatePicker/types.js +2 -0
  88. package/dist/components/Details/Details.d.ts +2 -1
  89. package/dist/components/Details/Details.jsx +6 -2
  90. package/dist/components/Details/types.d.ts +4 -0
  91. package/dist/components/Details/types.js +2 -0
  92. package/dist/components/ErrorMessage/ErrorMessage.d.ts +2 -1
  93. package/dist/components/ErrorMessage/ErrorMessage.jsx +6 -2
  94. package/dist/components/ErrorMessage/types.d.ts +3 -0
  95. package/dist/components/ErrorMessage/types.js +2 -0
  96. package/dist/components/ErrorSummary/ErrorSummary.d.ts +3 -2
  97. package/dist/components/ErrorSummary/ErrorSummary.jsx +6 -2
  98. package/dist/components/ErrorSummary/types.d.ts +8 -0
  99. package/dist/components/ErrorSummary/types.js +2 -0
  100. package/dist/components/FeatureHeader/FeatureHeader.d.ts +7 -5
  101. package/dist/components/FeatureHeader/FeatureHeader.jsx +87 -50
  102. package/dist/components/FeatureHeader/types.d.ts +12 -0
  103. package/dist/components/FeatureHeader/types.js +2 -0
  104. package/dist/components/FileDownload/FileDownload.d.ts +2 -1
  105. package/dist/components/FileDownload/FileDownload.jsx +4 -3
  106. package/dist/components/FileDownload/types.d.ts +10 -0
  107. package/dist/components/FileDownload/types.js +2 -0
  108. package/dist/components/HideThisPage/HideThisPage.d.ts +2 -1
  109. package/dist/components/HideThisPage/HideThisPage.jsx +5 -4
  110. package/dist/components/HideThisPage/types.d.ts +3 -0
  111. package/dist/components/HideThisPage/types.js +2 -0
  112. package/dist/components/InsetText/InsetText.d.ts +1 -1
  113. package/dist/components/InsetText/InsetText.jsx +6 -2
  114. package/dist/components/NotificationBanner/NotificationBanner.d.ts +3 -2
  115. package/dist/components/NotificationBanner/NotificationBanner.jsx +5 -4
  116. package/dist/components/NotificationPanel/NotificationPanel.d.ts +2 -1
  117. package/dist/components/NotificationPanel/NotificationPanel.jsx +3 -2
  118. package/dist/components/NotificationPanel/types.d.ts +6 -0
  119. package/dist/components/NotificationPanel/types.js +2 -0
  120. package/dist/components/NotificationTag/NotificationTag.d.ts +6 -0
  121. package/dist/components/NotificationTag/NotificationTag.jsx +20 -0
  122. package/dist/components/NotificationTag/index.d.ts +1 -0
  123. package/dist/components/NotificationTag/index.js +8 -0
  124. package/dist/components/NotificationTag/types.d.ts +5 -0
  125. package/dist/components/NotificationTag/types.js +2 -0
  126. package/dist/components/PageHeader/PageHeader.d.ts +2 -1
  127. package/dist/components/PageHeader/PageHeader.jsx +6 -2
  128. package/dist/components/PageHeader/types.d.ts +5 -0
  129. package/dist/components/PageHeader/types.js +2 -0
  130. package/dist/components/PageMetadata/PageMetadata.d.ts +3 -2
  131. package/dist/components/PageMetadata/PageMetadata.jsx +8 -4
  132. package/dist/components/PageMetadata/types.d.ts +6 -0
  133. package/dist/components/PageMetadata/types.js +2 -0
  134. package/dist/components/Pagination/Pagination.d.ts +3 -2
  135. package/dist/components/Pagination/Pagination.jsx +7 -5
  136. package/dist/components/Pagination/types.d.ts +18 -0
  137. package/dist/components/Pagination/types.js +2 -0
  138. package/dist/components/PhaseBanner/PhaseBanner.d.ts +2 -1
  139. package/dist/components/PhaseBanner/PhaseBanner.jsx +3 -2
  140. package/dist/components/PhaseBanner/types.d.ts +3 -0
  141. package/dist/components/PhaseBanner/types.js +2 -0
  142. package/dist/components/Question/Question.d.ts +2 -1
  143. package/dist/components/Question/Question.jsx +4 -3
  144. package/dist/components/Question/types.d.ts +9 -0
  145. package/dist/components/Question/types.js +2 -0
  146. package/dist/components/RadioButton/RadioButton.d.ts +2 -1
  147. package/dist/components/RadioButton/RadioButton.jsx +4 -3
  148. package/dist/components/RadioButton/RadioGroup.d.ts +2 -1
  149. package/dist/components/RadioButton/RadioGroup.jsx +3 -2
  150. package/dist/components/RadioButton/types.d.ts +10 -0
  151. package/dist/components/RadioButton/types.js +2 -0
  152. package/dist/components/SearchFacets/SearchFacets.d.ts +4 -3
  153. package/dist/components/SearchFacets/SearchFacets.jsx +3 -2
  154. package/dist/components/SearchFacets/types.d.ts +12 -0
  155. package/dist/components/SearchFacets/types.js +2 -0
  156. package/dist/components/SearchFilters/SearchFilters.d.ts +5 -4
  157. package/dist/components/SearchFilters/types.d.ts +12 -0
  158. package/dist/components/SearchFilters/types.js +2 -0
  159. package/dist/components/SearchResult/SearchResult.d.ts +8 -11
  160. package/dist/components/SearchResult/SearchResult.jsx +6 -7
  161. package/dist/components/SearchResult/types.d.ts +11 -0
  162. package/dist/components/SearchResult/types.js +2 -0
  163. package/dist/components/SearchSort/SearchSort.d.ts +2 -1
  164. package/dist/components/SearchSort/SearchSort.jsx +3 -2
  165. package/dist/components/SearchSort/types.d.ts +7 -0
  166. package/dist/components/SearchSort/types.js +2 -0
  167. package/dist/components/Select/Select.d.ts +2 -1
  168. package/dist/components/Select/Select.jsx +4 -3
  169. package/dist/components/Select/types.d.ts +6 -0
  170. package/dist/components/Select/types.js +2 -0
  171. package/dist/components/SequentialNavigation/SequentialNavigation.d.ts +4 -3
  172. package/dist/components/SequentialNavigation/SequentialNavigation.jsx +10 -6
  173. package/dist/components/SequentialNavigation/types.d.ts +10 -0
  174. package/dist/components/SequentialNavigation/types.js +2 -0
  175. package/dist/components/SideNavigation/SideNavigation.d.ts +4 -3
  176. package/dist/components/SideNavigation/SideNavigation.jsx +10 -7
  177. package/dist/components/SideNavigation/types.d.ts +13 -0
  178. package/dist/components/SideNavigation/types.js +2 -0
  179. package/dist/components/SiteFooter/SiteFooter.d.ts +6 -5
  180. package/dist/components/SiteFooter/SiteFooter.jsx +4 -3
  181. package/dist/components/SiteFooter/types.d.ts +16 -0
  182. package/dist/components/SiteFooter/types.js +2 -0
  183. package/dist/components/SiteHeader/SiteHeader.d.ts +6 -5
  184. package/dist/components/SiteHeader/SiteHeader.jsx +1 -1
  185. package/dist/components/SiteHeader/types.d.ts +20 -0
  186. package/dist/components/SiteHeader/types.js +2 -0
  187. package/dist/components/SiteNavigation/SiteNavigation.d.ts +3 -2
  188. package/dist/components/SiteNavigation/SiteNavigation.jsx +12 -4
  189. package/dist/components/SiteNavigation/types.d.ts +9 -0
  190. package/dist/components/SiteNavigation/types.js +2 -0
  191. package/dist/components/SiteSearch/SiteSearch.d.ts +2 -1
  192. package/dist/components/SiteSearch/SiteSearch.jsx +12 -11
  193. package/dist/components/SiteSearch/types.d.ts +17 -0
  194. package/dist/components/SiteSearch/types.js +2 -0
  195. package/dist/components/SkipLinks/SkipLinks.d.ts +3 -2
  196. package/dist/components/SkipLinks/SkipLinks.jsx +4 -4
  197. package/dist/components/SkipLinks/types.d.ts +8 -0
  198. package/dist/components/SkipLinks/types.js +2 -0
  199. package/dist/components/SummaryCard/SummaryCard.d.ts +4 -2
  200. package/dist/components/SummaryCard/SummaryCard.jsx +5 -4
  201. package/dist/components/SummaryCard/types.d.ts +5 -0
  202. package/dist/components/SummaryCard/types.js +2 -0
  203. package/dist/components/SummaryList/SummaryList.d.ts +6 -4
  204. package/dist/components/SummaryList/SummaryList.jsx +5 -4
  205. package/dist/components/SummaryList/types.d.ts +6 -0
  206. package/dist/components/SummaryList/types.js +2 -0
  207. package/dist/components/Table/Table.d.ts +2 -1
  208. package/dist/components/Table/Table.jsx +5 -4
  209. package/dist/components/Table/types.d.ts +6 -0
  210. package/dist/components/Table/types.js +2 -0
  211. package/dist/components/Tabs/Tabs.d.ts +3 -2
  212. package/dist/components/Tabs/Tabs.jsx +6 -5
  213. package/dist/components/Tabs/types.d.ts +16 -0
  214. package/dist/components/Tabs/types.js +2 -0
  215. package/dist/components/Tag/Tag.d.ts +2 -1
  216. package/dist/components/Tag/Tag.jsx +7 -3
  217. package/dist/components/Tag/types.d.ts +4 -0
  218. package/dist/components/Tag/types.js +2 -0
  219. package/dist/components/TaskList/TaskList.d.ts +4 -3
  220. package/dist/components/TaskList/TaskList.jsx +11 -8
  221. package/dist/components/TaskList/types.d.ts +17 -0
  222. package/dist/components/TaskList/types.js +2 -0
  223. package/dist/components/TextInput/TextInput.d.ts +2 -1
  224. package/dist/components/TextInput/TextInput.jsx +10 -9
  225. package/dist/components/TextInput/types.d.ts +11 -0
  226. package/dist/components/TextInput/types.js +2 -0
  227. package/dist/components/Textarea/Textarea.d.ts +2 -1
  228. package/dist/components/Textarea/Textarea.jsx +6 -5
  229. package/dist/components/WarningText/WarningText.d.ts +1 -1
  230. package/dist/components/WarningText/WarningText.jsx +6 -2
  231. package/dist/hooks/useTracking/useTracking.js +0 -1
  232. package/dist/index.d.ts +4 -0
  233. package/dist/index.js +40 -0
  234. package/dist/shared-types.d.ts +35 -0
  235. package/dist/shared-types.js +2 -0
  236. package/dist/tsconfig.tsbuildinfo +1 -0
  237. package/package.json +5 -3
  238. package/src/common/AbstractNotificationBanner/AbstractNotificationBanner.tsx +8 -6
  239. package/src/common/Icon/Icon.tsx +3 -2
  240. package/src/components/Accordion/Accordion.test.tsx +11 -0
  241. package/src/components/Accordion/Accordion.tsx +11 -10
  242. package/src/components/AspectBox/AspectBox.tsx +4 -11
  243. package/src/components/BackToTop/BackToTop.test.tsx +21 -1
  244. package/src/components/BackToTop/BackToTop.tsx +4 -3
  245. package/src/components/Breadcrumbs/Breadcrumbs.tsx +3 -2
  246. package/src/components/Button/Button.tsx +4 -3
  247. package/src/components/Button/ButtonGroup.stories.tsx +22 -0
  248. package/src/components/Button/ButtonGroup.test.tsx +21 -0
  249. package/src/components/Button/ButtonGroup.tsx +6 -3
  250. package/src/components/Button/types.ts +1 -0
  251. package/src/components/Card/Card.stories.tsx +446 -0
  252. package/src/components/Card/Card.test.tsx +282 -0
  253. package/src/components/Card/Card.tsx +208 -0
  254. package/src/components/Card/index.ts +1 -0
  255. package/src/components/Card/types.ts +30 -0
  256. package/src/components/CategoryItem/CategoryItem.tsx +3 -2
  257. package/src/components/CategoryList/CategoryList.tsx +3 -2
  258. package/src/components/Checkbox/Checkbox.test.tsx +30 -0
  259. package/src/components/Checkbox/Checkbox.tsx +3 -3
  260. package/src/components/Checkbox/CheckboxGroup.test.tsx +10 -0
  261. package/src/components/Checkbox/CheckboxGroup.tsx +5 -4
  262. package/src/components/ConfirmationMessage/ConfirmationMessage.tsx +3 -2
  263. package/src/components/ContentsNav/ContentsNav.tsx +8 -5
  264. package/src/components/CookieBanner/CookieBanner.test.tsx +18 -1
  265. package/src/components/CookieBanner/CookieBanner.tsx +5 -4
  266. package/src/components/DatePicker/DatePicker.test.tsx +52 -14
  267. package/src/components/DatePicker/DatePicker.tsx +6 -7
  268. package/src/components/DatePicker/types.ts +2 -3
  269. package/src/components/Details/Details.tsx +3 -2
  270. package/src/components/ErrorMessage/ErrorMessage.tsx +3 -2
  271. package/src/components/ErrorSummary/ErrorSummary.tsx +3 -2
  272. package/src/components/FeatureHeader/FeatureHeader.stories.tsx +223 -0
  273. package/src/components/FeatureHeader/FeatureHeader.test.tsx +298 -0
  274. package/src/components/FeatureHeader/FeatureHeader.tsx +119 -0
  275. package/src/components/FeatureHeader/index.ts +1 -0
  276. package/src/components/FeatureHeader/types.ts +13 -0
  277. package/src/components/FileDownload/FileDownload.test.tsx +1 -5
  278. package/src/components/FileDownload/FileDownload.tsx +4 -3
  279. package/src/components/HideThisPage/HideThisPage.test.tsx +12 -1
  280. package/src/components/HideThisPage/HideThisPage.tsx +5 -4
  281. package/src/components/InsetText/InsetText.tsx +4 -2
  282. package/src/components/NotificationBanner/NotificationBanner.test.tsx +10 -0
  283. package/src/components/NotificationBanner/NotificationBanner.tsx +4 -3
  284. package/src/components/NotificationPanel/NotificationPanel.tsx +3 -2
  285. package/src/components/NotificationTag/NotificationTag.stories.tsx +68 -0
  286. package/src/components/NotificationTag/NotificationTag.test.tsx +70 -0
  287. package/src/components/NotificationTag/NotificationTag.tsx +32 -0
  288. package/src/components/NotificationTag/index.ts +1 -0
  289. package/src/components/NotificationTag/types.ts +5 -0
  290. package/src/components/PageHeader/PageHeader.tsx +3 -2
  291. package/src/components/PageMetadata/PageMetadata.tsx +5 -4
  292. package/src/components/Pagination/Pagination.test.tsx +20 -0
  293. package/src/components/Pagination/Pagination.tsx +7 -5
  294. package/src/components/PhaseBanner/PhaseBanner.tsx +3 -2
  295. package/src/components/Question/Question.tsx +3 -2
  296. package/src/components/Question/types.ts +2 -2
  297. package/src/components/RadioButton/RadioButton.test.tsx +30 -0
  298. package/src/components/RadioButton/RadioButton.tsx +3 -3
  299. package/src/components/RadioButton/RadioGroup.tsx +3 -2
  300. package/src/components/SearchFacets/SearchFacets.stories.tsx +1 -1
  301. package/src/components/SearchFacets/SearchFacets.tsx +3 -2
  302. package/src/components/SearchResult/SearchResult.stories.tsx +14 -13
  303. package/src/components/SearchResult/SearchResult.test.tsx +5 -4
  304. package/src/components/SearchResult/SearchResult.tsx +6 -7
  305. package/src/components/SearchSort/SearchSort.tsx +3 -2
  306. package/src/components/Select/Select.test.tsx +42 -0
  307. package/src/components/Select/Select.tsx +3 -2
  308. package/src/components/SequentialNavigation/SequentialNavigation.tsx +7 -6
  309. package/src/components/SideNavigation/SideNavigation.test.tsx +24 -0
  310. package/src/components/SideNavigation/SideNavigation.tsx +10 -7
  311. package/src/components/SiteFooter/SiteFooter.tsx +3 -2
  312. package/src/components/SiteHeader/SiteHeader.test.tsx +29 -16
  313. package/src/components/SiteHeader/SiteHeader.tsx +1 -1
  314. package/src/components/SiteNavigation/SiteNavigation.test.tsx +16 -1
  315. package/src/components/SiteNavigation/SiteNavigation.tsx +9 -4
  316. package/src/components/SiteSearch/SiteSearch.test.tsx +22 -0
  317. package/src/components/SiteSearch/SiteSearch.tsx +10 -9
  318. package/src/components/SiteSearch/types.ts +7 -1
  319. package/src/components/SkipLinks/SkipLinks.tsx +4 -4
  320. package/src/components/SummaryCard/SummaryCard.tsx +3 -2
  321. package/src/components/SummaryList/SummaryList.tsx +4 -4
  322. package/src/components/Table/Table.test.tsx +36 -0
  323. package/src/components/Table/Table.tsx +5 -4
  324. package/src/components/Tabs/Tabs.test.tsx +14 -0
  325. package/src/components/Tabs/Tabs.tsx +6 -5
  326. package/src/components/Tag/Tag.tsx +4 -3
  327. package/src/components/TaskList/TaskList.tsx +5 -4
  328. package/src/components/TextInput/TextInput.test.tsx +53 -1
  329. package/src/components/TextInput/TextInput.tsx +12 -7
  330. package/src/components/Textarea/Textarea.test.tsx +53 -1
  331. package/src/components/Textarea/Textarea.tsx +5 -4
  332. package/src/components/WarningText/WarningText.tsx +4 -2
  333. package/src/hooks/useTracking/useTracking.ts +0 -1
  334. package/src/images/icons/arrow_upward.tsx +10 -10
  335. package/src/images/icons/calendar_today.tsx +10 -10
  336. package/src/images/icons/cancel.tsx +8 -8
  337. package/src/images/icons/check_circle.tsx +10 -10
  338. package/src/images/icons/chevron_left.tsx +10 -10
  339. package/src/images/icons/chevron_right.tsx +10 -10
  340. package/src/images/icons/close.tsx +10 -10
  341. package/src/images/icons/description.tsx +10 -10
  342. package/src/images/icons/double_chevron_left.tsx +8 -8
  343. package/src/images/icons/double_chevron_right.tsx +8 -8
  344. package/src/images/icons/error.tsx +10 -10
  345. package/src/images/icons/expand_less.tsx +10 -10
  346. package/src/images/icons/expand_more.tsx +10 -10
  347. package/src/images/icons/list.tsx +13 -13
  348. package/src/images/icons/menu.tsx +10 -10
  349. package/src/images/icons/priority_high.tsx +11 -11
  350. package/src/images/icons/search.tsx +10 -10
  351. package/src/shared-types.ts +3 -3
  352. package/static/images/illustration.svg +502 -0
  353. package/tsconfig.json +0 -3
  354. package/vite.config.ts +4 -0
@@ -0,0 +1,5 @@
1
+ import { LinkComponent } from "../../shared-types";
2
+ export interface BreadcrumbItemProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ isHidden?: boolean;
4
+ linkComponent?: LinkComponent;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { ButtonProps } from './types';
1
2
  declare const Button: {
2
- ({ buttonStyle, children, className, icon, hasLinkStyle, href, isIconLeft, isIconOnly, isSmall, type, width, ...props }: SGDS.Component.Button): import("react").JSX.Element;
3
+ ({ buttonStyle, children, className, icon, hasLinkStyle, href, isIconLeft, isIconOnly, isSmall, type, width, ...props }: ButtonProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default Button;
@@ -6,21 +6,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const Icon_1 = __importDefault(require("../../common/Icon"));
7
7
  const ScreenReaderText_1 = __importDefault(require("../../common/ScreenReaderText"));
8
8
  const WrapperTag_1 = __importDefault(require("../../common/WrapperTag"));
9
+ const clsx_1 = __importDefault(require("clsx"));
9
10
  const Button = ({ buttonStyle, children, className, icon, hasLinkStyle, href, isIconLeft, isIconOnly = false, isSmall, type = 'button', width, ...props }) => {
10
11
  // determine which HTML tag to use
11
12
  let tagName = 'button';
12
13
  if (href) {
13
14
  tagName = 'a';
14
15
  }
15
- return (<WrapperTag_1.default tagName={tagName} className={[
16
+ return (<WrapperTag_1.default tagName={tagName} className={(0, clsx_1.default)([
16
17
  !hasLinkStyle ? 'ds_button' : 'ds_link',
17
18
  width && `ds_button--${width}`,
18
19
  buttonStyle && `ds_button--${buttonStyle}`,
19
20
  isSmall && 'ds_button--small',
20
- (icon && !isIconOnly) ? 'ds_button--has-icon' : undefined,
21
+ (icon && !isIconOnly) && 'ds_button--has-icon',
21
22
  isIconLeft && 'ds_button--has-icon--left',
22
23
  className
23
- ].join(' ')} href={href} {...(tagName === 'button' ? { type: type } : {})} {...props}>
24
+ ])} href={href} {...(tagName === 'button' ? { type: type } : {})} {...props}>
24
25
  {isIconOnly ? <ScreenReaderText_1.default>{children}</ScreenReaderText_1.default> : children}
25
26
 
26
27
  {icon && <Icon_1.default icon={icon}/>}
@@ -1,5 +1,6 @@
1
+ import { ButtonGroupProps } from "./types";
1
2
  declare const ButtonGroup: {
2
- ({ children, className, isInline, ...props }: SGDS.Component.ButtonGroup): import("react").JSX.Element;
3
+ ({ children, className, isInline, isWrap, ...props }: ButtonGroupProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default ButtonGroup;
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const ButtonGroup = ({ children, className, isInline, ...props }) => {
4
- return (<div className={[
6
+ const clsx_1 = __importDefault(require("clsx"));
7
+ const ButtonGroup = ({ children, className, isInline, isWrap, ...props }) => {
8
+ return (<div className={(0, clsx_1.default)([
5
9
  "ds_button-group",
6
- isInline ? "ds_button-group--inline" : undefined,
10
+ isInline && "ds_button-group--inline",
11
+ isWrap && "ds_button-group--wrap",
7
12
  className
8
- ].join(' ')} {...props}>
13
+ ])} {...props}>
9
14
  {children}
10
15
  </div>);
11
16
  };
@@ -0,0 +1,20 @@
1
+ import { IconName } from '../../shared-types';
2
+ type ButtonStyle = 'primary' | 'secondary';
3
+ type ButtonType = 'submit' | 'reset' | 'button';
4
+ type ButtonWidth = 'fluid' | 'fixed' | 'max';
5
+ export interface ButtonProps extends React.AllHTMLAttributes<HTMLButtonElement> {
6
+ hasLinkStyle?: boolean;
7
+ href?: string;
8
+ icon?: IconName;
9
+ isIconLeft?: boolean;
10
+ isIconOnly?: boolean;
11
+ isSmall?: boolean;
12
+ buttonStyle?: ButtonStyle;
13
+ type?: ButtonType;
14
+ width?: ButtonWidth;
15
+ }
16
+ export interface ButtonGroupProps extends React.AllHTMLAttributes<HTMLElement> {
17
+ isInline?: boolean;
18
+ isWrap?: boolean;
19
+ }
20
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,34 @@
1
+ import { CardProps, CardHeaderProps, CardMediaProps, CardStatusTagProps } from "./types";
2
+ declare const Card: {
3
+ ({ children, className, hasSecondaryBackground, headingLevel, href, isAdaptive, isHorizontal, isHorizontalSmall, linkComponent, tagName, ...props }: CardProps): import("react").JSX.Element;
4
+ Content: {
5
+ ({ children }: React.AllHTMLAttributes<HTMLElement>): import("react").JSX.Element;
6
+ displayName: string;
7
+ };
8
+ ContentFooter: {
9
+ ({ children }: React.AllHTMLAttributes<HTMLElement>): import("react").JSX.Element;
10
+ displayName: string;
11
+ };
12
+ ContentHeader: {
13
+ ({ children, description, title }: CardHeaderProps): import("react").JSX.Element;
14
+ displayName: string;
15
+ };
16
+ ContentMain: {
17
+ ({ children }: React.AllHTMLAttributes<HTMLElement>): import("react").JSX.Element;
18
+ displayName: string;
19
+ };
20
+ Metadata: {
21
+ ({ children }: React.AllHTMLAttributes<HTMLElement>): import("react").JSX.Element;
22
+ displayName: string;
23
+ };
24
+ Media: {
25
+ ({ children, isCover, mediaWidth, ratio, ...props }: CardMediaProps): import("react").JSX.Element;
26
+ displayName: string;
27
+ };
28
+ StatusTag: {
29
+ ({ children, colour, isHidden, ...props }: CardStatusTagProps): import("react").JSX.Element;
30
+ displayName: string;
31
+ };
32
+ displayName: string;
33
+ };
34
+ export default Card;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = require("react");
7
+ const ConditionalWrapper_1 = __importDefault(require("../../common/ConditionalWrapper"));
8
+ const WrapperTag_1 = __importDefault(require("../../common/WrapperTag"));
9
+ const AspectBox_1 = __importDefault(require("../AspectBox"));
10
+ const PageMetadata_1 = __importDefault(require("../PageMetadata"));
11
+ const Tag_1 = __importDefault(require("../Tag"));
12
+ const clsx_1 = __importDefault(require("clsx"));
13
+ const CardSettingsContext = (0, react_1.createContext)({
14
+ headingLevel: 'h2',
15
+ href: undefined,
16
+ linkComponent: undefined
17
+ });
18
+ const CardContent = ({ children }) => {
19
+ return (<div className="ds_card__content">
20
+ {children}
21
+ </div>);
22
+ };
23
+ const CardContentHeader = ({ children, description, title }) => {
24
+ const headingLevel = (0, react_1.useContext)(CardSettingsContext).headingLevel;
25
+ const href = (0, react_1.useContext)(CardSettingsContext).href;
26
+ const linkComponent = (0, react_1.useContext)(CardSettingsContext).linkComponent;
27
+ const LINK_CLASS = 'ds_card__link ds_card__link--cover';
28
+ function getLinkElement(children) {
29
+ let linkElement;
30
+ if (linkComponent) {
31
+ linkElement = linkComponent({ className: LINK_CLASS, href, children });
32
+ }
33
+ else {
34
+ linkElement = <a href={href} className={LINK_CLASS}>{children}</a>;
35
+ }
36
+ return linkElement;
37
+ }
38
+ return (<div className="ds_card__content-header">
39
+ {children}
40
+ <WrapperTag_1.default className="ds_card__title" tagName={headingLevel}>
41
+ <ConditionalWrapper_1.default condition={typeof href !== 'undefined'} wrapper={(children) => getLinkElement(children)}>
42
+ {title}
43
+ {description && <span className="visually-hidden">, {description}</span>}
44
+ </ConditionalWrapper_1.default>
45
+ </WrapperTag_1.default>
46
+ </div>);
47
+ };
48
+ const CardStatusTag = ({ children, colour, isHidden, ...props }) => {
49
+ return (<Tag_1.default aria-hidden={isHidden ? "true" : undefined} colour={colour} {...props}>
50
+ {children}
51
+ </Tag_1.default>);
52
+ };
53
+ const CardContentMain = ({ children }) => {
54
+ return (<div className="ds_card__content-main">
55
+ {children}
56
+ </div>);
57
+ };
58
+ const CardContentFooter = ({ children }) => {
59
+ return (<div className="ds_card__content-footer">
60
+ {children}
61
+ </div>);
62
+ };
63
+ const CardMetadata = ({ children }) => {
64
+ return (<PageMetadata_1.default isInline>
65
+ {children}
66
+ </PageMetadata_1.default>);
67
+ };
68
+ const CardMedia = ({ children, isCover, mediaWidth, ratio, ...props }) => {
69
+ return (<div className={(0, clsx_1.default)([
70
+ 'ds_card__media',
71
+ isCover && ratio && 'ds_card__media--cover',
72
+ (mediaWidth && (mediaWidth === 'narrow' || mediaWidth === 'wide')) && 'ds_card__media--' + mediaWidth
73
+ ])} {...props}>
74
+ <ConditionalWrapper_1.default condition={ratio !== undefined} wrapper={(children) => <AspectBox_1.default ratio={ratio}>
75
+ {children}
76
+ </AspectBox_1.default>}>
77
+ {children}
78
+ </ConditionalWrapper_1.default>
79
+ </div>);
80
+ };
81
+ const Card = ({ children, className, hasSecondaryBackground = false, headingLevel, href, isAdaptive = false, isHorizontal = false, isHorizontalSmall = false, linkComponent, tagName = 'div', ...props }) => {
82
+ return (<CardSettingsContext value={{
83
+ headingLevel: headingLevel || 'h2',
84
+ href: href,
85
+ linkComponent: linkComponent
86
+ }}>
87
+ <ConditionalWrapper_1.default condition={isAdaptive} wrapper={(children) => <div className="ds_card-container">
88
+ {children}
89
+ </div>}>
90
+ <WrapperTag_1.default tagName={tagName} className={(0, clsx_1.default)([
91
+ 'ds_card',
92
+ href && 'ds_card--navigation',
93
+ hasSecondaryBackground && 'ds_card--background-secondary',
94
+ isHorizontal && 'ds_card--horizontal',
95
+ isHorizontalSmall && 'ds_card--horizontal-small',
96
+ className
97
+ ])} {...props}>
98
+ {children}
99
+ </WrapperTag_1.default>
100
+ </ConditionalWrapper_1.default>
101
+ </CardSettingsContext>);
102
+ };
103
+ Card.Content = CardContent;
104
+ Card.ContentFooter = CardContentFooter;
105
+ Card.ContentHeader = CardContentHeader;
106
+ Card.ContentMain = CardContentMain;
107
+ Card.Metadata = CardMetadata;
108
+ Card.Media = CardMedia;
109
+ Card.StatusTag = CardStatusTag;
110
+ Card.displayName = 'Card';
111
+ CardContent.displayName = 'Card.Content';
112
+ CardContentFooter.displayName = 'Card.ContentFooter';
113
+ CardContentHeader.displayName = 'Card.ContentHeader';
114
+ CardContentMain.displayName = 'Card.ContentMain';
115
+ CardMetadata.displayName = 'Card.Metadata';
116
+ CardMedia.displayName = 'Card.Media';
117
+ CardStatusTag.displayName = 'Card.StatusTag';
118
+ exports.default = Card;
@@ -0,0 +1 @@
1
+ export { default } from './Card';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = void 0;
7
+ var Card_1 = require("./Card");
8
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(Card_1).default; } });
@@ -0,0 +1,26 @@
1
+ import { HeadingLevel, LinkComponent } from '../../shared-types';
2
+ import { TagProps } from '../Tag/types';
3
+ export interface CardProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ className?: string;
5
+ hasSecondaryBackground?: boolean;
6
+ headingLevel?: HeadingLevel;
7
+ href?: string;
8
+ isAdaptive?: boolean;
9
+ isHorizontal?: boolean;
10
+ isHorizontalSmall?: boolean;
11
+ linkComponent?: LinkComponent;
12
+ tagName?: string;
13
+ }
14
+ export interface CardHeaderProps extends React.AllHTMLAttributes<HTMLElement> {
15
+ className?: string;
16
+ description?: string;
17
+ title: string;
18
+ }
19
+ export interface CardMediaProps extends React.AllHTMLAttributes<HTMLElement> {
20
+ isCover?: boolean;
21
+ mediaWidth?: 'narrow' | 'wide';
22
+ ratio?: 'square' | '1:1' | '4:3' | '16:9' | '21:9';
23
+ }
24
+ export interface CardStatusTagProps extends TagProps {
25
+ isHidden?: boolean;
26
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { CategoryItemProps } from "./types";
1
2
  declare const CategoryItem: {
2
- ({ children, className, headingLevel, href, linkComponent, tagName, title, ...props }: SGDS.Component.CategoryItem): import("react").JSX.Element;
3
+ ({ children, className, headingLevel, href, linkComponent, tagName, title, ...props }: CategoryItemProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default CategoryItem;
@@ -5,20 +5,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ConditionalWrapper_1 = __importDefault(require("../../common/ConditionalWrapper"));
7
7
  const WrapperTag_1 = __importDefault(require("../../common/WrapperTag"));
8
+ const clsx_1 = __importDefault(require("clsx"));
8
9
  const CategoryItem = ({ children, className, headingLevel = 'h2', href, linkComponent, tagName = 'div', title, ...props }) => {
9
10
  const LINK_CLASS = 'ds_category-item__link';
10
11
  function getLinkElement(children) {
12
+ let linkElement;
11
13
  if (linkComponent) {
12
- return linkComponent({ className: LINK_CLASS, href, children });
14
+ linkElement = linkComponent({ className: LINK_CLASS, href, children });
13
15
  }
14
- else if (href) {
15
- return <a href={href} className={LINK_CLASS}>{children}</a>;
16
+ else {
17
+ linkElement = <a href={href} className={LINK_CLASS}>{children}</a>;
16
18
  }
19
+ return linkElement;
17
20
  }
18
- return (<WrapperTag_1.default tagName={tagName} className={[
21
+ return (<WrapperTag_1.default tagName={tagName} className={(0, clsx_1.default)([
19
22
  'ds_category-item',
20
23
  className
21
- ].join(' ')} {...props}>
24
+ ])} {...props}>
22
25
  <WrapperTag_1.default className="ds_category-item__title" tagName={headingLevel}>
23
26
  <ConditionalWrapper_1.default condition={typeof href !== 'undefined'} wrapper={(children) => getLinkElement(children)}>
24
27
  {title}
@@ -0,0 +1,9 @@
1
+ import { HeadingLevel, LinkComponent } from '../../shared-types';
2
+ export interface CategoryItemProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ className?: string;
4
+ headingLevel?: HeadingLevel;
5
+ href?: string;
6
+ linkComponent?: LinkComponent;
7
+ tagName?: string;
8
+ title: string;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
+ import { CategoryListProps } from './types';
2
3
  declare const CategoryList: {
3
- ({ children, className, isGrid, isOrdered, ...props }: SGDS.Component.CategoryList): React.JSX.Element;
4
+ ({ children, className, isGrid, isOrdered, ...props }: CategoryListProps): React.JSX.Element;
4
5
  displayName: string;
5
6
  };
6
7
  export default CategoryList;
@@ -38,16 +38,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importStar(require("react"));
40
40
  const WrapperTag_1 = __importDefault(require("../../common/WrapperTag"));
41
+ const clsx_1 = __importDefault(require("clsx"));
41
42
  const CategoryList = ({ children, className, isGrid, isOrdered, ...props }) => {
42
43
  function processChild(child) {
43
44
  const thisChild = child;
44
45
  return react_1.default.cloneElement(thisChild, { tagName: 'li' });
45
46
  }
46
- return (<WrapperTag_1.default tagName={isOrdered ? 'ol' : 'ul'} className={[
47
+ return (<WrapperTag_1.default tagName={isOrdered ? 'ol' : 'ul'} className={(0, clsx_1.default)([
47
48
  'ds_category-list',
48
49
  isGrid && 'ds_category-list--grid',
49
50
  className
50
- ].join(' ')} {...props}>
51
+ ])} {...props}>
51
52
  {react_1.Children.map(children, child => processChild(child))}
52
53
  </WrapperTag_1.default>);
53
54
  };
@@ -0,0 +1,5 @@
1
+ export interface CategoryListProps extends React.AllHTMLAttributes<HTMLElement> {
2
+ className?: string;
3
+ isGrid?: boolean;
4
+ isOrdered?: boolean;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { CheckboxProps } from './types';
1
2
  declare const Checkbox: {
2
- ({ checked, hintText, id, isSmall, isExclusive, label, name, onBlur, onChange }: SGDS.Component.Checkbox): import("react").JSX.Element;
3
+ ({ checked, hintText, id, isSmall, isExclusive, label, name, onBlur, onChange }: CheckboxProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default Checkbox;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = require("react");
7
7
  const context_1 = require("../../utils/context");
8
8
  const HintText_1 = __importDefault(require("../../common/HintText"));
9
+ const clsx_1 = __importDefault(require("clsx"));
9
10
  const Checkbox = ({ checked, hintText, id, isSmall, isExclusive, label, name, onBlur, onChange }) => {
10
11
  const hintTextId = `hint-text-${id}`;
11
12
  const behaviour = isExclusive && 'exclusive';
@@ -22,14 +23,14 @@ const Checkbox = ({ checked, hintText, id, isSmall, isExclusive, label, name, on
22
23
  isSmall = isSmall || (0, react_1.useContext)(context_1.CheckboxRadioContext).isSmall;
23
24
  return (<>
24
25
  {isExclusive && <p className="ds_checkbox-separator">or</p>}
25
- <div className={[
26
+ <div className={(0, clsx_1.default)([
26
27
  'ds_checkbox',
27
28
  isSmall && 'ds_checkbox--small'
28
- ].join(' ')}>
29
+ ])}>
29
30
 
30
31
  <input aria-describedby={hintText ? hintTextId : undefined} className="ds_checkbox__input" data-behaviour={behaviour} defaultChecked={!!checked} id={id} name={name || id} onBlur={handleBlur} onChange={handleChange} type="checkbox"/>
31
32
  <label className="ds_checkbox__label" htmlFor={id}>{label}</label>
32
- {hintText && <HintText_1.default id={hintTextId} text={hintText}/>}
33
+ {hintText && <HintText_1.default id={hintTextId}>{hintText}</HintText_1.default>}
33
34
  </div>
34
35
  </>);
35
36
  };
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
+ import { CheckboxGroupProps } from './types';
2
3
  export declare const CheckboxGroup: {
3
- ({ children, className, isSmall, ...props }: SGDS.Component.Checkbox.Group): React.JSX.Element;
4
+ ({ children, className, isSmall, ...props }: CheckboxGroupProps): React.JSX.Element;
4
5
  displayName: string;
5
6
  };
6
7
  export default CheckboxGroup;
@@ -39,20 +39,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.CheckboxGroup = void 0;
40
40
  const react_1 = __importStar(require("react"));
41
41
  const context_1 = require("../../utils/context");
42
- // @ts-ignore
43
- const checkboxes_1 = __importDefault(require("@scottish-government/design-system/src/forms/checkbox/checkboxes"));
42
+ const checkboxes_1 = __importDefault(require("@scottish-government/design-system/src/components/checkbox/checkboxes"));
43
+ const clsx_1 = __importDefault(require("clsx"));
44
44
  const CheckboxGroup = ({ children, className, isSmall, ...props }) => {
45
45
  const ref = (0, react_1.useRef)(null);
46
46
  (0, react_1.useEffect)(() => {
47
+ /* istanbul ignore else */
47
48
  if (ref.current) {
48
49
  new checkboxes_1.default(ref.current).init();
49
50
  }
50
51
  }, [ref]);
51
- return (<div className={[
52
+ return (<div className={(0, clsx_1.default)([
52
53
  'ds_checkboxes',
53
54
  'ds_field-group',
54
55
  className
55
- ].join(' ')} data-module="ds-checkboxes" ref={ref} {...props}>
56
+ ])} data-module="ds-checkboxes" ref={ref} {...props}>
56
57
  <context_1.CheckboxRadioContext value={{ isSmall: !!isSmall, name: '' }}>
57
58
  {children}
58
59
  </context_1.CheckboxRadioContext>
@@ -0,0 +1,7 @@
1
+ import { CheckboxRadioBase } from '../../shared-types';
2
+ export interface CheckboxGroupProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ isSmall?: boolean;
4
+ }
5
+ export interface CheckboxProps extends CheckboxRadioBase<HTMLInputElement> {
6
+ isExclusive?: boolean;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { ConfirmationMessageProps } from './types';
1
2
  declare const ConfirmationMessage: {
2
- ({ ariaLive, children, className, headingLevel, title, ...props }: SGDS.Component.ConfirmationMessage): import("react").JSX.Element;
3
+ ({ ariaLive, children, className, headingLevel, title, ...props }: ConfirmationMessageProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default ConfirmationMessage;
@@ -5,11 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const Icon_1 = __importDefault(require("../../common/Icon"));
7
7
  const WrapperTag_1 = __importDefault(require("../../common/WrapperTag"));
8
+ const clsx_1 = __importDefault(require("clsx"));
8
9
  const ConfirmationMessage = ({ ariaLive = 'polite', children, className, headingLevel = 'h3', title, ...props }) => {
9
- return (<div aria-live={ariaLive} className={[
10
+ return (<div aria-live={ariaLive} className={(0, clsx_1.default)([
10
11
  'ds_confirmation-message',
11
12
  className
12
- ].join(' ')} {...props}>
13
+ ])} {...props}>
13
14
  <Icon_1.default className="ds_confirmation-message__icon" icon="CheckCircle" iconSize="24"/>
14
15
 
15
16
  <WrapperTag_1.default className="ds_confirmation-message__title" tagName={headingLevel}>
@@ -0,0 +1,6 @@
1
+ import { HeadingLevel } from '../../shared-types';
2
+ export interface ConfirmationMessageProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ ariaLive: React.AriaAttributes['aria-live'];
4
+ headingLevel: HeadingLevel;
5
+ title: string;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
+ import { ContentsNavItemProps, ContentsNavProps } from './types';
2
3
  declare const ContentsNav: {
3
- ({ ariaLabel, children, className, title, ...props }: SGDS.Component.ContentsNav): React.JSX.Element;
4
+ ({ ariaLabel, children, className, title, ...props }: ContentsNavProps): React.JSX.Element;
4
5
  displayName: string;
5
6
  Item: {
6
- ({ children, isCurrent, href, linkComponent }: SGDS.Component.ContentsNav.ContentsNavItem): React.JSX.Element;
7
+ ({ children, isCurrent, href, linkComponent }: ContentsNavItemProps): React.JSX.Element;
7
8
  displayName: string;
8
9
  };
9
10
  };
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
+ const clsx_1 = __importDefault(require("clsx"));
7
8
  const ContentsNavItem = ({ children, isCurrent, href, linkComponent }) => {
8
9
  const classNames = ['ds_contents-nav__link'];
9
10
  let ariaCurrent;
@@ -11,15 +12,16 @@ const ContentsNavItem = ({ children, isCurrent, href, linkComponent }) => {
11
12
  classNames.push('ds_current');
12
13
  ariaCurrent = 'page';
13
14
  }
15
+ const classNamesString = (0, clsx_1.default)(classNames);
14
16
  function processChildren(children) {
15
17
  if (linkComponent) {
16
- return linkComponent({ className: classNames.join(' '), href, children });
18
+ return linkComponent({ className: classNamesString, href, children });
17
19
  }
18
20
  else if (href) {
19
- return <a href={href} aria-current={ariaCurrent ? ariaCurrent : undefined} className={classNames.join(' ')}>{children}</a>;
21
+ return <a href={href} aria-current={ariaCurrent ? ariaCurrent : undefined} className={classNamesString}>{children}</a>;
20
22
  }
21
23
  else {
22
- return <span aria-current={ariaCurrent ? ariaCurrent : undefined} className={classNames.join(' ')}>{children}</span>;
24
+ return <span aria-current={ariaCurrent ? ariaCurrent : undefined} className={classNamesString}>{children}</span>;
23
25
  }
24
26
  }
25
27
  return (<li className="ds_contents-nav__item">
@@ -27,10 +29,10 @@ const ContentsNavItem = ({ children, isCurrent, href, linkComponent }) => {
27
29
  </li>);
28
30
  };
29
31
  const ContentsNav = ({ ariaLabel = 'Pages in this section', children, className, title = 'Contents', ...props }) => {
30
- return (<nav aria-label={ariaLabel} className={[
32
+ return (<nav aria-label={ariaLabel} className={(0, clsx_1.default)([
31
33
  'ds_contents-nav',
32
34
  className
33
- ].join(' ')} {...props}>
35
+ ])} {...props}>
34
36
  <h2 className="ds_contents-nav__title">{title}</h2>
35
37
 
36
38
  <ul className="ds_contents-nav__list">
@@ -0,0 +1,9 @@
1
+ import { LinkComponent } from "../../shared-types";
2
+ export interface ContentsNavItemProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ isCurrent?: boolean;
4
+ linkComponent?: LinkComponent;
5
+ }
6
+ export interface ContentsNavProps extends React.AllHTMLAttributes<HTMLElement> {
7
+ ariaLabel: React.AriaAttributes['aria-label'];
8
+ title: string;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,8 +1,9 @@
1
+ import { AbstractNotificationBannerProps } from '../../common/AbstractNotificationBanner/types';
1
2
  declare const CookieBanner: {
2
- ({ children, className, title, ...props }: SGDS.Common.AbstractNotificationBanner): import("react").JSX.Element;
3
+ ({ children, className, title, ...props }: AbstractNotificationBannerProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  Buttons: {
5
- ({ children }: SGDS.Common.AbstractNotificationBanner.Buttons): import("react").JSX.Element;
6
+ ({ children }: import("../../common/AbstractNotificationBanner/types").AbstractNotificationBannerButtonsProps): import("react").JSX.Element;
6
7
  displayName: string;
7
8
  };
8
9
  };
@@ -3,15 +3,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = require("react");
6
7
  const AbstractNotificationBanner_1 = __importDefault(require("../../common/AbstractNotificationBanner"));
7
- const CookieBanner = ({ children, className, title, ...props }) => {
8
+ const cookie_notification_1 = __importDefault(require("@scottish-government/design-system/src/components/cookie-notification/cookie-notification"));
9
+ const clsx_1 = __importDefault(require("clsx"));
10
+ const CookieBanner = ({ children, className, title = 'Information', ...props }) => {
11
+ const ref = (0, react_1.useRef)(null);
12
+ (0, react_1.useEffect)(() => {
13
+ /* istanbul ignore else */
14
+ if (ref.current) {
15
+ new cookie_notification_1.default(ref.current).init();
16
+ }
17
+ }, [ref]);
8
18
  return (<>
9
- <AbstractNotificationBanner_1.default className={[
19
+ <AbstractNotificationBanner_1.default className={(0, clsx_1.default)([
10
20
  'ds_notification--large',
11
21
  'ds_notification--cookie',
12
22
  'js-initial-cookie-content',
13
23
  className
14
- ].join(' ')} data-module="ds-cookie-notification" title={title} {...props}>
24
+ ])} data-module="ds-cookie-notification" ref={ref} title={title} {...props}>
15
25
  {children}
16
26
  </AbstractNotificationBanner_1.default>
17
27
  </>);