@noctuatech/uswds 0.0.22 → 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 (153) 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 +4 -8
  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 +69 -12
  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 +7 -9
  28. package/src/lib/input-mask/input-mask.test.ts +17 -13
  29. package/src/lib/modal/modal-close/modal-close.test.ts +2 -2
  30. package/src/lib/modal/modal-heading/modal-heading.test.ts +2 -2
  31. package/src/lib/modal/modal.test.ts +2 -2
  32. package/src/lib/radio/context.ts +9 -0
  33. package/src/lib/radio/radio-option/radio-option.element.ts +45 -26
  34. package/src/lib/radio/radio-option/radio-option.test.ts +1 -1
  35. package/src/lib/radio/radio.element.ts +42 -31
  36. package/src/lib/radio/radio.stories.ts +2 -2
  37. package/src/lib/radio/radio.test.ts +16 -16
  38. package/src/lib/select/context.ts +10 -0
  39. package/src/lib/select/select-option/select-option.element.ts +26 -4
  40. package/src/lib/select/select.element.ts +37 -18
  41. package/src/lib/select/select.stories.ts +1 -1
  42. package/src/lib/select/select.test.ts +32 -13
  43. package/src/lib/services/icon.service.ts +11 -3
  44. package/src/lib/side-nav/side-nav.element.ts +1 -1
  45. package/src/lib/side-nav/side-nav.test.ts +6 -6
  46. package/src/lib/step-indicator/step-indicator.test.ts +2 -2
  47. package/src/lib/summary-box/summary-box.element.ts +0 -7
  48. package/src/lib/summary-box/summary-box.stories.ts +1 -1
  49. package/src/lib/summary-box/summary-box.test.ts +2 -2
  50. package/src/lib/tag/tag.element.ts +0 -7
  51. package/src/lib/tag/tag.test.ts +2 -2
  52. package/target/lib/accordion/accordion.test.js +5 -5
  53. package/target/lib/accordion/accordion.test.js.map +1 -1
  54. package/target/lib/alert/alert-types.d.ts +1 -1
  55. package/target/lib/alert/alert.element.d.ts +1 -1
  56. package/target/lib/alert/alert.element.js +4 -0
  57. package/target/lib/alert/alert.element.js.map +1 -1
  58. package/target/lib/alert/alert.test.js +2 -2
  59. package/target/lib/alert/alert.test.js.map +1 -1
  60. package/target/lib/button/button.element.js +1 -8
  61. package/target/lib/button/button.element.js.map +1 -1
  62. package/target/lib/button/button.stories.js +1 -4
  63. package/target/lib/button/button.stories.js.map +1 -1
  64. package/target/lib/button/button.test.js +2 -2
  65. package/target/lib/button/button.test.js.map +1 -1
  66. package/target/lib/card/card.test.js +1 -1
  67. package/target/lib/card/card.test.js.map +1 -1
  68. package/target/lib/checkbox/checkbox.element.d.ts +1 -0
  69. package/target/lib/checkbox/checkbox.element.js +24 -16
  70. package/target/lib/checkbox/checkbox.element.js.map +1 -1
  71. package/target/lib/checkbox/checkbox.test.js +17 -3
  72. package/target/lib/checkbox/checkbox.test.js.map +1 -1
  73. package/target/lib/config/config.element.d.ts +0 -2
  74. package/target/lib/config/config.element.js +4 -10
  75. package/target/lib/config/config.element.js.map +1 -1
  76. package/target/lib/config/config.test.js +1 -1
  77. package/target/lib/config/config.test.js.map +1 -1
  78. package/target/lib/description/description.test.js +1 -1
  79. package/target/lib/description/description.test.js.map +1 -1
  80. package/target/lib/file-input/file-input-preview/file-input-preview.element.d.ts +1 -0
  81. package/target/lib/file-input/file-input-preview/file-input-preview.element.js +14 -6
  82. package/target/lib/file-input/file-input-preview/file-input-preview.element.js.map +1 -1
  83. package/target/lib/file-input/file-input-preview/file-input-preview.test.js +3 -3
  84. package/target/lib/file-input/file-input-preview/file-input-preview.test.js.map +1 -1
  85. package/target/lib/file-input/file-input.element.js +3 -3
  86. package/target/lib/file-input/file-input.element.js.map +1 -1
  87. package/target/lib/file-input/file-input.test.js +1 -1
  88. package/target/lib/file-input/file-input.test.js.map +1 -1
  89. package/target/lib/icon/icon.element.d.ts +1 -1
  90. package/target/lib/icon/icon.element.js +4 -5
  91. package/target/lib/icon/icon.element.js.map +1 -1
  92. package/target/lib/icon/icon.stories.js.map +1 -1
  93. package/target/lib/input/input.element.d.ts +6 -2
  94. package/target/lib/input/input.element.js +73 -10
  95. package/target/lib/input/input.element.js.map +1 -1
  96. package/target/lib/input/input.stories.js +3 -1
  97. package/target/lib/input/input.stories.js.map +1 -1
  98. package/target/lib/input/input.test.js +16 -4
  99. package/target/lib/input/input.test.js.map +1 -1
  100. package/target/lib/input-mask/format.js +1 -1
  101. package/target/lib/input-mask/input-mask.element.d.ts +1 -1
  102. package/target/lib/input-mask/input-mask.element.js +6 -7
  103. package/target/lib/input-mask/input-mask.element.js.map +1 -1
  104. package/target/lib/input-mask/input-mask.test.js +12 -8
  105. package/target/lib/input-mask/input-mask.test.js.map +1 -1
  106. package/target/lib/modal/modal-close/modal-close.test.js +1 -1
  107. package/target/lib/modal/modal-close/modal-close.test.js.map +1 -1
  108. package/target/lib/modal/modal-heading/modal-heading.test.js +1 -1
  109. package/target/lib/modal/modal-heading/modal-heading.test.js.map +1 -1
  110. package/target/lib/modal/modal.test.js +1 -1
  111. package/target/lib/modal/modal.test.js.map +1 -1
  112. package/target/lib/radio/context.d.ts +7 -0
  113. package/target/lib/radio/context.js +3 -0
  114. package/target/lib/radio/context.js.map +1 -0
  115. package/target/lib/radio/radio-option/radio-option.element.d.ts +1 -5
  116. package/target/lib/radio/radio-option/radio-option.element.js +45 -35
  117. package/target/lib/radio/radio-option/radio-option.element.js.map +1 -1
  118. package/target/lib/radio/radio.element.d.ts +5 -5
  119. package/target/lib/radio/radio.element.js +39 -29
  120. package/target/lib/radio/radio.element.js.map +1 -1
  121. package/target/lib/radio/radio.stories.js.map +1 -1
  122. package/target/lib/radio/radio.test.js +9 -13
  123. package/target/lib/radio/radio.test.js.map +1 -1
  124. package/target/lib/select/context.d.ts +6 -0
  125. package/target/lib/select/context.js +3 -0
  126. package/target/lib/select/context.js.map +1 -0
  127. package/target/lib/select/select-option/select-option.element.d.ts +2 -1
  128. package/target/lib/select/select-option/select-option.element.js +20 -3
  129. package/target/lib/select/select-option/select-option.element.js.map +1 -1
  130. package/target/lib/select/select.element.d.ts +5 -2
  131. package/target/lib/select/select.element.js +33 -18
  132. package/target/lib/select/select.element.js.map +1 -1
  133. package/target/lib/select/select.stories.js +1 -1
  134. package/target/lib/select/select.test.js +24 -8
  135. package/target/lib/select/select.test.js.map +1 -1
  136. package/target/lib/services/icon.service.js +7 -1
  137. package/target/lib/services/icon.service.js.map +1 -1
  138. package/target/lib/side-nav/side-nav.element.js +1 -1
  139. package/target/lib/side-nav/side-nav.element.js.map +1 -1
  140. package/target/lib/side-nav/side-nav.test.js +1 -1
  141. package/target/lib/side-nav/side-nav.test.js.map +1 -1
  142. package/target/lib/step-indicator/step-indicator.test.js +1 -1
  143. package/target/lib/step-indicator/step-indicator.test.js.map +1 -1
  144. package/target/lib/summary-box/summary-box.element.js +0 -7
  145. package/target/lib/summary-box/summary-box.element.js.map +1 -1
  146. package/target/lib/summary-box/summary-box.stories.js +1 -1
  147. package/target/lib/summary-box/summary-box.stories.js.map +1 -1
  148. package/target/lib/summary-box/summary-box.test.js +1 -1
  149. package/target/lib/summary-box/summary-box.test.js.map +1 -1
  150. package/target/lib/tag/tag.element.js +0 -7
  151. package/target/lib/tag/tag.element.js.map +1 -1
  152. package/target/lib/tag/tag.test.js +1 -1
  153. package/target/lib/tag/tag.test.js.map +1 -1
@@ -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
  });
@@ -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":"AAAA,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAsB,IAAI,CAAA;;;;;;;;;;;KAWxD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAsB,IAAI,CAAA;;;;;;;;;;;KAWxD,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAiB,UAAU,CAAC,CAAC;QAEpE,OAAO,EAAE,KAAK,EAAE,CAAC;QAEjB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAsB,IAAI,CAAA;;;;;;;;;;;KAWxD,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAiB,UAAU,CAAC,CAAC;QAEpE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAE3C,OAAO,EAAE,KAAK,EAAE,CAAC;QAEjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;KAiB5B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAiB,UAAU,CAAC,CAAC,CAAC;QAE5E,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,CAAC,SAAS,CACd,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EACzC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CACrB,CAAC;QAEF,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,CAAC,SAAS,CACd,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EACzC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CACrB,CAAC;QAEF,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,CAAC,SAAS,CACd,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EACzC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;KAiB5B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAiB,UAAU,CAAC,CAAC,CAAC;QAE5E,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,CAAC,SAAS,CACd,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EACzC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CACrB,CAAC;QAEF,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,CAAC,SAAS,CACd,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EACzC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CACrB,CAAC;QAEF,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,CAAC,SAAS,CACd,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EACzC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -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":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAQhF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,SAAS;IACT,WAAW;IACX,MAAM;IACN,MAAM;IACN,SAAS;CACD,CAAC;IA2JE,gBAAgB;4BAvJ5B,OAAO,CAAC;YACP,OAAO,EAAE,YAAY;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,cAAc,EAAE,IAAI;aACrB;YACD,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwIF;gBACD,IAAI,CAAA;;;;KAIH;aACF;SACF,CAAC;;;;sBACoC,WAAW;;;;;;;;;;;;;;;;;gCAAnB,SAAQ,WAAW;;;;gCAG9C,IAAI,EAAE;oCAGN,IAAI,EAAE;mCAGN,IAAI,EAAE;iCAGN,IAAI,EAAE;mCAQN,KAAK,EAAE;qCAMP,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;2CAStC,MAAM,CAAC,OAAO,CAAC;YA/BhB,iKAAS,IAAI,6BAAJ,IAAI,mFAA2C;YAGxD,6KAAS,QAAQ,6BAAR,QAAQ,2FAAS;YAG1B,0KAAS,OAAO,6BAAP,OAAO,yFAA4B;YAG5C,oKAAS,KAAK,6BAAL,KAAK,qFAAM;YAQpB,wKAAA,OAAO,6DAGN;YAGD,8KAAA,SAAS,6DAMR;YAGD,gMAAA,eAAe,6DAEd;YAtCH,6KA8DC;;;;QA7DC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAG7B,0BAJW,mDAAgB,8CAIoB,QAAQ,GAAC;QAAxD,IAAS,IAAI,0CAA2C;QAAxD,IAAS,IAAI,gDAA2C;QAGxD,gIAAoB,KAAK,GAAC;QAA1B,IAAS,QAAQ,8CAAS;QAA1B,IAAS,QAAQ,oDAAS;QAG1B,kIAAkC,SAAS,GAAC;QAA5C,IAAS,OAAO,6CAA4B;QAA5C,IAAS,OAAO,mDAA4B;QAG5C,6HAAiB,EAAE,GAAC;QAApB,IAAS,KAAK,2CAAM;QAApB,IAAS,KAAK,iDAAM;QAEpB,iFAAoB,CAAC,EAAC;QAAtB,IAAS,QAAQ,8CAAK;QAAtB,IAAS,QAAQ,oDAAK;QAEtB,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAG1B,OAAO;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,CAAC;QAGD,SAAS,CAAC,CAAgB;YACxB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;oBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAGD,eAAe;YACb,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,wBAAwB;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,CAAC;QAED,WAAW;YACT,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAEjC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC7C,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;oBACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAEjB,GAAG,CAAC,KAAK,EAAE,CAAC;oBACZ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;;YA7DU,uDAAgB;;;;;SAAhB,gBAAgB"}
@@ -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;
@@ -11,14 +11,8 @@ let USACheckboxElement = (() => {
11
11
 
12
12
  :host {
13
13
  display: inline-block;
14
- font-family:
15
- Source Sans Pro Web,
16
- Helvetica Neue,
17
- Helvetica,
18
- Roboto,
19
- Arial,
20
- sans-serif;
21
14
  max-width: 30rem;
15
+ position: relative;
22
16
  }
23
17
 
24
18
  :host([tiled]) label {
@@ -66,11 +60,7 @@ let USACheckboxElement = (() => {
66
60
  }
67
61
 
68
62
  input {
69
- height: 0;
70
- width: 0;
71
63
  position: absolute;
72
- left: -999em;
73
- right: auto;
74
64
  }
75
65
 
76
66
  input:focus + .checkbox {
@@ -102,7 +92,7 @@ let USACheckboxElement = (() => {
102
92
  `,
103
93
  html `
104
94
  <label>
105
- <input type="checkbox" />
95
+ <input type="checkbox" tabindex="0"/>
106
96
 
107
97
  <div class="checkbox"></div>
108
98
 
@@ -127,6 +117,9 @@ let USACheckboxElement = (() => {
127
117
  let _value_decorators;
128
118
  let _value_initializers = [];
129
119
  let _value_extraInitializers = [];
120
+ let _required_decorators;
121
+ let _required_initializers = [];
122
+ let _required_extraInitializers = [];
130
123
  let _tiled_decorators;
131
124
  let _tiled_initializers = [];
132
125
  let _tiled_extraInitializers = [];
@@ -138,6 +131,7 @@ let USACheckboxElement = (() => {
138
131
  _checked_decorators = [attr()];
139
132
  _name_decorators = [attr()];
140
133
  _value_decorators = [attr()];
134
+ _required_decorators = [attr()];
141
135
  _tiled_decorators = [attr({
142
136
  observed: false,
143
137
  })];
@@ -145,6 +139,7 @@ let USACheckboxElement = (() => {
145
139
  __esDecorate(this, null, _checked_decorators, { kind: "accessor", name: "checked", static: false, private: false, access: { has: obj => "checked" in obj, get: obj => obj.checked, set: (obj, value) => { obj.checked = value; } }, metadata: _metadata }, _checked_initializers, _checked_extraInitializers);
146
140
  __esDecorate(this, null, _name_decorators, { kind: "accessor", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
147
141
  __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
142
+ __esDecorate(this, null, _required_decorators, { kind: "accessor", name: "required", static: false, private: false, access: { has: obj => "required" in obj, get: obj => obj.required, set: (obj, value) => { obj.required = value; } }, metadata: _metadata }, _required_initializers, _required_extraInitializers);
148
143
  __esDecorate(this, null, _tiled_decorators, { kind: "accessor", name: "tiled", static: false, private: false, access: { has: obj => "tiled" in obj, get: obj => obj.tiled, set: (obj, value) => { obj.tiled = value; } }, metadata: _metadata }, _tiled_initializers, _tiled_extraInitializers);
149
144
  __esDecorate(this, null, _onCheckboxChange_decorators, { kind: "method", name: "onCheckboxChange", static: false, private: false, access: { has: obj => "onCheckboxChange" in obj, get: obj => obj.onCheckboxChange }, metadata: _metadata }, null, _instanceExtraInitializers);
150
145
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
@@ -161,25 +156,32 @@ let USACheckboxElement = (() => {
161
156
  #value_accessor_storage = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _value_initializers, ""));
162
157
  get value() { return this.#value_accessor_storage; }
163
158
  set value(value) { this.#value_accessor_storage = value; }
164
- #tiled_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _tiled_initializers, false));
159
+ #required_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _required_initializers, false));
160
+ get required() { return this.#required_accessor_storage; }
161
+ set required(value) { this.#required_accessor_storage = value; }
162
+ #tiled_accessor_storage = (__runInitializers(this, _required_extraInitializers), __runInitializers(this, _tiled_initializers, false));
165
163
  get tiled() { return this.#tiled_accessor_storage; }
166
164
  set tiled(value) { this.#tiled_accessor_storage = value; }
167
165
  #checkbox = (__runInitializers(this, _tiled_extraInitializers), query("input"));
168
166
  #internals = this.attachInternals();
169
167
  connectedCallback() {
170
168
  const checkbox = this.#checkbox();
171
- if (this.checked) {
172
- this.#internals.setFormValue(this.value);
173
- }
174
169
  checkbox.checked = this.checked;
175
170
  checkbox.name = this.name;
171
+ this.#syncFormState();
176
172
  }
177
173
  attributeChangedCallback() {
178
174
  const checkbox = this.#checkbox();
179
175
  checkbox.checked = this.checked;
180
176
  checkbox.name = this.name;
177
+ this.#syncFormState();
181
178
  }
182
179
  onCheckboxChange() {
180
+ const checkbox = this.#checkbox();
181
+ this.checked = checkbox.checked;
182
+ this.#syncFormState();
183
+ }
184
+ #syncFormState() {
183
185
  const checkbox = this.#checkbox();
184
186
  if (checkbox.checked) {
185
187
  this.#internals.setFormValue(this.value);
@@ -187,6 +189,12 @@ let USACheckboxElement = (() => {
187
189
  else {
188
190
  this.#internals.setFormValue(null);
189
191
  }
192
+ if (this.required && !checkbox.checked) {
193
+ this.#internals.setValidity({ valueMissing: true }, "Please check this box if you want to proceed", this.#checkbox());
194
+ }
195
+ else {
196
+ this.#internals.setValidity({});
197
+ }
190
198
  }
191
199
  static {
192
200
  __runInitializers(_classThis, _classExtraInitializers);
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.element.js","sourceRoot":"","sources":["../../../src/lib/checkbox/checkbox.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;IAwH5D,kBAAkB;4BAhH9B,OAAO,CAAC;YACP,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+FF;gBACD,IAAI,CAAA;;;;;;;;;;KAUH;aACF;SACF,CAAC;;;;sBACsC,WAAW;;;;;;;;;;;;;;;kCAAnB,SAAQ,WAAW;;;;mCAGhD,IAAI,EAAE;gCAGN,IAAI,EAAE;iCAGN,IAAI,EAAE;iCAGN,IAAI,CAAC;oBACJ,QAAQ,EAAE,KAAK;iBAChB,CAAC;4CAwBD,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;YAlCzC,0KAAS,OAAO,6BAAP,OAAO,yFAAS;YAGzB,iKAAS,IAAI,6BAAJ,IAAI,mFAAM;YAGnB,oKAAS,KAAK,6BAAL,KAAK,qFAAM;YAKpB,oKAAS,KAAK,6BAAL,KAAK,qFAAS;YAwBvB,mMAAA,gBAAgB,6DAQf;YA/CH,6KAgDC;;;;QA/CC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAG7B,6BAJW,mDAAkB,iDAIV,KAAK,GAAC;QAAzB,IAAS,OAAO,6CAAS;QAAzB,IAAS,OAAO,mDAAS;QAGzB,2HAAgB,EAAE,GAAC;QAAnB,IAAS,IAAI,0CAAM;QAAnB,IAAS,IAAI,gDAAM;QAGnB,0HAAiB,EAAE,GAAC;QAApB,IAAS,KAAK,2CAAM;QAApB,IAAS,KAAK,iDAAM;QAKpB,2HAAiB,KAAK,GAAC;QAAvB,IAAS,KAAK,2CAAS;QAAvB,IAAS,KAAK,iDAAS;QAEvB,SAAS,uDAAG,KAAK,CAAC,OAAO,CAAC,EAAC;QAC3B,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEpC,iBAAiB;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAElC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;YAED,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAChC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,wBAAwB;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAElC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAChC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAGD,gBAAgB;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAElC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;;YA/CU,uDAAkB;;;;;SAAlB,kBAAkB"}
1
+ {"version":3,"file":"checkbox.element.js","sourceRoot":"","sources":["../../../src/lib/checkbox/checkbox.element.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import "./checkbox.element.js";
2
- import { fixture, html, assert } from "@open-wc/testing";
2
+ import { assert, fixture, html } from "@open-wc/testing";
3
3
  describe("usa-checkbox", () => {
4
4
  it("should be accessible", async () => {
5
5
  const form = await fixture(html `
@@ -29,10 +29,24 @@ describe("usa-checkbox", () => {
29
29
  </form>
30
30
  `);
31
31
  const checkbox = form.querySelector("usa-checkbox");
32
- const nativeInput = checkbox.shadowRoot.querySelector("input");
33
- nativeInput.click();
32
+ const nativeInput = checkbox?.shadowRoot?.querySelector("input");
33
+ if (nativeInput) {
34
+ nativeInput.click();
35
+ }
34
36
  const value = new FormData(form);
35
37
  assert.equal(value.get("enabled"), "test");
36
38
  });
39
+ it("should not submit when not valid", async () => {
40
+ const form = await fixture(html `
41
+ <form>
42
+ <usa-checkbox name="enabled" value="test" required>
43
+ Hello World
44
+ </usa-checkbox>
45
+
46
+ <button>Submit</button>
47
+ </form>
48
+ `);
49
+ assert.equal(form.checkValidity(), false);
50
+ });
37
51
  });
38
52
  //# sourceMappingURL=checkbox.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.test.js","sourceRoot":"","sources":["../../../src/lib/checkbox/checkbox.test.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;KAE/C,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;;;KAQ/C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;KAM/C,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAE,CAAC;QACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC;QACjE,WAAW,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"checkbox.test.js","sourceRoot":"","sources":["../../../src/lib/checkbox/checkbox.test.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;KAE/C,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;;;KAQ/C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;KAM/C,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;;;KAQ/C,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,8 +1,6 @@
1
- import { Injector } from "@joist/di";
2
1
  export declare class USAConfig {
3
2
  iconPath: string;
4
3
  }
5
4
  export declare class USAConfigElement extends HTMLElement {
6
5
  accessor iconPath: string;
7
- onInjectorCreated({ providers }: Injector): void;
8
6
  }