@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.
- package/.storybook/main.ts +6 -6
- package/.storybook/sgdsArgTypes.ts +107 -43
- package/CHANGELOG.md +49 -0
- package/LICENSE.txt +21 -0
- package/README.md +3 -0
- package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.d.ts +3 -2
- package/dist/common/AbstractNotificationBanner/AbstractNotificationBanner.jsx +8 -7
- package/dist/common/AbstractNotificationBanner/types.d.ts +13 -0
- package/dist/common/AbstractNotificationBanner/types.js +2 -0
- package/dist/common/ActionLink/ActionLink.d.ts +2 -1
- package/dist/common/ActionLink/types.d.ts +7 -0
- package/dist/common/ActionLink/types.js +2 -0
- package/dist/common/ConditionalWrapper/ConditionalWrapper.d.ts +2 -1
- package/dist/common/ConditionalWrapper/ConditionalWrapper.jsx +4 -2
- package/dist/common/ConditionalWrapper/types.d.ts +4 -0
- package/dist/common/ConditionalWrapper/types.js +2 -0
- package/dist/common/FileIcon/FileIcon.d.ts +2 -1
- package/dist/common/FileIcon/types.d.ts +6 -0
- package/dist/common/FileIcon/types.js +2 -0
- package/dist/common/HintText/HintText.d.ts +2 -1
- package/dist/common/HintText/HintText.jsx +3 -3
- package/dist/common/HintText/types.d.ts +4 -0
- package/dist/common/HintText/types.js +2 -0
- package/dist/common/Icon/Icon.d.ts +2 -1
- package/dist/common/Icon/Icon.jsx +3 -2
- package/dist/common/Icon/types.d.ts +8 -0
- package/dist/common/Icon/types.js +2 -0
- package/dist/common/ScreenReaderText/ScreenReaderText.d.ts +1 -1
- package/dist/common/WrapperTag/WrapperTag.d.ts +385 -1
- package/dist/common/WrapperTag/WrapperTag.jsx +5 -2
- package/dist/common/WrapperTag/types.d.ts +3 -0
- package/dist/common/WrapperTag/types.js +2 -0
- package/dist/components/Accordion/Accordion.d.ts +3 -2
- package/dist/components/Accordion/Accordion.jsx +12 -11
- package/dist/components/Accordion/types.d.ts +11 -0
- package/dist/components/Accordion/types.js +2 -0
- package/dist/components/AspectBox/AspectBox.d.ts +2 -1
- package/dist/components/AspectBox/AspectBox.jsx +3 -9
- package/dist/components/AspectBox/types.d.ts +3 -0
- package/dist/components/AspectBox/types.js +2 -0
- package/dist/components/BackToTop/BackToTop.d.ts +2 -1
- package/dist/components/BackToTop/BackToTop.jsx +4 -3
- package/dist/components/BackToTop/types.d.ts +3 -0
- package/dist/components/BackToTop/types.js +2 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +3 -2
- package/dist/components/Breadcrumbs/Breadcrumbs.jsx +6 -2
- package/dist/components/Breadcrumbs/types.d.ts +5 -0
- package/dist/components/Breadcrumbs/types.js +2 -0
- package/dist/components/Button/Button.d.ts +2 -1
- package/dist/components/Button/Button.jsx +4 -3
- package/dist/components/Button/ButtonGroup.d.ts +2 -1
- package/dist/components/Button/ButtonGroup.jsx +9 -4
- package/dist/components/Button/types.d.ts +20 -0
- package/dist/components/Button/types.js +2 -0
- package/dist/components/Card/Card.d.ts +34 -0
- package/dist/components/Card/Card.jsx +118 -0
- package/dist/components/Card/index.d.ts +1 -0
- package/dist/components/Card/index.js +8 -0
- package/dist/components/Card/types.d.ts +26 -0
- package/dist/components/Card/types.js +2 -0
- package/dist/components/CategoryItem/CategoryItem.d.ts +2 -1
- package/dist/components/CategoryItem/CategoryItem.jsx +8 -5
- package/dist/components/CategoryItem/types.d.ts +9 -0
- package/dist/components/CategoryItem/types.js +2 -0
- package/dist/components/CategoryList/CategoryList.d.ts +2 -1
- package/dist/components/CategoryList/CategoryList.jsx +3 -2
- package/dist/components/CategoryList/types.d.ts +5 -0
- package/dist/components/CategoryList/types.js +2 -0
- package/dist/components/Checkbox/Checkbox.d.ts +2 -1
- package/dist/components/Checkbox/Checkbox.jsx +4 -3
- package/dist/components/Checkbox/CheckboxGroup.d.ts +2 -1
- package/dist/components/Checkbox/CheckboxGroup.jsx +5 -4
- package/dist/components/Checkbox/types.d.ts +7 -0
- package/dist/components/Checkbox/types.js +2 -0
- package/dist/components/ConfirmationMessage/ConfirmationMessage.d.ts +2 -1
- package/dist/components/ConfirmationMessage/ConfirmationMessage.jsx +3 -2
- package/dist/components/ConfirmationMessage/types.d.ts +6 -0
- package/dist/components/ConfirmationMessage/types.js +2 -0
- package/dist/components/ContentsNav/ContentsNav.d.ts +3 -2
- package/dist/components/ContentsNav/ContentsNav.jsx +7 -5
- package/dist/components/ContentsNav/types.d.ts +9 -0
- package/dist/components/ContentsNav/types.js +2 -0
- package/dist/components/CookieBanner/CookieBanner.d.ts +3 -2
- package/dist/components/CookieBanner/CookieBanner.jsx +13 -3
- package/dist/components/DatePicker/DatePicker.d.ts +2 -1
- package/dist/components/DatePicker/DatePicker.jsx +7 -7
- package/dist/components/DatePicker/types.d.ts +18 -0
- package/dist/components/DatePicker/types.js +2 -0
- package/dist/components/Details/Details.d.ts +2 -1
- package/dist/components/Details/Details.jsx +6 -2
- package/dist/components/Details/types.d.ts +4 -0
- package/dist/components/Details/types.js +2 -0
- package/dist/components/ErrorMessage/ErrorMessage.d.ts +2 -1
- package/dist/components/ErrorMessage/ErrorMessage.jsx +6 -2
- package/dist/components/ErrorMessage/types.d.ts +3 -0
- package/dist/components/ErrorMessage/types.js +2 -0
- package/dist/components/ErrorSummary/ErrorSummary.d.ts +3 -2
- package/dist/components/ErrorSummary/ErrorSummary.jsx +6 -2
- package/dist/components/ErrorSummary/types.d.ts +8 -0
- package/dist/components/ErrorSummary/types.js +2 -0
- package/dist/components/FeatureHeader/FeatureHeader.d.ts +7 -5
- package/dist/components/FeatureHeader/FeatureHeader.jsx +87 -50
- package/dist/components/FeatureHeader/types.d.ts +12 -0
- package/dist/components/FeatureHeader/types.js +2 -0
- package/dist/components/FileDownload/FileDownload.d.ts +2 -1
- package/dist/components/FileDownload/FileDownload.jsx +4 -3
- package/dist/components/FileDownload/types.d.ts +10 -0
- package/dist/components/FileDownload/types.js +2 -0
- package/dist/components/HideThisPage/HideThisPage.d.ts +2 -1
- package/dist/components/HideThisPage/HideThisPage.jsx +5 -4
- package/dist/components/HideThisPage/types.d.ts +3 -0
- package/dist/components/HideThisPage/types.js +2 -0
- package/dist/components/InsetText/InsetText.d.ts +1 -1
- package/dist/components/InsetText/InsetText.jsx +6 -2
- package/dist/components/NotificationBanner/NotificationBanner.d.ts +3 -2
- package/dist/components/NotificationBanner/NotificationBanner.jsx +5 -4
- package/dist/components/NotificationPanel/NotificationPanel.d.ts +2 -1
- package/dist/components/NotificationPanel/NotificationPanel.jsx +3 -2
- package/dist/components/NotificationPanel/types.d.ts +6 -0
- package/dist/components/NotificationPanel/types.js +2 -0
- package/dist/components/NotificationTag/NotificationTag.d.ts +6 -0
- package/dist/components/NotificationTag/NotificationTag.jsx +20 -0
- package/dist/components/NotificationTag/index.d.ts +1 -0
- package/dist/components/NotificationTag/index.js +8 -0
- package/dist/components/NotificationTag/types.d.ts +5 -0
- package/dist/components/NotificationTag/types.js +2 -0
- package/dist/components/PageHeader/PageHeader.d.ts +2 -1
- package/dist/components/PageHeader/PageHeader.jsx +6 -2
- package/dist/components/PageHeader/types.d.ts +5 -0
- package/dist/components/PageHeader/types.js +2 -0
- package/dist/components/PageMetadata/PageMetadata.d.ts +3 -2
- package/dist/components/PageMetadata/PageMetadata.jsx +8 -4
- package/dist/components/PageMetadata/types.d.ts +6 -0
- package/dist/components/PageMetadata/types.js +2 -0
- package/dist/components/Pagination/Pagination.d.ts +3 -2
- package/dist/components/Pagination/Pagination.jsx +7 -5
- package/dist/components/Pagination/types.d.ts +18 -0
- package/dist/components/Pagination/types.js +2 -0
- package/dist/components/PhaseBanner/PhaseBanner.d.ts +2 -1
- package/dist/components/PhaseBanner/PhaseBanner.jsx +3 -2
- package/dist/components/PhaseBanner/types.d.ts +3 -0
- package/dist/components/PhaseBanner/types.js +2 -0
- package/dist/components/Question/Question.d.ts +2 -1
- package/dist/components/Question/Question.jsx +4 -3
- package/dist/components/Question/types.d.ts +9 -0
- package/dist/components/Question/types.js +2 -0
- package/dist/components/RadioButton/RadioButton.d.ts +2 -1
- package/dist/components/RadioButton/RadioButton.jsx +4 -3
- package/dist/components/RadioButton/RadioGroup.d.ts +2 -1
- package/dist/components/RadioButton/RadioGroup.jsx +3 -2
- package/dist/components/RadioButton/types.d.ts +10 -0
- package/dist/components/RadioButton/types.js +2 -0
- package/dist/components/SearchFacets/SearchFacets.d.ts +4 -3
- package/dist/components/SearchFacets/SearchFacets.jsx +3 -2
- package/dist/components/SearchFacets/types.d.ts +12 -0
- package/dist/components/SearchFacets/types.js +2 -0
- package/dist/components/SearchFilters/SearchFilters.d.ts +5 -4
- package/dist/components/SearchFilters/types.d.ts +12 -0
- package/dist/components/SearchFilters/types.js +2 -0
- package/dist/components/SearchResult/SearchResult.d.ts +8 -11
- package/dist/components/SearchResult/SearchResult.jsx +6 -7
- package/dist/components/SearchResult/types.d.ts +11 -0
- package/dist/components/SearchResult/types.js +2 -0
- package/dist/components/SearchSort/SearchSort.d.ts +2 -1
- package/dist/components/SearchSort/SearchSort.jsx +3 -2
- package/dist/components/SearchSort/types.d.ts +7 -0
- package/dist/components/SearchSort/types.js +2 -0
- package/dist/components/Select/Select.d.ts +2 -1
- package/dist/components/Select/Select.jsx +4 -3
- package/dist/components/Select/types.d.ts +6 -0
- package/dist/components/Select/types.js +2 -0
- package/dist/components/SequentialNavigation/SequentialNavigation.d.ts +4 -3
- package/dist/components/SequentialNavigation/SequentialNavigation.jsx +10 -6
- package/dist/components/SequentialNavigation/types.d.ts +10 -0
- package/dist/components/SequentialNavigation/types.js +2 -0
- package/dist/components/SideNavigation/SideNavigation.d.ts +4 -3
- package/dist/components/SideNavigation/SideNavigation.jsx +10 -7
- package/dist/components/SideNavigation/types.d.ts +13 -0
- package/dist/components/SideNavigation/types.js +2 -0
- package/dist/components/SiteFooter/SiteFooter.d.ts +6 -5
- package/dist/components/SiteFooter/SiteFooter.jsx +4 -3
- package/dist/components/SiteFooter/types.d.ts +16 -0
- package/dist/components/SiteFooter/types.js +2 -0
- package/dist/components/SiteHeader/SiteHeader.d.ts +6 -5
- package/dist/components/SiteHeader/SiteHeader.jsx +1 -1
- package/dist/components/SiteHeader/types.d.ts +20 -0
- package/dist/components/SiteHeader/types.js +2 -0
- package/dist/components/SiteNavigation/SiteNavigation.d.ts +3 -2
- package/dist/components/SiteNavigation/SiteNavigation.jsx +12 -4
- package/dist/components/SiteNavigation/types.d.ts +9 -0
- package/dist/components/SiteNavigation/types.js +2 -0
- package/dist/components/SiteSearch/SiteSearch.d.ts +2 -1
- package/dist/components/SiteSearch/SiteSearch.jsx +12 -11
- package/dist/components/SiteSearch/types.d.ts +17 -0
- package/dist/components/SiteSearch/types.js +2 -0
- package/dist/components/SkipLinks/SkipLinks.d.ts +3 -2
- package/dist/components/SkipLinks/SkipLinks.jsx +4 -4
- package/dist/components/SkipLinks/types.d.ts +8 -0
- package/dist/components/SkipLinks/types.js +2 -0
- package/dist/components/SummaryCard/SummaryCard.d.ts +4 -2
- package/dist/components/SummaryCard/SummaryCard.jsx +5 -4
- package/dist/components/SummaryCard/types.d.ts +5 -0
- package/dist/components/SummaryCard/types.js +2 -0
- package/dist/components/SummaryList/SummaryList.d.ts +6 -4
- package/dist/components/SummaryList/SummaryList.jsx +5 -4
- package/dist/components/SummaryList/types.d.ts +6 -0
- package/dist/components/SummaryList/types.js +2 -0
- package/dist/components/Table/Table.d.ts +2 -1
- package/dist/components/Table/Table.jsx +5 -4
- package/dist/components/Table/types.d.ts +6 -0
- package/dist/components/Table/types.js +2 -0
- package/dist/components/Tabs/Tabs.d.ts +3 -2
- package/dist/components/Tabs/Tabs.jsx +6 -5
- package/dist/components/Tabs/types.d.ts +16 -0
- package/dist/components/Tabs/types.js +2 -0
- package/dist/components/Tag/Tag.d.ts +2 -1
- package/dist/components/Tag/Tag.jsx +7 -3
- package/dist/components/Tag/types.d.ts +4 -0
- package/dist/components/Tag/types.js +2 -0
- package/dist/components/TaskList/TaskList.d.ts +4 -3
- package/dist/components/TaskList/TaskList.jsx +11 -8
- package/dist/components/TaskList/types.d.ts +17 -0
- package/dist/components/TaskList/types.js +2 -0
- package/dist/components/TextInput/TextInput.d.ts +2 -1
- package/dist/components/TextInput/TextInput.jsx +10 -9
- package/dist/components/TextInput/types.d.ts +11 -0
- package/dist/components/TextInput/types.js +2 -0
- package/dist/components/Textarea/Textarea.d.ts +2 -1
- package/dist/components/Textarea/Textarea.jsx +6 -5
- package/dist/components/WarningText/WarningText.d.ts +1 -1
- package/dist/components/WarningText/WarningText.jsx +6 -2
- package/dist/hooks/useTracking/useTracking.js +0 -1
- package/eslint.config.mjs +32 -0
- package/package.json +12 -5
- package/src/common/AbstractNotificationBanner/AbstractNotificationBanner.tsx +13 -10
- package/src/common/AbstractNotificationBanner/types.ts +15 -0
- package/src/common/ActionLink/ActionLink.tsx +3 -1
- package/src/common/ActionLink/types.ts +8 -0
- package/src/common/ConditionalWrapper/ConditionalWrapper.tsx +10 -2
- package/src/common/ConditionalWrapper/types.ts +4 -0
- package/src/common/FileIcon/FileIcon.tsx +2 -1
- package/src/common/FileIcon/types.ts +7 -0
- package/src/common/HintText/HintText.test.tsx +3 -15
- package/src/common/HintText/HintText.tsx +4 -4
- package/src/common/HintText/types.ts +4 -0
- package/src/common/Icon/Icon.tsx +5 -3
- package/src/common/Icon/types.ts +9 -0
- package/src/common/ScreenReaderText/ScreenReaderText.tsx +1 -1
- package/src/common/WrapperTag/WrapperTag.tsx +5 -3
- package/src/common/WrapperTag/types.ts +3 -0
- package/src/components/Accordion/Accordion.Item.stories.tsx +1 -5
- package/src/components/Accordion/Accordion.stories.tsx +5 -5
- package/src/components/Accordion/Accordion.test.tsx +11 -0
- package/src/components/Accordion/Accordion.tsx +15 -13
- package/src/components/Accordion/types.ts +13 -0
- package/src/components/AspectBox/AspectBox.stories.tsx +1 -2
- package/src/components/AspectBox/AspectBox.tsx +8 -14
- package/src/components/AspectBox/types.ts +3 -0
- package/src/components/BackToTop/BackToTop.test.tsx +21 -1
- package/src/components/BackToTop/BackToTop.tsx +6 -4
- package/src/components/BackToTop/types.ts +3 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +7 -4
- package/src/components/Breadcrumbs/types.ts +6 -0
- package/src/components/Button/Button.tsx +6 -4
- package/src/components/Button/ButtonGroup.stories.tsx +22 -0
- package/src/components/Button/ButtonGroup.test.tsx +21 -0
- package/src/components/Button/ButtonGroup.tsx +9 -4
- package/src/components/Button/types.ts +22 -0
- package/src/components/Card/Card.stories.tsx +446 -0
- package/src/components/Card/Card.test.tsx +282 -0
- package/src/components/Card/Card.tsx +208 -0
- package/src/components/Card/index.ts +1 -0
- package/src/components/Card/types.ts +30 -0
- package/src/components/CategoryItem/CategoryItem.tsx +10 -6
- package/src/components/CategoryItem/types.ts +10 -0
- package/src/components/CategoryList/CategoryList.tsx +7 -4
- package/src/components/CategoryList/types.ts +5 -0
- package/src/components/Checkbox/Checkbox.stories.tsx +3 -3
- package/src/components/Checkbox/Checkbox.test.tsx +30 -0
- package/src/components/Checkbox/Checkbox.tsx +8 -7
- package/src/components/Checkbox/CheckboxGroup.test.tsx +10 -0
- package/src/components/Checkbox/CheckboxGroup.tsx +7 -6
- package/src/components/Checkbox/types.ts +9 -0
- package/src/components/ConfirmationMessage/ConfirmationMessage.tsx +5 -3
- package/src/components/ConfirmationMessage/types.ts +7 -0
- package/src/components/ContentsNav/ContentsNav.stories.tsx +5 -1
- package/src/components/ContentsNav/ContentsNav.tsx +11 -7
- package/src/components/ContentsNav/types.ts +11 -0
- package/src/components/CookieBanner/CookieBanner.Buttons.stories.tsx +3 -3
- package/src/components/CookieBanner/CookieBanner.stories.tsx +6 -6
- package/src/components/CookieBanner/CookieBanner.test.tsx +24 -1
- package/src/components/CookieBanner/CookieBanner.tsx +16 -5
- package/src/components/DatePicker/DatePicker.test.tsx +52 -19
- package/src/components/DatePicker/DatePicker.tsx +8 -8
- package/src/components/DatePicker/types.ts +19 -0
- package/src/components/Details/Details.stories.tsx +1 -1
- package/src/components/Details/Details.tsx +6 -3
- package/src/components/Details/types.ts +4 -0
- package/src/components/ErrorMessage/ErrorMessage.tsx +6 -3
- package/src/components/ErrorMessage/types.ts +3 -0
- package/src/components/ErrorSummary/ErrorSummary.test.tsx +1 -1
- package/src/components/ErrorSummary/ErrorSummary.tsx +6 -4
- package/src/components/ErrorSummary/types.ts +11 -0
- package/src/components/FeatureHeader/FeatureHeader.stories.tsx +186 -23
- package/src/components/FeatureHeader/FeatureHeader.test.tsx +298 -0
- package/src/components/FeatureHeader/FeatureHeader.tsx +83 -58
- package/src/components/FeatureHeader/types.ts +13 -0
- package/src/components/FileDownload/FileDownload.test.tsx +1 -5
- package/src/components/FileDownload/FileDownload.tsx +6 -4
- package/src/components/FileDownload/types.ts +11 -0
- package/src/components/HideThisPage/HideThisPage.test.tsx +12 -1
- package/src/components/HideThisPage/HideThisPage.tsx +7 -5
- package/src/components/HideThisPage/types.ts +3 -0
- package/src/components/InsetText/InsetText.tsx +5 -3
- package/src/components/NotificationBanner/NotificationBanner.stories.tsx +2 -2
- package/src/components/NotificationBanner/NotificationBanner.test.tsx +10 -0
- package/src/components/NotificationBanner/NotificationBanner.tsx +8 -6
- package/src/components/NotificationPanel/NotificationPanel.tsx +5 -3
- package/src/components/NotificationPanel/types.ts +7 -0
- package/src/components/NotificationTag/NotificationTag.stories.tsx +68 -0
- package/src/components/NotificationTag/NotificationTag.test.tsx +70 -0
- package/src/components/NotificationTag/NotificationTag.tsx +32 -0
- package/src/components/NotificationTag/index.ts +1 -0
- package/src/components/NotificationTag/types.ts +5 -0
- package/src/components/PageHeader/PageHeader.tsx +6 -3
- package/src/components/PageHeader/types.ts +5 -0
- package/src/components/PageMetadata/PageMetadata.stories.tsx +1 -1
- package/src/components/PageMetadata/PageMetadata.tsx +10 -7
- package/src/components/PageMetadata/types.ts +7 -0
- package/src/components/Pagination/Pagination.test.tsx +20 -0
- package/src/components/Pagination/Pagination.tsx +12 -8
- package/src/components/Pagination/types.ts +20 -0
- package/src/components/PhaseBanner/PhaseBanner.stories.tsx +1 -4
- package/src/components/PhaseBanner/PhaseBanner.tsx +5 -3
- package/src/components/PhaseBanner/types.ts +3 -0
- package/src/components/Question/Question.tsx +6 -4
- package/src/components/Question/types.ts +9 -0
- package/src/components/RadioButton/RadioButton.test.tsx +30 -0
- package/src/components/RadioButton/RadioButton.tsx +8 -7
- package/src/components/RadioButton/RadioGroup.tsx +5 -3
- package/src/components/RadioButton/types.ts +12 -0
- package/src/components/SearchFacets/SearchFacets.Group.stories.tsx +2 -3
- package/src/components/SearchFacets/SearchFacets.stories.tsx +2 -2
- package/src/components/SearchFacets/SearchFacets.tsx +10 -8
- package/src/components/SearchFacets/types.ts +14 -0
- package/src/components/SearchFilters/SearchFilters.Panel.stories.tsx +18 -7
- package/src/components/SearchFilters/SearchFilters.stories.tsx +1 -1
- package/src/components/SearchFilters/SearchFilters.tsx +4 -3
- package/src/components/SearchFilters/types.ts +14 -0
- package/src/components/SearchResult/SearchResult.stories.tsx +23 -23
- package/src/components/SearchResult/SearchResult.test.tsx +5 -4
- package/src/components/SearchResult/SearchResult.tsx +15 -15
- package/src/components/SearchResult/types.ts +13 -0
- package/src/components/SearchSort/SearchSort.stories.tsx +2 -1
- package/src/components/SearchSort/SearchSort.tsx +5 -3
- package/src/components/SearchSort/types.ts +7 -0
- package/src/components/Select/Select.test.tsx +42 -0
- package/src/components/Select/Select.tsx +8 -6
- package/src/components/Select/types.ts +7 -0
- package/src/components/SequentialNavigation/SequentialNavigation.tsx +13 -10
- package/src/components/SequentialNavigation/types.ts +12 -0
- package/src/components/SideNavigation/SideNavigation.test.tsx +24 -0
- package/src/components/SideNavigation/SideNavigation.tsx +14 -10
- package/src/components/SideNavigation/types.ts +16 -0
- package/src/components/SiteFooter/SiteFooter.tsx +10 -8
- package/src/components/SiteFooter/types.ts +20 -0
- package/src/components/SiteHeader/SiteHeader.stories.tsx +4 -3
- package/src/components/SiteHeader/SiteHeader.test.tsx +29 -16
- package/src/components/SiteHeader/SiteHeader.tsx +10 -9
- package/src/components/SiteHeader/types.ts +22 -0
- package/src/components/SiteNavigation/SiteNavigation.test.tsx +16 -1
- package/src/components/SiteNavigation/SiteNavigation.tsx +13 -6
- package/src/components/SiteNavigation/types.ts +11 -0
- package/src/components/SiteSearch/SiteSearch.stories.tsx +4 -2
- package/src/components/SiteSearch/SiteSearch.test.tsx +22 -0
- package/src/components/SiteSearch/SiteSearch.tsx +15 -13
- package/src/components/SiteSearch/types.ts +19 -0
- package/src/components/SkipLinks/SkipLinks.stories.tsx +3 -3
- package/src/components/SkipLinks/SkipLinks.tsx +7 -7
- package/src/components/SkipLinks/types.ts +9 -0
- package/src/components/SummaryCard/SummaryCard.test.tsx +0 -11
- package/src/components/SummaryCard/SummaryCard.tsx +9 -6
- package/src/components/SummaryCard/types.ts +6 -0
- package/src/components/SummaryList/SummaryList.Item.stories.tsx +5 -5
- package/src/components/SummaryList/SummaryList.stories.tsx +1 -1
- package/src/components/SummaryList/SummaryList.test.tsx +1 -6
- package/src/components/SummaryList/SummaryList.tsx +11 -9
- package/src/components/SummaryList/types.ts +7 -0
- package/src/components/Table/Table.test.tsx +36 -0
- package/src/components/Table/Table.tsx +7 -5
- package/src/components/Table/types.ts +6 -0
- package/src/components/Tabs/Tabs.Item.stories.tsx +7 -7
- package/src/components/Tabs/Tabs.stories.tsx +3 -3
- package/src/components/Tabs/Tabs.test.tsx +14 -0
- package/src/components/Tabs/Tabs.tsx +12 -9
- package/src/components/Tabs/types.ts +19 -0
- package/src/components/Tag/Tag.tsx +7 -4
- package/src/components/Tag/types.ts +5 -0
- package/src/components/TaskList/TaskList.Group.stories.tsx +0 -5
- package/src/components/TaskList/TaskList.stories.tsx +0 -1
- package/src/components/TaskList/TaskList.tsx +17 -13
- package/src/components/TaskList/types.ts +20 -0
- package/src/components/TextInput/TextInput.test.tsx +53 -1
- package/src/components/TextInput/TextInput.tsx +17 -12
- package/src/components/TextInput/types.ts +12 -0
- package/src/components/Textarea/Textarea.test.tsx +53 -1
- package/src/components/Textarea/Textarea.tsx +10 -8
- package/src/components/WarningText/WarningText.tsx +5 -3
- package/src/hooks/useTracking/useTracking.test.tsx +5 -7
- package/src/hooks/useTracking/useTracking.ts +0 -1
- package/src/images/icons/arrow_upward.tsx +10 -10
- package/src/images/icons/calendar_today.tsx +10 -10
- package/src/images/icons/cancel.tsx +8 -8
- package/src/images/icons/check_circle.tsx +10 -10
- package/src/images/icons/chevron_left.tsx +10 -10
- package/src/images/icons/chevron_right.tsx +10 -10
- package/src/images/icons/close.tsx +10 -10
- package/src/images/icons/description.tsx +10 -10
- package/src/images/icons/double_chevron_left.tsx +8 -8
- package/src/images/icons/double_chevron_right.tsx +8 -8
- package/src/images/icons/error.tsx +10 -10
- package/src/images/icons/expand_less.tsx +10 -10
- package/src/images/icons/expand_more.tsx +10 -10
- package/src/images/icons/list.tsx +13 -13
- package/src/images/icons/menu.tsx +10 -10
- package/src/images/icons/priority_high.tsx +11 -11
- package/src/images/icons/search.tsx +10 -10
- package/src/shared-types.ts +40 -0
- package/static/images/illustration.svg +502 -0
- package/tsconfig.json +0 -3
- package/vite.config.ts +6 -1
- package/@types/common/AbstractNotificationBanner.d.ts +0 -17
- package/@types/common/ActionLink.d.ts +0 -8
- package/@types/common/ConditionalWrapper.d.ts +0 -6
- package/@types/common/FileIcon.d.ts +0 -7
- package/@types/common/HintText.d.ts +0 -6
- package/@types/common/Icon.d.ts +0 -9
- package/@types/common/ScreenReaderText.d.ts +0 -4
- package/@types/common/WrapperTag.d.ts +0 -5
- package/@types/components/Accordion.d.ts +0 -15
- package/@types/components/AspectBox.d.ts +0 -5
- package/@types/components/BackToTop.d.ts +0 -5
- package/@types/components/Breadcrumbs.d.ts +0 -11
- package/@types/components/Button.d.ts +0 -17
- package/@types/components/ButtonGroup.d.ts +0 -5
- package/@types/components/CategoryItem.d.ts +0 -10
- package/@types/components/CategoryList.d.ts +0 -7
- package/@types/components/Checkbox.d.ts +0 -11
- package/@types/components/ConfirmationMessage.d.ts +0 -7
- package/@types/components/ContentsNav.d.ts +0 -13
- package/@types/components/DatePicker.d.ts +0 -20
- package/@types/components/Details.d.ts +0 -6
- package/@types/components/ErrorMessage.d.ts +0 -5
- package/@types/components/ErrorSummary.d.ts +0 -12
- package/@types/components/FileDownload.d.ts +0 -11
- package/@types/components/HideThisPage.d.ts +0 -5
- package/@types/components/InsetText.d.ts +0 -5
- package/@types/components/Metadata.d.ts +0 -11
- package/@types/components/NotificationPanel.d.ts +0 -7
- package/@types/components/PageHeader.d.ts +0 -7
- package/@types/components/Pagination.d.ts +0 -22
- package/@types/components/PhaseBanner.d.ts +0 -5
- package/@types/components/Question.d.ts +0 -11
- package/@types/components/RadioButton.d.ts +0 -14
- package/@types/components/SearchFacets.d.ts +0 -18
- package/@types/components/SearchFilters.d.ts +0 -14
- package/@types/components/SearchResult.d.ts +0 -30
- package/@types/components/SearchSort.d.ts +0 -9
- package/@types/components/Select.d.ts +0 -7
- package/@types/components/SequentialNavigation.d.ts +0 -14
- package/@types/components/SideNavigation.d.ts +0 -18
- package/@types/components/SiteFooter.d.ts +0 -25
- package/@types/components/SiteHeader.d.ts +0 -20
- package/@types/components/SiteNavigation.d.ts +0 -13
- package/@types/components/SiteSearch.d.ts +0 -14
- package/@types/components/SkipLinks.d.ts +0 -13
- package/@types/components/SummaryCard.d.ts +0 -6
- package/@types/components/SummaryList.d.ts +0 -14
- package/@types/components/Table.d.ts +0 -8
- package/@types/components/Tabs.d.ts +0 -21
- package/@types/components/Tag.d.ts +0 -5
- package/@types/components/TaskList.d.ts +0 -22
- package/@types/components/TextInput.d.ts +0 -12
- package/@types/components/Textarea.d.ts +0 -4
- package/@types/components/WarningText.d.ts +0 -5
- package/@types/global.d.ts +0 -1
- package/@types/sgds.d.ts +0 -49
- package/dist/index.d.ts +0 -4
- package/dist/index.js +0 -40
- package/dist/tsconfig.tsbuildinfo +0 -1
package/.storybook/main.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import type { StorybookConfig } from '@storybook/react-vite';
|
|
2
2
|
|
|
3
3
|
const config: StorybookConfig = {
|
|
4
|
-
|
|
4
|
+
stories: [
|
|
5
5
|
"../src/**/*.mdx",
|
|
6
6
|
"../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"
|
|
7
7
|
],
|
|
8
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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?:
|
|
43
|
+
ariaLabel: (options?: ArgType) => {
|
|
3
44
|
return Object.assign({
|
|
4
45
|
type: 'string'
|
|
5
|
-
}, options);
|
|
46
|
+
}, options) as InputType;
|
|
6
47
|
},
|
|
7
|
-
ariaLive: (options?:
|
|
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
|
-
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
105
|
+
href: (options?: ArgType) => {
|
|
55
106
|
return Object.assign({
|
|
56
107
|
type: 'string'
|
|
57
|
-
}, options)
|
|
108
|
+
}, options) as InputType
|
|
58
109
|
},
|
|
59
|
-
id: (options?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
131
|
+
isSmall: (options?: ArgType) => {
|
|
81
132
|
return Object.assign({
|
|
82
133
|
control: 'boolean',
|
|
83
|
-
description: 'Whether to use the
|
|
84
|
-
}, options)
|
|
134
|
+
description: 'Whether to use the \'small\' input control variant'
|
|
135
|
+
}, options) as InputType
|
|
85
136
|
},
|
|
86
|
-
label: (options?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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
|
+
[](https://www.npmjs.com/package/@scottish-government/designsystem-react)
|
|
3
|
+
[](https://github.com/scottish-government-design-system/designsystem-react/actions/workflows/tests.yml)
|
|
4
|
+
[](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 }:
|
|
3
|
+
({ children, className, hasColourIcon, hasInverseIcon, icon, isDismissable, title, ...props }: AbstractNotificationBannerProps): import("react").JSX.Element;
|
|
3
4
|
displayName: string;
|
|
4
5
|
Buttons: {
|
|
5
|
-
({ children }:
|
|
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
|
-
|
|
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
|
-
]
|
|
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
|
-
]
|
|
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
|
-
]
|
|
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
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { ActionLinkProps } from './types';
|
|
1
2
|
declare const ActionLink: {
|
|
2
|
-
({ children, describedby, href, linkComponent, onclick }:
|
|
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;
|
|
@@ -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 }:
|
|
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
|
-
|
|
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;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { FileIconProps } from './types';
|
|
2
3
|
declare const FileIcon: {
|
|
3
|
-
({ ariaLabel, className, icon }:
|
|
4
|
+
({ ariaLabel, className, icon }: FileIconProps): React.JSX.Element;
|
|
4
5
|
displayName: string;
|
|
5
6
|
};
|
|
6
7
|
export default FileIcon;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { HintTextProps } from "./types";
|
|
1
2
|
declare const HintText: {
|
|
2
|
-
({ children, id,
|
|
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,
|
|
4
|
-
return (<p className="ds_hint-text"
|
|
5
|
-
{
|
|
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';
|
|
@@ -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 }:
|
|
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
|
-
]
|
|
49
|
+
])}/>);
|
|
49
50
|
};
|
|
50
51
|
Icon.displayName = 'Icon';
|
|
51
52
|
exports.default = Icon;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
declare const ScreenReaderText: {
|
|
2
|
-
({ children, ...props }:
|
|
2
|
+
({ children, ...props }: React.AllHTMLAttributes<HTMLElement>): import("react").JSX.Element;
|
|
3
3
|
displayName: string;
|
|
4
4
|
};
|
|
5
5
|
export default ScreenReaderText;
|