@noctuatech/uswds 0.0.29 → 0.0.31

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 +8 -8
  3. package/src/lib/alert/alert.element.ts +3 -3
  4. package/src/lib/button/button.element.ts +36 -44
  5. package/src/lib/checkbox/checkbox.element.ts +2 -8
  6. package/src/lib/file-input/file-input.element.ts +14 -18
  7. package/src/lib/input/input.element.ts +39 -25
  8. package/src/lib/input/input.stories.ts +7 -1
  9. package/src/lib/link/link.element.ts +6 -16
  10. package/src/lib/select/select.element.ts +2 -6
  11. package/src/lib/textarea/textarea.element.ts +11 -22
  12. package/target/lib/alert/alert.element.js +3 -2
  13. package/target/lib/alert/alert.element.js.map +1 -1
  14. package/target/lib/button/button.element.d.ts +0 -1
  15. package/target/lib/button/button.element.js +34 -44
  16. package/target/lib/button/button.element.js.map +1 -1
  17. package/target/lib/checkbox/checkbox.element.js +2 -6
  18. package/target/lib/checkbox/checkbox.element.js.map +1 -1
  19. package/target/lib/file-input/file-input.element.d.ts +2 -2
  20. package/target/lib/file-input/file-input.element.js +13 -16
  21. package/target/lib/file-input/file-input.element.js.map +1 -1
  22. package/target/lib/input/input.element.d.ts +2 -1
  23. package/target/lib/input/input.element.js +35 -21
  24. package/target/lib/input/input.element.js.map +1 -1
  25. package/target/lib/input/input.stories.js +5 -1
  26. package/target/lib/input/input.stories.js.map +1 -1
  27. package/target/lib/link/link.element.d.ts +1 -1
  28. package/target/lib/link/link.element.js +6 -13
  29. package/target/lib/link/link.element.js.map +1 -1
  30. package/target/lib/select/select.element.js +2 -6
  31. package/target/lib/select/select.element.js.map +1 -1
  32. package/target/lib/textarea/textarea.element.d.ts +1 -1
  33. package/target/lib/textarea/textarea.element.js +11 -17
  34. package/target/lib/textarea/textarea.element.js.map +1 -1
@@ -52,7 +52,7 @@ declare global {
52
52
  margin-bottom: 0.5rem;
53
53
  }
54
54
 
55
- :host([dragenter]) .box {
55
+ :host(.dragenter) .box {
56
56
  border-color: #2491ff;
57
57
  }
58
58
 
@@ -115,23 +115,19 @@ export class USAFileInputElement extends HTMLElement {
115
115
  #preview = query("usa-file-input-preview");
116
116
 
117
117
  attributeChangedCallback() {
118
- const input = this.#input();
119
- input.name = this.name;
120
- input.multiple = this.multiple;
121
- input.accept = this.accept;
118
+ this.#input({
119
+ name: this.name,
120
+ multiple: this.multiple,
121
+ accept: this.accept,
122
+ });
122
123
  }
123
124
 
124
125
  @effect()
125
126
  onChange() {
126
- const input = this.#input();
127
- const box = this.#box();
128
- const preview = this.#preview();
127
+ this.#input({ files: this.files });
128
+ this.#preview({ files: this.files });
129
129
 
130
- if (input.files !== this.files) {
131
- input.files = this.files;
132
- }
133
-
134
- preview.files = this.files;
130
+ const box = this.#box();
135
131
 
136
132
  const formData = new FormData();
137
133
 
@@ -158,18 +154,18 @@ export class USAFileInputElement extends HTMLElement {
158
154
  }
159
155
 
160
156
  @listen("dragenter")
161
- onDragEnter(e: DragEvent) {
162
- this.setAttribute("dragenter", "");
157
+ onDragEnter() {
158
+ this.classList.add("dragenter");
163
159
  }
164
160
 
165
161
  @listen("dragleave")
166
- onDragLeave(e: DragEvent) {
167
- this.removeAttribute("dragenter");
162
+ onDragLeave() {
163
+ this.classList.remove("dragenter");
168
164
  }
169
165
 
170
166
  @listen("drop")
171
167
  onDrop(e: DragEvent) {
172
- this.removeAttribute("dragenter");
168
+ this.classList.remove("dragenter");
173
169
 
174
170
  if (e.dataTransfer?.items) {
175
171
  e.preventDefault();
@@ -11,10 +11,6 @@ declare global {
11
11
 
12
12
  @element({
13
13
  tagName: "usa-input",
14
- shadowDomOpts: {
15
- mode: "open",
16
- delegatesFocus: true,
17
- },
18
14
  shadowDom: [
19
15
  css`
20
16
  * {
@@ -131,8 +127,15 @@ export class USATextInputElement
131
127
 
132
128
  @ready()
133
129
  onReady() {
134
- const input = this.#input();
135
- input.autofocus = this.autofocus;
130
+ this.#input({ autofocus: this.autofocus });
131
+ }
132
+
133
+ attributeChangedCallback() {
134
+ this.#input({
135
+ autocomplete: this.autocomplete,
136
+ placeholder: this.placeholder,
137
+ name: this.name,
138
+ });
136
139
  }
137
140
 
138
141
  connectedCallback() {
@@ -143,7 +146,9 @@ export class USATextInputElement
143
146
  onChange(changes: Changes<this>) {
144
147
  const input = this.#input();
145
148
 
146
- input.value = this.value;
149
+ if (input.value !== this.value) {
150
+ input.value = this.value;
151
+ }
147
152
 
148
153
  if (changes.has("selectionStart")) {
149
154
  input.selectionStart = this.selectionStart;
@@ -156,6 +161,24 @@ export class USATextInputElement
156
161
  this.#syncFormState();
157
162
  }
158
163
 
164
+ @listen("keydown")
165
+ onKeyDown(e: KeyboardEvent) {
166
+ const form = this.#internals.form;
167
+
168
+ if (form) {
169
+ const hasModifier = e.metaKey || e.ctrlKey || e.shiftKey || e.altKey;
170
+
171
+ if (e.key.toUpperCase() === "ENTER" && !hasModifier) {
172
+ // this makes sure that the user has a chance to cancel the event before submitting
173
+ setTimeout(() => {
174
+ if (!e.defaultPrevented && !e.isComposing) {
175
+ this.#submit(form);
176
+ }
177
+ });
178
+ }
179
+ }
180
+ }
181
+
159
182
  @listen("input")
160
183
  onInputChange() {
161
184
  const input = this.#input();
@@ -165,24 +188,6 @@ export class USATextInputElement
165
188
  this.selectionEnd = input.selectionEnd;
166
189
  }
167
190
 
168
- attributeChangedCallback(attr: string) {
169
- const input = this.#input();
170
-
171
- switch (attr) {
172
- case "autocomplete":
173
- input.autocomplete = this.autocomplete;
174
- break;
175
-
176
- case "placeholder":
177
- input.placeholder = this.placeholder;
178
- break;
179
-
180
- case "name":
181
- input.name = this.name;
182
- break;
183
- }
184
- }
185
-
186
191
  #syncFormState() {
187
192
  const input = this.#input();
188
193
 
@@ -194,4 +199,13 @@ export class USATextInputElement
194
199
  this.#internals.setValidity({});
195
200
  }
196
201
  }
202
+
203
+ #submit(form: HTMLFormElement) {
204
+ const btn = document.createElement("button");
205
+ btn.type = "submit";
206
+ form.append(btn);
207
+
208
+ btn.click();
209
+ btn.remove();
210
+ }
197
211
  }
@@ -9,7 +9,13 @@ const meta = {
9
9
  tags: ["autodocs"],
10
10
  render() {
11
11
  return html`
12
- <form>
12
+ <form @submit=${(e: Event) => {
13
+ e.preventDefault();
14
+
15
+ const data = new FormData(e.target as HTMLFormElement);
16
+
17
+ console.log(Array.from(data.entries()));
18
+ }}>
13
19
  <usa-input name="fname" value="Danny" autocomplete="off" detail="pfx">
14
20
  <usa-icon icon="credit_card" slot="detail"></usa-icon>
15
21
 
@@ -46,21 +46,11 @@ export class USALinkElement extends HTMLElement {
46
46
 
47
47
  #anchor = query("a");
48
48
 
49
- attributeChangedCallback(attr: string) {
50
- const anchor = this.#anchor();
51
-
52
- switch (attr) {
53
- case "href":
54
- anchor.href = this.href;
55
- break;
56
-
57
- case "target":
58
- anchor.target = this.target;
59
- break;
60
-
61
- case "title":
62
- anchor.target = this.title;
63
- break;
64
- }
49
+ attributeChangedCallback() {
50
+ this.#anchor({
51
+ href: this.href,
52
+ target: this.target,
53
+ title: this.title,
54
+ });
65
55
  }
66
56
  }
@@ -83,17 +83,13 @@ export class USASelectElement extends HTMLElement implements SelectContainer {
83
83
  #internals = this.attachInternals();
84
84
 
85
85
  connectedCallback() {
86
- const select = this.#select();
87
- select.value = this.value;
88
- select.name = this.name;
86
+ this.#select({ value: this.value, name: this.name });
89
87
 
90
88
  this.#syncFormState();
91
89
  }
92
90
 
93
91
  attributeChangedCallback() {
94
- const select = this.#select();
95
- select.value = this.value;
96
- select.name = this.name;
92
+ this.#select({ value: this.value, name: this.name });
97
93
 
98
94
  this.#syncFormState();
99
95
  }
@@ -43,6 +43,7 @@ declare global {
43
43
  appearance: none;
44
44
  width: 100%;
45
45
  height: 100%;
46
+ resize: none;
46
47
  }
47
48
 
48
49
  textarea:not(:disabled):focus {
@@ -95,36 +96,24 @@ export class USATextareaElement extends HTMLElement {
95
96
 
96
97
  @effect()
97
98
  onChange() {
98
- const input = this.#input();
99
-
100
- input.value = this.value;
99
+ this.#input({
100
+ value: this.value,
101
+ });
101
102
 
102
103
  this.#syncFormState();
103
104
  }
104
105
 
105
106
  @listen("input")
106
107
  onInputChange() {
107
- const input = this.#input();
108
-
109
- this.value = input.value;
108
+ this.value = this.#input().value;
110
109
  }
111
110
 
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
- }
111
+ attributeChangedCallback() {
112
+ this.#input({
113
+ name: this.name,
114
+ placeholder: this.placeholder,
115
+ autocomplete: this.autocomplete,
116
+ });
128
117
  }
129
118
 
130
119
  #syncFormState() {
@@ -112,8 +112,9 @@ let USAAlertElement = (() => {
112
112
  set type(value) { this.#type_accessor_storage = value; }
113
113
  #icon = (__runInitializers(this, _type_extraInitializers), query("usa-icon"));
114
114
  attributeChangedCallback() {
115
- const icon = this.#icon();
116
- icon.icon = USA_ALERT_CONFIG[this.type].icon;
115
+ this.#icon({
116
+ icon: USA_ALERT_CONFIG[this.type].icon,
117
+ });
117
118
  }
118
119
  };
119
120
  return USAAlertElement = _classThis;
@@ -1 +1 @@
1
- {"version":3,"file":"alert.element.js","sourceRoot":"","sources":["../../../src/lib/alert/alert.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAqB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;IA+F1D,eAAe;4BAvF3B,OAAO,CAAC;YACP,OAAO,EAAE,WAAW;YACpB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,cAAc,EAAE,IAAI;aACrB;YACD,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8DF;gBACD,IAAI,CAAA;;;;;;;;;;;;;;KAcH;aACF;SACF,CAAC;;;;sBACmC,WAAW;;;;+BAAnB,SAAQ,WAAW;;;;gCAC7C,IAAI,EAAE;YACP,iKAAS,IAAI,6BAAJ,IAAI,mFAAwB;YAFvC,6KAWC;;;YAXY,uDAAe;;QAE1B,qEAA8B,MAAM,EAAC;QAArC,IAAS,IAAI,0CAAwB;QAArC,IAAS,IAAI,gDAAwB;QAErC,KAAK,sDAAG,KAAK,CAAC,UAAU,CAAC,EAAC;QAE1B,wBAAwB;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC/C,CAAC;;;;SAVU,eAAe"}
1
+ {"version":3,"file":"alert.element.js","sourceRoot":"","sources":["../../../src/lib/alert/alert.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAqB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;IA+F1D,eAAe;4BAvF3B,OAAO,CAAC;YACP,OAAO,EAAE,WAAW;YACpB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,cAAc,EAAE,IAAI;aACrB;YACD,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8DF;gBACD,IAAI,CAAA;;;;;;;;;;;;;;KAcH;aACF;SACF,CAAC;;;;sBACmC,WAAW;;;;+BAAnB,SAAQ,WAAW;;;;gCAC7C,IAAI,EAAE;YACP,iKAAS,IAAI,6BAAJ,IAAI,mFAAwB;YAFvC,6KAWC;;;YAXY,uDAAe;;QAE1B,qEAA8B,MAAM,EAAC;QAArC,IAAS,IAAI,0CAAwB;QAArC,IAAS,IAAI,gDAAwB;QAErC,KAAK,sDAAG,KAAK,CAAC,UAAU,CAAC,EAAC;QAE1B,wBAAwB;YACtB,IAAI,CAAC,KAAK,CAAC;gBACT,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;aACvC,CAAC,CAAC;QACL,CAAC;;;;SAVU,eAAe"}
@@ -14,7 +14,6 @@ export declare class USAButtonElement extends HTMLElement {
14
14
  accessor value: string;
15
15
  accessor tabIndex: number;
16
16
  onReady(): void;
17
- onKeyDown(e: KeyboardEvent): void;
18
17
  onInternalClick(): void;
19
18
  attributeChangedCallback(): void;
20
19
  }
@@ -20,7 +20,7 @@ let USAButtonElement = (() => {
20
20
  display: contents;
21
21
  }
22
22
 
23
- .usa-button {
23
+ button {
24
24
  box-sizing: border-box;
25
25
  font-size: 1.06rem;
26
26
  line-height: 0.9;
@@ -46,114 +46,114 @@ let USAButtonElement = (() => {
46
46
  }
47
47
 
48
48
  @media all and (min-width: 30em) {
49
- .usa-button {
49
+ button {
50
50
  width: auto;
51
51
  }
52
52
  }
53
53
 
54
- .usa-button:visited {
54
+ button:visited {
55
55
  color: white;
56
56
  }
57
57
 
58
- .usa-button:hover {
58
+ button:hover {
59
59
  color: white;
60
60
  background-color: #1a4480;
61
61
  border-bottom: 0;
62
62
  text-decoration: none;
63
63
  }
64
64
 
65
- .usa-button:active {
65
+ button:active {
66
66
  color: white;
67
67
  background-color: #162e51;
68
68
  }
69
69
 
70
- .usa-button:not([disabled]):focus {
70
+ button:not([disabled]):focus {
71
71
  outline-offset: 0.25rem;
72
72
  }
73
73
 
74
- .usa-button:disabled {
74
+ button:disabled {
75
75
  color: #454545;
76
76
  background-color: #c9c9c9;
77
77
  cursor: not-allowed;
78
78
  opacity: 1;
79
79
  }
80
80
 
81
- .usa-button:disabled:hover,
82
- .usa-button:disabled:active,
83
- .usa-button:disabled:focus {
81
+ button:disabled:hover,
82
+ button:disabled:active,
83
+ button:disabled:focus {
84
84
  color: #454545;
85
85
  background-color: #c9c9c9;
86
86
  }
87
87
 
88
- .usa-button:focus {
88
+ button:focus {
89
89
  outline: 0.25rem solid #2491ff;
90
90
  outline-offset: 0;
91
91
  }
92
92
 
93
93
  /** Secondary */
94
- :host([variant="secondary"]) .usa-button {
94
+ :host([variant="secondary"]) button {
95
95
  color: #fff;
96
96
  background-color: #d83933;
97
97
  }
98
98
 
99
- :host([variant="secondary"]) .usa-button:hover {
99
+ :host([variant="secondary"]) button:hover {
100
100
  background-color: #b50909;
101
101
  }
102
102
 
103
- :host([variant="secondary"]) .usa-button:active {
103
+ :host([variant="secondary"]) button:active {
104
104
  background-color: #8b0a03;
105
105
  }
106
106
 
107
107
  /** cool */
108
- :host([variant="cool"]) .usa-button {
108
+ :host([variant="cool"]) button {
109
109
  color: #1b1b1b;
110
110
  background-color: #00bde3;
111
111
  }
112
112
 
113
- :host([variant="cool"]) .usa-button:hover {
113
+ :host([variant="cool"]) button:hover {
114
114
  background-color: #28a0cb;
115
115
  }
116
116
 
117
- :host([variant="cool"]) .usa-button:active {
117
+ :host([variant="cool"]) button:active {
118
118
  color: #fff;
119
119
  background-color: #07648d;
120
120
  }
121
121
 
122
122
  /** warm */
123
- :host([variant="warm"]) .usa-button {
123
+ :host([variant="warm"]) button {
124
124
  color: #1b1b1b;
125
125
  background-color: #fa9441;
126
126
  }
127
127
 
128
- :host([variant="warm"]) .usa-button:hover {
128
+ :host([variant="warm"]) button:hover {
129
129
  color: #fff;
130
130
  background-color: #c05600;
131
131
  }
132
132
 
133
- :host([variant="warm"]) .usa-button:active {
133
+ :host([variant="warm"]) button:active {
134
134
  color: #fff;
135
135
  background-color: #775540;
136
136
  }
137
137
 
138
138
  /** outline */
139
- :host([variant="outline"]) .usa-button {
139
+ :host([variant="outline"]) button {
140
140
  background-color: transparent;
141
141
  box-shadow: inset 0 0 0 2px #005ea2;
142
142
  color: #005ea2;
143
143
  }
144
144
 
145
- :host([variant="outline"]) .usa-button:hover {
145
+ :host([variant="outline"]) button:hover {
146
146
  box-shadow: inset 0 0 0 2px #1a4480;
147
147
  color: #1a4480;
148
148
  }
149
149
 
150
- :host([variant="outline"]) .usa-button:active {
150
+ :host([variant="outline"]) button:active {
151
151
  box-shadow: inset 0 0 0 2px #162e51;
152
152
  color: #162e51;
153
153
  }
154
154
  `,
155
155
  html `
156
- <button class="usa-button" tabindex="0">
156
+ <button tabindex="0">
157
157
  <slot></slot>
158
158
  </button>
159
159
  `,
@@ -177,7 +177,6 @@ let USAButtonElement = (() => {
177
177
  let _value_initializers = [];
178
178
  let _value_extraInitializers = [];
179
179
  let _onReady_decorators;
180
- let _onKeyDown_decorators;
181
180
  let _onInternalClick_decorators;
182
181
  var USAButtonElement = class extends _classSuper {
183
182
  static { _classThis = this; }
@@ -188,14 +187,12 @@ let USAButtonElement = (() => {
188
187
  _variant_decorators = [attr()];
189
188
  _value_decorators = [attr()];
190
189
  _onReady_decorators = [ready()];
191
- _onKeyDown_decorators = [listen("keydown", () => document.body)];
192
190
  _onInternalClick_decorators = [listen("click")];
193
191
  __esDecorate(this, null, _type_decorators, { kind: "accessor", name: "type", static: false, private: false, access: { has: obj => "type" in obj, get: obj => obj.type, set: (obj, value) => { obj.type = value; } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);
194
192
  __esDecorate(this, null, _disabled_decorators, { kind: "accessor", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
195
193
  __esDecorate(this, null, _variant_decorators, { kind: "accessor", name: "variant", static: false, private: false, access: { has: obj => "variant" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
196
194
  __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);
197
195
  __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);
198
- __esDecorate(this, null, _onKeyDown_decorators, { kind: "method", name: "onKeyDown", static: false, private: false, access: { has: obj => "onKeyDown" in obj, get: obj => obj.onKeyDown }, metadata: _metadata }, null, _instanceExtraInitializers);
199
196
  __esDecorate(this, null, _onInternalClick_decorators, { kind: "method", name: "onInternalClick", static: false, private: false, access: { has: obj => "onInternalClick" in obj, get: obj => obj.onInternalClick }, metadata: _metadata }, null, _instanceExtraInitializers);
200
197
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
201
198
  USAButtonElement = _classThis = _classDescriptor.value;
@@ -220,39 +217,32 @@ let USAButtonElement = (() => {
220
217
  #internals = this.attachInternals();
221
218
  #button = query("button");
222
219
  onReady() {
223
- const input = this.#button();
224
- input.autofocus = this.autofocus;
225
- }
226
- onKeyDown(e) {
227
- if (this.type === "submit") {
228
- if (e.key.toUpperCase() === "ENTER") {
229
- this.#handleForm();
230
- }
231
- }
220
+ this.#button({ autofocus: this.autofocus });
232
221
  }
233
222
  onInternalClick() {
234
223
  this.#handleForm();
235
224
  }
236
225
  attributeChangedCallback() {
237
- const button = this.#button();
238
- button.type = this.type;
239
- button.disabled = this.disabled;
226
+ this.#button({ type: this.type, disabled: this.disabled });
240
227
  }
241
228
  #handleForm() {
242
229
  const { form } = this.#internals;
243
230
  if (form) {
244
231
  if (this.type === "submit") {
245
- const btn = document.createElement("button");
246
- btn.type = "submit";
247
- form.append(btn);
248
- btn.click();
249
- btn.remove();
232
+ this.#submit(form);
250
233
  }
251
234
  else if (this.type === "reset") {
252
235
  form.reset();
253
236
  }
254
237
  }
255
238
  }
239
+ #submit(form) {
240
+ const btn = document.createElement("button");
241
+ btn.type = "submit";
242
+ form.append(btn);
243
+ btn.click();
244
+ btn.remove();
245
+ }
256
246
  static {
257
247
  __runInitializers(_classThis, _classExtraInitializers);
258
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"button.element.js","sourceRoot":"","sources":["../../../src/lib/button/button.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"button.element.js","sourceRoot":"","sources":["../../../src/lib/button/button.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAQhF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,SAAS;IACT,WAAW;IACX,MAAM;IACN,MAAM;IACN,SAAS;CACD,CAAC;IA2JE,gBAAgB;4BAvJ5B,OAAO,CAAC;YACP,OAAO,EAAE,YAAY;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,cAAc,EAAE,IAAI;aACrB;YACD,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwIF;gBACD,IAAI,CAAA;;;;KAIH;aACF;SACF,CAAC;;;;sBACoC,WAAW;;;;;;;;;;;;;;;;gCAAnB,SAAQ,WAAW;;;;gCAG9C,IAAI,EAAE;oCAGN,IAAI,EAAE;mCAGN,IAAI,EAAE;iCAGN,IAAI,EAAE;mCAQN,KAAK,EAAE;2CAKP,MAAM,CAAC,OAAO,CAAC;YArBhB,iKAAS,IAAI,6BAAJ,IAAI,mFAA2C;YAGxD,6KAAS,QAAQ,6BAAR,QAAQ,2FAAS;YAG1B,0KAAS,OAAO,6BAAP,OAAO,yFAA4B;YAG5C,oKAAS,KAAK,6BAAL,KAAK,qFAAM;YAQpB,wKAAA,OAAO,6DAEN;YAGD,gMAAA,eAAe,6DAEd;YA5BH,6KAsDC;;;;QArDC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAG7B,0BAJW,mDAAgB,8CAIoB,QAAQ,GAAC;QAAxD,IAAS,IAAI,0CAA2C;QAAxD,IAAS,IAAI,gDAA2C;QAGxD,gIAAoB,KAAK,GAAC;QAA1B,IAAS,QAAQ,8CAAS;QAA1B,IAAS,QAAQ,oDAAS;QAG1B,kIAAkC,SAAS,GAAC;QAA5C,IAAS,OAAO,6CAA4B;QAA5C,IAAS,OAAO,mDAA4B;QAG5C,6HAAiB,EAAE,GAAC;QAApB,IAAS,KAAK,2CAAM;QAApB,IAAS,KAAK,iDAAM;QAEpB,iFAAoB,CAAC,EAAC;QAAtB,IAAS,QAAQ,8CAAK;QAAtB,IAAS,QAAQ,oDAAK;QAEtB,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAG1B,OAAO;YACL,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9C,CAAC;QAGD,eAAe;YACb,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,wBAAwB;YACtB,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,WAAW;YACT,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAEjC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAqB;YAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEjB,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;;YArDU,uDAAgB;;;;;SAAhB,gBAAgB"}
@@ -165,15 +165,11 @@ let USACheckboxElement = (() => {
165
165
  #checkbox = (__runInitializers(this, _tiled_extraInitializers), query("input"));
166
166
  #internals = this.attachInternals();
167
167
  connectedCallback() {
168
- const checkbox = this.#checkbox();
169
- checkbox.checked = this.checked;
170
- checkbox.name = this.name;
168
+ this.#checkbox({ checked: this.checked, name: this.name });
171
169
  this.#syncFormState();
172
170
  }
173
171
  attributeChangedCallback() {
174
- const checkbox = this.#checkbox();
175
- checkbox.checked = this.checked;
176
- checkbox.name = this.name;
172
+ this.#checkbox({ checked: this.checked, name: this.name });
177
173
  this.#syncFormState();
178
174
  }
179
175
  onCheckboxChange() {
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.element.js","sourceRoot":"","sources":["../../../src/lib/checkbox/checkbox.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkbox.element.js","sourceRoot":"","sources":["../../../src/lib/checkbox/checkbox.element.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export declare class USAFileInputElement extends HTMLElement {
13
13
  attributeChangedCallback(): void;
14
14
  onChange(): void;
15
15
  onInputChange(): void;
16
- onDragEnter(e: DragEvent): void;
17
- onDragLeave(e: DragEvent): void;
16
+ onDragEnter(): void;
17
+ onDragLeave(): void;
18
18
  onDrop(e: DragEvent): void;
19
19
  }
@@ -47,7 +47,7 @@ let USAFileInputElement = (() => {
47
47
  margin-bottom: 0.5rem;
48
48
  }
49
49
 
50
- :host([dragenter]) .box {
50
+ :host(.dragenter) .box {
51
51
  border-color: #2491ff;
52
52
  }
53
53
 
@@ -155,19 +155,16 @@ let USAFileInputElement = (() => {
155
155
  #box = query(".box");
156
156
  #preview = query("usa-file-input-preview");
157
157
  attributeChangedCallback() {
158
- const input = this.#input();
159
- input.name = this.name;
160
- input.multiple = this.multiple;
161
- input.accept = this.accept;
158
+ this.#input({
159
+ name: this.name,
160
+ multiple: this.multiple,
161
+ accept: this.accept,
162
+ });
162
163
  }
163
164
  onChange() {
164
- const input = this.#input();
165
+ this.#input({ files: this.files });
166
+ this.#preview({ files: this.files });
165
167
  const box = this.#box();
166
- const preview = this.#preview();
167
- if (input.files !== this.files) {
168
- input.files = this.files;
169
- }
170
- preview.files = this.files;
171
168
  const formData = new FormData();
172
169
  if (this.files?.length) {
173
170
  box.style.display = "none";
@@ -185,14 +182,14 @@ let USAFileInputElement = (() => {
185
182
  this.files = input.files;
186
183
  this.dispatchEvent(new Event("change"));
187
184
  }
188
- onDragEnter(e) {
189
- this.setAttribute("dragenter", "");
185
+ onDragEnter() {
186
+ this.classList.add("dragenter");
190
187
  }
191
- onDragLeave(e) {
192
- this.removeAttribute("dragenter");
188
+ onDragLeave() {
189
+ this.classList.remove("dragenter");
193
190
  }
194
191
  onDrop(e) {
195
- this.removeAttribute("dragenter");
192
+ this.classList.remove("dragenter");
196
193
  if (e.dataTransfer?.items) {
197
194
  e.preventDefault();
198
195
  const data = new DataTransfer();