@noctuatech/uswds 0.0.21 → 0.0.23

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 (161) hide show
  1. package/assets/uswds.min.js +1 -1
  2. package/package.json +20 -50
  3. package/src/lib/accordion/accordion.test.ts +16 -16
  4. package/src/lib/alert/alert-types.ts +1 -1
  5. package/src/lib/alert/alert.element.ts +5 -1
  6. package/src/lib/alert/alert.test.ts +2 -2
  7. package/src/lib/button/button.element.ts +1 -8
  8. package/src/lib/button/button.stories.ts +3 -4
  9. package/src/lib/button/button.test.ts +3 -3
  10. package/src/lib/card/card.test.ts +2 -2
  11. package/src/lib/checkbox/checkbox.element.ts +27 -16
  12. package/src/lib/checkbox/checkbox.stories.ts +1 -1
  13. package/src/lib/checkbox/checkbox.test.ts +21 -4
  14. package/src/lib/config/config.element.ts +7 -25
  15. package/src/lib/config/config.test.ts +2 -2
  16. package/src/lib/description/description.test.ts +2 -2
  17. package/src/lib/file-input/file-input-preview/file-input-preview.element.ts +18 -7
  18. package/src/lib/file-input/file-input-preview/file-input-preview.test.ts +4 -4
  19. package/src/lib/file-input/file-input.element.ts +3 -3
  20. package/src/lib/file-input/file-input.test.ts +2 -2
  21. package/src/lib/icon/icon.element.ts +5 -7
  22. package/src/lib/icon/icon.stories.ts +3 -3
  23. package/src/lib/input/input.element.ts +76 -20
  24. package/src/lib/input/input.stories.ts +3 -1
  25. package/src/lib/input/input.test.ts +20 -5
  26. package/src/lib/input-mask/format.ts +1 -1
  27. package/src/lib/input-mask/input-mask.element.ts +11 -14
  28. package/src/lib/input-mask/input-mask.stories.ts +0 -1
  29. package/src/lib/input-mask/input-mask.test.ts +17 -13
  30. package/src/lib/input-mask/maskable.element.ts +1 -1
  31. package/src/lib/modal/modal-close/modal-close.test.ts +2 -2
  32. package/src/lib/modal/modal-heading/modal-heading.test.ts +2 -2
  33. package/src/lib/modal/modal.test.ts +2 -2
  34. package/src/lib/radio/context.ts +9 -0
  35. package/src/lib/radio/radio-option/radio-option.element.ts +45 -26
  36. package/src/lib/radio/radio-option/radio-option.test.ts +1 -1
  37. package/src/lib/radio/radio.element.ts +42 -31
  38. package/src/lib/radio/radio.stories.ts +2 -2
  39. package/src/lib/radio/radio.test.ts +16 -16
  40. package/src/lib/select/context.ts +10 -0
  41. package/src/lib/select/select-option/select-option.element.ts +26 -4
  42. package/src/lib/select/select.element.ts +37 -18
  43. package/src/lib/select/select.stories.ts +1 -1
  44. package/src/lib/select/select.test.ts +32 -13
  45. package/src/lib/services/icon.service.test.ts +30 -22
  46. package/src/lib/services/icon.service.ts +11 -3
  47. package/src/lib/side-nav/side-nav.element.ts +1 -1
  48. package/src/lib/side-nav/side-nav.test.ts +6 -6
  49. package/src/lib/step-indicator/step-indicator.test.ts +2 -2
  50. package/src/lib/summary-box/summary-box.element.ts +0 -7
  51. package/src/lib/summary-box/summary-box.stories.ts +1 -1
  52. package/src/lib/summary-box/summary-box.test.ts +2 -2
  53. package/src/lib/tag/tag.element.ts +0 -7
  54. package/src/lib/tag/tag.test.ts +2 -2
  55. package/target/lib/accordion/accordion.test.js +5 -5
  56. package/target/lib/accordion/accordion.test.js.map +1 -1
  57. package/target/lib/alert/alert-types.d.ts +1 -1
  58. package/target/lib/alert/alert.element.d.ts +1 -1
  59. package/target/lib/alert/alert.element.js +4 -0
  60. package/target/lib/alert/alert.element.js.map +1 -1
  61. package/target/lib/alert/alert.test.js +2 -2
  62. package/target/lib/alert/alert.test.js.map +1 -1
  63. package/target/lib/button/button.element.js +1 -8
  64. package/target/lib/button/button.element.js.map +1 -1
  65. package/target/lib/button/button.stories.js +1 -4
  66. package/target/lib/button/button.stories.js.map +1 -1
  67. package/target/lib/button/button.test.js +2 -2
  68. package/target/lib/button/button.test.js.map +1 -1
  69. package/target/lib/card/card.test.js +1 -1
  70. package/target/lib/card/card.test.js.map +1 -1
  71. package/target/lib/checkbox/checkbox.element.d.ts +1 -0
  72. package/target/lib/checkbox/checkbox.element.js +24 -16
  73. package/target/lib/checkbox/checkbox.element.js.map +1 -1
  74. package/target/lib/checkbox/checkbox.test.js +17 -3
  75. package/target/lib/checkbox/checkbox.test.js.map +1 -1
  76. package/target/lib/config/config.element.d.ts +0 -2
  77. package/target/lib/config/config.element.js +9 -22
  78. package/target/lib/config/config.element.js.map +1 -1
  79. package/target/lib/config/config.test.js +1 -1
  80. package/target/lib/config/config.test.js.map +1 -1
  81. package/target/lib/description/description.test.js +1 -1
  82. package/target/lib/description/description.test.js.map +1 -1
  83. package/target/lib/file-input/file-input-preview/file-input-preview.element.d.ts +1 -0
  84. package/target/lib/file-input/file-input-preview/file-input-preview.element.js +14 -6
  85. package/target/lib/file-input/file-input-preview/file-input-preview.element.js.map +1 -1
  86. package/target/lib/file-input/file-input-preview/file-input-preview.test.js +3 -3
  87. package/target/lib/file-input/file-input-preview/file-input-preview.test.js.map +1 -1
  88. package/target/lib/file-input/file-input.element.js +3 -3
  89. package/target/lib/file-input/file-input.element.js.map +1 -1
  90. package/target/lib/file-input/file-input.test.js +1 -1
  91. package/target/lib/file-input/file-input.test.js.map +1 -1
  92. package/target/lib/icon/icon.element.d.ts +1 -1
  93. package/target/lib/icon/icon.element.js +4 -5
  94. package/target/lib/icon/icon.element.js.map +1 -1
  95. package/target/lib/icon/icon.stories.js.map +1 -1
  96. package/target/lib/input/input.element.d.ts +8 -4
  97. package/target/lib/input/input.element.js +92 -17
  98. package/target/lib/input/input.element.js.map +1 -1
  99. package/target/lib/input/input.stories.js +3 -1
  100. package/target/lib/input/input.stories.js.map +1 -1
  101. package/target/lib/input/input.test.js +16 -4
  102. package/target/lib/input/input.test.js.map +1 -1
  103. package/target/lib/input-mask/format.js +1 -1
  104. package/target/lib/input-mask/input-mask.element.d.ts +1 -1
  105. package/target/lib/input-mask/input-mask.element.js +10 -11
  106. package/target/lib/input-mask/input-mask.element.js.map +1 -1
  107. package/target/lib/input-mask/input-mask.stories.js +0 -1
  108. package/target/lib/input-mask/input-mask.stories.js.map +1 -1
  109. package/target/lib/input-mask/input-mask.test.js +12 -8
  110. package/target/lib/input-mask/input-mask.test.js.map +1 -1
  111. package/target/lib/input-mask/maskable.element.d.ts +1 -1
  112. package/target/lib/modal/modal-close/modal-close.test.js +1 -1
  113. package/target/lib/modal/modal-close/modal-close.test.js.map +1 -1
  114. package/target/lib/modal/modal-heading/modal-heading.test.js +1 -1
  115. package/target/lib/modal/modal-heading/modal-heading.test.js.map +1 -1
  116. package/target/lib/modal/modal.test.js +1 -1
  117. package/target/lib/modal/modal.test.js.map +1 -1
  118. package/target/lib/radio/context.d.ts +7 -0
  119. package/target/lib/radio/context.js +3 -0
  120. package/target/lib/radio/context.js.map +1 -0
  121. package/target/lib/radio/radio-option/radio-option.element.d.ts +1 -5
  122. package/target/lib/radio/radio-option/radio-option.element.js +45 -35
  123. package/target/lib/radio/radio-option/radio-option.element.js.map +1 -1
  124. package/target/lib/radio/radio.element.d.ts +5 -5
  125. package/target/lib/radio/radio.element.js +39 -29
  126. package/target/lib/radio/radio.element.js.map +1 -1
  127. package/target/lib/radio/radio.stories.js.map +1 -1
  128. package/target/lib/radio/radio.test.js +9 -13
  129. package/target/lib/radio/radio.test.js.map +1 -1
  130. package/target/lib/select/context.d.ts +6 -0
  131. package/target/lib/select/context.js +3 -0
  132. package/target/lib/select/context.js.map +1 -0
  133. package/target/lib/select/select-option/select-option.element.d.ts +2 -1
  134. package/target/lib/select/select-option/select-option.element.js +20 -3
  135. package/target/lib/select/select-option/select-option.element.js.map +1 -1
  136. package/target/lib/select/select.element.d.ts +5 -2
  137. package/target/lib/select/select.element.js +33 -18
  138. package/target/lib/select/select.element.js.map +1 -1
  139. package/target/lib/select/select.stories.js +1 -1
  140. package/target/lib/select/select.test.js +24 -8
  141. package/target/lib/select/select.test.js.map +1 -1
  142. package/target/lib/services/icon.service.js +7 -1
  143. package/target/lib/services/icon.service.js.map +1 -1
  144. package/target/lib/services/icon.service.test.js +30 -22
  145. package/target/lib/services/icon.service.test.js.map +1 -1
  146. package/target/lib/side-nav/side-nav.element.js +1 -1
  147. package/target/lib/side-nav/side-nav.element.js.map +1 -1
  148. package/target/lib/side-nav/side-nav.test.js +1 -1
  149. package/target/lib/side-nav/side-nav.test.js.map +1 -1
  150. package/target/lib/step-indicator/step-indicator.test.js +1 -1
  151. package/target/lib/step-indicator/step-indicator.test.js.map +1 -1
  152. package/target/lib/summary-box/summary-box.element.js +0 -7
  153. package/target/lib/summary-box/summary-box.element.js.map +1 -1
  154. package/target/lib/summary-box/summary-box.stories.js +1 -1
  155. package/target/lib/summary-box/summary-box.stories.js.map +1 -1
  156. package/target/lib/summary-box/summary-box.test.js +1 -1
  157. package/target/lib/summary-box/summary-box.test.js.map +1 -1
  158. package/target/lib/tag/tag.element.js +0 -7
  159. package/target/lib/tag/tag.element.js.map +1 -1
  160. package/target/lib/tag/tag.test.js +1 -1
  161. package/target/lib/tag/tag.test.js.map +1 -1
@@ -1,6 +1,7 @@
1
+ import { injectable } from "@joist/di";
1
2
  import { attr, css, element, html, listen, query } from "@joist/element";
2
3
 
3
- import type { USASelecOptionElement } from "./select-option/select-option.element.js";
4
+ import { SELECT_CONTEXT, type SelectContainer } from "./context.js";
4
5
 
5
6
  declare global {
6
7
  interface HTMLElementTagNameMap {
@@ -8,19 +9,16 @@ declare global {
8
9
  }
9
10
  }
10
11
 
12
+ @injectable({
13
+ name: "usa-select-ctx",
14
+ provideSelfAs: [SELECT_CONTEXT],
15
+ })
11
16
  @element({
12
17
  tagName: "usa-select",
13
18
  shadowDom: [
14
19
  css`
15
20
  :host {
16
21
  display: block;
17
- font-family:
18
- Source Sans Pro Web,
19
- Helvetica Neue,
20
- Helvetica,
21
- Roboto,
22
- Arial,
23
- sans-serif;
24
22
  line-height: 1.3;
25
23
  position: relative;
26
24
  width: 100%;
@@ -69,7 +67,7 @@ declare global {
69
67
  `,
70
68
  ],
71
69
  })
72
- export class USASelectElement extends HTMLElement {
70
+ export class USASelectElement extends HTMLElement implements SelectContainer {
73
71
  static formAssociated = true;
74
72
 
75
73
  @attr()
@@ -78,6 +76,9 @@ export class USASelectElement extends HTMLElement {
78
76
  @attr()
79
77
  accessor name = "";
80
78
 
79
+ @attr()
80
+ accessor required = false;
81
+
81
82
  #select = query("select");
82
83
  #internals = this.attachInternals();
83
84
 
@@ -86,23 +87,41 @@ export class USASelectElement extends HTMLElement {
86
87
  select.value = this.value;
87
88
  select.name = this.name;
88
89
 
89
- this.#internals.setFormValue(this.value);
90
+ this.#syncFormState();
90
91
  }
91
92
 
92
- @listen("change")
93
- onSelectChange() {
93
+ attributeChangedCallback() {
94
94
  const select = this.#select();
95
+ select.value = this.value;
96
+ select.name = this.name;
95
97
 
96
- this.#internals.setFormValue(select.value);
98
+ this.#syncFormState();
97
99
  }
98
100
 
99
- @listen("usa::select::option::added")
100
- onOptionAdded(e: Event) {
101
- const target = e.target as USASelecOptionElement;
101
+ @listen("change")
102
+ onSelectChange() {
103
+ const select = this.#select();
104
+
105
+ this.value = select.value;
102
106
 
103
- e.stopPropagation();
107
+ this.#syncFormState();
108
+ }
104
109
 
110
+ addSelectOption(option: HTMLOptionElement) {
105
111
  const select = this.#select();
106
- select.append(target.option);
112
+ select.append(option);
113
+ }
114
+
115
+ #syncFormState() {
116
+ this.#internals.setFormValue(this.value);
117
+ this.#internals.setValidity({});
118
+
119
+ if (this.required && !this.value) {
120
+ this.#internals.setValidity(
121
+ { valueMissing: true },
122
+ "Please select an option",
123
+ this.#select(),
124
+ );
125
+ }
107
126
  }
108
127
  }
@@ -9,7 +9,7 @@ const meta = {
9
9
  tags: ["autodocs"],
10
10
  render(args) {
11
11
  return html`
12
- <usa-select>
12
+ <usa-select value="third">
13
13
  Hello World
14
14
 
15
15
  <usa-select-option value="first">first</usa-select-option>
@@ -1,8 +1,8 @@
1
1
  import "./select.element.js";
2
2
  import "./select-option/select-option.element.js";
3
3
 
4
- import { fixture, html, assert } from "@open-wc/testing";
5
4
  import { fireEvent } from "@noctuatech-uswds/testing";
5
+ import { assert, fixture, html } from "@open-wc/testing";
6
6
 
7
7
  describe("usa-select", () => {
8
8
  it("should be accessible", async () => {
@@ -33,12 +33,12 @@ describe("usa-select", () => {
33
33
  `);
34
34
 
35
35
  const nativeInputs = form
36
- .querySelector("usa-select")!
37
- .shadowRoot!.querySelectorAll("option");
36
+ .querySelector("usa-select")
37
+ ?.shadowRoot?.querySelectorAll("option");
38
38
 
39
39
  assert.deepEqual(
40
- Array.from(nativeInputs).map((input) => input.value),
41
- ["first", "second", "third"]
40
+ Array.from(nativeInputs ?? []).map((input) => input.value),
41
+ ["first", "second", "third"],
42
42
  );
43
43
  });
44
44
 
@@ -60,12 +60,12 @@ describe("usa-select", () => {
60
60
  options[1].remove();
61
61
 
62
62
  const nativeInputs = form
63
- .querySelector("usa-select")!
64
- .shadowRoot!.querySelectorAll("option");
63
+ .querySelector("usa-select")
64
+ ?.shadowRoot?.querySelectorAll("option");
65
65
 
66
66
  assert.deepEqual(
67
- Array.from(nativeInputs).map((input) => input.value),
68
- ["first", "third"]
67
+ Array.from(nativeInputs ?? []).map((input) => input.value),
68
+ ["first", "third"],
69
69
  );
70
70
  });
71
71
 
@@ -100,14 +100,33 @@ describe("usa-select", () => {
100
100
  </form>
101
101
  `);
102
102
 
103
- const select = form.querySelector("usa-select")!;
104
- const nativeSelect = select.shadowRoot!.querySelector("select")!;
105
- nativeSelect.value = "third";
103
+ const select = form.querySelector("usa-select");
104
+ const nativeSelect = select?.shadowRoot?.querySelector("select");
106
105
 
107
- await fireEvent.change(nativeSelect, { bubbles: true });
106
+ if (nativeSelect) {
107
+ nativeSelect.value = "third";
108
+
109
+ await fireEvent.change(nativeSelect, { bubbles: true });
110
+ }
108
111
 
109
112
  const value = new FormData(form);
110
113
 
111
114
  assert.equal(value.get("example"), "third");
112
115
  });
116
+
117
+ it("should not submit when not valid", async () => {
118
+ const form = await fixture<HTMLFormElement>(html`
119
+ <form>
120
+ <usa-select name="example" required>
121
+ Hello World
122
+
123
+ <usa-select-option value="first">First</usa-select-option>
124
+ <usa-select-option value="second">Second</usa-select-option>
125
+ <usa-select-option value="third">Third</usa-select-option>
126
+ </usa-select>
127
+ </form>
128
+ `);
129
+
130
+ assert.equal(form.checkValidity(), false);
131
+ });
113
132
  });
@@ -8,17 +8,21 @@ describe("IconService", () => {
8
8
  it("should fetch icon if not in cache", async () => {
9
9
  let callCount = 0;
10
10
 
11
- const app = new Injector([
12
- {
13
- provide: HttpService,
14
- use: class extends HttpService {
15
- async fetch(): Promise<Response> {
16
- callCount++;
17
- return new Response("<svg></svg>");
18
- }
19
- },
20
- },
21
- ]);
11
+ const app = new Injector({
12
+ providers: [
13
+ [
14
+ HttpService,
15
+ {
16
+ use: class extends HttpService {
17
+ async fetch(): Promise<Response> {
18
+ callCount++;
19
+ return new Response("<svg></svg>");
20
+ }
21
+ },
22
+ },
23
+ ],
24
+ ],
25
+ });
22
26
 
23
27
  const icon = app.inject(IconService);
24
28
 
@@ -31,17 +35,21 @@ describe("IconService", () => {
31
35
  it("should not fetch new icon if the icon is found in the cache", async () => {
32
36
  let callCount = 0;
33
37
 
34
- const app = new Injector([
35
- {
36
- provide: HttpService,
37
- use: class extends HttpService {
38
- async fetch(): Promise<Response> {
39
- callCount++;
40
- return new Response("<svg></svg>");
41
- }
42
- },
43
- },
44
- ]);
38
+ const app = new Injector({
39
+ providers: [
40
+ [
41
+ HttpService,
42
+ {
43
+ use: class extends HttpService {
44
+ async fetch(): Promise<Response> {
45
+ callCount++;
46
+ return new Response("<svg></svg>");
47
+ }
48
+ },
49
+ },
50
+ ],
51
+ ],
52
+ });
45
53
 
46
54
  const icon = app.inject(IconService);
47
55
 
@@ -1,7 +1,7 @@
1
1
  import { inject, injectable } from "@joist/di";
2
2
 
3
- import { HttpService } from "./http.service.js";
4
3
  import { USAConfig } from "../config/config.element.js";
4
+ import { HttpService } from "./http.service.js";
5
5
 
6
6
  @injectable()
7
7
  export class IconService {
@@ -17,7 +17,11 @@ export class IconService {
17
17
 
18
18
  if (cached) {
19
19
  return cached.then((res) => {
20
- return res.content.firstElementChild!.cloneNode(true);
20
+ if (!res.content.firstElementChild) {
21
+ throw Error("cached value is not valid");
22
+ }
23
+
24
+ return res.content.firstElementChild.cloneNode(true);
21
25
  });
22
26
  }
23
27
 
@@ -41,7 +45,11 @@ export class IconService {
41
45
  this.#iconCache.set(icon, svg);
42
46
 
43
47
  return svg.then((res) => {
44
- return res.content.firstElementChild!.cloneNode(true);
48
+ if (!res.content.firstElementChild) {
49
+ throw Error("ICON is not valid");
50
+ }
51
+
52
+ return res.content.firstElementChild.cloneNode(true);
45
53
  });
46
54
  }
47
55
  }
@@ -1,4 +1,4 @@
1
- import { css, element, html, attr } from "@joist/element";
1
+ import { attr, css, element, html } from "@joist/element";
2
2
 
3
3
  declare global {
4
4
  interface HTMLElementTagNameMap {
@@ -2,9 +2,9 @@ import "../link/link.element.js";
2
2
  import "./side-nav.element.js";
3
3
  import "./side-nav-item/side-nav-item.element.js";
4
4
 
5
- import { fixture, html, assert } from "@open-wc/testing";
5
+ import { assert, fixture, html } from "@open-wc/testing";
6
6
 
7
- import { USASideNavElement } from "./side-nav.element.js";
7
+ import type { USASideNavElement } from "./side-nav.element.js";
8
8
 
9
9
  describe("usa-side-nav", () => {
10
10
  it("should be accessible", async () => {
@@ -96,16 +96,16 @@ describe("usa-side-nav", () => {
96
96
 
97
97
  assert.equal(
98
98
  getComputedStyle(items[1]).getPropertyValue(
99
- "--usa-nav-item-padding-left"
99
+ "--usa-nav-item-padding-left",
100
100
  ),
101
- "2rem"
101
+ "2rem",
102
102
  );
103
103
 
104
104
  assert.equal(
105
105
  getComputedStyle(items[3]).getPropertyValue(
106
- "--usa-nav-item-padding-left"
106
+ "--usa-nav-item-padding-left",
107
107
  ),
108
- "3rem"
108
+ "3rem",
109
109
  );
110
110
  });
111
111
  });
@@ -1,9 +1,9 @@
1
1
  import "./step-indicator.element.js";
2
2
  import "./step/step.element.js";
3
3
 
4
- import { fixture, html, assert } from "@open-wc/testing";
4
+ import { assert, fixture, html } from "@open-wc/testing";
5
5
 
6
- import { USAStepIndicatorElement } from "./step-indicator.element.js";
6
+ import type { USAStepIndicatorElement } from "./step-indicator.element.js";
7
7
 
8
8
  describe("usa-step-indicator", () => {
9
9
  it("should be accessible", async () => {
@@ -11,13 +11,6 @@ declare global {
11
11
  shadowDom: [
12
12
  css`
13
13
  :host {
14
- font-family:
15
- Source Sans Pro Web,
16
- Helvetica Neue,
17
- Helvetica,
18
- Roboto,
19
- Arial,
20
- sans-serif;
21
14
  font-size: 1.06rem;
22
15
  line-height: 1.5;
23
16
  color: #1b1b1b;
@@ -8,7 +8,7 @@ const meta = {
8
8
  title: "usa-summary-box",
9
9
  tags: ["autodocs"],
10
10
  render(args) {
11
- return html` <usa-summary-box> Hello World </usa-summary-box>`;
11
+ return html`<usa-summary-box> Hello World </usa-summary-box>`;
12
12
  },
13
13
  argTypes: {},
14
14
  args: {},
@@ -1,8 +1,8 @@
1
1
  import "./summary-box.element.js";
2
2
 
3
- import { fixture, html, assert } from "@open-wc/testing";
3
+ import { assert, fixture, html } from "@open-wc/testing";
4
4
 
5
- import { USASummaryBoxElement } from "./summary-box.element.js";
5
+ import type { USASummaryBoxElement } from "./summary-box.element.js";
6
6
 
7
7
  describe("usa-summary-box", () => {
8
8
  it("should be accessible", async () => {
@@ -15,13 +15,6 @@ export type TagVariant = (typeof TAG_VARIANTS)[number];
15
15
  shadowDom: [
16
16
  css`
17
17
  :host {
18
- font-family:
19
- Source Sans Pro Web,
20
- Helvetica Neue,
21
- Helvetica,
22
- Roboto,
23
- Arial,
24
- sans-serif;
25
18
  font-size: 0.93rem;
26
19
  color: #fff;
27
20
  text-transform: uppercase;
@@ -1,8 +1,8 @@
1
1
  import "./tag.element.js";
2
2
 
3
- import { fixture, html, assert } from "@open-wc/testing";
3
+ import { assert, fixture, html } from "@open-wc/testing";
4
4
 
5
- import { USATagElement } from "./tag.element.js";
5
+ import type { USATagElement } from "./tag.element.js";
6
6
 
7
7
  describe("usa-tag", () => {
8
8
  it("should be accessible", async () => {
@@ -1,5 +1,5 @@
1
1
  import "./accordion.element.js";
2
- import { fixture, html, assert } from "@open-wc/testing";
2
+ import { assert, fixture, html } from "@open-wc/testing";
3
3
  describe("usa-accordion", () => {
4
4
  it("should be accessible", async () => {
5
5
  const accordion = await fixture(html `
@@ -31,8 +31,8 @@ describe("usa-accordion", () => {
31
31
  `);
32
32
  const heading = accordion.querySelector("h4");
33
33
  const content = accordion.querySelector(".content");
34
- heading.click();
35
- assert.isTrue(content.checkVisibility());
34
+ heading?.click();
35
+ assert.isTrue(content?.checkVisibility());
36
36
  });
37
37
  it("should toggle the open state when clicked", async () => {
38
38
  const accordion = await fixture(html `
@@ -49,8 +49,8 @@ describe("usa-accordion", () => {
49
49
  `);
50
50
  const heading = accordion.querySelector("h4");
51
51
  const content = accordion.querySelector(".content");
52
- assert.isFalse(content.checkVisibility());
53
- heading.click();
52
+ assert.isFalse(content?.checkVisibility());
53
+ heading?.click();
54
54
  assert.isTrue(content.checkVisibility());
55
55
  });
56
56
  it("should only allow a single accordion in a group to be open", async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.test.js","sourceRoot":"","sources":["../../../src/lib/accordion/accordion.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accordion.test.js","sourceRoot":"","sources":["../../../src/lib/accordion/accordion.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { USAIcon } from "../icon/icon-types.js";
1
+ import type { USAIcon } from "../icon/icon-types.js";
2
2
  export declare const USA_ALERT_TYPES: readonly ["info", "warning", "success", "error", "emergency"];
3
3
  export type USAAlertType = (typeof USA_ALERT_TYPES)[number];
4
4
  export interface USAAlert {
@@ -1,4 +1,4 @@
1
- import { USAAlertType } from "./alert-types.js";
1
+ import { type USAAlertType } from "./alert-types.js";
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  "usa-alert": USAAlertElement;
@@ -4,6 +4,10 @@ import { USA_ALERT_CONFIG } from "./alert-types.js";
4
4
  let USAAlertElement = (() => {
5
5
  let _classDecorators = [element({
6
6
  tagName: "usa-alert",
7
+ shadowDomOpts: {
8
+ mode: "open",
9
+ delegatesFocus: true,
10
+ },
7
11
  shadowDom: [
8
12
  css `
9
13
  :host {
@@ -1 +1 @@
1
- {"version":3,"file":"alert.element.js","sourceRoot":"","sources":["../../../src/lib/alert/alert.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAgB,MAAM,kBAAkB,CAAC;IA2FrD,eAAe;4BAnF3B,OAAO,CAAC;YACP,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8DF;gBACD,IAAI,CAAA;;;;;;;;;;;;;;KAcH;aACF;SACF,CAAC;;;;sBACmC,WAAW;;;;+BAAnB,SAAQ,WAAW;;;;gCAC7C,IAAI,EAAE;YACP,iKAAS,IAAI,6BAAJ,IAAI,mFAAwB;YAFvC,6KAWC;;;YAXY,uDAAe;;QAE1B,qEAA8B,MAAM,EAAC;QAArC,IAAS,IAAI,0CAAwB;QAArC,IAAS,IAAI,gDAAwB;QAErC,KAAK,sDAAG,KAAK,CAAC,UAAU,CAAC,EAAC;QAE1B,wBAAwB;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC/C,CAAC;;;;SAVU,eAAe"}
1
+ {"version":3,"file":"alert.element.js","sourceRoot":"","sources":["../../../src/lib/alert/alert.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAqB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;IA+F1D,eAAe;4BAvF3B,OAAO,CAAC;YACP,OAAO,EAAE,WAAW;YACpB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,cAAc,EAAE,IAAI;aACrB;YACD,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8DF;gBACD,IAAI,CAAA;;;;;;;;;;;;;;KAcH;aACF;SACF,CAAC;;;;sBACmC,WAAW;;;;+BAAnB,SAAQ,WAAW;;;;gCAC7C,IAAI,EAAE;YACP,iKAAS,IAAI,6BAAJ,IAAI,mFAAwB;YAFvC,6KAWC;;;YAXY,uDAAe;;QAE1B,qEAA8B,MAAM,EAAC;QAArC,IAAS,IAAI,0CAAwB;QAArC,IAAS,IAAI,gDAAwB;QAErC,KAAK,sDAAG,KAAK,CAAC,UAAU,CAAC,EAAC;QAE1B,wBAAwB;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC/C,CAAC;;;;SAVU,eAAe"}
@@ -1,8 +1,8 @@
1
1
  import "./alert.element.js";
2
- import { fixture, html, assert } from "@open-wc/testing";
2
+ import { assert, fixture, html } from "@open-wc/testing";
3
3
  import { USA_ALERT_TYPES } from "./alert-types.js";
4
4
  describe("usa-alert", () => {
5
- for (let alert of USA_ALERT_TYPES) {
5
+ for (const alert of USA_ALERT_TYPES) {
6
6
  it(`should be accessible: ${alert}`, async () => {
7
7
  const form = await fixture(html `
8
8
  <usa-alert type=${alert}>
@@ -1 +1 @@
1
- {"version":3,"file":"alert.test.js","sourceRoot":"","sources":["../../../src/lib/alert/alert.test.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,KAAK,IAAI,KAAK,IAAI,eAAe,EAAE,CAAC;QAClC,EAAE,CAAC,yBAAyB,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA;0BACX,KAAK;;;;;;;OAOxB,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"alert.test.js","sourceRoot":"","sources":["../../../src/lib/alert/alert.test.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,EAAE,CAAC,yBAAyB,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA;0BACX,KAAK;;;;;;;OAOxB,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -22,13 +22,6 @@ let USAButtonElement = (() => {
22
22
 
23
23
  .usa-button {
24
24
  box-sizing: border-box;
25
- font-family:
26
- Source Sans Pro Web,
27
- Helvetica Neue,
28
- Helvetica,
29
- Roboto,
30
- Arial,
31
- sans-serif;
32
25
  font-size: 1.06rem;
33
26
  line-height: 0.9;
34
27
  color: white;
@@ -160,7 +153,7 @@ let USAButtonElement = (() => {
160
153
  }
161
154
  `,
162
155
  html `
163
- <button class="usa-button">
156
+ <button class="usa-button" tabindex="0">
164
157
  <slot></slot>
165
158
  </button>
166
159
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"button.element.js","sourceRoot":"","sources":["../../../src/lib/button/button.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"button.element.js","sourceRoot":"","sources":["../../../src/lib/button/button.element.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,7 @@ const meta = {
7
7
  render(args) {
8
8
  return html `
9
9
  <div style="display: inline-flex; flex-direction: column; gap: 1rem">
10
- ${BUTTON_VARIANTS.map((variant, i) => html `<usa-button variant=${variant}>Hello World</usa-button> ${i ===
11
- BUTTON_VARIANTS.length - 1
12
- ? ""
13
- : "\n\n"}`)}
10
+ ${BUTTON_VARIANTS.map((variant, i) => html `<usa-button variant=${variant}>Hello World</usa-button> ${i === BUTTON_VARIANTS.length - 1 ? "" : "\n\n"}`)}
14
11
  </div>
15
12
  `;
16
13
  },
@@ -1 +1 @@
1
- {"version":3,"file":"button.stories.js","sourceRoot":"","sources":["../../../src/lib/button/button.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAyB,MAAM,qBAAqB,CAAC;AAE7E,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAA;;UAEL,eAAe,CAAC,GAAG,CACnB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CACb,IAAI,CAAA,uBAAuB,OAAO,6BAA6B,CAAC;YAC9D,eAAe,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,MAAM,EAAE,CACjB;;KAEJ,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CACwB,CAAC;AAEnC,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,EAAE;CACT,CAAC"}
1
+ {"version":3,"file":"button.stories.js","sourceRoot":"","sources":["../../../src/lib/button/button.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAyB,MAAM,qBAAqB,CAAC;AAE7E,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAA;;UAEL,eAAe,CAAC,GAAG,CACnB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CACb,IAAI,CAAA,uBAAuB,OAAO,6BAChC,CAAC,KAAK,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAC1C,EAAE,CACL;;KAEJ,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CACwB,CAAC;AAEnC,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,EAAE;CACT,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import "./button.element.js";
2
- import { fixture, html, assert } from "@open-wc/testing";
2
+ import { assert, fixture, html } from "@open-wc/testing";
3
3
  import { BUTTON_VARIANTS } from "./button.element.js";
4
4
  describe("usa-button", () => {
5
- for (let variant of BUTTON_VARIANTS) {
5
+ for (const variant of BUTTON_VARIANTS) {
6
6
  it("should be accessible", async () => {
7
7
  const button = await fixture(html `
8
8
  <usa-button variant=${variant}>Hello World</usa-button>
@@ -1 +1 @@
1
- {"version":3,"file":"button.test.js","sourceRoot":"","sources":["../../../src/lib/button/button.test.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAExE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,KAAK,IAAI,OAAO,IAAI,eAAe,EAAE,CAAC;QACpC,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAmB,IAAI,CAAA;8BAC3B,OAAO;OAC9B,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"button.test.js","sourceRoot":"","sources":["../../../src/lib/button/button.test.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAyB,MAAM,qBAAqB,CAAC;AAE7E,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAmB,IAAI,CAAA;8BAC3B,OAAO;OAC9B,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -4,7 +4,7 @@ import "./card-footer/card-footer.element.js";
4
4
  import "./card-group/card-group.element.js";
5
5
  import "./card-header/card-header.element.js";
6
6
  import "./card-media/card-media.element.js";
7
- import { fixture, html, assert } from "@open-wc/testing";
7
+ import { assert, fixture, html } from "@open-wc/testing";
8
8
  describe("usa-card", () => {
9
9
  it("should be accessible", async () => {
10
10
  const card = await fixture(html `
@@ -1 +1 @@
1
- {"version":3,"file":"card.test.js","sourceRoot":"","sources":["../../../src/lib/card/card.test.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;;;;;;;;;;;;;;;;;;KAmB9C,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"card.test.js","sourceRoot":"","sources":["../../../src/lib/card/card.test.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAiB,IAAI,CAAA;;;;;;;;;;;;;;;;;;;KAmB9C,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -9,6 +9,7 @@ export declare class USACheckboxElement extends HTMLElement {
9
9
  accessor checked: boolean;
10
10
  accessor name: string;
11
11
  accessor value: string;
12
+ accessor required: boolean;
12
13
  accessor tiled: boolean;
13
14
  connectedCallback(): void;
14
15
  attributeChangedCallback(): void;