@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.
- package/package.json +13 -11
- package/src/lib/collection/collection.stories.ts +2 -2
- package/src/lib/combo-box/combo-box-option/combo-box-option.element.ts +4 -5
- package/src/lib/combo-box/combo-box.element.ts +132 -18
- package/src/lib/combo-box/combo-box.stories.ts +52 -60
- package/src/lib/combo-box/combo-box.test.ts +123 -15
- package/target/lib/accordion/accordion.element.js +2 -86
- package/target/lib/accordion/accordion.stories.js +1 -26
- package/target/lib/accordion/accordion.test.js +5 -72
- package/target/lib/alert/alert.element.js +2 -71
- package/target/lib/alert/alert.stories.js +1 -41
- package/target/lib/alert/alert.test.js +1 -9
- package/target/lib/button/button.element.js +2 -142
- package/target/lib/button/button.stories.js +1 -6
- package/target/lib/button/button.test.js +1 -3
- package/target/lib/card/card-body/card-body.element.js +1 -8
- package/target/lib/card/card-footer/card-footer.element.js +1 -6
- package/target/lib/card/card-group/card-group.element.js +1 -12
- package/target/lib/card/card-header/card-header.element.js +1 -16
- package/target/lib/card/card-media/card-media.element.js +2 -33
- package/target/lib/card/card.element.js +1 -32
- package/target/lib/card/card.stories.js +2 -107
- package/target/lib/card/card.test.js +1 -20
- package/target/lib/checkbox/checkbox-group/checkbox-group.element.js +2 -10
- package/target/lib/checkbox/checkbox.element.js +2 -112
- package/target/lib/checkbox/checkbox.stories.js +2 -43
- package/target/lib/checkbox/checkbox.test.js +4 -28
- package/target/lib/collection/collection-item/collection-item.element.js +2 -40
- package/target/lib/collection/collection-item/collection-item.test.js +1 -3
- package/target/lib/collection/collection.element.js +2 -10
- package/target/lib/collection/collection.stories.js +1 -63
- package/target/lib/collection/collection.test.js +1 -3
- package/target/lib/combo-box/combo-box-option/combo-box-option.element.js +4 -16
- package/target/lib/combo-box/combo-box-option/combo-box-option.element.js.map +1 -1
- package/target/lib/combo-box/combo-box.element.d.ts +8 -0
- package/target/lib/combo-box/combo-box.element.js +73 -64
- package/target/lib/combo-box/combo-box.element.js.map +1 -1
- package/target/lib/combo-box/combo-box.stories.js +1 -213
- package/target/lib/combo-box/combo-box.stories.js.map +1 -1
- package/target/lib/combo-box/combo-box.test.js +58 -15
- package/target/lib/combo-box/combo-box.test.js.map +1 -1
- package/target/lib/config/config.element.js +1 -5
- package/target/lib/config/config.test.js +1 -3
- package/target/lib/description/description.element.js +1 -7
- package/target/lib/description/description.test.js +1 -3
- package/target/lib/file-input/file-input-preview/file-input-preview.element.js +2 -61
- package/target/lib/file-input/file-input-preview/file-input-preview.test.js +5 -25
- package/target/lib/file-input/file-input.element.js +2 -82
- package/target/lib/file-input/file-input.stories.js +1 -13
- package/target/lib/file-input/file-input.test.js +2 -16
- package/target/lib/icon/icon.element.js +1 -14
- package/target/lib/icon/icon.stories.js +2 -13
- package/target/lib/input/input.element.js +2 -73
- package/target/lib/input/input.stories.js +2 -12
- package/target/lib/input/input.test.js +4 -24
- package/target/lib/input-mask/input-mask.element.js +1 -5
- package/target/lib/input-mask/input-mask.stories.js +1 -12
- package/target/lib/input-mask/input-mask.test.js +4 -24
- package/target/lib/link/link.element.js +2 -18
- package/target/lib/modal/modal-close/modal-close.element.js +2 -36
- package/target/lib/modal/modal-close/modal-close.test.js +1 -3
- package/target/lib/modal/modal-heading/modal-heading.element.js +2 -24
- package/target/lib/modal/modal-heading/modal-heading.test.js +1 -3
- package/target/lib/modal/modal.element.js +2 -33
- package/target/lib/modal/modal.stories.js +1 -18
- package/target/lib/modal/modal.test.js +1 -11
- package/target/lib/radio/radio-option/radio-option.element.js +2 -16
- package/target/lib/radio/radio-option/radio-option.test.js +1 -5
- package/target/lib/radio/radio.element.js +2 -98
- package/target/lib/radio/radio.stories.js +1 -26
- package/target/lib/radio/radio.test.js +5 -103
- package/target/lib/range-slider/range-slider.element.js +2 -52
- package/target/lib/range-slider/range-slider.test.js +3 -17
- package/target/lib/select/select-option/select-option.element.js +1 -5
- package/target/lib/select/select.element.js +2 -49
- package/target/lib/select/select.stories.js +1 -10
- package/target/lib/select/select.test.js +6 -64
- package/target/lib/side-nav/side-nav-item/side-nav-item.element.js +2 -67
- package/target/lib/side-nav/side-nav.element.js +1 -8
- package/target/lib/side-nav/side-nav.stories.js +1 -39
- package/target/lib/side-nav/side-nav.test.js +2 -78
- package/target/lib/step-indicator/step/step.element.js +2 -96
- package/target/lib/step-indicator/step-indicator.element.js +1 -9
- package/target/lib/step-indicator/step-indicator.stories.js +1 -21
- package/target/lib/step-indicator/step-indicator.test.js +1 -9
- package/target/lib/summary-box/summary-box.element.js +2 -14
- package/target/lib/summary-box/summary-box.stories.js +1 -1
- package/target/lib/summary-box/summary-box.test.js +1 -3
- package/target/lib/tag/tag.element.js +1 -22
- package/target/lib/tag/tag.stories.js +1 -1
- package/target/lib/tag/tag.test.js +1 -3
- package/target/lib/textarea/textarea.element.js +2 -49
- 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
|
-
|
|
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
|
-
|
|
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
|
|
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),
|
|
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(
|
|
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,
|
|
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
|
-
|
|
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"
|
|
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
|
-
|
|
99
|
-
|
|
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":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"combo-box.element.js","sourceRoot":"","sources":["../../../src/lib/combo-box/combo-box.element.ts"],"names":[],"mappings":"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"}
|