@scottish-government/designsystem-react 0.7.0 → 0.8.0-beta.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 (211) hide show
  1. package/@types/common/AbstractNotificationBanner.d.ts +2 -2
  2. package/@types/common/ActionLink.d.ts +8 -0
  3. package/@types/common/FileIcon.d.ts +1 -1
  4. package/@types/common/Icon.d.ts +1 -1
  5. package/@types/components/Accordion.d.ts +0 -1
  6. package/@types/components/Breadcrumbs.d.ts +2 -5
  7. package/@types/components/Checkbox.d.ts +0 -2
  8. package/@types/components/ConfirmationMessage.d.ts +1 -1
  9. package/@types/components/ContentsNav.d.ts +4 -6
  10. package/@types/components/DatePicker.d.ts +1 -1
  11. package/@types/components/ErrorSummary.d.ts +3 -4
  12. package/@types/components/NotificationPanel.d.ts +1 -1
  13. package/@types/components/Pagination.d.ts +5 -4
  14. package/@types/components/PhaseBanner.d.ts +0 -1
  15. package/@types/components/Question.d.ts +1 -1
  16. package/@types/components/RadioButton.d.ts +0 -1
  17. package/@types/components/Select.d.ts +0 -7
  18. package/@types/components/SequentialNavigation.d.ts +4 -4
  19. package/@types/components/SideNavigation.d.ts +4 -5
  20. package/@types/components/SiteFooter.d.ts +25 -0
  21. package/@types/components/SiteHeader.d.ts +10 -3
  22. package/@types/components/SiteNavigation.d.ts +2 -3
  23. package/@types/components/SkipLinks.d.ts +3 -4
  24. package/@types/components/SummaryCard.d.ts +0 -2
  25. package/@types/components/SummaryList.d.ts +0 -13
  26. package/@types/components/Tabs.d.ts +0 -1
  27. package/@types/components/Tag.d.ts +1 -3
  28. package/@types/components/TaskList.d.ts +1 -0
  29. package/@types/sgds.d.ts +13 -2
  30. package/CHANGELOG.md +63 -1
  31. package/dist/common/AbstractNotificationBanner.jsx +8 -6
  32. package/dist/common/ActionLink.jsx +19 -0
  33. package/dist/common/FileIcon.jsx +2 -7
  34. package/dist/common/Icon.jsx +3 -9
  35. package/dist/components/Accordion/Accordion.jsx +12 -7
  36. package/dist/components/Breadcrumbs/Breadcrumbs.jsx +20 -15
  37. package/dist/components/Checkbox/Checkbox.jsx +4 -29
  38. package/dist/components/{aspect-box/aspect-box.jsx → Checkbox/CheckboxGroup.jsx} +14 -30
  39. package/dist/components/ContentsNav/ContentsNav.jsx +27 -16
  40. package/dist/components/CookieBanner/CookieBanner.jsx +1 -0
  41. package/dist/components/DatePicker/DatePicker.jsx +5 -5
  42. package/dist/components/ErrorSummary/ErrorSummary.jsx +28 -18
  43. package/dist/components/NotificationBanner/NotificationBanner.jsx +2 -2
  44. package/dist/components/Pagination/Pagination.jsx +42 -22
  45. package/dist/components/PhaseBanner/PhaseBanner.jsx +3 -3
  46. package/dist/components/Question/Question.jsx +3 -3
  47. package/dist/components/RadioButton/RadioButton.jsx +7 -17
  48. package/dist/components/RadioButton/RadioGroup.jsx +21 -0
  49. package/dist/components/Select/Select.jsx +4 -7
  50. package/dist/components/SequentialNavigation/SequentialNavigation.jsx +31 -18
  51. package/dist/components/SideNavigation/SideNavigation.jsx +17 -16
  52. package/dist/components/SiteFooter/SiteFooter.jsx +104 -0
  53. package/dist/components/SiteHeader/SiteHeader.jsx +113 -32
  54. package/dist/components/SiteNavigation/SiteNavigation.jsx +20 -7
  55. package/dist/components/SkipLinks/SkipLinks.jsx +10 -10
  56. package/dist/components/SummaryCard/SummaryCard.jsx +25 -14
  57. package/dist/components/SummaryList/SummaryList.jsx +65 -47
  58. package/dist/components/Tabs/Tabs.jsx +6 -6
  59. package/dist/components/Tag/Tag.jsx +2 -2
  60. package/dist/components/TaskList/TaskList.jsx +14 -3
  61. package/dist/components/TextInput/TextInput.jsx +3 -3
  62. package/dist/components/Textarea/Textarea.jsx +3 -3
  63. package/dist/hooks/useTracking.js +21 -0
  64. package/dist/tsconfig.tsbuildinfo +1 -1
  65. package/dist/utils/context.js +5 -0
  66. package/package.json +2 -2
  67. package/src/common/AbstractNotificationBanner.test.tsx +1 -1
  68. package/src/common/AbstractNotificationBanner.tsx +14 -13
  69. package/src/common/ActionLink.test.tsx +80 -0
  70. package/src/common/ActionLink.tsx +27 -0
  71. package/src/common/ConditionalWrapper.tsx +1 -1
  72. package/src/common/FileIcon.tsx +7 -11
  73. package/src/common/HintText.tsx +2 -2
  74. package/src/common/Icon.tsx +13 -17
  75. package/src/common/ScreenReaderText.tsx +2 -2
  76. package/src/common/WrapperTag.tsx +2 -2
  77. package/src/components/Accordion/Accordion.test.tsx +17 -4
  78. package/src/components/Accordion/Accordion.tsx +19 -14
  79. package/src/components/AspectBox/AspectBox.tsx +2 -2
  80. package/src/components/BackToTop/BackToTop.tsx +2 -2
  81. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +79 -48
  82. package/src/components/Breadcrumbs/Breadcrumbs.tsx +31 -31
  83. package/src/components/Button/Button.tsx +2 -2
  84. package/src/components/Checkbox/Checkbox.test.tsx +1 -96
  85. package/src/components/Checkbox/Checkbox.tsx +8 -55
  86. package/src/components/Checkbox/CheckboxGroup.test.tsx +37 -0
  87. package/src/components/Checkbox/CheckboxGroup.tsx +41 -0
  88. package/src/components/ConfirmationMessage/ConfirmationMessage.tsx +2 -2
  89. package/src/components/ContentsNav/ContentsNav.test.tsx +40 -51
  90. package/src/components/ContentsNav/ContentsNav.tsx +32 -25
  91. package/src/components/CookieBanner/CookieBanner.tsx +3 -3
  92. package/src/components/DatePicker/DatePicker.test.tsx +1 -1
  93. package/src/components/DatePicker/DatePicker.tsx +7 -7
  94. package/src/components/Details/Details.tsx +2 -2
  95. package/src/components/ErrorMessage/ErrorMessage.tsx +2 -2
  96. package/src/components/ErrorSummary/ErrorSummary.test.tsx +40 -34
  97. package/src/components/ErrorSummary/ErrorSummary.tsx +40 -32
  98. package/src/components/FileDownload/FileDownload.tsx +2 -2
  99. package/src/components/HideThisPage/HideThisPage.tsx +2 -2
  100. package/src/components/InsetText/InsetText.tsx +2 -2
  101. package/src/components/NotificationBanner/NotificationBanner.tsx +6 -7
  102. package/src/components/NotificationPanel/NotificationPanel.tsx +2 -2
  103. package/src/components/PageHeader/PageHeader.tsx +2 -2
  104. package/src/components/PageMetadata/PageMetadata.tsx +4 -5
  105. package/src/components/Pagination/Pagination.test.tsx +26 -7
  106. package/src/components/Pagination/Pagination.tsx +70 -36
  107. package/src/components/PhaseBanner/PhaseBanner.tsx +4 -5
  108. package/src/components/Question/Question.test.tsx +1 -1
  109. package/src/components/Question/Question.tsx +5 -5
  110. package/src/components/RadioButton/RadioButton.test.tsx +7 -126
  111. package/src/components/RadioButton/RadioButton.tsx +10 -41
  112. package/src/components/RadioButton/RadioGroup.test.tsx +65 -0
  113. package/src/components/RadioButton/RadioGroup.tsx +31 -0
  114. package/src/components/Select/Select.test.tsx +39 -37
  115. package/src/components/Select/Select.tsx +7 -22
  116. package/src/components/SequentialNavigation/SequentialNavigation.test.tsx +32 -21
  117. package/src/components/SequentialNavigation/SequentialNavigation.tsx +52 -30
  118. package/src/components/SideNavigation/SideNavigation.test.tsx +39 -85
  119. package/src/components/SideNavigation/SideNavigation.tsx +27 -29
  120. package/src/components/SiteFooter/SiteFooter.test.tsx +153 -0
  121. package/src/components/SiteFooter/SiteFooter.tsx +107 -0
  122. package/src/components/SiteHeader/SiteHeader.test.tsx +87 -79
  123. package/src/components/SiteHeader/SiteHeader.tsx +103 -40
  124. package/src/components/SiteNavigation/SiteNavigation.test.tsx +42 -23
  125. package/src/components/SiteNavigation/SiteNavigation.tsx +28 -16
  126. package/src/components/SiteSearch/SiteSearch.tsx +2 -2
  127. package/src/components/SkipLinks/SkipLinks.test.tsx +22 -10
  128. package/src/components/SkipLinks/SkipLinks.tsx +16 -15
  129. package/src/components/SummaryCard/SummaryCard.test.tsx +31 -35
  130. package/src/components/SummaryCard/SummaryCard.tsx +39 -28
  131. package/src/components/SummaryList/SummaryList.test.tsx +49 -148
  132. package/src/components/SummaryList/SummaryList.tsx +54 -92
  133. package/src/components/Table/Table.tsx +2 -2
  134. package/src/components/Tabs/Tabs.tsx +14 -15
  135. package/src/components/Tag/Tag.test.tsx +4 -4
  136. package/src/components/Tag/Tag.tsx +4 -4
  137. package/src/components/TaskList/TaskList.test.tsx +26 -0
  138. package/src/components/TaskList/TaskList.tsx +21 -11
  139. package/src/components/TextInput/TextInput.test.tsx +1 -1
  140. package/src/components/TextInput/TextInput.tsx +5 -5
  141. package/src/components/Textarea/Textarea.test.tsx +1 -1
  142. package/src/components/Textarea/Textarea.tsx +5 -5
  143. package/src/components/WarningText/WarningText.tsx +2 -2
  144. package/src/hooks/useTracking.test.tsx +64 -0
  145. package/src/hooks/useTracking.ts +19 -0
  146. package/src/utils/context.ts +3 -0
  147. package/tsconfig.json +1 -1
  148. package/dist/common/abstract-notification-banner.jsx +0 -63
  149. package/dist/common/conditional-wrapper.jsx +0 -8
  150. package/dist/common/file-icon.jsx +0 -51
  151. package/dist/common/hint-text.jsx +0 -9
  152. package/dist/common/icon.jsx +0 -57
  153. package/dist/common/screen-reader-text.jsx +0 -9
  154. package/dist/common/wrapper-tag.jsx +0 -11
  155. package/dist/components/accordion/accordion.jsx +0 -102
  156. package/dist/components/back-to-top/back-to-top.jsx +0 -27
  157. package/dist/components/breadcrumbs/breadcrumbs.jsx +0 -28
  158. package/dist/components/button/button.jsx +0 -30
  159. package/dist/components/checkbox/checkbox.jsx +0 -62
  160. package/dist/components/confirmation-message/confirmation-message.jsx +0 -24
  161. package/dist/components/contents-nav/contents-nav.jsx +0 -33
  162. package/dist/components/cookie-banner/cookie-banner.jsx +0 -21
  163. package/dist/components/date-picker/date-picker.jsx +0 -54
  164. package/dist/components/details/details.jsx +0 -17
  165. package/dist/components/error-message/error-message.jsx +0 -12
  166. package/dist/components/error-summary/error-summary.jsx +0 -27
  167. package/dist/components/file-download/file-download.jsx +0 -50
  168. package/dist/components/hide-this-page/hide-this-page.jsx +0 -71
  169. package/dist/components/inset-text/inset-text.jsx +0 -14
  170. package/dist/components/notification-banner/notification-banner.jsx +0 -26
  171. package/dist/components/notification-panel/notification-panel.jsx +0 -21
  172. package/dist/components/page-header/page-header.jsx +0 -15
  173. package/dist/components/page-metadata/page-metadata.jsx +0 -26
  174. package/dist/components/pagination/pagination.jsx +0 -97
  175. package/dist/components/phase-banner/phase-banner.jsx +0 -23
  176. package/dist/components/question/question.jsx +0 -22
  177. package/dist/components/radio-button/radio-button.jsx +0 -43
  178. package/dist/components/select/select.jsx +0 -52
  179. package/dist/components/sequential-navigation/sequential-navigation.jsx +0 -31
  180. package/dist/components/side-navigation/side-navigation.jsx +0 -52
  181. package/dist/components/site-header/site-header.jsx +0 -68
  182. package/dist/components/site-navigation/site-navigation.jsx +0 -22
  183. package/dist/components/site-search/site-search.jsx +0 -55
  184. package/dist/components/skip-links/skip-links.jsx +0 -21
  185. package/dist/components/summary-card/summary-card.jsx +0 -67
  186. package/dist/components/summary-list/summary-list.jsx +0 -75
  187. package/dist/components/table/table.jsx +0 -24
  188. package/dist/components/tabs/tabs.jsx +0 -99
  189. package/dist/components/tag/tag.jsx +0 -13
  190. package/dist/components/task-list/task-list.jsx +0 -95
  191. package/dist/components/text-input/text-input.jsx +0 -58
  192. package/dist/components/textarea/textarea.jsx +0 -54
  193. package/dist/components/warning-text/warning-text.jsx +0 -16
  194. package/dist/icons/ArrowUpward.jsx +0 -41
  195. package/dist/icons/CalendarToday.jsx +0 -41
  196. package/dist/icons/Cancel.jsx +0 -40
  197. package/dist/icons/CheckCircle.jsx +0 -41
  198. package/dist/icons/ChevronLeft.jsx +0 -41
  199. package/dist/icons/ChevronRight.jsx +0 -41
  200. package/dist/icons/Close.jsx +0 -41
  201. package/dist/icons/Description.jsx +0 -41
  202. package/dist/icons/DoubleChevronLeft.jsx +0 -40
  203. package/dist/icons/DoubleChevronRight.jsx +0 -40
  204. package/dist/icons/Error.jsx +0 -41
  205. package/dist/icons/ExpandLess.jsx +0 -41
  206. package/dist/icons/ExpandMore.jsx +0 -41
  207. package/dist/icons/List.jsx +0 -44
  208. package/dist/icons/Menu.jsx +0 -41
  209. package/dist/icons/PriorityHigh.jsx +0 -42
  210. package/dist/icons/Search.jsx +0 -41
  211. package/dist/icons/index.js +0 -40
@@ -1,75 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Item = exports.Action = exports.Answer = void 0;
7
- const conditional_wrapper_1 = __importDefault(require("../../common/conditional-wrapper"));
8
- const wrapper_tag_1 = __importDefault(require("../../common/wrapper-tag"));
9
- function escapedNewLineToLineBreakTag(string) {
10
- if (typeof string === 'string') {
11
- // @ts-ignore
12
- return string.split('\n').map((item, index) => {
13
- return (index === 0) ? item : [<br key={index}/>, item];
14
- });
15
- }
16
- }
17
- function convertToSlug(string) {
18
- return string.toLowerCase()
19
- .replace(/[^\w ]+/g, "")
20
- .replace(/ +/g, "-");
21
- }
22
- const Answer = ({ value }) => {
23
- const processedValue = escapedNewLineToLineBreakTag(value.toString());
24
- return (<q className="ds_summary-list__answer">{processedValue}</q>);
25
- };
26
- exports.Answer = Answer;
27
- const Action = ({ describedby, href, onclick, title, }) => {
28
- let tagName = 'button';
29
- if (href) {
30
- tagName = 'a';
31
- }
32
- return (<wrapper_tag_1.default aria-describedby={describedby} className="ds_link" href={href} onClick={onclick} tagName={tagName} type={tagName === 'button' ? 'button' : undefined}>
33
- {title}
34
- </wrapper_tag_1.default>);
35
- };
36
- exports.Action = Action;
37
- const Item = ({ actions, index = 1, title, value }) => {
38
- let values = [];
39
- if (Array.isArray(value)) {
40
- values = value;
41
- }
42
- else {
43
- values = [value || ''];
44
- }
45
- const describedById = `q${index + 1}-${convertToSlug(title)}`;
46
- return (<li className="ds_summary-list__item">
47
- <span className="ds_summary-list__key" id={describedById}>{title}</span>
48
- <span className="ds_summary-list__value">
49
- <conditional_wrapper_1.default condition={values.length > 1} wrapper={(children) => <ul className="ds_no-bullets">{children}</ul>}>
50
- {values && values.map((value, index) => (<conditional_wrapper_1.default condition={values.length > 1} wrapper={(children) => <li>{children}</li>} key={'answer' + index}>
51
- <exports.Answer value={value}/>
52
- </conditional_wrapper_1.default>))}
53
- </conditional_wrapper_1.default>
54
- </span>
55
- {actions &&
56
- <div className="ds_summary-list__actions">
57
- {actions && actions.map((action, index) => (<exports.Action describedby={describedById} href={action.href} onclick={action.onclick} title={action.title} key={'summarylistaction' + index}/>))}
58
- </div>}
59
- </li>);
60
- };
61
- exports.Item = Item;
62
- const SummaryList = ({ className, items, noBorder, ...props }) => {
63
- return (<ol className={[
64
- 'ds_summary-list',
65
- noBorder && 'ds_summary-list--no-border',
66
- className
67
- ].join(' ')} {...props}>
68
- {items && items.map((item, index) => (<exports.Item actions={item.actions} title={item.title} value={item.value} index={index} key={'summarylistitem' + index}/>))}
69
- </ol>);
70
- };
71
- SummaryList.displayName = 'SummaryList';
72
- exports.Action.displayName = 'SummaryListAction';
73
- exports.Answer.displayName = 'SumaryListAnswer';
74
- exports.Item.displayName = 'SummaryListItem';
75
- exports.default = SummaryList;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = require("react");
7
- // @ts-ignore
8
- const table_1 = __importDefault(require("@scottish-government/design-system/src/components/table/table"));
9
- const Table = ({ children, className, smallscreen, ...props }) => {
10
- const ref = (0, react_1.useRef)(null);
11
- (0, react_1.useEffect)(() => {
12
- if (ref.current) {
13
- new table_1.default().init();
14
- }
15
- }, [ref]);
16
- return (<table className={[
17
- 'ds_table',
18
- className
19
- ].join(' ')} data-smallscreen={smallscreen} ref={ref} {...props}>
20
- {children}
21
- </table>);
22
- };
23
- Table.displayName = 'Table';
24
- exports.default = Table;
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const react_1 = __importStar(require("react"));
40
- const wrapper_tag_1 = __importDefault(require("../../common/wrapper-tag"));
41
- // @ts-ignore
42
- const tabs_1 = __importDefault(require("@scottish-government/design-system/src/components/tabs/tabs"));
43
- const slugify_1 = __importDefault(require("../../utils/slugify"));
44
- const TabItem = ({ bordered, children, className, id, tabLabel, ...props }) => {
45
- return (<div className={[
46
- 'ds_tabs__content',
47
- bordered && 'ds_tabs__content--bordered',
48
- className
49
- ].join(' ')} id={id} {...props}>
50
- {children}
51
- </div>);
52
- };
53
- const TabListItem = ({ title, href }) => {
54
- return (<li className="ds_tabs__tab">
55
- <a className="ds_tabs__tab-link" href={href}>{title}</a>
56
- </li>);
57
- };
58
- const Tabs = ({ baseId = 'tabs', bordered = true, children, className, headerLevel = 'h2', manual = false, title = 'Contents', ...props }) => {
59
- const ref = (0, react_1.useRef)(null);
60
- const headingId = `${baseId}-heading`;
61
- (0, react_1.useEffect)(() => {
62
- if (ref.current) {
63
- new tabs_1.default(ref.current).init();
64
- }
65
- }, [ref]);
66
- const processedItems = react_1.Children.map(children, child => {
67
- if ((0, react_1.isValidElement)(child) && child.type === TabItem) {
68
- let thisChild = child;
69
- return react_1.default.cloneElement(thisChild, {
70
- bordered: bordered,
71
- id: thisChild.props.id || `${baseId}-${(0, slugify_1.default)(thisChild.props.tabLabel)}`,
72
- });
73
- }
74
- });
75
- const tabListItems = react_1.Children.map(processedItems, child => {
76
- if ((0, react_1.isValidElement)(child) && child.type === TabItem) {
77
- return react_1.default.createElement(TabListItem, { title: child.props.tabLabel, href: `#${child.props.id}` });
78
- }
79
- });
80
- return (<div className={[
81
- 'ds_tabs',
82
- manual && 'ds_tabs--manual',
83
- className
84
- ].join(' ')} ref={ref} {...props}>
85
- <wrapper_tag_1.default id={headingId} className="ds_tabs__title" tagName={headerLevel}>
86
- {title}
87
- </wrapper_tag_1.default>
88
-
89
- <ul className="ds_tabs__list" aria-labelledby={headingId}>
90
- {tabListItems}
91
- </ul>
92
-
93
- {processedItems}
94
- </div>);
95
- };
96
- Tabs.displayName = 'Tabs';
97
- TabItem.displayName = 'Tabs.Item';
98
- Tabs.Item = TabItem;
99
- exports.default = Tabs;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const Tag = ({ className, colour, title, ...props }) => {
4
- return (<span className={[
5
- 'ds_tag',
6
- className,
7
- colour && `ds_tag--${colour}`,
8
- ].join(' ')} {...props}>
9
- {title}
10
- </span>);
11
- };
12
- Tag.displayName = 'Tag';
13
- exports.default = Tag;
@@ -1,95 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = require("react");
7
- const conditional_wrapper_1 = __importDefault(require("../../common/conditional-wrapper"));
8
- const hint_text_1 = __importDefault(require("../../common/hint-text"));
9
- const screen_reader_text_1 = __importDefault(require("../../common/screen-reader-text"));
10
- const tag_1 = __importDefault(require("../tag/tag"));
11
- const TaskItem = ({ children, className, href, id, isComplete = false, statusText, tagColour = 'grey', title, ...props }) => {
12
- if (isComplete) {
13
- tagColour = 'green';
14
- }
15
- return (<li className={[
16
- 'ds_task-list__task',
17
- className
18
- ].join(' ')} id={id} {...props}>
19
- <div className="ds_task-list__task-details">
20
- <h3 className="ds_task-list__task-heading">
21
- <conditional_wrapper_1.default condition={typeof href !== 'undefined'} wrapper={(children) => <a className="ds_task-list__task-link" href={href}>{children}</a>}>
22
- {title}
23
- {statusText && <screen_reader_text_1.default>({statusText})</screen_reader_text_1.default>}
24
- </conditional_wrapper_1.default>
25
- </h3>
26
- <hint_text_1.default className="ds_task-list__task-summary">{children}</hint_text_1.default>
27
- </div>
28
-
29
- {typeof statusText !== 'undefined' &&
30
- <tag_1.default aria-hidden="true" colour={tagColour} title={statusText}/>}
31
- </li>);
32
- };
33
- /**
34
- * @param {Object} props
35
- * @param {string} props.intro - Intro text
36
- * @param {string} props.title - The title of the task group
37
- * @returns {JSX.Element} - The element
38
- */
39
- const TaskGroup = ({ children, className, intro, title, ...props }) => {
40
- return (<li className={[
41
- 'ds_task-list-group__section',
42
- className
43
- ].join(' ')} {...props}>
44
- <h2 className="ds_task-list-heading">{title}</h2>
45
- {intro && <p className="ds_task-list-intro">{intro}</p>}
46
- <ul className="ds_task-list">
47
- {children}
48
- </ul>
49
- </li>);
50
- };
51
- const TaskList = ({ children, className, headingId = 'task-list', title, ...props }) => {
52
- let taskCount = 0;
53
- let incompleteTaskIds = [];
54
- let completedTasksCount = 0;
55
- function processChild(item) {
56
- if (item.type.displayName === 'TaskList.Item') {
57
- taskCount = taskCount + 1;
58
- if (item.props.isComplete) {
59
- completedTasksCount = completedTasksCount + 1;
60
- }
61
- else {
62
- incompleteTaskIds.push(item.props.id);
63
- }
64
- }
65
- else if (item.type.displayName === 'TaskList.Group') {
66
- react_1.Children.forEach(item.props.children, child => {
67
- processChild(child);
68
- });
69
- }
70
- }
71
- function firstIncompleteTaskLink() {
72
- if (incompleteTaskIds.length > 0) {
73
- return (<p><a href={'#' + incompleteTaskIds[0]} className="js-task-list-skip-link">Skip to first incomplete section</a></p>);
74
- }
75
- }
76
- react_1.Children.forEach(children, child => {
77
- processChild(child);
78
- });
79
- return (<div className={className} {...props}>
80
- <h2 id={`${headingId}-status`} className="ds_task-list-status-heading">{title}</h2>
81
- <nav aria-labelledby={`${headingId}-status`} className="ds_task-list-status">
82
- <p>You have completed {completedTasksCount} of {taskCount} sections.</p>
83
- {firstIncompleteTaskLink()}
84
- </nav>
85
- <ul className="ds_task-list">
86
- {children}
87
- </ul>
88
- </div>);
89
- };
90
- TaskList.displayName = 'TaskList';
91
- TaskItem.displayName = 'TaskList.Item';
92
- TaskGroup.displayName = 'TaskList.Group';
93
- TaskList.Item = TaskItem;
94
- TaskList.Group = TaskGroup;
95
- exports.default = TaskList;
@@ -1,58 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = require("react");
7
- // @ts-ignore
8
- const character_count_1 = __importDefault(require("@scottish-government/design-system/src/forms/character-count/character-count"));
9
- const button_1 = __importDefault(require("../button/button"));
10
- const conditional_wrapper_1 = __importDefault(require("../../common/conditional-wrapper"));
11
- const error_message_1 = __importDefault(require("../error-message/error-message"));
12
- const hint_text_1 = __importDefault(require("../../common/hint-text"));
13
- const TextInput = ({ buttonIcon, buttonText, children, className, countThreshold, width, currency, currencySymbol, error, errorMessage, hasButton = false, hintText, id, label, maxlength, name, onBlur, onChange, placeholder, type = 'text', value, ...props }) => {
14
- const errorMessageId = `error-message-${id}`;
15
- const hintTextId = `hint-text-${id}`;
16
- const ref = (0, react_1.useRef)(null);
17
- const inputWrapperClasses = `${hasButton ? 'ds_input__wrapper ds_input__wrapper--has-icon' : ''} ${currency ? 'ds_currency-wrapper' : ''}`;
18
- const describedbys = [];
19
- if (hintText) {
20
- describedbys.push(hintTextId);
21
- }
22
- ;
23
- if (errorMessage) {
24
- describedbys.push(errorMessageId);
25
- }
26
- ;
27
- (0, react_1.useEffect)(() => {
28
- if (ref.current) {
29
- new character_count_1.default(ref.current).init();
30
- }
31
- }, [ref]);
32
- function handleBlur(event) {
33
- if (typeof onBlur === 'function') {
34
- onBlur(event);
35
- }
36
- }
37
- function handleChange(event) {
38
- if (typeof onChange === 'function') {
39
- onChange(event);
40
- }
41
- }
42
- return (<conditional_wrapper_1.default condition={typeof maxlength !== 'undefined' && maxlength > 0} wrapper={(children) => <div ref={ref} data-threshold={countThreshold} data-module="ds-character-count">{children}</div>}>
43
- <label className="ds_label" htmlFor={id}>{label}</label>
44
- {hintText && <hint_text_1.default id={hintTextId} text={hintText}/>}
45
- {errorMessage && <error_message_1.default id={errorMessageId} text={errorMessage}/>}
46
- <conditional_wrapper_1.default condition={hasButton || typeof currency !== 'undefined' && currency} wrapper={(children) => <div className={inputWrapperClasses} data-symbol={currencySymbol}>{children}</div>}>
47
- <input aria-describedby={describedbys.join(' ')} aria-invalid={error} className={[
48
- 'ds_input',
49
- className,
50
- error ? 'ds_input--error' : '',
51
- width ? `ds_input--${width}` : '',
52
- ].join(' ')} defaultValue={value} id={id} maxLength={maxlength} name={name || id} onBlur={handleBlur} onChange={handleChange} placeholder={placeholder} type={type} {...props}/>
53
- {hasButton && (buttonText || buttonIcon) && <button_1.default iconOnly icon={buttonIcon}>{buttonText}</button_1.default>}
54
- </conditional_wrapper_1.default>
55
- </conditional_wrapper_1.default>);
56
- };
57
- TextInput.displayName = 'TextInput';
58
- exports.default = TextInput;
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = require("react");
7
- // @ts-ignore
8
- const character_count_1 = __importDefault(require("@scottish-government/design-system/src/forms/character-count/character-count"));
9
- const conditional_wrapper_1 = __importDefault(require("../../common/conditional-wrapper"));
10
- const error_message_1 = __importDefault(require("../error-message/error-message"));
11
- const hint_text_1 = __importDefault(require("../../common/hint-text"));
12
- const Textarea = ({ className, countThreshold, error, errorMessage, hintText, id, label, maxlength, name, onBlur, onChange, placeholder, rows = 4, value, ...props }) => {
13
- const errorMessageId = `error-message-${id}`;
14
- const hintTextId = `hint-text-${id}`;
15
- const ref = (0, react_1.useRef)(null);
16
- const describedbys = [];
17
- if (hintText) {
18
- describedbys.push(hintTextId);
19
- }
20
- ;
21
- if (errorMessage) {
22
- describedbys.push(errorMessageId);
23
- }
24
- ;
25
- (0, react_1.useEffect)(() => {
26
- if (ref.current) {
27
- new character_count_1.default(ref.current).init();
28
- }
29
- }, [ref]);
30
- function handleBlur(event) {
31
- if (typeof onBlur === 'function') {
32
- onBlur(event);
33
- }
34
- }
35
- function handleChange(event) {
36
- if (typeof onChange === 'function') {
37
- onChange(event);
38
- }
39
- }
40
- return (<conditional_wrapper_1.default condition={typeof maxlength !== 'undefined' && maxlength > 0} wrapper={(children) => <div ref={ref} data-threshold={countThreshold} data-module="ds-character-count">{children}</div>}>
41
- <label className="ds_label" htmlFor={id}>{label}</label>
42
- {hintText && <hint_text_1.default id={hintTextId} text={hintText}/>}
43
- {errorMessage && <error_message_1.default id={errorMessageId} text={errorMessage}/>}
44
-
45
- <textarea aria-describedby={describedbys.join(' ')} aria-invalid={error} className={[
46
- 'ds_input',
47
- error && 'ds_input--error',
48
- className
49
- ].join(' ')} defaultValue={value} id={id} maxLength={maxlength} name={name || id} onBlur={handleBlur} onChange={handleChange} placeholder={placeholder} rows={rows} {...props}/>
50
-
51
- </conditional_wrapper_1.default>);
52
- };
53
- Textarea.displayName = 'Textarea';
54
- exports.default = Textarea;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const WarningText = ({ children, className, ...props }) => {
4
- return (<div className={[
5
- 'ds_warning-text',
6
- className
7
- ].join(' ')} {...props}>
8
- <strong className="ds_warning-text__icon" aria-hidden="true"></strong>
9
- <strong className="visually-hidden">Warning</strong>
10
- <div className="ds_warning-text__text">
11
- {children}
12
- </div>
13
- </div>);
14
- };
15
- WarningText.displayName = 'WarningText';
16
- exports.default = WarningText;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const React = __importStar(require("react"));
37
- const SvgArrowUpward = (props) => (<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" role="img" {...props}>
38
- <path d="M0 0h24v24H0V0z" fill="none"/>
39
- <path d="M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"/>
40
- </svg>);
41
- exports.default = SvgArrowUpward;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const React = __importStar(require("react"));
37
- const SvgCalendarToday = (props) => (<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" role="img" {...props}>
38
- <path d="M0 0h24v24H0z" fill="none"/>
39
- <path d="M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"/>
40
- </svg>);
41
- exports.default = SvgCalendarToday;
@@ -1,40 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const React = __importStar(require("react"));
37
- const SvgCancel = (props) => (<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" {...props}>
38
- <path d="m8.4 17 3.6-3.6 3.6 3.6 1.4-1.4-3.6-3.6L17 8.4 15.6 7 12 10.6 8.4 7 7 8.4l3.6 3.6L7 15.6 8.4 17Zm3.6 5c-1.4 0-2.7-.3-3.9-.8S5.8 20 4.9 19.1s-1.6-2-2.1-3.2S2 13.4 2 12s.3-2.7.8-3.9S4 5.8 4.9 4.9s2-1.6 3.2-2.1S10.6 2 12 2s2.7.3 3.9.8 2.3 1.2 3.2 2.1 1.6 2 2.1 3.2.8 2.5.8 3.9-.3 2.7-.8 3.9-1.2 2.3-2.1 3.2-2 1.6-3.2 2.1-2.5.8-3.9.8Z"/>
39
- </svg>);
40
- exports.default = SvgCancel;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const React = __importStar(require("react"));
37
- const SvgCheckCircle = (props) => (<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" role="img" {...props}>
38
- <path d="M0 0h24v24H0z" fill="none"/>
39
- <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
40
- </svg>);
41
- exports.default = SvgCheckCircle;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const React = __importStar(require("react"));
37
- const SvgChevronLeft = (props) => (<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000" role="img" {...props}>
38
- <path d="M0 0h24v24H0z" fill="none"/>
39
- <path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
40
- </svg>);
41
- exports.default = SvgChevronLeft;