@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,20 +1,20 @@
1
1
  import type { StorybookConfig } from '@storybook/react-vite';
2
2
 
3
3
  const config: StorybookConfig = {
4
- "stories": [
4
+ stories: [
5
5
  "../src/**/*.mdx",
6
6
  "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"
7
7
  ],
8
- "addons": [
8
+ addons: [
9
9
  "@chromatic-com/storybook",
10
10
  "@storybook/addon-docs",
11
11
  "@storybook/addon-onboarding",
12
12
  "@storybook/addon-a11y",
13
13
  "@storybook/addon-vitest"
14
14
  ],
15
- "framework": {
16
- "name": "@storybook/react-vite",
17
- "options": {}
15
+ framework: {
16
+ name: "@storybook/react-vite",
17
+ options: {}
18
18
  }
19
19
  };
20
- export default config;
20
+ export default config;
@@ -1,141 +1,205 @@
1
+ import { InputType } from "storybook/internal/csf";
2
+
3
+ type OptionsControlType = 'radio' | 'inline-radio' | 'check' | 'inline-check' | 'select' | 'multi-select';
4
+
5
+ type Conditional = (
6
+ { arg: string; }
7
+ | { global: string; }) & ({ truthy?: boolean | undefined; }
8
+ | { exists: boolean; }
9
+ | { eq: () => void; }
10
+ | { neq: () => void; }
11
+ );
12
+
13
+ type ControlType =
14
+ | 'array'
15
+ | 'boolean'
16
+ | 'color'
17
+ | 'date'
18
+ | 'number'
19
+ | 'range'
20
+ | 'object'
21
+ | OptionsControlType
22
+ | 'text';
23
+
24
+ interface ArgType {
25
+ control?: ControlType | { type: ControlType };
26
+ defaultValue?: string | number | boolean | object | null;
27
+ description?: string;
28
+ if?: Conditional;
29
+ mapping?: { [key: string]: { [option: string]: string | object } };
30
+ name?: string;
31
+ options?: string[];
32
+ table?: {
33
+ category?: string;
34
+ defaultValue?: { summary: string; detail?: string };
35
+ subcategory?: string;
36
+ type?: { summary?: string; detail?: string };
37
+ disable?: boolean;
38
+ };
39
+ type?: string | { name: string; required?: boolean };
40
+ }
41
+
1
42
  const SGDSArgTypes = {
2
- ariaLabel: (options?: any) => {
43
+ ariaLabel: (options?: ArgType) => {
3
44
  return Object.assign({
4
45
  type: 'string'
5
- }, options);
46
+ }, options) as InputType;
6
47
  },
7
- ariaLive: (options?: any) => {
48
+ ariaLive: (options?: ArgType) => {
8
49
  return Object.assign({
9
50
  options: ['off', 'polite', 'assertive'],
10
51
  control: { type: 'select' },
11
52
  type: 'string'
12
- }, options);
53
+ }, options) as InputType;
13
54
  },
14
- children: (options?: any) => {
55
+ boolean: (options?: ArgType) => {
56
+ return Object.assign({
57
+ control: 'boolean',
58
+ table: {
59
+ type: {
60
+ summary: 'boolean'
61
+ }
62
+ }
63
+ }, options) as InputType;
64
+ },
65
+ children: (options?: ArgType) => {
15
66
  return Object.assign({
16
67
  control: false
17
- }, options);
68
+ }, options) as InputType;
18
69
  },
19
- countThreshold: (options?: any) => {
70
+ countThreshold: (options?: ArgType) => {
20
71
  return Object.assign({
21
72
  control: {
22
73
  type: 'number', min: 1, max: 100, step: 1
23
74
  },
24
75
  description: 'Percentage threshold to show the character count at',
25
76
  type: 'number'
26
- }, options);
77
+ }, options) as InputType;
27
78
  },
28
- errorMessage: (options?: any) => {
79
+ errorMessage: (options?: ArgType) => {
29
80
  return Object.assign({
30
81
  description: 'Text to use for an error message',
31
82
  type: 'string'
32
- }, options);
83
+ }, options) as InputType;
33
84
  },
34
- hasError: (options?: any) => {
85
+ hasError: (options?: ArgType) => {
35
86
  return Object.assign({
36
87
  control: 'boolean',
37
88
  description: 'Whether the field is in an error state'
38
- }, options);
89
+ }, options) as InputType;
39
90
  },
40
- headingLevel: (options?: any) => {
91
+ headingLevel: (options?: ArgType) => {
41
92
  return Object.assign({
42
93
  description: 'Heading level for the component\'s title',
43
94
  options: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
44
95
  control: { type: 'select' },
45
96
  type: 'string'
46
- }, options);
97
+ }, options) as InputType;
47
98
  },
48
- hintText: (options?: any) => {
99
+ hintText: (options?: ArgType) => {
49
100
  return Object.assign({
50
101
  description: 'Text to use for the field\'s hint text',
51
102
  type: 'string'
52
- }, options);
103
+ }, options) as InputType;
53
104
  },
54
- href: (options?: any) => {
105
+ href: (options?: ArgType) => {
55
106
  return Object.assign({
56
107
  type: 'string'
57
- }, options);
108
+ }, options) as InputType
58
109
  },
59
- id: (options?: any) => {
110
+ id: (options?: ArgType) => {
60
111
  return Object.assign({
61
112
  type: {
62
113
  required: true,
63
114
  name: 'string'
64
115
  }
65
- }, options);
116
+ }, options) as InputType
66
117
  },
67
- inputWidth: (options?: any) => {
118
+ inputWidth: (options?: ArgType) => {
68
119
  return Object.assign({
69
120
  control: { type: 'select' },
70
121
  options: [undefined, 'fixed-20', 'fixed-10', 'fixed-5', 'fixed-4', 'fixed-3', 'fixed-2', 'fluid-three-quarters', 'fluid-two-thirds', 'fluid-half', 'fluid-one-third', 'fluid-one-quarter'],
71
122
  type: 'string'
72
- }, options);
123
+ }, options) as InputType
73
124
  },
74
- isCurrent: (options?: any) => {
125
+ isCurrent: (options?: ArgType) => {
75
126
  return Object.assign({
76
127
  control: 'boolean',
77
128
  description: 'Whether the component is for the current page'
78
- }, options);
129
+ }, options) as InputType
79
130
  },
80
- isSmall: (options?: any) => {
131
+ isSmall: (options?: ArgType) => {
81
132
  return Object.assign({
82
133
  control: 'boolean',
83
- description: 'Whether to use the small input control variant'
84
- }, options);
134
+ description: 'Whether to use the \'small\' input control variant'
135
+ }, options) as InputType
85
136
  },
86
- label: (options?: any) => {
137
+ label: (options?: ArgType) => {
87
138
  return Object.assign({
88
139
  description: 'Text to use for the field\'s associated label',
89
140
  type: {
90
141
  required: true,
91
142
  name: 'string'
92
143
  }
93
- }, options);
144
+ }, options) as InputType;
94
145
  },
95
- linkComponent: (options?: any) => {
146
+ linkComponent: (options?: ArgType) => {
96
147
  return Object.assign({
97
148
  control: false,
98
149
  description: 'Function that returns an element, to customise the output',
99
150
  type: 'function'
100
- }, options);
151
+ }, options) as InputType;
101
152
  },
102
- maxlength: (options?: any) => {
153
+ maxlength: (options?: ArgType) => {
103
154
  return Object.assign({
104
155
  description: 'Maximum number of characters permitted',
105
156
  type: 'number'
106
- }, options);
157
+ }, options) as InputType;
107
158
  },
108
- noBorder: (options?: any) => {
159
+ noBorder: (options?: ArgType) => {
109
160
  return Object.assign({
110
161
  control: 'boolean',
111
162
  description: 'Use the borderless display variant'
112
- }, options);
163
+ }, options) as InputType;
113
164
  },
114
- onBlur: (options?: any) => {
165
+ onBlur: (options?: ArgType) => {
115
166
  return Object.assign({
116
167
  description: 'Function to fire in response to a blur event',
117
168
  type: 'function'
118
- }, options);
169
+ }, options) as InputType;
119
170
  },
120
- onChange: (options?: any) => {
171
+ onChange: (options?: ArgType) => {
121
172
  return Object.assign({
122
173
  description: 'Function to fire in response to a change event',
123
174
  type: 'function'
124
- }, options);
175
+ }, options) as InputType;
125
176
  },
126
- onClick: (options?: any) => {
177
+ onClick: (options?: ArgType) => {
127
178
  return Object.assign({
128
179
  description: 'Function to fire in response to a click event',
129
180
  type: 'function'
130
- }, options);
181
+ }, options) as InputType;
182
+ },
183
+ select: (params: {
184
+ default?: string,
185
+ description?: string,
186
+ options: string[] | number[]
187
+ }) => {
188
+ return {
189
+ defaultValue: { summary: params.default },
190
+ control: { type: 'select' },
191
+ options: params.options,
192
+ description: params.description,
193
+ type: typeof params.options[0]
194
+ } as InputType;
131
195
  },
132
- tagColour: (options?: any) => {
196
+ tagColour: (options?: ArgType) => {
133
197
  return Object.assign({
134
198
  control: { type: 'select' },
135
199
  description: 'The tag colour to use',
136
200
  options: ['', 'blue', 'green', 'grey', 'orange', 'pink', 'purple', 'red', 'teal', 'yellow'],
137
201
  type: 'string'
138
- }, options);
202
+ }, options) as InputType;
139
203
  }
140
204
  }
141
205
 
package/CHANGELOG.md CHANGED
@@ -6,6 +6,55 @@ Changes are grouped under the labels: `Added`, `Changed`, `Deprecated`, `Fixed`,
6
6
  `Removed` and `Security`.
7
7
 
8
8
  ---
9
+
10
+ ## [1.0.0] - 2026-04-21
11
+
12
+ ### Added
13
+ - Card component
14
+ - FeatureHeader component
15
+ - NotificationTag component
16
+ - New 'isWrap' prop added to ButtonGroup
17
+ ### Changed
18
+ - SearchResult.Meta altered to be a clearer implementation of the Metadata component, with Metadata.Item children
19
+ - Use the clsx package to handle className concatenation in components
20
+ - Component updates required by SG Design System v4
21
+ - AspectBox: remove useEffect (an IE11 fallback)
22
+ - DatePicker: remove 'iconPath' prop
23
+ - FileDownload: add outline modifier class to cover images
24
+ ### Fixed
25
+ - HideThisPage: pass ref.current to the function call in useEffect
26
+ - SiteSearch: check for presence of an autocomplete element before firing the DS script
27
+ ### Security
28
+ - Update dependencies
29
+
30
+ ---
31
+
32
+ ## [0.13.0] - 2025-12-19
33
+
34
+ ### Added
35
+ - eslint added to build task
36
+ ### Changed
37
+ - Types moved from .d.ts files in @types folder to types.ts files in each component's folder
38
+ - HintText no longer allows content to be added with a 'text' prop -- use children instead
39
+ - NotificationBanner title (visually hidden) is customisable via a 'title' prop
40
+ ### Fixed
41
+ - Checkbox stories updated to use 'isSmall' and 'isExclusive' (see v0.10.0).
42
+ - CookieBanner now fires the SG Design System cookie notification JS
43
+ ### Removed
44
+ - 'SGDS' namespace no longer used for types etc
45
+ ### Security
46
+ - Storybook version updated to address vulnerabilities
47
+
48
+ ## [0.12.1] - 2025-11-19
49
+
50
+ ### Added
51
+ - 'Barrel' index files
52
+ - 'main' and typings added to package.json
53
+ ### Changed
54
+ - Move hooks and common components and to subfolders to match structure of the main components
55
+ ### Security
56
+ - Update dependencies
57
+
9
58
  ## [0.12.0] - 2025-11-12
10
59
 
11
60
  ### Added
package/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) Crown Copyright 2019
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9
+ of the Software, and to permit persons to whom the Software is furnished to do
10
+ so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,4 +1,7 @@
1
1
  # @scottish-government/designsystem-react
2
+ [![NPM version](https://img.shields.io/npm/v/%40scottish-government%2Fdesignsystem-react)](https://www.npmjs.com/package/@scottish-government/designsystem-react)
3
+ [![Tests](https://github.com/scottish-government-design-system/designsystem-react/actions/workflows/tests.yml/badge.svg)](https://github.com/scottish-government-design-system/designsystem-react/actions/workflows/tests.yml)
4
+ [![Build](https://github.com/scottish-government-design-system/designsystem-react/actions/workflows/build.yml/badge.svg)](https://github.com/scottish-government-design-system/designsystem-react/actions/workflows/build.yml)
2
5
 
3
6
  This repository contains a React implementation of the [Scottish Government Design System](https://designsystem.gov.scot/).
4
7
 
@@ -1,8 +1,9 @@
1
+ import { AbstractNotificationBannerProps, AbstractNotificationBannerButtonsProps } from './types';
1
2
  declare const AbstractNotificationBanner: {
2
- ({ children, className, hasColourIcon, hasInverseIcon, icon, isDismissable, title, ...props }: SGDS.Common.AbstractNotificationBanner): import("react").JSX.Element;
3
+ ({ children, className, hasColourIcon, hasInverseIcon, icon, 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 }: AbstractNotificationBannerButtonsProps): import("react").JSX.Element;
6
7
  displayName: string;
7
8
  };
8
9
  };
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = require("react");
7
7
  const Icon_1 = __importDefault(require("../Icon"));
8
8
  const ScreenReaderText_1 = __importDefault(require("../ScreenReaderText"));
9
+ const clsx_1 = __importDefault(require("clsx"));
9
10
  const Buttons = ({ children }) => {
10
11
  return (<div className="ds_button-group">{children}</div>);
11
12
  };
12
13
  const AbstractNotificationBanner = ({ children, className, hasColourIcon, hasInverseIcon, icon, isDismissable, title = 'Information', ...props }) => {
13
- let content = [];
14
+ const content = [];
14
15
  let buttons;
15
16
  react_1.Children.forEach(children, (child) => {
16
17
  const thisChild = child;
@@ -21,23 +22,23 @@ const AbstractNotificationBanner = ({ children, className, hasColourIcon, hasInv
21
22
  content.push(thisChild);
22
23
  }
23
24
  });
24
- return (<div className={[
25
+ return (<div className={(0, clsx_1.default)([
25
26
  'ds_notification',
26
27
  className
27
- ].join(' ')} data-module="ds-notification" {...props}>
28
+ ])} data-module="ds-notification" {...props}>
28
29
  <div className="ds_wrapper">
29
- <div className={[
30
+ <div className={(0, clsx_1.default)([
30
31
  'ds_notification__content',
31
32
  isDismissable && 'ds_notification__content--has-close'
32
- ].join(' ')}>
33
+ ])}>
33
34
  <h2 className="visually-hidden">{title}</h2>
34
35
 
35
36
  {icon &&
36
- <span className={[
37
+ <span className={(0, clsx_1.default)([
37
38
  'ds_notification__icon',
38
39
  hasInverseIcon && 'ds_notification__icon--inverse',
39
40
  hasColourIcon && 'ds_notification__icon--colour'
40
- ].join(' ')} aria-hidden="true">
41
+ ])} aria-hidden="true">
41
42
  <Icon_1.default icon={icon}/>
42
43
  </span>}
43
44
 
@@ -0,0 +1,13 @@
1
+ import { IconName } from '../../shared-types';
2
+ export interface AbstractNotificationBannerProps extends React.AllHTMLAttributes<HTMLDivElement> {
3
+ hasIcon?: boolean;
4
+ hasColourIcon?: boolean;
5
+ hasInverseIcon?: boolean;
6
+ icon?: IconName;
7
+ isDismissable?: boolean;
8
+ title?: string;
9
+ ref?: React.Ref<HTMLDivElement>;
10
+ }
11
+ export interface AbstractNotificationBannerButtonsProps extends React.AllHTMLAttributes<HTMLDivElement> {
12
+ children: React.ReactNode;
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { ActionLinkProps } from './types';
1
2
  declare const ActionLink: {
2
- ({ children, describedby, href, linkComponent, onclick }: SGDS.Common.ActionLink): string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | Iterable<import("react").ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
3
+ ({ children, describedby, href, linkComponent, onclick }: ActionLinkProps): string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | Iterable<import("react").ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
3
4
  displayName: string;
4
5
  };
5
6
  export default ActionLink;
@@ -0,0 +1,7 @@
1
+ import { LinkComponent } from '../../shared-types';
2
+ export interface ActionLinkProps extends React.AllHTMLAttributes<HTMLElement> {
3
+ describedby?: string;
4
+ href?: string;
5
+ linkComponent?: LinkComponent;
6
+ onclick?: React.EventHandler<React.MouseEvent>;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * Wraps all children in a specified HTML tag if a condition is met.
3
3
  */
4
+ import { ConditionalWrapperProps } from "./types";
4
5
  declare const ConditionalWrapper: {
5
- ({ condition, wrapper, children }: SGDS.Common.ConditionalWrapper): any;
6
+ ({ condition, wrapper, children }: ConditionalWrapperProps): string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | Iterable<import("react").ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
6
7
  displayName: string;
7
8
  };
8
9
  export default ConditionalWrapper;
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
2
  /**
4
3
  * Wraps all children in a specified HTML tag if a condition is met.
5
4
  */
6
- const ConditionalWrapper = ({ condition, wrapper, children }) => condition ? wrapper(children) : children;
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ConditionalWrapper = ({ condition, wrapper, children }) => {
7
+ return condition ? wrapper(children) : children;
8
+ };
7
9
  ConditionalWrapper.displayName = 'ConditionalWrapper';
8
10
  exports.default = ConditionalWrapper;
@@ -0,0 +1,4 @@
1
+ export interface ConditionalWrapperProps extends React.AllHTMLAttributes<HTMLElement> {
2
+ condition: boolean;
3
+ wrapper: (children: React.JSX.Element) => React.JSX.Element;
4
+ }
@@ -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 { FileIconProps } from './types';
2
3
  declare const FileIcon: {
3
- ({ ariaLabel, className, icon }: SGDS.Common.FileIcon): React.JSX.Element;
4
+ ({ ariaLabel, className, icon }: FileIconProps): React.JSX.Element;
4
5
  displayName: string;
5
6
  };
6
7
  export default FileIcon;
@@ -0,0 +1,6 @@
1
+ import { DocumentIconName } from '../../shared-types';
2
+ export interface FileIconProps extends React.AllHTMLAttributes<SVGSVGElement> {
3
+ ariaLabel?: React.AriaAttributes['aria-label'];
4
+ className?: string;
5
+ icon: DocumentIconName;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
+ import { HintTextProps } from "./types";
1
2
  declare const HintText: {
2
- ({ children, id, text, ...props }: SGDS.Common.HintText): import("react").JSX.Element;
3
+ ({ children, id, ...props }: HintTextProps): import("react").JSX.Element;
3
4
  displayName: string;
4
5
  };
5
6
  export default HintText;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const HintText = ({ children, id, text, ...props }) => {
4
- return (<p className="ds_hint-text" dangerouslySetInnerHTML={text ? { __html: text } : undefined} id={id} {...props}>
5
- {!text ? children : null}
3
+ const HintText = ({ children, id, ...props }) => {
4
+ return (<p className="ds_hint-text" id={id} {...props}>
5
+ {children}
6
6
  </p>);
7
7
  };
8
8
  HintText.displayName = 'HintText';
@@ -0,0 +1,4 @@
1
+ export interface HintTextProps extends React.AllHTMLAttributes<HTMLElement> {
2
+ id?: string;
3
+ text?: string;
4
+ }
@@ -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 { IconProps } from './types';
2
3
  declare const Icon: {
3
- ({ ariaLabel, className, isFilled, icon, iconSize }: SGDS.Common.Icon): React.JSX.Element;
4
+ ({ ariaLabel, className, isFilled, icon, iconSize }: IconProps): React.JSX.Element;
4
5
  displayName: string;
5
6
  };
6
7
  export default Icon;
@@ -38,14 +38,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importDefault(require("react"));
40
40
  const Icons = __importStar(require("../../images/icons"));
41
+ const clsx_1 = __importDefault(require("clsx"));
41
42
  const Icon = ({ ariaLabel, className, isFilled, icon, iconSize }) => {
42
43
  const IconComponent = Icons[icon];
43
- return (<IconComponent aria-hidden={ariaLabel ? undefined : true} aria-label={ariaLabel} className={[
44
+ return (<IconComponent aria-hidden={ariaLabel ? undefined : true} aria-label={ariaLabel} className={(0, clsx_1.default)([
44
45
  'ds_icon',
45
46
  className,
46
47
  isFilled && 'ds_icon--fill',
47
48
  iconSize && `ds_icon--${iconSize}`
48
- ].join(' ')}/>);
49
+ ])}/>);
49
50
  };
50
51
  Icon.displayName = 'Icon';
51
52
  exports.default = Icon;
@@ -0,0 +1,8 @@
1
+ import { IconName } from '../../shared-types';
2
+ export interface IconProps extends React.AllHTMLAttributes<SVGSVGElement> {
3
+ ariaLabel?: React.AriaAttributes['aria-label'];
4
+ className?: string;
5
+ isFilled?: boolean;
6
+ icon: IconName;
7
+ iconSize?: string;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,5 @@
1
1
  declare const ScreenReaderText: {
2
- ({ children, ...props }: SGDS.Common.ScreenReaderText): import("react").JSX.Element;
2
+ ({ children, ...props }: React.AllHTMLAttributes<HTMLElement>): import("react").JSX.Element;
3
3
  displayName: string;
4
4
  };
5
5
  export default ScreenReaderText;