@noctuatech/uswds 1.3.2 → 1.3.4

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 (299) hide show
  1. package/package.json +5 -5
  2. package/src/lib/accordion/{accordion.test.ts → accordion.element.test.ts} +28 -31
  3. package/src/lib/accordion/accordion.element.ts +9 -7
  4. package/src/lib/alert/{alert.test.ts → alert.element.test.ts} +5 -6
  5. package/src/lib/alert/alert.element.ts +6 -4
  6. package/src/lib/breadcrumbs/breadcrumb/breadcrumb.element.ts +10 -10
  7. package/src/lib/breadcrumbs/breadcrumbs.element.test.ts +23 -0
  8. package/src/lib/button/button.element.test.ts +15 -0
  9. package/src/lib/button/button.element.ts +37 -42
  10. package/src/lib/button-group/button-group.element.test.ts +13 -0
  11. package/src/lib/card/{card.test.ts → card.element.test.ts} +12 -12
  12. package/src/lib/checkbox/{checkbox.test.ts → checkbox.element.test.ts} +15 -17
  13. package/src/lib/checkbox/checkbox.element.ts +28 -32
  14. package/src/lib/checkbox/checkbox.stories.ts +17 -33
  15. package/src/lib/collection/collection-item/collection-item.element.test.ts +15 -0
  16. package/src/lib/collection/collection.element.test.ts +13 -0
  17. package/src/lib/combo-box/{combo-box.test.ts → combo-box.element.test.ts} +64 -93
  18. package/src/lib/config/config.element.test.ts +13 -0
  19. package/src/lib/description/description.element.test.ts +13 -0
  20. package/src/lib/file-input/file-input-preview/file-input-preview.element.test.ts +93 -0
  21. package/src/lib/file-input/file-input-preview/file-input-preview.element.ts +15 -13
  22. package/src/lib/file-input/file-input.element.test.ts +73 -0
  23. package/src/lib/file-input/file-input.element.ts +10 -20
  24. package/src/lib/in-page-nav/in-page-nav-item/in-page-nav-item.element.ts +20 -20
  25. package/src/lib/in-page-nav/{in-page-nav.test.ts → in-page-nav.element.test.ts} +18 -21
  26. package/src/lib/input/{input.test.ts → input.element.test.ts} +11 -0
  27. package/src/lib/input/input.element.ts +57 -41
  28. package/src/lib/input-mask/input-mask.element.ts +1 -1
  29. package/src/lib/input-mask/input-mask.stories.ts +2 -0
  30. package/src/lib/link/link.element.ts +18 -25
  31. package/src/lib/modal/modal-close/modal-close.element.test.ts +13 -0
  32. package/src/lib/modal/modal-heading/modal-heading.element.test.ts +15 -0
  33. package/src/lib/modal/modal.element.test.ts +23 -0
  34. package/src/lib/pagination/pagination-item/pagination-item.element.ts +9 -6
  35. package/src/lib/pagination/pagination-no/pagination-no.element.ts +17 -17
  36. package/src/lib/pagination/pagination.element.test.ts +13 -0
  37. package/src/lib/process-list/{process-list.test.ts → process-list.element.test.ts} +19 -12
  38. package/src/lib/radio/radio-option/radio-option.element.test.ts +20 -0
  39. package/src/lib/radio/radio.element.test.ts +121 -0
  40. package/src/lib/range-slider/range-slider.element.test.ts +57 -0
  41. package/src/lib/range-slider/range-slider.element.ts +48 -33
  42. package/src/lib/search/search.element.test.ts +71 -0
  43. package/src/lib/select/{select.test.ts → select.element.test.ts} +23 -26
  44. package/src/lib/select/select.element.ts +31 -32
  45. package/src/lib/side-nav/{side-nav.test.ts → side-nav.element.test.ts} +13 -23
  46. package/src/lib/step-indicator/step/step.element.ts +16 -16
  47. package/src/lib/step-indicator/{step-indicator.test.ts → step-indicator.element.test.ts} +6 -6
  48. package/src/lib/summary-box/summary-box.element.test.ts +13 -0
  49. package/src/lib/tag/tag.element.test.ts +13 -0
  50. package/src/lib/textarea/{textarea.test.ts → textarea.element.test.ts} +13 -13
  51. package/src/lib/textarea/textarea.element.ts +23 -24
  52. package/target/lib/accordion/accordion.element.js +4 -2
  53. package/target/lib/accordion/accordion.element.js.map +1 -1
  54. package/target/lib/accordion/accordion.element.test.d.ts +1 -0
  55. package/target/lib/accordion/{accordion.test.js → accordion.element.test.js} +19 -19
  56. package/target/lib/accordion/accordion.element.test.js.map +1 -0
  57. package/target/lib/alert/alert.element.js +4 -2
  58. package/target/lib/alert/alert.element.js.map +1 -1
  59. package/target/lib/alert/alert.element.test.d.ts +1 -0
  60. package/target/lib/alert/{alert.test.js → alert.element.test.js} +5 -5
  61. package/target/lib/alert/alert.element.test.js.map +1 -0
  62. package/target/lib/breadcrumbs/breadcrumb/breadcrumb.element.d.ts +1 -1
  63. package/target/lib/breadcrumbs/breadcrumb/breadcrumb.element.js +6 -6
  64. package/target/lib/breadcrumbs/breadcrumbs.element.test.d.ts +2 -0
  65. package/target/lib/breadcrumbs/{breadcrumbs.test.js → breadcrumbs.element.test.js} +6 -6
  66. package/target/lib/breadcrumbs/breadcrumbs.element.test.js.map +1 -0
  67. package/target/lib/button/button.element.d.ts +3 -3
  68. package/target/lib/button/button.element.js +17 -23
  69. package/target/lib/button/button.element.js.map +1 -1
  70. package/target/lib/button/button.element.test.d.ts +1 -0
  71. package/target/lib/button/button.element.test.js +12 -0
  72. package/target/lib/button/button.element.test.js.map +1 -0
  73. package/target/lib/button-group/button-group.element.test.d.ts +1 -0
  74. package/target/lib/button-group/button-group.element.test.js +9 -0
  75. package/target/lib/button-group/button-group.element.test.js.map +1 -0
  76. package/target/lib/card/card.element.test.d.ts +6 -0
  77. package/target/lib/card/{card.test.js → card.element.test.js} +10 -10
  78. package/target/lib/card/card.element.test.js.map +1 -0
  79. package/target/lib/checkbox/checkbox.element.d.ts +3 -2
  80. package/target/lib/checkbox/checkbox.element.js +21 -22
  81. package/target/lib/checkbox/checkbox.element.js.map +1 -1
  82. package/target/lib/checkbox/checkbox.element.test.d.ts +1 -0
  83. package/target/lib/checkbox/{checkbox.test.js → checkbox.element.test.js} +13 -12
  84. package/target/lib/checkbox/checkbox.element.test.js.map +1 -0
  85. package/target/lib/checkbox/checkbox.stories.d.ts +2 -2
  86. package/target/lib/checkbox/checkbox.stories.js +6 -6
  87. package/target/lib/checkbox/checkbox.stories.js.map +1 -1
  88. package/target/lib/collection/collection-item/collection-item.element.test.d.ts +1 -0
  89. package/target/lib/collection/collection-item/collection-item.element.test.js +9 -0
  90. package/target/lib/collection/collection-item/collection-item.element.test.js.map +1 -0
  91. package/target/lib/collection/collection.element.test.d.ts +1 -0
  92. package/target/lib/collection/collection.element.test.js +9 -0
  93. package/target/lib/collection/collection.element.test.js.map +1 -0
  94. package/target/lib/combo-box/combo-box.element.test.d.ts +3 -0
  95. package/target/lib/combo-box/{combo-box.test.js → combo-box.element.test.js} +60 -60
  96. package/target/lib/combo-box/combo-box.element.test.js.map +1 -0
  97. package/target/lib/config/config.element.test.d.ts +1 -0
  98. package/target/lib/config/config.element.test.js +9 -0
  99. package/target/lib/config/config.element.test.js.map +1 -0
  100. package/target/lib/description/description.element.test.d.ts +1 -0
  101. package/target/lib/description/description.element.test.js +9 -0
  102. package/target/lib/description/description.element.test.js.map +1 -0
  103. package/target/lib/file-input/file-input-preview/file-input-preview.element.js +12 -10
  104. package/target/lib/file-input/file-input-preview/file-input-preview.element.js.map +1 -1
  105. package/target/lib/file-input/file-input-preview/file-input-preview.element.test.d.ts +2 -0
  106. package/target/lib/file-input/file-input-preview/{file-input-preview.test.js → file-input-preview.element.test.js} +24 -24
  107. package/target/lib/file-input/file-input-preview/file-input-preview.element.test.js.map +1 -0
  108. package/target/lib/file-input/file-input.element.js +5 -6
  109. package/target/lib/file-input/file-input.element.js.map +1 -1
  110. package/target/lib/file-input/file-input.element.test.d.ts +1 -0
  111. package/target/lib/file-input/{file-input.test.js → file-input.element.test.js} +16 -16
  112. package/target/lib/file-input/file-input.element.test.js.map +1 -0
  113. package/target/lib/in-page-nav/in-page-nav-item/in-page-nav-item.element.d.ts +2 -3
  114. package/target/lib/in-page-nav/in-page-nav-item/in-page-nav-item.element.js +15 -13
  115. package/target/lib/in-page-nav/in-page-nav-item/in-page-nav-item.element.js.map +1 -1
  116. package/target/lib/in-page-nav/in-page-nav.element.test.d.ts +2 -0
  117. package/target/lib/in-page-nav/{in-page-nav.test.js → in-page-nav.element.test.js} +6 -6
  118. package/target/lib/in-page-nav/in-page-nav.element.test.js.map +1 -0
  119. package/target/lib/input/input.element.d.ts +4 -5
  120. package/target/lib/input/input.element.js +54 -48
  121. package/target/lib/input/input.element.js.map +1 -1
  122. package/target/lib/input/{input.test.js → input.element.test.js} +6 -1
  123. package/target/lib/input/input.element.test.js.map +1 -0
  124. package/target/lib/input-mask/input-mask.element.d.ts +1 -1
  125. package/target/lib/input-mask/input-mask.element.js +1 -1
  126. package/target/lib/input-mask/input-mask.element.js.map +1 -1
  127. package/target/lib/input-mask/{input-mask.test.js → input-mask.element.test.js} +1 -1
  128. package/target/lib/input-mask/input-mask.element.test.js.map +1 -0
  129. package/target/lib/input-mask/input-mask.stories.js +1 -1
  130. package/target/lib/input-mask/input-mask.stories.js.map +1 -1
  131. package/target/lib/link/link.element.d.ts +3 -5
  132. package/target/lib/link/link.element.js +14 -26
  133. package/target/lib/link/link.element.js.map +1 -1
  134. package/target/lib/modal/modal-close/modal-close.element.test.d.ts +1 -0
  135. package/target/lib/modal/modal-close/modal-close.element.test.js +9 -0
  136. package/target/lib/modal/modal-close/modal-close.element.test.js.map +1 -0
  137. package/target/lib/modal/modal-heading/modal-heading.element.test.d.ts +1 -0
  138. package/target/lib/modal/modal-heading/modal-heading.element.test.js +9 -0
  139. package/target/lib/modal/modal-heading/modal-heading.element.test.js.map +1 -0
  140. package/target/lib/modal/modal.element.test.d.ts +3 -0
  141. package/target/lib/modal/modal.element.test.js +11 -0
  142. package/target/lib/modal/modal.element.test.js.map +1 -0
  143. package/target/lib/pagination/pagination-item/pagination-item.element.d.ts +1 -1
  144. package/target/lib/pagination/pagination-item/pagination-item.element.js +3 -3
  145. package/target/lib/pagination/pagination-item/pagination-item.element.js.map +1 -1
  146. package/target/lib/pagination/pagination-no/pagination-no.element.d.ts +2 -3
  147. package/target/lib/pagination/pagination-no/pagination-no.element.js +10 -8
  148. package/target/lib/pagination/pagination-no/pagination-no.element.js.map +1 -1
  149. package/target/lib/pagination/pagination.element.test.d.ts +1 -0
  150. package/target/lib/pagination/pagination.element.test.js +9 -0
  151. package/target/lib/pagination/pagination.element.test.js.map +1 -0
  152. package/target/lib/process-list/process-list.element.test.d.ts +2 -0
  153. package/target/lib/process-list/{process-list.test.js → process-list.element.test.js} +6 -6
  154. package/target/lib/process-list/process-list.element.test.js.map +1 -0
  155. package/target/lib/radio/radio-option/radio-option.element.test.d.ts +2 -0
  156. package/target/lib/radio/radio-option/radio-option.element.test.js +11 -0
  157. package/target/lib/radio/radio-option/radio-option.element.test.js.map +1 -0
  158. package/target/lib/radio/radio.element.test.d.ts +2 -0
  159. package/target/lib/radio/{radio.test.js → radio.element.test.js} +19 -28
  160. package/target/lib/radio/radio.element.test.js.map +1 -0
  161. package/target/lib/range-slider/range-slider.element.d.ts +4 -2
  162. package/target/lib/range-slider/range-slider.element.js +34 -29
  163. package/target/lib/range-slider/range-slider.element.js.map +1 -1
  164. package/target/lib/range-slider/range-slider.element.test.d.ts +1 -0
  165. package/target/lib/range-slider/range-slider.element.test.js +26 -0
  166. package/target/lib/range-slider/range-slider.element.test.js.map +1 -0
  167. package/target/lib/search/search.element.test.d.ts +3 -0
  168. package/target/lib/search/search.element.test.js +52 -0
  169. package/target/lib/search/search.element.test.js.map +1 -0
  170. package/target/lib/select/select.element.d.ts +4 -3
  171. package/target/lib/select/select.element.js +25 -26
  172. package/target/lib/select/select.element.js.map +1 -1
  173. package/target/lib/select/select.element.test.d.ts +2 -0
  174. package/target/lib/select/{select.test.js → select.element.test.js} +23 -27
  175. package/target/lib/select/select.element.test.js.map +1 -0
  176. package/target/lib/services/{icon.service.test.js → icon.service.element.test.js} +1 -1
  177. package/target/lib/services/icon.service.element.test.js.map +1 -0
  178. package/target/lib/side-nav/side-nav.element.test.d.ts +3 -0
  179. package/target/lib/side-nav/{side-nav.test.js → side-nav.element.test.js} +11 -11
  180. package/target/lib/side-nav/side-nav.element.test.js.map +1 -0
  181. package/target/lib/step-indicator/step/step.element.d.ts +2 -2
  182. package/target/lib/step-indicator/step/step.element.js +8 -8
  183. package/target/lib/step-indicator/step-indicator.element.test.d.ts +2 -0
  184. package/target/lib/step-indicator/{step-indicator.test.js → step-indicator.element.test.js} +6 -6
  185. package/target/lib/step-indicator/step-indicator.element.test.js.map +1 -0
  186. package/target/lib/summary-box/summary-box.element.test.d.ts +1 -0
  187. package/target/lib/summary-box/summary-box.element.test.js +9 -0
  188. package/target/lib/summary-box/summary-box.element.test.js.map +1 -0
  189. package/target/lib/tag/tag.element.test.d.ts +1 -0
  190. package/target/lib/tag/tag.element.test.js +9 -0
  191. package/target/lib/tag/tag.element.test.js.map +1 -0
  192. package/target/lib/textarea/textarea.element.d.ts +2 -2
  193. package/target/lib/textarea/textarea.element.js +19 -24
  194. package/target/lib/textarea/textarea.element.js.map +1 -1
  195. package/target/lib/textarea/textarea.element.test.d.ts +1 -0
  196. package/target/lib/textarea/{textarea.test.js → textarea.element.test.js} +14 -14
  197. package/target/lib/textarea/textarea.element.test.js.map +1 -0
  198. package/src/lib/breadcrumbs/breadcrumbs.test.ts +0 -21
  199. package/src/lib/button/button.test.ts +0 -17
  200. package/src/lib/button-group/button-group.test.ts +0 -15
  201. package/src/lib/collection/collection-item/collection-item.test.ts +0 -15
  202. package/src/lib/collection/collection.test.ts +0 -15
  203. package/src/lib/config/config.test.ts +0 -15
  204. package/src/lib/description/description.test.ts +0 -15
  205. package/src/lib/file-input/file-input-preview/file-input-preview.test.ts +0 -95
  206. package/src/lib/file-input/file-input.test.ts +0 -79
  207. package/src/lib/modal/modal-close/modal-close.test.ts +0 -15
  208. package/src/lib/modal/modal-heading/modal-heading.test.ts +0 -15
  209. package/src/lib/modal/modal.test.ts +0 -25
  210. package/src/lib/pagination/pagination.test.ts +0 -15
  211. package/src/lib/radio/radio-option/radio-option.test.ts +0 -20
  212. package/src/lib/radio/radio.test.ts +0 -174
  213. package/src/lib/range-slider/range-slider.test.ts +0 -52
  214. package/src/lib/search/search.test.ts +0 -81
  215. package/src/lib/summary-box/summary-box.test.ts +0 -15
  216. package/src/lib/tag/tag.test.ts +0 -15
  217. package/target/lib/accordion/accordion.test.d.ts +0 -1
  218. package/target/lib/accordion/accordion.test.js.map +0 -1
  219. package/target/lib/alert/alert.test.d.ts +0 -1
  220. package/target/lib/alert/alert.test.js.map +0 -1
  221. package/target/lib/breadcrumbs/breadcrumbs.test.d.ts +0 -2
  222. package/target/lib/breadcrumbs/breadcrumbs.test.js.map +0 -1
  223. package/target/lib/button/button.test.d.ts +0 -1
  224. package/target/lib/button/button.test.js +0 -12
  225. package/target/lib/button/button.test.js.map +0 -1
  226. package/target/lib/button-group/button-group.test.d.ts +0 -1
  227. package/target/lib/button-group/button-group.test.js +0 -9
  228. package/target/lib/button-group/button-group.test.js.map +0 -1
  229. package/target/lib/card/card.test.d.ts +0 -6
  230. package/target/lib/card/card.test.js.map +0 -1
  231. package/target/lib/checkbox/checkbox.test.d.ts +0 -1
  232. package/target/lib/checkbox/checkbox.test.js.map +0 -1
  233. package/target/lib/collection/collection-item/collection-item.test.d.ts +0 -1
  234. package/target/lib/collection/collection-item/collection-item.test.js +0 -9
  235. package/target/lib/collection/collection-item/collection-item.test.js.map +0 -1
  236. package/target/lib/collection/collection.test.d.ts +0 -1
  237. package/target/lib/collection/collection.test.js +0 -9
  238. package/target/lib/collection/collection.test.js.map +0 -1
  239. package/target/lib/combo-box/combo-box.test.d.ts +0 -3
  240. package/target/lib/combo-box/combo-box.test.js.map +0 -1
  241. package/target/lib/config/config.test.d.ts +0 -1
  242. package/target/lib/config/config.test.js +0 -9
  243. package/target/lib/config/config.test.js.map +0 -1
  244. package/target/lib/description/description.test.d.ts +0 -1
  245. package/target/lib/description/description.test.js +0 -9
  246. package/target/lib/description/description.test.js.map +0 -1
  247. package/target/lib/file-input/file-input-preview/file-input-preview.test.d.ts +0 -2
  248. package/target/lib/file-input/file-input-preview/file-input-preview.test.js.map +0 -1
  249. package/target/lib/file-input/file-input.test.d.ts +0 -1
  250. package/target/lib/file-input/file-input.test.js.map +0 -1
  251. package/target/lib/in-page-nav/in-page-nav.test.d.ts +0 -2
  252. package/target/lib/in-page-nav/in-page-nav.test.js.map +0 -1
  253. package/target/lib/input/input.test.js.map +0 -1
  254. package/target/lib/input-mask/input-mask.test.js.map +0 -1
  255. package/target/lib/modal/modal-close/modal-close.test.d.ts +0 -1
  256. package/target/lib/modal/modal-close/modal-close.test.js +0 -9
  257. package/target/lib/modal/modal-close/modal-close.test.js.map +0 -1
  258. package/target/lib/modal/modal-heading/modal-heading.test.d.ts +0 -1
  259. package/target/lib/modal/modal-heading/modal-heading.test.js +0 -9
  260. package/target/lib/modal/modal-heading/modal-heading.test.js.map +0 -1
  261. package/target/lib/modal/modal.test.d.ts +0 -3
  262. package/target/lib/modal/modal.test.js +0 -11
  263. package/target/lib/modal/modal.test.js.map +0 -1
  264. package/target/lib/pagination/pagination.test.d.ts +0 -1
  265. package/target/lib/pagination/pagination.test.js +0 -9
  266. package/target/lib/pagination/pagination.test.js.map +0 -1
  267. package/target/lib/process-list/process-list.test.d.ts +0 -2
  268. package/target/lib/process-list/process-list.test.js.map +0 -1
  269. package/target/lib/radio/radio-option/radio-option.test.d.ts +0 -2
  270. package/target/lib/radio/radio-option/radio-option.test.js +0 -11
  271. package/target/lib/radio/radio-option/radio-option.test.js.map +0 -1
  272. package/target/lib/radio/radio.test.d.ts +0 -2
  273. package/target/lib/radio/radio.test.js.map +0 -1
  274. package/target/lib/range-slider/range-slider.test.d.ts +0 -1
  275. package/target/lib/range-slider/range-slider.test.js +0 -25
  276. package/target/lib/range-slider/range-slider.test.js.map +0 -1
  277. package/target/lib/search/search.test.d.ts +0 -3
  278. package/target/lib/search/search.test.js +0 -52
  279. package/target/lib/search/search.test.js.map +0 -1
  280. package/target/lib/select/select.test.d.ts +0 -2
  281. package/target/lib/select/select.test.js.map +0 -1
  282. package/target/lib/services/icon.service.test.js.map +0 -1
  283. package/target/lib/side-nav/side-nav.test.d.ts +0 -3
  284. package/target/lib/side-nav/side-nav.test.js.map +0 -1
  285. package/target/lib/step-indicator/step-indicator.test.d.ts +0 -2
  286. package/target/lib/step-indicator/step-indicator.test.js.map +0 -1
  287. package/target/lib/summary-box/summary-box.test.d.ts +0 -1
  288. package/target/lib/summary-box/summary-box.test.js +0 -9
  289. package/target/lib/summary-box/summary-box.test.js.map +0 -1
  290. package/target/lib/tag/tag.test.d.ts +0 -1
  291. package/target/lib/tag/tag.test.js +0 -9
  292. package/target/lib/tag/tag.test.js.map +0 -1
  293. package/target/lib/textarea/textarea.test.d.ts +0 -1
  294. package/target/lib/textarea/textarea.test.js.map +0 -1
  295. /package/src/lib/input-mask/{input-mask.test.ts → input-mask.element.test.ts} +0 -0
  296. /package/src/lib/services/{icon.service.test.ts → icon.service.element.test.ts} +0 -0
  297. /package/target/lib/input/{input.test.d.ts → input.element.test.d.ts} +0 -0
  298. /package/target/lib/input-mask/{input-mask.test.d.ts → input-mask.element.test.d.ts} +0 -0
  299. /package/target/lib/services/{icon.service.test.d.ts → icon.service.element.test.d.ts} +0 -0
@@ -0,0 +1,52 @@
1
+ import './search.element.js';
2
+ import '../input/input.element.js';
3
+ import '../button/button.element.js';
4
+ import { assert, fixture, html } from '@open-wc/testing';
5
+ describe('usa-search', () => {
6
+ it('should be accessible', async () => {
7
+ const search = await fixture(html `<usa-search name="search">Hello World</usa-search>`);
8
+ return assert.isAccessible(search);
9
+ });
10
+ it('should have default attribute values', async () => {
11
+ const search = await fixture(html `<usa-search></usa-search>`);
12
+ assert.equal(search.name, 'search');
13
+ assert.equal(search.placeholder, 'Search');
14
+ assert.equal(search.required, false);
15
+ assert.equal(search.disabled, false);
16
+ assert.equal(search.autocomplete, 'off');
17
+ assert.equal(search.value, '');
18
+ });
19
+ it('should update attributes when changed', async () => {
20
+ const search = await fixture(html `<usa-search></usa-search>`);
21
+ search.name = 'custom-name';
22
+ search.placeholder = 'Custom Placeholder';
23
+ search.required = true;
24
+ search.disabled = true;
25
+ search.autocomplete = 'on';
26
+ search.value = 'test value';
27
+ assert.equal(search.name, 'custom-name');
28
+ assert.equal(search.placeholder, 'Custom Placeholder');
29
+ assert.equal(search.required, true);
30
+ assert.equal(search.disabled, true);
31
+ assert.equal(search.autocomplete, 'on');
32
+ assert.equal(search.value, 'test value');
33
+ });
34
+ it('should handle form submission', async () => {
35
+ const search = await fixture(html `<usa-search></usa-search>`);
36
+ let submitted = false;
37
+ search.addEventListener('submit', (e) => {
38
+ e.preventDefault();
39
+ submitted = true;
40
+ });
41
+ const form = search.shadowRoot?.querySelector('form');
42
+ form?.dispatchEvent(new Event('submit', { bubbles: true, composed: true }));
43
+ assert.isTrue(submitted);
44
+ });
45
+ it('should update value on input change', async () => {
46
+ const search = await fixture(html `<usa-search></usa-search>`);
47
+ const input = search.shadowRoot?.querySelector('usa-input');
48
+ input?.dispatchEvent(new Event('input', { bubbles: true }));
49
+ assert.equal(search.value, '');
50
+ });
51
+ });
52
+ //# sourceMappingURL=search.element.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.element.test.js","sourceRoot":"","sources":["../../../src/lib/search/search.element.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { type SelectContainer } from "./context.js";
1
+ import '@joist/templating/define.js';
2
+ import { type SelectContainer } from './context.js';
2
3
  declare global {
3
4
  interface HTMLElementTagNameMap {
4
- "usa-select": USASelectElement;
5
+ 'usa-select': USASelectElement;
5
6
  }
6
7
  }
7
8
  export declare class USASelectElement extends HTMLElement implements SelectContainer {
@@ -11,7 +12,7 @@ export declare class USASelectElement extends HTMLElement implements SelectConta
11
12
  accessor name: string;
12
13
  accessor required: boolean;
13
14
  connectedCallback(): void;
14
- attributeChangedCallback(): void;
15
+ onChange(): void;
15
16
  onSelectChange(): void;
16
17
  addSelectOption(option: HTMLOptionElement): void;
17
18
  }
@@ -1,16 +1,19 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { injectable } from "@joist/di";
3
- import { attr, css, element, html, listen, query } from "@joist/element";
4
- import { SELECT_CONTEXT } from "./context.js";
2
+ import '@joist/templating/define.js';
3
+ import { injectable } from '@joist/di';
4
+ import { attr, css, element, html, listen, query } from '@joist/element';
5
+ import { bind } from '@joist/templating';
6
+ import { SELECT_CONTEXT } from './context.js';
7
+ import { effect } from '@joist/observable';
5
8
  let USASelectElement = (() => {
6
9
  let _classDecorators = [injectable({
7
- name: "usa-select-ctx",
10
+ name: 'usa-select-ctx',
8
11
  provideSelfAs: [SELECT_CONTEXT],
9
12
  }), element({
10
- tagName: "usa-select",
13
+ tagName: 'usa-select',
11
14
  shadowDom: [
12
15
  css `:host{display:block;line-height:1.3;position:relative;width:100%;max-width:30rem;margin-bottom:1.5rem}select{font-size:1.06rem;appearance:none;border-width:1px;border-color:#5c5c5c;border-style:solid;border-radius:0;color:#1b1b1b;background-color:#fff;display:block;height:2.5rem;margin-top:.5rem;padding:.5rem;width:100%}select:not(:disabled):focus{outline:.25rem solid #2491ff;outline-offset:0}select:disabled{background-color:#fff;border-color:#757575;color:#757575}usa-icon{position:absolute;right:.5rem;bottom:12%;height:1.5rem;width:1.5rem}`,
13
- html `<usa-icon icon="unfold_more"></usa-icon><label><div class="label" part="label"><slot></slot></div><select part="select"></select></label>`,
16
+ html `<usa-icon icon="unfold_more"></usa-icon><label><div class="label" part="label"><slot></slot></div><j-bind props="value,name,required"><select part="select"></select></j-bind></label>`,
14
17
  ],
15
18
  })];
16
19
  let _classDescriptor;
@@ -27,64 +30,60 @@ let USASelectElement = (() => {
27
30
  let _required_decorators;
28
31
  let _required_initializers = [];
29
32
  let _required_extraInitializers = [];
33
+ let _onChange_decorators;
30
34
  let _onSelectChange_decorators;
31
35
  var USASelectElement = class extends _classSuper {
32
36
  static { _classThis = this; }
33
37
  static {
34
38
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
35
- _value_decorators = [attr()];
36
- _name_decorators = [attr()];
37
- _required_decorators = [attr()];
38
- _onSelectChange_decorators = [listen("change")];
39
+ _value_decorators = [attr(), bind()];
40
+ _name_decorators = [attr(), bind()];
41
+ _required_decorators = [attr(), bind()];
42
+ _onChange_decorators = [effect()];
43
+ _onSelectChange_decorators = [listen('change')];
39
44
  __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);
40
45
  __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);
41
46
  __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);
47
+ __esDecorate(this, null, _onChange_decorators, { kind: "method", name: "onChange", static: false, private: false, access: { has: obj => "onChange" in obj, get: obj => obj.onChange }, metadata: _metadata }, null, _instanceExtraInitializers);
42
48
  __esDecorate(this, null, _onSelectChange_decorators, { kind: "method", name: "onSelectChange", static: false, private: false, access: { has: obj => "onSelectChange" in obj, get: obj => obj.onSelectChange }, metadata: _metadata }, null, _instanceExtraInitializers);
43
49
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
44
50
  USASelectElement = _classThis = _classDescriptor.value;
45
51
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
46
52
  }
47
53
  static formAssociated = true;
48
- #value_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value_initializers, ""));
54
+ #value_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value_initializers, ''));
49
55
  get value() { return this.#value_accessor_storage; }
50
56
  set value(value) { this.#value_accessor_storage = value; }
51
- #name_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _name_initializers, ""));
57
+ #name_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _name_initializers, ''));
52
58
  get name() { return this.#name_accessor_storage; }
53
59
  set name(value) { this.#name_accessor_storage = value; }
54
60
  #required_accessor_storage = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _required_initializers, false));
55
61
  get required() { return this.#required_accessor_storage; }
56
62
  set required(value) { this.#required_accessor_storage = value; }
57
- #select = (__runInitializers(this, _required_extraInitializers), query("select"));
63
+ #select = (__runInitializers(this, _required_extraInitializers), query('select'));
58
64
  #internals = this.attachInternals();
59
65
  connectedCallback() {
60
- this.#select({
61
- value: this.value,
62
- name: this.name,
63
- required: this.required,
64
- });
65
66
  this.#syncFormState();
66
67
  }
67
- attributeChangedCallback() {
68
- this.#select({
69
- value: this.value,
70
- name: this.name,
71
- required: this.required,
72
- });
68
+ onChange() {
73
69
  this.#syncFormState();
74
70
  }
75
71
  onSelectChange() {
76
72
  const select = this.#select();
77
73
  this.value = select.value;
78
- this.#syncFormState();
79
74
  }
80
75
  addSelectOption(option) {
81
76
  const select = this.#select();
77
+ if (!this.value && !select.children.length) {
78
+ this.value = option.value;
79
+ }
82
80
  select.append(option);
83
81
  }
84
- #syncFormState() {
82
+ async #syncFormState() {
85
83
  const select = this.#select();
86
84
  this.#internals.setFormValue(this.value);
87
85
  this.#internals.setValidity({});
86
+ await Promise.resolve();
88
87
  if (select.validationMessage) {
89
88
  this.#internals.setValidity({ customError: true }, select.validationMessage, select);
90
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"select.element.js","sourceRoot":"","sources":["../../../src/lib/select/select.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAwB,MAAM,cAAc,CAAC;IAyEvD,gBAAgB;4BAjE5B,UAAU,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,aAAa,EAAE,CAAC,cAAc,CAAC;SAChC,CAAC,EACD,OAAO,CAAC;YACP,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4CF;gBACD,IAAI,CAAA;;;;;;;;;;KAUH;aACF;SACF,CAAC;;;;sBACoC,WAAW;;;;;;;;;;;;gCAAnB,SAAQ,WAAW;;;;iCAG9C,IAAI,EAAE;gCAGN,IAAI,EAAE;oCAGN,IAAI,EAAE;0CA0BN,MAAM,CAAC,QAAQ,CAAC;YA/BjB,oKAAS,KAAK,6BAAL,KAAK,qFAAM;YAGpB,iKAAS,IAAI,6BAAJ,IAAI,mFAAM;YAGnB,6KAAS,QAAQ,6BAAR,QAAQ,2FAAS;YA0B1B,6LAAA,cAAc,6DAMb;YA1CH,6KA+DC;;;;QA9DC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAG7B,2BAJW,mDAAgB,+CAIV,EAAE,GAAC;QAApB,IAAS,KAAK,2CAAM;QAApB,IAAS,KAAK,iDAAM;QAGpB,yHAAgB,EAAE,GAAC;QAAnB,IAAS,IAAI,0CAAM;QAAnB,IAAS,IAAI,gDAAM;QAGnB,gIAAoB,KAAK,GAAC;QAA1B,IAAS,QAAQ,8CAAS;QAA1B,IAAS,QAAQ,oDAAS;QAE1B,OAAO,0DAAG,KAAK,CAAC,QAAQ,CAAC,EAAC;QAC1B,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEpC,iBAAiB;YACf,IAAI,CAAC,OAAO,CAAC;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAED,wBAAwB;YACtB,IAAI,CAAC,OAAO,CAAC;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAGD,cAAc;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAE9B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAE1B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAED,eAAe,CAAC,MAAyB;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,cAAc;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAE9B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAEhC,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,CAAC,WAAW,CACzB,EAAE,WAAW,EAAE,IAAI,EAAE,EACrB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CACP,CAAC;YACJ,CAAC;QACH,CAAC;;YA9DU,uDAAgB;;;;;SAAhB,gBAAgB"}
1
+ {"version":3,"file":"select.element.js","sourceRoot":"","sources":["../../../src/lib/select/select.element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import './select.element.js';
2
+ import './select-option/select-option.element.js';
@@ -1,46 +1,42 @@
1
- import "./select.element.js";
2
- import "./select-option/select-option.element.js";
3
- import { assert, fixture, html } from "@open-wc/testing";
4
- import { userEvent } from "@testing-library/user-event";
5
- describe("usa-select", () => {
6
- it("should be accessible", async () => {
1
+ import './select.element.js';
2
+ import './select-option/select-option.element.js';
3
+ import { assert, fixture, html } from '@open-wc/testing';
4
+ import { userEvent } from '@testing-library/user-event';
5
+ describe('usa-select', () => {
6
+ it('should be accessible', async () => {
7
7
  const el = await fixture(html `<usa-select name="example">Hello World<usa-select-option value="first">First</usa-select-option><usa-select-option value="second">Second</usa-select-option><usa-select-option value="third">Third</usa-select-option></usa-select>`);
8
8
  return assert.isAccessible(el);
9
9
  });
10
- it("should create local select options", async () => {
10
+ it('should create local select options', async () => {
11
11
  const form = await fixture(html `<form><usa-select name="example">Hello World<usa-select-option value="first">First</usa-select-option><usa-select-option value="second">Second</usa-select-option><usa-select-option value="third">Third</usa-select-option></usa-select></form>`);
12
- const nativeInputs = form
13
- .querySelector("usa-select")
14
- ?.shadowRoot?.querySelectorAll("option");
15
- assert.deepEqual(Array.from(nativeInputs ?? []).map((input) => input.value), ["first", "second", "third"]);
12
+ const nativeInputs = form.querySelector('usa-select')?.shadowRoot?.querySelectorAll('option');
13
+ assert.deepEqual(Array.from(nativeInputs ?? []).map((input) => input.value), ['first', 'second', 'third']);
16
14
  });
17
- it("should remove select options when options are removed", async () => {
15
+ it('should remove select options when options are removed', async () => {
18
16
  const form = await fixture(html `<form><usa-select name="example">Hello World<usa-select-option value="first">First</usa-select-option><usa-select-option value="second">Second</usa-select-option><usa-select-option value="third">Third</usa-select-option></usa-select></form>`);
19
- const options = form.querySelectorAll("usa-select-option");
17
+ const options = form.querySelectorAll('usa-select-option');
20
18
  options[1].remove();
21
- const nativeInputs = form
22
- .querySelector("usa-select")
23
- ?.shadowRoot?.querySelectorAll("option");
24
- assert.deepEqual(Array.from(nativeInputs ?? []).map((input) => input.value), ["first", "third"]);
19
+ const nativeInputs = form.querySelector('usa-select')?.shadowRoot?.querySelectorAll('option');
20
+ assert.deepEqual(Array.from(nativeInputs ?? []).map((input) => input.value), ['first', 'third']);
25
21
  });
26
- it("should submit form with default values", async () => {
22
+ it('should submit form with default values', async () => {
27
23
  const form = await fixture(html `<form><usa-select name="example" value="second">Hello World<usa-select-option value="first">First</usa-select-option><usa-select-option value="second">Second</usa-select-option><usa-select-option value="third">Third</usa-select-option></usa-select></form>`);
28
24
  const value = new FormData(form);
29
- assert.equal(value.get("example"), "second");
25
+ assert.equal(value.get('example'), 'second');
30
26
  });
31
- it("should update form value as select value changed", async () => {
27
+ it('should update form value as select value changed', async () => {
32
28
  const form = await fixture(html `<form><usa-select name="example" value="second">Hello World<usa-select-option value="first">First</usa-select-option><usa-select-option value="second">Second</usa-select-option><usa-select-option value="third">Third</usa-select-option></usa-select></form>`);
33
- const select = form.querySelector("usa-select");
34
- const nativeSelect = select?.shadowRoot?.querySelector("select");
29
+ const select = form.querySelector('usa-select');
30
+ const nativeSelect = select?.shadowRoot?.querySelector('select');
35
31
  if (nativeSelect) {
36
- await userEvent.selectOptions(nativeSelect, "third");
32
+ await userEvent.selectOptions(nativeSelect, 'third');
37
33
  }
38
34
  const value = new FormData(form);
39
- assert.equal(value.get("example"), "third");
35
+ assert.equal(value.get('example'), 'third');
40
36
  });
41
- it("should not submit when not valid", async () => {
42
- const form = await fixture(html `<form><usa-select name="example" required>Hello World<usa-select-option value="first">First</usa-select-option><usa-select-option value="second">Second</usa-select-option><usa-select-option value="third">Third</usa-select-option></usa-select></form>`);
37
+ it('should not submit when not valid', async () => {
38
+ const form = await fixture(html `<form><usa-select id="TEST" name="example" required>Hello World<usa-select-option value="">-Select One -</usa-select-option><usa-select-option value="first">First</usa-select-option><usa-select-option value="second">Second</usa-select-option><usa-select-option value="third">Third</usa-select-option></usa-select></form>`);
43
39
  assert.equal(form.checkValidity(), false);
44
40
  });
45
41
  });
46
- //# sourceMappingURL=select.test.js.map
42
+ //# sourceMappingURL=select.element.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.element.test.js","sourceRoot":"","sources":["../../../src/lib/select/select.element.test.ts"],"names":[],"mappings":"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"}
@@ -49,4 +49,4 @@ describe('IconService', () => {
49
49
  assert.equal(callCount, 1);
50
50
  });
51
51
  });
52
- //# sourceMappingURL=icon.service.test.js.map
52
+ //# sourceMappingURL=icon.service.element.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.service.element.test.js","sourceRoot":"","sources":["../../../src/lib/services/icon.service.element.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,MAAa,CAAC,CAAC;QAE9C,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,mBAAmB,CAAC,CAAC;QAExC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEpD,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,3 @@
1
+ import '../link/link.element.js';
2
+ import './side-nav.element.js';
3
+ import './side-nav-item/side-nav-item.element.js';
@@ -1,17 +1,17 @@
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 () => {
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
7
  const sideNav = await fixture(html `<usa-side-nav><usa-side-nav-item current><usa-link href="#">Current Page</usa-link><usa-side-nav-item slot="children"><usa-link href="#">Child</usa-link></usa-side-nav-item><usa-side-nav-item slot="children" current><usa-link href="#">Child</usa-link><usa-side-nav-item slot="children"><usa-link href="#">Grandchild</usa-link></usa-side-nav-item><usa-side-nav-item slot="children" current><usa-link href="#">Grandchild</usa-link></usa-side-nav-item><usa-side-nav-item slot="children"><usa-link href="#">Grandchild</usa-link></usa-side-nav-item></usa-side-nav-item><usa-side-nav-item slot="children"><usa-link href="#">Child</usa-link></usa-side-nav-item></usa-side-nav-item><usa-side-nav-item><usa-link href="#">Parent</usa-link></usa-side-nav-item><usa-side-nav-item><usa-link href="#">Parent</usa-link></usa-side-nav-item></usa-side-nav>`);
8
8
  return assert.isAccessible(sideNav);
9
9
  });
10
- it("should set child padding correctly", async () => {
10
+ it('should set child padding correctly', async () => {
11
11
  const sideNav = await fixture(html `<usa-side-nav><usa-side-nav-item current><usa-link href="#">Current Page</usa-link><usa-side-nav-item slot="children"><usa-link href="#">Child</usa-link></usa-side-nav-item><usa-side-nav-item slot="children" current><usa-link href="#">Child</usa-link><usa-side-nav-item slot="children"><usa-link href="#">Grandchild</usa-link></usa-side-nav-item><usa-side-nav-item slot="children" current><usa-link href="#">Grandchild</usa-link></usa-side-nav-item><usa-side-nav-item slot="children"><usa-link href="#">Grandchild</usa-link></usa-side-nav-item></usa-side-nav-item><usa-side-nav-item slot="children"><usa-link href="#">Child</usa-link></usa-side-nav-item></usa-side-nav-item><usa-side-nav-item><usa-link href="#">Parent</usa-link></usa-side-nav-item><usa-side-nav-item><usa-link href="#">Parent</usa-link></usa-side-nav-item></usa-side-nav>`);
12
- const items = sideNav.querySelectorAll("usa-side-nav-item");
13
- assert.equal(getComputedStyle(items[1]).getPropertyValue("--usa-nav-item-padding-left"), "2rem");
14
- assert.equal(getComputedStyle(items[3]).getPropertyValue("--usa-nav-item-padding-left"), "3rem");
12
+ const items = sideNav.querySelectorAll('usa-side-nav-item');
13
+ assert.equal(getComputedStyle(items[1]).getPropertyValue('--usa-nav-item-padding-left'), '2rem');
14
+ assert.equal(getComputedStyle(items[3]).getPropertyValue('--usa-nav-item-padding-left'), '3rem');
15
15
  });
16
16
  });
17
- //# sourceMappingURL=side-nav.test.js.map
17
+ //# sourceMappingURL=side-nav.element.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-nav.element.test.js","sourceRoot":"","sources":["../../../src/lib/side-nav/side-nav.element.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,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC,CAAC;QAEjG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  declare global {
2
2
  interface HTMLElementTagNameMap {
3
- "usa-step": USAStepIndicatorStepElement;
3
+ 'usa-step': USAStepIndicatorStepElement;
4
4
  }
5
5
  }
6
6
  export declare class USAStepIndicatorStepElement extends HTMLElement {
7
- accessor state: "complete" | "current" | "";
7
+ accessor state: 'complete' | 'current' | '';
8
8
  accessor role: string;
9
9
  onStateAttrChanged(): void;
10
10
  }
@@ -1,10 +1,10 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { attr, attrChanged, css, element, html } from "@joist/element";
2
+ import { attr, attrChanged, css, element, html } from '@joist/element';
3
3
  let USAStepIndicatorStepElement = (() => {
4
4
  let _classDecorators = [element({
5
- tagName: "usa-step",
5
+ tagName: 'usa-step',
6
6
  shadowDom: [
7
- css `:host{color:#5c5c5c;display:block;flex:1 1 0%;position:relative;counter-increment:usa-step-indicator}:host([counter]):after{content:counter(usa-step-indicator);height:2.5rem;border-radius:99rem;width:2.5rem;background-color:#fff;box-shadow:inset 0 0 0 .25rem #919191,0 0 0 .25rem #fff;color:#5c5c5c;display:flex;align-items:center;justify-content:center;font-weight:700;left:0;line-height:.9;padding:calc((2.5rem - 2ex * .9) * .5);position:absolute;z-index:100;top:0;transform:translateY(-40%);box-sizing:border-box}:host([state=complete]){color:#162e51}:host([state=complete])::before{background-color:#162e51}:host([state=current]){color:#005ea2;font-weight:700}:host([state=current])::before{background-color:#005ea2}:host:before{background-color:#919191;content:"";display:block;height:.5rem}.label{display:block;font-size:1.06rem;margin-top:.5rem;padding-right:2rem;text-align:left}:host([counter]) .label{margin-top:1.5rem}:host([counter][state=complete]):after{background-color:#162e51;box-shadow:0 0 0 .25rem #fff;color:#fff}:host([counter][state=current]):after{background-color:#005ea2;box-shadow:0 0 0 .25rem #fff;color:#fff}:host([counter=small]):after{height:1.5rem;width:1.5rem;font-size:.93rem}:host([counter]:last-child):before{width:0}`,
7
+ css `:host{color:#5c5c5c;display:block;flex:1 1 0%;position:relative;counter-increment:usa-step-indicator}:host([counter]):after{content:counter(usa-step-indicator);height:2.5rem;border-radius:99rem;width:2.5rem;background-color:#fff;box-shadow:inset 0 0 0 .25rem #919191,0 0 0 .25rem #fff;color:#5c5c5c;display:flex;align-items:center;justify-content:center;font-weight:700;left:0;line-height:.9;padding:calc((2.5rem - 2ex * .9) * .5);position:absolute;z-index:100;top:0;transform:translateY(-40%);box-sizing:border-box}:host([state=complete]){color:#162e51}:host([state=complete])::before{background-color:#162e51}:host([state=current]){color:#005ea2;font-weight:700}:host([state=current])::before{background-color:#005ea2}:host:before{background-color:#919191;content:'';display:block;height:.5rem}.label{display:block;font-size:1.06rem;margin-top:.5rem;padding-right:2rem;text-align:left}:host([counter]) .label{margin-top:1.5rem}:host([counter][state=complete]):after{background-color:#162e51;box-shadow:0 0 0 .25rem #fff;color:#fff}:host([counter][state=current]):after{background-color:#005ea2;box-shadow:0 0 0 .25rem #fff;color:#fff}:host([counter=small]):after{height:1.5rem;width:1.5rem;font-size:.93rem}:host([counter]:last-child):before{width:0}`,
8
8
  html `<div class="label"><slot></slot></div>`,
9
9
  ],
10
10
  })];
@@ -26,7 +26,7 @@ let USAStepIndicatorStepElement = (() => {
26
26
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
27
27
  _state_decorators = [attr()];
28
28
  _role_decorators = [attr()];
29
- _onStateAttrChanged_decorators = [attrChanged("state")];
29
+ _onStateAttrChanged_decorators = [attrChanged('state')];
30
30
  __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);
31
31
  __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);
32
32
  __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);
@@ -35,15 +35,15 @@ let USAStepIndicatorStepElement = (() => {
35
35
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
36
36
  __runInitializers(_classThis, _classExtraInitializers);
37
37
  }
38
- #state_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _state_initializers, ""));
38
+ #state_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _state_initializers, ''));
39
39
  get state() { return this.#state_accessor_storage; }
40
40
  set state(value) { this.#state_accessor_storage = value; }
41
- #role_accessor_storage = (__runInitializers(this, _state_extraInitializers), __runInitializers(this, _role_initializers, "listitem"));
41
+ #role_accessor_storage = (__runInitializers(this, _state_extraInitializers), __runInitializers(this, _role_initializers, 'listitem'));
42
42
  get role() { return this.#role_accessor_storage; }
43
43
  set role(value) { this.#role_accessor_storage = value; }
44
44
  onStateAttrChanged() {
45
- if (this.state === "current") {
46
- this.ariaCurrent = "step";
45
+ if (this.state === 'current') {
46
+ this.ariaCurrent = 'step';
47
47
  }
48
48
  }
49
49
  constructor() {
@@ -0,0 +1,2 @@
1
+ import './step-indicator.element.js';
2
+ import './step/step.element.js';
@@ -1,10 +1,10 @@
1
- import "./step-indicator.element.js";
2
- import "./step/step.element.js";
3
- import { assert, fixture, html } from "@open-wc/testing";
4
- describe("usa-step-indicator", () => {
5
- it("should be accessible", async () => {
1
+ import './step-indicator.element.js';
2
+ import './step/step.element.js';
3
+ import { assert, fixture, html } from '@open-wc/testing';
4
+ describe('usa-step-indicator', () => {
5
+ it('should be accessible', async () => {
6
6
  const stepIndicator = await fixture(html `<usa-step-indicator><usa-step state="complete" counter="on">Personal information</usa-step><usa-step state="complete" counter="on">Household status</usa-step><usa-step state="current" counter="on">Supporting documents</usa-step><usa-step counter="on">Signature</usa-step><usa-step counter="on">Review and submit</usa-step></usa-step-indicator>`);
7
7
  return assert.isAccessible(stepIndicator);
8
8
  });
9
9
  });
10
- //# sourceMappingURL=step-indicator.test.js.map
10
+ //# sourceMappingURL=step-indicator.element.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-indicator.element.test.js","sourceRoot":"","sources":["../../../src/lib/step-indicator/step-indicator.element.test.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,aAAa,GAAG,MAAM,OAAO,CAA0B,IAAI,CAAA;;;;;;;;KAQhE,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ import './summary-box.element.js';
@@ -0,0 +1,9 @@
1
+ import './summary-box.element.js';
2
+ import { assert, fixture, html } from '@open-wc/testing';
3
+ describe('usa-summary-box', () => {
4
+ it('should be accessible', async () => {
5
+ const summaryBox = await fixture(html `<usa-summary-box>Hello World</usa-summary-box>`);
6
+ return assert.isAccessible(summaryBox);
7
+ });
8
+ });
9
+ //# sourceMappingURL=summary-box.element.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-box.element.test.js","sourceRoot":"","sources":["../../../src/lib/summary-box/summary-box.element.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,UAAU,GAAG,MAAM,OAAO,CAAuB,IAAI,CAAA,kDAAkD,CAAC,CAAC;QAE/G,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ import './tag.element.js';
@@ -0,0 +1,9 @@
1
+ import './tag.element.js';
2
+ import { assert, fixture, html } from '@open-wc/testing';
3
+ describe('usa-tag', () => {
4
+ it('should be accessible', async () => {
5
+ const tag = await fixture(html `<usa-tag>Hello World</usa-tag>`);
6
+ return assert.isAccessible(tag);
7
+ });
8
+ });
9
+ //# sourceMappingURL=tag.element.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.element.test.js","sourceRoot":"","sources":["../../../src/lib/tag/tag.element.test.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIzD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAgB,IAAI,CAAA,kCAAkC,CAAC,CAAC;QAEjF,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import '@joist/templating/define.js';
1
2
  declare global {
2
3
  interface HTMLElementTagNameMap {
3
4
  'usa-textarea': USATextareaElement;
@@ -10,9 +11,8 @@ export declare class USATextareaElement extends HTMLElement {
10
11
  accessor autocomplete: AutoFill;
11
12
  accessor placeholder: string;
12
13
  accessor required: boolean;
14
+ accessor autofocus: boolean;
13
15
  accessor value: string;
14
- onReady(): void;
15
- attributeChangedCallback(): void;
16
16
  connectedCallback(): void;
17
17
  onChange(): void;
18
18
  onInputChange(): void;
@@ -1,12 +1,14 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { attr, css, element, html, listen, query, ready } from '@joist/element';
3
- import { effect, observe } from '@joist/observable';
2
+ import '@joist/templating/define.js';
3
+ import { attr, css, element, html, listen, query } from '@joist/element';
4
+ import { effect } from '@joist/observable';
5
+ import { bind } from '@joist/templating';
4
6
  let USATextareaElement = (() => {
5
7
  let _classDecorators = [element({
6
8
  tagName: 'usa-textarea',
7
9
  shadowDom: [
8
10
  css `*{box-sizing:border-box}:host{font-size:1.06rem;line-height:1.3;display:flex;flex-direction:column;font-weight:400;margin-bottom:1.5rem;max-width:30rem;position:relative;height:9lh;gap:.5rem}textarea{font-family:inherit;font-size:inherit;border-radius:0;color:#1b1b1b;display:block;padding:.5rem;border-width:1px;border-color:#5c5c5c;border-style:solid;background-color:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;resize:none;flex-grow:1}textarea:not(:disabled):focus{outline:.25rem solid #2491ff;outline-offset:0}textarea:disabled{background-color:#fff;border-color:#757575;color:#757575}`,
9
- html `<label for="textarea" part="label"><slot></slot></label> <textarea id="textarea" part="textarea"></textarea>`,
11
+ html `<j-bind attrs="for:name"><label part="label"><slot></slot></label></j-bind><j-bind props="name,placeholder,autocomplete,required,value,id:name"><textarea id="textarea" part="textarea"></textarea></j-bind>`,
10
12
  ],
11
13
  })];
12
14
  let _classDescriptor;
@@ -26,32 +28,34 @@ let USATextareaElement = (() => {
26
28
  let _required_decorators;
27
29
  let _required_initializers = [];
28
30
  let _required_extraInitializers = [];
31
+ let _autofocus_decorators;
32
+ let _autofocus_initializers = [];
33
+ let _autofocus_extraInitializers = [];
29
34
  let _value_decorators;
30
35
  let _value_initializers = [];
31
36
  let _value_extraInitializers = [];
32
- let _onReady_decorators;
33
37
  let _onChange_decorators;
34
38
  let _onInputChange_decorators;
35
39
  var USATextareaElement = class extends _classSuper {
36
40
  static { _classThis = this; }
37
41
  static {
38
42
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
39
- _name_decorators = [attr()];
40
- _autocomplete_decorators = [attr()];
41
- _placeholder_decorators = [attr()];
42
- _required_decorators = [attr()];
43
+ _name_decorators = [attr(), bind()];
44
+ _autocomplete_decorators = [attr(), bind()];
45
+ _placeholder_decorators = [attr(), bind()];
46
+ _required_decorators = [attr(), bind()];
47
+ _autofocus_decorators = [attr(), bind()];
43
48
  _value_decorators = [attr({
44
49
  reflect: false,
45
- }), observe()];
46
- _onReady_decorators = [ready()];
50
+ }), bind()];
47
51
  _onChange_decorators = [effect()];
48
52
  _onInputChange_decorators = [listen('input')];
49
53
  __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);
50
54
  __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);
51
55
  __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);
52
56
  __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);
57
+ __esDecorate(this, null, _autofocus_decorators, { kind: "accessor", name: "autofocus", static: false, private: false, access: { has: obj => "autofocus" in obj, get: obj => obj.autofocus, set: (obj, value) => { obj.autofocus = value; } }, metadata: _metadata }, _autofocus_initializers, _autofocus_extraInitializers);
53
58
  __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);
54
- __esDecorate(this, null, _onReady_decorators, { kind: "method", name: "onReady", static: false, private: false, access: { has: obj => "onReady" in obj, get: obj => obj.onReady }, metadata: _metadata }, null, _instanceExtraInitializers);
55
59
  __esDecorate(this, null, _onChange_decorators, { kind: "method", name: "onChange", static: false, private: false, access: { has: obj => "onChange" in obj, get: obj => obj.onChange }, metadata: _metadata }, null, _instanceExtraInitializers);
56
60
  __esDecorate(this, null, _onInputChange_decorators, { kind: "method", name: "onInputChange", static: false, private: false, access: { has: obj => "onInputChange" in obj, get: obj => obj.onInputChange }, metadata: _metadata }, null, _instanceExtraInitializers);
57
61
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
@@ -71,27 +75,18 @@ let USATextareaElement = (() => {
71
75
  #required_accessor_storage = (__runInitializers(this, _placeholder_extraInitializers), __runInitializers(this, _required_initializers, false));
72
76
  get required() { return this.#required_accessor_storage; }
73
77
  set required(value) { this.#required_accessor_storage = value; }
74
- #value_accessor_storage = (__runInitializers(this, _required_extraInitializers), __runInitializers(this, _value_initializers, ''));
78
+ #autofocus_accessor_storage = (__runInitializers(this, _required_extraInitializers), __runInitializers(this, _autofocus_initializers, false));
79
+ get autofocus() { return this.#autofocus_accessor_storage; }
80
+ set autofocus(value) { this.#autofocus_accessor_storage = value; }
81
+ #value_accessor_storage = (__runInitializers(this, _autofocus_extraInitializers), __runInitializers(this, _value_initializers, ''));
75
82
  get value() { return this.#value_accessor_storage; }
76
83
  set value(value) { this.#value_accessor_storage = value; }
77
84
  #internals = (__runInitializers(this, _value_extraInitializers), this.attachInternals());
78
85
  #input = query('textarea');
79
- onReady() {
80
- this.#input({ autofocus: this.autofocus });
81
- }
82
- attributeChangedCallback() {
83
- this.#input({
84
- name: this.name,
85
- placeholder: this.placeholder,
86
- autocomplete: this.autocomplete,
87
- required: this.required,
88
- });
89
- }
90
86
  connectedCallback() {
91
87
  this.#syncFormState();
92
88
  }
93
89
  onChange() {
94
- this.#input({ value: this.value });
95
90
  this.#syncFormState();
96
91
  }
97
92
  onInputChange() {