@scottish-government/designsystem-react 0.12.0 → 0.13.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 (457) hide show
  1. package/.storybook/main.ts +6 -6
  2. package/.storybook/sgdsArgTypes.ts +84 -43
  3. package/CHANGELOG.md +27 -1
  4. package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.d.ts +9 -0
  5. package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.jsx +62 -0
  6. package/dist/common/AbstractNotificationBanner/index.d.ts +1 -0
  7. package/dist/common/AbstractNotificationBanner/index.js +8 -0
  8. package/dist/common/ActionLink/ActionLink.d.ts +5 -0
  9. package/dist/common/ActionLink/ActionLink.jsx +19 -0
  10. package/dist/common/ActionLink/index.d.ts +1 -0
  11. package/dist/common/ActionLink/index.js +8 -0
  12. package/dist/common/ConditionalWrapper/ConditionalWrapper.d.ts +8 -0
  13. package/dist/common/ConditionalWrapper/ConditionalWrapper.jsx +8 -0
  14. package/dist/common/ConditionalWrapper/index.d.ts +1 -0
  15. package/dist/common/ConditionalWrapper/index.js +8 -0
  16. package/dist/common/FileIcon/FileIcon.d.ts +6 -0
  17. package/dist/common/FileIcon/FileIcon.jsx +46 -0
  18. package/dist/common/FileIcon/index.d.ts +1 -0
  19. package/dist/common/FileIcon/index.js +8 -0
  20. package/dist/common/HintText/HintText.d.ts +5 -0
  21. package/dist/common/HintText/HintText.jsx +9 -0
  22. package/dist/common/HintText/index.d.ts +1 -0
  23. package/dist/common/HintText/index.js +8 -0
  24. package/dist/common/Icon/Icon.d.ts +6 -0
  25. package/dist/common/Icon/Icon.jsx +51 -0
  26. package/dist/common/Icon/index.d.ts +1 -0
  27. package/dist/common/Icon/index.js +8 -0
  28. package/dist/common/ScreenReaderText/ScreenReaderText.d.ts +5 -0
  29. package/dist/common/ScreenReaderText/ScreenReaderText.jsx +9 -0
  30. package/dist/common/ScreenReaderText/index.d.ts +1 -0
  31. package/dist/common/ScreenReaderText/index.js +8 -0
  32. package/dist/common/WrapperTag/WrapperTag.d.ts +8 -0
  33. package/dist/common/WrapperTag/WrapperTag.jsx +11 -0
  34. package/dist/common/WrapperTag/index.d.ts +1 -0
  35. package/dist/common/WrapperTag/index.js +8 -0
  36. package/dist/common/index.d.ts +8 -0
  37. package/dist/common/index.js +22 -0
  38. package/dist/components/Accordion/index.d.ts +1 -0
  39. package/dist/components/Accordion/index.js +8 -0
  40. package/dist/components/AspectBox/index.d.ts +1 -0
  41. package/dist/components/AspectBox/index.js +8 -0
  42. package/dist/components/BackToTop/index.d.ts +1 -0
  43. package/dist/components/BackToTop/index.js +8 -0
  44. package/dist/components/Breadcrumbs/index.d.ts +1 -0
  45. package/dist/components/Breadcrumbs/index.js +8 -0
  46. package/dist/components/Button/ButtonGroup.d.ts +5 -0
  47. package/dist/components/Button/ButtonGroup.jsx +13 -0
  48. package/dist/components/Button/index.d.ts +2 -0
  49. package/dist/components/Button/index.js +10 -0
  50. package/dist/components/CategoryItem/index.d.ts +1 -0
  51. package/dist/components/CategoryItem/index.js +8 -0
  52. package/dist/components/CategoryList/index.d.ts +1 -0
  53. package/dist/components/CategoryList/index.js +8 -0
  54. package/dist/components/Checkbox/index.d.ts +2 -0
  55. package/dist/components/Checkbox/index.js +10 -0
  56. package/dist/components/ConfirmationMessage/index.d.ts +1 -0
  57. package/dist/components/ConfirmationMessage/index.js +8 -0
  58. package/dist/components/ContentsNav/index.d.ts +1 -0
  59. package/dist/components/ContentsNav/index.js +8 -0
  60. package/dist/components/CookieBanner/index.d.ts +1 -0
  61. package/dist/components/CookieBanner/index.js +8 -0
  62. package/dist/components/DatePicker/DatePicker.jsx +2 -2
  63. package/dist/components/DatePicker/index.d.ts +1 -0
  64. package/dist/components/DatePicker/index.js +8 -0
  65. package/dist/components/Details/index.d.ts +1 -0
  66. package/dist/components/Details/index.js +8 -0
  67. package/dist/components/ErrorMessage/index.d.ts +1 -0
  68. package/dist/components/ErrorMessage/index.js +8 -0
  69. package/dist/components/ErrorSummary/index.d.ts +1 -0
  70. package/dist/components/ErrorSummary/index.js +8 -0
  71. package/dist/components/FeatureHeader/FeatureHeader.d.ts +13 -0
  72. package/dist/components/FeatureHeader/FeatureHeader.jsx +70 -0
  73. package/dist/components/FeatureHeader/index.d.ts +1 -0
  74. package/dist/components/FeatureHeader/index.js +8 -0
  75. package/dist/components/FileDownload/index.d.ts +1 -0
  76. package/dist/components/FileDownload/index.js +8 -0
  77. package/dist/components/HideThisPage/index.d.ts +1 -0
  78. package/dist/components/HideThisPage/index.js +8 -0
  79. package/dist/components/InsetText/index.d.ts +1 -0
  80. package/dist/components/InsetText/index.js +8 -0
  81. package/dist/components/NotificationBanner/index.d.ts +1 -0
  82. package/dist/components/NotificationBanner/index.js +8 -0
  83. package/dist/components/NotificationPanel/index.d.ts +1 -0
  84. package/dist/components/NotificationPanel/index.js +8 -0
  85. package/dist/components/PageHeader/index.d.ts +1 -0
  86. package/dist/components/PageHeader/index.js +8 -0
  87. package/dist/components/PageMetadata/index.d.ts +1 -0
  88. package/dist/components/PageMetadata/index.js +8 -0
  89. package/dist/components/Pagination/index.d.ts +1 -0
  90. package/dist/components/Pagination/index.js +8 -0
  91. package/dist/components/PhaseBanner/index.d.ts +1 -0
  92. package/dist/components/PhaseBanner/index.js +8 -0
  93. package/dist/components/Question/Question.jsx +1 -1
  94. package/dist/components/Question/index.d.ts +1 -0
  95. package/dist/components/Question/index.js +8 -0
  96. package/dist/components/RadioButton/index.d.ts +2 -0
  97. package/dist/components/RadioButton/index.js +10 -0
  98. package/dist/components/SearchFacets/index.d.ts +1 -0
  99. package/dist/components/SearchFacets/index.js +8 -0
  100. package/dist/components/SearchFilters/SearchFilters.jsx +6 -6
  101. package/dist/components/SearchFilters/index.d.ts +1 -0
  102. package/dist/components/SearchFilters/index.js +8 -0
  103. package/dist/components/SearchResult/SearchResult.jsx +2 -2
  104. package/dist/components/SearchResult/index.d.ts +1 -0
  105. package/dist/components/SearchResult/index.js +8 -0
  106. package/dist/components/SearchSort/SearchSort.jsx +2 -2
  107. package/dist/components/SearchSort/index.d.ts +1 -0
  108. package/dist/components/SearchSort/index.js +8 -0
  109. package/dist/components/Select/Select.jsx +1 -1
  110. package/dist/components/Select/index.d.ts +1 -0
  111. package/dist/components/Select/index.js +8 -0
  112. package/dist/components/SequentialNavigation/index.d.ts +1 -0
  113. package/dist/components/SequentialNavigation/index.js +8 -0
  114. package/dist/components/SideNavigation/index.d.ts +1 -0
  115. package/dist/components/SideNavigation/index.js +8 -0
  116. package/dist/components/SiteFooter/index.d.ts +1 -0
  117. package/dist/components/SiteFooter/index.js +8 -0
  118. package/dist/components/SiteHeader/SiteHeader.jsx +1 -1
  119. package/dist/components/SiteHeader/index.d.ts +1 -0
  120. package/dist/components/SiteHeader/index.js +8 -0
  121. package/dist/components/SiteNavigation/index.d.ts +1 -0
  122. package/dist/components/SiteNavigation/index.js +8 -0
  123. package/dist/components/SiteSearch/SiteSearch.jsx +1 -1
  124. package/dist/components/SiteSearch/index.d.ts +1 -0
  125. package/dist/components/SiteSearch/index.js +8 -0
  126. package/dist/components/SkipLinks/index.d.ts +1 -0
  127. package/dist/components/SkipLinks/index.js +8 -0
  128. package/dist/components/SummaryCard/index.d.ts +1 -0
  129. package/dist/components/SummaryCard/index.js +8 -0
  130. package/dist/components/SummaryList/index.d.ts +1 -0
  131. package/dist/components/SummaryList/index.js +8 -0
  132. package/dist/components/Table/index.d.ts +1 -0
  133. package/dist/components/Table/index.js +8 -0
  134. package/dist/components/Tabs/index.d.ts +1 -0
  135. package/dist/components/Tabs/index.js +8 -0
  136. package/dist/components/Tag/index.d.ts +1 -0
  137. package/dist/components/Tag/index.js +8 -0
  138. package/dist/components/TaskList/TaskList.jsx +1 -1
  139. package/dist/components/TaskList/index.d.ts +1 -0
  140. package/dist/components/TaskList/index.js +8 -0
  141. package/dist/components/TextInput/TextInput.jsx +2 -2
  142. package/dist/components/TextInput/index.d.ts +1 -0
  143. package/dist/components/TextInput/index.js +8 -0
  144. package/dist/components/Textarea/Textarea.jsx +1 -1
  145. package/dist/components/Textarea/index.d.ts +1 -0
  146. package/dist/components/Textarea/index.js +8 -0
  147. package/dist/components/WarningText/index.d.ts +1 -0
  148. package/dist/components/WarningText/index.js +8 -0
  149. package/dist/components/index.d.ts +46 -0
  150. package/dist/components/index.js +101 -0
  151. package/dist/hooks/index.d.ts +1 -0
  152. package/dist/hooks/index.js +8 -0
  153. package/dist/hooks/useTracking/index.d.ts +1 -0
  154. package/dist/hooks/useTracking/index.js +8 -0
  155. package/dist/hooks/useTracking/useTracking.d.ts +1 -0
  156. package/dist/hooks/useTracking/useTracking.js +21 -0
  157. package/dist/images/index.d.ts +2 -0
  158. package/dist/images/index.js +38 -0
  159. package/eslint.config.mjs +32 -0
  160. package/package.json +29 -22
  161. package/src/common/{AbstractNotificationBanner.test.tsx → AbstractNotificationBanner/AbstractNotificationBanner.test.tsx} +1 -1
  162. package/src/common/{AbstractNotificationBanner.tsx → AbstractNotificationBanner/AbstractNotificationBanner.tsx} +7 -6
  163. package/src/common/AbstractNotificationBanner/index.ts +1 -0
  164. package/src/common/AbstractNotificationBanner/types.ts +15 -0
  165. package/src/common/{ActionLink.tsx → ActionLink/ActionLink.tsx} +3 -1
  166. package/src/common/ActionLink/index.ts +1 -0
  167. package/src/common/ActionLink/types.ts +8 -0
  168. package/src/common/ConditionalWrapper/ConditionalWrapper.tsx +17 -0
  169. package/src/common/ConditionalWrapper/index.ts +1 -0
  170. package/src/common/ConditionalWrapper/types.ts +4 -0
  171. package/src/common/{FileIcon.tsx → FileIcon/FileIcon.tsx} +3 -2
  172. package/src/common/FileIcon/index.ts +1 -0
  173. package/src/common/FileIcon/types.ts +7 -0
  174. package/src/common/{HintText.test.tsx → HintText/HintText.test.tsx} +3 -15
  175. package/src/common/{HintText.tsx → HintText/HintText.tsx} +4 -4
  176. package/src/common/HintText/index.ts +1 -0
  177. package/src/common/HintText/types.ts +4 -0
  178. package/src/common/{Icon.tsx → Icon/Icon.tsx} +3 -2
  179. package/src/common/Icon/index.ts +1 -0
  180. package/src/common/Icon/types.ts +9 -0
  181. package/src/common/{ScreenReaderText.tsx → ScreenReaderText/ScreenReaderText.tsx} +1 -1
  182. package/src/common/ScreenReaderText/index.ts +1 -0
  183. package/src/common/{WrapperTag.tsx → WrapperTag/WrapperTag.tsx} +5 -3
  184. package/src/common/WrapperTag/index.ts +1 -0
  185. package/src/common/WrapperTag/types.ts +3 -0
  186. package/src/common/index.ts +8 -0
  187. package/src/components/Accordion/Accordion.Item.stories.tsx +1 -5
  188. package/src/components/Accordion/Accordion.stories.tsx +5 -5
  189. package/src/components/Accordion/Accordion.tsx +5 -4
  190. package/src/components/Accordion/index.ts +1 -0
  191. package/src/components/Accordion/types.ts +13 -0
  192. package/src/components/AspectBox/AspectBox.stories.tsx +1 -2
  193. package/src/components/AspectBox/AspectBox.tsx +5 -4
  194. package/src/components/AspectBox/index.ts +1 -0
  195. package/src/components/AspectBox/types.ts +3 -0
  196. package/src/components/BackToTop/BackToTop.tsx +3 -2
  197. package/src/components/BackToTop/index.ts +1 -0
  198. package/src/components/BackToTop/types.ts +3 -0
  199. package/src/components/Breadcrumbs/Breadcrumbs.tsx +4 -2
  200. package/src/components/Breadcrumbs/index.ts +1 -0
  201. package/src/components/Breadcrumbs/types.ts +6 -0
  202. package/src/components/Button/Button.tsx +2 -1
  203. package/src/components/{ButtonGroup → Button}/ButtonGroup.stories.tsx +1 -1
  204. package/src/components/{ButtonGroup → Button}/ButtonGroup.tsx +3 -1
  205. package/src/components/Button/index.ts +2 -0
  206. package/src/components/Button/types.ts +21 -0
  207. package/src/components/CategoryItem/CategoryItem.tsx +7 -4
  208. package/src/components/CategoryItem/index.ts +1 -0
  209. package/src/components/CategoryItem/types.ts +10 -0
  210. package/src/components/CategoryList/CategoryList.stories.tsx +1 -1
  211. package/src/components/CategoryList/CategoryList.test.tsx +1 -1
  212. package/src/components/CategoryList/CategoryList.tsx +4 -2
  213. package/src/components/CategoryList/index.ts +1 -0
  214. package/src/components/CategoryList/types.ts +5 -0
  215. package/src/components/Checkbox/Checkbox.stories.tsx +3 -3
  216. package/src/components/Checkbox/Checkbox.tsx +5 -4
  217. package/src/components/Checkbox/CheckboxGroup.tsx +3 -3
  218. package/src/components/Checkbox/index.ts +2 -0
  219. package/src/components/Checkbox/types.ts +9 -0
  220. package/src/components/ConfirmationMessage/ConfirmationMessage.tsx +2 -1
  221. package/src/components/ConfirmationMessage/index.ts +1 -0
  222. package/src/components/ConfirmationMessage/types.ts +7 -0
  223. package/src/components/ContentsNav/ContentsNav.stories.tsx +5 -1
  224. package/src/components/ContentsNav/ContentsNav.tsx +3 -2
  225. package/src/components/ContentsNav/index.ts +1 -0
  226. package/src/components/ContentsNav/types.ts +11 -0
  227. package/src/components/CookieBanner/CookieBanner.Buttons.stories.tsx +4 -4
  228. package/src/components/CookieBanner/CookieBanner.stories.tsx +7 -7
  229. package/src/components/CookieBanner/CookieBanner.test.tsx +6 -0
  230. package/src/components/CookieBanner/CookieBanner.tsx +13 -3
  231. package/src/components/CookieBanner/index.ts +1 -0
  232. package/src/components/DatePicker/DatePicker.test.tsx +0 -5
  233. package/src/components/DatePicker/DatePicker.tsx +5 -4
  234. package/src/components/DatePicker/index.ts +1 -0
  235. package/src/components/DatePicker/types.ts +20 -0
  236. package/src/components/Details/Details.stories.tsx +1 -1
  237. package/src/components/Details/Details.tsx +3 -1
  238. package/src/components/Details/index.ts +1 -0
  239. package/src/components/Details/types.ts +4 -0
  240. package/src/components/ErrorMessage/ErrorMessage.tsx +3 -1
  241. package/src/components/ErrorMessage/index.ts +1 -0
  242. package/src/components/ErrorMessage/types.ts +3 -0
  243. package/src/components/ErrorSummary/ErrorSummary.test.tsx +1 -1
  244. package/src/components/ErrorSummary/ErrorSummary.tsx +3 -2
  245. package/src/components/ErrorSummary/index.ts +1 -0
  246. package/src/components/ErrorSummary/types.ts +11 -0
  247. package/src/components/FileDownload/FileDownload.tsx +2 -1
  248. package/src/components/FileDownload/index.ts +1 -0
  249. package/src/components/FileDownload/types.ts +11 -0
  250. package/src/components/HideThisPage/HideThisPage.tsx +3 -2
  251. package/src/components/HideThisPage/index.ts +1 -0
  252. package/src/components/HideThisPage/types.ts +3 -0
  253. package/src/components/InsetText/InsetText.tsx +1 -1
  254. package/src/components/InsetText/index.ts +1 -0
  255. package/src/components/NotificationBanner/NotificationBanner.stories.tsx +2 -2
  256. package/src/components/NotificationBanner/NotificationBanner.tsx +5 -4
  257. package/src/components/NotificationBanner/index.ts +1 -0
  258. package/src/components/NotificationPanel/NotificationPanel.tsx +2 -1
  259. package/src/components/NotificationPanel/index.ts +1 -0
  260. package/src/components/NotificationPanel/types.ts +7 -0
  261. package/src/components/PageHeader/PageHeader.stories.tsx +1 -1
  262. package/src/components/PageHeader/PageHeader.tsx +3 -1
  263. package/src/components/PageHeader/index.ts +1 -0
  264. package/src/components/PageHeader/types.ts +5 -0
  265. package/src/components/PageMetadata/PageMetadata.stories.tsx +1 -1
  266. package/src/components/PageMetadata/PageMetadata.tsx +5 -3
  267. package/src/components/PageMetadata/index.ts +1 -0
  268. package/src/components/PageMetadata/types.ts +7 -0
  269. package/src/components/Pagination/Pagination.tsx +5 -3
  270. package/src/components/Pagination/index.ts +1 -0
  271. package/src/components/Pagination/types.ts +20 -0
  272. package/src/components/PhaseBanner/PhaseBanner.stories.tsx +1 -4
  273. package/src/components/PhaseBanner/PhaseBanner.tsx +2 -1
  274. package/src/components/PhaseBanner/index.ts +1 -0
  275. package/src/components/PhaseBanner/types.ts +3 -0
  276. package/src/components/Question/Question.stories.tsx +2 -3
  277. package/src/components/Question/Question.tsx +5 -4
  278. package/src/components/Question/index.ts +1 -0
  279. package/src/components/Question/types.ts +9 -0
  280. package/src/components/RadioButton/RadioButton.tsx +5 -4
  281. package/src/components/RadioButton/RadioGroup.stories.tsx +1 -2
  282. package/src/components/RadioButton/RadioGroup.test.tsx +1 -2
  283. package/src/components/RadioButton/RadioGroup.tsx +2 -1
  284. package/src/components/RadioButton/index.ts +2 -0
  285. package/src/components/RadioButton/types.ts +12 -0
  286. package/src/components/SearchFacets/SearchFacets.Group.stories.tsx +2 -3
  287. package/src/components/SearchFacets/SearchFacets.stories.tsx +1 -1
  288. package/src/components/SearchFacets/SearchFacets.tsx +7 -6
  289. package/src/components/SearchFacets/index.ts +1 -0
  290. package/src/components/SearchFacets/types.ts +14 -0
  291. package/src/components/SearchFilters/SearchFilters.Panel.stories.tsx +20 -9
  292. package/src/components/SearchFilters/SearchFilters.stories.tsx +3 -3
  293. package/src/components/SearchFilters/SearchFilters.test.tsx +1 -1
  294. package/src/components/SearchFilters/SearchFilters.tsx +8 -7
  295. package/src/components/SearchFilters/index.ts +1 -0
  296. package/src/components/SearchFilters/types.ts +14 -0
  297. package/src/components/SearchResult/SearchResult.stories.tsx +9 -10
  298. package/src/components/SearchResult/SearchResult.tsx +11 -10
  299. package/src/components/SearchResult/index.ts +1 -0
  300. package/src/components/SearchResult/types.ts +13 -0
  301. package/src/components/SearchSort/SearchSort.stories.tsx +2 -1
  302. package/src/components/SearchSort/SearchSort.tsx +4 -3
  303. package/src/components/SearchSort/index.ts +1 -0
  304. package/src/components/SearchSort/types.ts +7 -0
  305. package/src/components/Select/Select.tsx +6 -5
  306. package/src/components/Select/index.ts +1 -0
  307. package/src/components/Select/types.ts +7 -0
  308. package/src/components/SequentialNavigation/SequentialNavigation.tsx +6 -4
  309. package/src/components/SequentialNavigation/index.ts +1 -0
  310. package/src/components/SequentialNavigation/types.ts +12 -0
  311. package/src/components/SideNavigation/SideNavigation.tsx +5 -4
  312. package/src/components/SideNavigation/index.ts +1 -0
  313. package/src/components/SideNavigation/types.ts +16 -0
  314. package/src/components/SiteFooter/SiteFooter.tsx +7 -6
  315. package/src/components/SiteFooter/index.ts +1 -0
  316. package/src/components/SiteFooter/types.ts +20 -0
  317. package/src/components/SiteHeader/SiteHeader.stories.tsx +7 -6
  318. package/src/components/SiteHeader/SiteHeader.test.tsx +3 -3
  319. package/src/components/SiteHeader/SiteHeader.tsx +11 -10
  320. package/src/components/SiteHeader/index.ts +1 -0
  321. package/src/components/SiteHeader/types.ts +22 -0
  322. package/src/components/SiteNavigation/SiteNavigation.tsx +4 -2
  323. package/src/components/SiteNavigation/index.ts +1 -0
  324. package/src/components/SiteNavigation/types.ts +11 -0
  325. package/src/components/SiteSearch/SiteSearch.stories.tsx +4 -2
  326. package/src/components/SiteSearch/SiteSearch.tsx +7 -6
  327. package/src/components/SiteSearch/index.ts +1 -0
  328. package/src/components/SiteSearch/types.ts +13 -0
  329. package/src/components/SkipLinks/SkipLinks.stories.tsx +3 -3
  330. package/src/components/SkipLinks/SkipLinks.tsx +4 -4
  331. package/src/components/SkipLinks/index.ts +1 -0
  332. package/src/components/SkipLinks/types.ts +9 -0
  333. package/src/components/SummaryCard/SummaryCard.stories.tsx +1 -1
  334. package/src/components/SummaryCard/SummaryCard.test.tsx +2 -13
  335. package/src/components/SummaryCard/SummaryCard.tsx +6 -4
  336. package/src/components/SummaryCard/index.ts +1 -0
  337. package/src/components/SummaryCard/types.ts +6 -0
  338. package/src/components/SummaryList/SummaryList.Item.stories.tsx +5 -5
  339. package/src/components/SummaryList/SummaryList.stories.tsx +1 -1
  340. package/src/components/SummaryList/SummaryList.test.tsx +1 -6
  341. package/src/components/SummaryList/SummaryList.tsx +8 -6
  342. package/src/components/SummaryList/index.ts +1 -0
  343. package/src/components/SummaryList/types.ts +7 -0
  344. package/src/components/Table/Table.tsx +3 -2
  345. package/src/components/Table/index.ts +1 -0
  346. package/src/components/Table/types.ts +6 -0
  347. package/src/components/Tabs/Tabs.Item.stories.tsx +7 -7
  348. package/src/components/Tabs/Tabs.stories.tsx +3 -3
  349. package/src/components/Tabs/Tabs.tsx +7 -5
  350. package/src/components/Tabs/index.ts +1 -0
  351. package/src/components/Tabs/types.ts +19 -0
  352. package/src/components/Tag/Tag.tsx +3 -1
  353. package/src/components/Tag/index.ts +1 -0
  354. package/src/components/Tag/types.ts +5 -0
  355. package/src/components/TaskList/TaskList.Group.stories.tsx +0 -5
  356. package/src/components/TaskList/TaskList.stories.tsx +0 -1
  357. package/src/components/TaskList/TaskList.tsx +13 -10
  358. package/src/components/TaskList/index.ts +1 -0
  359. package/src/components/TaskList/types.ts +20 -0
  360. package/src/components/TextInput/TextInput.tsx +8 -8
  361. package/src/components/TextInput/index.ts +1 -0
  362. package/src/components/TextInput/types.ts +12 -0
  363. package/src/components/Textarea/Textarea.tsx +7 -6
  364. package/src/components/Textarea/index.ts +1 -0
  365. package/src/components/WarningText/WarningText.tsx +1 -1
  366. package/src/components/WarningText/index.ts +1 -0
  367. package/src/components/index.ts +46 -0
  368. package/src/hooks/index.ts +1 -0
  369. package/src/hooks/useTracking/index.ts +1 -0
  370. package/src/hooks/{useTracking.test.tsx → useTracking/useTracking.test.tsx} +5 -7
  371. package/src/hooks/{useTracking.ts → useTracking/useTracking.ts} +1 -1
  372. package/src/images/icons/arrow_upward.tsx +10 -10
  373. package/src/images/icons/calendar_today.tsx +10 -10
  374. package/src/images/icons/cancel.tsx +8 -8
  375. package/src/images/icons/check_circle.tsx +10 -10
  376. package/src/images/icons/chevron_left.tsx +10 -10
  377. package/src/images/icons/chevron_right.tsx +10 -10
  378. package/src/images/icons/close.tsx +10 -10
  379. package/src/images/icons/description.tsx +10 -10
  380. package/src/images/icons/double_chevron_left.tsx +8 -8
  381. package/src/images/icons/double_chevron_right.tsx +8 -8
  382. package/src/images/icons/error.tsx +10 -10
  383. package/src/images/icons/expand_less.tsx +10 -10
  384. package/src/images/icons/expand_more.tsx +10 -10
  385. package/src/images/icons/list.tsx +13 -13
  386. package/src/images/icons/menu.tsx +10 -10
  387. package/src/images/icons/priority_high.tsx +11 -11
  388. package/src/images/icons/search.tsx +10 -10
  389. package/src/images/index.ts +2 -0
  390. package/src/index.ts +4 -0
  391. package/src/shared-types.ts +40 -0
  392. package/vite.config.ts +4 -2
  393. package/@types/common/AbstractNotificationBanner.d.ts +0 -17
  394. package/@types/common/ActionLink.d.ts +0 -8
  395. package/@types/common/ConditionalWrapper.d.ts +0 -6
  396. package/@types/common/FileIcon.d.ts +0 -7
  397. package/@types/common/HintText.d.ts +0 -6
  398. package/@types/common/Icon.d.ts +0 -9
  399. package/@types/common/ScreenReaderText.d.ts +0 -4
  400. package/@types/common/WrapperTag.d.ts +0 -5
  401. package/@types/components/Accordion.d.ts +0 -15
  402. package/@types/components/AspectBox.d.ts +0 -5
  403. package/@types/components/BackToTop.d.ts +0 -5
  404. package/@types/components/Breadcrumbs.d.ts +0 -11
  405. package/@types/components/Button.d.ts +0 -17
  406. package/@types/components/ButtonGroup.d.ts +0 -5
  407. package/@types/components/CategoryItem.d.ts +0 -10
  408. package/@types/components/CategoryList.d.ts +0 -7
  409. package/@types/components/Checkbox.d.ts +0 -11
  410. package/@types/components/ConfirmationMessage.d.ts +0 -7
  411. package/@types/components/ContentsNav.d.ts +0 -13
  412. package/@types/components/DatePicker.d.ts +0 -20
  413. package/@types/components/Details.d.ts +0 -6
  414. package/@types/components/ErrorMessage.d.ts +0 -5
  415. package/@types/components/ErrorSummary.d.ts +0 -12
  416. package/@types/components/FileDownload.d.ts +0 -11
  417. package/@types/components/HideThisPage.d.ts +0 -5
  418. package/@types/components/InsetText.d.ts +0 -5
  419. package/@types/components/Metadata.d.ts +0 -11
  420. package/@types/components/NotificationPanel.d.ts +0 -7
  421. package/@types/components/PageHeader.d.ts +0 -7
  422. package/@types/components/Pagination.d.ts +0 -22
  423. package/@types/components/PhaseBanner.d.ts +0 -5
  424. package/@types/components/Question.d.ts +0 -11
  425. package/@types/components/RadioButton.d.ts +0 -14
  426. package/@types/components/SearchFacets.d.ts +0 -18
  427. package/@types/components/SearchFilters.d.ts +0 -14
  428. package/@types/components/SearchResult.d.ts +0 -30
  429. package/@types/components/SearchSort.d.ts +0 -9
  430. package/@types/components/Select.d.ts +0 -7
  431. package/@types/components/SequentialNavigation.d.ts +0 -14
  432. package/@types/components/SideNavigation.d.ts +0 -18
  433. package/@types/components/SiteFooter.d.ts +0 -25
  434. package/@types/components/SiteHeader.d.ts +0 -20
  435. package/@types/components/SiteNavigation.d.ts +0 -13
  436. package/@types/components/SiteSearch.d.ts +0 -14
  437. package/@types/components/SkipLinks.d.ts +0 -13
  438. package/@types/components/SummaryCard.d.ts +0 -6
  439. package/@types/components/SummaryList.d.ts +0 -14
  440. package/@types/components/Table.d.ts +0 -8
  441. package/@types/components/Tabs.d.ts +0 -21
  442. package/@types/components/Tag.d.ts +0 -5
  443. package/@types/components/TaskList.d.ts +0 -22
  444. package/@types/components/TextInput.d.ts +0 -12
  445. package/@types/components/Textarea.d.ts +0 -4
  446. package/@types/components/WarningText.d.ts +0 -5
  447. package/@types/global.d.ts +0 -1
  448. package/@types/sgds.d.ts +0 -49
  449. package/dist/tsconfig.tsbuildinfo +0 -1
  450. package/src/common/ConditionalWrapper.tsx +0 -9
  451. /package/src/common/{ActionLink.test.tsx → ActionLink/ActionLink.test.tsx} +0 -0
  452. /package/src/common/{ConditionalWrapper.test.tsx → ConditionalWrapper/ConditionalWrapper.test.tsx} +0 -0
  453. /package/src/common/{FileIcon.test.tsx → FileIcon/FileIcon.test.tsx} +0 -0
  454. /package/src/common/{Icon.test.tsx → Icon/Icon.test.tsx} +0 -0
  455. /package/src/common/{ScreenReaderText.test.tsx → ScreenReaderText/ScreenReaderText.test.tsx} +0 -0
  456. /package/src/common/{WrapperTag.test.tsx → WrapperTag/WrapperTag.test.tsx} +0 -0
  457. /package/src/components/{ButtonGroup → Button}/ButtonGroup.test.tsx +0 -0
@@ -0,0 +1 @@
1
+ export { default } from './ErrorSummary';
@@ -0,0 +1,11 @@
1
+
2
+ import { LinkComponent } from '../../shared-types';
3
+
4
+ export interface ErrorSummaryItemProps extends React.AllHTMLAttributes<HTMLElement> {
5
+ fragmentId: string;
6
+ linkComponent?: LinkComponent;
7
+ }
8
+
9
+ export interface ErrorSummaryProps extends React.AllHTMLAttributes<HTMLElement> {
10
+ title: string;
11
+ }
@@ -1,5 +1,6 @@
1
1
  import { useId } from 'react';
2
2
  import FileIcon from '../../common/FileIcon';
3
+ import { FileDownloadProps } from './types';
3
4
 
4
5
  const FileDownload = ({
5
6
  className,
@@ -11,7 +12,7 @@ const FileDownload = ({
11
12
  fileUrl,
12
13
  title,
13
14
  ...props
14
- }: SGDS.Component.FileDownload) => {
15
+ }: FileDownloadProps) => {
15
16
  const hasMetadata = !!fileType || !!fileSize;
16
17
  const metaContainerId = `file-download-${useId()}`;
17
18
 
@@ -0,0 +1 @@
1
+ export { default } from './FileDownload';
@@ -0,0 +1,11 @@
1
+ import { DocumentIconName } from '../../shared-types';
2
+
3
+ export interface FileDownloadProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ cover?: string;
5
+ fileSize?: string;
6
+ fileType?: string;
7
+ fileUrl: string;
8
+ icon?: DocumentIconName;
9
+ isHighlighted?: boolean;
10
+ title: string;
11
+ }
@@ -1,12 +1,13 @@
1
1
  import React, { useEffect, useRef } from 'react';
2
- // @ts-ignore
2
+ // @ts-expect-error no types from core SGDS
3
3
  import DSHideThisPage from '@scottish-government/design-system/src/components/hide-this-page/hide-this-page';
4
+ import { HideThisPageProps } from './types';
4
5
 
5
6
  const HideThisPage = ({
6
7
  className,
7
8
  escapeUrl = 'https://www.bbc.co.uk/weather',
8
9
  ...props
9
- }: SGDS.Component.HideThisPage) => {
10
+ }: HideThisPageProps) => {
10
11
  const ref = useRef(null);
11
12
 
12
13
  useEffect(() => {
@@ -0,0 +1 @@
1
+ export { default } from './HideThisPage';
@@ -0,0 +1,3 @@
1
+ export interface HideThisPageProps extends React.AllHTMLAttributes<HTMLElement> {
2
+ escapeUrl?: string;
3
+ }
@@ -2,7 +2,7 @@ const InsetText = ({
2
2
  children,
3
3
  className,
4
4
  ...props
5
- }: SGDS.Component.InsetText) => {
5
+ }: React.AllHTMLAttributes<HTMLElement>) => {
6
6
  return (
7
7
  <div
8
8
  className={[
@@ -0,0 +1 @@
1
+ export { default } from './InsetText';
@@ -13,7 +13,7 @@ const meta = {
13
13
  description: 'Makes the icon display in the alternative colour scheme'
14
14
  },
15
15
  hasIcon: {
16
- description: 'Shows the high priority icon on the notification banner',
16
+ description: 'Shows the \'high priority\' icon on the notification banner',
17
17
  control: 'boolean'
18
18
  },
19
19
  hasInverseIcon: {
@@ -22,7 +22,7 @@ const meta = {
22
22
  },
23
23
  isDismissable: {
24
24
  control: 'boolean',
25
- description: 'Shows a close button on the notification banner'
25
+ description: 'Shows a \'close\' button on the notification banner'
26
26
  },
27
27
  title: {
28
28
  description: 'A hidden title for the notification banner, useful for screen reader users',
@@ -1,7 +1,8 @@
1
1
  import { useEffect, useRef } from 'react';
2
2
  import AbstractNotificationBanner from '../../common/AbstractNotificationBanner';
3
- // @ts-ignore
3
+ // @ts-expect-error no types from core SGDS
4
4
  import DSNotificationBanner from '@scottish-government/design-system/src/components/notification-banner/notification-banner';
5
+ import { AbstractNotificationBannerProps } from '../../common/AbstractNotificationBanner/types';
5
6
 
6
7
  const NotificationBanner = ({
7
8
  children,
@@ -10,9 +11,9 @@ const NotificationBanner = ({
10
11
  hasIcon,
11
12
  hasInverseIcon,
12
13
  isDismissable,
13
- title,
14
+ title = 'Information',
14
15
  ...props
15
- }: SGDS.Common.AbstractNotificationBanner) => {
16
+ }: AbstractNotificationBannerProps) => {
16
17
  const ref = useRef(null);
17
18
 
18
19
  useEffect(() => {
@@ -32,7 +33,7 @@ const NotificationBanner = ({
32
33
  hasColourIcon={hasColourIcon}
33
34
  hasInverseIcon={hasInverseIcon}
34
35
  ref={ref}
35
- title="Information"
36
+ title={title}
36
37
  {...props}
37
38
  >
38
39
  {children}
@@ -0,0 +1 @@
1
+ export { default } from './NotificationBanner';
@@ -1,4 +1,5 @@
1
1
  import WrapperTag from '../../common/WrapperTag';
2
+ import { NotificationPanelProps } from './types';
2
3
 
3
4
  const NotificationPanel = function ({
4
5
  ariaLive,
@@ -7,7 +8,7 @@ const NotificationPanel = function ({
7
8
  headingLevel = 'h1',
8
9
  title,
9
10
  ...props
10
- }: SGDS.Component.NotificationPanel) {
11
+ }: NotificationPanelProps) {
11
12
  return (
12
13
  <div
13
14
  aria-live={ariaLive}
@@ -0,0 +1 @@
1
+ export { default } from './NotificationPanel';
@@ -0,0 +1,7 @@
1
+ import { HeadingLevel } from '../../shared-types';
2
+
3
+ export interface NotificationPanelProps extends React.AllHTMLAttributes<HTMLDivElement> {
4
+ ariaLive?: React.AriaAttributes['aria-live'];
5
+ headingLevel?: HeadingLevel;
6
+ title: string;
7
+ }
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from '@storybook/react-vite';
2
2
  import argTypes from '../../../.storybook/sgdsArgTypes';
3
3
 
4
4
  import PageHeader from './PageHeader';
5
- import Metadata from '../PageMetadata/PageMetadata';
5
+ import Metadata from '../PageMetadata';
6
6
 
7
7
  const meta = {
8
8
  title: 'Components/PageHeader',
@@ -1,3 +1,5 @@
1
+ import { PageHeaderProps } from "./types";
2
+
1
3
  const PageHeader = ({
2
4
  children,
3
5
  className,
@@ -5,7 +7,7 @@ const PageHeader = ({
5
7
  title,
6
8
  titleId,
7
9
  ...props
8
- }: SGDS.Component.PageHeader) => {
10
+ }: PageHeaderProps) => {
9
11
  return (
10
12
  <header
11
13
  className={[
@@ -0,0 +1 @@
1
+ export { default } from './PageHeader';
@@ -0,0 +1,5 @@
1
+ export interface PageHeaderProps extends React.AllHTMLAttributes<HTMLHeadingElement> {
2
+ label?: string;
3
+ title: string;
4
+ titleId?: string;
5
+ }
@@ -10,7 +10,7 @@ const meta = {
10
10
  children: argTypes.children(),
11
11
  isInline: {
12
12
  control: 'boolean',
13
- description: 'Makes the page metadata use the truncated inline display'
13
+ description: 'Makes the page metadata use the truncated \'inline\' display'
14
14
  },
15
15
  },
16
16
  args: {
@@ -1,9 +1,11 @@
1
- const MetadataItem= ({
1
+ import { MetdataItemProps, MetadataProps } from "./types";
2
+
3
+ const MetadataItem = ({
2
4
  children,
3
5
  className,
4
6
  name,
5
7
  ...props
6
- }: SGDS.Component.Metadata.Item) => {
8
+ }: MetdataItemProps) => {
7
9
  return (
8
10
  <div className={[
9
11
  'ds_metadata__item',
@@ -24,7 +26,7 @@ const Metadata = ({
24
26
  className,
25
27
  isInline,
26
28
  ...props
27
- }: SGDS.Component.Metadata) => {
29
+ }: MetadataProps) => {
28
30
  return (
29
31
  <dl
30
32
  className={[
@@ -0,0 +1 @@
1
+ export { default } from './PageMetadata';
@@ -0,0 +1,7 @@
1
+ export interface MetdataItemProps extends React.AllHTMLAttributes<HTMLElement> {
2
+ name: string;
3
+ }
4
+
5
+ export interface MetadataProps extends React.AllHTMLAttributes<HTMLDListElement> {
6
+ isInline?: boolean;
7
+ }
@@ -1,4 +1,6 @@
1
1
  import Icon from "../../common/Icon";
2
+ import { PaginationPageProps, PaginationProps } from "./types";
3
+ import { LinkComponentProps } from "../../shared-types";
2
4
 
3
5
  export const Page = ({
4
6
  ariaLabel,
@@ -8,7 +10,7 @@ export const Page = ({
8
10
  isCurrent = false,
9
11
  linkComponent,
10
12
  onClick
11
- }: SGDS.Component.Pagination.Page) => {
13
+ }: PaginationPageProps) => {
12
14
  function handleClick(event: React.MouseEvent) {
13
15
  if (typeof onClick === 'function') {
14
16
  onClick(event);
@@ -22,7 +24,7 @@ export const Page = ({
22
24
  isCurrent ? 'ds_current' : undefined
23
25
  ].join(' ');
24
26
 
25
- const linkProps: SGDS.LinkComponentProps = {
27
+ const linkProps: LinkComponentProps = {
26
28
  'aria-label': ariaLabel,
27
29
  href: href,
28
30
  onClick: handleClick
@@ -68,7 +70,7 @@ const Pagination = ({
68
70
  totalPages,
69
71
  linkComponent,
70
72
  ...props
71
- }: SGDS.Component.Pagination) => {
73
+ }: PaginationProps) => {
72
74
  padding = Number(padding);
73
75
  page = Number(page);
74
76
 
@@ -0,0 +1 @@
1
+ export { default } from './Pagination';
@@ -0,0 +1,20 @@
1
+ import { LinkComponent } from '../../shared-types';
2
+
3
+ export interface PaginationPageProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ ariaLabel: React.AriaAttributes['aria-label'];
5
+ isCurrent?: boolean;
6
+ href: string;
7
+ linkComponent?: LinkComponent;
8
+ onClick?: React.EventHandler<React.FormEvent>;
9
+ }
10
+
11
+ export interface PaginationProps extends React.AllHTMLAttributes<HTMLElement> {
12
+ ariaLabel: React.AriaAttributes['aria-label'];
13
+ className?: string;
14
+ linkComponent?: LinkComponent;
15
+ onClick?: React.EventHandler<React.FormEvent>;
16
+ padding: number;
17
+ page: number;
18
+ pattern: string;
19
+ totalPages: number;
20
+ }
@@ -31,8 +31,5 @@ export const CustomContent: Story = {
31
31
  args: {
32
32
  phaseName: 'Beta',
33
33
  children: <>This is a new service. Your <a href="#foo">feedback</a> will help us to improve it.</>
34
- },
35
- render: (args: any) => (
36
- <PhaseBanner {...args}></PhaseBanner>
37
- )
34
+ }
38
35
  };
@@ -1,11 +1,12 @@
1
1
  import Tag from "../Tag/Tag";
2
+ import { PhaseBannerProps } from "./types";
2
3
 
3
4
  const PhaseBanner = ({
4
5
  children,
5
6
  className,
6
7
  phaseName,
7
8
  ...props
8
- }: SGDS.Component.PhaseBanner) => {
9
+ }: PhaseBannerProps) => {
9
10
  return (
10
11
  <div
11
12
  className={[
@@ -0,0 +1 @@
1
+ export { default } from './PhaseBanner';
@@ -0,0 +1,3 @@
1
+ export interface PhaseBannerProps extends React.AllHTMLAttributes<HTMLDivElement> {
2
+ phaseName: string;
3
+ }
@@ -2,9 +2,8 @@ import type { Meta, StoryObj } from '@storybook/react-vite';
2
2
  import argTypes from '../../../.storybook/sgdsArgTypes';
3
3
 
4
4
  import Question from './Question';
5
- import TextInput from '../TextInput/TextInput';
6
- import Checkbox from '../Checkbox/Checkbox';
7
- import CheckboxGroup from '../Checkbox/CheckboxGroup';
5
+ import TextInput from '../TextInput';
6
+ import Checkbox, { CheckboxGroup } from '../Checkbox';
8
7
 
9
8
  const meta = {
10
9
  title: 'Components/Question',
@@ -1,6 +1,7 @@
1
- import ErrorMessage from '../ErrorMessage/ErrorMessage';
2
- import HintText from '../../common/HintText';
1
+ import ErrorMessage from '../ErrorMessage';
2
+ import HintText from '../../common/HintText'
3
3
  import WrapperTag from '../../common/WrapperTag';
4
+ import { QuestionProps } from './types';
4
5
 
5
6
  const Question = function ({
6
7
  children,
@@ -11,7 +12,7 @@ const Question = function ({
11
12
  legend,
12
13
  tagName = 'div',
13
14
  ...props
14
- }: SGDS.Component.Question) {
15
+ }: QuestionProps) {
15
16
  return (
16
17
  <WrapperTag
17
18
  tagName={tagName}
@@ -23,7 +24,7 @@ const Question = function ({
23
24
  {...props}
24
25
  >
25
26
  {legend && <legend>{legend}</legend>}
26
- {hintText && <HintText text={hintText} />}
27
+ {hintText && <HintText>{hintText}</HintText>}
27
28
  {hasError && errorMessage && <ErrorMessage>{errorMessage}</ErrorMessage>}
28
29
  {children}
29
30
  </WrapperTag>
@@ -0,0 +1 @@
1
+ export { default } from './Question';
@@ -0,0 +1,9 @@
1
+ type QuestionTags = 'div' | 'fieldset';
2
+
3
+ export interface QuestionProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ errorMessage?: string;
5
+ hasError?: boolean;
6
+ hintText?: string;
7
+ legend?: string;
8
+ tagName: QuestionTags;
9
+ }
@@ -2,6 +2,7 @@ import { useContext } from 'react';
2
2
 
3
3
  import HintText from '../../common/HintText';
4
4
  import { CheckboxRadioContext } from '../../utils/context';
5
+ import { RadioButtonProps } from './types';
5
6
 
6
7
  const RadioButton = ({
7
8
  checked,
@@ -12,16 +13,16 @@ const RadioButton = ({
12
13
  name,
13
14
  onBlur,
14
15
  onChange
15
- }: SGDS.Component.RadioButton) => {
16
+ }: RadioButtonProps) => {
16
17
  const hintTextId = `hint-text-${id}`;
17
18
 
18
- function handleBlur(event: React.FocusEvent) {
19
+ function handleBlur(event: React.FocusEvent<HTMLInputElement>) {
19
20
  if (typeof onBlur === 'function') {
20
21
  onBlur(event);
21
22
  }
22
23
  }
23
24
 
24
- function handleChange(event: React.ChangeEvent) {
25
+ function handleChange(event: React.ChangeEvent<HTMLInputElement>) {
25
26
  if (typeof onChange === 'function') {
26
27
  onChange(event);
27
28
  }
@@ -49,7 +50,7 @@ const RadioButton = ({
49
50
  className="ds_radio__label"
50
51
  htmlFor={id}
51
52
  >{label}</label>
52
- {hintText && <HintText id={hintTextId} text={hintText} />}
53
+ {hintText && <HintText id={hintTextId}>{hintText}</HintText>}
53
54
  </div>
54
55
  );
55
56
  };
@@ -1,8 +1,7 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-vite';
2
2
  import argTypes from '../../../.storybook/sgdsArgTypes';
3
3
 
4
- import RadioButton from '../RadioButton/RadioButton';
5
- import RadioGroup from './RadioGroup';
4
+ import RadioButton, { RadioGroup } from '../RadioButton';
6
5
 
7
6
  const meta = {
8
7
  title: 'Components/Radio/Radio group',
@@ -1,7 +1,6 @@
1
1
  import { test, expect } from 'vitest';
2
2
  import { render, screen } from '@testing-library/react';
3
- import RadioButton from './RadioButton';
4
- import RadioGroup from './RadioGroup';
3
+ import RadioButton, { RadioGroup } from '../RadioButton';
5
4
 
6
5
  test('radio group renders correctly', () => {
7
6
  render(
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { CheckboxRadioContext } from '../../utils/context';
3
+ import { RadioGroupProps } from './types';
3
4
 
4
5
  const RadioGroup = ({
5
6
  children,
@@ -8,7 +9,7 @@ const RadioGroup = ({
8
9
  isSmall,
9
10
  name = '',
10
11
  ...props
11
- }: SGDS.Component.RadioButton.Group) => {
12
+ }: RadioGroupProps) => {
12
13
  return (
13
14
  <div
14
15
  className={[
@@ -0,0 +1,2 @@
1
+ export { default } from './RadioButton';
2
+ export { default as RadioGroup } from './RadioGroup';
@@ -0,0 +1,12 @@
1
+ import { CheckboxRadioBase } from "../../shared-types";
2
+
3
+ export interface RadioGroupProps extends React.AllHTMLAttributes<HTMLElement> {
4
+ isInline?: boolean;
5
+ name?: string;
6
+ isSmall?: boolean;
7
+ }
8
+
9
+ export interface RadioButtonProps extends CheckboxRadioBase<HTMLInputElement> {
10
+ id: string;
11
+ name?: string;
12
+ }
@@ -2,7 +2,6 @@ import type { Meta, StoryObj } from '@storybook/react-vite';
2
2
  import argTypes from '../../../.storybook/sgdsArgTypes';
3
3
 
4
4
  import Facets from './SearchFacets';
5
- import { join } from 'path';
6
5
 
7
6
  const meta = {
8
7
  title: 'Components/Search results/Facets/Group',
@@ -37,7 +36,7 @@ export default meta;
37
36
  type Story = StoryObj<typeof meta>;
38
37
 
39
38
  export const Default: Story = {
40
- render: (args: any) => (
39
+ render: ({ ... args }) => (
41
40
  <Facets.Group {...args}>
42
41
  <Facets.Item title="Advice and guidance" />
43
42
  <Facets.Item title="Factsheet"/>
@@ -47,7 +46,7 @@ export const Default: Story = {
47
46
  };
48
47
 
49
48
  export const CustomJoinContent: Story = {
50
- render: (args: any) => (
49
+ render: () => (
51
50
  <Facets.Group joinContent="and" title="Updated between">
52
51
  <Facets.Item accessibleName="Updated after 01/10/2025" title="01/10/2025" />
53
52
  <Facets.Item accessibleName="Updated before 31/10/2025" title="31/10/2025"/>
@@ -18,7 +18,7 @@ export default meta;
18
18
  type Story = StoryObj<typeof meta>;
19
19
 
20
20
  export const Default: Story = {
21
- render: (args: any) => (
21
+ render: ({ ...args }) => (
22
22
  <Facets {...args}>
23
23
  <Facets.Group title="Content type">
24
24
  <Facets.Item title="Advice and guidance" />
@@ -1,6 +1,7 @@
1
1
  import React, { Children } from 'react';
2
2
  import Icon from "../../common/Icon";
3
3
  import { Cancel } from '../../../src/images/icons';
4
+ import { SearchFacetsGroupProps, SearchFacetsItemProps, SearchFacetsProps } from './types';
4
5
 
5
6
  const FacetsItem = ({
6
7
  accessibleName,
@@ -8,7 +9,7 @@ const FacetsItem = ({
8
9
  onClick,
9
10
  title,
10
11
  ...props
11
- }: SGDS.Component.SearchFacets.Item) => {
12
+ }: SearchFacetsItemProps) => {
12
13
  accessibleName = accessibleName ? accessibleName : title;
13
14
 
14
15
  return (
@@ -31,7 +32,7 @@ const FacetsGroup = ({
31
32
  joinContent = 'or',
32
33
  title,
33
34
  ...props
34
- }: SGDS.Component.SearchFacets.Group) => {
35
+ }: SearchFacetsGroupProps) => {
35
36
  return (
36
37
  <div className="ds_facet-group" {...props}>
37
38
  <dt className="ds_facet__group-title">
@@ -39,7 +40,7 @@ const FacetsGroup = ({
39
40
  </dt>
40
41
  {
41
42
  Children.map(children, (child, index) => {
42
- const thisChild = child as React.ReactElement<SGDS.Component.SearchFacets.Item>
43
+ const thisChild = child as React.ReactElement<SearchFacetsItemProps>
43
44
  return React.cloneElement(thisChild, { joinContent: index > 0 ? joinContent : undefined, key: 'facet' + index });
44
45
  })
45
46
  }
@@ -51,10 +52,10 @@ const Facets = ({
51
52
  children,
52
53
  className,
53
54
  ...props
54
- }: SGDS.Component.SearchFacets) => {
55
+ }: SearchFacetsProps) => {
55
56
  let facetCount = 0;
56
57
 
57
- function processChild(item: any) {
58
+ function processChild(item: React.JSX.Element) {
58
59
  if (item.type.displayName === 'Facets.Item') {
59
60
  facetCount = facetCount + 1;
60
61
 
@@ -66,7 +67,7 @@ const Facets = ({
66
67
  }
67
68
 
68
69
  Children.forEach(children, child => {
69
- processChild(child);
70
+ processChild(child as React.JSX.Element);
70
71
  });
71
72
 
72
73
  return (
@@ -0,0 +1 @@
1
+ export { default } from './SearchFacets';
@@ -0,0 +1,14 @@
1
+ export interface SearchFacetsGroupProps extends React.AllHTMLAttributes<HTMLElement> {
2
+ joinContent?: string;
3
+ title: string;
4
+ }
5
+
6
+ export interface SearchFacetsItemProps extends React.AllHTMLAttributes<HTMLElement> {
7
+ accessibleName?: string;
8
+ joinContent?: string;
9
+ title: string;
10
+ }
11
+
12
+ export interface SearchFacetsProps extends React.AllHTMLAttributes<HTMLElement> {
13
+ headingId?: string;
14
+ }