@noctuatech/uswds 0.0.1

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 (187) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/package.json +89 -0
  4. package/src/lib/alert/alert-types.ts +33 -0
  5. package/src/lib/alert/alert.element.ts +105 -0
  6. package/src/lib/alert/alert.stories.ts +63 -0
  7. package/src/lib/alert/alert.test.ts +23 -0
  8. package/src/lib/button/button.element.ts +224 -0
  9. package/src/lib/button/button.stories.ts +34 -0
  10. package/src/lib/button/button.test.ts +17 -0
  11. package/src/lib/checkbox/checkbox.element.ts +166 -0
  12. package/src/lib/checkbox/checkbox.stories.ts +57 -0
  13. package/src/lib/checkbox/checkbox.test.ts +47 -0
  14. package/src/lib/config/config.element.ts +31 -0
  15. package/src/lib/config/config.test.ts +15 -0
  16. package/src/lib/define.ts +14 -0
  17. package/src/lib/description/description.element.ts +22 -0
  18. package/src/lib/description/description.test.ts +15 -0
  19. package/src/lib/file-input/file-input-preview.element.ts +121 -0
  20. package/src/lib/file-input/file-input-preview.test.ts +95 -0
  21. package/src/lib/file-input/file-input.element.ts +140 -0
  22. package/src/lib/file-input/file-input.stories.ts +46 -0
  23. package/src/lib/file-input/file-input.test.ts +47 -0
  24. package/src/lib/icon/icon-types.ts +263 -0
  25. package/src/lib/icon/icon.element.ts +65 -0
  26. package/src/lib/icon/icon.stories.ts +50 -0
  27. package/src/lib/input/input.element.ts +138 -0
  28. package/src/lib/input/input.stories.ts +30 -0
  29. package/src/lib/input/input.test.ts +48 -0
  30. package/src/lib/input-mask/format.ts +56 -0
  31. package/src/lib/input-mask/input-mask.element.ts +93 -0
  32. package/src/lib/input-mask/input-mask.stories.ts +38 -0
  33. package/src/lib/input-mask/input-mask.test.ts +106 -0
  34. package/src/lib/input-mask/maskable.element.ts +5 -0
  35. package/src/lib/link/link.element.ts +62 -0
  36. package/src/lib/link/link.stories.ts +30 -0
  37. package/src/lib/radio/radio-option.element.ts +46 -0
  38. package/src/lib/radio/radio-option.test.ts +20 -0
  39. package/src/lib/radio/radio.element.ts +152 -0
  40. package/src/lib/radio/radio.stories.ts +47 -0
  41. package/src/lib/radio/radio.test.ts +174 -0
  42. package/src/lib/select/select-option.element.ts +40 -0
  43. package/src/lib/select/select.element.ts +121 -0
  44. package/src/lib/select/select.stories.ts +33 -0
  45. package/src/lib/select/select.test.ts +113 -0
  46. package/src/lib/tag/tag.element.ts +46 -0
  47. package/src/lib/tag/tag.stories.ts +31 -0
  48. package/src/lib/tag/tag.test.ts +15 -0
  49. package/src/lib.ts +13 -0
  50. package/target/lib/alert/alert-types.d.ts +7 -0
  51. package/target/lib/alert/alert-types.js +25 -0
  52. package/target/lib/alert/alert-types.js.map +1 -0
  53. package/target/lib/alert/alert.element.d.ts +11 -0
  54. package/target/lib/alert/alert.element.js +124 -0
  55. package/target/lib/alert/alert.element.js.map +1 -0
  56. package/target/lib/alert/alert.stories.d.ts +11 -0
  57. package/target/lib/alert/alert.stories.js +56 -0
  58. package/target/lib/alert/alert.stories.js.map +1 -0
  59. package/target/lib/alert/alert.test.d.ts +1 -0
  60. package/target/lib/alert/alert.test.js +20 -0
  61. package/target/lib/alert/alert.test.js.map +1 -0
  62. package/target/lib/button/button.element.d.ts +17 -0
  63. package/target/lib/button/button.element.js +259 -0
  64. package/target/lib/button/button.element.js.map +1 -0
  65. package/target/lib/button/button.stories.d.ts +12 -0
  66. package/target/lib/button/button.stories.js +25 -0
  67. package/target/lib/button/button.stories.js.map +1 -0
  68. package/target/lib/button/button.test.d.ts +1 -0
  69. package/target/lib/button/button.test.js +14 -0
  70. package/target/lib/button/button.test.js.map +1 -0
  71. package/target/lib/checkbox/checkbox.element.d.ts +16 -0
  72. package/target/lib/checkbox/checkbox.element.js +205 -0
  73. package/target/lib/checkbox/checkbox.element.js.map +1 -0
  74. package/target/lib/checkbox/checkbox.stories.d.ts +31 -0
  75. package/target/lib/checkbox/checkbox.stories.js +46 -0
  76. package/target/lib/checkbox/checkbox.stories.js.map +1 -0
  77. package/target/lib/checkbox/checkbox.test.d.ts +1 -0
  78. package/target/lib/checkbox/checkbox.test.js +38 -0
  79. package/target/lib/checkbox/checkbox.test.js.map +1 -0
  80. package/target/lib/config/config.element.d.ts +8 -0
  81. package/target/lib/config/config.element.js +57 -0
  82. package/target/lib/config/config.element.js.map +1 -0
  83. package/target/lib/config/config.test.d.ts +1 -0
  84. package/target/lib/config/config.test.js +11 -0
  85. package/target/lib/config/config.test.js.map +1 -0
  86. package/target/lib/define.d.ts +14 -0
  87. package/target/lib/define.js +15 -0
  88. package/target/lib/define.js.map +1 -0
  89. package/target/lib/description/description.element.d.ts +7 -0
  90. package/target/lib/description/description.element.js +34 -0
  91. package/target/lib/description/description.element.js.map +1 -0
  92. package/target/lib/description/description.test.d.ts +1 -0
  93. package/target/lib/description/description.test.js +11 -0
  94. package/target/lib/description/description.test.js.map +1 -0
  95. package/target/lib/file-input/file-input-preview.element.d.ts +11 -0
  96. package/target/lib/file-input/file-input-preview.element.js +136 -0
  97. package/target/lib/file-input/file-input-preview.element.js.map +1 -0
  98. package/target/lib/file-input/file-input-preview.test.d.ts +2 -0
  99. package/target/lib/file-input/file-input-preview.test.js +67 -0
  100. package/target/lib/file-input/file-input-preview.test.js.map +1 -0
  101. package/target/lib/file-input/file-input.element.d.ts +18 -0
  102. package/target/lib/file-input/file-input.element.js +180 -0
  103. package/target/lib/file-input/file-input.element.js.map +1 -0
  104. package/target/lib/file-input/file-input.stories.d.ts +12 -0
  105. package/target/lib/file-input/file-input.stories.js +36 -0
  106. package/target/lib/file-input/file-input.stories.js.map +1 -0
  107. package/target/lib/file-input/file-input.test.d.ts +1 -0
  108. package/target/lib/file-input/file-input.test.js +37 -0
  109. package/target/lib/file-input/file-input.test.js.map +1 -0
  110. package/target/lib/icon/icon-types.d.ts +2 -0
  111. package/target/lib/icon/icon-types.js +262 -0
  112. package/target/lib/icon/icon-types.js.map +1 -0
  113. package/target/lib/icon/icon.element.d.ts +12 -0
  114. package/target/lib/icon/icon.element.js +84 -0
  115. package/target/lib/icon/icon.element.js.map +1 -0
  116. package/target/lib/icon/icon.stories.d.ts +12 -0
  117. package/target/lib/icon/icon.stories.js +39 -0
  118. package/target/lib/icon/icon.stories.js.map +1 -0
  119. package/target/lib/input/input.element.d.ts +19 -0
  120. package/target/lib/input/input.element.js +166 -0
  121. package/target/lib/input/input.element.js.map +1 -0
  122. package/target/lib/input/input.stories.d.ts +12 -0
  123. package/target/lib/input/input.stories.js +23 -0
  124. package/target/lib/input/input.stories.js.map +1 -0
  125. package/target/lib/input/input.test.d.ts +1 -0
  126. package/target/lib/input/input.test.js +38 -0
  127. package/target/lib/input/input.test.js.map +1 -0
  128. package/target/lib/input-mask/format.d.ts +15 -0
  129. package/target/lib/input-mask/format.js +47 -0
  130. package/target/lib/input-mask/format.js.map +1 -0
  131. package/target/lib/input-mask/input-mask.element.d.ts +12 -0
  132. package/target/lib/input-mask/input-mask.element.js +111 -0
  133. package/target/lib/input-mask/input-mask.element.js.map +1 -0
  134. package/target/lib/input-mask/input-mask.stories.d.ts +14 -0
  135. package/target/lib/input-mask/input-mask.stories.js +31 -0
  136. package/target/lib/input-mask/input-mask.stories.js.map +1 -0
  137. package/target/lib/input-mask/input-mask.test.d.ts +2 -0
  138. package/target/lib/input-mask/input-mask.test.js +85 -0
  139. package/target/lib/input-mask/input-mask.test.js.map +1 -0
  140. package/target/lib/input-mask/maskable.element.d.ts +5 -0
  141. package/target/lib/input-mask/maskable.element.js +2 -0
  142. package/target/lib/input-mask/maskable.element.js.map +1 -0
  143. package/target/lib/link/link.element.d.ts +13 -0
  144. package/target/lib/link/link.element.js +98 -0
  145. package/target/lib/link/link.element.js.map +1 -0
  146. package/target/lib/link/link.stories.d.ts +16 -0
  147. package/target/lib/link/link.stories.js +23 -0
  148. package/target/lib/link/link.stories.js.map +1 -0
  149. package/target/lib/radio/radio-option.element.d.ts +13 -0
  150. package/target/lib/radio/radio-option.element.js +63 -0
  151. package/target/lib/radio/radio-option.element.js.map +1 -0
  152. package/target/lib/radio/radio-option.test.d.ts +2 -0
  153. package/target/lib/radio/radio-option.test.js +15 -0
  154. package/target/lib/radio/radio-option.test.js.map +1 -0
  155. package/target/lib/radio/radio.element.d.ts +18 -0
  156. package/target/lib/radio/radio.element.js +177 -0
  157. package/target/lib/radio/radio.element.js.map +1 -0
  158. package/target/lib/radio/radio.stories.d.ts +12 -0
  159. package/target/lib/radio/radio.stories.js +40 -0
  160. package/target/lib/radio/radio.stories.js.map +1 -0
  161. package/target/lib/radio/radio.test.d.ts +2 -0
  162. package/target/lib/radio/radio.test.js +147 -0
  163. package/target/lib/radio/radio.test.js.map +1 -0
  164. package/target/lib/select/select-option.element.d.ts +11 -0
  165. package/target/lib/select/select-option.element.js +58 -0
  166. package/target/lib/select/select-option.element.js.map +1 -0
  167. package/target/lib/select/select.element.d.ts +16 -0
  168. package/target/lib/select/select.element.js +144 -0
  169. package/target/lib/select/select.element.js.map +1 -0
  170. package/target/lib/select/select.stories.d.ts +12 -0
  171. package/target/lib/select/select.stories.js +26 -0
  172. package/target/lib/select/select.stories.js.map +1 -0
  173. package/target/lib/select/select.test.d.ts +2 -0
  174. package/target/lib/select/select.test.js +89 -0
  175. package/target/lib/select/select.test.js.map +1 -0
  176. package/target/lib/tag/tag.element.d.ts +10 -0
  177. package/target/lib/tag/tag.element.js +66 -0
  178. package/target/lib/tag/tag.element.js.map +1 -0
  179. package/target/lib/tag/tag.stories.d.ts +19 -0
  180. package/target/lib/tag/tag.stories.js +25 -0
  181. package/target/lib/tag/tag.stories.js.map +1 -0
  182. package/target/lib/tag/tag.test.d.ts +1 -0
  183. package/target/lib/tag/tag.test.js +11 -0
  184. package/target/lib/tag/tag.test.js.map +1 -0
  185. package/target/lib.d.ts +13 -0
  186. package/target/lib.js +14 -0
  187. package/target/lib.js.map +1 -0
@@ -0,0 +1,63 @@
1
+ import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers, __setFunctionName } from "tslib";
2
+ import { attr, css, element, html } from "@joist/element";
3
+ import { USARadioElement } from "./radio.element.js";
4
+ let USARadioOptionElement = (() => {
5
+ var _USARadioOptionElement_parent, _USARadioOptionElement_value_accessor_storage;
6
+ let _classDecorators = [element({
7
+ tagName: "usa-radio-option",
8
+ shadowDom: [
9
+ css `
10
+ :host {
11
+ display: inline-flex;
12
+ flex-direction: column;
13
+ }
14
+ `,
15
+ html `<slot></slot>`,
16
+ ],
17
+ })];
18
+ let _classDescriptor;
19
+ let _classExtraInitializers = [];
20
+ let _classThis;
21
+ let _classSuper = HTMLElement;
22
+ let _value_decorators;
23
+ let _value_initializers = [];
24
+ let _value_extraInitializers = [];
25
+ var USARadioOptionElement = _classThis = class extends _classSuper {
26
+ constructor() {
27
+ super(...arguments);
28
+ _USARadioOptionElement_value_accessor_storage.set(this, __runInitializers(this, _value_initializers, ""));
29
+ _USARadioOptionElement_parent.set(this, (__runInitializers(this, _value_extraInitializers), null));
30
+ }
31
+ get value() { return __classPrivateFieldGet(this, _USARadioOptionElement_value_accessor_storage, "f"); }
32
+ set value(value) { __classPrivateFieldSet(this, _USARadioOptionElement_value_accessor_storage, value, "f"); }
33
+ attributeChangedCallback() {
34
+ this.slot = this.value;
35
+ }
36
+ connectedCallback() {
37
+ if (this.parentElement instanceof USARadioElement) {
38
+ __classPrivateFieldSet(this, _USARadioOptionElement_parent, this.parentElement, "f");
39
+ this.parentElement.onOptionAdded(this);
40
+ }
41
+ }
42
+ disconnectedCallback() {
43
+ if (__classPrivateFieldGet(this, _USARadioOptionElement_parent, "f")) {
44
+ __classPrivateFieldGet(this, _USARadioOptionElement_parent, "f").onOptionRemoved(this);
45
+ }
46
+ }
47
+ };
48
+ _USARadioOptionElement_parent = new WeakMap();
49
+ _USARadioOptionElement_value_accessor_storage = new WeakMap();
50
+ __setFunctionName(_classThis, "USARadioOptionElement");
51
+ (() => {
52
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
53
+ _value_decorators = [attr()];
54
+ __esDecorate(_classThis, 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);
55
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
56
+ USARadioOptionElement = _classThis = _classDescriptor.value;
57
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
58
+ __runInitializers(_classThis, _classExtraInitializers);
59
+ })();
60
+ return USARadioOptionElement = _classThis;
61
+ })();
62
+ export { USARadioOptionElement };
63
+ //# sourceMappingURL=radio-option.element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-option.element.js","sourceRoot":"","sources":["../../../src/lib/radio/radio-option.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;IAoBxC,qBAAqB;;4BAZjC,OAAO,CAAC;YACP,OAAO,EAAE,kBAAkB;YAC3B,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;KAKF;gBACD,IAAI,CAAA,eAAe;aACpB;SACF,CAAC;;;;sBACyC,WAAW;;;;kDAAnB,SAAQ,WAAW;;;YAE3C,qGAAQ,EAAE,GAAC;YAEpB,4FAAkC,IAAI,GAAC;QAmBzC,CAAC;QArBC,IAAS,KAAK,+FAAM;QAApB,IAAS,KAAK,oGAAM;QAIpB,wBAAwB;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,CAAC;QAED,iBAAiB;YACf,IAAI,IAAI,CAAC,aAAa,YAAY,eAAe,EAAE,CAAC;gBAClD,uBAAA,IAAI,iCAAW,IAAI,CAAC,aAAa,MAAA,CAAC;gBAElC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,oBAAoB;YAClB,IAAI,uBAAA,IAAI,qCAAQ,EAAE,CAAC;gBACjB,uBAAA,IAAI,qCAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;;;;;;;6BArBA,IAAI,EAAE;QACP,0KAAS,KAAK,6BAAL,KAAK,qFAAM;QAFtB,6KAuBC;;;QAvBY,uDAAqB;;;;SAArB,qBAAqB"}
@@ -0,0 +1,2 @@
1
+ import "./radio.element.js";
2
+ import "./radio-option.element.js";
@@ -0,0 +1,15 @@
1
+ import "./radio.element.js";
2
+ import "./radio-option.element.js";
3
+ import { assert, fixture, html } from "@open-wc/testing";
4
+ describe("usa-radio-option", () => {
5
+ it("should map value to slot", async () => {
6
+ const radio = await fixture(html `
7
+ <usa-radio>
8
+ <usa-radio-option value="first">First</usa-radio-option>
9
+ </usa-radio>
10
+ `);
11
+ const option = radio.querySelectorAll("usa-radio-option");
12
+ assert.equal(option[0].value, option[0].slot);
13
+ });
14
+ });
15
+ //# sourceMappingURL=radio-option.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-option.test.js","sourceRoot":"","sources":["../../../src/lib/radio/radio-option.test.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,2BAA2B,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAwB,IAAI,CAAA;;;;KAItD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAE1D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { USARadioOptionElement } from "./radio-option.element.js";
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ "usa-radio": USARadioElement;
5
+ }
6
+ }
7
+ export declare class USARadioElement extends HTMLElement {
8
+ #private;
9
+ static formAssociated: boolean;
10
+ accessor value: string;
11
+ accessor name: string;
12
+ accessor tiled: boolean;
13
+ onChange(e: Event): void;
14
+ connectedCallback(): void;
15
+ attributeChangedCallback(): void;
16
+ onOptionAdded(el: USARadioOptionElement): void;
17
+ onOptionRemoved(el: USARadioOptionElement): void;
18
+ }
@@ -0,0 +1,177 @@
1
+ import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers, __setFunctionName } from "tslib";
2
+ import { attr, css, element, html, listen, query } from "@joist/element";
3
+ let USARadioElement = (() => {
4
+ var _USARadioElement_radios, _USARadioElement_internals, _USARadioElement_value_accessor_storage, _USARadioElement_name_accessor_storage, _USARadioElement_tiled_accessor_storage;
5
+ let _classDecorators = [element({
6
+ tagName: "usa-radio",
7
+ shadowDom: [
8
+ css `
9
+ :host {
10
+ display: block;
11
+ }
12
+
13
+ .radios {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: 1rem;
17
+ }
18
+
19
+ label {
20
+ display: flex;
21
+ cursor: pointer;
22
+ gap: 0.5rem;
23
+ }
24
+
25
+ input {
26
+ position: absolute;
27
+ left: -999em;
28
+ right: auto;
29
+ }
30
+
31
+ label::before {
32
+ content: " ";
33
+ display: block;
34
+ left: 0;
35
+ height: 1.25rem;
36
+ border-radius: 99rem;
37
+ width: 1.25rem;
38
+ background: #fff;
39
+ box-shadow: 0 0 0 2px #1b1b1b;
40
+ }
41
+
42
+ label:has(input:checked)::before {
43
+ background-color: #005ea2;
44
+ box-shadow:
45
+ 0 0 0 2px #005ea2,
46
+ inset 0 0 0 2px #fff;
47
+ }
48
+
49
+ label:has(input:focus)::before {
50
+ outline: 0.25rem solid #2491ff;
51
+ outline-offset: 0.25rem;
52
+ }
53
+
54
+ :host([tiled]) .radios {
55
+ gap: 0.5rem;
56
+ }
57
+
58
+ :host([tiled]) label {
59
+ background-color: #fff;
60
+ border: 2px solid #c9c9c9;
61
+ color: #1b1b1b;
62
+ border-radius: 0.25rem;
63
+ padding: 0.75rem 1rem 0.75rem 0.75rem;
64
+ }
65
+
66
+ :host([tiled]) label:has(input:checked) {
67
+ background-color: rgba(0, 94, 162, 0.1);
68
+ border-color: #005ea2;
69
+ }
70
+ `,
71
+ html `
72
+ <slot></slot>
73
+
74
+ <div class="radios"></div>
75
+ `,
76
+ ],
77
+ })];
78
+ let _classDescriptor;
79
+ let _classExtraInitializers = [];
80
+ let _classThis;
81
+ let _classSuper = HTMLElement;
82
+ let _instanceExtraInitializers = [];
83
+ let _value_decorators;
84
+ let _value_initializers = [];
85
+ let _value_extraInitializers = [];
86
+ let _name_decorators;
87
+ let _name_initializers = [];
88
+ let _name_extraInitializers = [];
89
+ let _tiled_decorators;
90
+ let _tiled_initializers = [];
91
+ let _tiled_extraInitializers = [];
92
+ let _onChange_decorators;
93
+ var USARadioElement = _classThis = class extends _classSuper {
94
+ constructor() {
95
+ super(...arguments);
96
+ _USARadioElement_value_accessor_storage.set(this, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value_initializers, "")));
97
+ _USARadioElement_name_accessor_storage.set(this, (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _name_initializers, "")));
98
+ _USARadioElement_tiled_accessor_storage.set(this, (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _tiled_initializers, false)));
99
+ _USARadioElement_radios.set(this, (__runInitializers(this, _tiled_extraInitializers), query(".radios")));
100
+ _USARadioElement_internals.set(this, this.attachInternals());
101
+ }
102
+ get value() { return __classPrivateFieldGet(this, _USARadioElement_value_accessor_storage, "f"); }
103
+ set value(value) { __classPrivateFieldSet(this, _USARadioElement_value_accessor_storage, value, "f"); }
104
+ get name() { return __classPrivateFieldGet(this, _USARadioElement_name_accessor_storage, "f"); }
105
+ set name(value) { __classPrivateFieldSet(this, _USARadioElement_name_accessor_storage, value, "f"); }
106
+ get tiled() { return __classPrivateFieldGet(this, _USARadioElement_tiled_accessor_storage, "f"); }
107
+ set tiled(value) { __classPrivateFieldSet(this, _USARadioElement_tiled_accessor_storage, value, "f"); }
108
+ onChange(e) {
109
+ if (e.target instanceof HTMLInputElement) {
110
+ if (e.target.checked) {
111
+ this.value = e.target.value;
112
+ __classPrivateFieldGet(this, _USARadioElement_internals, "f").setFormValue(e.target.value);
113
+ }
114
+ }
115
+ }
116
+ connectedCallback() {
117
+ if (this.value) {
118
+ __classPrivateFieldGet(this, _USARadioElement_internals, "f").setFormValue(this.value);
119
+ }
120
+ }
121
+ attributeChangedCallback() {
122
+ const radios = __classPrivateFieldGet(this, _USARadioElement_radios, "f").call(this);
123
+ for (let radio of radios.querySelectorAll("input")) {
124
+ radio.checked = radio.value === this.value;
125
+ radio.name = this.name;
126
+ }
127
+ }
128
+ onOptionAdded(el) {
129
+ const radios = __classPrivateFieldGet(this, _USARadioElement_radios, "f").call(this);
130
+ const radioLabel = document.createElement("label");
131
+ radioLabel.id = el.value;
132
+ const input = document.createElement("input");
133
+ input.type = "radio";
134
+ input.name = this.name;
135
+ input.value = el.value;
136
+ input.checked = this.value === el.value;
137
+ const slot = document.createElement("slot");
138
+ slot.name = el.value;
139
+ radioLabel.append(input, slot);
140
+ radios.append(radioLabel);
141
+ }
142
+ onOptionRemoved(el) {
143
+ const radios = __classPrivateFieldGet(this, _USARadioElement_radios, "f").call(this);
144
+ const option = radios.querySelector(`#${el.value}`);
145
+ if (option) {
146
+ option.remove();
147
+ }
148
+ }
149
+ };
150
+ _USARadioElement_radios = new WeakMap();
151
+ _USARadioElement_internals = new WeakMap();
152
+ _USARadioElement_value_accessor_storage = new WeakMap();
153
+ _USARadioElement_name_accessor_storage = new WeakMap();
154
+ _USARadioElement_tiled_accessor_storage = new WeakMap();
155
+ __setFunctionName(_classThis, "USARadioElement");
156
+ (() => {
157
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
158
+ _value_decorators = [attr()];
159
+ _name_decorators = [attr()];
160
+ _tiled_decorators = [attr()];
161
+ _onChange_decorators = [listen("change")];
162
+ __esDecorate(_classThis, 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);
163
+ __esDecorate(_classThis, 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);
164
+ __esDecorate(_classThis, null, _tiled_decorators, { kind: "accessor", name: "tiled", static: false, private: false, access: { has: obj => "tiled" in obj, get: obj => obj.tiled, set: (obj, value) => { obj.tiled = value; } }, metadata: _metadata }, _tiled_initializers, _tiled_extraInitializers);
165
+ __esDecorate(_classThis, 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);
166
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
167
+ USARadioElement = _classThis = _classDescriptor.value;
168
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
169
+ })();
170
+ _classThis.formAssociated = true;
171
+ (() => {
172
+ __runInitializers(_classThis, _classExtraInitializers);
173
+ })();
174
+ return USARadioElement = _classThis;
175
+ })();
176
+ export { USARadioElement };
177
+ //# sourceMappingURL=radio.element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.element.js","sourceRoot":"","sources":["../../../src/lib/radio/radio.element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { StoryObj } from "@storybook/web-components";
2
+ import type { USARadioElement } from "./radio.element.js";
3
+ declare const meta: {
4
+ title: string;
5
+ tags: string[];
6
+ render(args: USARadioElement): import("lit-html").TemplateResult<1>;
7
+ argTypes: {};
8
+ args: {};
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<USARadioElement>;
12
+ export declare const Primary: Story;
@@ -0,0 +1,40 @@
1
+ import { html } from "lit";
2
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
3
+ const meta = {
4
+ title: "usa-radio",
5
+ tags: ["autodocs"],
6
+ render(args) {
7
+ return html `
8
+ <usa-radio name="historical-figures" value="frederick-douglass" tiled>
9
+ <usa-radio-option value="sojourner-truth">
10
+ Sojourner Truth
11
+ </usa-radio-option>
12
+
13
+ <usa-radio-option value="frederick-douglass">
14
+ Frederick Douglass
15
+
16
+ <usa-description>
17
+ This is optional text that can be used to describe the label in more
18
+ detail.
19
+ </usa-description>
20
+ </usa-radio-option>
21
+
22
+ <usa-radio-option value="booker-t-washington">
23
+ Booker T. Washington
24
+ </usa-radio-option>
25
+
26
+ <usa-radio-option value="george-washington-carver">
27
+ George Washington Carver
28
+ </usa-radio-option>
29
+ </usa-radio>
30
+ `;
31
+ },
32
+ argTypes: {},
33
+ args: {},
34
+ };
35
+ export default meta;
36
+ // More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
37
+ export const Primary = {
38
+ args: {},
39
+ };
40
+ //# sourceMappingURL=radio.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.stories.js","sourceRoot":"","sources":["../../../src/lib/radio/radio.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,CAAC,IAAI;QACT,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;KAuBV,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CACuB,CAAC;AAElC,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,EAAE;CACT,CAAC"}
@@ -0,0 +1,2 @@
1
+ import "./radio.element.js";
2
+ import "./radio-option.element.js";
@@ -0,0 +1,147 @@
1
+ import "./radio.element.js";
2
+ import "./radio-option.element.js";
3
+ import { fixture, html, assert } from "@open-wc/testing";
4
+ describe("usa-radio", () => {
5
+ it("should be accessible", async () => {
6
+ const radio = await fixture(html `
7
+ <usa-radio name="historical-figures" value="frederick-douglass" tiled>
8
+ <usa-radio-option value="sojourner-truth">
9
+ Sojourner Truth
10
+ </usa-radio-option>
11
+
12
+ <usa-radio-option value="frederick-douglass">
13
+ Frederick Douglass
14
+ </usa-radio-option>
15
+
16
+ <usa-radio-option value="booker-t-washington">
17
+ Booker T. Washington
18
+ </usa-radio-option>
19
+
20
+ <usa-radio-option value="george-washington-carver">
21
+ George Washington Carver
22
+ </usa-radio-option>
23
+ </usa-radio>
24
+ `);
25
+ return assert.isAccessible(radio);
26
+ });
27
+ it("should create local inputs for each option", async () => {
28
+ const form = await fixture(html `
29
+ <form>
30
+ <usa-radio name="historical-figures" value="frederick-douglass">
31
+ <usa-radio-option value="sojourner-truth">
32
+ Sojourner Truth
33
+ </usa-radio-option>
34
+
35
+ <usa-radio-option value="frederick-douglass">
36
+ Frederick Douglass
37
+ </usa-radio-option>
38
+
39
+ <usa-radio-option value="booker-t-washington">
40
+ Booker T. Washington
41
+ </usa-radio-option>
42
+
43
+ <usa-radio-option value="george-washington-carver">
44
+ George Washington Carver
45
+ </usa-radio-option>
46
+ </usa-radio>
47
+ </form>
48
+ `);
49
+ const nativeInputs = form
50
+ .querySelector("usa-radio")
51
+ .shadowRoot.querySelectorAll("input");
52
+ assert.deepEqual(Array.from(nativeInputs).map((input) => input.value), [
53
+ "sojourner-truth",
54
+ "frederick-douglass",
55
+ "booker-t-washington",
56
+ "george-washington-carver",
57
+ ]);
58
+ });
59
+ it("should remove inputs when options are removed", async () => {
60
+ const form = await fixture(html `
61
+ <form>
62
+ <usa-radio name="historical-figures" value="frederick-douglass">
63
+ <usa-radio-option value="sojourner-truth">
64
+ Sojourner Truth
65
+ </usa-radio-option>
66
+
67
+ <usa-radio-option value="frederick-douglass">
68
+ Frederick Douglass
69
+ </usa-radio-option>
70
+
71
+ <usa-radio-option value="booker-t-washington">
72
+ Booker T. Washington
73
+ </usa-radio-option>
74
+
75
+ <usa-radio-option value="george-washington-carver">
76
+ George Washington Carver
77
+ </usa-radio-option>
78
+ </usa-radio>
79
+ </form>
80
+ `);
81
+ const options = form.querySelectorAll("usa-radio-option");
82
+ options[2].remove();
83
+ const nativeInputs = form
84
+ .querySelector("usa-radio")
85
+ .shadowRoot.querySelectorAll("input");
86
+ assert.deepEqual(Array.from(nativeInputs).map((input) => input.value), ["sojourner-truth", "frederick-douglass", "george-washington-carver"]);
87
+ });
88
+ it("should submit form with default values", async () => {
89
+ const form = await fixture(html `
90
+ <form>
91
+ <usa-radio name="historical-figures" value="frederick-douglass">
92
+ <usa-radio-option value="sojourner-truth">
93
+ Sojourner Truth
94
+ </usa-radio-option>
95
+
96
+ <usa-radio-option value="frederick-douglass">
97
+ Frederick Douglass
98
+ </usa-radio-option>
99
+
100
+ <usa-radio-option value="booker-t-washington">
101
+ Booker T. Washington
102
+ </usa-radio-option>
103
+
104
+ <usa-radio-option value="george-washington-carver">
105
+ George Washington Carver
106
+ </usa-radio-option>
107
+ </usa-radio>
108
+ </form>
109
+ `);
110
+ const value = new FormData(form);
111
+ const nativeInputs = form
112
+ .querySelector("usa-radio")
113
+ .shadowRoot.querySelectorAll("input");
114
+ assert.equal(nativeInputs[1].checked, true);
115
+ assert.equal(value.get("historical-figures"), "frederick-douglass");
116
+ });
117
+ it("should submit form with changed value", async () => {
118
+ const form = await fixture(html `
119
+ <form>
120
+ <usa-radio name="historical-figures" value="frederick-douglass">
121
+ <usa-radio-option value="sojourner-truth">
122
+ Sojourner Truth
123
+ </usa-radio-option>
124
+
125
+ <usa-radio-option value="frederick-douglass">
126
+ Frederick Douglass
127
+ </usa-radio-option>
128
+
129
+ <usa-radio-option value="booker-t-washington">
130
+ Booker T. Washington
131
+ </usa-radio-option>
132
+
133
+ <usa-radio-option value="george-washington-carver">
134
+ George Washington Carver
135
+ </usa-radio-option>
136
+ </usa-radio>
137
+ </form>
138
+ `);
139
+ const nativeInputs = form
140
+ .querySelector("usa-radio")
141
+ .shadowRoot.querySelectorAll("input");
142
+ nativeInputs[3].click();
143
+ const value = new FormData(form);
144
+ assert.equal(value.get("historical-figures"), "george-washington-carver");
145
+ });
146
+ });
147
+ //# sourceMappingURL=radio.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.test.js","sourceRoot":"","sources":["../../../src/lib/radio/radio.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ declare global {
2
+ interface HTMLElementTagNameMap {
3
+ "usa-select-option": USASelecOptionElement;
4
+ }
5
+ }
6
+ export declare class USASelecOptionElement extends HTMLElement {
7
+ #private;
8
+ accessor value: string;
9
+ connectedCallback(): void;
10
+ disconnectedCallback(): void;
11
+ }
@@ -0,0 +1,58 @@
1
+ import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers, __setFunctionName } from "tslib";
2
+ import { attr, css, element } from "@joist/element";
3
+ import { USASelectElement } from "./select.element.js";
4
+ let USASelecOptionElement = (() => {
5
+ var _USASelecOptionElement_parent, _USASelecOptionElement_value_accessor_storage;
6
+ let _classDecorators = [element({
7
+ tagName: "usa-select-option",
8
+ shadowDom: [
9
+ css `
10
+ :host {
11
+ display: none;
12
+ }
13
+ `,
14
+ ],
15
+ })];
16
+ let _classDescriptor;
17
+ let _classExtraInitializers = [];
18
+ let _classThis;
19
+ let _classSuper = HTMLElement;
20
+ let _value_decorators;
21
+ let _value_initializers = [];
22
+ let _value_extraInitializers = [];
23
+ var USASelecOptionElement = _classThis = class extends _classSuper {
24
+ constructor() {
25
+ super(...arguments);
26
+ _USASelecOptionElement_value_accessor_storage.set(this, __runInitializers(this, _value_initializers, ""));
27
+ _USASelecOptionElement_parent.set(this, (__runInitializers(this, _value_extraInitializers), null));
28
+ }
29
+ get value() { return __classPrivateFieldGet(this, _USASelecOptionElement_value_accessor_storage, "f"); }
30
+ set value(value) { __classPrivateFieldSet(this, _USASelecOptionElement_value_accessor_storage, value, "f"); }
31
+ connectedCallback() {
32
+ if (this.parentElement instanceof USASelectElement) {
33
+ __classPrivateFieldSet(this, _USASelecOptionElement_parent, this.parentElement, "f");
34
+ this.parentElement.onOptionAdded(this);
35
+ }
36
+ }
37
+ disconnectedCallback() {
38
+ if (__classPrivateFieldGet(this, _USASelecOptionElement_parent, "f")) {
39
+ __classPrivateFieldGet(this, _USASelecOptionElement_parent, "f").onOptionRemoved(this);
40
+ }
41
+ }
42
+ };
43
+ _USASelecOptionElement_parent = new WeakMap();
44
+ _USASelecOptionElement_value_accessor_storage = new WeakMap();
45
+ __setFunctionName(_classThis, "USASelecOptionElement");
46
+ (() => {
47
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
48
+ _value_decorators = [attr()];
49
+ __esDecorate(_classThis, 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);
50
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
51
+ USASelecOptionElement = _classThis = _classDescriptor.value;
52
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
53
+ __runInitializers(_classThis, _classExtraInitializers);
54
+ })();
55
+ return USASelecOptionElement = _classThis;
56
+ })();
57
+ export { USASelecOptionElement };
58
+ //# sourceMappingURL=select-option.element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-option.element.js","sourceRoot":"","sources":["../../../src/lib/select/select-option.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;IAkB1C,qBAAqB;;4BAVjC,OAAO,CAAC;YACP,OAAO,EAAE,mBAAmB;YAC5B,SAAS,EAAE;gBACT,GAAG,CAAA;;;;KAIF;aACF;SACF,CAAC;;;;sBACyC,WAAW;;;;kDAAnB,SAAQ,WAAW;;;YAE3C,qGAAQ,EAAE,GAAC;YAEpB,4FAAmC,IAAI,GAAC;QAe1C,CAAC;QAjBC,IAAS,KAAK,+FAAM;QAApB,IAAS,KAAK,oGAAM;QAIpB,iBAAiB;YACf,IAAI,IAAI,CAAC,aAAa,YAAY,gBAAgB,EAAE,CAAC;gBACnD,uBAAA,IAAI,iCAAW,IAAI,CAAC,aAAa,MAAA,CAAC;gBAElC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,oBAAoB;YAClB,IAAI,uBAAA,IAAI,qCAAQ,EAAE,CAAC;gBACjB,uBAAA,IAAI,qCAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;;;;;;;6BAjBA,IAAI,EAAE;QACP,0KAAS,KAAK,6BAAL,KAAK,qFAAM;QAFtB,6KAmBC;;;QAnBY,uDAAqB;;;;SAArB,qBAAqB"}
@@ -0,0 +1,16 @@
1
+ import type { USASelecOptionElement } from "./select-option.element.js";
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ "usa-select": USASelectElement;
5
+ }
6
+ }
7
+ export declare class USASelectElement extends HTMLElement {
8
+ #private;
9
+ static formAssociated: boolean;
10
+ accessor value: string;
11
+ accessor name: string;
12
+ connectedCallback(): void;
13
+ onSelectChange(): void;
14
+ onOptionAdded(el: USASelecOptionElement): void;
15
+ onOptionRemoved(el: USASelecOptionElement): void;
16
+ }