@nationalarchives/frontend 0.1.24-prerelease → 0.1.26-prerelease
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/README.md +22 -0
- package/govuk-prototype-kit.config.json +4 -12
- package/nationalarchives/all.css +2 -2
- package/nationalarchives/all.css.map +1 -1
- package/nationalarchives/all.js +1 -1
- package/nationalarchives/all.js.map +1 -1
- package/nationalarchives/all.mjs +0 -11
- package/nationalarchives/components/_index.scss +8 -0
- package/nationalarchives/components/breadcrumbs/breadcrumbs.css +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.js +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.mjs +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.scss +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +1 -1
- package/nationalarchives/components/button/_button-group.scss +4 -0
- package/nationalarchives/components/button/button.css +1 -1
- package/nationalarchives/components/button/button.css.map +1 -1
- package/nationalarchives/components/button/button.scss +89 -26
- package/nationalarchives/components/button/button.stories.js +52 -5
- package/nationalarchives/components/button/macro-options.json +18 -0
- package/nationalarchives/components/button/template.njk +15 -6
- package/nationalarchives/components/card/card.css +1 -1
- package/nationalarchives/components/card/card.css.map +1 -1
- package/nationalarchives/components/card/card.scss +7 -37
- package/nationalarchives/components/card/card.stories.js +6 -78
- package/nationalarchives/components/card/fixtures.json +17 -17
- package/nationalarchives/components/card/macro-options.json +41 -17
- package/nationalarchives/components/card/template.njk +51 -48
- package/nationalarchives/components/checkboxes/_index.scss +1 -0
- package/nationalarchives/components/checkboxes/checkboxes.css +1 -0
- package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -0
- package/nationalarchives/components/checkboxes/checkboxes.scss +143 -0
- package/nationalarchives/components/checkboxes/checkboxes.stories.js +238 -0
- package/nationalarchives/components/checkboxes/fixtures.json +4 -0
- package/nationalarchives/components/checkboxes/macro-options.json +102 -0
- package/nationalarchives/components/checkboxes/macro.njk +3 -0
- package/nationalarchives/components/checkboxes/template.njk +35 -0
- package/nationalarchives/components/cookie-banner/cookie-banner.css +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.css.map +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.js +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.mjs +19 -16
- package/nationalarchives/components/cookie-banner/cookie-banner.stories.js +103 -42
- package/nationalarchives/components/cookie-banner/fixtures.json +54 -8
- package/nationalarchives/components/cookie-banner/macro-options.json +19 -1
- package/nationalarchives/components/cookie-banner/template.njk +1 -1
- package/nationalarchives/components/date-input/_index.scss +1 -0
- package/nationalarchives/components/date-input/date-input.css +1 -0
- package/nationalarchives/components/date-input/date-input.css.map +1 -0
- package/nationalarchives/components/date-input/date-input.scss +48 -0
- package/nationalarchives/components/date-input/date-input.stories.js +116 -0
- package/nationalarchives/components/date-input/fixtures.json +4 -0
- package/nationalarchives/components/date-input/macro-options.json +96 -0
- package/nationalarchives/components/date-input/macro.njk +3 -0
- package/nationalarchives/components/date-input/template.njk +45 -0
- package/nationalarchives/components/date-search/_index.scss +1 -0
- package/nationalarchives/components/date-search/date-search.css +1 -0
- package/nationalarchives/components/date-search/date-search.css.map +1 -0
- package/nationalarchives/components/date-search/date-search.scss +27 -0
- package/nationalarchives/components/date-search/date-search.stories.js +121 -0
- package/nationalarchives/components/date-search/fixtures.json +4 -0
- package/nationalarchives/components/date-search/macro-options.json +94 -0
- package/nationalarchives/components/date-search/macro.njk +3 -0
- package/nationalarchives/components/date-search/template.njk +27 -0
- package/nationalarchives/components/featured-records/featured-records.css +1 -1
- package/nationalarchives/components/featured-records/featured-records.css.map +1 -1
- package/nationalarchives/components/filters/filters.css +1 -1
- package/nationalarchives/components/filters/filters.css.map +1 -1
- package/nationalarchives/components/filters/filters.scss +0 -8
- package/nationalarchives/components/filters/template.njk +2 -2
- package/nationalarchives/components/footer/footer.css +1 -1
- package/nationalarchives/components/footer/footer.css.map +1 -1
- package/nationalarchives/components/footer/footer.scss +3 -5
- package/nationalarchives/components/footer/footer.stories.js +1 -1
- package/nationalarchives/components/footer/template.njk +13 -9
- package/nationalarchives/components/gallery/gallery.css +1 -1
- package/nationalarchives/components/gallery/gallery.css.map +1 -1
- package/nationalarchives/components/gallery/gallery.scss +0 -11
- package/nationalarchives/components/gallery/gallery.stories.js +8 -10
- package/nationalarchives/components/gallery/template.njk +1 -1
- package/nationalarchives/components/grid/grid.css +1 -1
- package/nationalarchives/components/grid/grid.css.map +1 -1
- package/nationalarchives/components/grid/grid.scss +12 -0
- package/nationalarchives/components/grid/grid.stories.js +12 -0
- package/nationalarchives/components/header/header.css +1 -1
- package/nationalarchives/components/header/header.css.map +1 -1
- package/nationalarchives/components/header/header.scss +36 -41
- package/nationalarchives/components/header/header.stories.js +0 -41
- package/nationalarchives/components/header/template.njk +3 -3
- package/nationalarchives/components/hero/hero.css +1 -1
- package/nationalarchives/components/hero/hero.css.map +1 -1
- package/nationalarchives/components/hero/hero.scss +3 -7
- package/nationalarchives/components/hero/hero.stories.js +6 -0
- package/nationalarchives/components/index-grid/fixtures.json +324 -1
- package/nationalarchives/components/index-grid/index-grid.css +1 -1
- package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
- package/nationalarchives/components/index-grid/index-grid.scss +13 -10
- package/nationalarchives/components/index-grid/index-grid.stories.js +27 -14
- package/nationalarchives/components/index-grid/macro-options.json +34 -29
- package/nationalarchives/components/index-grid/template.njk +13 -8
- package/nationalarchives/components/message/message.css +1 -1
- package/nationalarchives/components/message/message.css.map +1 -1
- package/nationalarchives/components/message/message.scss +1 -6
- package/nationalarchives/components/message/template.njk +1 -1
- package/nationalarchives/components/pagination/macro-options.json +6 -0
- package/nationalarchives/components/pagination/pagination.css +1 -1
- package/nationalarchives/components/pagination/pagination.css.map +1 -1
- package/nationalarchives/components/pagination/pagination.scss +4 -0
- package/nationalarchives/components/pagination/pagination.stories.js +63 -2
- package/nationalarchives/components/pagination/template.njk +39 -17
- package/nationalarchives/components/phase-banner/phase-banner.css +1 -1
- package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
- package/nationalarchives/components/phase-banner/phase-banner.scss +2 -3
- package/nationalarchives/components/picture/picture.css +1 -1
- package/nationalarchives/components/picture/picture.css.map +1 -1
- package/nationalarchives/components/picture/picture.js.map +1 -1
- package/nationalarchives/components/picture/picture.mjs +0 -4
- package/nationalarchives/components/picture/picture.scss +1 -1
- package/nationalarchives/components/picture/template.njk +1 -1
- package/nationalarchives/components/radios/_index.scss +1 -0
- package/nationalarchives/components/radios/fixtures.json +4 -0
- package/nationalarchives/components/radios/macro-options.json +102 -0
- package/nationalarchives/components/radios/macro.njk +3 -0
- package/nationalarchives/components/radios/radios.css +1 -0
- package/nationalarchives/components/radios/radios.css.map +1 -0
- package/nationalarchives/components/radios/radios.scss +131 -0
- package/nationalarchives/components/radios/radios.stories.js +241 -0
- package/nationalarchives/components/radios/template.njk +35 -0
- package/nationalarchives/components/search-field/_index.scss +1 -0
- package/nationalarchives/components/search-field/fixtures.json +4 -0
- package/nationalarchives/components/search-field/macro-options.json +68 -0
- package/nationalarchives/components/search-field/macro.njk +3 -0
- package/nationalarchives/components/search-field/search-field.css +1 -0
- package/nationalarchives/components/search-field/search-field.css.map +1 -0
- package/nationalarchives/components/search-field/search-field.scss +32 -0
- package/nationalarchives/components/search-field/search-field.stories.js +88 -0
- package/nationalarchives/components/search-field/template.njk +32 -0
- package/nationalarchives/components/select/_index.scss +1 -0
- package/nationalarchives/components/select/fixtures.json +4 -0
- package/nationalarchives/components/select/macro-options.json +114 -0
- package/nationalarchives/components/select/macro.njk +3 -0
- package/nationalarchives/components/select/select.css +1 -0
- package/nationalarchives/components/select/select.css.map +1 -0
- package/nationalarchives/components/select/select.scss +51 -0
- package/nationalarchives/components/select/select.stories.js +194 -0
- package/nationalarchives/components/select/template.njk +29 -0
- package/nationalarchives/components/sensitive-image/sensitive-image.css +1 -1
- package/nationalarchives/components/sensitive-image/sensitive-image.css.map +1 -1
- package/nationalarchives/components/sensitive-image/sensitive-image.stories.js +3 -0
- package/nationalarchives/components/sensitive-image/template.njk +1 -1
- package/nationalarchives/components/skip-link/skip-link.css +1 -1
- package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
- package/nationalarchives/components/skip-link/skip-link.stories.js +4 -1
- package/nationalarchives/components/skip-link/template.njk +1 -1
- package/nationalarchives/components/tabs/tabs.css +1 -1
- package/nationalarchives/components/tabs/tabs.css.map +1 -1
- package/nationalarchives/components/tabs/tabs.js +1 -1
- package/nationalarchives/components/tabs/tabs.js.map +1 -1
- package/nationalarchives/components/tabs/tabs.mjs +1 -1
- package/nationalarchives/components/tabs/tabs.scss +11 -1
- package/nationalarchives/components/tabs/tabs.stories.js +6 -3
- package/nationalarchives/components/tabs/template.njk +1 -1
- package/nationalarchives/components/text-input/_index.scss +1 -0
- package/nationalarchives/components/text-input/fixtures.json +4 -0
- package/nationalarchives/components/text-input/macro-options.json +118 -0
- package/nationalarchives/components/text-input/macro.njk +3 -0
- package/nationalarchives/components/text-input/template.njk +30 -0
- package/nationalarchives/components/text-input/text-input.css +1 -0
- package/nationalarchives/components/text-input/text-input.css.map +1 -0
- package/nationalarchives/components/text-input/text-input.scss +44 -0
- package/nationalarchives/components/text-input/text-input.stories.js +188 -0
- package/nationalarchives/components/textarea/_index.scss +1 -0
- package/nationalarchives/components/textarea/fixtures.json +4 -0
- package/nationalarchives/components/textarea/macro-options.json +106 -0
- package/nationalarchives/components/textarea/macro.njk +3 -0
- package/nationalarchives/components/textarea/template.njk +27 -0
- package/nationalarchives/components/textarea/textarea.css +1 -0
- package/nationalarchives/components/textarea/textarea.css.map +1 -0
- package/nationalarchives/components/textarea/textarea.scss +45 -0
- package/nationalarchives/components/textarea/textarea.stories.js +127 -0
- package/nationalarchives/lib/cookies.mjs +172 -63
- package/nationalarchives/prototype-kit.css +2 -2
- package/nationalarchives/prototype-kit.css.map +1 -1
- package/nationalarchives/prototype-kit.scss +0 -8
- package/nationalarchives/stories/utilities/colour-schemes/colour-schemes.stories.js +449 -91
- package/nationalarchives/stories/utilities/forms/forms.mdx +117 -0
- package/nationalarchives/stories/utilities/overrides/overrides.stories.js +1 -0
- package/nationalarchives/stories/utilities/tables/tables.mdx +8 -0
- package/nationalarchives/stories/utilities/tables/tables.stories.js +45 -0
- package/nationalarchives/stories/utilities/typography/heading-groups.stories.js +59 -19
- package/nationalarchives/stories/utilities/typography/typography.stories.js +0 -6
- package/nationalarchives/templates/layouts/_generic.njk +1 -1
- package/nationalarchives/templates/layouts/_prototype-kit.njk +2 -0
- package/nationalarchives/tests/cookies.test.js +427 -0
- package/nationalarchives/tests/uuid.test.js +17 -0
- package/nationalarchives/tools/_colour.scss +50 -27
- package/nationalarchives/tools/_typography.scss +0 -1
- package/nationalarchives/utilities/_a11y.scss +6 -2
- package/nationalarchives/utilities/_colour.scss +10 -6
- package/nationalarchives/utilities/_debug.scss +3 -4
- package/nationalarchives/utilities/_forms.scss +93 -0
- package/nationalarchives/utilities/_index.scss +2 -0
- package/nationalarchives/utilities/_lists.scss +6 -1
- package/nationalarchives/utilities/_overrides.scss +1 -1
- package/nationalarchives/utilities/_tables.scss +86 -0
- package/nationalarchives/utilities/_typography.scss +71 -77
- package/nationalarchives/variables/_colour.scss +15 -10
- package/nationalarchives/variables/_forms.scss +2 -0
- package/nationalarchives/variables/_index.scss +1 -0
- package/nationalarchives/variables/_typography.scss +2 -2
- package/package.json +19 -19
- package/nationalarchives/stories/utilities/overrides/overrides.mdx +0 -53
@@ -0,0 +1,143 @@
|
|
1
|
+
@use "../../variables/forms";
|
2
|
+
@use "../../tools/colour";
|
3
|
+
@use "../../tools/media";
|
4
|
+
@use "../../utilities/a11y";
|
5
|
+
@use "../../utilities";
|
6
|
+
|
7
|
+
.tna-checkboxes {
|
8
|
+
display: flex;
|
9
|
+
flex-direction: column;
|
10
|
+
align-items: flex-start;
|
11
|
+
gap: 1rem;
|
12
|
+
|
13
|
+
&__item {
|
14
|
+
position: relative;
|
15
|
+
|
16
|
+
input {
|
17
|
+
width: 1px;
|
18
|
+
height: 1px;
|
19
|
+
margin: 0;
|
20
|
+
padding: 0;
|
21
|
+
|
22
|
+
position: absolute;
|
23
|
+
top: -1px;
|
24
|
+
left: -1px;
|
25
|
+
|
26
|
+
opacity: 0;
|
27
|
+
}
|
28
|
+
|
29
|
+
&-label {
|
30
|
+
padding-left: 3rem;
|
31
|
+
|
32
|
+
display: block;
|
33
|
+
|
34
|
+
line-height: 2rem;
|
35
|
+
|
36
|
+
cursor: pointer;
|
37
|
+
|
38
|
+
&::before,
|
39
|
+
&::after {
|
40
|
+
width: 2rem;
|
41
|
+
|
42
|
+
position: absolute;
|
43
|
+
top: 0;
|
44
|
+
left: 0;
|
45
|
+
|
46
|
+
content: "";
|
47
|
+
}
|
48
|
+
|
49
|
+
&::before {
|
50
|
+
height: 2rem;
|
51
|
+
|
52
|
+
display: block;
|
53
|
+
box-sizing: border-box;
|
54
|
+
|
55
|
+
z-index: 1;
|
56
|
+
|
57
|
+
@include colour.colour-background("input-background");
|
58
|
+
|
59
|
+
@include colour.colour-border(
|
60
|
+
"input-border",
|
61
|
+
forms.$form-field-border-width
|
62
|
+
);
|
63
|
+
}
|
64
|
+
|
65
|
+
&::after {
|
66
|
+
width: 1.25rem;
|
67
|
+
height: 0.5rem;
|
68
|
+
margin-top: -0.1875rem;
|
69
|
+
|
70
|
+
display: none;
|
71
|
+
|
72
|
+
top: 1rem;
|
73
|
+
left: 1rem;
|
74
|
+
z-index: 2;
|
75
|
+
|
76
|
+
@include colour.colour-border("input-background", 0, solid);
|
77
|
+
border-width: 0 0 forms.$checkbox-checkmark-width
|
78
|
+
forms.$checkbox-checkmark-width;
|
79
|
+
|
80
|
+
transform: translateX(-50%) translateY(-50%) rotate(-45deg);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
&--small {
|
86
|
+
gap: 0.5rem;
|
87
|
+
}
|
88
|
+
|
89
|
+
&--small &__item {
|
90
|
+
&-label {
|
91
|
+
padding-left: 2.5rem;
|
92
|
+
|
93
|
+
line-height: 1.5rem;
|
94
|
+
|
95
|
+
&::before {
|
96
|
+
width: 1.5rem;
|
97
|
+
height: 1.5rem;
|
98
|
+
}
|
99
|
+
|
100
|
+
&::after {
|
101
|
+
width: 0.825rem;
|
102
|
+
height: 0.375rem;
|
103
|
+
margin-top: -0.125rem;
|
104
|
+
|
105
|
+
top: 0.75rem;
|
106
|
+
left: 0.75rem;
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
110
|
+
|
111
|
+
&--inline {
|
112
|
+
flex-flow: row wrap;
|
113
|
+
align-items: center;
|
114
|
+
gap: 1rem 2rem;
|
115
|
+
|
116
|
+
@include media.on-tiny {
|
117
|
+
flex-direction: column;
|
118
|
+
align-items: flex-start;
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
122
|
+
input:focus + &__item-label {
|
123
|
+
&::before {
|
124
|
+
@include a11y.focus-outline;
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
input:checked + &__item-label {
|
129
|
+
&::before {
|
130
|
+
@include colour.colour-background("input-foreground");
|
131
|
+
}
|
132
|
+
|
133
|
+
&::after {
|
134
|
+
display: block;
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
&--small &__item:hover &__item-label {
|
139
|
+
&::before {
|
140
|
+
box-shadow: 0 0 0 0.125rem var(--input-border);
|
141
|
+
}
|
142
|
+
}
|
143
|
+
}
|
@@ -0,0 +1,238 @@
|
|
1
|
+
import Checkboxes from "./template.njk";
|
2
|
+
import macroOptions from "./macro-options.json";
|
3
|
+
|
4
|
+
const argTypes = {
|
5
|
+
label: { control: "text" },
|
6
|
+
headingLevel: { control: { type: "number", min: 1, max: 6 } },
|
7
|
+
headingSize: { control: "inline-radio", options: ["s", "m", "l", "xl"] },
|
8
|
+
id: { control: "text" },
|
9
|
+
name: { control: "text" },
|
10
|
+
hint: { control: "text" },
|
11
|
+
error: { control: "object" },
|
12
|
+
items: { control: "object" },
|
13
|
+
small: { control: "boolean" },
|
14
|
+
inline: { control: "boolean" },
|
15
|
+
classes: { control: "text" },
|
16
|
+
attributes: { control: "object" },
|
17
|
+
};
|
18
|
+
|
19
|
+
Object.keys(argTypes).forEach((argType) => {
|
20
|
+
argTypes[argType].description = macroOptions.find(
|
21
|
+
(option) => option.name === argType,
|
22
|
+
)?.description;
|
23
|
+
});
|
24
|
+
|
25
|
+
export default {
|
26
|
+
title: "Components/Checkboxes",
|
27
|
+
argTypes,
|
28
|
+
};
|
29
|
+
|
30
|
+
const Template = ({
|
31
|
+
label,
|
32
|
+
headingLevel,
|
33
|
+
headingSize,
|
34
|
+
id,
|
35
|
+
name,
|
36
|
+
hint,
|
37
|
+
error,
|
38
|
+
items,
|
39
|
+
small,
|
40
|
+
inline,
|
41
|
+
classes,
|
42
|
+
attributes,
|
43
|
+
}) =>
|
44
|
+
Checkboxes({
|
45
|
+
params: {
|
46
|
+
label,
|
47
|
+
headingLevel,
|
48
|
+
headingSize,
|
49
|
+
id,
|
50
|
+
name,
|
51
|
+
hint,
|
52
|
+
error,
|
53
|
+
items,
|
54
|
+
small,
|
55
|
+
inline,
|
56
|
+
classes,
|
57
|
+
attributes,
|
58
|
+
},
|
59
|
+
});
|
60
|
+
|
61
|
+
export const Standard = Template.bind({});
|
62
|
+
Standard.args = {
|
63
|
+
label: "Categories",
|
64
|
+
headingLevel: 4,
|
65
|
+
headingSize: "m",
|
66
|
+
id: "categories1",
|
67
|
+
name: "categories1",
|
68
|
+
items: [
|
69
|
+
{
|
70
|
+
text: "Alpha",
|
71
|
+
value: "alpha",
|
72
|
+
},
|
73
|
+
{
|
74
|
+
text: "Beta",
|
75
|
+
value: "beta",
|
76
|
+
},
|
77
|
+
{
|
78
|
+
text: "Gamma",
|
79
|
+
value: "gamma",
|
80
|
+
},
|
81
|
+
],
|
82
|
+
classes: "tna-checkboxes--demo",
|
83
|
+
};
|
84
|
+
|
85
|
+
export const Small = Template.bind({});
|
86
|
+
Small.args = {
|
87
|
+
label: "Categories",
|
88
|
+
headingLevel: 4,
|
89
|
+
headingSize: "m",
|
90
|
+
id: "categories2",
|
91
|
+
name: "categories2",
|
92
|
+
items: [
|
93
|
+
{
|
94
|
+
text: "Admiralty, Navy, Royal Marines, and Coastguard",
|
95
|
+
value: "ADM",
|
96
|
+
},
|
97
|
+
{
|
98
|
+
text: "Air Ministry and Royal Air Force records",
|
99
|
+
value: "AIR",
|
100
|
+
},
|
101
|
+
{
|
102
|
+
text: "Board of Trade and successors",
|
103
|
+
value: "BT",
|
104
|
+
},
|
105
|
+
{
|
106
|
+
text: "Chancery, the Wardrobe, Royal Household, Exchequer and various commissions",
|
107
|
+
value: "C",
|
108
|
+
},
|
109
|
+
{
|
110
|
+
text: "Colonial Office, Commonwealth and Foreign and Commonwealth Offices",
|
111
|
+
value: "CO",
|
112
|
+
},
|
113
|
+
{
|
114
|
+
text: "Exchequer, Office of First Fruits and Tenths, and the Court of Augmentations",
|
115
|
+
value: "E",
|
116
|
+
},
|
117
|
+
{
|
118
|
+
text: "Foreign Office",
|
119
|
+
value: "FO",
|
120
|
+
},
|
121
|
+
{
|
122
|
+
text: "Home Office",
|
123
|
+
value: "HO",
|
124
|
+
},
|
125
|
+
{
|
126
|
+
text: "Prerogative Court of Canterbury",
|
127
|
+
value: "PROB",
|
128
|
+
},
|
129
|
+
{
|
130
|
+
text: "War Office, Armed Forces, Judge Advocate General, and related bodies",
|
131
|
+
value: "WO",
|
132
|
+
},
|
133
|
+
],
|
134
|
+
small: true,
|
135
|
+
classes: "tna-checkboxes--demo",
|
136
|
+
};
|
137
|
+
|
138
|
+
export const Preselected = Template.bind({});
|
139
|
+
Preselected.args = {
|
140
|
+
label: "Categories",
|
141
|
+
headingLevel: 4,
|
142
|
+
headingSize: "m",
|
143
|
+
id: "categories3",
|
144
|
+
name: "categories3",
|
145
|
+
items: [
|
146
|
+
{
|
147
|
+
text: "Alpha",
|
148
|
+
value: "alpha",
|
149
|
+
},
|
150
|
+
{
|
151
|
+
text: "Beta",
|
152
|
+
value: "beta",
|
153
|
+
checked: true,
|
154
|
+
},
|
155
|
+
{
|
156
|
+
text: "Gamma",
|
157
|
+
value: "gamma",
|
158
|
+
},
|
159
|
+
],
|
160
|
+
classes: "tna-checkboxes--demo",
|
161
|
+
};
|
162
|
+
|
163
|
+
export const WithHint = Template.bind({});
|
164
|
+
WithHint.args = {
|
165
|
+
label: "Categories",
|
166
|
+
headingLevel: 4,
|
167
|
+
headingSize: "m",
|
168
|
+
id: "categories4",
|
169
|
+
name: "categories4",
|
170
|
+
hint: "Select all that apply.",
|
171
|
+
items: [
|
172
|
+
{
|
173
|
+
text: "Alpha",
|
174
|
+
value: "alpha",
|
175
|
+
},
|
176
|
+
{
|
177
|
+
text: "Beta",
|
178
|
+
value: "beta",
|
179
|
+
},
|
180
|
+
{
|
181
|
+
text: "Gamma",
|
182
|
+
value: "gamma",
|
183
|
+
},
|
184
|
+
],
|
185
|
+
classes: "tna-checkboxes--demo",
|
186
|
+
};
|
187
|
+
|
188
|
+
export const Error = Template.bind({});
|
189
|
+
Error.args = {
|
190
|
+
label: "Categories",
|
191
|
+
headingLevel: 4,
|
192
|
+
headingSize: "m",
|
193
|
+
id: "categories5",
|
194
|
+
name: "categories5",
|
195
|
+
error: {
|
196
|
+
text: "You must select a category",
|
197
|
+
},
|
198
|
+
items: [
|
199
|
+
{
|
200
|
+
text: "Alpha",
|
201
|
+
value: "alpha",
|
202
|
+
},
|
203
|
+
{
|
204
|
+
text: "Beta",
|
205
|
+
value: "beta",
|
206
|
+
},
|
207
|
+
{
|
208
|
+
text: "Gamma",
|
209
|
+
value: "gamma",
|
210
|
+
},
|
211
|
+
],
|
212
|
+
classes: "tna-checkboxes--demo",
|
213
|
+
};
|
214
|
+
|
215
|
+
export const Inline = Template.bind({});
|
216
|
+
Inline.args = {
|
217
|
+
label: "Categories",
|
218
|
+
headingLevel: 4,
|
219
|
+
headingSize: "xs",
|
220
|
+
id: "categories6",
|
221
|
+
name: "categories6",
|
222
|
+
items: [
|
223
|
+
{
|
224
|
+
text: "Alpha",
|
225
|
+
value: "alpha",
|
226
|
+
},
|
227
|
+
{
|
228
|
+
text: "Beta",
|
229
|
+
value: "beta",
|
230
|
+
},
|
231
|
+
{
|
232
|
+
text: "Gamma",
|
233
|
+
value: "gamma",
|
234
|
+
},
|
235
|
+
],
|
236
|
+
inline: true,
|
237
|
+
classes: "tna-checkboxes--demo",
|
238
|
+
};
|
@@ -0,0 +1,102 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"name": "label",
|
4
|
+
"type": "text",
|
5
|
+
"required": true,
|
6
|
+
"description": ""
|
7
|
+
},
|
8
|
+
{
|
9
|
+
"name": "headingLevel",
|
10
|
+
"type": "number",
|
11
|
+
"required": true,
|
12
|
+
"description": ""
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"name": "headingSize",
|
16
|
+
"type": "text",
|
17
|
+
"required": false,
|
18
|
+
"description": ""
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"name": "id",
|
22
|
+
"type": "text",
|
23
|
+
"required": true,
|
24
|
+
"description": ""
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"name": "name",
|
28
|
+
"type": "text",
|
29
|
+
"required": true,
|
30
|
+
"description": ""
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"name": "hint",
|
34
|
+
"type": "text",
|
35
|
+
"required": false,
|
36
|
+
"description": ""
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"name": "error",
|
40
|
+
"type": "object",
|
41
|
+
"required": false,
|
42
|
+
"description": "",
|
43
|
+
"params": [
|
44
|
+
{
|
45
|
+
"name": "text",
|
46
|
+
"type": "text",
|
47
|
+
"required": true,
|
48
|
+
"description": ""
|
49
|
+
}
|
50
|
+
]
|
51
|
+
},
|
52
|
+
{
|
53
|
+
"name": "items",
|
54
|
+
"type": "array",
|
55
|
+
"required": true,
|
56
|
+
"description": "",
|
57
|
+
"params": [
|
58
|
+
{
|
59
|
+
"name": "text",
|
60
|
+
"type": "text",
|
61
|
+
"required": true,
|
62
|
+
"description": ""
|
63
|
+
},
|
64
|
+
{
|
65
|
+
"name": "value",
|
66
|
+
"type": "text",
|
67
|
+
"required": true,
|
68
|
+
"description": ""
|
69
|
+
},
|
70
|
+
{
|
71
|
+
"name": "checked",
|
72
|
+
"type": "boolean",
|
73
|
+
"required": false,
|
74
|
+
"description": ""
|
75
|
+
}
|
76
|
+
]
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"name": "small",
|
80
|
+
"type": "boolean",
|
81
|
+
"required": false,
|
82
|
+
"description": ""
|
83
|
+
},
|
84
|
+
{
|
85
|
+
"name": "inline",
|
86
|
+
"type": "boolean",
|
87
|
+
"required": false,
|
88
|
+
"description": ""
|
89
|
+
},
|
90
|
+
{
|
91
|
+
"name": "classes",
|
92
|
+
"type": "string",
|
93
|
+
"required": false,
|
94
|
+
"description": "Classes to add to the checkboxes."
|
95
|
+
},
|
96
|
+
{
|
97
|
+
"name": "attributes",
|
98
|
+
"type": "object",
|
99
|
+
"required": false,
|
100
|
+
"description": "HTML attributes (for example data attributes) to add to the checkboxes."
|
101
|
+
}
|
102
|
+
]
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{%- set containerClasses = [params.classes] if params.classes else [] -%}
|
2
|
+
{%- if params.inline -%}
|
3
|
+
{%- set containerClasses = containerClasses.concat('tna-form__group--inline') -%}
|
4
|
+
{%- endif -%}
|
5
|
+
<div class="tna-form__group{% if params.error %} tna-form__group--error{% endif %} {{ containerClasses | join(' ') }}"{% for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
|
6
|
+
<fieldset class="tna-form__fieldset"{%- if params.hint or params.error %} aria-describedby="{%- if params.hint -%}tna-form__{{ params.id }}-hint{%- endif %} {% if params.error -%}tna-form__{{ params.id }}-error{%- endif -%}"{%- endif %}>
|
7
|
+
<div class="tna-form__group-contents">
|
8
|
+
<legend class="tna-form__legend tna-form__group-contents">
|
9
|
+
<h{{ params.headingLevel }} class="tna-form__heading tna-form__heading--{{ params.headingSize or 'm' }}">
|
10
|
+
{{ params.label }}
|
11
|
+
</h{{ params.headingLevel }}>
|
12
|
+
</legend>
|
13
|
+
{%- if params.hint %}
|
14
|
+
<p id="tna-form__{{ params.id }}-hint" class="tna-form__hint">
|
15
|
+
{{ params.hint }}
|
16
|
+
</p>
|
17
|
+
{%- endif %}
|
18
|
+
{%- if params.error %}
|
19
|
+
<p id="tna-form__{{ params.id }}-error" class="tna-form__error-message">
|
20
|
+
<span class="tna-!--visually-hidden">Error:</span> {{ params.error.text }}
|
21
|
+
</p>
|
22
|
+
{%- endif %}
|
23
|
+
</div>
|
24
|
+
<div class="tna-checkboxes{% if params.small or params.inline %} tna-checkboxes--small{% endif %}{% if params.inline %} tna-checkboxes--inline{% endif %}">
|
25
|
+
{%- for item in params.items %}
|
26
|
+
<div class="tna-checkboxes__item">
|
27
|
+
<input type="checkbox" id="tna-form__{{ params.id }}-{{ item.value }}" value="{{ item.value }}" name="{{ params.name }}"{% if item.checked %} checked{% endif %}>
|
28
|
+
<label for="tna-form__{{ params.id }}-{{ item.value }}" class="tna-checkboxes__item-label">
|
29
|
+
{{ item.text }}
|
30
|
+
</label>
|
31
|
+
</div>
|
32
|
+
{%- endfor %}
|
33
|
+
</div>
|
34
|
+
</fieldset>
|
35
|
+
</div>
|