@scottish-government/designsystem-react 0.13.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/.storybook/sgdsArgTypes.ts +23 -0
  2. package/CHANGELOG.md +23 -0
  3. package/LICENSE.txt +21 -0
  4. package/README.md +4 -5
  5. package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.d.ts +3 -2
  6. package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.jsx +8 -7
  7. package/dist/common/AbstractNotificationBanner/types.d.ts +13 -0
  8. package/dist/common/AbstractNotificationBanner/types.js +2 -0
  9. package/dist/common/ActionLink/ActionLink.d.ts +2 -1
  10. package/dist/common/ActionLink/types.d.ts +7 -0
  11. package/dist/common/ActionLink/types.js +2 -0
  12. package/dist/common/ConditionalWrapper/ConditionalWrapper.d.ts +2 -1
  13. package/dist/common/ConditionalWrapper/ConditionalWrapper.jsx +4 -2
  14. package/dist/common/ConditionalWrapper/types.d.ts +4 -0
  15. package/dist/common/ConditionalWrapper/types.js +2 -0
  16. package/dist/common/FileIcon/FileIcon.d.ts +2 -1
  17. package/dist/common/FileIcon/types.d.ts +6 -0
  18. package/dist/common/FileIcon/types.js +2 -0
  19. package/dist/common/HintText/HintText.d.ts +2 -1
  20. package/dist/common/HintText/HintText.jsx +3 -3
  21. package/dist/common/HintText/types.d.ts +4 -0
  22. package/dist/common/HintText/types.js +2 -0
  23. package/dist/common/Icon/Icon.d.ts +2 -1
  24. package/dist/common/Icon/Icon.jsx +3 -2
  25. package/dist/common/Icon/types.d.ts +8 -0
  26. package/dist/common/Icon/types.js +2 -0
  27. package/dist/common/ScreenReaderText/ScreenReaderText.d.ts +1 -1
  28. package/dist/common/WrapperTag/WrapperTag.d.ts +385 -1
  29. package/dist/common/WrapperTag/WrapperTag.jsx +5 -2
  30. package/dist/common/WrapperTag/types.d.ts +3 -0
  31. package/dist/common/WrapperTag/types.js +2 -0
  32. package/dist/components/Accordion/Accordion.d.ts +3 -2
  33. package/dist/components/Accordion/Accordion.jsx +12 -11
  34. package/dist/components/Accordion/types.d.ts +11 -0
  35. package/dist/components/Accordion/types.js +2 -0
  36. package/dist/components/AspectBox/AspectBox.d.ts +2 -1
  37. package/dist/components/AspectBox/AspectBox.jsx +3 -9
  38. package/dist/components/AspectBox/types.d.ts +3 -0
  39. package/dist/components/AspectBox/types.js +2 -0
  40. package/dist/components/BackToTop/BackToTop.d.ts +2 -1
  41. package/dist/components/BackToTop/BackToTop.jsx +4 -3
  42. package/dist/components/BackToTop/types.d.ts +3 -0
  43. package/dist/components/BackToTop/types.js +2 -0
  44. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +3 -2
  45. package/dist/components/Breadcrumbs/Breadcrumbs.jsx +6 -2
  46. package/dist/components/Breadcrumbs/types.d.ts +5 -0
  47. package/dist/components/Breadcrumbs/types.js +2 -0
  48. package/dist/components/Button/Button.d.ts +2 -1
  49. package/dist/components/Button/Button.jsx +4 -3
  50. package/dist/components/Button/ButtonGroup.d.ts +2 -1
  51. package/dist/components/Button/ButtonGroup.jsx +9 -4
  52. package/dist/components/Button/types.d.ts +20 -0
  53. package/dist/components/Button/types.js +2 -0
  54. package/dist/components/Card/Card.d.ts +34 -0
  55. package/dist/components/Card/Card.jsx +118 -0
  56. package/dist/components/Card/index.d.ts +1 -0
  57. package/dist/components/Card/index.js +8 -0
  58. package/dist/components/Card/types.d.ts +26 -0
  59. package/dist/components/Card/types.js +2 -0
  60. package/dist/components/CategoryItem/CategoryItem.d.ts +2 -1
  61. package/dist/components/CategoryItem/CategoryItem.jsx +8 -5
  62. package/dist/components/CategoryItem/types.d.ts +9 -0
  63. package/dist/components/CategoryItem/types.js +2 -0
  64. package/dist/components/CategoryList/CategoryList.d.ts +2 -1
  65. package/dist/components/CategoryList/CategoryList.jsx +3 -2
  66. package/dist/components/CategoryList/types.d.ts +5 -0
  67. package/dist/components/CategoryList/types.js +2 -0
  68. package/dist/components/Checkbox/Checkbox.d.ts +2 -1
  69. package/dist/components/Checkbox/Checkbox.jsx +4 -3
  70. package/dist/components/Checkbox/CheckboxGroup.d.ts +2 -1
  71. package/dist/components/Checkbox/CheckboxGroup.jsx +5 -4
  72. package/dist/components/Checkbox/types.d.ts +7 -0
  73. package/dist/components/Checkbox/types.js +2 -0
  74. package/dist/components/ConfirmationMessage/ConfirmationMessage.d.ts +2 -1
  75. package/dist/components/ConfirmationMessage/ConfirmationMessage.jsx +3 -2
  76. package/dist/components/ConfirmationMessage/types.d.ts +6 -0
  77. package/dist/components/ConfirmationMessage/types.js +2 -0
  78. package/dist/components/ContentsNav/ContentsNav.d.ts +3 -2
  79. package/dist/components/ContentsNav/ContentsNav.jsx +7 -5
  80. package/dist/components/ContentsNav/types.d.ts +9 -0
  81. package/dist/components/ContentsNav/types.js +2 -0
  82. package/dist/components/CookieBanner/CookieBanner.d.ts +3 -2
  83. package/dist/components/CookieBanner/CookieBanner.jsx +13 -3
  84. package/dist/components/DatePicker/DatePicker.d.ts +2 -1
  85. package/dist/components/DatePicker/DatePicker.jsx +7 -7
  86. package/dist/components/DatePicker/types.d.ts +18 -0
  87. package/dist/components/DatePicker/types.js +2 -0
  88. package/dist/components/Details/Details.d.ts +2 -1
  89. package/dist/components/Details/Details.jsx +6 -2
  90. package/dist/components/Details/types.d.ts +4 -0
  91. package/dist/components/Details/types.js +2 -0
  92. package/dist/components/ErrorMessage/ErrorMessage.d.ts +2 -1
  93. package/dist/components/ErrorMessage/ErrorMessage.jsx +6 -2
  94. package/dist/components/ErrorMessage/types.d.ts +3 -0
  95. package/dist/components/ErrorMessage/types.js +2 -0
  96. package/dist/components/ErrorSummary/ErrorSummary.d.ts +3 -2
  97. package/dist/components/ErrorSummary/ErrorSummary.jsx +6 -2
  98. package/dist/components/ErrorSummary/types.d.ts +8 -0
  99. package/dist/components/ErrorSummary/types.js +2 -0
  100. package/dist/components/FeatureHeader/FeatureHeader.d.ts +7 -5
  101. package/dist/components/FeatureHeader/FeatureHeader.jsx +87 -50
  102. package/dist/components/FeatureHeader/types.d.ts +12 -0
  103. package/dist/components/FeatureHeader/types.js +2 -0
  104. package/dist/components/FileDownload/FileDownload.d.ts +2 -1
  105. package/dist/components/FileDownload/FileDownload.jsx +4 -3
  106. package/dist/components/FileDownload/types.d.ts +10 -0
  107. package/dist/components/FileDownload/types.js +2 -0
  108. package/dist/components/HideThisPage/HideThisPage.d.ts +2 -1
  109. package/dist/components/HideThisPage/HideThisPage.jsx +5 -4
  110. package/dist/components/HideThisPage/types.d.ts +3 -0
  111. package/dist/components/HideThisPage/types.js +2 -0
  112. package/dist/components/InsetText/InsetText.d.ts +1 -1
  113. package/dist/components/InsetText/InsetText.jsx +6 -2
  114. package/dist/components/NotificationBanner/NotificationBanner.d.ts +3 -2
  115. package/dist/components/NotificationBanner/NotificationBanner.jsx +5 -4
  116. package/dist/components/NotificationPanel/NotificationPanel.d.ts +2 -1
  117. package/dist/components/NotificationPanel/NotificationPanel.jsx +3 -2
  118. package/dist/components/NotificationPanel/types.d.ts +6 -0
  119. package/dist/components/NotificationPanel/types.js +2 -0
  120. package/dist/components/NotificationTag/NotificationTag.d.ts +6 -0
  121. package/dist/components/NotificationTag/NotificationTag.jsx +20 -0
  122. package/dist/components/NotificationTag/index.d.ts +1 -0
  123. package/dist/components/NotificationTag/index.js +8 -0
  124. package/dist/components/NotificationTag/types.d.ts +5 -0
  125. package/dist/components/NotificationTag/types.js +2 -0
  126. package/dist/components/PageHeader/PageHeader.d.ts +2 -1
  127. package/dist/components/PageHeader/PageHeader.jsx +6 -2
  128. package/dist/components/PageHeader/types.d.ts +5 -0
  129. package/dist/components/PageHeader/types.js +2 -0
  130. package/dist/components/PageMetadata/PageMetadata.d.ts +3 -2
  131. package/dist/components/PageMetadata/PageMetadata.jsx +8 -4
  132. package/dist/components/PageMetadata/types.d.ts +6 -0
  133. package/dist/components/PageMetadata/types.js +2 -0
  134. package/dist/components/Pagination/Pagination.d.ts +3 -2
  135. package/dist/components/Pagination/Pagination.jsx +7 -5
  136. package/dist/components/Pagination/types.d.ts +18 -0
  137. package/dist/components/Pagination/types.js +2 -0
  138. package/dist/components/PhaseBanner/PhaseBanner.d.ts +2 -1
  139. package/dist/components/PhaseBanner/PhaseBanner.jsx +3 -2
  140. package/dist/components/PhaseBanner/types.d.ts +3 -0
  141. package/dist/components/PhaseBanner/types.js +2 -0
  142. package/dist/components/Question/Question.d.ts +2 -1
  143. package/dist/components/Question/Question.jsx +4 -3
  144. package/dist/components/Question/types.d.ts +9 -0
  145. package/dist/components/Question/types.js +2 -0
  146. package/dist/components/RadioButton/RadioButton.d.ts +2 -1
  147. package/dist/components/RadioButton/RadioButton.jsx +4 -3
  148. package/dist/components/RadioButton/RadioGroup.d.ts +2 -1
  149. package/dist/components/RadioButton/RadioGroup.jsx +3 -2
  150. package/dist/components/RadioButton/types.d.ts +10 -0
  151. package/dist/components/RadioButton/types.js +2 -0
  152. package/dist/components/SearchFacets/SearchFacets.d.ts +4 -3
  153. package/dist/components/SearchFacets/SearchFacets.jsx +3 -2
  154. package/dist/components/SearchFacets/types.d.ts +12 -0
  155. package/dist/components/SearchFacets/types.js +2 -0
  156. package/dist/components/SearchFilters/SearchFilters.d.ts +5 -4
  157. package/dist/components/SearchFilters/types.d.ts +12 -0
  158. package/dist/components/SearchFilters/types.js +2 -0
  159. package/dist/components/SearchResult/SearchResult.d.ts +8 -11
  160. package/dist/components/SearchResult/SearchResult.jsx +6 -7
  161. package/dist/components/SearchResult/types.d.ts +11 -0
  162. package/dist/components/SearchResult/types.js +2 -0
  163. package/dist/components/SearchSort/SearchSort.d.ts +2 -1
  164. package/dist/components/SearchSort/SearchSort.jsx +3 -2
  165. package/dist/components/SearchSort/types.d.ts +7 -0
  166. package/dist/components/SearchSort/types.js +2 -0
  167. package/dist/components/Select/Select.d.ts +2 -1
  168. package/dist/components/Select/Select.jsx +4 -3
  169. package/dist/components/Select/types.d.ts +6 -0
  170. package/dist/components/Select/types.js +2 -0
  171. package/dist/components/SequentialNavigation/SequentialNavigation.d.ts +4 -3
  172. package/dist/components/SequentialNavigation/SequentialNavigation.jsx +10 -6
  173. package/dist/components/SequentialNavigation/types.d.ts +10 -0
  174. package/dist/components/SequentialNavigation/types.js +2 -0
  175. package/dist/components/SideNavigation/SideNavigation.d.ts +4 -3
  176. package/dist/components/SideNavigation/SideNavigation.jsx +10 -7
  177. package/dist/components/SideNavigation/types.d.ts +13 -0
  178. package/dist/components/SideNavigation/types.js +2 -0
  179. package/dist/components/SiteFooter/SiteFooter.d.ts +6 -5
  180. package/dist/components/SiteFooter/SiteFooter.jsx +4 -3
  181. package/dist/components/SiteFooter/types.d.ts +16 -0
  182. package/dist/components/SiteFooter/types.js +2 -0
  183. package/dist/components/SiteHeader/SiteHeader.d.ts +6 -5
  184. package/dist/components/SiteHeader/SiteHeader.jsx +1 -1
  185. package/dist/components/SiteHeader/types.d.ts +20 -0
  186. package/dist/components/SiteHeader/types.js +2 -0
  187. package/dist/components/SiteNavigation/SiteNavigation.d.ts +3 -2
  188. package/dist/components/SiteNavigation/SiteNavigation.jsx +12 -4
  189. package/dist/components/SiteNavigation/types.d.ts +9 -0
  190. package/dist/components/SiteNavigation/types.js +2 -0
  191. package/dist/components/SiteSearch/SiteSearch.d.ts +2 -1
  192. package/dist/components/SiteSearch/SiteSearch.jsx +12 -11
  193. package/dist/components/SiteSearch/types.d.ts +17 -0
  194. package/dist/components/SiteSearch/types.js +2 -0
  195. package/dist/components/SkipLinks/SkipLinks.d.ts +3 -2
  196. package/dist/components/SkipLinks/SkipLinks.jsx +4 -4
  197. package/dist/components/SkipLinks/types.d.ts +8 -0
  198. package/dist/components/SkipLinks/types.js +2 -0
  199. package/dist/components/SummaryCard/SummaryCard.d.ts +4 -2
  200. package/dist/components/SummaryCard/SummaryCard.jsx +5 -4
  201. package/dist/components/SummaryCard/types.d.ts +5 -0
  202. package/dist/components/SummaryCard/types.js +2 -0
  203. package/dist/components/SummaryList/SummaryList.d.ts +6 -4
  204. package/dist/components/SummaryList/SummaryList.jsx +5 -4
  205. package/dist/components/SummaryList/types.d.ts +6 -0
  206. package/dist/components/SummaryList/types.js +2 -0
  207. package/dist/components/Table/Table.d.ts +2 -1
  208. package/dist/components/Table/Table.jsx +5 -4
  209. package/dist/components/Table/types.d.ts +6 -0
  210. package/dist/components/Table/types.js +2 -0
  211. package/dist/components/Tabs/Tabs.d.ts +3 -2
  212. package/dist/components/Tabs/Tabs.jsx +6 -5
  213. package/dist/components/Tabs/types.d.ts +16 -0
  214. package/dist/components/Tabs/types.js +2 -0
  215. package/dist/components/Tag/Tag.d.ts +2 -1
  216. package/dist/components/Tag/Tag.jsx +7 -3
  217. package/dist/components/Tag/types.d.ts +4 -0
  218. package/dist/components/Tag/types.js +2 -0
  219. package/dist/components/TaskList/TaskList.d.ts +4 -3
  220. package/dist/components/TaskList/TaskList.jsx +11 -8
  221. package/dist/components/TaskList/types.d.ts +17 -0
  222. package/dist/components/TaskList/types.js +2 -0
  223. package/dist/components/TextInput/TextInput.d.ts +2 -1
  224. package/dist/components/TextInput/TextInput.jsx +10 -9
  225. package/dist/components/TextInput/types.d.ts +11 -0
  226. package/dist/components/TextInput/types.js +2 -0
  227. package/dist/components/Textarea/Textarea.d.ts +2 -1
  228. package/dist/components/Textarea/Textarea.jsx +6 -5
  229. package/dist/components/WarningText/WarningText.d.ts +1 -1
  230. package/dist/components/WarningText/WarningText.jsx +6 -2
  231. package/dist/hooks/useTracking/useTracking.js +0 -1
  232. package/dist/index.d.ts +4 -0
  233. package/dist/index.js +40 -0
  234. package/dist/shared-types.d.ts +35 -0
  235. package/dist/shared-types.js +2 -0
  236. package/dist/tsconfig.tsbuildinfo +1 -0
  237. package/package.json +5 -3
  238. package/src/common/AbstractNotificationBanner/AbstractNotificationBanner.tsx +8 -6
  239. package/src/common/Icon/Icon.tsx +3 -2
  240. package/src/components/Accordion/Accordion.test.tsx +11 -0
  241. package/src/components/Accordion/Accordion.tsx +11 -10
  242. package/src/components/AspectBox/AspectBox.tsx +4 -11
  243. package/src/components/BackToTop/BackToTop.test.tsx +21 -1
  244. package/src/components/BackToTop/BackToTop.tsx +4 -3
  245. package/src/components/Breadcrumbs/Breadcrumbs.tsx +3 -2
  246. package/src/components/Button/Button.tsx +4 -3
  247. package/src/components/Button/ButtonGroup.stories.tsx +22 -0
  248. package/src/components/Button/ButtonGroup.test.tsx +21 -0
  249. package/src/components/Button/ButtonGroup.tsx +6 -3
  250. package/src/components/Button/types.ts +1 -0
  251. package/src/components/Card/Card.stories.tsx +446 -0
  252. package/src/components/Card/Card.test.tsx +282 -0
  253. package/src/components/Card/Card.tsx +208 -0
  254. package/src/components/Card/index.ts +1 -0
  255. package/src/components/Card/types.ts +30 -0
  256. package/src/components/CategoryItem/CategoryItem.tsx +3 -2
  257. package/src/components/CategoryList/CategoryList.tsx +3 -2
  258. package/src/components/Checkbox/Checkbox.test.tsx +30 -0
  259. package/src/components/Checkbox/Checkbox.tsx +3 -3
  260. package/src/components/Checkbox/CheckboxGroup.test.tsx +10 -0
  261. package/src/components/Checkbox/CheckboxGroup.tsx +5 -4
  262. package/src/components/ConfirmationMessage/ConfirmationMessage.tsx +3 -2
  263. package/src/components/ContentsNav/ContentsNav.tsx +8 -5
  264. package/src/components/CookieBanner/CookieBanner.test.tsx +18 -1
  265. package/src/components/CookieBanner/CookieBanner.tsx +5 -4
  266. package/src/components/DatePicker/DatePicker.test.tsx +52 -14
  267. package/src/components/DatePicker/DatePicker.tsx +6 -7
  268. package/src/components/DatePicker/types.ts +2 -3
  269. package/src/components/Details/Details.tsx +3 -2
  270. package/src/components/ErrorMessage/ErrorMessage.tsx +3 -2
  271. package/src/components/ErrorSummary/ErrorSummary.tsx +3 -2
  272. package/src/components/FeatureHeader/FeatureHeader.stories.tsx +223 -0
  273. package/src/components/FeatureHeader/FeatureHeader.test.tsx +298 -0
  274. package/src/components/FeatureHeader/FeatureHeader.tsx +119 -0
  275. package/src/components/FeatureHeader/index.ts +1 -0
  276. package/src/components/FeatureHeader/types.ts +13 -0
  277. package/src/components/FileDownload/FileDownload.test.tsx +1 -5
  278. package/src/components/FileDownload/FileDownload.tsx +4 -3
  279. package/src/components/HideThisPage/HideThisPage.test.tsx +12 -1
  280. package/src/components/HideThisPage/HideThisPage.tsx +5 -4
  281. package/src/components/InsetText/InsetText.tsx +4 -2
  282. package/src/components/NotificationBanner/NotificationBanner.test.tsx +10 -0
  283. package/src/components/NotificationBanner/NotificationBanner.tsx +4 -3
  284. package/src/components/NotificationPanel/NotificationPanel.tsx +3 -2
  285. package/src/components/NotificationTag/NotificationTag.stories.tsx +68 -0
  286. package/src/components/NotificationTag/NotificationTag.test.tsx +70 -0
  287. package/src/components/NotificationTag/NotificationTag.tsx +32 -0
  288. package/src/components/NotificationTag/index.ts +1 -0
  289. package/src/components/NotificationTag/types.ts +5 -0
  290. package/src/components/PageHeader/PageHeader.tsx +3 -2
  291. package/src/components/PageMetadata/PageMetadata.tsx +5 -4
  292. package/src/components/Pagination/Pagination.test.tsx +20 -0
  293. package/src/components/Pagination/Pagination.tsx +7 -5
  294. package/src/components/PhaseBanner/PhaseBanner.tsx +3 -2
  295. package/src/components/Question/Question.tsx +3 -2
  296. package/src/components/Question/types.ts +2 -2
  297. package/src/components/RadioButton/RadioButton.test.tsx +30 -0
  298. package/src/components/RadioButton/RadioButton.tsx +3 -3
  299. package/src/components/RadioButton/RadioGroup.tsx +3 -2
  300. package/src/components/SearchFacets/SearchFacets.stories.tsx +1 -1
  301. package/src/components/SearchFacets/SearchFacets.tsx +3 -2
  302. package/src/components/SearchResult/SearchResult.stories.tsx +14 -13
  303. package/src/components/SearchResult/SearchResult.test.tsx +5 -4
  304. package/src/components/SearchResult/SearchResult.tsx +6 -7
  305. package/src/components/SearchSort/SearchSort.tsx +3 -2
  306. package/src/components/Select/Select.test.tsx +42 -0
  307. package/src/components/Select/Select.tsx +3 -2
  308. package/src/components/SequentialNavigation/SequentialNavigation.tsx +7 -6
  309. package/src/components/SideNavigation/SideNavigation.test.tsx +24 -0
  310. package/src/components/SideNavigation/SideNavigation.tsx +10 -7
  311. package/src/components/SiteFooter/SiteFooter.tsx +3 -2
  312. package/src/components/SiteHeader/SiteHeader.test.tsx +29 -16
  313. package/src/components/SiteHeader/SiteHeader.tsx +1 -1
  314. package/src/components/SiteNavigation/SiteNavigation.test.tsx +16 -1
  315. package/src/components/SiteNavigation/SiteNavigation.tsx +9 -4
  316. package/src/components/SiteSearch/SiteSearch.test.tsx +22 -0
  317. package/src/components/SiteSearch/SiteSearch.tsx +10 -9
  318. package/src/components/SiteSearch/types.ts +7 -1
  319. package/src/components/SkipLinks/SkipLinks.tsx +4 -4
  320. package/src/components/SummaryCard/SummaryCard.tsx +3 -2
  321. package/src/components/SummaryList/SummaryList.tsx +4 -4
  322. package/src/components/Table/Table.test.tsx +36 -0
  323. package/src/components/Table/Table.tsx +5 -4
  324. package/src/components/Tabs/Tabs.test.tsx +14 -0
  325. package/src/components/Tabs/Tabs.tsx +6 -5
  326. package/src/components/Tag/Tag.tsx +4 -3
  327. package/src/components/TaskList/TaskList.tsx +5 -4
  328. package/src/components/TextInput/TextInput.test.tsx +53 -1
  329. package/src/components/TextInput/TextInput.tsx +12 -7
  330. package/src/components/Textarea/Textarea.test.tsx +53 -1
  331. package/src/components/Textarea/Textarea.tsx +5 -4
  332. package/src/components/WarningText/WarningText.tsx +4 -2
  333. package/src/hooks/useTracking/useTracking.ts +0 -1
  334. package/src/images/icons/arrow_upward.tsx +10 -10
  335. package/src/images/icons/calendar_today.tsx +10 -10
  336. package/src/images/icons/cancel.tsx +8 -8
  337. package/src/images/icons/check_circle.tsx +10 -10
  338. package/src/images/icons/chevron_left.tsx +10 -10
  339. package/src/images/icons/chevron_right.tsx +10 -10
  340. package/src/images/icons/close.tsx +10 -10
  341. package/src/images/icons/description.tsx +10 -10
  342. package/src/images/icons/double_chevron_left.tsx +8 -8
  343. package/src/images/icons/double_chevron_right.tsx +8 -8
  344. package/src/images/icons/error.tsx +10 -10
  345. package/src/images/icons/expand_less.tsx +10 -10
  346. package/src/images/icons/expand_more.tsx +10 -10
  347. package/src/images/icons/list.tsx +13 -13
  348. package/src/images/icons/menu.tsx +10 -10
  349. package/src/images/icons/priority_high.tsx +11 -11
  350. package/src/images/icons/search.tsx +10 -10
  351. package/src/shared-types.ts +3 -3
  352. package/static/images/illustration.svg +502 -0
  353. package/tsconfig.json +0 -3
  354. package/vite.config.ts +4 -0
@@ -18,4 +18,5 @@ export interface ButtonProps extends React.AllHTMLAttributes<HTMLButtonElement>
18
18
 
19
19
  export interface ButtonGroupProps extends React.AllHTMLAttributes<HTMLElement> {
20
20
  isInline?: boolean;
21
+ isWrap?: boolean;
21
22
  }
@@ -0,0 +1,446 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ import argTypes from '../../../.storybook/sgdsArgTypes';
3
+
4
+ import Card from './Card';
5
+ import ButtonGroup from '../Button/ButtonGroup';
6
+ import Button from '../Button';
7
+ import Metadata from '../PageMetadata';
8
+ import NotificationTag from '../NotificationTag';
9
+ // @ts-expect-error no types
10
+ import coo from '../../../static/images/highland-cow.jpg';
11
+
12
+ const meta = {
13
+ title: 'Components/Card',
14
+ component: Card,
15
+ argTypes: {
16
+ children: argTypes.children(),
17
+ tagName: {
18
+ description: 'HTML tag name to use for the card',
19
+ type: 'string'
20
+ },
21
+ hasSecondaryBackground: {
22
+ description: 'Sets the card to have a secondary background colour',
23
+ control: 'boolean',
24
+ },
25
+ href: {
26
+ description: 'Href attribute for navigation card',
27
+ type: 'string'
28
+ },
29
+ isAdaptive: {
30
+ description: 'Makes the card display a horizontal layout when the card itself is wider than mobile size',
31
+ control: 'boolean',
32
+ },
33
+ isHorizontal: {
34
+ description: 'Makes the card display a horizontal layout at all times',
35
+ control: 'boolean',
36
+ },
37
+ isHorizontalSmall: {
38
+ description: 'Makes the card display a horizontal layout when the viewport is at mobile size',
39
+ control: 'boolean',
40
+ },
41
+ },
42
+ args: {
43
+ headingLevel: 'h2',
44
+ tagName: 'div'
45
+ }
46
+ } satisfies Meta<typeof Card>;
47
+
48
+ export default meta;
49
+ type Story = StoryObj<typeof meta>;
50
+
51
+ export const Default: Story = {
52
+ render: (args) => (
53
+ <Card {...args}>
54
+ <Card.Content>
55
+ <Card.ContentHeader title="About the Design System">
56
+ </Card.ContentHeader>
57
+ </Card.Content>
58
+ </Card>
59
+ )
60
+ };
61
+
62
+ export const SecondaryBackground: Story = {
63
+ args: {
64
+ hasSecondaryBackground: true
65
+ },
66
+ render: (args) => (
67
+ <Card {...args}>
68
+ <Card.Content>
69
+ <Card.ContentHeader title="About the Design System">
70
+ </Card.ContentHeader>
71
+ </Card.Content>
72
+ </Card>
73
+ )
74
+ };
75
+
76
+ export const NavigationCard: Story = {
77
+ args: {
78
+ href: '#foo'
79
+ },
80
+ render: (args) => (
81
+ <Card {...args}>
82
+ <Card.Content>
83
+ <Card.ContentHeader title="About the Design System">
84
+ </Card.ContentHeader>
85
+ </Card.Content>
86
+ </Card>
87
+ )
88
+ };
89
+
90
+ export const WithSummary: Story = {
91
+ args: {
92
+ href: '#foo'
93
+ },
94
+ render: (args) => (
95
+ <Card {...args}>
96
+ <Card.Content>
97
+ <Card.ContentHeader title="About the Design System">
98
+ </Card.ContentHeader>
99
+ <Card.ContentMain>
100
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
101
+ </Card.ContentMain>
102
+ </Card.Content>
103
+ </Card>
104
+ )
105
+ };
106
+
107
+ export const DifferentHeadingLevel: Story = {
108
+ args: {
109
+ headingLevel: 'h4'
110
+ },
111
+ render: (args) => (
112
+ <Card {...args}>
113
+ <Card.Content>
114
+ <Card.ContentHeader title="About the Design System">
115
+ </Card.ContentHeader>
116
+ </Card.Content>
117
+ </Card>
118
+ )
119
+ };
120
+
121
+ export const DifferentContainerElement: Story = {
122
+ args: {
123
+ tagName: 'li'
124
+ },
125
+ render: (args) => (
126
+ <Card {...args}>
127
+ <Card.Content>
128
+ <Card.ContentHeader title="About the Design System">
129
+ </Card.ContentHeader>
130
+ </Card.Content>
131
+ </Card>
132
+ )
133
+ };
134
+
135
+ export const WithImage: Story = {
136
+ args: {
137
+ href: '#foo'
138
+ },
139
+ render: (args) => (
140
+ <Card {...args}>
141
+ <Card.Media>
142
+ <img src={coo} alt=""/>
143
+ </Card.Media>
144
+ <Card.Content>
145
+ <Card.ContentHeader title="About the Design System">
146
+ </Card.ContentHeader>
147
+ <Card.ContentMain>
148
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
149
+ </Card.ContentMain>
150
+ </Card.Content>
151
+ </Card>
152
+ )
153
+ };
154
+
155
+ export const WithMetaData: Story = {
156
+ args: {
157
+ href: '#foo'
158
+ },
159
+ render: (args) => (
160
+ <Card {...args}>
161
+ <Card.Content>
162
+ <Card.ContentHeader title="About the Design System">
163
+ </Card.ContentHeader>
164
+ <Card.ContentMain>
165
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
166
+ </Card.ContentMain>
167
+ <Card.ContentFooter>
168
+ <Card.Metadata>
169
+ <Metadata.Item name="Publication type">
170
+ Statistics
171
+ </Metadata.Item>
172
+ <Metadata.Item name="Date">
173
+ 18 June 2024
174
+ </Metadata.Item>
175
+ </Card.Metadata>
176
+ </Card.ContentFooter>
177
+ </Card.Content>
178
+ </Card>
179
+ )
180
+ };
181
+
182
+ export const WithButtons: Story = {
183
+ render: (args) => (
184
+ <Card {...args}>
185
+ <Card.Content>
186
+ <Card.ContentHeader title="About the Design System">
187
+ </Card.ContentHeader>
188
+ <Card.ContentMain>
189
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
190
+ <ButtonGroup isWrap>
191
+ <Button buttonStyle="secondary" isSmall>Button one</Button>
192
+ <Button buttonStyle="secondary" isSmall>Button two</Button>
193
+ <Button buttonStyle="secondary" isSmall>Button three</Button>
194
+ </ButtonGroup>
195
+ </Card.ContentMain>
196
+ </Card.Content>
197
+ </Card>
198
+ )
199
+ };
200
+
201
+ export const WithStatus: Story = {
202
+ render: (args) => (
203
+ <Card {...args}>
204
+ <Card.Content>
205
+ <Card.ContentHeader
206
+ title="About the Design System"
207
+ description="New release"
208
+ >
209
+ <Card.StatusTag colour="orange" isHidden>New release</Card.StatusTag>
210
+ </Card.ContentHeader>
211
+ <Card.ContentMain>
212
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
213
+ </Card.ContentMain>
214
+ </Card.Content>
215
+ </Card>
216
+ )
217
+ };
218
+
219
+ export const WithIcon: Story = {
220
+ render: (args) => (
221
+ <Card {...args}>
222
+ <Card.Content>
223
+ <Card.ContentHeader title="About the Design System">
224
+ <svg className="ds_icon" aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 40" width="30" height="40" fill="none">
225
+ <path d="m2.77792 35c-.75 0-1.40056-.2754-1.95167-.8262-.550833-.5512-.82625-1.2017-.82625-1.9517v-24.44418c0-.75.275417-1.40056.82625-1.95167.55111-.55083 1.20167-.82625 1.95167-.82625h24.44418c.75 0 1.4005.27542 1.9517.82625.5508.55111.8262 1.20167.8262 1.95167v24.44418c0 .75-.2754 1.4005-.8262 1.9517-.5512.5508-1.2017.8262-1.9517.8262zm5.19416-6.6387h8.75002c.3936 0 .7235-.1337.9896-.4009.2664-.2672.3995-.5982.3995-.9929 0-.395-.1331-.7244-.3995-.9883-.2661-.2639-.596-.3959-.9896-.3959h-8.75002c-.39333 0-.72319.1336-.98958.4009-.26611.2669-.39917.5979-.39917.9929s.13306.7244.39917.9883c.26639.2639.59625.3959.98958.3959zm0-6.9726h14.05582c.3933 0 .7232-.1334.9896-.4004.2661-.2672.3992-.5983.3992-.9933 0-.3947-.1331-.724-.3992-.9879-.2664-.2639-.5963-.3959-.9896-.3959h-14.05582c-.39333 0-.72319.1335-.98958.4005-.26611.2672-.39917.5983-.39917.9933 0 .3947.13306.724.39917.9879.26639.2639.59625.3958.98958.3958zm0-6.972h14.05582c.3933 0 .7232-.1336.9896-.4009.2661-.2669.3992-.5979.3992-.9929s-.1331-.7244-.3992-.9883c-.2664-.2639-.5963-.3958-.9896-.3958h-14.05582c-.39333 0-.72319.1336-.98958.4008-.26611.2672-.39917.5982-.39917.9929 0 .395.13306.7244.39917.9883.26639.2639.59625.3959.98958.3959z" />
226
+ </svg>
227
+ </Card.ContentHeader>
228
+ <Card.ContentMain>
229
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
230
+ </Card.ContentMain>
231
+ </Card.Content>
232
+ </Card>
233
+ )
234
+ };
235
+
236
+ export const WithIconAndNotificationTag: Story = {
237
+ render: (args) => (
238
+ <Card {...args}>
239
+ <Card.Content>
240
+ <Card.ContentHeader
241
+ title="About the Design System"
242
+ description="Unread notifications"
243
+ >
244
+ <NotificationTag
245
+ label="99+"
246
+ description="Unread notifications"
247
+ isHidden
248
+ >
249
+ <svg className="ds_icon" aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 40" width="30" height="40" fill="none">
250
+ <path d="m2.77792 35c-.75 0-1.40056-.2754-1.95167-.8262-.550833-.5512-.82625-1.2017-.82625-1.9517v-24.44418c0-.75.275417-1.40056.82625-1.95167.55111-.55083 1.20167-.82625 1.95167-.82625h24.44418c.75 0 1.4005.27542 1.9517.82625.5508.55111.8262 1.20167.8262 1.95167v24.44418c0 .75-.2754 1.4005-.8262 1.9517-.5512.5508-1.2017.8262-1.9517.8262zm5.19416-6.6387h8.75002c.3936 0 .7235-.1337.9896-.4009.2664-.2672.3995-.5982.3995-.9929 0-.395-.1331-.7244-.3995-.9883-.2661-.2639-.596-.3959-.9896-.3959h-8.75002c-.39333 0-.72319.1336-.98958.4009-.26611.2669-.39917.5979-.39917.9929s.13306.7244.39917.9883c.26639.2639.59625.3959.98958.3959zm0-6.9726h14.05582c.3933 0 .7232-.1334.9896-.4004.2661-.2672.3992-.5983.3992-.9933 0-.3947-.1331-.724-.3992-.9879-.2664-.2639-.5963-.3959-.9896-.3959h-14.05582c-.39333 0-.72319.1335-.98958.4005-.26611.2672-.39917.5983-.39917.9933 0 .3947.13306.724.39917.9879.26639.2639.59625.3958.98958.3958zm0-6.972h14.05582c.3933 0 .7232-.1336.9896-.4009.2661-.2669.3992-.5979.3992-.9929s-.1331-.7244-.3992-.9883c-.2664-.2639-.5963-.3958-.9896-.3958h-14.05582c-.39333 0-.72319.1336-.98958.4008-.26611.2672-.39917.5982-.39917.9929 0 .395.13306.7244.39917.9883.26639.2639.59625.3959.98958.3959z" />
251
+ </svg>
252
+ </NotificationTag>
253
+ </Card.ContentHeader>
254
+ <Card.ContentMain>
255
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
256
+ </Card.ContentMain>
257
+ </Card.Content>
258
+ </Card>
259
+ )
260
+ };
261
+
262
+ export const WithIconAndNotificationDot: Story = {
263
+ render: (args) => (
264
+ <Card {...args}>
265
+ <Card.Content>
266
+ <Card.ContentHeader
267
+ description="Unread notifications"
268
+ title="About the Design System"
269
+ >
270
+ <NotificationTag
271
+ isHidden
272
+ >
273
+ <svg className="ds_icon" aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 40" width="30" height="40" fill="none">
274
+ <path d="m2.77792 35c-.75 0-1.40056-.2754-1.95167-.8262-.550833-.5512-.82625-1.2017-.82625-1.9517v-24.44418c0-.75.275417-1.40056.82625-1.95167.55111-.55083 1.20167-.82625 1.95167-.82625h24.44418c.75 0 1.4005.27542 1.9517.82625.5508.55111.8262 1.20167.8262 1.95167v24.44418c0 .75-.2754 1.4005-.8262 1.9517-.5512.5508-1.2017.8262-1.9517.8262zm5.19416-6.6387h8.75002c.3936 0 .7235-.1337.9896-.4009.2664-.2672.3995-.5982.3995-.9929 0-.395-.1331-.7244-.3995-.9883-.2661-.2639-.596-.3959-.9896-.3959h-8.75002c-.39333 0-.72319.1336-.98958.4009-.26611.2669-.39917.5979-.39917.9929s.13306.7244.39917.9883c.26639.2639.59625.3959.98958.3959zm0-6.9726h14.05582c.3933 0 .7232-.1334.9896-.4004.2661-.2672.3992-.5983.3992-.9933 0-.3947-.1331-.724-.3992-.9879-.2664-.2639-.5963-.3959-.9896-.3959h-14.05582c-.39333 0-.72319.1335-.98958.4005-.26611.2672-.39917.5983-.39917.9933 0 .3947.13306.724.39917.9879.26639.2639.59625.3958.98958.3958zm0-6.972h14.05582c.3933 0 .7232-.1336.9896-.4009.2661-.2669.3992-.5979.3992-.9929s-.1331-.7244-.3992-.9883c-.2664-.2639-.5963-.3958-.9896-.3958h-14.05582c-.39333 0-.72319.1336-.98958.4008-.26611.2672-.39917.5982-.39917.9929 0 .395.13306.7244.39917.9883.26639.2639.59625.3959.98958.3959z" />
275
+ </svg>
276
+ </NotificationTag>
277
+ </Card.ContentHeader>
278
+ <Card.ContentMain>
279
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
280
+ </Card.ContentMain>
281
+ </Card.Content>
282
+ </Card>
283
+ )
284
+ };
285
+
286
+ export const AdaptiveLayout: Story = {
287
+ args: {
288
+ href: '#foo',
289
+ isAdaptive: true
290
+ },
291
+ render: (args) => (
292
+ <Card {...args}>
293
+ <Card.Media isCover ratio="4:3">
294
+ <img src={coo} alt=""/>
295
+ </Card.Media>
296
+ <Card.Content>
297
+ <Card.ContentHeader title="About the Design System">
298
+ </Card.ContentHeader>
299
+ <Card.ContentMain>
300
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
301
+ </Card.ContentMain>
302
+ </Card.Content>
303
+ </Card>
304
+ )
305
+ };
306
+
307
+ export const HorizontalAlways: Story = {
308
+ args: {
309
+ href: '#foo',
310
+ isHorizontal: true
311
+ },
312
+ render: (args) => (
313
+ <Card {...args}>
314
+ <Card.Media isCover ratio="4:3">
315
+ <img src={coo} alt=""/>
316
+ </Card.Media>
317
+ <Card.Content>
318
+ <Card.ContentHeader title="About the Design System">
319
+ </Card.ContentHeader>
320
+ <Card.ContentMain>
321
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
322
+ </Card.ContentMain>
323
+ </Card.Content>
324
+ </Card>
325
+ )
326
+ };
327
+
328
+ export const HorizontalSmall: Story = {
329
+ args: {
330
+ href: '#foo',
331
+ isHorizontalSmall: true
332
+ },
333
+ render: (args) => (
334
+ <Card {...args}>
335
+ <Card.Media isCover ratio="4:3">
336
+ <img src={coo} alt=""/>
337
+ </Card.Media>
338
+ <Card.Content>
339
+ <Card.ContentHeader title="About the Design System">
340
+ </Card.ContentHeader>
341
+ <Card.ContentMain>
342
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
343
+ </Card.ContentMain>
344
+ </Card.Content>
345
+ </Card>
346
+ )
347
+ };
348
+
349
+ export const AspectBox: Story = {
350
+ render: (args) => (
351
+ <Card {...args}>
352
+ <Card.Media ratio="square">
353
+ <img src={coo} alt=""/>
354
+ </Card.Media>
355
+ <Card.Content>
356
+ <Card.ContentHeader title="About the Design System">
357
+ </Card.ContentHeader>
358
+ <Card.ContentMain>
359
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
360
+ </Card.ContentMain>
361
+ </Card.Content>
362
+ </Card>
363
+ )
364
+ };
365
+
366
+ export const NarrowImage: Story = {
367
+ args: {
368
+ href: '#foo',
369
+ isAdaptive: true
370
+ },
371
+ render: (args) => (
372
+ <Card {...args}>
373
+ <Card.Media isCover ratio="4:3" mediaWidth="narrow">
374
+ <img src={coo} alt=""/>
375
+ </Card.Media>
376
+ <Card.Content>
377
+ <Card.ContentHeader title="About the Design System">
378
+ </Card.ContentHeader>
379
+ <Card.ContentMain>
380
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
381
+ </Card.ContentMain>
382
+ </Card.Content>
383
+ </Card>
384
+ )
385
+ };
386
+
387
+ export const WideImage: Story = {
388
+ args: {
389
+ href: '#foo',
390
+ isAdaptive: true
391
+ },
392
+ render: (args) => (
393
+ <Card {...args}>
394
+ <Card.Media isCover ratio="21:9" mediaWidth="wide">
395
+ <img src={coo} alt=""/>
396
+ </Card.Media>
397
+ <Card.Content>
398
+ <Card.ContentHeader title="About the Design System">
399
+ </Card.ContentHeader>
400
+ <Card.ContentMain>
401
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
402
+ </Card.ContentMain>
403
+ </Card.Content>
404
+ </Card>
405
+ )
406
+ };
407
+
408
+ export const AllOptions: Story = {
409
+ args: {
410
+ href: '#foo'
411
+ },
412
+ render: (args) => (
413
+ <Card {...args}>
414
+ <Card.Media>
415
+ <img src={coo} alt=""/>
416
+ </Card.Media>
417
+ <Card.Content>
418
+ <Card.ContentHeader
419
+ title="About the Design System"
420
+ description="Unread notifications, New release">
421
+ <NotificationTag
422
+ isHidden
423
+ >
424
+ <svg className="ds_icon" aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 40" width="30" height="40" fill="none">
425
+ <path d="m2.77792 35c-.75 0-1.40056-.2754-1.95167-.8262-.550833-.5512-.82625-1.2017-.82625-1.9517v-24.44418c0-.75.275417-1.40056.82625-1.95167.55111-.55083 1.20167-.82625 1.95167-.82625h24.44418c.75 0 1.4005.27542 1.9517.82625.5508.55111.8262 1.20167.8262 1.95167v24.44418c0 .75-.2754 1.4005-.8262 1.9517-.5512.5508-1.2017.8262-1.9517.8262zm5.19416-6.6387h8.75002c.3936 0 .7235-.1337.9896-.4009.2664-.2672.3995-.5982.3995-.9929 0-.395-.1331-.7244-.3995-.9883-.2661-.2639-.596-.3959-.9896-.3959h-8.75002c-.39333 0-.72319.1336-.98958.4009-.26611.2669-.39917.5979-.39917.9929s.13306.7244.39917.9883c.26639.2639.59625.3959.98958.3959zm0-6.9726h14.05582c.3933 0 .7232-.1334.9896-.4004.2661-.2672.3992-.5983.3992-.9933 0-.3947-.1331-.724-.3992-.9879-.2664-.2639-.5963-.3959-.9896-.3959h-14.05582c-.39333 0-.72319.1335-.98958.4005-.26611.2672-.39917.5983-.39917.9933 0 .3947.13306.724.39917.9879.26639.2639.59625.3958.98958.3958zm0-6.972h14.05582c.3933 0 .7232-.1336.9896-.4009.2661-.2669.3992-.5979.3992-.9929s-.1331-.7244-.3992-.9883c-.2664-.2639-.5963-.3958-.9896-.3958h-14.05582c-.39333 0-.72319.1336-.98958.4008-.26611.2672-.39917.5982-.39917.9929 0 .395.13306.7244.39917.9883.26639.2639.59625.3959.98958.3959z" />
426
+ </svg>
427
+ </NotificationTag>
428
+ <Card.StatusTag colour="orange" isHidden>New release</Card.StatusTag>
429
+ </Card.ContentHeader>
430
+ <Card.ContentMain>
431
+ <p>The Scottish Government Design System provides static web assets for websites and web applications for the Scottish Government and other Scottish public sector bodies.</p>
432
+ </Card.ContentMain>
433
+ <Card.ContentFooter>
434
+ <Card.Metadata>
435
+ <Metadata.Item name="Publication type">
436
+ Statistics
437
+ </Metadata.Item>
438
+ <Metadata.Item name="Date">
439
+ 18 June 2024
440
+ </Metadata.Item>
441
+ </Card.Metadata>
442
+ </Card.ContentFooter>
443
+ </Card.Content>
444
+ </Card>
445
+ )
446
+ };