@noctuatech/uswds 0.0.23 → 0.0.25

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 (34) hide show
  1. package/assets/uswds.min.js +1 -1
  2. package/package.json +5 -5
  3. package/src/lib/define.ts +1 -0
  4. package/src/lib/file-input/file-input-preview/file-input-preview.element.ts +7 -2
  5. package/src/lib/step-indicator/step/step.element.ts +27 -29
  6. package/src/lib/step-indicator/step-indicator.element.ts +1 -1
  7. package/src/lib/step-indicator/step-indicator.stories.ts +9 -6
  8. package/src/lib/textarea/textarea.element.ts +141 -0
  9. package/src/lib/textarea/textarea.stories.ts +24 -0
  10. package/src/lib/textarea/textarea.test.ts +63 -0
  11. package/src/lib.ts +1 -0
  12. package/target/lib/define.d.ts +1 -0
  13. package/target/lib/define.js +1 -0
  14. package/target/lib/define.js.map +1 -1
  15. package/target/lib/file-input/file-input-preview/file-input-preview.element.js +4 -1
  16. package/target/lib/file-input/file-input-preview/file-input-preview.element.js.map +1 -1
  17. package/target/lib/step-indicator/step/step.element.js +27 -29
  18. package/target/lib/step-indicator/step/step.element.js.map +1 -1
  19. package/target/lib/step-indicator/step-indicator.element.js +1 -1
  20. package/target/lib/step-indicator/step-indicator.stories.d.ts +1 -1
  21. package/target/lib/step-indicator/step-indicator.stories.js +9 -6
  22. package/target/lib/step-indicator/step-indicator.stories.js.map +1 -1
  23. package/target/lib/textarea/textarea.element.d.ts +19 -0
  24. package/target/lib/textarea/textarea.element.js +171 -0
  25. package/target/lib/textarea/textarea.element.js.map +1 -0
  26. package/target/lib/textarea/textarea.stories.d.ts +12 -0
  27. package/target/lib/textarea/textarea.stories.js +17 -0
  28. package/target/lib/textarea/textarea.stories.js.map +1 -0
  29. package/target/lib/textarea/textarea.test.d.ts +1 -0
  30. package/target/lib/textarea/textarea.test.js +50 -0
  31. package/target/lib/textarea/textarea.test.js.map +1 -0
  32. package/target/lib.d.ts +1 -0
  33. package/target/lib.js +1 -0
  34. package/target/lib.js.map +1 -1
@@ -0,0 +1,141 @@
1
+ import { attr, css, element, html, listen, query, ready } from "@joist/element";
2
+ import { effect, observe } from "@joist/observable";
3
+
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ "usa-textarea": USATextareaElement;
7
+ }
8
+ }
9
+
10
+ @element({
11
+ tagName: "usa-textarea",
12
+ shadowDom: [
13
+ css`
14
+ * {
15
+ box-sizing: border-box;
16
+ }
17
+
18
+ :host {
19
+ font-size: 1.06rem;
20
+ line-height: 1.3;
21
+ display: block;
22
+ font-weight: 400;
23
+ max-width: 30rem;
24
+ margin-bottom: 1.5rem;
25
+ position: relative;
26
+ height: calc(6lh + .5rem);
27
+ }
28
+
29
+ textarea {
30
+ font-family: inherit;
31
+ font-size: inherit;
32
+ border-radius: 0;
33
+ color: #1b1b1b;
34
+ display: block;
35
+ margin-top: .5rem;
36
+ max-width: 30rem;
37
+ padding: .5rem;
38
+ border-width: 1px;
39
+ border-color: #5c5c5c;
40
+ border-style: solid;
41
+ -webkit-appearance: none;
42
+ -moz-appearance: none;
43
+ appearance: none;
44
+ width: 100%;
45
+ height: 100%;
46
+ }
47
+
48
+ textarea:not(:disabled):focus {
49
+ outline: 0.25rem solid #2491ff;
50
+ outline-offset: 0;
51
+ }
52
+ `,
53
+ html`
54
+ <label>
55
+ <slot></slot>
56
+
57
+ <textarea></textarea>
58
+ </label>
59
+ `,
60
+ ],
61
+ })
62
+ export class USATextareaElement extends HTMLElement {
63
+ static formAssociated = true;
64
+
65
+ @attr()
66
+ accessor name = "";
67
+
68
+ @attr()
69
+ accessor autocomplete: AutoFill = "on";
70
+
71
+ @attr()
72
+ accessor placeholder = "";
73
+
74
+ @attr()
75
+ accessor required = false;
76
+
77
+ @attr({
78
+ reflect: false,
79
+ })
80
+ @observe()
81
+ accessor value = "";
82
+
83
+ #internals = this.attachInternals();
84
+ #input = query("textarea");
85
+
86
+ @ready()
87
+ onReady() {
88
+ const input = this.#input();
89
+ input.autofocus = this.autofocus;
90
+ }
91
+
92
+ connectedCallback() {
93
+ this.#syncFormState();
94
+ }
95
+
96
+ @effect()
97
+ onChange() {
98
+ const input = this.#input();
99
+
100
+ input.value = this.value;
101
+
102
+ this.#syncFormState();
103
+ }
104
+
105
+ @listen("input")
106
+ onInputChange() {
107
+ const input = this.#input();
108
+
109
+ this.value = input.value;
110
+ }
111
+
112
+ attributeChangedCallback(attr: string) {
113
+ const input = this.#input();
114
+
115
+ switch (attr) {
116
+ case "autocomplete":
117
+ input.autocomplete = this.autocomplete;
118
+ break;
119
+
120
+ case "placeholder":
121
+ input.placeholder = this.placeholder;
122
+ break;
123
+
124
+ case "name":
125
+ input.name = this.name;
126
+ break;
127
+ }
128
+ }
129
+
130
+ #syncFormState() {
131
+ const input = this.#input();
132
+
133
+ this.#internals.setFormValue(input.value);
134
+
135
+ if (this.required && !input.value) {
136
+ this.#internals.setValidity({ valueMissing: true }, "Required", input);
137
+ } else {
138
+ this.#internals.setValidity({});
139
+ }
140
+ }
141
+ }
@@ -0,0 +1,24 @@
1
+ import type { Meta, StoryObj } from "@storybook/web-components";
2
+ import { html } from "lit";
3
+
4
+ import type { USATextareaElement } from "./textarea.element.js";
5
+
6
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
+ const meta = {
8
+ title: "usa-textarea",
9
+ tags: ["autodocs"],
10
+ render(args) {
11
+ return html`<usa-textarea>Hello World</usa-textarea>`;
12
+ },
13
+ argTypes: {},
14
+ args: {},
15
+ } satisfies Meta<USATextareaElement>;
16
+
17
+ export default meta;
18
+
19
+ type Story = StoryObj<USATextareaElement>;
20
+
21
+ // More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
22
+ export const Primary: Story = {
23
+ args: {},
24
+ };
@@ -0,0 +1,63 @@
1
+ import "./textarea.element.js";
2
+
3
+ import { fireEvent } from "@noctuatech-uswds/testing";
4
+ import { assert, fixture, html } from "@open-wc/testing";
5
+
6
+ describe("usa-textarea", () => {
7
+ it("should be accessible", async () => {
8
+ const form = await fixture<HTMLFormElement>(html`
9
+ <usa-textarea name="fname" value="Foo">Hello World</usa-textarea>
10
+ `);
11
+
12
+ return assert.isAccessible(form);
13
+ });
14
+
15
+ it("should submit form with default values", async () => {
16
+ const form = await fixture<HTMLFormElement>(html`
17
+ <form>
18
+ <usa-textarea name="fname" value="Foo">Hello World</usa-textarea>
19
+
20
+ <button>Submit</button>
21
+ </form>
22
+ `);
23
+
24
+ const value = new FormData(form);
25
+
26
+ assert.equal(value.get("fname"), "Foo");
27
+ });
28
+
29
+ it("should update form value as input value changed", async () => {
30
+ const form = await fixture<HTMLFormElement>(html`
31
+ <form>
32
+ <usa-textarea name="fname">Hello World</usa-textarea>
33
+
34
+ <button>Submit</button>
35
+ </form>
36
+ `);
37
+
38
+ const input = form.querySelector("usa-textarea");
39
+ const nativeInput = input?.shadowRoot?.querySelector("textarea");
40
+
41
+ if (nativeInput) {
42
+ nativeInput.value = "Bar";
43
+
44
+ await fireEvent.input(nativeInput, { bubbles: true });
45
+ }
46
+
47
+ const value = new FormData(form);
48
+
49
+ assert.equal(value.get("fname"), "Bar");
50
+ });
51
+
52
+ it("should not submit when not valid", async () => {
53
+ const form = await fixture<HTMLFormElement>(html`
54
+ <form>
55
+ <usa-textarea name="fname" required>Hello World</usa-textarea>
56
+
57
+ <button>Submit</button>
58
+ </form>
59
+ `);
60
+
61
+ assert.equal(form.checkValidity(), false);
62
+ });
63
+ });
package/src/lib.ts CHANGED
@@ -29,3 +29,4 @@ export { USACardBodyElement } from "./lib/card/card-body/card-body.element.js";
29
29
  export { USACardFooterElement } from "./lib/card/card-footer/card-footer.element.js";
30
30
  export { USACardImgElement } from "./lib/card/card-media/card-media.element.js";
31
31
  export { USACardGroupElement } from "./lib/card/card-group/card-group.element.js";
32
+ export { USATextareaElement } from "./lib/textarea/textarea.element.js";
@@ -29,3 +29,4 @@ import "./card/card-body/card-body.element.js";
29
29
  import "./card/card-footer/card-footer.element.js";
30
30
  import "./card/card-media/card-media.element.js";
31
31
  import "./card/card-group/card-group.element.js";
32
+ import "./textarea/textarea.element.js";
@@ -29,4 +29,5 @@ import "./card/card-body/card-body.element.js";
29
29
  import "./card/card-footer/card-footer.element.js";
30
30
  import "./card/card-media/card-media.element.js";
31
31
  import "./card/card-group/card-group.element.js";
32
+ import "./textarea/textarea.element.js";
32
33
  //# sourceMappingURL=define.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/lib/define.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,0BAA0B,CAAC;AAClC,OAAO,4BAA4B,CAAC;AACpC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,+DAA+D,CAAC;AACvE,OAAO,wBAAwB,CAAC;AAChC,OAAO,0BAA0B,CAAC;AAClC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,wBAAwB,CAAC;AAChC,OAAO,0BAA0B,CAAC;AAClC,OAAO,8CAA8C,CAAC;AACtD,OAAO,4BAA4B,CAAC;AACpC,OAAO,iDAAiD,CAAC;AACzD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,mDAAmD,CAAC;AAC3D,OAAO,sCAAsC,CAAC;AAC9C,OAAO,4CAA4C,CAAC;AACpD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,0BAA0B,CAAC;AAClC,OAAO,4CAA4C,CAAC;AACpD,OAAO,gDAAgD,CAAC;AACxD,OAAO,wBAAwB,CAAC;AAChC,OAAO,2CAA2C,CAAC;AACnD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,2CAA2C,CAAC;AACnD,OAAO,yCAAyC,CAAC;AACjD,OAAO,yCAAyC,CAAC"}
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/lib/define.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,0BAA0B,CAAC;AAClC,OAAO,4BAA4B,CAAC;AACpC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,+DAA+D,CAAC;AACvE,OAAO,wBAAwB,CAAC;AAChC,OAAO,0BAA0B,CAAC;AAClC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,wBAAwB,CAAC;AAChC,OAAO,0BAA0B,CAAC;AAClC,OAAO,8CAA8C,CAAC;AACtD,OAAO,4BAA4B,CAAC;AACpC,OAAO,iDAAiD,CAAC;AACzD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,mDAAmD,CAAC;AAC3D,OAAO,sCAAsC,CAAC;AAC9C,OAAO,4CAA4C,CAAC;AACpD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,0BAA0B,CAAC;AAClC,OAAO,4CAA4C,CAAC;AACpD,OAAO,gDAAgD,CAAC;AACxD,OAAO,wBAAwB,CAAC;AAChC,OAAO,2CAA2C,CAAC;AACnD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,2CAA2C,CAAC;AACnD,OAAO,yCAAyC,CAAC;AACjD,OAAO,yCAAyC,CAAC;AACjD,OAAO,gCAAgC,CAAC"}
@@ -112,7 +112,10 @@ let USAFileInputPreviewElement = (() => {
112
112
  names.add(file.name);
113
113
  if (!this.#items.has(file.name)) {
114
114
  const clone = template.content.cloneNode(true);
115
- const item = clone.childNodes[1];
115
+ const item = clone.firstElementChild;
116
+ if (!item) {
117
+ throw new Error("SOMETHING HAS GONE VERY WRONG");
118
+ }
116
119
  item.id = file.name;
117
120
  item.append(document.createTextNode(file.name));
118
121
  const img = item.querySelector("img");
@@ -1 +1 @@
1
- {"version":3,"file":"file-input-preview.element.js","sourceRoot":"","sources":["../../../../src/lib/file-input/file-input-preview/file-input-preview.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-input-preview.element.js","sourceRoot":"","sources":["../../../../src/lib/file-input/file-input-preview/file-input-preview.element.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,30 @@ let USAStepIndicatorStepElement = (() => {
13
13
  counter-increment: usa-step-indicator;
14
14
  }
15
15
 
16
+ :host([counter]):after {
17
+ content: counter(usa-step-indicator);
18
+ height: 2.5rem;
19
+ border-radius: 99rem;
20
+ width: 2.5rem;
21
+ background-color: #fff;
22
+ box-shadow:
23
+ inset 0 0 0 0.25rem #919191,
24
+ 0 0 0 0.25rem #fff;
25
+ color: #5c5c5c;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ font-weight: 700;
30
+ left: 0;
31
+ line-height: 0.9;
32
+ padding: calc((2.5rem - 2ex * 0.9) * 0.5);
33
+ position: absolute;
34
+ z-index: 100;
35
+ top: 0;
36
+ transform: translateY(-40%);
37
+ box-sizing: border-box;
38
+ }
39
+
16
40
  :host([state="complete"]) {
17
41
  color: #162e51;
18
42
  }
@@ -49,43 +73,19 @@ let USAStepIndicatorStepElement = (() => {
49
73
  margin-top: 1.5rem;
50
74
  }
51
75
 
52
- :host([counter]) .counter:after {
53
- content: counter(usa-step-indicator);
54
- height: 2.5rem;
55
- border-radius: 99rem;
56
- width: 2.5rem;
57
- background-color: #fff;
58
- box-shadow:
59
- inset 0 0 0 0.25rem #919191,
60
- 0 0 0 0.25rem #fff;
61
- color: #5c5c5c;
62
- display: flex;
63
- align-items: center;
64
- justify-content: center;
65
- font-weight: 700;
66
- left: 0;
67
- line-height: 0.9;
68
- padding: calc((2.5rem - 2ex * 0.9) * 0.5);
69
- position: absolute;
70
- z-index: 100;
71
- top: 0;
72
- transform: translateY(-40%);
73
- box-sizing: border-box;
74
- }
75
-
76
- :host([counter][state="complete"]) .counter::after {
76
+ :host([counter][state="complete"]):after {
77
77
  background-color: #162e51;
78
78
  box-shadow: 0 0 0 0.25rem #fff;
79
79
  color: #fff;
80
80
  }
81
81
 
82
- :host([counter][state="current"]) .counter::after {
82
+ :host([counter][state="current"]):after {
83
83
  background-color: #005ea2;
84
84
  box-shadow: 0 0 0 0.25rem #fff;
85
85
  color: #fff;
86
86
  }
87
87
 
88
- :host([counter="small"]) .counter:after {
88
+ :host([counter="small"]):after {
89
89
  height: 1.5rem;
90
90
  width: 1.5rem;
91
91
  font-size: 0.93rem;
@@ -96,8 +96,6 @@ let USAStepIndicatorStepElement = (() => {
96
96
  }
97
97
  `,
98
98
  html `
99
- <div class="counter" aria-hidden="true"></div>
100
-
101
99
  <div class="label">
102
100
  <slot></slot>
103
101
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"step.element.js","sourceRoot":"","sources":["../../../../src/lib/step-indicator/step/step.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;IA+G1D,2BAA2B;4BAvGvC,OAAO,CAAC;YACP,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0FF;gBACD,IAAI,CAAA;;;;;;KAMH;aACF;SACF,CAAC;;;;sBAC+C,WAAW;;;;;;;;;2CAAnB,SAAQ,WAAW;;;;iCACzD,IAAI,EAAE;gCAGN,IAAI,EAAE;8CAGN,WAAW,CAAC,OAAO,CAAC;YALrB,oKAAS,KAAK,6BAAL,KAAK,qFAAmC;YAGjD,iKAAS,IAAI,6BAAJ,IAAI,mFAAc;YAG3B,yMAAA,kBAAkB,6DAIjB;YAZH,6KAaC;;;YAbY,uDAA2B;;QAEtC,2BAFW,mDAA2B,+CAEQ,EAAE,GAAC;QAAjD,IAAS,KAAK,2CAAmC;QAAjD,IAAS,KAAK,iDAAmC;QAGjD,yHAAgB,UAAU,GAAC;QAA3B,IAAS,IAAI,0CAAc;QAA3B,IAAS,IAAI,gDAAc;QAG3B,kBAAkB;YAChB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAC5B,CAAC;QACH,CAAC;;;;;;;;SAZU,2BAA2B"}
1
+ {"version":3,"file":"step.element.js","sourceRoot":"","sources":["../../../../src/lib/step-indicator/step/step.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;IA6G1D,2BAA2B;4BArGvC,OAAO,CAAC;YACP,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0FF;gBACD,IAAI,CAAA;;;;KAIH;aACF;SACF,CAAC;;;;sBAC+C,WAAW;;;;;;;;;2CAAnB,SAAQ,WAAW;;;;iCACzD,IAAI,EAAE;gCAGN,IAAI,EAAE;8CAGN,WAAW,CAAC,OAAO,CAAC;YALrB,oKAAS,KAAK,6BAAL,KAAK,qFAAmC;YAGjD,iKAAS,IAAI,6BAAJ,IAAI,mFAAc;YAG3B,yMAAA,kBAAkB,6DAIjB;YAZH,6KAaC;;;YAbY,uDAA2B;;QAEtC,2BAFW,mDAA2B,+CAEQ,EAAE,GAAC;QAAjD,IAAS,KAAK,2CAAmC;QAAjD,IAAS,KAAK,iDAAmC;QAGjD,yHAAgB,UAAU,GAAC;QAA3B,IAAS,IAAI,0CAAc;QAA3B,IAAS,IAAI,gDAAc;QAG3B,kBAAkB;YAChB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAC5B,CAAC;QACH,CAAC;;;;;;;;SAZU,2BAA2B"}
@@ -8,7 +8,7 @@ let USAStepIndicatorElement = (() => {
8
8
  :host {
9
9
  display: flex;
10
10
  gap: 2px;
11
- counter-reset: usa-step-indicator;
11
+ counter-reset: usa-step-indicator 0;
12
12
  padding-top: 1rem;
13
13
  margin-bottom: 1rem;
14
14
  }
@@ -9,7 +9,7 @@ declare const meta: {
9
9
  argTypes: {
10
10
  counter: {
11
11
  control: "select";
12
- options: string[];
12
+ options: (string | null)[];
13
13
  };
14
14
  };
15
15
  args: {
@@ -1,4 +1,5 @@
1
1
  import { html } from "lit";
2
+ import { ifDefined } from "lit/directives/if-defined.js";
2
3
  // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
3
4
  const meta = {
4
5
  title: "usa-step-indicator",
@@ -6,28 +7,30 @@ const meta = {
6
7
  render(args) {
7
8
  return html `
8
9
  <usa-step-indicator>
9
- <usa-step state="complete" counter=${args.counter}>
10
+ <usa-step state="complete" counter=${ifDefined(args.counter)}>
10
11
  Personal information
11
12
  </usa-step>
12
13
 
13
- <usa-step state="complete" counter=${args.counter}>
14
+ <usa-step state="complete" counter=${ifDefined(args.counter)}>
14
15
  Household status
15
16
  </usa-step>
16
17
 
17
- <usa-step state="current" counter=${args.counter}>
18
+ <usa-step state="current" counter=${ifDefined(args.counter)}>
18
19
  Supporting documents
19
20
  </usa-step>
20
21
 
21
- <usa-step counter=${args.counter}>Signature</usa-step>
22
+ <usa-step counter=${ifDefined(args.counter)}>Signature</usa-step>
22
23
 
23
- <usa-step counter=${args.counter}>Review and submit</usa-step>
24
+ <usa-step counter=${ifDefined(args.counter)}>
25
+ Review and submit
26
+ </usa-step>
24
27
  </usa-step-indicator>
25
28
  `;
26
29
  },
27
30
  argTypes: {
28
31
  counter: {
29
32
  control: "select",
30
- options: ["on", "small"],
33
+ options: ["on", "small", null],
31
34
  },
32
35
  },
33
36
  args: {
@@ -1 +1 @@
1
- {"version":3,"file":"step-indicator.stories.js","sourceRoot":"","sources":["../../../src/lib/step-indicator/step-indicator.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAI3B,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,oBAAoB;IAC3B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAA;;6CAE8B,IAAI,CAAC,OAAO;;;;6CAIZ,IAAI,CAAC,OAAO;;;;4CAIb,IAAI,CAAC,OAAO;;;;4BAI5B,IAAI,CAAC,OAAO;;4BAEZ,IAAI,CAAC,OAAO;;KAEnC,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;SACzB;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;KACd;CAC4D,CAAC;AAEhE,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,EAAE;CACT,CAAC"}
1
+ {"version":3,"file":"step-indicator.stories.js","sourceRoot":"","sources":["../../../src/lib/step-indicator/step-indicator.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAIzD,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,oBAAoB;IAC3B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAA;;6CAE8B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;;;;6CAIvB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;;;;4CAIxB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;;;;4BAIvC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;;4BAEvB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;;;;KAI9C,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;SAC/B;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;KACd;CAC4D,CAAC;AAEhE,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,EAAE;CACT,CAAC"}
@@ -0,0 +1,19 @@
1
+ declare global {
2
+ interface HTMLElementTagNameMap {
3
+ "usa-textarea": USATextareaElement;
4
+ }
5
+ }
6
+ export declare class USATextareaElement extends HTMLElement {
7
+ #private;
8
+ static formAssociated: boolean;
9
+ accessor name: string;
10
+ accessor autocomplete: AutoFill;
11
+ accessor placeholder: string;
12
+ accessor required: boolean;
13
+ accessor value: string;
14
+ onReady(): void;
15
+ connectedCallback(): void;
16
+ onChange(): void;
17
+ onInputChange(): void;
18
+ attributeChangedCallback(attr: string): void;
19
+ }
@@ -0,0 +1,171 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { attr, css, element, html, listen, query, ready } from "@joist/element";
3
+ import { effect, observe } from "@joist/observable";
4
+ let USATextareaElement = (() => {
5
+ let _classDecorators = [element({
6
+ tagName: "usa-textarea",
7
+ shadowDom: [
8
+ css `
9
+ * {
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ :host {
14
+ font-size: 1.06rem;
15
+ line-height: 1.3;
16
+ display: block;
17
+ font-weight: 400;
18
+ max-width: 30rem;
19
+ margin-bottom: 1.5rem;
20
+ position: relative;
21
+ height: calc(6lh + .5rem);
22
+ }
23
+
24
+ textarea {
25
+ font-family: inherit;
26
+ font-size: inherit;
27
+ border-radius: 0;
28
+ color: #1b1b1b;
29
+ display: block;
30
+ margin-top: .5rem;
31
+ max-width: 30rem;
32
+ padding: .5rem;
33
+ border-width: 1px;
34
+ border-color: #5c5c5c;
35
+ border-style: solid;
36
+ -webkit-appearance: none;
37
+ -moz-appearance: none;
38
+ appearance: none;
39
+ width: 100%;
40
+ height: 100%;
41
+ }
42
+
43
+ textarea:not(:disabled):focus {
44
+ outline: 0.25rem solid #2491ff;
45
+ outline-offset: 0;
46
+ }
47
+ `,
48
+ html `
49
+ <label>
50
+ <slot></slot>
51
+
52
+ <textarea></textarea>
53
+ </label>
54
+ `,
55
+ ],
56
+ })];
57
+ let _classDescriptor;
58
+ let _classExtraInitializers = [];
59
+ let _classThis;
60
+ let _classSuper = HTMLElement;
61
+ let _instanceExtraInitializers = [];
62
+ let _name_decorators;
63
+ let _name_initializers = [];
64
+ let _name_extraInitializers = [];
65
+ let _autocomplete_decorators;
66
+ let _autocomplete_initializers = [];
67
+ let _autocomplete_extraInitializers = [];
68
+ let _placeholder_decorators;
69
+ let _placeholder_initializers = [];
70
+ let _placeholder_extraInitializers = [];
71
+ let _required_decorators;
72
+ let _required_initializers = [];
73
+ let _required_extraInitializers = [];
74
+ let _value_decorators;
75
+ let _value_initializers = [];
76
+ let _value_extraInitializers = [];
77
+ let _onReady_decorators;
78
+ let _onChange_decorators;
79
+ let _onInputChange_decorators;
80
+ var USATextareaElement = class extends _classSuper {
81
+ static { _classThis = this; }
82
+ static {
83
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
84
+ _name_decorators = [attr()];
85
+ _autocomplete_decorators = [attr()];
86
+ _placeholder_decorators = [attr()];
87
+ _required_decorators = [attr()];
88
+ _value_decorators = [attr({
89
+ reflect: false,
90
+ }), observe()];
91
+ _onReady_decorators = [ready()];
92
+ _onChange_decorators = [effect()];
93
+ _onInputChange_decorators = [listen("input")];
94
+ __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);
95
+ __esDecorate(this, null, _autocomplete_decorators, { kind: "accessor", name: "autocomplete", static: false, private: false, access: { has: obj => "autocomplete" in obj, get: obj => obj.autocomplete, set: (obj, value) => { obj.autocomplete = value; } }, metadata: _metadata }, _autocomplete_initializers, _autocomplete_extraInitializers);
96
+ __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);
97
+ __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);
98
+ __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);
99
+ __esDecorate(this, null, _onReady_decorators, { kind: "method", name: "onReady", static: false, private: false, access: { has: obj => "onReady" in obj, get: obj => obj.onReady }, metadata: _metadata }, null, _instanceExtraInitializers);
100
+ __esDecorate(this, null, _onChange_decorators, { kind: "method", name: "onChange", static: false, private: false, access: { has: obj => "onChange" in obj, get: obj => obj.onChange }, metadata: _metadata }, null, _instanceExtraInitializers);
101
+ __esDecorate(this, null, _onInputChange_decorators, { kind: "method", name: "onInputChange", static: false, private: false, access: { has: obj => "onInputChange" in obj, get: obj => obj.onInputChange }, metadata: _metadata }, null, _instanceExtraInitializers);
102
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
103
+ USATextareaElement = _classThis = _classDescriptor.value;
104
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
105
+ }
106
+ static formAssociated = true;
107
+ #name_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _name_initializers, ""));
108
+ get name() { return this.#name_accessor_storage; }
109
+ set name(value) { this.#name_accessor_storage = value; }
110
+ #autocomplete_accessor_storage = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _autocomplete_initializers, "on"));
111
+ get autocomplete() { return this.#autocomplete_accessor_storage; }
112
+ set autocomplete(value) { this.#autocomplete_accessor_storage = value; }
113
+ #placeholder_accessor_storage = (__runInitializers(this, _autocomplete_extraInitializers), __runInitializers(this, _placeholder_initializers, ""));
114
+ get placeholder() { return this.#placeholder_accessor_storage; }
115
+ set placeholder(value) { this.#placeholder_accessor_storage = value; }
116
+ #required_accessor_storage = (__runInitializers(this, _placeholder_extraInitializers), __runInitializers(this, _required_initializers, false));
117
+ get required() { return this.#required_accessor_storage; }
118
+ set required(value) { this.#required_accessor_storage = value; }
119
+ #value_accessor_storage = (__runInitializers(this, _required_extraInitializers), __runInitializers(this, _value_initializers, ""));
120
+ get value() { return this.#value_accessor_storage; }
121
+ set value(value) { this.#value_accessor_storage = value; }
122
+ #internals = (__runInitializers(this, _value_extraInitializers), this.attachInternals());
123
+ #input = query("textarea");
124
+ onReady() {
125
+ const input = this.#input();
126
+ input.autofocus = this.autofocus;
127
+ }
128
+ connectedCallback() {
129
+ this.#syncFormState();
130
+ }
131
+ onChange() {
132
+ const input = this.#input();
133
+ input.value = this.value;
134
+ this.#syncFormState();
135
+ }
136
+ onInputChange() {
137
+ const input = this.#input();
138
+ this.value = input.value;
139
+ }
140
+ attributeChangedCallback(attr) {
141
+ const input = this.#input();
142
+ switch (attr) {
143
+ case "autocomplete":
144
+ input.autocomplete = this.autocomplete;
145
+ break;
146
+ case "placeholder":
147
+ input.placeholder = this.placeholder;
148
+ break;
149
+ case "name":
150
+ input.name = this.name;
151
+ break;
152
+ }
153
+ }
154
+ #syncFormState() {
155
+ const input = this.#input();
156
+ this.#internals.setFormValue(input.value);
157
+ if (this.required && !input.value) {
158
+ this.#internals.setValidity({ valueMissing: true }, "Required", input);
159
+ }
160
+ else {
161
+ this.#internals.setValidity({});
162
+ }
163
+ }
164
+ static {
165
+ __runInitializers(_classThis, _classExtraInitializers);
166
+ }
167
+ };
168
+ return USATextareaElement = _classThis;
169
+ })();
170
+ export { USATextareaElement };
171
+ //# sourceMappingURL=textarea.element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.element.js","sourceRoot":"","sources":["../../../src/lib/textarea/textarea.element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { StoryObj } from "@storybook/web-components";
2
+ import type { USATextareaElement } from "./textarea.element.js";
3
+ declare const meta: {
4
+ title: string;
5
+ tags: string[];
6
+ render(args: USATextareaElement): import("lit-html").TemplateResult<1>;
7
+ argTypes: {};
8
+ args: {};
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<USATextareaElement>;
12
+ export declare const Primary: Story;