@scottish-government/designsystem-react 0.13.0 → 1.0.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 (332) 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 +3 -0
  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/package.json +5 -3
  233. package/src/common/AbstractNotificationBanner/AbstractNotificationBanner.tsx +8 -6
  234. package/src/common/Icon/Icon.tsx +3 -2
  235. package/src/components/Accordion/Accordion.test.tsx +11 -0
  236. package/src/components/Accordion/Accordion.tsx +11 -10
  237. package/src/components/AspectBox/AspectBox.tsx +4 -11
  238. package/src/components/BackToTop/BackToTop.test.tsx +21 -1
  239. package/src/components/BackToTop/BackToTop.tsx +4 -3
  240. package/src/components/Breadcrumbs/Breadcrumbs.tsx +3 -2
  241. package/src/components/Button/Button.tsx +4 -3
  242. package/src/components/Button/ButtonGroup.stories.tsx +22 -0
  243. package/src/components/Button/ButtonGroup.test.tsx +21 -0
  244. package/src/components/Button/ButtonGroup.tsx +6 -3
  245. package/src/components/Button/types.ts +1 -0
  246. package/src/components/Card/Card.stories.tsx +446 -0
  247. package/src/components/Card/Card.test.tsx +282 -0
  248. package/src/components/Card/Card.tsx +208 -0
  249. package/src/components/Card/index.ts +1 -0
  250. package/src/components/Card/types.ts +30 -0
  251. package/src/components/CategoryItem/CategoryItem.tsx +3 -2
  252. package/src/components/CategoryList/CategoryList.tsx +3 -2
  253. package/src/components/Checkbox/Checkbox.test.tsx +30 -0
  254. package/src/components/Checkbox/Checkbox.tsx +3 -3
  255. package/src/components/Checkbox/CheckboxGroup.test.tsx +10 -0
  256. package/src/components/Checkbox/CheckboxGroup.tsx +5 -4
  257. package/src/components/ConfirmationMessage/ConfirmationMessage.tsx +3 -2
  258. package/src/components/ContentsNav/ContentsNav.tsx +8 -5
  259. package/src/components/CookieBanner/CookieBanner.test.tsx +18 -1
  260. package/src/components/CookieBanner/CookieBanner.tsx +4 -3
  261. package/src/components/DatePicker/DatePicker.test.tsx +52 -14
  262. package/src/components/DatePicker/DatePicker.tsx +6 -7
  263. package/src/components/DatePicker/types.ts +2 -3
  264. package/src/components/Details/Details.tsx +3 -2
  265. package/src/components/ErrorMessage/ErrorMessage.tsx +3 -2
  266. package/src/components/ErrorSummary/ErrorSummary.tsx +3 -2
  267. package/src/components/FeatureHeader/FeatureHeader.stories.tsx +223 -0
  268. package/src/components/FeatureHeader/FeatureHeader.test.tsx +298 -0
  269. package/src/components/FeatureHeader/FeatureHeader.tsx +119 -0
  270. package/src/components/FeatureHeader/index.ts +1 -0
  271. package/src/components/FeatureHeader/types.ts +13 -0
  272. package/src/components/FileDownload/FileDownload.test.tsx +1 -5
  273. package/src/components/FileDownload/FileDownload.tsx +4 -3
  274. package/src/components/HideThisPage/HideThisPage.test.tsx +12 -1
  275. package/src/components/HideThisPage/HideThisPage.tsx +5 -4
  276. package/src/components/InsetText/InsetText.tsx +4 -2
  277. package/src/components/NotificationBanner/NotificationBanner.test.tsx +10 -0
  278. package/src/components/NotificationBanner/NotificationBanner.tsx +4 -3
  279. package/src/components/NotificationPanel/NotificationPanel.tsx +3 -2
  280. package/src/components/NotificationTag/NotificationTag.stories.tsx +68 -0
  281. package/src/components/NotificationTag/NotificationTag.test.tsx +70 -0
  282. package/src/components/NotificationTag/NotificationTag.tsx +32 -0
  283. package/src/components/NotificationTag/index.ts +1 -0
  284. package/src/components/NotificationTag/types.ts +5 -0
  285. package/src/components/PageHeader/PageHeader.tsx +3 -2
  286. package/src/components/PageMetadata/PageMetadata.tsx +5 -4
  287. package/src/components/Pagination/Pagination.test.tsx +20 -0
  288. package/src/components/Pagination/Pagination.tsx +7 -5
  289. package/src/components/PhaseBanner/PhaseBanner.tsx +3 -2
  290. package/src/components/Question/Question.tsx +3 -2
  291. package/src/components/Question/types.ts +2 -2
  292. package/src/components/RadioButton/RadioButton.test.tsx +30 -0
  293. package/src/components/RadioButton/RadioButton.tsx +3 -3
  294. package/src/components/RadioButton/RadioGroup.tsx +3 -2
  295. package/src/components/SearchFacets/SearchFacets.stories.tsx +1 -1
  296. package/src/components/SearchFacets/SearchFacets.tsx +3 -2
  297. package/src/components/SearchResult/SearchResult.stories.tsx +14 -13
  298. package/src/components/SearchResult/SearchResult.test.tsx +5 -4
  299. package/src/components/SearchResult/SearchResult.tsx +6 -7
  300. package/src/components/SearchSort/SearchSort.tsx +3 -2
  301. package/src/components/Select/Select.test.tsx +42 -0
  302. package/src/components/Select/Select.tsx +3 -2
  303. package/src/components/SequentialNavigation/SequentialNavigation.tsx +7 -6
  304. package/src/components/SideNavigation/SideNavigation.test.tsx +24 -0
  305. package/src/components/SideNavigation/SideNavigation.tsx +10 -7
  306. package/src/components/SiteFooter/SiteFooter.tsx +3 -2
  307. package/src/components/SiteHeader/SiteHeader.test.tsx +29 -16
  308. package/src/components/SiteHeader/SiteHeader.tsx +1 -1
  309. package/src/components/SiteNavigation/SiteNavigation.test.tsx +16 -1
  310. package/src/components/SiteNavigation/SiteNavigation.tsx +9 -4
  311. package/src/components/SiteSearch/SiteSearch.test.tsx +22 -0
  312. package/src/components/SiteSearch/SiteSearch.tsx +10 -9
  313. package/src/components/SiteSearch/types.ts +7 -1
  314. package/src/components/SkipLinks/SkipLinks.tsx +4 -4
  315. package/src/components/SummaryCard/SummaryCard.tsx +3 -2
  316. package/src/components/SummaryList/SummaryList.tsx +3 -3
  317. package/src/components/Table/Table.test.tsx +36 -0
  318. package/src/components/Table/Table.tsx +5 -4
  319. package/src/components/Tabs/Tabs.test.tsx +14 -0
  320. package/src/components/Tabs/Tabs.tsx +6 -5
  321. package/src/components/Tag/Tag.tsx +4 -3
  322. package/src/components/TaskList/TaskList.tsx +5 -4
  323. package/src/components/TextInput/TextInput.test.tsx +53 -1
  324. package/src/components/TextInput/TextInput.tsx +12 -7
  325. package/src/components/Textarea/Textarea.test.tsx +53 -1
  326. package/src/components/Textarea/Textarea.tsx +5 -4
  327. package/src/components/WarningText/WarningText.tsx +4 -2
  328. package/src/hooks/useTracking/useTracking.ts +0 -1
  329. package/src/shared-types.ts +3 -3
  330. package/static/images/illustration.svg +502 -0
  331. package/tsconfig.json +0 -3
  332. package/vite.config.ts +4 -0
@@ -0,0 +1,6 @@
1
+ import { FormFieldBase, InputWidth } from "../../shared-types";
2
+ export interface SelectProps extends FormFieldBase<HTMLElement> {
3
+ defaultValue?: string;
4
+ placeholder?: string;
5
+ width?: InputWidth;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +1,13 @@
1
+ import { SequentialNavigationLinkProps, SequentialNavigationProps } from "./types";
1
2
  declare const SequentialNavigation: {
2
- ({ ariaLabel, children, className, ...props }: SGDS.Component.SequentialNavigation): import("react").JSX.Element;
3
+ ({ ariaLabel, children, className, ...props }: SequentialNavigationProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  Next: {
5
- ({ children, href, linkComponent, textLabel }: SGDS.Component.SequentialNavigation.Link): import("react").JSX.Element;
6
+ ({ children, href, linkComponent, textLabel }: SequentialNavigationLinkProps): import("react").JSX.Element;
6
7
  displayName: string;
7
8
  };
8
9
  Previous: {
9
- ({ children, href, linkComponent, textLabel }: SGDS.Component.SequentialNavigation.Link): import("react").JSX.Element;
10
+ ({ children, href, linkComponent, textLabel }: SequentialNavigationLinkProps): import("react").JSX.Element;
10
11
  displayName: string;
11
12
  };
12
13
  };
@@ -1,14 +1,18 @@
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 });
6
+ const clsx_1 = __importDefault(require("clsx"));
3
7
  const SeqNavLink = ({ children, href, isPrev, linkComponent, textLabel }) => {
4
- const LINK_CLASSES = [
8
+ const LINK_CLASSES = (0, clsx_1.default)([
5
9
  'ds_sequential-nav__button',
6
10
  isPrev ? 'ds_sequential-nav__button--left' : 'ds_sequential-nav__button--right'
7
- ].join(' ');
8
- const ITEM_CLASSES = [
11
+ ]);
12
+ const ITEM_CLASSES = (0, clsx_1.default)([
9
13
  'ds_sequential-nav__item',
10
14
  isPrev ? 'ds_sequential-nav__item--prev' : 'ds_sequential-nav__item--next'
11
- ].join(' ');
15
+ ]);
12
16
  function processChildren(children) {
13
17
  const linkInner = <span className="ds_sequential-nav__text" data-label={textLabel}>{children}</span>;
14
18
  if (linkComponent) {
@@ -29,10 +33,10 @@ const PreviousLink = ({ children, href, linkComponent, textLabel = 'Previous' })
29
33
  return <SeqNavLink href={href} linkComponent={linkComponent} textLabel={textLabel} isPrev>{children}</SeqNavLink>;
30
34
  };
31
35
  const SequentialNavigation = ({ ariaLabel = 'Article navigation', children, className, ...props }) => {
32
- return (<nav className={[
36
+ return (<nav className={(0, clsx_1.default)([
33
37
  'ds_sequential-nav',
34
38
  className
35
- ].join(' ')} aria-label={ariaLabel} {...props}>
39
+ ])} aria-label={ariaLabel} {...props}>
36
40
  {children}
37
41
  </nav>);
38
42
  };
@@ -0,0 +1,10 @@
1
+ import { LinkComponent } from "../../shared-types";
2
+ export interface SequentialNavigationLinkProps extends React.AllHTMLAttributes<HTMLDivElement> {
3
+ href: string;
4
+ isPrev?: boolean;
5
+ linkComponent?: LinkComponent;
6
+ textLabel?: string;
7
+ }
8
+ export interface SequentialNavigationProps extends React.AllHTMLAttributes<HTMLElement> {
9
+ ariaLabel?: React.AriaAttributes['aria-label'];
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +1,13 @@
1
+ import { SideNavigationItemProps, SideNavigationListProps, SideNavigationProps } from './types';
1
2
  declare const SideNavigation: {
2
- ({ ariaLabel, children, className, ...props }: SGDS.Component.SideNavigation): import("react").JSX.Element;
3
+ ({ ariaLabel, children, className, ...props }: SideNavigationProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  Item: {
5
- ({ children, href, isCurrent, linkComponent, title }: SGDS.Component.SideNavigation.Item): import("react").JSX.Element;
6
+ ({ children, href, isCurrent, linkComponent, title }: SideNavigationItemProps): import("react").JSX.Element;
6
7
  displayName: string;
7
8
  };
8
9
  List: {
9
- ({ children, isRoot }: SGDS.Component.SideNavigation.List): import("react").JSX.Element;
10
+ ({ children, isRoot }: SideNavigationListProps): import("react").JSX.Element;
10
11
  displayName: string;
11
12
  };
12
13
  };
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = require("react");
7
- // @ts-ignore
8
7
  const side_navigation_1 = __importDefault(require("@scottish-government/design-system/src/components/side-navigation/side-navigation"));
8
+ const clsx_1 = __importDefault(require("clsx"));
9
9
  const SideNavigationList = function ({ children, isRoot }) {
10
10
  return (<ul className="ds_side-navigation__list" id={isRoot ? 'side-navigation-root' : undefined}>
11
11
  {children}
@@ -13,10 +13,10 @@ const SideNavigationList = function ({ children, isRoot }) {
13
13
  };
14
14
  const SideNavigationItem = function ({ children, href, isCurrent = false, linkComponent, title }) {
15
15
  const LINK_CLASS = 'ds_side-navigation__link';
16
- return (<li className={[
16
+ return (<li className={(0, clsx_1.default)([
17
17
  'ds_side-navigation__item',
18
18
  children && 'ds_side-navigation__item--has-children'
19
- ].join(' ')}>
19
+ ])}>
20
20
  {isCurrent ?
21
21
  <span className={LINK_CLASS + ' ds_current'}>{title}</span> :
22
22
  linkComponent ? linkComponent({ className: LINK_CLASS, href, children: title }) :
@@ -28,14 +28,17 @@ const SideNavigationItem = function ({ children, href, isCurrent = false, linkCo
28
28
  const SideNavigation = function ({ ariaLabel = 'Sections', children, className, ...props }) {
29
29
  const ref = (0, react_1.useRef)(null);
30
30
  (0, react_1.useEffect)(() => {
31
- if (ref.current && children) {
32
- new side_navigation_1.default(ref.current).init();
31
+ /* istanbul ignore else */
32
+ if (ref.current) {
33
+ if (children) {
34
+ new side_navigation_1.default(ref.current).init();
35
+ }
33
36
  }
34
37
  }, [ref]);
35
- return (<nav aria-label={ariaLabel} className={[
38
+ return (<nav aria-label={ariaLabel} className={(0, clsx_1.default)([
36
39
  'ds_side-navigation',
37
40
  className
38
- ].join(' ')} data-module="ds-side-navigation" ref={ref} {...props}>
41
+ ])} data-module="ds-side-navigation" ref={ref} {...props}>
39
42
  <input type="checkbox" className="fully-hidden js-toggle-side-navigation" id="show-side-navigation" aria-controls="side-navigation-root"/>
40
43
  <label className="ds_side-navigation__expand ds_link" htmlFor="show-side-navigation">
41
44
  <span className="visually-hidden">Show all</span> Pages in this section
@@ -0,0 +1,13 @@
1
+ import { LinkComponent } from "../../shared-types";
2
+ export interface SideNavigationListProps extends React.AllHTMLAttributes<HTMLUListElement> {
3
+ isRoot?: boolean;
4
+ }
5
+ export interface SideNavigationItemProps extends React.AllHTMLAttributes<HTMLLIElement> {
6
+ isCurrent?: boolean;
7
+ href: string;
8
+ linkComponent?: LinkComponent;
9
+ title: string;
10
+ }
11
+ export interface SideNavigationProps extends React.AllHTMLAttributes<HTMLElement> {
12
+ ariaLabel?: string;
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,20 +1,21 @@
1
1
  import React from 'react';
2
+ import { SiteFooterLicenseProps, SiteFooterLinkProps, SiteFooterOrgProps, SiteFooterProps } from './types';
2
3
  declare const SiteFooter: {
3
- ({ children, className, ...props }: SGDS.Component.SiteFooter): React.JSX.Element;
4
+ ({ children, className, ...props }: SiteFooterProps): React.JSX.Element;
4
5
  Links: {
5
- ({ children, ...props }: SGDS.Component.SiteFooter.Links): React.JSX.Element;
6
+ ({ children, ...props }: React.AllHTMLAttributes<HTMLUListElement>): React.JSX.Element;
6
7
  displayName: string;
7
8
  };
8
9
  Link: {
9
- ({ children, href, linkComponent, ...props }: SGDS.Component.SiteFooter.Link): React.JSX.Element;
10
+ ({ children, href, linkComponent, ...props }: SiteFooterLinkProps): React.JSX.Element;
10
11
  displayName: string;
11
12
  };
12
13
  License: {
13
- ({ children, ...props }: SGDS.Component.SiteFooter.License): React.JSX.Element;
14
+ ({ children, ...props }: SiteFooterLicenseProps): React.JSX.Element;
14
15
  displayName: string;
15
16
  };
16
17
  Org: {
17
- ({ href, title, children, ...props }: SGDS.Component.SiteFooter.Org): React.JSX.Element;
18
+ ({ href, title, children, ...props }: SiteFooterOrgProps): React.JSX.Element;
18
19
  displayName: string;
19
20
  };
20
21
  displayName: string;
@@ -38,6 +38,7 @@ 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 ConditionalWrapper_1 = __importDefault(require("../../common/ConditionalWrapper"));
41
+ const clsx_1 = __importDefault(require("clsx"));
41
42
  const License = ({ children, ...props }) => {
42
43
  return (<div className="ds_site-footer__copyright" {...props}>
43
44
  {children}
@@ -66,7 +67,7 @@ const Link = ({ children, href, linkComponent, ...props }) => {
66
67
  };
67
68
  const Org = ({ href, title, children, ...props }) => {
68
69
  children = react_1.Children.map(children, child => {
69
- let thisChild = child;
70
+ const thisChild = child;
70
71
  if (thisChild && ['img', 'svg', 'picture'].includes(thisChild.type)) {
71
72
  return react_1.default.cloneElement(thisChild, { className: 'ds_site-footer__org-logo' });
72
73
  }
@@ -81,10 +82,10 @@ const Org = ({ href, title, children, ...props }) => {
81
82
  </div>);
82
83
  };
83
84
  const SiteFooter = ({ children, className, ...props }) => {
84
- return (<footer className={[
85
+ return (<footer className={(0, clsx_1.default)([
85
86
  "ds_site-footer",
86
87
  className
87
- ].join(' ')} {...props}>
88
+ ])} {...props}>
88
89
  <div className="ds_wrapper">
89
90
  <div className="ds_site-footer__content">
90
91
  {children}
@@ -0,0 +1,16 @@
1
+ import { LinkComponent } from "../../shared-types";
2
+ export interface SiteFooterLinkProps extends React.AllHTMLAttributes<HTMLLIElement> {
3
+ href?: string;
4
+ linkComponent?: LinkComponent;
5
+ }
6
+ export interface SiteFooterLicenseProps extends React.AllHTMLAttributes<HTMLDivElement> {
7
+ href?: string;
8
+ logoSrc?: string;
9
+ }
10
+ export interface SiteFooterOrgProps extends React.AllHTMLAttributes<HTMLDivElement> {
11
+ href?: string;
12
+ title: string;
13
+ }
14
+ export interface SiteFooterProps extends React.AllHTMLAttributes<HTMLElement> {
15
+ className?: string;
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,20 +1,21 @@
1
1
  import React from 'react';
2
+ import { SiteHeaderBrandProps, SiteHeaderProps } from './types';
2
3
  declare const SiteHeader: {
3
- ({ children, ...props }: SGDS.Component.SiteHeader): React.JSX.Element;
4
+ ({ children, ...props }: SiteHeaderProps): React.JSX.Element;
4
5
  Brand: {
5
- ({ children, homeUrl, linkComponent, siteTitle }: SGDS.Component.SiteHeader.Brand): React.JSX.Element;
6
+ ({ children, homeUrl, linkComponent, siteTitle }: SiteHeaderBrandProps): React.JSX.Element;
6
7
  displayName: string;
7
8
  };
8
9
  Navigation: {
9
- ({ children }: any): any;
10
+ ({ children }: React.AllHTMLAttributes<HTMLElement>): React.ReactNode;
10
11
  displayName: string;
11
12
  };
12
13
  Phase: {
13
- ({ children }: any): any;
14
+ ({ children }: React.AllHTMLAttributes<HTMLElement>): React.ReactNode;
14
15
  displayName: string;
15
16
  };
16
17
  Search: {
17
- ({ children }: any): any;
18
+ ({ children }: React.AllHTMLAttributes<HTMLElement>): React.ReactNode;
18
19
  displayName: string;
19
20
  };
20
21
  displayName: string;
@@ -39,7 +39,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importStar(require("react"));
40
40
  const Icon_1 = __importDefault(require("../../common/Icon"));
41
41
  const SiteNavigation_1 = __importDefault(require("../SiteNavigation"));
42
- // @ts-ignore
43
42
  const site_navigation_1 = __importDefault(require("@scottish-government/design-system/src/components/site-navigation/site-navigation"));
44
43
  const Brand = ({ children, homeUrl = '/', linkComponent, siteTitle }) => {
45
44
  function processChildren(children) {
@@ -96,6 +95,7 @@ const SiteHeader = ({ children, ...props }) => {
96
95
  }
97
96
  });
98
97
  (0, react_1.useEffect)(() => {
98
+ /* istanbul ignore else */
99
99
  if (mobileMenuRef.current) {
100
100
  new site_navigation_1.default(mobileMenuRef.current).init();
101
101
  }
@@ -0,0 +1,20 @@
1
+ import { LinkComponent } from "../../shared-types";
2
+ import { PhaseBannerProps } from "../PhaseBanner/types";
3
+ import { SiteNavigationItemProps } from "../SiteNavigation/types";
4
+ import { SiteSearchProps } from "../SiteSearch/types";
5
+ export interface SiteHeaderBrandProps extends React.AllHTMLAttributes<HTMLElement> {
6
+ homeUrl: string;
7
+ linkComponent?: LinkComponent;
8
+ siteTitle?: string;
9
+ }
10
+ export interface SiteHeaderProps extends React.AllHTMLAttributes<HTMLHeadingElement> {
11
+ logo?: {
12
+ alt?: string;
13
+ href?: string;
14
+ src?: string;
15
+ };
16
+ navigationItems?: SiteNavigationItemProps[];
17
+ phaseBanner?: PhaseBannerProps;
18
+ siteSearch?: SiteSearchProps;
19
+ siteTitle?: string;
20
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,8 +1,9 @@
1
+ import { SiteNavigationItemProps, SiteNavigationProps } from "./types";
1
2
  declare const SiteNavigation: {
2
- ({ children, className, ...props }: SGDS.Component.SiteNavigation): import("react").JSX.Element;
3
+ ({ children, className, ...props }: SiteNavigationProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  Item: {
5
- ({ children, isCurrent, href, linkComponent }: SGDS.Component.SiteNavigation.Item): import("react").JSX.Element;
6
+ ({ children, isCurrent, href, linkComponent }: SiteNavigationItemProps): import("react").JSX.Element;
6
7
  displayName: string;
7
8
  };
8
9
  };
@@ -1,5 +1,9 @@
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 });
6
+ const clsx_1 = __importDefault(require("clsx"));
3
7
  const Item = ({ children, isCurrent = false, href, linkComponent }) => {
4
8
  const classNames = ['ds_site-navigation__link'];
5
9
  let ariaCurrent;
@@ -7,12 +11,16 @@ const Item = ({ children, isCurrent = false, href, linkComponent }) => {
7
11
  classNames.push('ds_current');
8
12
  ariaCurrent = 'page';
9
13
  }
14
+ const classNamesString = (0, clsx_1.default)(classNames);
10
15
  function processChildren(children) {
11
16
  if (linkComponent) {
12
- return linkComponent({ className: classNames.join(' '), href, children });
17
+ return linkComponent({ className: classNamesString, href, children });
13
18
  }
14
19
  else if (href) {
15
- return <a href={href} aria-current={ariaCurrent ? ariaCurrent : undefined} className={classNames.join(' ')}>{children}</a>;
20
+ return <a href={href} aria-current={ariaCurrent ? ariaCurrent : undefined} className={classNamesString}>{children}</a>;
21
+ }
22
+ else {
23
+ return <span className={classNamesString}>{children}</span>;
16
24
  }
17
25
  }
18
26
  return (<li className="ds_site-navigation__item">
@@ -20,10 +28,10 @@ const Item = ({ children, isCurrent = false, href, linkComponent }) => {
20
28
  </li>);
21
29
  };
22
30
  const SiteNavigation = ({ children, className, ...props }) => {
23
- return (<nav className={[
31
+ return (<nav className={(0, clsx_1.default)([
24
32
  'ds_site-navigation',
25
33
  className
26
- ].join(' ')} {...props}>
34
+ ])} {...props}>
27
35
  <ul className="ds_site-navigation__list">
28
36
  {children}
29
37
  </ul>
@@ -0,0 +1,9 @@
1
+ import { LinkComponent } from '../../shared-types';
2
+ export interface SiteNavigationItemProps extends React.AllHTMLAttributes<HTMLLIElement> {
3
+ isCurrent?: boolean;
4
+ href: string;
5
+ linkComponent?: LinkComponent;
6
+ }
7
+ export interface SiteNavigationProps extends React.AllHTMLAttributes<HTMLElement> {
8
+ ref?: React.RefObject<null>;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { SiteSearchProps } from './types';
1
2
  declare const SiteSearch: {
2
- ({ action, autocompleteEndpoint, autocompleteSuggestionMappingFunction, className, id, method, minLength, name, placeholder, ...props }: SGDS.Component.SiteSearch): import("react").JSX.Element;
3
+ ({ action, autocompleteEndpoint, autocompleteSuggestionMappingFunction, className, id, method, minLength, name, placeholder, ...props }: SiteSearchProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default SiteSearch;
@@ -4,15 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = require("react");
7
- // @ts-ignore
8
7
  const autocomplete_1 = __importDefault(require("@scottish-government/design-system/src/components/autocomplete/autocomplete"));
9
8
  const Button_1 = __importDefault(require("../Button"));
9
+ const clsx_1 = __importDefault(require("clsx"));
10
10
  const SiteSearch = function ({ action = '/search', autocompleteEndpoint, autocompleteSuggestionMappingFunction, className, id = 'site-search', method = 'GET', minLength = 3, name = 'q', placeholder = 'Search', ...props }) {
11
11
  const ref = (0, react_1.useRef)(null);
12
12
  const hasAutocomplete = !!autocompleteEndpoint;
13
- let autocompleteId = hasAutocomplete ? id + '-autocomplete' : '';
13
+ const autocompleteId = hasAutocomplete ? id + '-autocomplete' : '';
14
14
  (0, react_1.useEffect)(() => {
15
- if (hasAutocomplete && ref.current) {
15
+ const autocompleteElement = document.getElementById(autocompleteId);
16
+ if (hasAutocomplete && autocompleteElement && ref.current) {
16
17
  const options = {};
17
18
  if (minLength) {
18
19
  options.minLength = minLength;
@@ -20,15 +21,15 @@ const SiteSearch = function ({ action = '/search', autocompleteEndpoint, autocom
20
21
  if (autocompleteSuggestionMappingFunction) {
21
22
  options.suggestionMappingFunction = autocompleteSuggestionMappingFunction;
22
23
  }
23
- const autocomplete = new autocomplete_1.default(document.getElementById(autocompleteId), autocompleteEndpoint, options);
24
+ const autocomplete = new autocomplete_1.default(autocompleteElement, autocompleteEndpoint, options);
24
25
  autocomplete.init();
25
26
  }
26
27
  }, [ref, autocompleteEndpoint, autocompleteId, hasAutocomplete, minLength, autocompleteSuggestionMappingFunction]);
27
- return (<div className={[
28
- 'ds_site-search', ,
28
+ return (<div className={(0, clsx_1.default)([
29
+ 'ds_site-search',
29
30
  className,
30
- hasAutocomplete ? 'ds_autocomplete' : undefined
31
- ].join(' ')} id={autocompleteId ? autocompleteId : undefined} ref={ref} {...props}>
31
+ hasAutocomplete && 'ds_autocomplete'
32
+ ])} id={autocompleteId ? autocompleteId : undefined} ref={ref} {...props}>
32
33
 
33
34
  <form role="search" className="ds_site-search__form" method={method} action={action}>
34
35
  <label className="ds_label visually-hidden" htmlFor={id} id={id + '-label'}>Search</label>
@@ -36,11 +37,11 @@ const SiteSearch = function ({ action = '/search', autocompleteEndpoint, autocom
36
37
  {hasAutocomplete && (<div role="status" aria-live="polite" id="autocomplete-status" className="visually-hidden"></div>)}
37
38
 
38
39
  <div className="ds_input__wrapper ds_input__wrapper--has-icon">
39
- <input aria-autocomplete={hasAutocomplete ? 'list' : undefined} aria-owns={hasAutocomplete ? 'autocomplete-suggestions' : undefined} autoComplete={hasAutocomplete ? 'off' : undefined} className={[
40
+ <input aria-autocomplete={hasAutocomplete ? 'list' : undefined} aria-owns={hasAutocomplete ? 'autocomplete-suggestions' : undefined} autoComplete={hasAutocomplete ? 'off' : undefined} className={(0, clsx_1.default)([
40
41
  'ds_input',
41
42
  'ds_site-search__input',
42
- hasAutocomplete ? 'js-autocomplete-input' : undefined
43
- ].join(' ')} id={id} name={name} placeholder={placeholder} required spellCheck="false" type="search"/>
43
+ hasAutocomplete && 'js-autocomplete-input'
44
+ ])} id={id} name={name} placeholder={placeholder} required spellCheck="false" type="search"/>
44
45
 
45
46
  <Button_1.default type="submit" icon="Search" isIconOnly>Search</Button_1.default>
46
47
 
@@ -0,0 +1,17 @@
1
+ type FormMethods = 'GET' | 'POST';
2
+ export type Suggestion = {
3
+ displayText: string;
4
+ isActive: boolean;
5
+ };
6
+ export type SuggestionMappingFunctionProps = (suggestions: object[]) => Suggestion[];
7
+ export interface SiteSearchProps extends React.AllHTMLAttributes<HTMLInputElement> {
8
+ action?: string;
9
+ autocompleteEndpoint?: string;
10
+ autocompleteSuggestionMappingFunction?: SuggestionMappingFunctionProps;
11
+ id: string;
12
+ method?: FormMethods;
13
+ minLength?: number;
14
+ name?: string;
15
+ placeholder?: string;
16
+ }
17
+ export {};
@@ -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 { SkipLinksLinkProps, SkipLinksProps } from './types';
2
3
  declare const SkipLinks: {
3
- ({ children, mainContentId, mainLinkText, isStatic, ...props }: SGDS.Component.SkipLinks): React.JSX.Element;
4
+ ({ children, mainContentId, mainLinkText, isStatic, ...props }: SkipLinksProps): React.JSX.Element;
4
5
  displayName: string;
5
6
  Link: {
6
- ({ children, fragmentId }: SGDS.Component.SkipLinks.Link): React.JSX.Element;
7
+ ({ children, fragmentId }: SkipLinksLinkProps): React.JSX.Element;
7
8
  displayName: string;
8
9
  };
9
10
  };
@@ -37,8 +37,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importStar(require("react"));
40
- // @ts-ignore
41
40
  const skip_links_1 = __importDefault(require("@scottish-government/design-system/src/components/skip-links/skip-links"));
41
+ const clsx_1 = __importDefault(require("clsx"));
42
42
  const Link = ({ children, fragmentId }) => {
43
43
  return (<li className="ds_skip-links__item">
44
44
  <a href={`#${fragmentId}`} className="ds_skip-links__link">{children}</a>
@@ -48,10 +48,10 @@ const SkipLinks = ({ children, mainContentId = 'main-content', mainLinkText = 'S
48
48
  (0, react_1.useEffect)(() => {
49
49
  skip_links_1.default.init();
50
50
  });
51
- return (<div className={[
51
+ return (<div className={(0, clsx_1.default)([
52
52
  'ds_skip-links',
53
- isStatic && 'ds_skip-links--static',
54
- ].join(' ')} {...props}>
53
+ isStatic && 'ds_skip-links--static'
54
+ ])} {...props}>
55
55
  <ul className="ds_skip-links__list">
56
56
  {children ? children : <Link fragmentId={mainContentId}>{mainLinkText}</Link>}
57
57
  </ul>
@@ -0,0 +1,8 @@
1
+ export interface SkipLinksLinkProps extends React.AllHTMLAttributes<HTMLLIElement> {
2
+ fragmentId: string;
3
+ }
4
+ export interface SkipLinksProps extends React.AllHTMLAttributes<HTMLDivElement> {
5
+ mainContentId?: string;
6
+ mainLinkText?: string;
7
+ isStatic?: boolean;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +1,11 @@
1
1
  import React from 'react';
2
+ import { SummaryCardProps } from './types';
3
+ import { ActionLinkProps } from '../../common/ActionLink/types';
2
4
  declare const SummaryCard: {
3
- ({ children, className, headingLevel, title, ...props }: SGDS.Component.SummaryCard): React.JSX.Element;
5
+ ({ children, className, headingLevel, title, ...props }: SummaryCardProps): React.JSX.Element;
4
6
  displayName: string;
5
7
  Action: {
6
- ({ children, describedby, href, linkComponent, onclick }: SGDS.Common.ActionLink): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
8
+ ({ children, describedby, href, linkComponent, onclick }: ActionLinkProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
7
9
  displayName: string;
8
10
  };
9
11
  };
@@ -40,9 +40,10 @@ const react_1 = __importStar(require("react"));
40
40
  const ActionLink_1 = __importDefault(require("../../common/ActionLink"));
41
41
  const ConditionalWrapper_1 = __importDefault(require("../../common/ConditionalWrapper"));
42
42
  const WrapperTag_1 = __importDefault(require("../../common/WrapperTag"));
43
+ const clsx_1 = __importDefault(require("clsx"));
43
44
  const SummaryCard = ({ children, className, headingLevel = 'h3', title, ...props }) => {
44
- let actions = [];
45
- let remainingChildren = [];
45
+ const actions = [];
46
+ const remainingChildren = [];
46
47
  const describedById = (0, react_1.useId)();
47
48
  react_1.Children.forEach(children, (child) => {
48
49
  const thisChild = child;
@@ -53,10 +54,10 @@ const SummaryCard = ({ children, className, headingLevel = 'h3', title, ...props
53
54
  remainingChildren.push(thisChild);
54
55
  }
55
56
  });
56
- return (<div className={[
57
+ return (<div className={(0, clsx_1.default)([
57
58
  'ds_summary-card',
58
59
  className
59
- ].join(' ')} {...props}>
60
+ ])} {...props}>
60
61
  <div className="ds_summary-card__header">
61
62
  <WrapperTag_1.default className="ds_summary-card__header-title" id={describedById} tagName={headingLevel}>{title}</WrapperTag_1.default>
62
63
 
@@ -0,0 +1,5 @@
1
+ import { HeadingLevel } from '../../shared-types';
2
+ export interface SummaryCardProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ headingLevel?: HeadingLevel;
4
+ title: string;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,16 +1,18 @@
1
1
  import React from 'react';
2
+ import { SummaryListItemProps, SummaryListProps } from './types';
3
+ import { ActionLinkProps } from '@/src/common/ActionLink/types';
2
4
  declare const SummaryList: {
3
- ({ children, className, isBorderless, ...props }: SGDS.Component.SummaryList): React.JSX.Element;
5
+ ({ children, className, isBorderless, ...props }: SummaryListProps): React.JSX.Element;
4
6
  Action: {
5
- ({ children, describedby, href, linkComponent, onclick }: SGDS.Common.ActionLink): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
7
+ ({ children, describedby, href, linkComponent, onclick }: ActionLinkProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
6
8
  displayName: string;
7
9
  };
8
10
  Item: {
9
- ({ children, title }: SGDS.Component.SummaryList.Item): React.JSX.Element;
11
+ ({ children, title }: SummaryListItemProps): React.JSX.Element;
10
12
  displayName: string;
11
13
  };
12
14
  Value: {
13
- ({ children }: SGDS.Component.SummaryList.Answer): React.JSX.Element;
15
+ ({ children }: React.AllHTMLAttributes<HTMLElement>): React.JSX.Element;
14
16
  displayName: string;
15
17
  };
16
18
  displayName: string;
@@ -39,9 +39,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importStar(require("react"));
40
40
  const ActionLink_1 = __importDefault(require("../../common/ActionLink"));
41
41
  const ConditionalWrapper_1 = __importDefault(require("../../common/ConditionalWrapper"));
42
+ const clsx_1 = __importDefault(require("clsx"));
42
43
  const Item = ({ children, title }) => {
43
- let values = [];
44
- let actions = [];
44
+ const values = [];
45
+ const actions = [];
45
46
  const describedById = (0, react_1.useId)();
46
47
  react_1.Children.forEach(children, (child) => {
47
48
  const thisChild = child;
@@ -75,11 +76,11 @@ const Value = ({ children }) => {
75
76
  return (<q className="ds_summary-list__answer">{children}</q>);
76
77
  };
77
78
  const SummaryList = ({ children, className, isBorderless, ...props }) => {
78
- return (<ol className={[
79
+ return (<ol className={(0, clsx_1.default)([
79
80
  'ds_summary-list',
80
81
  isBorderless && 'ds_summary-list--no-border',
81
82
  className
82
- ].join(' ')} {...props}>
83
+ ])} {...props}>
83
84
  {children}
84
85
  </ol>);
85
86
  };