@noctuatech/uswds 0.1.2 → 0.1.4

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 (93) hide show
  1. package/package.json +13 -11
  2. package/src/lib/collection/collection.stories.ts +2 -2
  3. package/src/lib/combo-box/combo-box-option/combo-box-option.element.ts +4 -5
  4. package/src/lib/combo-box/combo-box.element.ts +132 -18
  5. package/src/lib/combo-box/combo-box.stories.ts +52 -60
  6. package/src/lib/combo-box/combo-box.test.ts +123 -15
  7. package/target/lib/accordion/accordion.element.js +2 -86
  8. package/target/lib/accordion/accordion.stories.js +1 -26
  9. package/target/lib/accordion/accordion.test.js +5 -72
  10. package/target/lib/alert/alert.element.js +2 -71
  11. package/target/lib/alert/alert.stories.js +1 -41
  12. package/target/lib/alert/alert.test.js +1 -9
  13. package/target/lib/button/button.element.js +2 -142
  14. package/target/lib/button/button.stories.js +1 -6
  15. package/target/lib/button/button.test.js +1 -3
  16. package/target/lib/card/card-body/card-body.element.js +1 -8
  17. package/target/lib/card/card-footer/card-footer.element.js +1 -6
  18. package/target/lib/card/card-group/card-group.element.js +1 -12
  19. package/target/lib/card/card-header/card-header.element.js +1 -16
  20. package/target/lib/card/card-media/card-media.element.js +2 -33
  21. package/target/lib/card/card.element.js +1 -32
  22. package/target/lib/card/card.stories.js +2 -107
  23. package/target/lib/card/card.test.js +1 -20
  24. package/target/lib/checkbox/checkbox-group/checkbox-group.element.js +2 -10
  25. package/target/lib/checkbox/checkbox.element.js +2 -112
  26. package/target/lib/checkbox/checkbox.stories.js +2 -43
  27. package/target/lib/checkbox/checkbox.test.js +4 -28
  28. package/target/lib/collection/collection-item/collection-item.element.js +2 -40
  29. package/target/lib/collection/collection-item/collection-item.test.js +1 -3
  30. package/target/lib/collection/collection.element.js +2 -10
  31. package/target/lib/collection/collection.stories.js +1 -63
  32. package/target/lib/collection/collection.test.js +1 -3
  33. package/target/lib/combo-box/combo-box-option/combo-box-option.element.js +4 -16
  34. package/target/lib/combo-box/combo-box-option/combo-box-option.element.js.map +1 -1
  35. package/target/lib/combo-box/combo-box.element.d.ts +8 -0
  36. package/target/lib/combo-box/combo-box.element.js +73 -64
  37. package/target/lib/combo-box/combo-box.element.js.map +1 -1
  38. package/target/lib/combo-box/combo-box.stories.js +1 -213
  39. package/target/lib/combo-box/combo-box.stories.js.map +1 -1
  40. package/target/lib/combo-box/combo-box.test.js +58 -15
  41. package/target/lib/combo-box/combo-box.test.js.map +1 -1
  42. package/target/lib/config/config.element.js +1 -5
  43. package/target/lib/config/config.test.js +1 -3
  44. package/target/lib/description/description.element.js +1 -7
  45. package/target/lib/description/description.test.js +1 -3
  46. package/target/lib/file-input/file-input-preview/file-input-preview.element.js +2 -61
  47. package/target/lib/file-input/file-input-preview/file-input-preview.test.js +5 -25
  48. package/target/lib/file-input/file-input.element.js +2 -82
  49. package/target/lib/file-input/file-input.stories.js +1 -13
  50. package/target/lib/file-input/file-input.test.js +2 -16
  51. package/target/lib/icon/icon.element.js +1 -14
  52. package/target/lib/icon/icon.stories.js +2 -13
  53. package/target/lib/input/input.element.js +2 -73
  54. package/target/lib/input/input.stories.js +2 -12
  55. package/target/lib/input/input.test.js +4 -24
  56. package/target/lib/input-mask/input-mask.element.js +1 -5
  57. package/target/lib/input-mask/input-mask.stories.js +1 -12
  58. package/target/lib/input-mask/input-mask.test.js +4 -24
  59. package/target/lib/link/link.element.js +2 -18
  60. package/target/lib/modal/modal-close/modal-close.element.js +2 -36
  61. package/target/lib/modal/modal-close/modal-close.test.js +1 -3
  62. package/target/lib/modal/modal-heading/modal-heading.element.js +2 -24
  63. package/target/lib/modal/modal-heading/modal-heading.test.js +1 -3
  64. package/target/lib/modal/modal.element.js +2 -33
  65. package/target/lib/modal/modal.stories.js +1 -18
  66. package/target/lib/modal/modal.test.js +1 -11
  67. package/target/lib/radio/radio-option/radio-option.element.js +2 -16
  68. package/target/lib/radio/radio-option/radio-option.test.js +1 -5
  69. package/target/lib/radio/radio.element.js +2 -98
  70. package/target/lib/radio/radio.stories.js +1 -26
  71. package/target/lib/radio/radio.test.js +5 -103
  72. package/target/lib/range-slider/range-slider.element.js +2 -52
  73. package/target/lib/range-slider/range-slider.test.js +3 -17
  74. package/target/lib/select/select-option/select-option.element.js +1 -5
  75. package/target/lib/select/select.element.js +2 -49
  76. package/target/lib/select/select.stories.js +1 -10
  77. package/target/lib/select/select.test.js +6 -64
  78. package/target/lib/side-nav/side-nav-item/side-nav-item.element.js +2 -67
  79. package/target/lib/side-nav/side-nav.element.js +1 -8
  80. package/target/lib/side-nav/side-nav.stories.js +1 -39
  81. package/target/lib/side-nav/side-nav.test.js +2 -78
  82. package/target/lib/step-indicator/step/step.element.js +2 -96
  83. package/target/lib/step-indicator/step-indicator.element.js +1 -9
  84. package/target/lib/step-indicator/step-indicator.stories.js +1 -21
  85. package/target/lib/step-indicator/step-indicator.test.js +1 -9
  86. package/target/lib/summary-box/summary-box.element.js +2 -14
  87. package/target/lib/summary-box/summary-box.stories.js +1 -1
  88. package/target/lib/summary-box/summary-box.test.js +1 -3
  89. package/target/lib/tag/tag.element.js +1 -22
  90. package/target/lib/tag/tag.stories.js +1 -1
  91. package/target/lib/tag/tag.test.js +1 -3
  92. package/target/lib/textarea/textarea.element.js +2 -49
  93. package/target/lib/textarea/textarea.test.js +4 -24
@@ -10,53 +10,12 @@ export default meta;
10
10
  // More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
11
11
  export const Primary = {
12
12
  render() {
13
- return html `
14
- <usa-checkbox-group>
15
- <legend class="usa-legend">Select any historical figure</legend>
16
-
17
- <usa-checkbox name="historical-figure" value="sojurner-truth">
18
- Sojourner Truth
19
- </usa-checkbox>
20
-
21
- <usa-checkbox name="historical-figure" value="frederick-douglass">
22
- Frederick Douglass
23
- </usa-checkbox>
24
-
25
- <usa-checkbox name="historical-figure" value="booker-t-washington">
26
- Booker T. Washington
27
- </usa-checkbox>
28
-
29
- <usa-checkbox name="historical-figure" value="gw-carver" disabled>
30
- George Washington Carver
31
- </usa-checkbox>
32
- </usa-checkbox-group>
33
- `;
13
+ return html `<usa-checkbox-group><legend class="usa-legend">Select any historical figure</legend><usa-checkbox name="historical-figure" value="sojurner-truth">Sojourner Truth</usa-checkbox><usa-checkbox name="historical-figure" value="frederick-douglass">Frederick Douglass</usa-checkbox><usa-checkbox name="historical-figure" value="booker-t-washington">Booker T. Washington</usa-checkbox><usa-checkbox name="historical-figure" value="gw-carver" disabled="disabled">George Washington Carver</usa-checkbox></usa-checkbox-group>`;
34
14
  },
35
15
  };
36
16
  export const Tiled = {
37
17
  render() {
38
- return html `
39
- <usa-checkbox-group>
40
- <legend class="usa-legend">Select any historical figure</legend>
41
-
42
- <usa-checkbox name="historical-figure" value="sojurner-truth" tiled>
43
- Sojourner Truth
44
- <usa-description>This is optional text that can be used to describe the label in more detail.</usa-description>
45
- </usa-checkbox>
46
-
47
- <usa-checkbox name="historical-figure" value="frederick-douglass" tiled>
48
- Frederick Douglass
49
- </usa-checkbox>
50
-
51
- <usa-checkbox name="historical-figure" value="booker-t-washington" tiled>
52
- Booker T. Washington
53
- </usa-checkbox>
54
-
55
- <usa-checkbox name="historical-figure" value="gw-carver" tiled disabled>
56
- George Washington Carver
57
- </usa-checkbox>
58
- </usa-checkbox-group>
59
- `;
18
+ return html `<usa-checkbox-group><legend class="usa-legend">Select any historical figure</legend><usa-checkbox name="historical-figure" value="sojurner-truth" tiled>Sojourner Truth<usa-description>This is optional text that can be used to describe the label in more detail.</usa-description></usa-checkbox><usa-checkbox name="historical-figure" value="frederick-douglass" tiled>Frederick Douglass</usa-checkbox><usa-checkbox name="historical-figure" value="booker-t-washington" tiled>Booker T. Washington</usa-checkbox><usa-checkbox name="historical-figure" value="gw-carver" tiled disabled="disabled">George Washington Carver</usa-checkbox></usa-checkbox-group>`;
60
19
  },
61
20
  };
62
21
  //# sourceMappingURL=checkbox.stories.js.map
@@ -2,32 +2,16 @@ import "./checkbox.element.js";
2
2
  import { assert, fixture, html } from "@open-wc/testing";
3
3
  describe("usa-checkbox", () => {
4
4
  it("should be accessible", async () => {
5
- const form = await fixture(html `
6
- <usa-checkbox name="fname" value="Foo">Hello World</usa-checkbox>
7
- `);
5
+ const form = await fixture(html `<usa-checkbox name="fname" value="Foo">Hello World</usa-checkbox>`);
8
6
  return assert.isAccessible(form);
9
7
  });
10
8
  it("should submit form with default values", async () => {
11
- const form = await fixture(html `
12
- <form>
13
- <usa-checkbox name="enabled" value="test" checked>
14
- Hello World
15
- </usa-checkbox>
16
-
17
- <button>Submit</button>
18
- </form>
19
- `);
9
+ const form = await fixture(html `<form><usa-checkbox name="enabled" value="test" checked="checked">Hello World</usa-checkbox><button>Submit</button></form>`);
20
10
  const value = new FormData(form);
21
11
  assert.equal(value.get("enabled"), "test");
22
12
  });
23
13
  it("should update form value as input value changed", async () => {
24
- const form = await fixture(html `
25
- <form>
26
- <usa-checkbox name="enabled" value="test">Hello World</usa-checkbox>
27
-
28
- <button>Submit</button>
29
- </form>
30
- `);
14
+ const form = await fixture(html `<form><usa-checkbox name="enabled" value="test">Hello World</usa-checkbox><button>Submit</button></form>`);
31
15
  const checkbox = form.querySelector("usa-checkbox");
32
16
  const nativeInput = checkbox?.shadowRoot?.querySelector("input");
33
17
  if (nativeInput) {
@@ -37,15 +21,7 @@ describe("usa-checkbox", () => {
37
21
  assert.equal(value.get("enabled"), "test");
38
22
  });
39
23
  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
- `);
24
+ const form = await fixture(html `<form><usa-checkbox name="enabled" value="test" required>Hello World</usa-checkbox><button>Submit</button></form>`);
49
25
  assert.equal(form.checkValidity(), false);
50
26
  });
51
27
  });
@@ -4,46 +4,8 @@ let USACollectionItemElement = (() => {
4
4
  let _classDecorators = [element({
5
5
  tagName: "usa-collection-item",
6
6
  shadowDom: [
7
- css `
8
- :host {
9
- display: flex;
10
- gap: 1rem;
11
- }
12
-
13
- .content {
14
- display: flex;
15
- flex-direction: column;
16
- }
17
-
18
- slot[name="heading"]::slotted(*) {
19
- font-size: 1.13rem;
20
- line-height: 1.3;
21
- margin-bottom: 0;
22
- margin-top: 0;
23
- }
24
-
25
- .description {
26
- margin-bottom: .5rem;
27
- margin-top: .5rem;
28
- }
29
- `,
30
- html `
31
- <slot name="img"></slot>
32
-
33
- <div class="content">
34
- <div class="heading">
35
- <slot name="heading"></slot>
36
- </div>
37
-
38
- <div class="description">
39
- <slot name="description"></slot>
40
- </div>
41
-
42
- <div class="slots">
43
- <slot name="tags"></slot>
44
- </div>
45
- </div>
46
- `,
7
+ css `:host{display:flex;gap:1rem}.content{display:flex;flex-direction:column}slot[name=heading]::slotted(*){font-size:1.13rem;line-height:1.3;margin-bottom:0;margin-top:0}.description{margin-bottom:.5rem;margin-top:.5rem}`,
8
+ html `<slot name="img"></slot><div class="content"><div class="heading"><slot name="heading"></slot></div><div class="description"><slot name="description"></slot></div><div class="slots"><slot name="tags"></slot></div></div>`,
47
9
  ],
48
10
  })];
49
11
  let _classDescriptor;
@@ -2,9 +2,7 @@ import "./collection-item.element.js";
2
2
  import { assert, fixture, html } from "@open-wc/testing";
3
3
  describe("usa-collection-item", () => {
4
4
  it("should be accessible", async () => {
5
- const collectionItem = await fixture(html `
6
- <usa-collection-item>Hello World</usa-collection-item>
7
- `);
5
+ const collectionItem = await fixture(html `<usa-collection-item>Hello World</usa-collection-item>`);
8
6
  return assert.isAccessible(collectionItem);
9
7
  });
10
8
  });
@@ -4,16 +4,8 @@ let USACollectionElement = (() => {
4
4
  let _classDecorators = [element({
5
5
  tagName: "usa-collection",
6
6
  shadowDom: [
7
- css `
8
- :host {
9
- display: grid;
10
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
11
- gap: 2rem;
12
- }
13
- `,
14
- html `
15
- <slot></slot>
16
- `,
7
+ css `:host{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}`,
8
+ html `<slot></slot>`,
17
9
  ],
18
10
  })];
19
11
  let _classDescriptor;
@@ -4,69 +4,7 @@ const meta = {
4
4
  title: "usa-collection",
5
5
  tags: ["autodocs"],
6
6
  render() {
7
- return html `
8
- <usa-collection>
9
- <usa-collection-item>
10
- <h4 slot="heading">
11
- <usa-link href="#">Gears of Government President's Award winners</usa-link>
12
- </h4>
13
-
14
- <div slot="description">
15
- Today, the Administration announces the winners of the Gears of Government President's Award. This program recognizes the contributions of individuals and teams across the federal workforce who make a profound difference in the lives of the American people.
16
- </div>
17
-
18
- <usa-tag slot="tags" type="new">NEW</usa-tag>
19
- <usa-tag slot="tags">PMA</usa-tag>
20
- <usa-tag slot="tags">OMB</usa-tag>
21
- </usa-collection-item>
22
-
23
- <usa-collection-item>
24
- <img height="80" width="80" src="/assets/img/gog-logo.png" slot="img"/>
25
-
26
- <h4 slot="heading">
27
- <usa-link href="#">Gears of Government President's Award winners</usa-link>
28
- </h4>
29
-
30
- <div slot="description">
31
- Today, the Administration announces the winners of the Gears of Government President's Award. This program recognizes the contributions of individuals and teams across the federal workforce who make a profound difference in the lives of the American people.
32
- </div>
33
-
34
- <usa-tag slot="tags" type="new">NEW</usa-tag>
35
- <usa-tag slot="tags">PMA</usa-tag>
36
- <usa-tag slot="tags">OMB</usa-tag>
37
- </usa-collection-item>
38
-
39
- <usa-collection-item>
40
- <h4 slot="heading">
41
- <usa-link href="#">Women-owned small business dashboard</usa-link>
42
- </h4>
43
-
44
- <div slot="description">
45
- In honor of National Women's Small Business Month, we've partnered with SBA's Office of Government Contracting and Business Development and Office of Program Performance, Analysis, and Evaluation to highlight the Women-Owned Small Businesses (WOSBs) data dashboard!
46
- </div>
47
-
48
- <usa-tag slot="tags" type="new">NEW</usa-tag>
49
- <usa-tag slot="tags">PMA</usa-tag>
50
- <usa-tag slot="tags">OMB</usa-tag>
51
- </usa-collection-item>
52
-
53
- <usa-collection-item>
54
- <img height="52" width="80" src="/assets/img/wosb1.jpg" slot="img"/>
55
-
56
- <h4 slot="heading">
57
- <usa-link href="#">Women-owned small business dashboard</usa-link>
58
- </h4>
59
-
60
- <div slot="description">
61
- In honor of National Women's Small Business Month, we've partnered with SBA's Office of Government Contracting and Business Development and Office of Program Performance, Analysis, and Evaluation to highlight the Women-Owned Small Businesses (WOSBs) data dashboard!
62
- </div>
63
-
64
- <usa-tag slot="tags" type="new">NEW</usa-tag>
65
- <usa-tag slot="tags">PMA</usa-tag>
66
- <usa-tag slot="tags">OMB</usa-tag>
67
- </usa-collection-item>
68
- </usa-collection>
69
- `;
7
+ return html `<usa-collection><usa-collection-item><h4 slot="heading"><usa-link href="#">Gears of Government President's Award winners</usa-link></h4><div slot="description">Today, the Administration announces the winners of the Gears of Government President's Award. This program recognizes the contributions of individuals and teams across the federal workforce who make a profound difference in the lives of the American people.</div><usa-tag slot="tags" type="new">NEW</usa-tag><usa-tag slot="tags">PMA</usa-tag><usa-tag slot="tags">OMB</usa-tag></usa-collection-item><usa-collection-item><img height="80" width="80" src="./img/gog-logo.png" slot="img"><h4 slot="heading"><usa-link href="#">Gears of Government President's Award winners</usa-link></h4><div slot="description">Today, the Administration announces the winners of the Gears of Government President's Award. This program recognizes the contributions of individuals and teams across the federal workforce who make a profound difference in the lives of the American people.</div><usa-tag slot="tags" type="new">NEW</usa-tag><usa-tag slot="tags">PMA</usa-tag><usa-tag slot="tags">OMB</usa-tag></usa-collection-item><usa-collection-item><h4 slot="heading"><usa-link href="#">Women-owned small business dashboard</usa-link></h4><div slot="description">In honor of National Women's Small Business Month, we've partnered with SBA's Office of Government Contracting and Business Development and Office of Program Performance, Analysis, and Evaluation to highlight the Women-Owned Small Businesses (WOSBs) data dashboard!</div><usa-tag slot="tags" type="new">NEW</usa-tag><usa-tag slot="tags">PMA</usa-tag><usa-tag slot="tags">OMB</usa-tag></usa-collection-item><usa-collection-item><img height="52" width="80" src="./img/wosb1.jpg" slot="img"><h4 slot="heading"><usa-link href="#">Women-owned small business dashboard</usa-link></h4><div slot="description">In honor of National Women's Small Business Month, we've partnered with SBA's Office of Government Contracting and Business Development and Office of Program Performance, Analysis, and Evaluation to highlight the Women-Owned Small Businesses (WOSBs) data dashboard!</div><usa-tag slot="tags" type="new">NEW</usa-tag><usa-tag slot="tags">PMA</usa-tag><usa-tag slot="tags">OMB</usa-tag></usa-collection-item></usa-collection>`;
70
8
  },
71
9
  argTypes: {},
72
10
  args: {},
@@ -2,9 +2,7 @@ import "./collection.element.js";
2
2
  import { assert, fixture, html } from "@open-wc/testing";
3
3
  describe("usa-collection", () => {
4
4
  it("should be accessible", async () => {
5
- const collection = await fixture(html `
6
- <usa-collection>Hello World</usa-collection>
7
- `);
5
+ const collection = await fixture(html `<usa-collection>Hello World</usa-collection>`);
8
6
  return assert.isAccessible(collection);
9
7
  });
10
8
  });
@@ -2,26 +2,14 @@ import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { inject, injectable } from "@joist/di";
3
3
  import { attr, css, element, html, query } from "@joist/element";
4
4
  import { COMBO_BOX_CTX } from "../context.js";
5
- const template = document.createElement("template");
6
- template.innerHTML = /*html*/ `
7
- <li tabindex="-1" role="option">
8
- <slot></slot>
9
- </li>
10
- `;
5
+ const listTemplate = html `<li tabindex="-1" role="option"><slot></slot></li>`;
11
6
  let USAComboBoxOptionElement = (() => {
12
7
  let _classDecorators = [injectable({
13
8
  name: "usa-combo-box-option-ctx",
14
9
  }), element({
15
10
  tagName: "usa-combo-box-option",
16
11
  shadowDom: [
17
- css `
18
- :host {
19
- display: flex;
20
- align-items: center;
21
- gap: 0.5rem;
22
- padding: 0.5rem;
23
- }
24
- `,
12
+ css `:host{display:flex;align-items:center;gap:.5rem;padding:.5rem}`,
25
13
  html `<slot></slot>`,
26
14
  ],
27
15
  })];
@@ -46,14 +34,14 @@ let USAComboBoxOptionElement = (() => {
46
34
  #value_accessor_storage = __runInitializers(this, _value_initializers, "");
47
35
  get value() { return this.#value_accessor_storage; }
48
36
  set value(value) { this.#value_accessor_storage = value; }
49
- #listItem = (__runInitializers(this, _value_extraInitializers), template.content.cloneNode(true));
37
+ #listItem = (__runInitializers(this, _value_extraInitializers), listTemplate.createNode());
50
38
  #li = query("li", this.#listItem);
51
39
  #slot = query("slot", this.#listItem);
52
40
  #ctx = inject(COMBO_BOX_CTX);
53
41
  attributeChangedCallback() {
54
42
  const value = this.value.split(" ").join("-").toLocaleLowerCase();
55
43
  this.#li().dataset.value = this.value;
56
- this.#slot().name = value;
44
+ this.#slot({ name: value });
57
45
  this.slot = value;
58
46
  }
59
47
  connectedCallback() {
@@ -1 +1 @@
1
- {"version":3,"file":"combo-box-option.element.js","sourceRoot":"","sources":["../../../../src/lib/combo-box/combo-box-option/combo-box-option.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQ9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAEpD,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC;;;;CAI7B,CAAC;IAmBW,wBAAwB;4BAjBpC,UAAU,CAAC;YACV,IAAI,EAAE,0BAA0B;SACjC,CAAC,EACD,OAAO,CAAC;YACP,OAAO,EAAE,sBAAsB;YAC/B,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;KAOF;gBACD,IAAI,CAAA,eAAe;aACpB;SACF,CAAC;;;;sBAC4C,WAAW;;;;wCAAnB,SAAQ,WAAW;;;;iCACtD,IAAI,EAAE;YACP,oKAAS,KAAK,6BAAL,KAAK,qFAAM;YAFtB,6KA+BC;;;YA/BY,uDAAwB;;QAEnC,uEAAiB,EAAE,EAAC;QAApB,IAAS,KAAK,2CAAM;QAApB,IAAS,KAAK,iDAAM;QAEpB,SAAS,uDAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAkB,EAAC;QAC9D,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAE7B,wBAAwB;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC;YAElE,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;YAE1B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,iBAAiB;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAExB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,CAAC;QAED,oBAAoB;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAExB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE7B,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;;;;SA9BU,wBAAwB"}
1
+ {"version":3,"file":"combo-box-option.element.js","sourceRoot":"","sources":["../../../../src/lib/combo-box/combo-box-option/combo-box-option.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQ9C,MAAM,YAAY,GAAG,IAAI,CAAA;;;;CAIxB,CAAC;IAmBW,wBAAwB;4BAjBpC,UAAU,CAAC;YACV,IAAI,EAAE,0BAA0B;SACjC,CAAC,EACD,OAAO,CAAC;YACP,OAAO,EAAE,sBAAsB;YAC/B,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;KAOF;gBACD,IAAI,CAAA,eAAe;aACpB;SACF,CAAC;;;;sBAC4C,WAAW;;;;wCAAnB,SAAQ,WAAW;;;;iCACtD,IAAI,EAAE;YACP,oKAAS,KAAK,6BAAL,KAAK,qFAAM;YAFtB,6KAgCC;;;YAhCY,uDAAwB;;QAEnC,uEAAiB,EAAE,EAAC;QAApB,IAAS,KAAK,2CAAM;QAApB,IAAS,KAAK,iDAAM;QAEpB,SAAS,uDAAG,YAAY,CAAC,UAAU,EAAiB,EAAC;QACrD,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAE7B,wBAAwB;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC;YAElE,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEtC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAE5B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,iBAAiB;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAExB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,CAAC;QAED,oBAAoB;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAExB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE7B,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;;;;SA/BU,wBAAwB"}
@@ -6,9 +6,17 @@ declare global {
6
6
  }
7
7
  export declare class USAComboBoxElement extends HTMLElement implements ComboBoxContainer {
8
8
  #private;
9
+ static formAssociated: boolean;
10
+ accessor name: string;
11
+ accessor required: boolean;
12
+ accessor value: string;
13
+ accessor placeholder: string;
9
14
  list: (updates?: (Partial<HTMLUListElement> | ((node: HTMLUListElement) => Partial<HTMLUListElement>)) | undefined) => HTMLUListElement;
10
15
  input: (updates?: (Partial<HTMLInputElement> | ((node: HTMLInputElement) => Partial<HTMLInputElement>)) | undefined) => HTMLInputElement;
11
16
  currentItemEl: Element | null;
17
+ attributeChangedCallback(): void;
18
+ onValueChanged(): void;
19
+ connectedCallback(): void;
12
20
  listItems(): NodeListOf<HTMLLIElement>;
13
21
  addOption(el: HTMLLIElement): void;
14
22
  removeOption(el: HTMLLIElement): void;
@@ -1,6 +1,6 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { injectable } from "@joist/di";
3
- import { css, element, html, listen, query } from "@joist/element";
3
+ import { attr, attrChanged, css, element, html, listen, query, } from "@joist/element";
4
4
  import { COMBO_BOX_CTX } from "./context.js";
5
5
  let USAComboBoxElement = (() => {
6
6
  let _classDecorators = [injectable({
@@ -9,55 +9,8 @@ let USAComboBoxElement = (() => {
9
9
  }), element({
10
10
  tagName: "usa-combo-box",
11
11
  shadowDom: [
12
- css `
13
- :host {
14
- --usa-combo-max-height: 12.5em;
15
-
16
- display: block;
17
- max-width: 30rem;
18
- position: relative;
19
- }
20
-
21
- ul {
22
- padding: 0;
23
- position: absolute;
24
- bottom: 0;
25
- left: 0;
26
- right: 0;
27
- transform: translateY(100%);
28
- margin: 0;
29
- border: 1px solid rgb(92, 92, 92);
30
- max-height: var(--usa-combo-max-height);
31
- overflow-y: scroll;
32
- overflow-x: visible;
33
- z-index: 1001;
34
- }
35
-
36
- ul:empty {
37
- border: none;
38
- }
39
-
40
- ul li {
41
- background: #ffff;
42
- list-style: none;
43
- border-bottom: 1px solid #e6e6e6;
44
- cursor: pointer;
45
- display: block;
46
- }
47
-
48
- ul li:hover {
49
- background-color: #f0f0f0;
50
- }
51
-
52
- li:focus {
53
- outline: 0.25rem solid #2491ff;
54
- outline-offset: -0.25rem;
55
- }
56
- `,
57
- html `
58
- <slot name="input"></slot>
59
- <ul tabindex="-1" role="listbox"></ul>
60
- `,
12
+ css `*{box-sizing:border-box}:host{--usa-combo-max-height:12.5em;display:block;max-width:30rem;position:relative;margin-bottom:1.5rem}input{border-width:1px;border-color:#5c5c5c;border-style:solid;border-radius:0;color:#1b1b1b;display:block;height:2.5rem;line-height:1.3;font-size:1.06rem;margin-top:.5rem;padding:.5rem;width:100%;padding-right:2.8rem}input:not(:disabled):focus{outline:.25rem solid #2491ff;outline-offset:0}ul{padding:0;position:absolute;bottom:0;width:100%;transform:translateY(100%);margin:0;border:1px solid #5c5c5c;max-height:var(--usa-combo-max-height);overflow-y:scroll;z-index:1001}ul:empty{border:none}ul li{background:#ffff;list-style:none;border-bottom:1px solid #e6e6e6;cursor:pointer;display:block}ul li:hover{background-color:#f0f0f0}li:focus{outline:.25rem solid #2491ff;outline-offset:-.25rem}.usa-combo-box-icon{display:block;position:absolute;bottom:0;right:.5rem;cursor:pointer}.usa-combo-box-icon .line{width:1px;top:.3rem;bottom:.5rem;left:-.3rem;position:absolute;background-color:#c6cace}`,
13
+ html `<label><slot name="label"></slot><input tabindex="0" role="combobox" autocomplete="off" aria-controls="combo-box-list" aria-expanded="false"><div class="usa-combo-box-icon"><div class="line"></div><usa-icon icon="expand_more"></usa-icon></div></label><ul tabindex="-1" role="listbox" id="combo-box-list"></ul>`,
61
14
  ],
62
15
  })];
63
16
  let _classDescriptor;
@@ -65,6 +18,19 @@ let USAComboBoxElement = (() => {
65
18
  let _classThis;
66
19
  let _classSuper = HTMLElement;
67
20
  let _instanceExtraInitializers = [];
21
+ let _name_decorators;
22
+ let _name_initializers = [];
23
+ let _name_extraInitializers = [];
24
+ let _required_decorators;
25
+ let _required_initializers = [];
26
+ let _required_extraInitializers = [];
27
+ let _value_decorators;
28
+ let _value_initializers = [];
29
+ let _value_extraInitializers = [];
30
+ let _placeholder_decorators;
31
+ let _placeholder_initializers = [];
32
+ let _placeholder_extraInitializers = [];
33
+ let _onValueChanged_decorators;
68
34
  let _onFocusIn_decorators;
69
35
  let _onInput_decorators;
70
36
  let _onFocusOut_decorators;
@@ -76,13 +42,23 @@ let USAComboBoxElement = (() => {
76
42
  static { _classThis = this; }
77
43
  static {
78
44
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
45
+ _name_decorators = [attr()];
46
+ _required_decorators = [attr()];
47
+ _value_decorators = [attr()];
48
+ _placeholder_decorators = [attr()];
49
+ _onValueChanged_decorators = [attrChanged("value", "required")];
79
50
  _onFocusIn_decorators = [listen("focus", (host) => host.input())];
80
- _onInput_decorators = [listen("input", (host) => host)];
51
+ _onInput_decorators = [listen("input")];
81
52
  _onFocusOut_decorators = [listen("focusout")];
82
53
  _onArrowDown_decorators = [listen("keydown")];
83
54
  _onArrowUp_decorators = [listen("keydown")];
84
55
  _onEnter_decorators = [listen("keydown")];
85
56
  _onClick_decorators = [listen("click")];
57
+ __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);
58
+ __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);
59
+ __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);
60
+ __esDecorate(this, null, _placeholder_decorators, { kind: "accessor", name: "placeholder", static: false, private: false, access: { has: obj => "placeholder" in obj, get: obj => obj.placeholder, set: (obj, value) => { obj.placeholder = value; } }, metadata: _metadata }, _placeholder_initializers, _placeholder_extraInitializers);
61
+ __esDecorate(this, null, _onValueChanged_decorators, { kind: "method", name: "onValueChanged", static: false, private: false, access: { has: obj => "onValueChanged" in obj, get: obj => obj.onValueChanged }, metadata: _metadata }, null, _instanceExtraInitializers);
86
62
  __esDecorate(this, null, _onFocusIn_decorators, { kind: "method", name: "onFocusIn", static: false, private: false, access: { has: obj => "onFocusIn" in obj, get: obj => obj.onFocusIn }, metadata: _metadata }, null, _instanceExtraInitializers);
87
63
  __esDecorate(this, null, _onInput_decorators, { kind: "method", name: "onInput", static: false, private: false, access: { has: obj => "onInput" in obj, get: obj => obj.onInput }, metadata: _metadata }, null, _instanceExtraInitializers);
88
64
  __esDecorate(this, null, _onFocusOut_decorators, { kind: "method", name: "onFocusOut", static: false, private: false, access: { has: obj => "onFocusOut" in obj, get: obj => obj.onFocusOut }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -93,12 +69,38 @@ let USAComboBoxElement = (() => {
93
69
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
94
70
  USAComboBoxElement = _classThis = _classDescriptor.value;
95
71
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
96
- __runInitializers(_classThis, _classExtraInitializers);
97
72
  }
98
- list = (__runInitializers(this, _instanceExtraInitializers), query("ul"));
99
- input = query('[slot="input"]', this);
73
+ static formAssociated = true;
74
+ #name_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _name_initializers, ""));
75
+ get name() { return this.#name_accessor_storage; }
76
+ set name(value) { this.#name_accessor_storage = value; }
77
+ #required_accessor_storage = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _required_initializers, false));
78
+ get required() { return this.#required_accessor_storage; }
79
+ set required(value) { this.#required_accessor_storage = value; }
80
+ #value_accessor_storage = (__runInitializers(this, _required_extraInitializers), __runInitializers(this, _value_initializers, ""));
81
+ get value() { return this.#value_accessor_storage; }
82
+ set value(value) { this.#value_accessor_storage = value; }
83
+ #placeholder_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _placeholder_initializers, ""));
84
+ get placeholder() { return this.#placeholder_accessor_storage; }
85
+ set placeholder(value) { this.#placeholder_accessor_storage = value; }
86
+ list = (__runInitializers(this, _placeholder_extraInitializers), query("ul"));
87
+ input = query("input");
100
88
  currentItemEl = null;
101
89
  #allListItems = new Set();
90
+ #internals = this.attachInternals();
91
+ attributeChangedCallback() {
92
+ this.input({
93
+ name: this.name,
94
+ placeholder: this.placeholder,
95
+ required: this.required,
96
+ });
97
+ }
98
+ onValueChanged() {
99
+ this.#syncFormState();
100
+ }
101
+ connectedCallback() {
102
+ this.#syncFormState();
103
+ }
102
104
  listItems() {
103
105
  return this.list().querySelectorAll("li");
104
106
  }
@@ -111,6 +113,7 @@ let USAComboBoxElement = (() => {
111
113
  onFocusIn() {
112
114
  this.currentItemEl = null;
113
115
  const list = this.list();
116
+ this.input({ ariaExpanded: "true" });
114
117
  const fragment = document.createDocumentFragment();
115
118
  for (const item of this.#allListItems) {
116
119
  fragment.append(item);
@@ -136,6 +139,7 @@ let USAComboBoxElement = (() => {
136
139
  if (!this.contains(document.activeElement)) {
137
140
  this.list({ innerHTML: "" });
138
141
  this.currentItemEl = null;
142
+ this.input({ ariaExpanded: "false" });
139
143
  }
140
144
  }, 0);
141
145
  }
@@ -181,27 +185,32 @@ let USAComboBoxElement = (() => {
181
185
  const target = e.target;
182
186
  this.currentItemEl = null;
183
187
  const value = target.dataset.value || "";
184
- this.input({
185
- value,
186
- selectionStart: value.length,
187
- selectionEnd: value.length,
188
- }).focus();
188
+ this.input().focus();
189
189
  this.list({ innerHTML: "" });
190
+ this.value = value;
190
191
  }
191
192
  onClick(e) {
192
193
  if (e.target instanceof HTMLElement) {
193
194
  const value = e.target.getAttribute("value");
194
195
  if (value) {
195
- this.input({
196
- value,
197
- selectionStart: value.length,
198
- selectionEnd: value.length,
199
- }).focus();
196
+ this.input().focus();
200
197
  this.list({ innerHTML: "" });
201
198
  this.currentItemEl = null;
199
+ this.value = value;
202
200
  }
203
201
  }
204
202
  }
203
+ #syncFormState() {
204
+ const input = this.input({ value: this.value });
205
+ this.#internals.setValidity({});
206
+ this.#internals.setFormValue(this.value);
207
+ if (input.validationMessage) {
208
+ this.#internals.setValidity({ customError: true }, input.validationMessage, input);
209
+ }
210
+ }
211
+ static {
212
+ __runInitializers(_classThis, _classExtraInitializers);
213
+ }
205
214
  };
206
215
  return USAComboBoxElement = _classThis;
207
216
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"combo-box.element.js","sourceRoot":"","sources":["../../../src/lib/combo-box/combo-box.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combo-box.element.js","sourceRoot":"","sources":["../../../src/lib/combo-box/combo-box.element.ts"],"names":[],"mappings":"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"}