@scottish-government/designsystem-react 0.12.1 → 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 (490) hide show
  1. package/.storybook/main.ts +6 -6
  2. package/.storybook/sgdsArgTypes.ts +107 -43
  3. package/CHANGELOG.md +49 -0
  4. package/LICENSE.txt +21 -0
  5. package/README.md +3 -0
  6. package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.d.ts +3 -2
  7. package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.jsx +8 -7
  8. package/dist/common/AbstractNotificationBanner/types.d.ts +13 -0
  9. package/dist/common/AbstractNotificationBanner/types.js +2 -0
  10. package/dist/common/ActionLink/ActionLink.d.ts +2 -1
  11. package/dist/common/ActionLink/types.d.ts +7 -0
  12. package/dist/common/ActionLink/types.js +2 -0
  13. package/dist/common/ConditionalWrapper/ConditionalWrapper.d.ts +2 -1
  14. package/dist/common/ConditionalWrapper/ConditionalWrapper.jsx +4 -2
  15. package/dist/common/ConditionalWrapper/types.d.ts +4 -0
  16. package/dist/common/ConditionalWrapper/types.js +2 -0
  17. package/dist/common/FileIcon/FileIcon.d.ts +2 -1
  18. package/dist/common/FileIcon/types.d.ts +6 -0
  19. package/dist/common/FileIcon/types.js +2 -0
  20. package/dist/common/HintText/HintText.d.ts +2 -1
  21. package/dist/common/HintText/HintText.jsx +3 -3
  22. package/dist/common/HintText/types.d.ts +4 -0
  23. package/dist/common/HintText/types.js +2 -0
  24. package/dist/common/Icon/Icon.d.ts +2 -1
  25. package/dist/common/Icon/Icon.jsx +3 -2
  26. package/dist/common/Icon/types.d.ts +8 -0
  27. package/dist/common/Icon/types.js +2 -0
  28. package/dist/common/ScreenReaderText/ScreenReaderText.d.ts +1 -1
  29. package/dist/common/WrapperTag/WrapperTag.d.ts +385 -1
  30. package/dist/common/WrapperTag/WrapperTag.jsx +5 -2
  31. package/dist/common/WrapperTag/types.d.ts +3 -0
  32. package/dist/common/WrapperTag/types.js +2 -0
  33. package/dist/components/Accordion/Accordion.d.ts +3 -2
  34. package/dist/components/Accordion/Accordion.jsx +12 -11
  35. package/dist/components/Accordion/types.d.ts +11 -0
  36. package/dist/components/Accordion/types.js +2 -0
  37. package/dist/components/AspectBox/AspectBox.d.ts +2 -1
  38. package/dist/components/AspectBox/AspectBox.jsx +3 -9
  39. package/dist/components/AspectBox/types.d.ts +3 -0
  40. package/dist/components/AspectBox/types.js +2 -0
  41. package/dist/components/BackToTop/BackToTop.d.ts +2 -1
  42. package/dist/components/BackToTop/BackToTop.jsx +4 -3
  43. package/dist/components/BackToTop/types.d.ts +3 -0
  44. package/dist/components/BackToTop/types.js +2 -0
  45. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +3 -2
  46. package/dist/components/Breadcrumbs/Breadcrumbs.jsx +6 -2
  47. package/dist/components/Breadcrumbs/types.d.ts +5 -0
  48. package/dist/components/Breadcrumbs/types.js +2 -0
  49. package/dist/components/Button/Button.d.ts +2 -1
  50. package/dist/components/Button/Button.jsx +4 -3
  51. package/dist/components/Button/ButtonGroup.d.ts +2 -1
  52. package/dist/components/Button/ButtonGroup.jsx +9 -4
  53. package/dist/components/Button/types.d.ts +20 -0
  54. package/dist/components/Button/types.js +2 -0
  55. package/dist/components/Card/Card.d.ts +34 -0
  56. package/dist/components/Card/Card.jsx +118 -0
  57. package/dist/components/Card/index.d.ts +1 -0
  58. package/dist/components/Card/index.js +8 -0
  59. package/dist/components/Card/types.d.ts +26 -0
  60. package/dist/components/Card/types.js +2 -0
  61. package/dist/components/CategoryItem/CategoryItem.d.ts +2 -1
  62. package/dist/components/CategoryItem/CategoryItem.jsx +8 -5
  63. package/dist/components/CategoryItem/types.d.ts +9 -0
  64. package/dist/components/CategoryItem/types.js +2 -0
  65. package/dist/components/CategoryList/CategoryList.d.ts +2 -1
  66. package/dist/components/CategoryList/CategoryList.jsx +3 -2
  67. package/dist/components/CategoryList/types.d.ts +5 -0
  68. package/dist/components/CategoryList/types.js +2 -0
  69. package/dist/components/Checkbox/Checkbox.d.ts +2 -1
  70. package/dist/components/Checkbox/Checkbox.jsx +4 -3
  71. package/dist/components/Checkbox/CheckboxGroup.d.ts +2 -1
  72. package/dist/components/Checkbox/CheckboxGroup.jsx +5 -4
  73. package/dist/components/Checkbox/types.d.ts +7 -0
  74. package/dist/components/Checkbox/types.js +2 -0
  75. package/dist/components/ConfirmationMessage/ConfirmationMessage.d.ts +2 -1
  76. package/dist/components/ConfirmationMessage/ConfirmationMessage.jsx +3 -2
  77. package/dist/components/ConfirmationMessage/types.d.ts +6 -0
  78. package/dist/components/ConfirmationMessage/types.js +2 -0
  79. package/dist/components/ContentsNav/ContentsNav.d.ts +3 -2
  80. package/dist/components/ContentsNav/ContentsNav.jsx +7 -5
  81. package/dist/components/ContentsNav/types.d.ts +9 -0
  82. package/dist/components/ContentsNav/types.js +2 -0
  83. package/dist/components/CookieBanner/CookieBanner.d.ts +3 -2
  84. package/dist/components/CookieBanner/CookieBanner.jsx +13 -3
  85. package/dist/components/DatePicker/DatePicker.d.ts +2 -1
  86. package/dist/components/DatePicker/DatePicker.jsx +7 -7
  87. package/dist/components/DatePicker/types.d.ts +18 -0
  88. package/dist/components/DatePicker/types.js +2 -0
  89. package/dist/components/Details/Details.d.ts +2 -1
  90. package/dist/components/Details/Details.jsx +6 -2
  91. package/dist/components/Details/types.d.ts +4 -0
  92. package/dist/components/Details/types.js +2 -0
  93. package/dist/components/ErrorMessage/ErrorMessage.d.ts +2 -1
  94. package/dist/components/ErrorMessage/ErrorMessage.jsx +6 -2
  95. package/dist/components/ErrorMessage/types.d.ts +3 -0
  96. package/dist/components/ErrorMessage/types.js +2 -0
  97. package/dist/components/ErrorSummary/ErrorSummary.d.ts +3 -2
  98. package/dist/components/ErrorSummary/ErrorSummary.jsx +6 -2
  99. package/dist/components/ErrorSummary/types.d.ts +8 -0
  100. package/dist/components/ErrorSummary/types.js +2 -0
  101. package/dist/components/FeatureHeader/FeatureHeader.d.ts +7 -5
  102. package/dist/components/FeatureHeader/FeatureHeader.jsx +87 -50
  103. package/dist/components/FeatureHeader/types.d.ts +12 -0
  104. package/dist/components/FeatureHeader/types.js +2 -0
  105. package/dist/components/FileDownload/FileDownload.d.ts +2 -1
  106. package/dist/components/FileDownload/FileDownload.jsx +4 -3
  107. package/dist/components/FileDownload/types.d.ts +10 -0
  108. package/dist/components/FileDownload/types.js +2 -0
  109. package/dist/components/HideThisPage/HideThisPage.d.ts +2 -1
  110. package/dist/components/HideThisPage/HideThisPage.jsx +5 -4
  111. package/dist/components/HideThisPage/types.d.ts +3 -0
  112. package/dist/components/HideThisPage/types.js +2 -0
  113. package/dist/components/InsetText/InsetText.d.ts +1 -1
  114. package/dist/components/InsetText/InsetText.jsx +6 -2
  115. package/dist/components/NotificationBanner/NotificationBanner.d.ts +3 -2
  116. package/dist/components/NotificationBanner/NotificationBanner.jsx +5 -4
  117. package/dist/components/NotificationPanel/NotificationPanel.d.ts +2 -1
  118. package/dist/components/NotificationPanel/NotificationPanel.jsx +3 -2
  119. package/dist/components/NotificationPanel/types.d.ts +6 -0
  120. package/dist/components/NotificationPanel/types.js +2 -0
  121. package/dist/components/NotificationTag/NotificationTag.d.ts +6 -0
  122. package/dist/components/NotificationTag/NotificationTag.jsx +20 -0
  123. package/dist/components/NotificationTag/index.d.ts +1 -0
  124. package/dist/components/NotificationTag/index.js +8 -0
  125. package/dist/components/NotificationTag/types.d.ts +5 -0
  126. package/dist/components/NotificationTag/types.js +2 -0
  127. package/dist/components/PageHeader/PageHeader.d.ts +2 -1
  128. package/dist/components/PageHeader/PageHeader.jsx +6 -2
  129. package/dist/components/PageHeader/types.d.ts +5 -0
  130. package/dist/components/PageHeader/types.js +2 -0
  131. package/dist/components/PageMetadata/PageMetadata.d.ts +3 -2
  132. package/dist/components/PageMetadata/PageMetadata.jsx +8 -4
  133. package/dist/components/PageMetadata/types.d.ts +6 -0
  134. package/dist/components/PageMetadata/types.js +2 -0
  135. package/dist/components/Pagination/Pagination.d.ts +3 -2
  136. package/dist/components/Pagination/Pagination.jsx +7 -5
  137. package/dist/components/Pagination/types.d.ts +18 -0
  138. package/dist/components/Pagination/types.js +2 -0
  139. package/dist/components/PhaseBanner/PhaseBanner.d.ts +2 -1
  140. package/dist/components/PhaseBanner/PhaseBanner.jsx +3 -2
  141. package/dist/components/PhaseBanner/types.d.ts +3 -0
  142. package/dist/components/PhaseBanner/types.js +2 -0
  143. package/dist/components/Question/Question.d.ts +2 -1
  144. package/dist/components/Question/Question.jsx +4 -3
  145. package/dist/components/Question/types.d.ts +9 -0
  146. package/dist/components/Question/types.js +2 -0
  147. package/dist/components/RadioButton/RadioButton.d.ts +2 -1
  148. package/dist/components/RadioButton/RadioButton.jsx +4 -3
  149. package/dist/components/RadioButton/RadioGroup.d.ts +2 -1
  150. package/dist/components/RadioButton/RadioGroup.jsx +3 -2
  151. package/dist/components/RadioButton/types.d.ts +10 -0
  152. package/dist/components/RadioButton/types.js +2 -0
  153. package/dist/components/SearchFacets/SearchFacets.d.ts +4 -3
  154. package/dist/components/SearchFacets/SearchFacets.jsx +3 -2
  155. package/dist/components/SearchFacets/types.d.ts +12 -0
  156. package/dist/components/SearchFacets/types.js +2 -0
  157. package/dist/components/SearchFilters/SearchFilters.d.ts +5 -4
  158. package/dist/components/SearchFilters/types.d.ts +12 -0
  159. package/dist/components/SearchFilters/types.js +2 -0
  160. package/dist/components/SearchResult/SearchResult.d.ts +8 -11
  161. package/dist/components/SearchResult/SearchResult.jsx +6 -7
  162. package/dist/components/SearchResult/types.d.ts +11 -0
  163. package/dist/components/SearchResult/types.js +2 -0
  164. package/dist/components/SearchSort/SearchSort.d.ts +2 -1
  165. package/dist/components/SearchSort/SearchSort.jsx +3 -2
  166. package/dist/components/SearchSort/types.d.ts +7 -0
  167. package/dist/components/SearchSort/types.js +2 -0
  168. package/dist/components/Select/Select.d.ts +2 -1
  169. package/dist/components/Select/Select.jsx +4 -3
  170. package/dist/components/Select/types.d.ts +6 -0
  171. package/dist/components/Select/types.js +2 -0
  172. package/dist/components/SequentialNavigation/SequentialNavigation.d.ts +4 -3
  173. package/dist/components/SequentialNavigation/SequentialNavigation.jsx +10 -6
  174. package/dist/components/SequentialNavigation/types.d.ts +10 -0
  175. package/dist/components/SequentialNavigation/types.js +2 -0
  176. package/dist/components/SideNavigation/SideNavigation.d.ts +4 -3
  177. package/dist/components/SideNavigation/SideNavigation.jsx +10 -7
  178. package/dist/components/SideNavigation/types.d.ts +13 -0
  179. package/dist/components/SideNavigation/types.js +2 -0
  180. package/dist/components/SiteFooter/SiteFooter.d.ts +6 -5
  181. package/dist/components/SiteFooter/SiteFooter.jsx +4 -3
  182. package/dist/components/SiteFooter/types.d.ts +16 -0
  183. package/dist/components/SiteFooter/types.js +2 -0
  184. package/dist/components/SiteHeader/SiteHeader.d.ts +6 -5
  185. package/dist/components/SiteHeader/SiteHeader.jsx +1 -1
  186. package/dist/components/SiteHeader/types.d.ts +20 -0
  187. package/dist/components/SiteHeader/types.js +2 -0
  188. package/dist/components/SiteNavigation/SiteNavigation.d.ts +3 -2
  189. package/dist/components/SiteNavigation/SiteNavigation.jsx +12 -4
  190. package/dist/components/SiteNavigation/types.d.ts +9 -0
  191. package/dist/components/SiteNavigation/types.js +2 -0
  192. package/dist/components/SiteSearch/SiteSearch.d.ts +2 -1
  193. package/dist/components/SiteSearch/SiteSearch.jsx +12 -11
  194. package/dist/components/SiteSearch/types.d.ts +17 -0
  195. package/dist/components/SiteSearch/types.js +2 -0
  196. package/dist/components/SkipLinks/SkipLinks.d.ts +3 -2
  197. package/dist/components/SkipLinks/SkipLinks.jsx +4 -4
  198. package/dist/components/SkipLinks/types.d.ts +8 -0
  199. package/dist/components/SkipLinks/types.js +2 -0
  200. package/dist/components/SummaryCard/SummaryCard.d.ts +4 -2
  201. package/dist/components/SummaryCard/SummaryCard.jsx +5 -4
  202. package/dist/components/SummaryCard/types.d.ts +5 -0
  203. package/dist/components/SummaryCard/types.js +2 -0
  204. package/dist/components/SummaryList/SummaryList.d.ts +6 -4
  205. package/dist/components/SummaryList/SummaryList.jsx +5 -4
  206. package/dist/components/SummaryList/types.d.ts +6 -0
  207. package/dist/components/SummaryList/types.js +2 -0
  208. package/dist/components/Table/Table.d.ts +2 -1
  209. package/dist/components/Table/Table.jsx +5 -4
  210. package/dist/components/Table/types.d.ts +6 -0
  211. package/dist/components/Table/types.js +2 -0
  212. package/dist/components/Tabs/Tabs.d.ts +3 -2
  213. package/dist/components/Tabs/Tabs.jsx +6 -5
  214. package/dist/components/Tabs/types.d.ts +16 -0
  215. package/dist/components/Tabs/types.js +2 -0
  216. package/dist/components/Tag/Tag.d.ts +2 -1
  217. package/dist/components/Tag/Tag.jsx +7 -3
  218. package/dist/components/Tag/types.d.ts +4 -0
  219. package/dist/components/Tag/types.js +2 -0
  220. package/dist/components/TaskList/TaskList.d.ts +4 -3
  221. package/dist/components/TaskList/TaskList.jsx +11 -8
  222. package/dist/components/TaskList/types.d.ts +17 -0
  223. package/dist/components/TaskList/types.js +2 -0
  224. package/dist/components/TextInput/TextInput.d.ts +2 -1
  225. package/dist/components/TextInput/TextInput.jsx +10 -9
  226. package/dist/components/TextInput/types.d.ts +11 -0
  227. package/dist/components/TextInput/types.js +2 -0
  228. package/dist/components/Textarea/Textarea.d.ts +2 -1
  229. package/dist/components/Textarea/Textarea.jsx +6 -5
  230. package/dist/components/WarningText/WarningText.d.ts +1 -1
  231. package/dist/components/WarningText/WarningText.jsx +6 -2
  232. package/dist/hooks/useTracking/useTracking.js +0 -1
  233. package/eslint.config.mjs +32 -0
  234. package/package.json +12 -5
  235. package/src/common/AbstractNotificationBanner/AbstractNotificationBanner.tsx +13 -10
  236. package/src/common/AbstractNotificationBanner/types.ts +15 -0
  237. package/src/common/ActionLink/ActionLink.tsx +3 -1
  238. package/src/common/ActionLink/types.ts +8 -0
  239. package/src/common/ConditionalWrapper/ConditionalWrapper.tsx +10 -2
  240. package/src/common/ConditionalWrapper/types.ts +4 -0
  241. package/src/common/FileIcon/FileIcon.tsx +2 -1
  242. package/src/common/FileIcon/types.ts +7 -0
  243. package/src/common/HintText/HintText.test.tsx +3 -15
  244. package/src/common/HintText/HintText.tsx +4 -4
  245. package/src/common/HintText/types.ts +4 -0
  246. package/src/common/Icon/Icon.tsx +5 -3
  247. package/src/common/Icon/types.ts +9 -0
  248. package/src/common/ScreenReaderText/ScreenReaderText.tsx +1 -1
  249. package/src/common/WrapperTag/WrapperTag.tsx +5 -3
  250. package/src/common/WrapperTag/types.ts +3 -0
  251. package/src/components/Accordion/Accordion.Item.stories.tsx +1 -5
  252. package/src/components/Accordion/Accordion.stories.tsx +5 -5
  253. package/src/components/Accordion/Accordion.test.tsx +11 -0
  254. package/src/components/Accordion/Accordion.tsx +15 -13
  255. package/src/components/Accordion/types.ts +13 -0
  256. package/src/components/AspectBox/AspectBox.stories.tsx +1 -2
  257. package/src/components/AspectBox/AspectBox.tsx +8 -14
  258. package/src/components/AspectBox/types.ts +3 -0
  259. package/src/components/BackToTop/BackToTop.test.tsx +21 -1
  260. package/src/components/BackToTop/BackToTop.tsx +6 -4
  261. package/src/components/BackToTop/types.ts +3 -0
  262. package/src/components/Breadcrumbs/Breadcrumbs.tsx +7 -4
  263. package/src/components/Breadcrumbs/types.ts +6 -0
  264. package/src/components/Button/Button.tsx +6 -4
  265. package/src/components/Button/ButtonGroup.stories.tsx +22 -0
  266. package/src/components/Button/ButtonGroup.test.tsx +21 -0
  267. package/src/components/Button/ButtonGroup.tsx +9 -4
  268. package/src/components/Button/types.ts +22 -0
  269. package/src/components/Card/Card.stories.tsx +446 -0
  270. package/src/components/Card/Card.test.tsx +282 -0
  271. package/src/components/Card/Card.tsx +208 -0
  272. package/src/components/Card/index.ts +1 -0
  273. package/src/components/Card/types.ts +30 -0
  274. package/src/components/CategoryItem/CategoryItem.tsx +10 -6
  275. package/src/components/CategoryItem/types.ts +10 -0
  276. package/src/components/CategoryList/CategoryList.tsx +7 -4
  277. package/src/components/CategoryList/types.ts +5 -0
  278. package/src/components/Checkbox/Checkbox.stories.tsx +3 -3
  279. package/src/components/Checkbox/Checkbox.test.tsx +30 -0
  280. package/src/components/Checkbox/Checkbox.tsx +8 -7
  281. package/src/components/Checkbox/CheckboxGroup.test.tsx +10 -0
  282. package/src/components/Checkbox/CheckboxGroup.tsx +7 -6
  283. package/src/components/Checkbox/types.ts +9 -0
  284. package/src/components/ConfirmationMessage/ConfirmationMessage.tsx +5 -3
  285. package/src/components/ConfirmationMessage/types.ts +7 -0
  286. package/src/components/ContentsNav/ContentsNav.stories.tsx +5 -1
  287. package/src/components/ContentsNav/ContentsNav.tsx +11 -7
  288. package/src/components/ContentsNav/types.ts +11 -0
  289. package/src/components/CookieBanner/CookieBanner.Buttons.stories.tsx +3 -3
  290. package/src/components/CookieBanner/CookieBanner.stories.tsx +6 -6
  291. package/src/components/CookieBanner/CookieBanner.test.tsx +24 -1
  292. package/src/components/CookieBanner/CookieBanner.tsx +16 -5
  293. package/src/components/DatePicker/DatePicker.test.tsx +52 -19
  294. package/src/components/DatePicker/DatePicker.tsx +8 -8
  295. package/src/components/DatePicker/types.ts +19 -0
  296. package/src/components/Details/Details.stories.tsx +1 -1
  297. package/src/components/Details/Details.tsx +6 -3
  298. package/src/components/Details/types.ts +4 -0
  299. package/src/components/ErrorMessage/ErrorMessage.tsx +6 -3
  300. package/src/components/ErrorMessage/types.ts +3 -0
  301. package/src/components/ErrorSummary/ErrorSummary.test.tsx +1 -1
  302. package/src/components/ErrorSummary/ErrorSummary.tsx +6 -4
  303. package/src/components/ErrorSummary/types.ts +11 -0
  304. package/src/components/FeatureHeader/FeatureHeader.stories.tsx +186 -23
  305. package/src/components/FeatureHeader/FeatureHeader.test.tsx +298 -0
  306. package/src/components/FeatureHeader/FeatureHeader.tsx +83 -58
  307. package/src/components/FeatureHeader/types.ts +13 -0
  308. package/src/components/FileDownload/FileDownload.test.tsx +1 -5
  309. package/src/components/FileDownload/FileDownload.tsx +6 -4
  310. package/src/components/FileDownload/types.ts +11 -0
  311. package/src/components/HideThisPage/HideThisPage.test.tsx +12 -1
  312. package/src/components/HideThisPage/HideThisPage.tsx +7 -5
  313. package/src/components/HideThisPage/types.ts +3 -0
  314. package/src/components/InsetText/InsetText.tsx +5 -3
  315. package/src/components/NotificationBanner/NotificationBanner.stories.tsx +2 -2
  316. package/src/components/NotificationBanner/NotificationBanner.test.tsx +10 -0
  317. package/src/components/NotificationBanner/NotificationBanner.tsx +8 -6
  318. package/src/components/NotificationPanel/NotificationPanel.tsx +5 -3
  319. package/src/components/NotificationPanel/types.ts +7 -0
  320. package/src/components/NotificationTag/NotificationTag.stories.tsx +68 -0
  321. package/src/components/NotificationTag/NotificationTag.test.tsx +70 -0
  322. package/src/components/NotificationTag/NotificationTag.tsx +32 -0
  323. package/src/components/NotificationTag/index.ts +1 -0
  324. package/src/components/NotificationTag/types.ts +5 -0
  325. package/src/components/PageHeader/PageHeader.tsx +6 -3
  326. package/src/components/PageHeader/types.ts +5 -0
  327. package/src/components/PageMetadata/PageMetadata.stories.tsx +1 -1
  328. package/src/components/PageMetadata/PageMetadata.tsx +10 -7
  329. package/src/components/PageMetadata/types.ts +7 -0
  330. package/src/components/Pagination/Pagination.test.tsx +20 -0
  331. package/src/components/Pagination/Pagination.tsx +12 -8
  332. package/src/components/Pagination/types.ts +20 -0
  333. package/src/components/PhaseBanner/PhaseBanner.stories.tsx +1 -4
  334. package/src/components/PhaseBanner/PhaseBanner.tsx +5 -3
  335. package/src/components/PhaseBanner/types.ts +3 -0
  336. package/src/components/Question/Question.tsx +6 -4
  337. package/src/components/Question/types.ts +9 -0
  338. package/src/components/RadioButton/RadioButton.test.tsx +30 -0
  339. package/src/components/RadioButton/RadioButton.tsx +8 -7
  340. package/src/components/RadioButton/RadioGroup.tsx +5 -3
  341. package/src/components/RadioButton/types.ts +12 -0
  342. package/src/components/SearchFacets/SearchFacets.Group.stories.tsx +2 -3
  343. package/src/components/SearchFacets/SearchFacets.stories.tsx +2 -2
  344. package/src/components/SearchFacets/SearchFacets.tsx +10 -8
  345. package/src/components/SearchFacets/types.ts +14 -0
  346. package/src/components/SearchFilters/SearchFilters.Panel.stories.tsx +18 -7
  347. package/src/components/SearchFilters/SearchFilters.stories.tsx +1 -1
  348. package/src/components/SearchFilters/SearchFilters.tsx +4 -3
  349. package/src/components/SearchFilters/types.ts +14 -0
  350. package/src/components/SearchResult/SearchResult.stories.tsx +23 -23
  351. package/src/components/SearchResult/SearchResult.test.tsx +5 -4
  352. package/src/components/SearchResult/SearchResult.tsx +15 -15
  353. package/src/components/SearchResult/types.ts +13 -0
  354. package/src/components/SearchSort/SearchSort.stories.tsx +2 -1
  355. package/src/components/SearchSort/SearchSort.tsx +5 -3
  356. package/src/components/SearchSort/types.ts +7 -0
  357. package/src/components/Select/Select.test.tsx +42 -0
  358. package/src/components/Select/Select.tsx +8 -6
  359. package/src/components/Select/types.ts +7 -0
  360. package/src/components/SequentialNavigation/SequentialNavigation.tsx +13 -10
  361. package/src/components/SequentialNavigation/types.ts +12 -0
  362. package/src/components/SideNavigation/SideNavigation.test.tsx +24 -0
  363. package/src/components/SideNavigation/SideNavigation.tsx +14 -10
  364. package/src/components/SideNavigation/types.ts +16 -0
  365. package/src/components/SiteFooter/SiteFooter.tsx +10 -8
  366. package/src/components/SiteFooter/types.ts +20 -0
  367. package/src/components/SiteHeader/SiteHeader.stories.tsx +4 -3
  368. package/src/components/SiteHeader/SiteHeader.test.tsx +29 -16
  369. package/src/components/SiteHeader/SiteHeader.tsx +10 -9
  370. package/src/components/SiteHeader/types.ts +22 -0
  371. package/src/components/SiteNavigation/SiteNavigation.test.tsx +16 -1
  372. package/src/components/SiteNavigation/SiteNavigation.tsx +13 -6
  373. package/src/components/SiteNavigation/types.ts +11 -0
  374. package/src/components/SiteSearch/SiteSearch.stories.tsx +4 -2
  375. package/src/components/SiteSearch/SiteSearch.test.tsx +22 -0
  376. package/src/components/SiteSearch/SiteSearch.tsx +15 -13
  377. package/src/components/SiteSearch/types.ts +19 -0
  378. package/src/components/SkipLinks/SkipLinks.stories.tsx +3 -3
  379. package/src/components/SkipLinks/SkipLinks.tsx +7 -7
  380. package/src/components/SkipLinks/types.ts +9 -0
  381. package/src/components/SummaryCard/SummaryCard.test.tsx +0 -11
  382. package/src/components/SummaryCard/SummaryCard.tsx +9 -6
  383. package/src/components/SummaryCard/types.ts +6 -0
  384. package/src/components/SummaryList/SummaryList.Item.stories.tsx +5 -5
  385. package/src/components/SummaryList/SummaryList.stories.tsx +1 -1
  386. package/src/components/SummaryList/SummaryList.test.tsx +1 -6
  387. package/src/components/SummaryList/SummaryList.tsx +11 -9
  388. package/src/components/SummaryList/types.ts +7 -0
  389. package/src/components/Table/Table.test.tsx +36 -0
  390. package/src/components/Table/Table.tsx +7 -5
  391. package/src/components/Table/types.ts +6 -0
  392. package/src/components/Tabs/Tabs.Item.stories.tsx +7 -7
  393. package/src/components/Tabs/Tabs.stories.tsx +3 -3
  394. package/src/components/Tabs/Tabs.test.tsx +14 -0
  395. package/src/components/Tabs/Tabs.tsx +12 -9
  396. package/src/components/Tabs/types.ts +19 -0
  397. package/src/components/Tag/Tag.tsx +7 -4
  398. package/src/components/Tag/types.ts +5 -0
  399. package/src/components/TaskList/TaskList.Group.stories.tsx +0 -5
  400. package/src/components/TaskList/TaskList.stories.tsx +0 -1
  401. package/src/components/TaskList/TaskList.tsx +17 -13
  402. package/src/components/TaskList/types.ts +20 -0
  403. package/src/components/TextInput/TextInput.test.tsx +53 -1
  404. package/src/components/TextInput/TextInput.tsx +17 -12
  405. package/src/components/TextInput/types.ts +12 -0
  406. package/src/components/Textarea/Textarea.test.tsx +53 -1
  407. package/src/components/Textarea/Textarea.tsx +10 -8
  408. package/src/components/WarningText/WarningText.tsx +5 -3
  409. package/src/hooks/useTracking/useTracking.test.tsx +5 -7
  410. package/src/hooks/useTracking/useTracking.ts +0 -1
  411. package/src/images/icons/arrow_upward.tsx +10 -10
  412. package/src/images/icons/calendar_today.tsx +10 -10
  413. package/src/images/icons/cancel.tsx +8 -8
  414. package/src/images/icons/check_circle.tsx +10 -10
  415. package/src/images/icons/chevron_left.tsx +10 -10
  416. package/src/images/icons/chevron_right.tsx +10 -10
  417. package/src/images/icons/close.tsx +10 -10
  418. package/src/images/icons/description.tsx +10 -10
  419. package/src/images/icons/double_chevron_left.tsx +8 -8
  420. package/src/images/icons/double_chevron_right.tsx +8 -8
  421. package/src/images/icons/error.tsx +10 -10
  422. package/src/images/icons/expand_less.tsx +10 -10
  423. package/src/images/icons/expand_more.tsx +10 -10
  424. package/src/images/icons/list.tsx +13 -13
  425. package/src/images/icons/menu.tsx +10 -10
  426. package/src/images/icons/priority_high.tsx +11 -11
  427. package/src/images/icons/search.tsx +10 -10
  428. package/src/shared-types.ts +40 -0
  429. package/static/images/illustration.svg +502 -0
  430. package/tsconfig.json +0 -3
  431. package/vite.config.ts +6 -1
  432. package/@types/common/AbstractNotificationBanner.d.ts +0 -17
  433. package/@types/common/ActionLink.d.ts +0 -8
  434. package/@types/common/ConditionalWrapper.d.ts +0 -6
  435. package/@types/common/FileIcon.d.ts +0 -7
  436. package/@types/common/HintText.d.ts +0 -6
  437. package/@types/common/Icon.d.ts +0 -9
  438. package/@types/common/ScreenReaderText.d.ts +0 -4
  439. package/@types/common/WrapperTag.d.ts +0 -5
  440. package/@types/components/Accordion.d.ts +0 -15
  441. package/@types/components/AspectBox.d.ts +0 -5
  442. package/@types/components/BackToTop.d.ts +0 -5
  443. package/@types/components/Breadcrumbs.d.ts +0 -11
  444. package/@types/components/Button.d.ts +0 -17
  445. package/@types/components/ButtonGroup.d.ts +0 -5
  446. package/@types/components/CategoryItem.d.ts +0 -10
  447. package/@types/components/CategoryList.d.ts +0 -7
  448. package/@types/components/Checkbox.d.ts +0 -11
  449. package/@types/components/ConfirmationMessage.d.ts +0 -7
  450. package/@types/components/ContentsNav.d.ts +0 -13
  451. package/@types/components/DatePicker.d.ts +0 -20
  452. package/@types/components/Details.d.ts +0 -6
  453. package/@types/components/ErrorMessage.d.ts +0 -5
  454. package/@types/components/ErrorSummary.d.ts +0 -12
  455. package/@types/components/FileDownload.d.ts +0 -11
  456. package/@types/components/HideThisPage.d.ts +0 -5
  457. package/@types/components/InsetText.d.ts +0 -5
  458. package/@types/components/Metadata.d.ts +0 -11
  459. package/@types/components/NotificationPanel.d.ts +0 -7
  460. package/@types/components/PageHeader.d.ts +0 -7
  461. package/@types/components/Pagination.d.ts +0 -22
  462. package/@types/components/PhaseBanner.d.ts +0 -5
  463. package/@types/components/Question.d.ts +0 -11
  464. package/@types/components/RadioButton.d.ts +0 -14
  465. package/@types/components/SearchFacets.d.ts +0 -18
  466. package/@types/components/SearchFilters.d.ts +0 -14
  467. package/@types/components/SearchResult.d.ts +0 -30
  468. package/@types/components/SearchSort.d.ts +0 -9
  469. package/@types/components/Select.d.ts +0 -7
  470. package/@types/components/SequentialNavigation.d.ts +0 -14
  471. package/@types/components/SideNavigation.d.ts +0 -18
  472. package/@types/components/SiteFooter.d.ts +0 -25
  473. package/@types/components/SiteHeader.d.ts +0 -20
  474. package/@types/components/SiteNavigation.d.ts +0 -13
  475. package/@types/components/SiteSearch.d.ts +0 -14
  476. package/@types/components/SkipLinks.d.ts +0 -13
  477. package/@types/components/SummaryCard.d.ts +0 -6
  478. package/@types/components/SummaryList.d.ts +0 -14
  479. package/@types/components/Table.d.ts +0 -8
  480. package/@types/components/Tabs.d.ts +0 -21
  481. package/@types/components/Tag.d.ts +0 -5
  482. package/@types/components/TaskList.d.ts +0 -22
  483. package/@types/components/TextInput.d.ts +0 -12
  484. package/@types/components/Textarea.d.ts +0 -4
  485. package/@types/components/WarningText.d.ts +0 -5
  486. package/@types/global.d.ts +0 -1
  487. package/@types/sgds.d.ts +0 -49
  488. package/dist/index.d.ts +0 -4
  489. package/dist/index.js +0 -40
  490. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,5 +1,6 @@
1
+ import { DatePickerProps } from './types';
1
2
  declare const DatePicker: {
2
- ({ className, dateSelectCallback, disabledDates, errorMessage, hasError, hintText, id, iconPath, label, maxDate, minDate, multiple, name, onBlur, onChange, value, width, ...props }: SGDS.Component.DatePicker): import("react").JSX.Element;
3
+ ({ className, dateSelectCallback, disabledDates, errorMessage, hasError, hintText, id, label, maxDate, minDate, multiple, name, onBlur, onChange, value, width, ...props }: DatePickerProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default DatePicker;
@@ -4,20 +4,20 @@ 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 date_picker_1 = __importDefault(require("@scottish-government/design-system/src/components/date-picker/date-picker"));
9
8
  const ErrorMessage_1 = __importDefault(require("../ErrorMessage"));
10
9
  const TextInput_1 = __importDefault(require("../TextInput"));
11
- const DatePicker = ({ className, dateSelectCallback, disabledDates, errorMessage, hasError, hintText, id, iconPath = './', label, maxDate, minDate, multiple, name, onBlur, onChange, value, width = 'fixed-10', ...props }) => {
10
+ const clsx_1 = __importDefault(require("clsx"));
11
+ const DatePicker = ({ className, dateSelectCallback, disabledDates, errorMessage, hasError, hintText, id, label, maxDate, minDate, multiple, name, onBlur, onChange, value, width = 'fixed-10', ...props }) => {
12
12
  const ref = (0, react_1.useRef)(null);
13
13
  (0, react_1.useEffect)(() => {
14
+ /* istanbul ignore else */
14
15
  if (ref.current) {
15
16
  new date_picker_1.default(ref.current, {
16
- dateSelectCallback,
17
- imagePath: iconPath
17
+ dateSelectCallback
18
18
  }).init();
19
19
  }
20
- }, [ref, dateSelectCallback, iconPath]);
20
+ }, [ref, dateSelectCallback]);
21
21
  function handleBlur(event) {
22
22
  if (typeof onBlur === 'function') {
23
23
  onBlur(event);
@@ -28,11 +28,11 @@ const DatePicker = ({ className, dateSelectCallback, disabledDates, errorMessage
28
28
  onChange(event);
29
29
  }
30
30
  }
31
- return (<div className={[
31
+ return (<div className={(0, clsx_1.default)([
32
32
  "ds_datepicker",
33
33
  multiple && "ds_datepicker--multiple",
34
34
  className
35
- ].join(' ')} data-disableddates={disabledDates} data-maxdate={maxDate} data-mindate={minDate} data-module="ds-datepicker" ref={ref} {...props}>
35
+ ])} data-disableddates={disabledDates} data-maxdate={maxDate} data-mindate={minDate} data-module="ds-datepicker" ref={ref} {...props}>
36
36
  {(multiple ? (<fieldset className="ds_datepicker__input-wrapper">
37
37
  <legend>{label}</legend>
38
38
  {errorMessage && <ErrorMessage_1.default>{errorMessage}</ErrorMessage_1.default>}
@@ -0,0 +1,18 @@
1
+ import { InputWidth } from "../../shared-types";
2
+ export interface DatePickerProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ dateSelectCallback?: (date: Date) => void;
4
+ disabledDates?: string;
5
+ hasError?: boolean;
6
+ errorMessage?: string | React.ReactNode;
7
+ id: string;
8
+ hintText?: string | React.ReactNode;
9
+ label: string;
10
+ maxDate?: string;
11
+ minDate?: string;
12
+ isMultiple?: boolean;
13
+ name?: string;
14
+ onBlur?: React.EventHandler<React.FocusEvent>;
15
+ onChange?: React.EventHandler<React.FormEvent>;
16
+ value?: string;
17
+ width?: InputWidth;
18
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { DetailsProps } from "./types";
1
2
  declare const Details: {
2
- ({ children, className, summary, ...props }: SGDS.Component.Details): import("react").JSX.Element;
3
+ ({ children, className, summary, ...props }: DetailsProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default Details;
@@ -1,10 +1,14 @@
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 Details = ({ children, className, summary, ...props }) => {
4
- return (<details className={[
8
+ return (<details className={(0, clsx_1.default)([
5
9
  "ds_details",
6
10
  className
7
- ].join(' ')} {...props}>
11
+ ])} {...props}>
8
12
  <summary className="ds_details__summary">
9
13
  {summary}
10
14
  </summary>
@@ -0,0 +1,4 @@
1
+ export interface DetailsProps extends React.AllHTMLAttributes<HTMLDetailsElement> {
2
+ title?: string;
3
+ summary: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { ErrorMessageProps } from "./types";
1
2
  declare const ErrorMessage: {
2
- ({ children, className, id, ...props }: SGDS.Component.ErrorMessage): import("react").JSX.Element;
3
+ ({ children, className, id, ...props }: ErrorMessageProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default ErrorMessage;
@@ -1,10 +1,14 @@
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 ErrorMessage = ({ children, className, id, ...props }) => {
4
- return (<p className={[
8
+ return (<p className={(0, clsx_1.default)([
5
9
  'ds_question__error-message',
6
10
  className
7
- ].join(' ')} id={id} {...props}>
11
+ ])} id={id} {...props}>
8
12
  {children}
9
13
  </p>);
10
14
  };
@@ -0,0 +1,3 @@
1
+ export interface ErrorMessageProps extends React.AllHTMLAttributes<HTMLElement> {
2
+ id?: string;
3
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,8 +1,9 @@
1
+ import { ErrorSummaryItemProps, ErrorSummaryProps } from './types';
1
2
  declare const ErrorSummary: {
2
- ({ children, className, title, ...props }: SGDS.Component.ErrorSummary): import("react").JSX.Element;
3
+ ({ children, className, title, ...props }: ErrorSummaryProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  Item: {
5
- ({ children, fragmentId, linkComponent }: SGDS.Component.ErrorSummary.Item): import("react").JSX.Element;
6
+ ({ children, fragmentId, linkComponent }: ErrorSummaryItemProps): import("react").JSX.Element;
6
7
  displayName: string;
7
8
  };
8
9
  };
@@ -1,6 +1,10 @@
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
6
  const react_1 = require("react");
7
+ const clsx_1 = __importDefault(require("clsx"));
4
8
  const ErrorSummaryItem = ({ children, fragmentId, linkComponent }) => {
5
9
  const HREF = '#' + fragmentId;
6
10
  function processChildren(children) {
@@ -20,10 +24,10 @@ const ErrorSummaryItem = ({ children, fragmentId, linkComponent }) => {
20
24
  };
21
25
  const ErrorSummary = ({ children, className, title = 'There is a problem', ...props }) => {
22
26
  const summaryTitleId = (0, react_1.useId)();
23
- return (<div className={[
27
+ return (<div className={(0, clsx_1.default)([
24
28
  'ds_error-summary',
25
29
  className
26
- ].join(' ')} aria-labelledby={summaryTitleId} role="alert" {...props}>
30
+ ])} aria-labelledby={summaryTitleId} role="alert" {...props}>
27
31
  <h2 className="ds_error-summary__title" id={summaryTitleId}>{title}</h2>
28
32
 
29
33
  <ul className="ds_error-summary__list">
@@ -0,0 +1,8 @@
1
+ import { LinkComponent } from '../../shared-types';
2
+ export interface ErrorSummaryItemProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ fragmentId: string;
4
+ linkComponent?: LinkComponent;
5
+ }
6
+ export interface ErrorSummaryProps extends React.AllHTMLAttributes<HTMLElement> {
7
+ title: string;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +1,14 @@
1
+ import React from 'react';
2
+ import { FeatureHeaderProps, FeatureHeaderPrimaryProps } from './types';
1
3
  declare const FeatureHeader: {
2
- ({ backgroundColour, children, className, isFullWidth, isTopAligned, isWideText, ...props }: any): import("react").JSX.Element;
4
+ ({ backgroundColor, children, className, hasCoverImage, hasNoImagePadding, id, isFullWidth, isWideText, isTopAlignImage, tagName, ...props }: FeatureHeaderProps): React.JSX.Element;
3
5
  displayName: string;
4
- Content: {
5
- ({ children, className, ...props }: any): import("react").JSX.Element;
6
+ Primary: {
7
+ ({ children, title, ...props }: FeatureHeaderPrimaryProps): React.JSX.Element;
6
8
  displayName: string;
7
9
  };
8
- Media: {
9
- ({ children, className, isCover, noPadding, ...props }: any): import("react").JSX.Element;
10
+ Secondary: {
11
+ ({ children, ...props }: React.AllHTMLAttributes<HTMLDivElement>): React.JSX.Element;
10
12
  displayName: string;
11
13
  };
12
14
  };
@@ -1,70 +1,107 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const ConditionalWrapper_1 = __importDefault(require("../../common/ConditionalWrapper"));
7
- const Content = ({ children, className, ...props } /* SGDS.Component.FeatureHeader.Primary*/) => {
8
- return (<div className={['ds_feature-header__primary', className].join(' ')} {...props}>
39
+ const react_1 = __importStar(require("react"));
40
+ const common_1 = require("../../common");
41
+ const clsx_1 = __importDefault(require("clsx"));
42
+ const FeatureHeaderSettingsContext = (0, react_1.createContext)({
43
+ hasCoverImage: undefined,
44
+ hasNoImagePadding: undefined
45
+ });
46
+ const Primary = ({ children, title, ...props }) => {
47
+ return (<div className="ds_feature-header__primary" {...props}>
48
+ <h1 className="ds_feature-header__title">
49
+ {title}
50
+ </h1>
9
51
  {children}
10
52
  </div>);
11
53
  };
12
- const Media = ({ children, className, isCover, noPadding, ...props } /* SGDS.Component.FeatureHeader.Secondary*/) => {
13
- return (<div className={[
54
+ const Secondary = ({ children, ...props }) => {
55
+ const hasCoverImage = (0, react_1.useContext)(FeatureHeaderSettingsContext).hasCoverImage;
56
+ const hasNoImagePadding = (0, react_1.useContext)(FeatureHeaderSettingsContext).hasNoImagePadding;
57
+ children = react_1.Children.map(children, child => {
58
+ const thisChild = child;
59
+ if (thisChild && ['img', 'svg', 'picture'].includes(thisChild.type)) {
60
+ return react_1.default.cloneElement(thisChild, { className: 'ds_feature-header__image' });
61
+ }
62
+ else {
63
+ return child;
64
+ }
65
+ });
66
+ return (<div className={(0, clsx_1.default)([
14
67
  'ds_feature-header__secondary',
15
- isCover && 'ds_feature-header__secondary--cover',
16
- noPadding && 'ds_feature-header__secondary--no-padding',
17
- className
18
- ].join(' ')} {...props}>
68
+ hasCoverImage && 'ds_feature-header__secondary--cover',
69
+ hasNoImagePadding && 'ds_feature-header__secondary--no-padding'
70
+ ])} {...props}>
19
71
  {children}
20
72
  </div>);
21
73
  };
22
- const FeatureHeader = ({ backgroundColour = 'NONE', children, className, isFullWidth, isTopAligned, isWideText, ...props } /* SGDS.Component.FeatureHeader*/) => {
23
- let backgroundColorClass = '';
24
- switch (backgroundColour) {
25
- case 'BRAND':
26
- backgroundColorClass = 'ds_feature-header--background';
27
- break;
28
- case 'SECONDARY':
29
- backgroundColorClass = 'ds_feature-header--background-secondary';
30
- break;
31
- case 'TERTIARY':
32
- backgroundColorClass = 'ds_feature-header--background-tertiary';
33
- break;
34
- case 'NONE':
35
- break;
36
- default:
37
- backgroundColorClass = '';
38
- break;
74
+ const FeatureHeader = ({ backgroundColor, children, className, hasCoverImage, hasNoImagePadding, id, isFullWidth, isWideText, isTopAlignImage, tagName = 'div', ...props }) => {
75
+ let backgroundColorClassName;
76
+ if (backgroundColor === 'secondary') {
77
+ backgroundColorClassName = 'ds_feature-header--background-secondary';
78
+ }
79
+ else if (backgroundColor === 'tertiary') {
80
+ backgroundColorClassName = 'ds_feature-header--background-tertiary';
81
+ }
82
+ else if (backgroundColor === 'brand') {
83
+ backgroundColorClassName = 'ds_feature-header--background';
39
84
  }
40
- return (<header className={[
85
+ return (<common_1.WrapperTag className={(0, clsx_1.default)([
41
86
  'ds_feature-header',
42
87
  isFullWidth && 'ds_feature-header--fullwidth',
43
- isTopAligned && 'ds_feature-header--top',
44
88
  isWideText && 'ds_feature-header--wide',
45
- backgroundColorClass,
89
+ isTopAlignImage && 'ds_feature-header--top',
90
+ backgroundColorClassName && backgroundColorClassName,
46
91
  className
47
- ].join(' ')} {...props}>
48
- <ConditionalWrapper_1.default condition={isFullWidth} wrapper={(children) => <div className="ds_wrapper">{children}</div>}>
49
- {children}
50
- </ConditionalWrapper_1.default>
51
- </header>);
92
+ ])} id={id} tagName={tagName} {...props}>
93
+ <common_1.ConditionalWrapper condition={!!isFullWidth} wrapper={(children) => <div className="ds_wrapper">{children}</div>}>
94
+ <FeatureHeaderSettingsContext value={{
95
+ hasCoverImage, hasNoImagePadding
96
+ }}>
97
+ {children}
98
+ </FeatureHeaderSettingsContext>
99
+ </common_1.ConditionalWrapper>
100
+ </common_1.WrapperTag>);
52
101
  };
53
102
  FeatureHeader.displayName = 'FeatureHeader';
54
- Content.displayName = 'FeatureHeader.Content';
55
- Media.displayName = 'FeatureHeader.Media';
56
- FeatureHeader.Content = Content;
57
- FeatureHeader.Media = Media;
103
+ Primary.displayName = 'FeatureHeader.Primary';
104
+ Secondary.displayName = 'FeatureHeader.Secondary';
105
+ FeatureHeader.Primary = Primary;
106
+ FeatureHeader.Secondary = Secondary;
58
107
  exports.default = FeatureHeader;
59
- /*
60
-
61
- <FeatureHeader backgroundColour="NONE/BRAND/SECONDARY/TERTIARY" isFullWidth isWideText isTopAligned>
62
- <FeatureHeader.Content>
63
- {children}
64
- </FeatureHeader.Content>
65
- <FeatureHeader.Media noPadding isCover>
66
- {children}
67
- </FeatureHeader.Media>
68
- </FeatureHeader>
69
-
70
- */
@@ -0,0 +1,12 @@
1
+ export interface FeatureHeaderPrimaryProps extends React.AllHTMLAttributes<HTMLElement> {
2
+ title: string;
3
+ }
4
+ export interface FeatureHeaderProps extends React.AllHTMLAttributes<HTMLElement> {
5
+ backgroundColor?: 'secondary' | 'tertiary' | 'brand';
6
+ hasCoverImage?: boolean;
7
+ hasNoImagePadding?: boolean;
8
+ isFullWidth?: boolean;
9
+ isWideText?: boolean;
10
+ isTopAlignImage?: boolean;
11
+ tagName?: 'div' | 'header';
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { FileDownloadProps } from './types';
1
2
  declare const FileDownload: {
2
- ({ className, cover, icon, isHighlighted, fileSize, fileType, fileUrl, title, ...props }: SGDS.Component.FileDownload): import("react").JSX.Element;
3
+ ({ className, cover, icon, isHighlighted, fileSize, fileType, fileUrl, title, ...props }: FileDownloadProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default FileDownload;
@@ -5,18 +5,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = require("react");
7
7
  const FileIcon_1 = __importDefault(require("../../common/FileIcon"));
8
+ const clsx_1 = __importDefault(require("clsx"));
8
9
  const FileDownload = ({ className, cover, icon = 'Generic', isHighlighted, fileSize, fileType, fileUrl, title, ...props }) => {
9
10
  const hasMetadata = !!fileType || !!fileSize;
10
11
  const metaContainerId = `file-download-${(0, react_1.useId)()}`;
11
- return (<div className={[
12
+ return (<div className={(0, clsx_1.default)([
12
13
  'ds_file-download',
13
14
  isHighlighted && 'ds_file-download--highlighted',
14
15
  className
15
- ].join(' ')} {...props}>
16
+ ])} {...props}>
16
17
  <div className="ds_file-download__thumbnail">
17
18
  <a className="ds_file-download__thumbnail-link" aria-hidden="true" tabIndex={-1} href={fileUrl}>
18
19
  {cover ?
19
- <img alt="" className="ds_file-download__thumbnail-image" src={cover}/>
20
+ <img alt="" className="ds_file-download__thumbnail-image ds_file-download__thumbnail-image--outlined" src={cover}/>
20
21
  :
21
22
  <FileIcon_1.default ariaLabel="" className="ds_file-download__thumbnail-image" icon={icon}/>}
22
23
  </a>
@@ -0,0 +1,10 @@
1
+ import { DocumentIconName } from '../../shared-types';
2
+ export interface FileDownloadProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ cover?: string;
4
+ fileSize?: string;
5
+ fileType?: string;
6
+ fileUrl: string;
7
+ icon?: DocumentIconName;
8
+ isHighlighted?: boolean;
9
+ title: string;
10
+ }
@@ -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 { HideThisPageProps } from './types';
2
3
  declare const HideThisPage: {
3
- ({ className, escapeUrl, ...props }: SGDS.Component.HideThisPage): React.JSX.Element;
4
+ ({ className, escapeUrl, ...props }: HideThisPageProps): React.JSX.Element;
4
5
  displayName: string;
5
6
  };
6
7
  export default HideThisPage;
@@ -37,13 +37,14 @@ 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 hide_this_page_1 = __importDefault(require("@scottish-government/design-system/src/components/hide-this-page/hide-this-page"));
41
+ const clsx_1 = __importDefault(require("clsx"));
42
42
  const HideThisPage = ({ className, escapeUrl = 'https://www.bbc.co.uk/weather', ...props }) => {
43
43
  const ref = (0, react_1.useRef)(null);
44
44
  (0, react_1.useEffect)(() => {
45
+ /* istanbul ignore else */
45
46
  if (ref.current) {
46
- new hide_this_page_1.default().init();
47
+ new hide_this_page_1.default(ref.current).init();
47
48
  const HIDE_THIS_PAGE_DIV_ID = 'hide-this-page-instruction';
48
49
  if (!document.getElementById(HIDE_THIS_PAGE_DIV_ID)) {
49
50
  const htpDiv = document.createElement('div');
@@ -56,10 +57,10 @@ const HideThisPage = ({ className, escapeUrl = 'https://www.bbc.co.uk/weather',
56
57
  document.body.classList.add('ds_has-hide-page');
57
58
  }
58
59
  }, [ref]);
59
- return (<div className={[
60
+ return (<div className={(0, clsx_1.default)([
60
61
  'ds_hide-page',
61
62
  className
62
- ].join(' ')} ref={ref} {...props}>
63
+ ])} ref={ref} {...props}>
63
64
  <a href={escapeUrl} className="ds_hide-page__button ds_button js-hide-page">
64
65
  <strong>Hide this page</strong>
65
66
  <span className="visually-hidden js-enabled-text">Or press escape key to hide this page</span>
@@ -0,0 +1,3 @@
1
+ export interface HideThisPageProps extends React.AllHTMLAttributes<HTMLElement> {
2
+ escapeUrl?: string;
3
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,5 @@
1
1
  declare const InsetText: {
2
- ({ children, className, ...props }: SGDS.Component.InsetText): import("react").JSX.Element;
2
+ ({ children, className, ...props }: React.AllHTMLAttributes<HTMLElement>): import("react").JSX.Element;
3
3
  displayName: string;
4
4
  };
5
5
  export default InsetText;
@@ -1,10 +1,14 @@
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 InsetText = ({ children, className, ...props }) => {
4
- return (<div className={[
8
+ return (<div className={(0, clsx_1.default)([
5
9
  'ds_inset-text',
6
10
  className
7
- ].join(' ')} {...props}>
11
+ ])} {...props}>
8
12
  <div className="ds_inset-text__text">
9
13
  {children}
10
14
  </div>
@@ -1,8 +1,9 @@
1
+ import { AbstractNotificationBannerProps } from '../../common/AbstractNotificationBanner/types';
1
2
  declare const NotificationBanner: {
2
- ({ children, className, hasColourIcon, hasIcon, hasInverseIcon, isDismissable, title, ...props }: SGDS.Common.AbstractNotificationBanner): import("react").JSX.Element;
3
+ ({ children, className, hasColourIcon, hasIcon, hasInverseIcon, isDismissable, 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
  };
@@ -5,19 +5,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = require("react");
7
7
  const AbstractNotificationBanner_1 = __importDefault(require("../../common/AbstractNotificationBanner"));
8
- // @ts-ignore
9
8
  const notification_banner_1 = __importDefault(require("@scottish-government/design-system/src/components/notification-banner/notification-banner"));
10
- const NotificationBanner = ({ children, className, hasColourIcon, hasIcon, hasInverseIcon, isDismissable, title, ...props }) => {
9
+ const clsx_1 = __importDefault(require("clsx"));
10
+ const NotificationBanner = ({ children, className, hasColourIcon, hasIcon, hasInverseIcon, isDismissable, title = 'Information', ...props }) => {
11
11
  const ref = (0, react_1.useRef)(null);
12
12
  (0, react_1.useEffect)(() => {
13
+ /* istanbul ignore else */
13
14
  if (ref.current) {
14
15
  new notification_banner_1.default(ref.current).init();
15
16
  }
16
17
  }, [ref]);
17
- return (<AbstractNotificationBanner_1.default className={[
18
+ return (<AbstractNotificationBanner_1.default className={(0, clsx_1.default)([
18
19
  'ds_reversed',
19
20
  className
20
- ].join(' ')} isDismissable={isDismissable} icon={hasIcon ? "PriorityHigh" : undefined} hasColourIcon={hasColourIcon} hasInverseIcon={hasInverseIcon} ref={ref} title="Information" {...props}>
21
+ ])} isDismissable={isDismissable} icon={hasIcon ? "PriorityHigh" : undefined} hasColourIcon={hasColourIcon} hasInverseIcon={hasInverseIcon} ref={ref} title={title} {...props}>
21
22
  {children}
22
23
  </AbstractNotificationBanner_1.default>);
23
24
  };
@@ -1,5 +1,6 @@
1
+ import { NotificationPanelProps } from './types';
1
2
  declare const NotificationPanel: {
2
- ({ ariaLive, children, className, headingLevel, title, ...props }: SGDS.Component.NotificationPanel): import("react").JSX.Element;
3
+ ({ ariaLive, children, className, headingLevel, title, ...props }: NotificationPanelProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default NotificationPanel;
@@ -4,11 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const WrapperTag_1 = __importDefault(require("../../common/WrapperTag"));
7
+ const clsx_1 = __importDefault(require("clsx"));
7
8
  const NotificationPanel = function ({ ariaLive, children, className, headingLevel = 'h1', title, ...props }) {
8
- return (<div aria-live={ariaLive} className={[
9
+ return (<div aria-live={ariaLive} className={(0, clsx_1.default)([
9
10
  'ds_notification-panel',
10
11
  className
11
- ].join(' ')} {...props}>
12
+ ])} {...props}>
12
13
  <WrapperTag_1.default className="ds_notification-panel__title" tagName={headingLevel}>
13
14
  {title}
14
15
  </WrapperTag_1.default>
@@ -0,0 +1,6 @@
1
+ import { HeadingLevel } from '../../shared-types';
2
+ export interface NotificationPanelProps extends React.AllHTMLAttributes<HTMLDivElement> {
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 });
@@ -0,0 +1,6 @@
1
+ import { NotificationTagProps } from "./types";
2
+ declare const NotificationTag: {
3
+ ({ children, className, description, isHidden, label, ...props }: NotificationTagProps): import("react").JSX.Element;
4
+ displayName: string;
5
+ };
6
+ export default NotificationTag;
@@ -0,0 +1,20 @@
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 clsx_1 = __importDefault(require("clsx"));
7
+ const NotificationTag = ({ children, className, description, isHidden, label, ...props }) => {
8
+ return (<span className="ds_notification-tag__wrapper">
9
+ {children}
10
+ <span aria-hidden={isHidden ? "true" : undefined} className={(0, clsx_1.default)([
11
+ 'ds_notification-tag',
12
+ !label && 'ds_notification-tag--dot',
13
+ className
14
+ ])} {...props}>
15
+ {label} {description && <span className="visually-hidden">{description}</span>}
16
+ </span>
17
+ </span>);
18
+ };
19
+ NotificationTag.displayName = 'NotificationTag';
20
+ exports.default = NotificationTag;