@noctuatech/uswds 0.0.28 → 0.0.30

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 (257) hide show
  1. package/assets/uswds.min.js +1 -0
  2. package/package.json +1 -1
  3. package/src/lib/button/button.element.ts +24 -33
  4. package/src/lib/file-input/file-input-preview/file-input-preview.test.ts +2 -2
  5. package/src/lib/file-input/file-input.element.ts +58 -20
  6. package/src/lib/input/input.element.ts +39 -19
  7. package/src/lib/input/input.stories.ts +1 -1
  8. package/src/lib/textarea/textarea.element.ts +4 -1
  9. package/target/lib/accordion/accordion.element.d.ts +19 -0
  10. package/target/lib/accordion/accordion.element.js +166 -0
  11. package/target/lib/accordion/accordion.element.js.map +1 -0
  12. package/target/lib/accordion/accordion.stories.d.ts +12 -0
  13. package/target/lib/accordion/accordion.stories.js +42 -0
  14. package/target/lib/accordion/accordion.stories.js.map +1 -0
  15. package/target/lib/accordion/accordion.test.d.ts +1 -0
  16. package/target/lib/accordion/accordion.test.js +113 -0
  17. package/target/lib/accordion/accordion.test.js.map +1 -0
  18. package/target/lib/alert/alert-types.d.ts +7 -0
  19. package/target/lib/alert/alert-types.js +25 -0
  20. package/target/lib/alert/alert-types.js.map +1 -0
  21. package/target/lib/alert/alert.element.d.ts +11 -0
  22. package/target/lib/alert/alert.element.js +122 -0
  23. package/target/lib/alert/alert.element.js.map +1 -0
  24. package/target/lib/alert/alert.stories.d.ts +11 -0
  25. package/target/lib/alert/alert.stories.js +56 -0
  26. package/target/lib/alert/alert.stories.js.map +1 -0
  27. package/target/lib/alert/alert.test.d.ts +1 -0
  28. package/target/lib/alert/alert.test.js +20 -0
  29. package/target/lib/alert/alert.test.js.map +1 -0
  30. package/target/lib/button/button.element.d.ts +19 -0
  31. package/target/lib/button/button.element.js +253 -0
  32. package/target/lib/button/button.element.js.map +1 -0
  33. package/target/lib/button/button.stories.d.ts +12 -0
  34. package/target/lib/button/button.stories.js +22 -0
  35. package/target/lib/button/button.stories.js.map +1 -0
  36. package/target/lib/button/button.test.d.ts +1 -0
  37. package/target/lib/button/button.test.js +14 -0
  38. package/target/lib/button/button.test.js.map +1 -0
  39. package/target/lib/card/card-body/card-body.element.d.ts +7 -0
  40. package/target/lib/card/card-body/card-body.element.js +35 -0
  41. package/target/lib/card/card-body/card-body.element.js.map +1 -0
  42. package/target/lib/card/card-footer/card-footer.element.d.ts +7 -0
  43. package/target/lib/card/card-footer/card-footer.element.js +33 -0
  44. package/target/lib/card/card-footer/card-footer.element.js.map +1 -0
  45. package/target/lib/card/card-group/card-group.element.d.ts +8 -0
  46. package/target/lib/card/card-group/card-group.element.js +51 -0
  47. package/target/lib/card/card-group/card-group.element.js.map +1 -0
  48. package/target/lib/card/card-header/card-header.element.d.ts +7 -0
  49. package/target/lib/card/card-header/card-header.element.js +43 -0
  50. package/target/lib/card/card-header/card-header.element.js.map +1 -0
  51. package/target/lib/card/card-media/card-media.element.d.ts +8 -0
  52. package/target/lib/card/card-media/card-media.element.js +71 -0
  53. package/target/lib/card/card-media/card-media.element.js.map +1 -0
  54. package/target/lib/card/card.element.d.ts +9 -0
  55. package/target/lib/card/card.element.js +79 -0
  56. package/target/lib/card/card.element.js.map +1 -0
  57. package/target/lib/card/card.stories.d.ts +12 -0
  58. package/target/lib/card/card.stories.js +126 -0
  59. package/target/lib/card/card.stories.js.map +1 -0
  60. package/target/lib/card/card.test.d.ts +6 -0
  61. package/target/lib/card/card.test.js +33 -0
  62. package/target/lib/card/card.test.js.map +1 -0
  63. package/target/lib/checkbox/checkbox.element.d.ts +17 -0
  64. package/target/lib/checkbox/checkbox.element.js +206 -0
  65. package/target/lib/checkbox/checkbox.element.js.map +1 -0
  66. package/target/lib/checkbox/checkbox.stories.d.ts +31 -0
  67. package/target/lib/checkbox/checkbox.stories.js +46 -0
  68. package/target/lib/checkbox/checkbox.stories.js.map +1 -0
  69. package/target/lib/checkbox/checkbox.test.d.ts +1 -0
  70. package/target/lib/checkbox/checkbox.test.js +52 -0
  71. package/target/lib/checkbox/checkbox.test.js.map +1 -0
  72. package/target/lib/config/config.element.d.ts +6 -0
  73. package/target/lib/config/config.element.js +53 -0
  74. package/target/lib/config/config.element.js.map +1 -0
  75. package/target/lib/config/config.test.d.ts +1 -0
  76. package/target/lib/config/config.test.js +11 -0
  77. package/target/lib/config/config.test.js.map +1 -0
  78. package/target/lib/define.d.ts +32 -0
  79. package/target/lib/define.js +33 -0
  80. package/target/lib/define.js.map +1 -0
  81. package/target/lib/description/description.element.d.ts +7 -0
  82. package/target/lib/description/description.element.js +34 -0
  83. package/target/lib/description/description.element.js.map +1 -0
  84. package/target/lib/description/description.test.d.ts +1 -0
  85. package/target/lib/description/description.test.js +11 -0
  86. package/target/lib/description/description.test.js.map +1 -0
  87. package/target/lib/file-input/file-input-preview/file-input-preview.element.d.ts +12 -0
  88. package/target/lib/file-input/file-input-preview/file-input-preview.element.js +153 -0
  89. package/target/lib/file-input/file-input-preview/file-input-preview.element.js.map +1 -0
  90. package/target/lib/file-input/file-input-preview/file-input-preview.test.d.ts +2 -0
  91. package/target/lib/file-input/file-input-preview/file-input-preview.test.js +67 -0
  92. package/target/lib/file-input/file-input-preview/file-input-preview.test.js.map +1 -0
  93. package/target/lib/file-input/file-input.element.d.ts +19 -0
  94. package/target/lib/file-input/file-input.element.js +217 -0
  95. package/target/lib/file-input/file-input.element.js.map +1 -0
  96. package/target/lib/file-input/file-input.stories.d.ts +12 -0
  97. package/target/lib/file-input/file-input.stories.js +34 -0
  98. package/target/lib/file-input/file-input.stories.js.map +1 -0
  99. package/target/lib/file-input/file-input.test.d.ts +1 -0
  100. package/target/lib/file-input/file-input.test.js +37 -0
  101. package/target/lib/file-input/file-input.test.js.map +1 -0
  102. package/target/lib/icon/icon-types.d.ts +2 -0
  103. package/target/lib/icon/icon-types.js +262 -0
  104. package/target/lib/icon/icon-types.js.map +1 -0
  105. package/target/lib/icon/icon.element.d.ts +13 -0
  106. package/target/lib/icon/icon.element.js +72 -0
  107. package/target/lib/icon/icon.element.js.map +1 -0
  108. package/target/lib/icon/icon.stories.d.ts +12 -0
  109. package/target/lib/icon/icon.stories.js +39 -0
  110. package/target/lib/icon/icon.stories.js.map +1 -0
  111. package/target/lib/input/input.element.d.ts +25 -0
  112. package/target/lib/input/input.element.js +254 -0
  113. package/target/lib/input/input.element.js.map +1 -0
  114. package/target/lib/input/input.stories.d.ts +12 -0
  115. package/target/lib/input/input.stories.js +25 -0
  116. package/target/lib/input/input.stories.js.map +1 -0
  117. package/target/lib/input/input.test.d.ts +1 -0
  118. package/target/lib/input/input.test.js +50 -0
  119. package/target/lib/input/input.test.js.map +1 -0
  120. package/target/lib/input-mask/format.d.ts +15 -0
  121. package/target/lib/input-mask/format.js +47 -0
  122. package/target/lib/input-mask/format.js.map +1 -0
  123. package/target/lib/input-mask/input-mask.element.d.ts +12 -0
  124. package/target/lib/input-mask/input-mask.element.js +106 -0
  125. package/target/lib/input-mask/input-mask.element.js.map +1 -0
  126. package/target/lib/input-mask/input-mask.stories.d.ts +14 -0
  127. package/target/lib/input-mask/input-mask.stories.js +30 -0
  128. package/target/lib/input-mask/input-mask.stories.js.map +1 -0
  129. package/target/lib/input-mask/input-mask.test.d.ts +2 -0
  130. package/target/lib/input-mask/input-mask.test.js +89 -0
  131. package/target/lib/input-mask/input-mask.test.js.map +1 -0
  132. package/target/lib/input-mask/maskable.element.d.ts +5 -0
  133. package/target/lib/input-mask/maskable.element.js +2 -0
  134. package/target/lib/input-mask/maskable.element.js.map +1 -0
  135. package/target/lib/link/link.element.d.ts +13 -0
  136. package/target/lib/link/link.element.js +93 -0
  137. package/target/lib/link/link.element.js.map +1 -0
  138. package/target/lib/link/link.stories.d.ts +16 -0
  139. package/target/lib/link/link.stories.js +23 -0
  140. package/target/lib/link/link.stories.js.map +1 -0
  141. package/target/lib/modal/modal-close/modal-close.element.d.ts +8 -0
  142. package/target/lib/modal/modal-close/modal-close.element.js +76 -0
  143. package/target/lib/modal/modal-close/modal-close.element.js.map +1 -0
  144. package/target/lib/modal/modal-close/modal-close.test.d.ts +1 -0
  145. package/target/lib/modal/modal-close/modal-close.test.js +11 -0
  146. package/target/lib/modal/modal-close/modal-close.test.js.map +1 -0
  147. package/target/lib/modal/modal-heading/modal-heading.element.d.ts +7 -0
  148. package/target/lib/modal/modal-heading/modal-heading.element.js +50 -0
  149. package/target/lib/modal/modal-heading/modal-heading.element.js.map +1 -0
  150. package/target/lib/modal/modal-heading/modal-heading.test.d.ts +1 -0
  151. package/target/lib/modal/modal-heading/modal-heading.test.js +11 -0
  152. package/target/lib/modal/modal-heading/modal-heading.test.js.map +1 -0
  153. package/target/lib/modal/modal.element.d.ts +13 -0
  154. package/target/lib/modal/modal.element.js +91 -0
  155. package/target/lib/modal/modal.element.js.map +1 -0
  156. package/target/lib/modal/modal.stories.d.ts +12 -0
  157. package/target/lib/modal/modal.stories.js +34 -0
  158. package/target/lib/modal/modal.stories.js.map +1 -0
  159. package/target/lib/modal/modal.test.d.ts +3 -0
  160. package/target/lib/modal/modal.test.js +21 -0
  161. package/target/lib/modal/modal.test.js.map +1 -0
  162. package/target/lib/radio/context.d.ts +7 -0
  163. package/target/lib/radio/context.js +3 -0
  164. package/target/lib/radio/context.js.map +1 -0
  165. package/target/lib/radio/radio-option/radio-option.element.d.ts +12 -0
  166. package/target/lib/radio/radio-option/radio-option.element.js +89 -0
  167. package/target/lib/radio/radio-option/radio-option.element.js.map +1 -0
  168. package/target/lib/radio/radio-option/radio-option.test.d.ts +2 -0
  169. package/target/lib/radio/radio-option/radio-option.test.js +15 -0
  170. package/target/lib/radio/radio-option/radio-option.test.js.map +1 -0
  171. package/target/lib/radio/radio.element.d.ts +17 -0
  172. package/target/lib/radio/radio.element.js +169 -0
  173. package/target/lib/radio/radio.element.js.map +1 -0
  174. package/target/lib/radio/radio.stories.d.ts +17 -0
  175. package/target/lib/radio/radio.stories.js +46 -0
  176. package/target/lib/radio/radio.stories.js.map +1 -0
  177. package/target/lib/radio/radio.test.d.ts +2 -0
  178. package/target/lib/radio/radio.test.js +143 -0
  179. package/target/lib/radio/radio.test.js.map +1 -0
  180. package/target/lib/select/context.d.ts +6 -0
  181. package/target/lib/select/context.js +3 -0
  182. package/target/lib/select/context.js.map +1 -0
  183. package/target/lib/select/select-option/select-option.element.d.ts +14 -0
  184. package/target/lib/select/select-option/select-option.element.js +74 -0
  185. package/target/lib/select/select-option/select-option.element.js.map +1 -0
  186. package/target/lib/select/select.element.d.ts +17 -0
  187. package/target/lib/select/select.element.js +141 -0
  188. package/target/lib/select/select.element.js.map +1 -0
  189. package/target/lib/select/select.stories.d.ts +12 -0
  190. package/target/lib/select/select.stories.js +26 -0
  191. package/target/lib/select/select.stories.js.map +1 -0
  192. package/target/lib/select/select.test.d.ts +2 -0
  193. package/target/lib/select/select.test.js +105 -0
  194. package/target/lib/select/select.test.js.map +1 -0
  195. package/target/lib/services/http.service.d.ts +3 -0
  196. package/target/lib/services/http.service.js +24 -0
  197. package/target/lib/services/http.service.js.map +1 -0
  198. package/target/lib/services/icon.service.d.ts +4 -0
  199. package/target/lib/services/icon.service.js +60 -0
  200. package/target/lib/services/icon.service.js.map +1 -0
  201. package/target/lib/services/icon.service.test.d.ts +1 -0
  202. package/target/lib/services/icon.service.test.js +52 -0
  203. package/target/lib/services/icon.service.test.js.map +1 -0
  204. package/target/lib/side-nav/side-nav-item/side-nav-item.element.d.ts +8 -0
  205. package/target/lib/side-nav/side-nav-item/side-nav-item.element.js +107 -0
  206. package/target/lib/side-nav/side-nav-item/side-nav-item.element.js.map +1 -0
  207. package/target/lib/side-nav/side-nav.element.d.ts +8 -0
  208. package/target/lib/side-nav/side-nav.element.js +47 -0
  209. package/target/lib/side-nav/side-nav.element.js.map +1 -0
  210. package/target/lib/side-nav/side-nav.stories.d.ts +12 -0
  211. package/target/lib/side-nav/side-nav.stories.js +55 -0
  212. package/target/lib/side-nav/side-nav.stories.js.map +1 -0
  213. package/target/lib/side-nav/side-nav.test.d.ts +3 -0
  214. package/target/lib/side-nav/side-nav.test.js +93 -0
  215. package/target/lib/side-nav/side-nav.test.js.map +1 -0
  216. package/target/lib/step-indicator/step/step.element.d.ts +10 -0
  217. package/target/lib/step-indicator/step/step.element.js +151 -0
  218. package/target/lib/step-indicator/step/step.element.js.map +1 -0
  219. package/target/lib/step-indicator/step-indicator.element.d.ts +8 -0
  220. package/target/lib/step-indicator/step-indicator.element.js +48 -0
  221. package/target/lib/step-indicator/step-indicator.element.js.map +1 -0
  222. package/target/lib/step-indicator/step-indicator.stories.d.ts +21 -0
  223. package/target/lib/step-indicator/step-indicator.stories.js +45 -0
  224. package/target/lib/step-indicator/step-indicator.stories.js.map +1 -0
  225. package/target/lib/step-indicator/step-indicator.test.d.ts +2 -0
  226. package/target/lib/step-indicator/step-indicator.test.js +18 -0
  227. package/target/lib/step-indicator/step-indicator.test.js.map +1 -0
  228. package/target/lib/summary-box/summary-box.element.d.ts +7 -0
  229. package/target/lib/summary-box/summary-box.element.js +40 -0
  230. package/target/lib/summary-box/summary-box.element.js.map +1 -0
  231. package/target/lib/summary-box/summary-box.stories.d.ts +12 -0
  232. package/target/lib/summary-box/summary-box.stories.js +17 -0
  233. package/target/lib/summary-box/summary-box.stories.js.map +1 -0
  234. package/target/lib/summary-box/summary-box.test.d.ts +1 -0
  235. package/target/lib/summary-box/summary-box.test.js +11 -0
  236. package/target/lib/summary-box/summary-box.test.js.map +1 -0
  237. package/target/lib/tag/tag.element.d.ts +10 -0
  238. package/target/lib/tag/tag.element.js +57 -0
  239. package/target/lib/tag/tag.element.js.map +1 -0
  240. package/target/lib/tag/tag.stories.d.ts +19 -0
  241. package/target/lib/tag/tag.stories.js +25 -0
  242. package/target/lib/tag/tag.stories.js.map +1 -0
  243. package/target/lib/tag/tag.test.d.ts +1 -0
  244. package/target/lib/tag/tag.test.js +11 -0
  245. package/target/lib/tag/tag.test.js.map +1 -0
  246. package/target/lib/textarea/textarea.element.d.ts +19 -0
  247. package/target/lib/textarea/textarea.element.js +174 -0
  248. package/target/lib/textarea/textarea.element.js.map +1 -0
  249. package/target/lib/textarea/textarea.stories.d.ts +12 -0
  250. package/target/lib/textarea/textarea.stories.js +17 -0
  251. package/target/lib/textarea/textarea.stories.js.map +1 -0
  252. package/target/lib/textarea/textarea.test.d.ts +1 -0
  253. package/target/lib/textarea/textarea.test.js +50 -0
  254. package/target/lib/textarea/textarea.test.js.map +1 -0
  255. package/target/lib.d.ts +32 -0
  256. package/target/lib.js +33 -0
  257. package/target/lib.js.map +1 -0
@@ -0,0 +1,60 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { inject, injectable } from "@joist/di";
3
+ import { USAConfig } from "../config/config.element.js";
4
+ import { HttpService } from "./http.service.js";
5
+ let IconService = (() => {
6
+ let _classDecorators = [injectable()];
7
+ let _classDescriptor;
8
+ let _classExtraInitializers = [];
9
+ let _classThis;
10
+ var IconService = class {
11
+ static { _classThis = this; }
12
+ static {
13
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
14
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
15
+ IconService = _classThis = _classDescriptor.value;
16
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
17
+ __runInitializers(_classThis, _classExtraInitializers);
18
+ }
19
+ #config = inject(USAConfig);
20
+ #http = inject(HttpService);
21
+ #iconCache = new Map();
22
+ async getIcon(icon) {
23
+ const config = this.#config();
24
+ const http = this.#http();
25
+ const cached = this.#iconCache.get(icon);
26
+ if (cached) {
27
+ return cached.then((res) => {
28
+ if (!res.content.firstElementChild) {
29
+ throw Error("cached value is not valid");
30
+ }
31
+ return res.content.firstElementChild.cloneNode(true);
32
+ });
33
+ }
34
+ const svg = http
35
+ .fetch(`${config.iconPath}${icon}.svg`)
36
+ .then((res) => {
37
+ switch (res.status) {
38
+ case 200:
39
+ return res.text();
40
+ }
41
+ return "";
42
+ })
43
+ .then((res) => {
44
+ const template = document.createElement("template");
45
+ template.innerHTML = res;
46
+ return template;
47
+ });
48
+ this.#iconCache.set(icon, svg);
49
+ return svg.then((res) => {
50
+ if (!res.content.firstElementChild) {
51
+ throw Error("ICON is not valid");
52
+ }
53
+ return res.content.firstElementChild.cloneNode(true);
54
+ });
55
+ }
56
+ };
57
+ return IconService = _classThis;
58
+ })();
59
+ export { IconService };
60
+ //# sourceMappingURL=icon.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.service.js","sourceRoot":"","sources":["../../../src/lib/services/icon.service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;IAGnC,WAAW;4BADvB,UAAU,EAAE;;;;;;;;YACb,6KAgDC;;;YAhDY,uDAAW;;QACtB,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5B,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5B,UAAU,GAA8C,IAAI,GAAG,EAAE,CAAC;QAElE,KAAK,CAAC,OAAO,CAAC,IAAY;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;wBACnC,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;oBAC3C,CAAC;oBAED,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,GAAG,GAAG,IAAI;iBACb,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC;iBACtC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;oBACnB,KAAK,GAAG;wBACN,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;gBACtB,CAAC;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACpD,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;gBAEzB,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAE/B,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;oBACnC,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACnC,CAAC;gBAED,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC;;;;SA/CU,WAAW"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ import { Injector } from "@joist/di";
2
+ import { assert } from "@open-wc/testing";
3
+ import { HttpService } from "./http.service.js";
4
+ import { IconService } from "./icon.service.js";
5
+ describe("IconService", () => {
6
+ it("should fetch icon if not in cache", async () => {
7
+ let callCount = 0;
8
+ const app = new Injector({
9
+ providers: [
10
+ [
11
+ HttpService,
12
+ {
13
+ use: class extends HttpService {
14
+ async fetch() {
15
+ callCount++;
16
+ return new Response("<svg></svg>");
17
+ }
18
+ },
19
+ },
20
+ ],
21
+ ],
22
+ });
23
+ const icon = app.inject(IconService);
24
+ const res = await icon.getIcon("test");
25
+ assert.equal(res.nodeName, "svg");
26
+ assert.equal(callCount, 1);
27
+ });
28
+ it("should not fetch new icon if the icon is found in the cache", async () => {
29
+ let callCount = 0;
30
+ const app = new Injector({
31
+ providers: [
32
+ [
33
+ HttpService,
34
+ {
35
+ use: class extends HttpService {
36
+ async fetch() {
37
+ callCount++;
38
+ return new Response("<svg></svg>");
39
+ }
40
+ },
41
+ },
42
+ ],
43
+ ],
44
+ });
45
+ const icon = app.inject(IconService);
46
+ await icon.getIcon("test");
47
+ const res = await icon.getIcon("test");
48
+ assert.equal(res.nodeName, "svg");
49
+ assert.equal(callCount, 1);
50
+ });
51
+ });
52
+ //# sourceMappingURL=icon.service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.service.test.js","sourceRoot":"","sources":["../../../src/lib/services/icon.service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;YACvB,SAAS,EAAE;gBACT;oBACE,WAAW;oBACX;wBACE,GAAG,EAAE,KAAM,SAAQ,WAAW;4BAC5B,KAAK,CAAC,KAAK;gCACT,SAAS,EAAE,CAAC;gCACZ,OAAO,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC;4BACrC,CAAC;yBACF;qBACF;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAErC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC;YACvB,SAAS,EAAE;gBACT;oBACE,WAAW;oBACX;wBACE,GAAG,EAAE,KAAM,SAAQ,WAAW;4BAC5B,KAAK,CAAC,KAAK;gCACT,SAAS,EAAE,CAAC;gCACZ,OAAO,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC;4BACrC,CAAC;yBACF;qBACF;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAErC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ declare global {
2
+ interface HTMLElementTagNameMap {
3
+ "usa-side-nav-item": USASideNavItemElement;
4
+ }
5
+ }
6
+ export declare class USASideNavItemElement extends HTMLElement {
7
+ accessor current: boolean;
8
+ }
@@ -0,0 +1,107 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { attr, css, element, html } from "@joist/element";
3
+ let USASideNavItemElement = (() => {
4
+ let _classDecorators = [element({
5
+ tagName: "usa-side-nav-item",
6
+ shadowDom: [
7
+ css `
8
+ :host {
9
+ --usa-nav-item-padding-left: 2rem;
10
+
11
+ display: block;
12
+ border-top: 1px solid #e6e6e6;
13
+ }
14
+
15
+ .side-nav-item {
16
+ display: flex;
17
+ padding: 0.5rem 1rem;
18
+ text-decoration: none;
19
+ position: relative;
20
+ }
21
+
22
+ .side-nav-item:hover {
23
+ background-color: #f0f0f0;
24
+ color: #005ea2;
25
+ }
26
+
27
+ ::slotted(*) {
28
+ color: #5c5c5c;
29
+ text-decoration: none;
30
+ display: block;
31
+ width: 100%;
32
+ }
33
+
34
+ :host(:hover) ::slotted(*) {
35
+ color: #005ea2;
36
+ }
37
+
38
+ :host([current]) ::slotted(*:not(usa-side-nav-item)) {
39
+ color: #005ea2;
40
+ font-weight: 700;
41
+ }
42
+
43
+ :host([current]) .side-nav-item::after {
44
+ background-color: #005ea2;
45
+ border-radius: 99rem;
46
+ content: "";
47
+ display: block;
48
+ position: absolute;
49
+ bottom: 0.25rem;
50
+ top: 0.25rem;
51
+ width: 0.25rem;
52
+ left: 0;
53
+ }
54
+
55
+ :host([slot="children"]) .side-nav-item {
56
+ padding-left: var(--usa-nav-item-padding-left);
57
+ }
58
+
59
+ :host([slot="children"]) ::slotted(usa-side-nav-item) {
60
+ --usa-nav-item-padding-left: 3rem;
61
+ }
62
+
63
+ :host([slot="children"]) .side-nav-item::after {
64
+ display: none;
65
+ }
66
+ `,
67
+ html `
68
+ <div class="side-nav-item">
69
+ <slot></slot>
70
+ </div>
71
+
72
+ <slot name="children"></slot>
73
+ `,
74
+ ],
75
+ })];
76
+ let _classDescriptor;
77
+ let _classExtraInitializers = [];
78
+ let _classThis;
79
+ let _classSuper = HTMLElement;
80
+ let _current_decorators;
81
+ let _current_initializers = [];
82
+ let _current_extraInitializers = [];
83
+ var USASideNavItemElement = class extends _classSuper {
84
+ static { _classThis = this; }
85
+ static {
86
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
87
+ _current_decorators = [attr({
88
+ observed: false,
89
+ })];
90
+ __esDecorate(this, null, _current_decorators, { kind: "accessor", name: "current", static: false, private: false, access: { has: obj => "current" in obj, get: obj => obj.current, set: (obj, value) => { obj.current = value; } }, metadata: _metadata }, _current_initializers, _current_extraInitializers);
91
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
92
+ USASideNavItemElement = _classThis = _classDescriptor.value;
93
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
94
+ __runInitializers(_classThis, _classExtraInitializers);
95
+ }
96
+ #current_accessor_storage = __runInitializers(this, _current_initializers, false);
97
+ get current() { return this.#current_accessor_storage; }
98
+ set current(value) { this.#current_accessor_storage = value; }
99
+ constructor() {
100
+ super(...arguments);
101
+ __runInitializers(this, _current_extraInitializers);
102
+ }
103
+ };
104
+ return USASideNavItemElement = _classThis;
105
+ })();
106
+ export { USASideNavItemElement };
107
+ //# sourceMappingURL=side-nav-item.element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-nav-item.element.js","sourceRoot":"","sources":["../../../../src/lib/side-nav/side-nav-item/side-nav-item.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;IAgF7C,qBAAqB;4BAxEjC,OAAO,CAAC;YACP,OAAO,EAAE,mBAAmB;YAC5B,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2DF;gBACD,IAAI,CAAA;;;;;;KAMH;aACF;SACF,CAAC;;;;sBACyC,WAAW;;;;qCAAnB,SAAQ,WAAW;;;;mCACnD,IAAI,CAAC;oBACJ,QAAQ,EAAE,KAAK;iBAChB,CAAC;YACF,0KAAS,OAAO,6BAAP,OAAO,yFAAS;YAJ3B,6KAKC;;;YALY,uDAAqB;;QAIhC,2EAAmB,KAAK,EAAC;QAAzB,IAAS,OAAO,6CAAS;QAAzB,IAAS,OAAO,mDAAS;;;;;;;;SAJd,qBAAqB"}
@@ -0,0 +1,8 @@
1
+ declare global {
2
+ interface HTMLElementTagNameMap {
3
+ "usa-side-nav": USASideNavElement;
4
+ }
5
+ }
6
+ export declare class USASideNavElement extends HTMLElement {
7
+ accessor role: string;
8
+ }
@@ -0,0 +1,47 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { attr, css, element, html } from "@joist/element";
3
+ let USASideNavElement = (() => {
4
+ let _classDecorators = [element({
5
+ tagName: "usa-side-nav",
6
+ shadowDom: [
7
+ css `
8
+ :host {
9
+ display: block;
10
+ font-size: 1.06rem;
11
+ line-height: 1.3;
12
+ border-bottom: 1px solid #e6e6e6;
13
+ }
14
+ `,
15
+ html `<slot></slot>`,
16
+ ],
17
+ })];
18
+ let _classDescriptor;
19
+ let _classExtraInitializers = [];
20
+ let _classThis;
21
+ let _classSuper = HTMLElement;
22
+ let _role_decorators;
23
+ let _role_initializers = [];
24
+ let _role_extraInitializers = [];
25
+ var USASideNavElement = class extends _classSuper {
26
+ static { _classThis = this; }
27
+ static {
28
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
29
+ _role_decorators = [attr()];
30
+ __esDecorate(this, null, _role_decorators, { kind: "accessor", name: "role", static: false, private: false, access: { has: obj => "role" in obj, get: obj => obj.role, set: (obj, value) => { obj.role = value; } }, metadata: _metadata }, _role_initializers, _role_extraInitializers);
31
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
32
+ USASideNavElement = _classThis = _classDescriptor.value;
33
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
34
+ __runInitializers(_classThis, _classExtraInitializers);
35
+ }
36
+ #role_accessor_storage = __runInitializers(this, _role_initializers, "navigation");
37
+ get role() { return this.#role_accessor_storage; }
38
+ set role(value) { this.#role_accessor_storage = value; }
39
+ constructor() {
40
+ super(...arguments);
41
+ __runInitializers(this, _role_extraInitializers);
42
+ }
43
+ };
44
+ return USASideNavElement = _classThis;
45
+ })();
46
+ export { USASideNavElement };
47
+ //# sourceMappingURL=side-nav.element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-nav.element.js","sourceRoot":"","sources":["../../../src/lib/side-nav/side-nav.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;IAsB7C,iBAAiB;4BAd7B,OAAO,CAAC;YACP,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;KAOF;gBACD,IAAI,CAAA,eAAe;aACpB;SACF,CAAC;;;;sBACqC,WAAW;;;;iCAAnB,SAAQ,WAAW;;;;gCAC/C,IAAI,EAAE;YACP,iKAAS,IAAI,6BAAJ,IAAI,mFAAgB;YAF/B,6KAGC;;;YAHY,uDAAiB;;QAE5B,qEAAgB,YAAY,EAAC;QAA7B,IAAS,IAAI,0CAAgB;QAA7B,IAAS,IAAI,gDAAgB;;;;;;;;SAFlB,iBAAiB"}
@@ -0,0 +1,12 @@
1
+ import type { StoryObj } from "@storybook/web-components";
2
+ import type { USASideNavElement } from "./side-nav.element.js";
3
+ declare const meta: {
4
+ title: string;
5
+ tags: string[];
6
+ render(args: USASideNavElement): import("lit-html").TemplateResult<1>;
7
+ argTypes: {};
8
+ args: {};
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<USASideNavElement>;
12
+ export declare const Primary: Story;
@@ -0,0 +1,55 @@
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-side-nav",
5
+ tags: ["autodocs"],
6
+ render(args) {
7
+ return html `
8
+ <usa-side-nav>
9
+ <usa-side-nav-item current>
10
+ <usa-link href="#">Current Page</usa-link>
11
+
12
+ <usa-side-nav-item slot="children">
13
+ <usa-link href="#">Child</usa-link>
14
+ </usa-side-nav-item>
15
+
16
+ <usa-side-nav-item slot="children" current>
17
+ <usa-link href="#">Child</usa-link>
18
+
19
+ <usa-side-nav-item slot="children">
20
+ <usa-link href="#">Grandchild</usa-link>
21
+ </usa-side-nav-item>
22
+
23
+ <usa-side-nav-item slot="children" current>
24
+ <usa-link href="#">Grandchild</usa-link>
25
+ </usa-side-nav-item>
26
+
27
+ <usa-side-nav-item slot="children">
28
+ <usa-link href="#">Grandchild</usa-link>
29
+ </usa-side-nav-item>
30
+ </usa-side-nav-item>
31
+
32
+ <usa-side-nav-item slot="children">
33
+ <usa-link href="#">Child</usa-link>
34
+ </usa-side-nav-item>
35
+ </usa-side-nav-item>
36
+
37
+ <usa-side-nav-item>
38
+ <usa-link href="#">Parent</usa-link>
39
+ </usa-side-nav-item>
40
+
41
+ <usa-side-nav-item>
42
+ <usa-link href="#">Parent</usa-link>
43
+ </usa-side-nav-item>
44
+ </usa-side-nav>
45
+ `;
46
+ },
47
+ argTypes: {},
48
+ args: {},
49
+ };
50
+ export default meta;
51
+ // More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
52
+ export const Primary = {
53
+ args: {},
54
+ };
55
+ //# sourceMappingURL=side-nav.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-nav.stories.js","sourceRoot":"","sources":["../../../src/lib/side-nav/side-nav.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAI3B,kFAAkF;AAClF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsCV,CAAC;IACJ,CAAC;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CACyB,CAAC;AAEpC,eAAe,IAAI,CAAC;AAIpB,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,EAAE;CACT,CAAC"}
@@ -0,0 +1,3 @@
1
+ import "../link/link.element.js";
2
+ import "./side-nav.element.js";
3
+ import "./side-nav-item/side-nav-item.element.js";
@@ -0,0 +1,93 @@
1
+ import "../link/link.element.js";
2
+ import "./side-nav.element.js";
3
+ import "./side-nav-item/side-nav-item.element.js";
4
+ import { assert, fixture, html } from "@open-wc/testing";
5
+ describe("usa-side-nav", () => {
6
+ it("should be accessible", async () => {
7
+ const sideNav = await fixture(html `
8
+ <usa-side-nav>
9
+ <usa-side-nav-item current>
10
+ <usa-link href="#">Current Page</usa-link>
11
+
12
+ <usa-side-nav-item slot="children">
13
+ <usa-link href="#">Child</usa-link>
14
+ </usa-side-nav-item>
15
+
16
+ <usa-side-nav-item slot="children" current>
17
+ <usa-link href="#">Child</usa-link>
18
+
19
+ <usa-side-nav-item slot="children">
20
+ <usa-link href="#">Grandchild</usa-link>
21
+ </usa-side-nav-item>
22
+
23
+ <usa-side-nav-item slot="children" current>
24
+ <usa-link href="#">Grandchild</usa-link>
25
+ </usa-side-nav-item>
26
+
27
+ <usa-side-nav-item slot="children">
28
+ <usa-link href="#">Grandchild</usa-link>
29
+ </usa-side-nav-item>
30
+ </usa-side-nav-item>
31
+
32
+ <usa-side-nav-item slot="children">
33
+ <usa-link href="#">Child</usa-link>
34
+ </usa-side-nav-item>
35
+ </usa-side-nav-item>
36
+
37
+ <usa-side-nav-item>
38
+ <usa-link href="#">Parent</usa-link>
39
+ </usa-side-nav-item>
40
+
41
+ <usa-side-nav-item>
42
+ <usa-link href="#">Parent</usa-link>
43
+ </usa-side-nav-item>
44
+ </usa-side-nav>
45
+ `);
46
+ return assert.isAccessible(sideNav);
47
+ });
48
+ it("should set child padding correctly", async () => {
49
+ const sideNav = await fixture(html `
50
+ <usa-side-nav>
51
+ <usa-side-nav-item current>
52
+ <usa-link href="#">Current Page</usa-link>
53
+
54
+ <usa-side-nav-item slot="children">
55
+ <usa-link href="#">Child</usa-link>
56
+ </usa-side-nav-item>
57
+
58
+ <usa-side-nav-item slot="children" current>
59
+ <usa-link href="#">Child</usa-link>
60
+
61
+ <usa-side-nav-item slot="children">
62
+ <usa-link href="#">Grandchild</usa-link>
63
+ </usa-side-nav-item>
64
+
65
+ <usa-side-nav-item slot="children" current>
66
+ <usa-link href="#">Grandchild</usa-link>
67
+ </usa-side-nav-item>
68
+
69
+ <usa-side-nav-item slot="children">
70
+ <usa-link href="#">Grandchild</usa-link>
71
+ </usa-side-nav-item>
72
+ </usa-side-nav-item>
73
+
74
+ <usa-side-nav-item slot="children">
75
+ <usa-link href="#">Child</usa-link>
76
+ </usa-side-nav-item>
77
+ </usa-side-nav-item>
78
+
79
+ <usa-side-nav-item>
80
+ <usa-link href="#">Parent</usa-link>
81
+ </usa-side-nav-item>
82
+
83
+ <usa-side-nav-item>
84
+ <usa-link href="#">Parent</usa-link>
85
+ </usa-side-nav-item>
86
+ </usa-side-nav>
87
+ `);
88
+ const items = sideNav.querySelectorAll("usa-side-nav-item");
89
+ assert.equal(getComputedStyle(items[1]).getPropertyValue("--usa-nav-item-padding-left"), "2rem");
90
+ assert.equal(getComputedStyle(items[3]).getPropertyValue("--usa-nav-item-padding-left"), "3rem");
91
+ });
92
+ });
93
+ //# sourceMappingURL=side-nav.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-nav.test.js","sourceRoot":"","sources":["../../../src/lib/side-nav/side-nav.test.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0CAA0C,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAoB,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsCpD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAoB,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsCpD,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QAE5D,MAAM,CAAC,KAAK,CACV,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CACzC,6BAA6B,CAC9B,EACD,MAAM,CACP,CAAC;QAEF,MAAM,CAAC,KAAK,CACV,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CACzC,6BAA6B,CAC9B,EACD,MAAM,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ declare global {
2
+ interface HTMLElementTagNameMap {
3
+ "usa-step": USAStepIndicatorStepElement;
4
+ }
5
+ }
6
+ export declare class USAStepIndicatorStepElement extends HTMLElement {
7
+ accessor state: "complete" | "current" | "";
8
+ accessor role: string;
9
+ onStateAttrChanged(): void;
10
+ }
@@ -0,0 +1,151 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { attr, attrChanged, css, element, html } from "@joist/element";
3
+ let USAStepIndicatorStepElement = (() => {
4
+ let _classDecorators = [element({
5
+ tagName: "usa-step",
6
+ shadowDom: [
7
+ css `
8
+ :host {
9
+ color: #5c5c5c;
10
+ display: block;
11
+ flex: 1 1 0%;
12
+ position: relative;
13
+ counter-increment: usa-step-indicator;
14
+ }
15
+
16
+ :host([counter]):after {
17
+ content: counter(usa-step-indicator);
18
+ height: 2.5rem;
19
+ border-radius: 99rem;
20
+ width: 2.5rem;
21
+ background-color: #fff;
22
+ box-shadow:
23
+ inset 0 0 0 0.25rem #919191,
24
+ 0 0 0 0.25rem #fff;
25
+ color: #5c5c5c;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ font-weight: 700;
30
+ left: 0;
31
+ line-height: 0.9;
32
+ padding: calc((2.5rem - 2ex * 0.9) * 0.5);
33
+ position: absolute;
34
+ z-index: 100;
35
+ top: 0;
36
+ transform: translateY(-40%);
37
+ box-sizing: border-box;
38
+ }
39
+
40
+ :host([state="complete"]) {
41
+ color: #162e51;
42
+ }
43
+
44
+ :host([state="complete"])::before {
45
+ background-color: #162e51;
46
+ }
47
+
48
+ :host([state="current"]) {
49
+ color: #005ea2;
50
+ font-weight: bold;
51
+ }
52
+
53
+ :host([state="current"])::before {
54
+ background-color: #005ea2;
55
+ }
56
+
57
+ :host:before {
58
+ background-color: #919191;
59
+ content: "";
60
+ display: block;
61
+ height: 0.5rem;
62
+ }
63
+
64
+ .label {
65
+ display: block;
66
+ font-size: 1.06rem;
67
+ margin-top: 0.5rem;
68
+ padding-right: 2rem;
69
+ text-align: left;
70
+ }
71
+
72
+ :host([counter]) .label {
73
+ margin-top: 1.5rem;
74
+ }
75
+
76
+ :host([counter][state="complete"]):after {
77
+ background-color: #162e51;
78
+ box-shadow: 0 0 0 0.25rem #fff;
79
+ color: #fff;
80
+ }
81
+
82
+ :host([counter][state="current"]):after {
83
+ background-color: #005ea2;
84
+ box-shadow: 0 0 0 0.25rem #fff;
85
+ color: #fff;
86
+ }
87
+
88
+ :host([counter="small"]):after {
89
+ height: 1.5rem;
90
+ width: 1.5rem;
91
+ font-size: 0.93rem;
92
+ }
93
+
94
+ :host([counter]:last-child):before {
95
+ width: 0;
96
+ }
97
+ `,
98
+ html `
99
+ <div class="label">
100
+ <slot></slot>
101
+ </div>
102
+ `,
103
+ ],
104
+ })];
105
+ let _classDescriptor;
106
+ let _classExtraInitializers = [];
107
+ let _classThis;
108
+ let _classSuper = HTMLElement;
109
+ let _instanceExtraInitializers = [];
110
+ let _state_decorators;
111
+ let _state_initializers = [];
112
+ let _state_extraInitializers = [];
113
+ let _role_decorators;
114
+ let _role_initializers = [];
115
+ let _role_extraInitializers = [];
116
+ let _onStateAttrChanged_decorators;
117
+ var USAStepIndicatorStepElement = class extends _classSuper {
118
+ static { _classThis = this; }
119
+ static {
120
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
121
+ _state_decorators = [attr()];
122
+ _role_decorators = [attr()];
123
+ _onStateAttrChanged_decorators = [attrChanged("state")];
124
+ __esDecorate(this, null, _state_decorators, { kind: "accessor", name: "state", static: false, private: false, access: { has: obj => "state" in obj, get: obj => obj.state, set: (obj, value) => { obj.state = value; } }, metadata: _metadata }, _state_initializers, _state_extraInitializers);
125
+ __esDecorate(this, null, _role_decorators, { kind: "accessor", name: "role", static: false, private: false, access: { has: obj => "role" in obj, get: obj => obj.role, set: (obj, value) => { obj.role = value; } }, metadata: _metadata }, _role_initializers, _role_extraInitializers);
126
+ __esDecorate(this, null, _onStateAttrChanged_decorators, { kind: "method", name: "onStateAttrChanged", static: false, private: false, access: { has: obj => "onStateAttrChanged" in obj, get: obj => obj.onStateAttrChanged }, metadata: _metadata }, null, _instanceExtraInitializers);
127
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
128
+ USAStepIndicatorStepElement = _classThis = _classDescriptor.value;
129
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
130
+ __runInitializers(_classThis, _classExtraInitializers);
131
+ }
132
+ #state_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _state_initializers, ""));
133
+ get state() { return this.#state_accessor_storage; }
134
+ set state(value) { this.#state_accessor_storage = value; }
135
+ #role_accessor_storage = (__runInitializers(this, _state_extraInitializers), __runInitializers(this, _role_initializers, "listitem"));
136
+ get role() { return this.#role_accessor_storage; }
137
+ set role(value) { this.#role_accessor_storage = value; }
138
+ onStateAttrChanged() {
139
+ if (this.state === "current") {
140
+ this.ariaCurrent = "step";
141
+ }
142
+ }
143
+ constructor() {
144
+ super(...arguments);
145
+ __runInitializers(this, _role_extraInitializers);
146
+ }
147
+ };
148
+ return USAStepIndicatorStepElement = _classThis;
149
+ })();
150
+ export { USAStepIndicatorStepElement };
151
+ //# sourceMappingURL=step.element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.element.js","sourceRoot":"","sources":["../../../../src/lib/step-indicator/step/step.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;IA6G1D,2BAA2B;4BArGvC,OAAO,CAAC;YACP,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0FF;gBACD,IAAI,CAAA;;;;KAIH;aACF;SACF,CAAC;;;;sBAC+C,WAAW;;;;;;;;;2CAAnB,SAAQ,WAAW;;;;iCACzD,IAAI,EAAE;gCAGN,IAAI,EAAE;8CAGN,WAAW,CAAC,OAAO,CAAC;YALrB,oKAAS,KAAK,6BAAL,KAAK,qFAAmC;YAGjD,iKAAS,IAAI,6BAAJ,IAAI,mFAAc;YAG3B,yMAAA,kBAAkB,6DAIjB;YAZH,6KAaC;;;YAbY,uDAA2B;;QAEtC,2BAFW,mDAA2B,+CAEQ,EAAE,GAAC;QAAjD,IAAS,KAAK,2CAAmC;QAAjD,IAAS,KAAK,iDAAmC;QAGjD,yHAAgB,UAAU,GAAC;QAA3B,IAAS,IAAI,0CAAc;QAA3B,IAAS,IAAI,gDAAc;QAG3B,kBAAkB;YAChB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAC5B,CAAC;QACH,CAAC;;;;;;;;SAZU,2BAA2B"}
@@ -0,0 +1,8 @@
1
+ declare global {
2
+ interface HTMLElementTagNameMap {
3
+ "usa-step-indicator": USAStepIndicatorElement;
4
+ }
5
+ }
6
+ export declare class USAStepIndicatorElement extends HTMLElement {
7
+ accessor role: string;
8
+ }