@noctuatech/uswds 0.0.4 → 0.0.6

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 (59) hide show
  1. package/assets/uswds.min.js +1 -1
  2. package/package.json +16 -4
  3. package/src/lib/accordion/accordion.element.ts +22 -19
  4. package/src/lib/accordion/accordion.test.ts +50 -48
  5. package/src/lib/checkbox/checkbox.element.ts +3 -1
  6. package/src/lib/define.ts +2 -0
  7. package/src/lib/link/link.element.ts +6 -2
  8. package/src/lib/radio/radio-option.element.ts +31 -13
  9. package/src/lib/radio/radio.element.ts +26 -40
  10. package/src/lib/radio/radio.stories.ts +18 -8
  11. package/src/lib/select/select-option.element.ts +10 -11
  12. package/src/lib/select/select.element.ts +5 -19
  13. package/src/lib/side-nav/side-nav-item.element.ts +86 -0
  14. package/src/lib/side-nav/side-nav.element.ts +25 -0
  15. package/src/lib/side-nav/side-nav.stories.ts +62 -0
  16. package/src/lib/side-nav/side-nav.test.ts +110 -0
  17. package/src/lib.ts +1 -0
  18. package/target/lib/accordion/accordion.element.d.ts +5 -5
  19. package/target/lib/accordion/accordion.element.js +18 -15
  20. package/target/lib/accordion/accordion.element.js.map +1 -1
  21. package/target/lib/accordion/accordion.test.js +50 -40
  22. package/target/lib/accordion/accordion.test.js.map +1 -1
  23. package/target/lib/checkbox/checkbox.element.js +3 -1
  24. package/target/lib/checkbox/checkbox.element.js.map +1 -1
  25. package/target/lib/define.d.ts +2 -0
  26. package/target/lib/define.js +2 -0
  27. package/target/lib/define.js.map +1 -1
  28. package/target/lib/link/link.element.js +6 -2
  29. package/target/lib/link/link.element.js.map +1 -1
  30. package/target/lib/radio/radio-option.element.d.ts +5 -2
  31. package/target/lib/radio/radio-option.element.js +37 -15
  32. package/target/lib/radio/radio-option.element.js.map +1 -1
  33. package/target/lib/radio/radio.element.d.ts +2 -3
  34. package/target/lib/radio/radio.element.js +29 -38
  35. package/target/lib/radio/radio.element.js.map +1 -1
  36. package/target/lib/radio/radio.stories.d.ts +7 -2
  37. package/target/lib/radio/radio.stories.js +13 -7
  38. package/target/lib/radio/radio.stories.js.map +1 -1
  39. package/target/lib/select/select-option.element.d.ts +2 -1
  40. package/target/lib/select/select-option.element.js +8 -11
  41. package/target/lib/select/select-option.element.js.map +1 -1
  42. package/target/lib/select/select.element.d.ts +1 -3
  43. package/target/lib/select/select.element.js +8 -19
  44. package/target/lib/select/select.element.js.map +1 -1
  45. package/target/lib/side-nav/side-nav-item.element.d.ts +8 -0
  46. package/target/lib/side-nav/side-nav-item.element.js +109 -0
  47. package/target/lib/side-nav/side-nav-item.element.js.map +1 -0
  48. package/target/lib/side-nav/side-nav.element.d.ts +8 -0
  49. package/target/lib/side-nav/side-nav.element.js +36 -0
  50. package/target/lib/side-nav/side-nav.element.js.map +1 -0
  51. package/target/lib/side-nav/side-nav.stories.d.ts +12 -0
  52. package/target/lib/side-nav/side-nav.stories.js +55 -0
  53. package/target/lib/side-nav/side-nav.stories.js.map +1 -0
  54. package/target/lib/side-nav/side-nav.test.d.ts +2 -0
  55. package/target/lib/side-nav/side-nav.test.js +92 -0
  56. package/target/lib/side-nav/side-nav.test.js.map +1 -0
  57. package/target/lib.d.ts +1 -0
  58. package/target/lib.js +1 -0
  59. package/target/lib.js.map +1 -1
@@ -1,10 +1,8 @@
1
1
  import { attr, css, element, html } from "@joist/element";
2
2
 
3
- import { USARadioElement } from "./radio.element.js";
4
-
5
3
  declare global {
6
4
  interface HTMLElementTagNameMap {
7
- "usa-radio-option": USARadioElement;
5
+ "usa-radio-option": USARadioOptionElement;
8
6
  }
9
7
  }
10
8
 
@@ -13,8 +11,9 @@ declare global {
13
11
  shadowDom: [
14
12
  css`
15
13
  :host {
16
- display: inline-flex;
14
+ display: flex;
17
15
  flex-direction: column;
16
+ margin-top: 0.05rem;
18
17
  }
19
18
  `,
20
19
  html`<slot></slot>`,
@@ -24,23 +23,42 @@ export class USARadioOptionElement extends HTMLElement {
24
23
  @attr()
25
24
  accessor value = "";
26
25
 
27
- #parent: USARadioElement | null = null;
26
+ @attr()
27
+ accessor name = "";
28
+
29
+ @attr()
30
+ accessor checked = false;
31
+
32
+ readonly radio = document.createElement("label");
33
+
34
+ readonly #input = document.createElement("input");
35
+ readonly #slotEl = document.createElement("slot");
36
+
37
+ constructor() {
38
+ super();
39
+
40
+ this.#input.type = "radio";
41
+
42
+ this.radio.append(this.#input, this.#slotEl);
43
+ }
28
44
 
29
45
  attributeChangedCallback() {
30
46
  this.slot = this.value;
47
+
48
+ this.#input.name = this.name;
49
+ this.#input.value = this.value;
50
+ this.#input.checked = this.checked;
51
+
52
+ this.#slotEl.name = this.value;
31
53
  }
32
54
 
33
55
  connectedCallback() {
34
- if (this.parentElement instanceof USARadioElement) {
35
- this.#parent = this.parentElement;
36
-
37
- this.parentElement.onOptionAdded(this);
38
- }
56
+ this.dispatchEvent(
57
+ new Event("usa::radio::option::added", { bubbles: true })
58
+ );
39
59
  }
40
60
 
41
61
  disconnectedCallback() {
42
- if (this.#parent) {
43
- this.#parent.onOptionRemoved(this);
44
- }
62
+ this.radio.remove();
45
63
  }
46
64
  }
@@ -1,4 +1,4 @@
1
- import { attr, css, element, html, listen, query } from "@joist/element";
1
+ import { attr, css, element, html, listen } from "@joist/element";
2
2
 
3
3
  import type { USARadioOptionElement } from "./radio-option.element.js";
4
4
 
@@ -13,14 +13,10 @@ declare global {
13
13
  shadowDom: [
14
14
  css`
15
15
  :host {
16
- display: block;
17
- max-width: 30rem;
18
- }
19
-
20
- .radios {
21
16
  display: flex;
22
17
  flex-direction: column;
23
18
  gap: 1rem;
19
+ max-width: 30rem;
24
20
  }
25
21
 
26
22
  label {
@@ -59,7 +55,7 @@ declare global {
59
55
  outline-offset: 0.25rem;
60
56
  }
61
57
 
62
- :host([tiled]) .radios {
58
+ :host([tiled]) {
63
59
  gap: 0.5rem;
64
60
  }
65
61
 
@@ -75,12 +71,16 @@ declare global {
75
71
  background-color: rgba(0, 94, 162, 0.1);
76
72
  border-color: #005ea2;
77
73
  }
78
- `,
79
- html`
80
- <slot></slot>
81
74
 
82
- <div class="radios"></div>
75
+ slot {
76
+ display: flex;
77
+ }
78
+
79
+ slot#main {
80
+ margin-bottom: 0.5rem;
81
+ }
83
82
  `,
83
+ html`<slot id="main"></slot>`,
84
84
  ],
85
85
  })
86
86
  export class USARadioElement extends HTMLElement {
@@ -92,10 +92,15 @@ export class USARadioElement extends HTMLElement {
92
92
  @attr()
93
93
  accessor name = "";
94
94
 
95
- @attr()
95
+ @attr({
96
+ observed: false,
97
+ })
96
98
  accessor tiled = false;
97
99
 
98
- #radios = query(".radios");
100
+ get shadow() {
101
+ return this.shadowRoot!;
102
+ }
103
+
99
104
  #internals = this.attachInternals();
100
105
 
101
106
  @listen("change")
@@ -115,40 +120,21 @@ export class USARadioElement extends HTMLElement {
115
120
  }
116
121
 
117
122
  attributeChangedCallback() {
118
- const radios = this.#radios();
119
-
120
- for (let radio of radios.querySelectorAll("input")) {
123
+ for (let radio of this.shadow.querySelectorAll("usa-radio-option")) {
121
124
  radio.checked = radio.value === this.value;
122
125
  radio.name = this.name;
123
126
  }
124
127
  }
125
128
 
126
- onOptionAdded(el: USARadioOptionElement) {
127
- const radios = this.#radios();
128
-
129
- const radioLabel = document.createElement("label");
130
- radioLabel.id = el.value;
129
+ @listen("usa::radio::option::added", (el) => el)
130
+ onOptionAdded(e: Event) {
131
+ e.stopPropagation();
131
132
 
132
- const input = document.createElement("input");
133
- input.type = "radio";
134
- input.name = this.name;
135
- input.value = el.value;
136
- input.checked = this.value === el.value;
133
+ const target = e.target as USARadioOptionElement;
137
134
 
138
- const slot = document.createElement("slot");
139
- slot.name = el.value;
135
+ target.checked = target.value === this.value;
136
+ target.name = this.name;
140
137
 
141
- radioLabel.append(input, slot);
142
-
143
- radios.append(radioLabel);
144
- }
145
-
146
- onOptionRemoved(el: USARadioOptionElement) {
147
- const radios = this.#radios();
148
- const option = radios.querySelector(`#${el.value}`);
149
-
150
- if (option) {
151
- option.remove();
152
- }
138
+ this.shadow.append(target.radio);
153
139
  }
154
140
  }
@@ -2,6 +2,7 @@ import type { Meta, StoryObj } from "@storybook/web-components";
2
2
  import { html } from "lit";
3
3
 
4
4
  import type { USARadioElement } from "./radio.element.js";
5
+ import { when } from "lit/directives/when.js";
5
6
 
6
7
  // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
8
  const meta = {
@@ -9,18 +10,23 @@ const meta = {
9
10
  tags: ["autodocs"],
10
11
  render(args) {
11
12
  return html`
12
- <usa-radio name="historical-figures" value="frederick-douglass" tiled>
13
+ <usa-radio
14
+ name="historical-figures"
15
+ value="frederick-douglass"
16
+ ?tiled=${args.tiled}
17
+ >
18
+ <legend>Select one historical figure</legend>
19
+
13
20
  <usa-radio-option value="sojourner-truth">
14
21
  Sojourner Truth
15
22
  </usa-radio-option>
16
23
 
17
24
  <usa-radio-option value="frederick-douglass">
18
25
  Frederick Douglass
19
-
20
- <usa-description>
21
- This is optional text that can be used to describe the label in more
22
- detail.
23
- </usa-description>
26
+ ${when(
27
+ args.description,
28
+ () => html`<usa-description>${args.description}</usa-description>`
29
+ )}
24
30
  </usa-radio-option>
25
31
 
26
32
  <usa-radio-option value="booker-t-washington">
@@ -34,8 +40,12 @@ const meta = {
34
40
  `;
35
41
  },
36
42
  argTypes: {},
37
- args: {},
38
- } satisfies Meta<USARadioElement>;
43
+ args: {
44
+ tiled: true,
45
+ description:
46
+ "This is optional text that can be used to describe the label in more detail.",
47
+ },
48
+ } satisfies Meta<USARadioElement & { description: string }>;
39
49
 
40
50
  export default meta;
41
51
 
@@ -1,7 +1,5 @@
1
1
  import { attr, css, element } from "@joist/element";
2
2
 
3
- import { USASelectElement } from "./select.element.js";
4
-
5
3
  declare global {
6
4
  interface HTMLElementTagNameMap {
7
5
  "usa-select-option": USASelecOptionElement;
@@ -22,19 +20,20 @@ export class USASelecOptionElement extends HTMLElement {
22
20
  @attr()
23
21
  accessor value = "";
24
22
 
25
- #parent: USASelectElement | null = null;
23
+ readonly option = document.createElement("option");
26
24
 
27
- connectedCallback() {
28
- if (this.parentElement instanceof USASelectElement) {
29
- this.#parent = this.parentElement;
25
+ attributeChangedCallback() {
26
+ this.option.textContent = this.textContent;
27
+ this.option.value = this.value;
28
+ }
30
29
 
31
- this.parentElement.onOptionAdded(this);
32
- }
30
+ connectedCallback() {
31
+ this.dispatchEvent(
32
+ new Event("usa::select::option::added", { bubbles: true })
33
+ );
33
34
  }
34
35
 
35
36
  disconnectedCallback() {
36
- if (this.#parent) {
37
- this.#parent.onOptionRemoved(this);
38
- }
37
+ this.option.remove();
39
38
  }
40
39
  }
@@ -95,27 +95,13 @@ export class USASelectElement extends HTMLElement {
95
95
  this.#internals.setFormValue(select.value);
96
96
  }
97
97
 
98
- onOptionAdded(el: USASelecOptionElement) {
99
- const option = document.createElement("option");
100
- option.value = el.value;
101
- option.innerHTML = el.innerHTML;
102
- option.id = this.#createId(el.value);
98
+ @listen("usa::select::option::added")
99
+ onOptionAdded(e: Event) {
100
+ const target = e.target as USASelecOptionElement;
103
101
 
104
- const select = this.#select();
105
-
106
- select.append(option);
107
- }
102
+ e.stopPropagation();
108
103
 
109
- onOptionRemoved(el: USASelecOptionElement) {
110
104
  const select = this.#select();
111
- const option = select.querySelector(`#${this.#createId(el.value)}`);
112
-
113
- if (option) {
114
- option.remove();
115
- }
116
- }
117
-
118
- #createId(val: string) {
119
- return val.split(" ").join("-").toLowerCase();
105
+ select.append(target.option);
120
106
  }
121
107
  }
@@ -0,0 +1,86 @@
1
+ import { attr, css, element, html } from "@joist/element";
2
+
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ "usa-side-nav-item": USASideNavItemElement;
6
+ }
7
+ }
8
+
9
+ @element({
10
+ tagName: "usa-side-nav-item",
11
+ shadowDom: [
12
+ css`
13
+ :host {
14
+ --usa-nav-item-padding-left: 2rem;
15
+
16
+ display: block;
17
+ border-top: 1px solid #e6e6e6;
18
+ }
19
+
20
+ .side-nav-item {
21
+ display: flex;
22
+ padding: 0.5rem 1rem;
23
+ text-decoration: none;
24
+ position: relative;
25
+ }
26
+
27
+ .side-nav-item:hover {
28
+ background-color: #f0f0f0;
29
+ color: #005ea2;
30
+ }
31
+
32
+ ::slotted(*) {
33
+ color: #5c5c5c;
34
+ text-decoration: none;
35
+ display: block;
36
+ width: 100%;
37
+ }
38
+
39
+ :host(:hover) ::slotted(*) {
40
+ color: #005ea2;
41
+ }
42
+
43
+ :host([current]) ::slotted(*:not(usa-side-nav-item)) {
44
+ color: #005ea2;
45
+ font-weight: 700;
46
+ }
47
+
48
+ :host([current]) .side-nav-item::after {
49
+ background-color: #005ea2;
50
+ border-radius: 99rem;
51
+ content: "";
52
+ display: block;
53
+ position: absolute;
54
+ bottom: 0.25rem;
55
+ top: 0.25rem;
56
+ width: 0.25rem;
57
+ left: 0;
58
+ }
59
+
60
+ :host([slot="children"]) .side-nav-item {
61
+ padding-left: var(--usa-nav-item-padding-left);
62
+ }
63
+
64
+ :host([slot="children"]) ::slotted(usa-side-nav-item) {
65
+ --usa-nav-item-padding-left: 3rem;
66
+ }
67
+
68
+ :host([slot="children"]) .side-nav-item::after {
69
+ display: none;
70
+ }
71
+ `,
72
+ html`
73
+ <div class="side-nav-item">
74
+ <slot></slot>
75
+ </div>
76
+
77
+ <slot name="children"></slot>
78
+ `,
79
+ ],
80
+ })
81
+ export class USASideNavItemElement extends HTMLElement {
82
+ @attr({
83
+ observed: false,
84
+ })
85
+ accessor current = false;
86
+ }
@@ -0,0 +1,25 @@
1
+ import "./side-nav-item.element.js";
2
+
3
+ import { css, element, html } from "@joist/element";
4
+
5
+ declare global {
6
+ interface HTMLElementTagNameMap {
7
+ "usa-side-nav": USASideNavElement;
8
+ }
9
+ }
10
+
11
+ @element({
12
+ tagName: "usa-side-nav",
13
+ shadowDom: [
14
+ css`
15
+ :host {
16
+ display: block;
17
+ font-size: 1.06rem;
18
+ line-height: 1.3;
19
+ border-bottom: 1px solid #e6e6e6;
20
+ }
21
+ `,
22
+ html`<slot></slot>`,
23
+ ],
24
+ })
25
+ export class USASideNavElement extends HTMLElement {}
@@ -0,0 +1,62 @@
1
+ import type { Meta, StoryObj } from "@storybook/web-components";
2
+ import { html } from "lit";
3
+
4
+ import type { USASideNavElement } from "./side-nav.element.js";
5
+
6
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
+ const meta = {
8
+ title: "usa-side-nav",
9
+ tags: ["autodocs"],
10
+ render(args) {
11
+ return html`
12
+ <usa-side-nav>
13
+ <usa-side-nav-item current>
14
+ <usa-link href="#">Current Page</usa-link>
15
+
16
+ <usa-side-nav-item slot="children">
17
+ <usa-link href="#">Child</usa-link>
18
+ </usa-side-nav-item>
19
+
20
+ <usa-side-nav-item slot="children" current>
21
+ <usa-link href="#">Child</usa-link>
22
+
23
+ <usa-side-nav-item slot="children">
24
+ <usa-link href="#">Grandchild</usa-link>
25
+ </usa-side-nav-item>
26
+
27
+ <usa-side-nav-item slot="children" current>
28
+ <usa-link href="#">Grandchild</usa-link>
29
+ </usa-side-nav-item>
30
+
31
+ <usa-side-nav-item slot="children">
32
+ <usa-link href="#">Grandchild</usa-link>
33
+ </usa-side-nav-item>
34
+ </usa-side-nav-item>
35
+
36
+ <usa-side-nav-item slot="children">
37
+ <usa-link href="#">Child</usa-link>
38
+ </usa-side-nav-item>
39
+ </usa-side-nav-item>
40
+
41
+ <usa-side-nav-item>
42
+ <usa-link href="#">Parent</usa-link>
43
+ </usa-side-nav-item>
44
+
45
+ <usa-side-nav-item>
46
+ <usa-link href="#">Parent</usa-link>
47
+ </usa-side-nav-item>
48
+ </usa-side-nav>
49
+ `;
50
+ },
51
+ argTypes: {},
52
+ args: {},
53
+ } satisfies Meta<USASideNavElement>;
54
+
55
+ export default meta;
56
+
57
+ type Story = StoryObj<USASideNavElement>;
58
+
59
+ // More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
60
+ export const Primary: Story = {
61
+ args: {},
62
+ };
@@ -0,0 +1,110 @@
1
+ import "../link/link.element.js";
2
+ import "./side-nav.element.js";
3
+
4
+ import { fixture, html, assert } from "@open-wc/testing";
5
+
6
+ import { USASideNavElement } from "./side-nav.element.js";
7
+
8
+ describe("usa-side-nav", () => {
9
+ it("should be accessible", async () => {
10
+ const sideNav = await fixture<USASideNavElement>(html`
11
+ <usa-side-nav>
12
+ <usa-side-nav-item current>
13
+ <usa-link href="#">Current Page</usa-link>
14
+
15
+ <usa-side-nav-item slot="children">
16
+ <usa-link href="#">Child</usa-link>
17
+ </usa-side-nav-item>
18
+
19
+ <usa-side-nav-item slot="children" current>
20
+ <usa-link href="#">Child</usa-link>
21
+
22
+ <usa-side-nav-item slot="children">
23
+ <usa-link href="#">Grandchild</usa-link>
24
+ </usa-side-nav-item>
25
+
26
+ <usa-side-nav-item slot="children" current>
27
+ <usa-link href="#">Grandchild</usa-link>
28
+ </usa-side-nav-item>
29
+
30
+ <usa-side-nav-item slot="children">
31
+ <usa-link href="#">Grandchild</usa-link>
32
+ </usa-side-nav-item>
33
+ </usa-side-nav-item>
34
+
35
+ <usa-side-nav-item slot="children">
36
+ <usa-link href="#">Child</usa-link>
37
+ </usa-side-nav-item>
38
+ </usa-side-nav-item>
39
+
40
+ <usa-side-nav-item>
41
+ <usa-link href="#">Parent</usa-link>
42
+ </usa-side-nav-item>
43
+
44
+ <usa-side-nav-item>
45
+ <usa-link href="#">Parent</usa-link>
46
+ </usa-side-nav-item>
47
+ </usa-side-nav>
48
+ `);
49
+
50
+ return assert.isAccessible(sideNav);
51
+ });
52
+
53
+ it("should set child padding correctly", async () => {
54
+ const sideNav = await fixture<USASideNavElement>(html`
55
+ <usa-side-nav>
56
+ <usa-side-nav-item current>
57
+ <usa-link href="#">Current Page</usa-link>
58
+
59
+ <usa-side-nav-item slot="children">
60
+ <usa-link href="#">Child</usa-link>
61
+ </usa-side-nav-item>
62
+
63
+ <usa-side-nav-item slot="children" current>
64
+ <usa-link href="#">Child</usa-link>
65
+
66
+ <usa-side-nav-item slot="children">
67
+ <usa-link href="#">Grandchild</usa-link>
68
+ </usa-side-nav-item>
69
+
70
+ <usa-side-nav-item slot="children" current>
71
+ <usa-link href="#">Grandchild</usa-link>
72
+ </usa-side-nav-item>
73
+
74
+ <usa-side-nav-item slot="children">
75
+ <usa-link href="#">Grandchild</usa-link>
76
+ </usa-side-nav-item>
77
+ </usa-side-nav-item>
78
+
79
+ <usa-side-nav-item slot="children">
80
+ <usa-link href="#">Child</usa-link>
81
+ </usa-side-nav-item>
82
+ </usa-side-nav-item>
83
+
84
+ <usa-side-nav-item>
85
+ <usa-link href="#">Parent</usa-link>
86
+ </usa-side-nav-item>
87
+
88
+ <usa-side-nav-item>
89
+ <usa-link href="#">Parent</usa-link>
90
+ </usa-side-nav-item>
91
+ </usa-side-nav>
92
+ `);
93
+
94
+ const items = sideNav.querySelectorAll("usa-side-nav-item");
95
+
96
+ assert.equal(
97
+ getComputedStyle(items[1]).getPropertyValue(
98
+ "--usa-nav-item-padding-left"
99
+ ),
100
+ "2rem"
101
+ );
102
+
103
+ assert.equal(
104
+ getComputedStyle(items[3]).getPropertyValue(
105
+ "--usa-nav-item-padding-left"
106
+ ),
107
+ "3rem"
108
+ );
109
+ });
110
+ });
package/src/lib.ts CHANGED
@@ -12,3 +12,4 @@ export { USASelectElement } from "./lib/select/select.element.js";
12
12
  export { USASelecOptionElement } from "./lib/select/select-option.element.js";
13
13
  export { USATagElement } from "./lib/tag/tag.element.js";
14
14
  export { USAAccordionElement } from "./lib/accordion/accordion.element.js";
15
+ export { USASideNavElement } from "./lib/side-nav/side-nav.element.js";
@@ -3,11 +3,6 @@ declare global {
3
3
  "usa-accordion": USAAccordionElement;
4
4
  }
5
5
  }
6
- declare class USAAccordionToggleEvent extends Event {
7
- open: boolean;
8
- get target(): USAAccordionElement;
9
- constructor(open: boolean);
10
- }
11
6
  export declare class USAAccordionElement extends HTMLElement {
12
7
  #private;
13
8
  accessor name: string;
@@ -16,4 +11,9 @@ export declare class USAAccordionElement extends HTMLElement {
16
11
  onClick(e: Event): void;
17
12
  onAccordionToggle(e: USAAccordionToggleEvent): void;
18
13
  }
14
+ declare class USAAccordionToggleEvent extends Event {
15
+ open: boolean;
16
+ get target(): USAAccordionElement;
17
+ constructor(open: boolean);
18
+ }
19
19
  export {};