@noctuatech/uswds 0.0.22 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/assets/uswds.min.js +1 -1
  2. package/package.json +20 -50
  3. package/src/lib/accordion/accordion.test.ts +16 -16
  4. package/src/lib/alert/alert-types.ts +1 -1
  5. package/src/lib/alert/alert.element.ts +5 -1
  6. package/src/lib/alert/alert.test.ts +2 -2
  7. package/src/lib/button/button.element.ts +1 -8
  8. package/src/lib/button/button.stories.ts +3 -4
  9. package/src/lib/button/button.test.ts +3 -3
  10. package/src/lib/card/card.test.ts +2 -2
  11. package/src/lib/checkbox/checkbox.element.ts +27 -16
  12. package/src/lib/checkbox/checkbox.stories.ts +1 -1
  13. package/src/lib/checkbox/checkbox.test.ts +21 -4
  14. package/src/lib/config/config.element.ts +4 -8
  15. package/src/lib/config/config.test.ts +2 -2
  16. package/src/lib/description/description.test.ts +2 -2
  17. package/src/lib/file-input/file-input-preview/file-input-preview.element.ts +18 -7
  18. package/src/lib/file-input/file-input-preview/file-input-preview.test.ts +4 -4
  19. package/src/lib/file-input/file-input.element.ts +3 -3
  20. package/src/lib/file-input/file-input.test.ts +2 -2
  21. package/src/lib/icon/icon.element.ts +5 -7
  22. package/src/lib/icon/icon.stories.ts +3 -3
  23. package/src/lib/input/input.element.ts +69 -12
  24. package/src/lib/input/input.stories.ts +3 -1
  25. package/src/lib/input/input.test.ts +20 -5
  26. package/src/lib/input-mask/format.ts +1 -1
  27. package/src/lib/input-mask/input-mask.element.ts +7 -9
  28. package/src/lib/input-mask/input-mask.test.ts +17 -13
  29. package/src/lib/modal/modal-close/modal-close.test.ts +2 -2
  30. package/src/lib/modal/modal-heading/modal-heading.test.ts +2 -2
  31. package/src/lib/modal/modal.test.ts +2 -2
  32. package/src/lib/radio/context.ts +9 -0
  33. package/src/lib/radio/radio-option/radio-option.element.ts +45 -26
  34. package/src/lib/radio/radio-option/radio-option.test.ts +1 -1
  35. package/src/lib/radio/radio.element.ts +42 -31
  36. package/src/lib/radio/radio.stories.ts +2 -2
  37. package/src/lib/radio/radio.test.ts +16 -16
  38. package/src/lib/select/context.ts +10 -0
  39. package/src/lib/select/select-option/select-option.element.ts +26 -4
  40. package/src/lib/select/select.element.ts +37 -18
  41. package/src/lib/select/select.stories.ts +1 -1
  42. package/src/lib/select/select.test.ts +32 -13
  43. package/src/lib/services/icon.service.ts +11 -3
  44. package/src/lib/side-nav/side-nav.element.ts +1 -1
  45. package/src/lib/side-nav/side-nav.test.ts +6 -6
  46. package/src/lib/step-indicator/step-indicator.test.ts +2 -2
  47. package/src/lib/summary-box/summary-box.element.ts +0 -7
  48. package/src/lib/summary-box/summary-box.stories.ts +1 -1
  49. package/src/lib/summary-box/summary-box.test.ts +2 -2
  50. package/src/lib/tag/tag.element.ts +0 -7
  51. package/src/lib/tag/tag.test.ts +2 -2
  52. package/target/lib/accordion/accordion.test.js +5 -5
  53. package/target/lib/accordion/accordion.test.js.map +1 -1
  54. package/target/lib/alert/alert-types.d.ts +1 -1
  55. package/target/lib/alert/alert.element.d.ts +1 -1
  56. package/target/lib/alert/alert.element.js +4 -0
  57. package/target/lib/alert/alert.element.js.map +1 -1
  58. package/target/lib/alert/alert.test.js +2 -2
  59. package/target/lib/alert/alert.test.js.map +1 -1
  60. package/target/lib/button/button.element.js +1 -8
  61. package/target/lib/button/button.element.js.map +1 -1
  62. package/target/lib/button/button.stories.js +1 -4
  63. package/target/lib/button/button.stories.js.map +1 -1
  64. package/target/lib/button/button.test.js +2 -2
  65. package/target/lib/button/button.test.js.map +1 -1
  66. package/target/lib/card/card.test.js +1 -1
  67. package/target/lib/card/card.test.js.map +1 -1
  68. package/target/lib/checkbox/checkbox.element.d.ts +1 -0
  69. package/target/lib/checkbox/checkbox.element.js +24 -16
  70. package/target/lib/checkbox/checkbox.element.js.map +1 -1
  71. package/target/lib/checkbox/checkbox.test.js +17 -3
  72. package/target/lib/checkbox/checkbox.test.js.map +1 -1
  73. package/target/lib/config/config.element.d.ts +0 -2
  74. package/target/lib/config/config.element.js +4 -10
  75. package/target/lib/config/config.element.js.map +1 -1
  76. package/target/lib/config/config.test.js +1 -1
  77. package/target/lib/config/config.test.js.map +1 -1
  78. package/target/lib/description/description.test.js +1 -1
  79. package/target/lib/description/description.test.js.map +1 -1
  80. package/target/lib/file-input/file-input-preview/file-input-preview.element.d.ts +1 -0
  81. package/target/lib/file-input/file-input-preview/file-input-preview.element.js +14 -6
  82. package/target/lib/file-input/file-input-preview/file-input-preview.element.js.map +1 -1
  83. package/target/lib/file-input/file-input-preview/file-input-preview.test.js +3 -3
  84. package/target/lib/file-input/file-input-preview/file-input-preview.test.js.map +1 -1
  85. package/target/lib/file-input/file-input.element.js +3 -3
  86. package/target/lib/file-input/file-input.element.js.map +1 -1
  87. package/target/lib/file-input/file-input.test.js +1 -1
  88. package/target/lib/file-input/file-input.test.js.map +1 -1
  89. package/target/lib/icon/icon.element.d.ts +1 -1
  90. package/target/lib/icon/icon.element.js +4 -5
  91. package/target/lib/icon/icon.element.js.map +1 -1
  92. package/target/lib/icon/icon.stories.js.map +1 -1
  93. package/target/lib/input/input.element.d.ts +6 -2
  94. package/target/lib/input/input.element.js +73 -10
  95. package/target/lib/input/input.element.js.map +1 -1
  96. package/target/lib/input/input.stories.js +3 -1
  97. package/target/lib/input/input.stories.js.map +1 -1
  98. package/target/lib/input/input.test.js +16 -4
  99. package/target/lib/input/input.test.js.map +1 -1
  100. package/target/lib/input-mask/format.js +1 -1
  101. package/target/lib/input-mask/input-mask.element.d.ts +1 -1
  102. package/target/lib/input-mask/input-mask.element.js +6 -7
  103. package/target/lib/input-mask/input-mask.element.js.map +1 -1
  104. package/target/lib/input-mask/input-mask.test.js +12 -8
  105. package/target/lib/input-mask/input-mask.test.js.map +1 -1
  106. package/target/lib/modal/modal-close/modal-close.test.js +1 -1
  107. package/target/lib/modal/modal-close/modal-close.test.js.map +1 -1
  108. package/target/lib/modal/modal-heading/modal-heading.test.js +1 -1
  109. package/target/lib/modal/modal-heading/modal-heading.test.js.map +1 -1
  110. package/target/lib/modal/modal.test.js +1 -1
  111. package/target/lib/modal/modal.test.js.map +1 -1
  112. package/target/lib/radio/context.d.ts +7 -0
  113. package/target/lib/radio/context.js +3 -0
  114. package/target/lib/radio/context.js.map +1 -0
  115. package/target/lib/radio/radio-option/radio-option.element.d.ts +1 -5
  116. package/target/lib/radio/radio-option/radio-option.element.js +45 -35
  117. package/target/lib/radio/radio-option/radio-option.element.js.map +1 -1
  118. package/target/lib/radio/radio.element.d.ts +5 -5
  119. package/target/lib/radio/radio.element.js +39 -29
  120. package/target/lib/radio/radio.element.js.map +1 -1
  121. package/target/lib/radio/radio.stories.js.map +1 -1
  122. package/target/lib/radio/radio.test.js +9 -13
  123. package/target/lib/radio/radio.test.js.map +1 -1
  124. package/target/lib/select/context.d.ts +6 -0
  125. package/target/lib/select/context.js +3 -0
  126. package/target/lib/select/context.js.map +1 -0
  127. package/target/lib/select/select-option/select-option.element.d.ts +2 -1
  128. package/target/lib/select/select-option/select-option.element.js +20 -3
  129. package/target/lib/select/select-option/select-option.element.js.map +1 -1
  130. package/target/lib/select/select.element.d.ts +5 -2
  131. package/target/lib/select/select.element.js +33 -18
  132. package/target/lib/select/select.element.js.map +1 -1
  133. package/target/lib/select/select.stories.js +1 -1
  134. package/target/lib/select/select.test.js +24 -8
  135. package/target/lib/select/select.test.js.map +1 -1
  136. package/target/lib/services/icon.service.js +7 -1
  137. package/target/lib/services/icon.service.js.map +1 -1
  138. package/target/lib/side-nav/side-nav.element.js +1 -1
  139. package/target/lib/side-nav/side-nav.element.js.map +1 -1
  140. package/target/lib/side-nav/side-nav.test.js +1 -1
  141. package/target/lib/side-nav/side-nav.test.js.map +1 -1
  142. package/target/lib/step-indicator/step-indicator.test.js +1 -1
  143. package/target/lib/step-indicator/step-indicator.test.js.map +1 -1
  144. package/target/lib/summary-box/summary-box.element.js +0 -7
  145. package/target/lib/summary-box/summary-box.element.js.map +1 -1
  146. package/target/lib/summary-box/summary-box.stories.js +1 -1
  147. package/target/lib/summary-box/summary-box.stories.js.map +1 -1
  148. package/target/lib/summary-box/summary-box.test.js +1 -1
  149. package/target/lib/summary-box/summary-box.test.js.map +1 -1
  150. package/target/lib/tag/tag.element.js +0 -7
  151. package/target/lib/tag/tag.element.js.map +1 -1
  152. package/target/lib/tag/tag.test.js +1 -1
  153. package/target/lib/tag/tag.test.js.map +1 -1
@@ -1,12 +1,13 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { created, injectable } from "@joist/di";
2
+ import { injectable } from "@joist/di";
3
3
  import { attr, css, element, html } from "@joist/element";
4
4
  export class USAConfig {
5
5
  iconPath = "";
6
6
  }
7
7
  let USAConfigElement = (() => {
8
8
  let _classDecorators = [injectable({
9
- name: "USAConfigElement",
9
+ name: "usa-config-ctx",
10
+ provideSelfAs: [USAConfig],
10
11
  }), element({
11
12
  tagName: "usa-config",
12
13
  shadowDom: [
@@ -22,11 +23,9 @@ let USAConfigElement = (() => {
22
23
  let _classExtraInitializers = [];
23
24
  let _classThis;
24
25
  let _classSuper = HTMLElement;
25
- let _instanceExtraInitializers = [];
26
26
  let _iconPath_decorators;
27
27
  let _iconPath_initializers = [];
28
28
  let _iconPath_extraInitializers = [];
29
- let _onInjectorCreated_decorators;
30
29
  var USAConfigElement = class extends _classSuper {
31
30
  static { _classThis = this; }
32
31
  static {
@@ -34,20 +33,15 @@ let USAConfigElement = (() => {
34
33
  _iconPath_decorators = [attr({
35
34
  name: "icon-path",
36
35
  })];
37
- _onInjectorCreated_decorators = [created()];
38
36
  __esDecorate(this, null, _iconPath_decorators, { kind: "accessor", name: "iconPath", static: false, private: false, access: { has: obj => "iconPath" in obj, get: obj => obj.iconPath, set: (obj, value) => { obj.iconPath = value; } }, metadata: _metadata }, _iconPath_initializers, _iconPath_extraInitializers);
39
- __esDecorate(this, null, _onInjectorCreated_decorators, { kind: "method", name: "onInjectorCreated", static: false, private: false, access: { has: obj => "onInjectorCreated" in obj, get: obj => obj.onInjectorCreated }, metadata: _metadata }, null, _instanceExtraInitializers);
40
37
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
41
38
  USAConfigElement = _classThis = _classDescriptor.value;
42
39
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
43
40
  __runInitializers(_classThis, _classExtraInitializers);
44
41
  }
45
- #iconPath_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _iconPath_initializers, "/assets/usa-icons/"));
42
+ #iconPath_accessor_storage = __runInitializers(this, _iconPath_initializers, "/assets/usa-icons/");
46
43
  get iconPath() { return this.#iconPath_accessor_storage; }
47
44
  set iconPath(value) { this.#iconPath_accessor_storage = value; }
48
- onInjectorCreated({ providers }) {
49
- providers.set(USAConfig, { factory: () => this });
50
- }
51
45
  constructor() {
52
46
  super(...arguments);
53
47
  __runInitializers(this, _iconPath_extraInitializers);
@@ -1 +1 @@
1
- {"version":3,"file":"config.element.js","sourceRoot":"","sources":["../../../src/lib/config/config.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAY,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,OAAO,SAAS;IACpB,QAAQ,GAAW,EAAE,CAAC;CACvB;IAgBY,gBAAgB;4BAd5B,UAAU,CAAC;YACV,IAAI,EAAE,kBAAkB;SACzB,CAAC,EACD,OAAO,CAAC;YACP,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;KAIF;gBACD,IAAI,CAAA,eAAe;aACpB;SACF,CAAC;;;;sBACoC,WAAW;;;;;;gCAAnB,SAAQ,WAAW;;;;oCAC9C,IAAI,CAAC;oBACJ,IAAI,EAAE,WAAW;iBAClB,CAAC;6CAGD,OAAO,EAAE;YAFV,6KAAS,QAAQ,6BAAR,QAAQ,2FAAwB;YAGzC,sMAAA,iBAAiB,6DAEhB;YATH,6KAUC;;;YAVY,uDAAgB;;QAI3B,8BAJW,mDAAgB,kDAIP,oBAAoB,GAAC;QAAzC,IAAS,QAAQ,8CAAwB;QAAzC,IAAS,QAAQ,oDAAwB;QAGzC,iBAAiB,CAAC,EAAE,SAAS,EAAY;YACvC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;;;;;;;;SATU,gBAAgB"}
1
+ {"version":3,"file":"config.element.js","sourceRoot":"","sources":["../../../src/lib/config/config.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,OAAO,SAAS;IACpB,QAAQ,GAAG,EAAE,CAAC;CACf;IAiBY,gBAAgB;4BAf5B,UAAU,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,aAAa,EAAE,CAAC,SAAS,CAAC;SAC3B,CAAC,EACD,OAAO,CAAC;YACP,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;KAIF;gBACD,IAAI,CAAA,eAAe;aACpB;SACF,CAAC;;;;sBACoC,WAAW;;;;gCAAnB,SAAQ,WAAW;;;;oCAC9C,IAAI,CAAC;oBACJ,IAAI,EAAE,WAAW;iBAClB,CAAC;YACF,6KAAS,QAAQ,6BAAR,QAAQ,2FAAwB;YAJ3C,6KAKC;;;YALY,uDAAgB;;QAI3B,6EAAoB,oBAAoB,EAAC;QAAzC,IAAS,QAAQ,8CAAwB;QAAzC,IAAS,QAAQ,oDAAwB;;;;;;;;SAJ9B,gBAAgB"}
@@ -1,5 +1,5 @@
1
1
  import "./config.element.js";
2
- import { fixture, html, assert } from "@open-wc/testing";
2
+ import { assert, fixture, html } from "@open-wc/testing";
3
3
  describe("usa-config", () => {
4
4
  it("should be accessible", async () => {
5
5
  const config = await fixture(html `
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../src/lib/config/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAmB,IAAI,CAAA;;KAElD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../src/lib/config/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAmB,IAAI,CAAA;;KAElD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import "./description.element.js";
2
- import { fixture, html, assert } from "@open-wc/testing";
2
+ import { assert, fixture, html } from "@open-wc/testing";
3
3
  describe("usa-description", () => {
4
4
  it("should be accessible", async () => {
5
5
  const description = await fixture(html `
@@ -1 +1 @@
1
- {"version":3,"file":"description.test.js","sourceRoot":"","sources":["../../../src/lib/description/description.test.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAwB,IAAI,CAAA;;KAE5D,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"description.test.js","sourceRoot":"","sources":["../../../src/lib/description/description.test.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAwB,IAAI,CAAA;;KAE5D,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -7,5 +7,6 @@ export declare class USAFileInputPreviewElement extends HTMLElement {
7
7
  #private;
8
8
  accessor files: FileList | null;
9
9
  connectedCallback(): void;
10
+ get shadow(): ShadowRoot;
10
11
  onChange(): void;
11
12
  }
@@ -97,12 +97,18 @@ let USAFileInputPreviewElement = (() => {
97
97
  connectedCallback() {
98
98
  this.onChange();
99
99
  }
100
+ get shadow() {
101
+ if (!this.shadowRoot) {
102
+ throw new Error("no shadow root");
103
+ }
104
+ return this.shadowRoot;
105
+ }
100
106
  onChange() {
101
107
  const template = this.#template();
102
- if (this.files && this.files.length) {
108
+ if (this.files?.length) {
103
109
  this.hidden = false;
104
- let names = new Set();
105
- for (let file of this.files) {
110
+ const names = new Set();
111
+ for (const file of this.files) {
106
112
  names.add(file.name);
107
113
  if (!this.#items.has(file.name)) {
108
114
  const clone = template.content.cloneNode(true);
@@ -110,12 +116,14 @@ let USAFileInputPreviewElement = (() => {
110
116
  item.id = file.name;
111
117
  item.append(document.createTextNode(file.name));
112
118
  const img = item.querySelector("img");
113
- img.src = URL.createObjectURL(file);
114
- this.shadowRoot.append(item);
119
+ if (img) {
120
+ img.src = URL.createObjectURL(file);
121
+ }
122
+ this.shadow.append(item);
115
123
  this.#items.set(file.name, item);
116
124
  }
117
125
  }
118
- for (let [name, item] of this.#items) {
126
+ for (const [name, item] of this.#items) {
119
127
  if (!names.has(name)) {
120
128
  item.remove();
121
129
  this.#items.delete(name);
@@ -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":";AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;IAyEvC,0BAA0B;4BAjEtC,OAAO,CAAC;YACP,OAAO,EAAE,wBAAwB;YACjC,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkDF;gBACD,IAAI,CAAA;;;;;;;;KAQH;aACF;SACF,CAAC;;;;sBAC8C,WAAW;;;;;;0CAAnB,SAAQ,WAAW;;;;iCACxD,OAAO,EAAE;oCAUT,MAAM,EAAE;YATT,oKAAS,KAAK,6BAAL,KAAK,qFAAyB;YAUvC,2KAAA,QAAQ,6DAoCP;YAhDH,6KAiDC;;;YAjDY,uDAA0B;;QAErC,2BAFW,mDAA0B,+CAEH,IAAI,GAAC;QAAvC,IAAS,KAAK,2CAAyB;QAAvC,IAAS,KAAK,iDAAyB;QAEvC,MAAM,uDAAG,IAAI,GAAG,EAAmB,EAAC;QACpC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAE9B,iBAAiB;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAGD,QAAQ;YACN,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAElC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBAEpB,IAAI,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;gBAE9B,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAErB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAE/C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAY,CAAC;wBAC5C,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;wBACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAE,CAAC;wBACvC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;wBAEpC,IAAI,CAAC,UAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAE9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;gBAED,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACrB,IAAI,CAAC,MAAM,EAAE,CAAC;wBACd,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;;;;SAhDU,0BAA0B"}
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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"}
@@ -30,7 +30,7 @@ describe("usa-file-input-preview", () => {
30
30
  Selected file <usa-link>Change file</usa-link>
31
31
  </usa-file-input-preview>
32
32
  `);
33
- const previewItems = Array.from(shadowRoot.querySelectorAll(".preview-item")).map((item) => item.textContent?.trim());
33
+ const previewItems = Array.from(shadowRoot?.querySelectorAll(".preview-item") ?? []).map((item) => item.textContent?.trim());
34
34
  assert.deepEqual(previewItems, ["image1.jpg", "image2.jpg"]);
35
35
  });
36
36
  it("should display fewer previews when the number of items decreases", async () => {
@@ -47,7 +47,7 @@ describe("usa-file-input-preview", () => {
47
47
  fileInputPreview.files = data2.files;
48
48
  // need this to wait for effects to resolve
49
49
  await Promise.resolve();
50
- const previewItems = Array.from(fileInputPreview.shadowRoot.querySelectorAll(".preview-item")).map((item) => item.textContent?.trim());
50
+ const previewItems = Array.from(fileInputPreview.shadowRoot?.querySelectorAll(".preview-item") ?? []).map((item) => item.textContent?.trim());
51
51
  assert.deepEqual(previewItems, ["image1.jpg"]);
52
52
  });
53
53
  it("should create preview images for each file", async () => {
@@ -59,7 +59,7 @@ describe("usa-file-input-preview", () => {
59
59
  Selected file <usa-link>Change file</usa-link>
60
60
  </usa-file-input-preview>
61
61
  `);
62
- const [first, second] = Array.from(shadowRoot.querySelectorAll(".preview-item img")).map((item) => item.src.substring(29));
62
+ const [first, second] = Array.from(shadowRoot?.querySelectorAll(".preview-item img") ?? []).map((item) => item.src.substring(29));
63
63
  // we are just testing that the two hashes are in fact different
64
64
  assert.isFalse(first === second);
65
65
  });
@@ -1 +1 @@
1
- {"version":3,"file":"file-input-preview.test.js","sourceRoot":"","sources":["../../../../src/lib/file-input/file-input-preview/file-input-preview.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-input-preview.test.js","sourceRoot":"","sources":["../../../../src/lib/file-input/file-input-preview/file-input-preview.test.ts"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAC;AACzC,OAAO,4BAA4B,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAA6B,IAAI,CAAA;;;;KAItE,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAE3C,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAA6B,IAAI,CAAA;uCACpC,IAAI,CAAC,KAAK;;;KAG5C,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAE3C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAA6B,IAAI,CAAA;uCAClC,IAAI,CAAC,KAAK;;;KAG5C,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,UAAU,EAAE,gBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,CACpD,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAE3C,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAA6B,IAAI,CAAA;uCACpC,IAAI,CAAC,KAAK;;;KAG5C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAE5C,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAErC,2CAA2C;QAC3C,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,CACrE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QAEnD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAA6B,IAAI,CAAA;uCAClC,IAAI,CAAC,KAAK;;;KAG5C,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAChC,UAAU,EAAE,gBAAgB,CAAmB,mBAAmB,CAAC,IAAI,EAAE,CAC1E,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAExC,gEAAgE;QAChE,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -69,7 +69,7 @@ let USAFileInputElement = (() => {
69
69
  <slot class="label"></slot>
70
70
 
71
71
  <div class="container">
72
- <input type="file" />
72
+ <input type="file" tabindex="0"/>
73
73
 
74
74
  <div class="box">
75
75
  <slot name="description">
@@ -160,9 +160,9 @@ let USAFileInputElement = (() => {
160
160
  const preview = this.#preview();
161
161
  preview.files = input.files;
162
162
  const formData = new FormData();
163
- if (input.files && input.files.length) {
163
+ if (input.files?.length) {
164
164
  box.style.display = "none";
165
- for (let file of input.files) {
165
+ for (const file of input.files) {
166
166
  formData.append(this.name, file);
167
167
  }
168
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file-input.element.js","sourceRoot":"","sources":["../../../src/lib/file-input/file-input.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-input.element.js","sourceRoot":"","sources":["../../../src/lib/file-input/file-input.element.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import "./file-input.element.js";
2
- import { fixture, html, assert } from "@open-wc/testing";
2
+ import { assert, fixture, html } from "@open-wc/testing";
3
3
  describe("usa-file-input", () => {
4
4
  it("should be accessible", async () => {
5
5
  const fileInput = await fixture(html `
@@ -1 +1 @@
1
- {"version":3,"file":"file-input.test.js","sourceRoot":"","sources":["../../../src/lib/file-input/file-input.test.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAsB,IAAI,CAAA;;KAExD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;+CAEL,IAAI,CAAC,KAAK;;;;;;;;;;KAUpD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvD,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"file-input.test.js","sourceRoot":"","sources":["../../../src/lib/file-input/file-input.test.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAsB,IAAI,CAAA;;KAExD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;+CAEL,IAAI,CAAC,KAAK;;;;;;;;;;KAUpD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvD,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { USAIcon } from "./icon-types.js";
1
+ import type { USAIcon } from "./icon-types.js";
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  "usa-icon": USAIconElement;
@@ -1,6 +1,6 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { attr, css, element } from "@joist/element";
3
2
  import { inject, injectable, injected } from "@joist/di";
3
+ import { attr, css, element } from "@joist/element";
4
4
  import { IconService } from "../services/icon.service.js";
5
5
  let USAIconElement = (() => {
6
6
  let _classDecorators = [element({
@@ -50,9 +50,6 @@ let USAIconElement = (() => {
50
50
  ariaHidden = (__runInitializers(this, _icon_extraInitializers), "true");
51
51
  #icon = inject(IconService);
52
52
  #injected = false;
53
- get #shadow() {
54
- return this.shadowRoot;
55
- }
56
53
  onInjected() {
57
54
  this.#injected = true;
58
55
  this.#updateIcon();
@@ -64,7 +61,9 @@ let USAIconElement = (() => {
64
61
  }
65
62
  async #updateIcon() {
66
63
  const icon = this.#icon();
67
- this.#shadow.append(await icon.getIcon(this.icon));
64
+ if (this.shadowRoot) {
65
+ this.shadowRoot.append(await icon.getIcon(this.icon));
66
+ }
68
67
  }
69
68
  };
70
69
  return USAIconElement = _classThis;
@@ -1 +1 @@
1
- {"version":3,"file":"icon.element.js","sourceRoot":"","sources":["../../../src/lib/icon/icon.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;IA4B7C,cAAc;4BApB1B,OAAO,CAAC;YACP,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;KAaF;aACF;SACF,CAAC,EACD,UAAU,EAAE;;;;sBACuB,WAAW;;;;;;8BAAnB,SAAQ,WAAW;;;;gCAC5C,IAAI,EAAE;sCAYN,QAAQ,EAAE;YAXX,iKAAS,IAAI,6BAAJ,IAAI,mFAAgC;YAY7C,iLAAA,UAAU,6DAGT;YAjBH,6KA8BC;;;YA9BY,uDAAc;;QAEzB,0BAFW,mDAAc,8CAEA,mBAAmB,GAAC;QAA7C,IAAS,IAAI,0CAAgC;QAA7C,IAAS,IAAI,gDAAgC;QAE7C,UAAU,sDAAkB,MAAM,EAAC;QAEnC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5B,SAAS,GAAG,KAAK,CAAC;QAElB,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,UAAW,CAAC;QAC1B,CAAC;QAGD,UAAU;YACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,wBAAwB;YACtB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,WAAW;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;;;;SA7BU,cAAc"}
1
+ {"version":3,"file":"icon.element.js","sourceRoot":"","sources":["../../../src/lib/icon/icon.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;IA6B7C,cAAc;4BApB1B,OAAO,CAAC;YACP,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;KAaF;aACF;SACF,CAAC,EACD,UAAU,EAAE;;;;sBACuB,WAAW;;;;;;8BAAnB,SAAQ,WAAW;;;;gCAC5C,IAAI,EAAE;sCAQN,QAAQ,EAAE;YAPX,iKAAS,IAAI,6BAAJ,IAAI,mFAAgC;YAQ7C,iLAAA,UAAU,6DAGT;YAbH,6KA4BC;;;YA5BY,uDAAc;;QAEzB,0BAFW,mDAAc,8CAEA,mBAAmB,GAAC;QAA7C,IAAS,IAAI,0CAAgC;QAA7C,IAAS,IAAI,gDAAgC;QAE7C,UAAU,sDAAkB,MAAM,EAAC;QAEnC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5B,SAAS,GAAG,KAAK,CAAC;QAGlB,UAAU;YACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,wBAAwB;YACtB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,WAAW;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE1B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;;;;SA3BU,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"icon.stories.js","sourceRoot":"","sources":["../../../src/lib/icon/icon.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,EAAE;IACR,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAA,kBAAkB,IAAI,CAAC,IAAI,cAAc,CAAC;IACvD,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CACsB,CAAC;AAEjC,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM;QACJ,KAAK,UAAU,QAAQ,CAAC,IAAY;YAClC,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CACjC,kBAAkB,IAAI,cAAc,CACrC,CAAC;gBACF,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;QACP,IAAI,CAAA,GAAG,UAAU,CAAC,GAAG,CACrB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;;qBAED,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;;;6BAGZ,IAAI;;cAEnB,IAAI;;SAET,CACF,EAAE;WACE,CAAC;IACV,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"icon.stories.js","sourceRoot":"","sources":["../../../src/lib/icon/icon.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,EAAE;IACR,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAA,kBAAkB,IAAI,CAAC,IAAI,cAAc,CAAC;IACvD,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CACsB,CAAC;AAEjC,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM;QACJ,KAAK,UAAU,QAAQ,CAAC,IAAY;YAClC,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CACjC,kBAAkB,IAAI,cAAc,CACrC,CAAC;gBACF,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;QACP,IAAI,CAAA,GAAG,UAAU,CAAC,GAAG,CACrB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;;qBAED,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;;;6BAGZ,IAAI;;cAEnB,IAAI;;SAET,CACF,EAAE;WACE,CAAC;IACV,CAAC;CACF,CAAC"}
@@ -1,4 +1,5 @@
1
- import { MaskableElement } from "../input-mask/maskable.element.js";
1
+ import { type Changes } from "@joist/observable";
2
+ import type { MaskableElement } from "../input-mask/maskable.element.js";
2
3
  declare global {
3
4
  interface HTMLElementTagNameMap {
4
5
  "usa-input": USATextInputElement;
@@ -10,11 +11,14 @@ export declare class USATextInputElement extends HTMLElement implements Maskable
10
11
  accessor name: string;
11
12
  accessor autocomplete: AutoFill;
12
13
  accessor placeholder: string;
14
+ accessor required: boolean;
15
+ accessor detail: "pfx" | "sfx" | "";
13
16
  accessor value: string;
14
17
  accessor selectionStart: number | null;
15
18
  accessor selectionEnd: number | null;
16
19
  onReady(): void;
17
- onChange(): void;
20
+ connectedCallback(): void;
21
+ onChange(changes: Changes<this>): void;
18
22
  onInputChange(): void;
19
23
  attributeChangedCallback(attr: string): void;
20
24
  }
@@ -21,6 +21,7 @@ let USATextInputElement = (() => {
21
21
  font-weight: 400;
22
22
  max-width: 30rem;
23
23
  margin-bottom: 1.5rem;
24
+ position: relative;
24
25
  }
25
26
 
26
27
  input {
@@ -42,12 +43,43 @@ let USATextInputElement = (() => {
42
43
  outline: 0.25rem solid #2491ff;
43
44
  outline-offset: 0;
44
45
  }
46
+
47
+ slot[name="detail"]::slotted(*) {
48
+ color: #757575;
49
+ }
50
+
51
+ slot[name="detail"]::slotted(usa-icon) {
52
+ width: 1.5rem;
53
+ height: 1.5rem;
54
+ }
55
+
56
+ slot[name="detail"] {
57
+ display: block;
58
+ position: absolute;
59
+ bottom: 0.21rem;
60
+ left: 0.5rem;
61
+ }
62
+
63
+ :host([detail="pfx"]) input {
64
+ padding-left: 2.5rem;
65
+ }
66
+
67
+ :host([detail="sfx"]) input {
68
+ padding-right: 2.5rem;
69
+ }
70
+
71
+ :host([detail="sfx"]) slot[name="detail"] {
72
+ right: 0.5rem;
73
+ left: auto;
74
+ }
45
75
  `,
46
76
  html `
47
77
  <label>
78
+ <slot name="detail"></slot>
79
+
48
80
  <slot></slot>
49
81
 
50
- <input />
82
+ <input tabindex="0" />
51
83
  </label>
52
84
  `,
53
85
  ],
@@ -66,6 +98,12 @@ let USATextInputElement = (() => {
66
98
  let _placeholder_decorators;
67
99
  let _placeholder_initializers = [];
68
100
  let _placeholder_extraInitializers = [];
101
+ let _required_decorators;
102
+ let _required_initializers = [];
103
+ let _required_extraInitializers = [];
104
+ let _detail_decorators;
105
+ let _detail_initializers = [];
106
+ let _detail_extraInitializers = [];
69
107
  let _value_decorators;
70
108
  let _value_initializers = [];
71
109
  let _value_extraInitializers = [];
@@ -85,6 +123,10 @@ let USATextInputElement = (() => {
85
123
  _name_decorators = [attr()];
86
124
  _autocomplete_decorators = [attr()];
87
125
  _placeholder_decorators = [attr()];
126
+ _required_decorators = [attr()];
127
+ _detail_decorators = [attr({
128
+ observed: false,
129
+ })];
88
130
  _value_decorators = [attr({
89
131
  reflect: false,
90
132
  }), observe()];
@@ -96,6 +138,8 @@ let USATextInputElement = (() => {
96
138
  __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);
97
139
  __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);
98
140
  __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);
141
+ __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);
142
+ __esDecorate(this, null, _detail_decorators, { kind: "accessor", name: "detail", static: false, private: false, access: { has: obj => "detail" in obj, get: obj => obj.detail, set: (obj, value) => { obj.detail = value; } }, metadata: _metadata }, _detail_initializers, _detail_extraInitializers);
99
143
  __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);
100
144
  __esDecorate(this, null, _selectionStart_decorators, { kind: "accessor", name: "selectionStart", static: false, private: false, access: { has: obj => "selectionStart" in obj, get: obj => obj.selectionStart, set: (obj, value) => { obj.selectionStart = value; } }, metadata: _metadata }, _selectionStart_initializers, _selectionStart_extraInitializers);
101
145
  __esDecorate(this, null, _selectionEnd_decorators, { kind: "accessor", name: "selectionEnd", static: false, private: false, access: { has: obj => "selectionEnd" in obj, get: obj => obj.selectionEnd, set: (obj, value) => { obj.selectionEnd = value; } }, metadata: _metadata }, _selectionEnd_initializers, _selectionEnd_extraInitializers);
@@ -116,7 +160,13 @@ let USATextInputElement = (() => {
116
160
  #placeholder_accessor_storage = (__runInitializers(this, _autocomplete_extraInitializers), __runInitializers(this, _placeholder_initializers, ""));
117
161
  get placeholder() { return this.#placeholder_accessor_storage; }
118
162
  set placeholder(value) { this.#placeholder_accessor_storage = value; }
119
- #value_accessor_storage = (__runInitializers(this, _placeholder_extraInitializers), __runInitializers(this, _value_initializers, ""));
163
+ #required_accessor_storage = (__runInitializers(this, _placeholder_extraInitializers), __runInitializers(this, _required_initializers, false));
164
+ get required() { return this.#required_accessor_storage; }
165
+ set required(value) { this.#required_accessor_storage = value; }
166
+ #detail_accessor_storage = (__runInitializers(this, _required_extraInitializers), __runInitializers(this, _detail_initializers, ""));
167
+ get detail() { return this.#detail_accessor_storage; }
168
+ set detail(value) { this.#detail_accessor_storage = value; }
169
+ #value_accessor_storage = (__runInitializers(this, _detail_extraInitializers), __runInitializers(this, _value_initializers, ""));
120
170
  get value() { return this.#value_accessor_storage; }
121
171
  set value(value) { this.#value_accessor_storage = value; }
122
172
  #selectionStart_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _selectionStart_initializers, null));
@@ -131,18 +181,25 @@ let USATextInputElement = (() => {
131
181
  const input = this.#input();
132
182
  input.autofocus = this.autofocus;
133
183
  }
134
- onChange() {
184
+ connectedCallback() {
185
+ this.#syncFormState();
186
+ }
187
+ onChange(changes) {
135
188
  const input = this.#input();
136
189
  input.value = this.value;
137
- input.selectionStart = this.selectionStart;
138
- input.selectionEnd = this.selectionEnd;
190
+ if (changes.has("selectionStart")) {
191
+ input.selectionStart = this.selectionStart;
192
+ }
193
+ if (changes.has("selectionEnd")) {
194
+ input.selectionEnd = this.selectionEnd;
195
+ }
196
+ this.#syncFormState();
139
197
  }
140
198
  onInputChange() {
141
199
  const input = this.#input();
142
200
  this.value = input.value;
143
201
  this.selectionStart = input.selectionStart;
144
202
  this.selectionEnd = input.selectionEnd;
145
- this.#internals.setFormValue(input.value);
146
203
  }
147
204
  attributeChangedCallback(attr) {
148
205
  const input = this.#input();
@@ -156,10 +213,16 @@ let USATextInputElement = (() => {
156
213
  case "name":
157
214
  input.name = this.name;
158
215
  break;
159
- case "value":
160
- input.value = this.value;
161
- this.#internals.setFormValue(this.value);
162
- break;
216
+ }
217
+ }
218
+ #syncFormState() {
219
+ const input = this.#input();
220
+ this.#internals.setFormValue(input.value);
221
+ if (this.required && !input.value) {
222
+ this.#internals.setValidity({ valueMissing: true }, "Required", input);
223
+ }
224
+ else {
225
+ this.#internals.setValidity({});
163
226
  }
164
227
  }
165
228
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"input.element.js","sourceRoot":"","sources":["../../../src/lib/input/input.element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.element.js","sourceRoot":"","sources":["../../../src/lib/input/input.element.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@ const meta = {
6
6
  render() {
7
7
  return html `
8
8
  <form>
9
- <usa-input name="fname" value="Danny" autocomplete="off">
9
+ <usa-input name="fname" value="Danny" autocomplete="off" detail="pfx">
10
+ <usa-icon icon="credit_card" slot="detail"></usa-icon>
11
+
10
12
  First name
11
13
  </usa-input>
12
14
 
@@ -1 +1 @@
1
- {"version":3,"file":"input.stories.js","sourceRoot":"","sources":["../../../src/lib/input/input.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAI3B,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM;QACJ,OAAO,IAAI,CAAA;;;;;;;;KAQV,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CAC2B,CAAC;AAEtC,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"input.stories.js","sourceRoot":"","sources":["../../../src/lib/input/input.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAI3B,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM;QACJ,OAAO,IAAI,CAAA;;;;;;;;;;KAUV,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CAC2B,CAAC;AAEtC,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import "./input.element.js";
2
- import { fixture, html, assert } from "@open-wc/testing";
3
2
  import { fireEvent } from "@noctuatech-uswds/testing";
3
+ import { assert, fixture, html } from "@open-wc/testing";
4
4
  describe("usa-input", () => {
5
5
  it("should be accessible", async () => {
6
6
  const form = await fixture(html `
@@ -28,11 +28,23 @@ describe("usa-input", () => {
28
28
  </form>
29
29
  `);
30
30
  const input = form.querySelector("usa-input");
31
- const nativeInput = input.shadowRoot.querySelector("input");
32
- nativeInput.value = "Bar";
33
- await fireEvent.input(nativeInput, { bubbles: true });
31
+ const nativeInput = input?.shadowRoot?.querySelector("input");
32
+ if (nativeInput) {
33
+ nativeInput.value = "Bar";
34
+ await fireEvent.input(nativeInput, { bubbles: true });
35
+ }
34
36
  const value = new FormData(form);
35
37
  assert.equal(value.get("fname"), "Bar");
36
38
  });
39
+ it("should not submit when not valid", async () => {
40
+ const form = await fixture(html `
41
+ <form>
42
+ <usa-input name="fname" required>Hello World</usa-input>
43
+
44
+ <button>Submit</button>
45
+ </form>
46
+ `);
47
+ assert.equal(form.checkValidity(), false);
48
+ });
37
49
  });
38
50
  //# sourceMappingURL=input.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.test.js","sourceRoot":"","sources":["../../../src/lib/input/input.test.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;KAE/C,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;KAM/C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;KAM/C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC;QAC9D,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;QAE1B,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"input.test.js","sourceRoot":"","sources":["../../../src/lib/input/input.test.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;KAE/C,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;KAM/C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;KAM/C,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAE9D,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;YAE1B,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAkB,IAAI,CAAA;;;;;;KAM/C,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -14,7 +14,7 @@ export function format(value, pattern) {
14
14
  const chars = raw.split("");
15
15
  let count = 0;
16
16
  let formatted = "";
17
- for (var i = 0; i < pattern.length; i++) {
17
+ for (let i = 0; i < pattern.length; i++) {
18
18
  const patternChar = pattern[i];
19
19
  const char = chars[count];
20
20
  if (char && patternChar) {
@@ -7,6 +7,6 @@ export declare class USAInputMaskElement extends HTMLElement {
7
7
  #private;
8
8
  accessor mask: string;
9
9
  connectedCallback(): void;
10
- onInput(e: Event): Promise<void>;
10
+ onInput(e: Event): void;
11
11
  onKeyDown(e: KeyboardEvent): void;
12
12
  }
@@ -1,6 +1,6 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { attr, css, element, html, listen } from "@joist/element";
3
- import { format, PATTERN_CHARS, PatternChar, REG_EXPS } from "./format.js";
3
+ import { PATTERN_CHARS, PatternChar, REG_EXPS, format } from "./format.js";
4
4
  let USAInputMaskElement = (() => {
5
5
  let _classDecorators = [element({
6
6
  tagName: "usa-input-mask",
@@ -42,12 +42,14 @@ let USAInputMaskElement = (() => {
42
42
  get mask() { return this.#mask_accessor_storage; }
43
43
  set mask(value) { this.#mask_accessor_storage = value; }
44
44
  connectedCallback() {
45
- for (let input of this.querySelectorAll("[mask]")) {
45
+ for (const input of this.querySelectorAll("[mask]")) {
46
46
  const { formatted } = format(input.value, this.#getMaskFor(input));
47
- input.value = formatted;
47
+ if (formatted) {
48
+ input.value = formatted;
49
+ }
48
50
  }
49
51
  }
50
- async onInput(e) {
52
+ onInput(e) {
51
53
  const input = e.target;
52
54
  const selectionStart = input.selectionStart || 0;
53
55
  const prev = input.value;
@@ -65,9 +67,6 @@ let USAInputMaskElement = (() => {
65
67
  input.selectionStart = selectionStart;
66
68
  input.selectionEnd = selectionStart;
67
69
  }
68
- if (prev !== input.value) {
69
- input.dispatchEvent(new Event("input", { bubbles: true }));
70
- }
71
70
  }
72
71
  onKeyDown(e) {
73
72
  const input = e.target;