@ons/design-system 53.0.4 → 54.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/components/accordion/_macro.njk +2 -3
  2. package/components/accordion/_macro.spec.js +3 -40
  3. package/components/accordion/accordion.dom.js +19 -0
  4. package/components/{collapsible/collapsible.group.js → accordion/accordion.js} +12 -5
  5. package/components/accordion/accordion.spec.js +56 -51
  6. package/components/autosuggest/_autosuggest.scss +1 -1
  7. package/components/browser-banner/_browser-banner.scss +39 -0
  8. package/components/browser-banner/_macro.njk +17 -0
  9. package/components/browser-banner/_macro.spec.js +83 -0
  10. package/components/checkboxes/_macro.njk +1 -1
  11. package/components/collapsible/_collapsible.scss +58 -85
  12. package/components/collapsible/_macro.njk +6 -39
  13. package/components/collapsible/_macro.spec.js +0 -53
  14. package/components/collapsible/collapsible.dom.js +3 -12
  15. package/components/collapsible/collapsible.js +3 -45
  16. package/components/collapsible/collapsible.spec.js +6 -139
  17. package/components/cookies-banner/_cookies-banner.scss +15 -7
  18. package/components/cookies-banner/_macro.njk +66 -22
  19. package/components/cookies-banner/_macro.spec.js +172 -114
  20. package/components/cookies-banner/cookies-banner.js +35 -13
  21. package/components/cookies-banner/cookies-banner.spec.js +58 -54
  22. package/components/duration/_macro.njk +1 -1
  23. package/components/duration/_macro.spec.js +1 -1
  24. package/components/fieldset/_fieldset.scss +3 -6
  25. package/components/header/_macro.njk +7 -0
  26. package/components/input/_macro.njk +20 -15
  27. package/components/input/_macro.spec.js +56 -0
  28. package/components/label/_label.scss +1 -1
  29. package/components/mutually-exclusive/mutually-exclusive.duration.spec.js +2 -0
  30. package/components/mutually-exclusive/mutually-exclusive.number.spec.js +1 -0
  31. package/css/census.css +1 -1
  32. package/css/error.css +1 -1
  33. package/css/ids.css +1 -1
  34. package/css/main.css +1 -1
  35. package/js/main.js +1 -0
  36. package/layout/_template.njk +1 -0
  37. package/package.json +1 -1
  38. package/scripts/main.es5.js +1 -1
  39. package/scripts/main.js +2 -2
  40. package/scss/main.scss +1 -0
  41. package/scss/objects/_page.scss +1 -1
  42. package/scss/vars/_colors.scss +1 -0
@@ -15,9 +15,9 @@
15
15
  onsButton({
16
16
  "type": "button",
17
17
  "text": params.allButton.open,
18
- "classes": "ons-js-collapsible-all ons-u-mb-s ons-u-d-no",
18
+ "classes": "ons-js-accordion-all ons-u-mb-s ons-u-d-no",
19
19
  "variants": ["secondary", "small"],
20
- "innerClasses": "ons-js-collapsible-all-inner",
20
+ "innerClasses": "ons-js-accordion-all-inner",
21
21
  "attributes": attributes
22
22
  })
23
23
  }}
@@ -36,7 +36,6 @@
36
36
  "content": item.content,
37
37
  "group": params.id,
38
38
  "saveState": params.saveState,
39
- "variants": params.variants,
40
39
  "open": params.open
41
40
  })
42
41
  }}
@@ -54,18 +54,6 @@ describe('macro: accordion', () => {
54
54
  });
55
55
 
56
56
  describe('item', () => {
57
- it('has provided variant style classes', () => {
58
- const $ = cheerio.load(
59
- renderComponent('accordion', {
60
- ...EXAMPLE_ACCORDION_WITH_TWO_ITEMS,
61
- variants: ['variant-a', 'variant-b'],
62
- }),
63
- );
64
-
65
- expect($('.ons-collapsible--variant-a').length).toBe(2);
66
- expect($('.ons-collapsible--variant-b').length).toBe(2);
67
- });
68
-
69
57
  it('has provided title text', () => {
70
58
  const $ = cheerio.load(renderComponent('accordion', EXAMPLE_ACCORDION_WITH_TWO_ITEMS));
71
59
 
@@ -103,31 +91,6 @@ describe('macro: accordion', () => {
103
91
  expect(titleText).toBe('Content for item 1');
104
92
  });
105
93
 
106
- it('outputs a button with the expected class', () => {
107
- const $ = cheerio.load(
108
- renderComponent('accordion', {
109
- itemsList: [
110
- {
111
- title: 'Title for item 1',
112
- button: {
113
- open: 'Open label',
114
- close: 'Close label',
115
- },
116
- },
117
- {
118
- title: 'Title for item 2',
119
- button: {
120
- open: 'Open label',
121
- close: 'Close label',
122
- },
123
- },
124
- ],
125
- }),
126
- );
127
-
128
- expect($('button.ons-js-collapsible-button').length).toBe(2);
129
- });
130
-
131
94
  it('has additionally provided `attributes`', () => {
132
95
  const $ = cheerio.load(
133
96
  renderComponent('accordion', {
@@ -199,7 +162,7 @@ describe('macro: accordion', () => {
199
162
  }),
200
163
  );
201
164
 
202
- expect($('button.ons-js-collapsible-all').length).toBe(1);
165
+ expect($('button.ons-js-accordion-all').length).toBe(1);
203
166
  });
204
167
 
205
168
  it('has additionally provided `attributes`', () => {
@@ -217,8 +180,8 @@ describe('macro: accordion', () => {
217
180
  }),
218
181
  );
219
182
 
220
- expect($('button.ons-js-collapsible-all').attr('a')).toBe('123');
221
- expect($('button.ons-js-collapsible-all').attr('b')).toBe('456');
183
+ expect($('button.ons-js-accordion-all').attr('a')).toBe('123');
184
+ expect($('button.ons-js-accordion-all').attr('b')).toBe('456');
222
185
  });
223
186
  });
224
187
  });
@@ -0,0 +1,19 @@
1
+ import domready from '../../js/domready';
2
+
3
+ async function initialiseAccordions() {
4
+ const toggleAllButtons = [...document.querySelectorAll('.ons-js-accordion-all')];
5
+
6
+ if (toggleAllButtons.length) {
7
+ const collapsibleComponents = [...document.querySelectorAll('.ons-js-collapsible')];
8
+
9
+ const Collapsible = (await import('../collapsible/collapsible')).default;
10
+ const Accordion = (await import('./accordion')).default;
11
+ const collapsibles = collapsibleComponents.map(element => new Collapsible(element));
12
+
13
+ toggleAllButtons.forEach(button => {
14
+ new Accordion(button, collapsibles);
15
+ });
16
+ }
17
+ }
18
+
19
+ domready(initialiseAccordions);
@@ -1,23 +1,28 @@
1
- export default class CollapsibleGroup {
1
+ export default class Accordion {
2
2
  constructor(button, collapsibles) {
3
3
  this.openCollapsibles = 0;
4
4
 
5
5
  this.button = button;
6
- this.buttonInner = button.querySelector('.ons-js-collapsible-all-inner');
6
+ this.buttonInner = button.querySelector('.ons-js-accordion-all-inner');
7
7
  this.group = button.getAttribute('data-group');
8
8
  this.collapsibles = collapsibles.filter(collapsible => collapsible.group === this.group);
9
-
10
9
  this.totalCollapsibles = this.collapsibles.length;
11
- this.buttonOpen = this.buttonInner.innerHTML.trim();
10
+ this.buttonOpenEl = this.buttonInner.querySelector('.ons-btn__text');
11
+ this.buttonOpen = this.buttonOpenEl.innerHTML.trim();
12
12
  this.closeButton = button.getAttribute('data-close-all');
13
+ this.open = this.collapsibles.find(collapsible => collapsible.open === true);
13
14
 
14
15
  this.collapsibles.forEach(collapsible => {
15
16
  collapsible.onOpen = this.onOpen.bind(this);
16
17
  collapsible.onClose = this.onClose.bind(this);
17
18
  });
18
19
 
19
- this.button.addEventListener('click', this.handleButtonClick.bind(this));
20
+ if (this.open) {
21
+ this.openCollapsibles = this.totalCollapsibles;
22
+ }
20
23
 
24
+ this.button.addEventListener('click', this.handleButtonClick.bind(this));
25
+ this.setButton();
21
26
  this.button.classList.remove('ons-u-d-no');
22
27
  }
23
28
 
@@ -49,9 +54,11 @@ export default class CollapsibleGroup {
49
54
  if (this.canClose()) {
50
55
  this.buttonInner.innerHTML = this.closeButton;
51
56
  this.button.setAttribute('data-ga-label', this.buttonOpen);
57
+ this.button.setAttribute('aria-expanded', 'true');
52
58
  } else {
53
59
  this.buttonInner.innerHTML = this.buttonOpen;
54
60
  this.button.setAttribute('data-ga-label', this.closeButton);
61
+ this.button.setAttribute('aria-expanded', 'false');
55
62
  }
56
63
  }
57
64
  }
@@ -6,26 +6,14 @@ const EXAMPLE_ACCORDION_WITH_THREE_ITEMS = {
6
6
  {
7
7
  title: 'Title for item 1',
8
8
  content: 'Content for item 1',
9
- button: {
10
- open: 'Open item',
11
- close: 'Close item',
12
- },
13
9
  },
14
10
  {
15
11
  title: 'Title for item 2',
16
12
  content: 'Content for item 2',
17
- button: {
18
- open: 'Open item',
19
- close: 'Close item',
20
- },
21
13
  },
22
14
  {
23
15
  title: 'Title for item 3',
24
16
  content: 'Content for item 3',
25
- button: {
26
- open: 'Open item',
27
- close: 'Close item',
28
- },
29
17
  },
30
18
  ],
31
19
  };
@@ -42,43 +30,68 @@ const EXAMPLE_ACCORDION_WITH_ALL_BUTTON = {
42
30
  };
43
31
 
44
32
  describe('script: accordion', () => {
45
- it('begins with all items closed', async () => {
46
- await setTestPage('/test', renderComponent('accordion', EXAMPLE_ACCORDION_WITH_THREE_ITEMS));
33
+ it('begins with all items open when specified', async () => {
34
+ await setTestPage(
35
+ '/test',
36
+ renderComponent('accordion', {
37
+ ...EXAMPLE_ACCORDION_WITH_THREE_ITEMS,
38
+ open: true,
39
+ }),
40
+ );
47
41
 
48
- const openItemCount = await page.$$eval('.ons-collapsible--open', elements => elements.length);
49
- expect(openItemCount).toBe(0);
42
+ const openElements = await page.$$eval('.ons-js-collapsible', nodes => nodes.filter(node => node.open));
43
+ expect(openElements[0]).not.toBe(undefined);
44
+ expect(openElements[1]).not.toBe(undefined);
45
+ expect(openElements[2]).not.toBe(undefined);
50
46
  });
51
47
 
52
- it('begins with all items open when specified', async () => {
48
+ it('sets toggle all button label to "Hide all" when open is specified', async () => {
53
49
  await setTestPage(
54
50
  '/test',
55
51
  renderComponent('accordion', {
56
- ...EXAMPLE_ACCORDION_WITH_THREE_ITEMS,
52
+ ...EXAMPLE_ACCORDION_WITH_ALL_BUTTON,
53
+ open: true,
54
+ }),
55
+ );
56
+
57
+ const buttonText = await page.$eval('button[data-test-trigger]', element => element.innerText);
58
+ expect(buttonText.trim()).toBe('Close all');
59
+ });
60
+
61
+ it('sets toggle all button aria-expanded set to true when open is specified', async () => {
62
+ await setTestPage(
63
+ '/test',
64
+ renderComponent('accordion', {
65
+ ...EXAMPLE_ACCORDION_WITH_ALL_BUTTON,
57
66
  open: true,
58
67
  }),
59
68
  );
60
69
 
61
- const openItemCount = await page.$$eval('.ons-collapsible--open', elements => elements.length);
62
- expect(openItemCount).toBe(3);
70
+ const ariaExpanded = await page.$eval('button[data-test-trigger]', element => element.getAttribute('aria-expanded'));
71
+ expect(ariaExpanded).toBe('true');
63
72
  });
64
73
 
65
- it('opens all items when accordion "Open all" button is clicked', async () => {
74
+ it('opens all items when accordion `allbutton` is clicked', async () => {
66
75
  await setTestPage('/test', renderComponent('accordion', EXAMPLE_ACCORDION_WITH_ALL_BUTTON));
67
76
 
68
77
  await page.click('button[data-test-trigger]');
69
78
 
70
- const openItemCount = await page.$$eval('.ons-collapsible--open', elements => elements.length);
71
- expect(openItemCount).toBe(3);
79
+ const openElements = await page.$$eval('.ons-js-collapsible', nodes => nodes.filter(node => node.open));
80
+ expect(openElements[0]).not.toBe(undefined);
81
+ expect(openElements[1]).not.toBe(undefined);
82
+ expect(openElements[2]).not.toBe(undefined);
72
83
  });
73
84
 
74
- it('closes all items when accordion "Open all" button is clicked twice', async () => {
85
+ it('closes all items when accordion `allbutton` is clicked twice', async () => {
75
86
  await setTestPage('/test', renderComponent('accordion', EXAMPLE_ACCORDION_WITH_ALL_BUTTON));
76
87
 
77
88
  await page.click('button[data-test-trigger]');
78
89
  await page.click('button[data-test-trigger]');
79
90
 
80
- const openItemCount = await page.$$eval('.ons-collapsible--open', elements => elements.length);
81
- expect(openItemCount).toBe(0);
91
+ const openElements = await page.$$eval('.ons-js-collapsible', nodes => nodes.filter(node => node.open));
92
+ expect(openElements[0]).toBe(undefined);
93
+ expect(openElements[1]).toBe(undefined);
94
+ expect(openElements[2]).toBe(undefined);
82
95
  });
83
96
 
84
97
  it('starts with the toggle all button labelled as "Open all"', async () => {
@@ -88,47 +101,39 @@ describe('script: accordion', () => {
88
101
  expect(buttonText.trim()).toBe('Open all');
89
102
  });
90
103
 
91
- it('sets toggle all button label to "Hide all" when clicked', async () => {
104
+ it('starts with the toggle all button aria-expanded set to false', async () => {
92
105
  await setTestPage('/test', renderComponent('accordion', EXAMPLE_ACCORDION_WITH_ALL_BUTTON));
93
106
 
94
- await page.click('button[data-test-trigger]');
95
-
96
- const buttonText = await page.$eval('button[data-test-trigger]', element => element.innerText);
97
- expect(buttonText.trim()).toBe('Close all');
107
+ const ariaExpanded = await page.$eval('button[data-test-trigger]', element => element.getAttribute('aria-expanded'));
108
+ expect(ariaExpanded).toBe('false');
98
109
  });
99
110
 
100
- it('sets toggle all button label to "Hide all" when all items are shown', async () => {
111
+ it('sets toggle all button label to "Hide all" when clicked', async () => {
101
112
  await setTestPage('/test', renderComponent('accordion', EXAMPLE_ACCORDION_WITH_ALL_BUTTON));
102
113
 
103
- await page.click('#example-accordion-1 .ons-collapsible__btn');
104
- await page.click('#example-accordion-2 .ons-collapsible__btn');
105
- await page.click('#example-accordion-3 .ons-collapsible__btn');
114
+ await page.click('button[data-test-trigger]');
106
115
 
107
116
  const buttonText = await page.$eval('button[data-test-trigger]', element => element.innerText);
108
117
  expect(buttonText.trim()).toBe('Close all');
109
118
  });
110
119
 
111
- it('opens an item when its open button is clicked', async () => {
112
- await setTestPage('/test', renderComponent('accordion', EXAMPLE_ACCORDION_WITH_THREE_ITEMS));
120
+ it('sets toggle all button aria-expanded set to true when clicked', async () => {
121
+ await setTestPage('/test', renderComponent('accordion', EXAMPLE_ACCORDION_WITH_ALL_BUTTON));
113
122
 
114
- await page.click('#example-accordion-2 .ons-collapsible__btn');
115
- await page.click('#example-accordion-3 .ons-collapsible__btn');
123
+ await page.click('button[data-test-trigger]');
116
124
 
117
- const openItemCount = await page.$$eval('.ons-collapsible--open', elements => elements.length);
118
- expect(openItemCount).toBe(2);
125
+ const ariaExpanded = await page.$eval('button[data-test-trigger]', element => element.getAttribute('aria-expanded'));
126
+ expect(ariaExpanded).toBe('true');
119
127
  });
120
128
 
121
- it('closes an item when its open button is clicked twice', async () => {
122
- await setTestPage('/test', renderComponent('accordion', EXAMPLE_ACCORDION_WITH_THREE_ITEMS));
123
-
124
- await page.click('#example-accordion-2 .ons-collapsible__btn');
125
- await page.click('#example-accordion-3 .ons-collapsible__btn');
126
- await page.click('#example-accordion-3 .ons-collapsible__btn');
129
+ it('sets toggle all button label to "Hide all" when all items are shown', async () => {
130
+ await setTestPage('/test', renderComponent('accordion', EXAMPLE_ACCORDION_WITH_ALL_BUTTON));
127
131
 
128
- const isItem2Open = await page.$eval('#example-accordion-2', element => element.classList.contains('ons-collapsible--open'));
129
- expect(isItem2Open).toBe(true);
132
+ await page.click('#example-accordion-1 .ons-collapsible__heading');
133
+ await page.click('#example-accordion-2 .ons-collapsible__heading');
134
+ await page.click('#example-accordion-3 .ons-collapsible__heading');
130
135
 
131
- const isItem3Open = await page.$eval('#example-accordion-3', element => element.classList.contains('ons-collapsible--open'));
132
- expect(isItem3Open).toBe(false);
136
+ const buttonText = await page.$eval('button[data-test-trigger]', element => element.innerText);
137
+ expect(buttonText.trim()).toBe('Close all');
133
138
  });
134
139
  });
@@ -131,7 +131,7 @@
131
131
  box-shadow: 0 0 5px 0 rgba($color-black, 0.6);
132
132
  left: 0;
133
133
  position: absolute;
134
- z-index: 1;
134
+ z-index: 10;
135
135
  }
136
136
  }
137
137
  }
@@ -0,0 +1,39 @@
1
+ .ons-browser-banner {
2
+ background-color: $color-banner-browser-bg;
3
+ display: none; // Hides unsupported browser banner unless targeted below
4
+ padding: 0.8rem 0;
5
+
6
+ &__content {
7
+ @extend .ons-u-fs-s;
8
+
9
+ color: $color-text-inverse;
10
+ margin: 0;
11
+ }
12
+
13
+ &__lead {
14
+ @extend .ons-u-fw-b;
15
+ }
16
+
17
+ &__link {
18
+ color: $color-text-inverse-link;
19
+
20
+ &:hover {
21
+ color: $color-text-inverse-link-hover;
22
+ text-decoration: underline solid $color-text-inverse-link-hover 2px;
23
+ }
24
+ }
25
+ }
26
+
27
+ // Targets browsers IE10 & IE11 and displays unsupported browser banner
28
+ @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
29
+ .ons-browser-banner {
30
+ display: block;
31
+ }
32
+ }
33
+
34
+ // Targets browsers IE8 & IE9 and displays unsupported browser banner
35
+ @media screen\0 {
36
+ .ons-browser-banner {
37
+ display: block;
38
+ }
39
+ }
@@ -0,0 +1,17 @@
1
+ {% macro onsBrowserBanner(params) %}
2
+ {% if params.lang == "cy" %}
3
+ {% set bannerLeadingText = 'Nid yw’r wefan hon yn cefnogi eich porwr mwyach.' %}
4
+ {% set bannerLinkUrl = 'https://cy.ons.gov.uk/help/browsers' %}
5
+ {% set bannerCTA = 'Gallwch <a class="ons-browser-banner__link" href="' + bannerLinkUrl + '">ddiweddaru eich porwr i’r fersiwn ddiweddaraf</a>.' %}
6
+ {% else %}
7
+ {% set bannerLeadingText = 'This website no longer supports your browser.' %}
8
+ {% set bannerLinkUrl = 'https://www.ons.gov.uk/help/browsers' %}
9
+ {% set bannerCTA = 'You can <a class="ons-browser-banner__link" href="' + bannerLinkUrl + '">upgrade your browser to the latest version</a>.' %}
10
+ {% endif %}
11
+
12
+ <div class="ons-browser-banner">
13
+ <div class="ons-container{{ ' ons-container--wide' if params.wide is defined and params.wide }}">
14
+ <p class="ons-browser-banner__content"><span class="ons-browser-banner__lead">{{ bannerLeadingText }}</span><span class="ons-browser-banner__cta"> {{ bannerCTA | safe }}</span></p>
15
+ </div>
16
+ </div>
17
+ {% endmacro %}
@@ -0,0 +1,83 @@
1
+ /** @jest-environment jsdom */
2
+
3
+ import * as cheerio from 'cheerio';
4
+
5
+ import axe from '../../tests/helpers/axe';
6
+ import { renderComponent } from '../../tests/helpers/rendering';
7
+
8
+ const EXAMPLE_BROWSER_BANNER_DEFAULT = {};
9
+
10
+ describe('macro: browser-banner', () => {
11
+ it('passes jest-axe checks with', async () => {
12
+ const $ = cheerio.load(renderComponent('browser-banner', EXAMPLE_BROWSER_BANNER_DEFAULT));
13
+
14
+ const results = await axe($.html());
15
+ expect(results).toHaveNoViolations();
16
+ });
17
+
18
+ it('has the default `bannerLeadingText`', () => {
19
+ const $ = cheerio.load(renderComponent('browser-banner', EXAMPLE_BROWSER_BANNER_DEFAULT));
20
+
21
+ const bannerLeadingText = $('.ons-browser-banner__lead')
22
+ .text()
23
+ .trim();
24
+ expect(bannerLeadingText).toBe('This website no longer supports your browser.');
25
+ });
26
+
27
+ it('has the default `bannerCTA`', () => {
28
+ const $ = cheerio.load(renderComponent('browser-banner', EXAMPLE_BROWSER_BANNER_DEFAULT));
29
+
30
+ const bannerCtaHtml = $('.ons-browser-banner__cta')
31
+ .text()
32
+ .trim();
33
+ expect(bannerCtaHtml).toBe('You can upgrade your browser to the latest version.');
34
+ });
35
+
36
+ it('has the default `bannerLinkUrl`', () => {
37
+ const $ = cheerio.load(renderComponent('browser-banner', EXAMPLE_BROWSER_BANNER_DEFAULT));
38
+
39
+ expect($('.ons-browser-banner__link').attr('href')).toBe('https://www.ons.gov.uk/help/browsers');
40
+ });
41
+
42
+ it('has `container--wide` class when `wide` is true', () => {
43
+ const $ = cheerio.load(
44
+ renderComponent('browser-banner', {
45
+ ...EXAMPLE_BROWSER_BANNER_DEFAULT,
46
+ wide: true,
47
+ }),
48
+ );
49
+
50
+ expect($('.ons-container').hasClass('ons-container--wide')).toBe(true);
51
+ });
52
+ });
53
+
54
+ describe('mode: Welsh language', () => {
55
+ it('has the welsh version of default `bannerLeadingText`', () => {
56
+ const $ = cheerio.load(
57
+ renderComponent('browser-banner', {
58
+ ...EXAMPLE_BROWSER_BANNER_DEFAULT,
59
+ lang: 'cy',
60
+ }),
61
+ );
62
+
63
+ const bannerLeadingText = $('.ons-browser-banner__lead')
64
+ .text()
65
+ .trim();
66
+ expect(bannerLeadingText).toBe('Nid yw’r wefan hon yn cefnogi eich porwr mwyach.');
67
+ });
68
+
69
+ it('has the welsh version of default `bannerCTA`', () => {
70
+ const $ = cheerio.load(renderComponent('browser-banner', { lang: 'cy' }));
71
+
72
+ const bannerCtaHtml = $('.ons-browser-banner__cta')
73
+ .text()
74
+ .trim();
75
+ expect(bannerCtaHtml).toBe('Gallwch ddiweddaru eich porwr i’r fersiwn ddiweddaraf.');
76
+ });
77
+
78
+ it('has the welsh version of default `bannerLinkUrl`', () => {
79
+ const $ = cheerio.load(renderComponent('browser-banner', { lang: 'cy' }));
80
+
81
+ expect($('.ons-browser-banner__link').attr('href')).toBe('https://cy.ons.gov.uk/help/browsers');
82
+ });
83
+ });
@@ -85,7 +85,7 @@
85
85
  "text": checkbox.other.label.text
86
86
  },
87
87
  "legend": checkbox.other.legend,
88
- "legendClasses": checkbox.other.legendClasses | default('') + ' ons-u-mb-xs',
88
+ "legendClasses": checkbox.other.legendClasses,
89
89
  "value": checkbox.other.value,
90
90
  "autoSelect": checkbox.other.autoSelect,
91
91
  "selectAllChildren": checkbox.other.selectAllChildren,