uswds-jekyll 5.3.0 → 5.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1619) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -6
  3. data/_includes/scripts.html +17 -0
  4. data/_sass/uswds/src/base/_body.scss +1 -2
  5. data/_sass/uswds/src/components/_accordions.scss +4 -4
  6. data/_sass/uswds/src/components/_alerts.scss +14 -49
  7. data/_sass/uswds/src/components/_banner.scss +22 -7
  8. data/_sass/uswds/src/components/_breadcrumb.scss +48 -22
  9. data/_sass/uswds/src/components/_collection.scss +108 -0
  10. data/_sass/uswds/src/components/_footer.scss +15 -10
  11. data/_sass/uswds/src/components/_forms.scss +26 -4
  12. data/_sass/uswds/src/components/_header.scss +7 -0
  13. data/_sass/uswds/src/components/_icon.scss +25 -0
  14. data/_sass/uswds/src/components/_identifier.scss +22 -5
  15. data/_sass/uswds/src/components/_navigation.scss +14 -11
  16. data/_sass/uswds/src/components/_process-list.scss +106 -0
  17. data/_sass/uswds/src/components/_search.scss +2 -2
  18. data/_sass/uswds/src/components/_site-alert.scss +77 -0
  19. data/_sass/uswds/src/components/_skipnav.scss +2 -1
  20. data/_sass/uswds/src/components/_summary-box.scss +67 -0
  21. data/_sass/uswds/src/core/_functions.scss +740 -328
  22. data/_sass/uswds/src/core/_notifications.scss +14 -1
  23. data/_sass/uswds/src/core/_properties.scss +1 -1
  24. data/_sass/uswds/src/core/_system-tokens.scss +71 -36
  25. data/_sass/uswds/src/core/_variables.scss +37 -1
  26. data/_sass/uswds/src/core/mixins/_add-success-mark.scss +2 -2
  27. data/_sass/uswds/src/core/mixins/_alert-slim-styles.scss +15 -0
  28. data/_sass/uswds/src/core/mixins/_alert-status-styles.scss +40 -0
  29. data/_sass/uswds/src/core/mixins/_all.scss +2 -0
  30. data/_sass/uswds/src/core/mixins/_external-link.scss +1 -1
  31. data/_sass/uswds/src/core/mixins/_icon.scss +2 -2
  32. data/_sass/uswds/src/core/mixins/_nav-list.scss +4 -4
  33. data/_sass/uswds/src/core/mixins/_screen-reader.scss +2 -0
  34. data/_sass/uswds/src/core/mixins/_set-link-from-bg.scss +15 -10
  35. data/_sass/uswds/src/core/mixins/_set-text-from-bg.scss +17 -11
  36. data/_sass/uswds/src/core/mixins/_typography.scss +4 -4
  37. data/_sass/uswds/src/core/mixins/_usa-table-styles.scss +28 -0
  38. data/_sass/uswds/src/core/placeholders/_table.scss +117 -11
  39. data/_sass/uswds/src/elements/_buttons.scss +22 -17
  40. data/_sass/uswds/src/elements/_table.scss +35 -0
  41. data/_sass/uswds/src/elements/form-controls/_checkbox-and-radio.scss +25 -0
  42. data/_sass/uswds/src/elements/form-controls/_combo-box.scss +6 -5
  43. data/_sass/uswds/src/elements/form-controls/_date-picker.scss +8 -8
  44. data/_sass/uswds/src/elements/form-controls/_dropdown.scss +3 -3
  45. data/_sass/uswds/src/elements/form-controls/_file-input.scss +1 -1
  46. data/_sass/uswds/src/elements/form-controls/_global.scss +7 -1
  47. data/_sass/uswds/src/elements/typography/_content.scss +4 -0
  48. data/_sass/uswds/src/elements/typography/_links.scss +8 -2
  49. data/_sass/uswds/src/packages/_usa-collection.scss +2 -0
  50. data/_sass/uswds/src/packages/_usa-icon.scss +1 -0
  51. data/_sass/uswds/src/packages/_usa-site-alert.scss +5 -0
  52. data/_sass/uswds/src/packages/_uswds-components.scss +5 -0
  53. data/_sass/uswds/src/settings/_settings-color.scss +12 -1
  54. data/_sass/uswds/src/settings/_settings-components.scss +56 -4
  55. data/_sass/uswds/src/settings/_settings-general.scss +1 -1
  56. data/_sass/uswds/src/settings/_settings-spacing.scss +1 -1
  57. data/_sass/uswds/src/settings/_settings-typography.scss +1 -1
  58. data/_sass/uswds/src/settings/_settings-utilities.scss +1 -1
  59. data/_sass/uswds/src/theme/_uswds-theme-color.scss +12 -1
  60. data/_sass/uswds/src/theme/_uswds-theme-components.scss +56 -4
  61. data/_sass/uswds/src/theme/_uswds-theme-general.scss +1 -1
  62. data/_sass/uswds/src/theme/_uswds-theme-spacing.scss +1 -1
  63. data/_sass/uswds/src/theme/_uswds-theme-typography.scss +2 -2
  64. data/_sass/uswds/src/theme/_uswds-theme-utilities.scss +1 -1
  65. data/assets/uswds/img/alerts/emergency.svg +4 -0
  66. data/assets/uswds/img/alerts/error-white.svg +1 -0
  67. data/assets/uswds/img/social-icons/instagram25.png +0 -0
  68. data/assets/uswds/img/social-icons/instagram25.svg +1 -0
  69. data/assets/uswds/img/sprite.svg +1 -0
  70. data/assets/uswds/img/usa-icons-bg/check--blue-60v.svg +1 -0
  71. data/assets/uswds/img/usa-icons-bg/expand_less--white.svg +1 -0
  72. data/assets/uswds/img/usa-icons-bg/expand_more--blue-warm-70v.svg +1 -0
  73. data/assets/uswds/img/usa-icons-bg/launch--blue-60v.svg +1 -0
  74. data/assets/uswds/img/usa-icons-bg/launch--blue-70v.svg +1 -0
  75. data/assets/uswds/img/usa-icons-bg/launch--gray-5.svg +1 -0
  76. data/assets/uswds/img/usa-icons-bg/launch--white.svg +1 -0
  77. data/assets/uswds/img/usa-icons-bg/search--white.svg +1 -0
  78. data/assets/uswds/img/usa-icons-unused/10k.svg +1 -0
  79. data/assets/uswds/img/usa-icons-unused/10mp.svg +1 -0
  80. data/assets/uswds/img/usa-icons-unused/11mp.svg +1 -0
  81. data/assets/uswds/img/usa-icons-unused/12mp.svg +1 -0
  82. data/assets/uswds/img/usa-icons-unused/13mp.svg +1 -0
  83. data/assets/uswds/img/usa-icons-unused/14mp.svg +1 -0
  84. data/assets/uswds/img/usa-icons-unused/15mp.svg +1 -0
  85. data/assets/uswds/img/usa-icons-unused/16mp.svg +1 -0
  86. data/assets/uswds/img/usa-icons-unused/17mp.svg +1 -0
  87. data/assets/uswds/img/usa-icons-unused/18mp.svg +1 -0
  88. data/assets/uswds/img/usa-icons-unused/19mp.svg +1 -0
  89. data/assets/uswds/img/usa-icons-unused/1k.svg +1 -0
  90. data/assets/uswds/img/usa-icons-unused/1k_plus.svg +1 -0
  91. data/assets/uswds/img/usa-icons-unused/20mp.svg +1 -0
  92. data/assets/uswds/img/usa-icons-unused/21mp.svg +1 -0
  93. data/assets/uswds/img/usa-icons-unused/22mp.svg +1 -0
  94. data/assets/uswds/img/usa-icons-unused/23mp.svg +1 -0
  95. data/assets/uswds/img/usa-icons-unused/24mp.svg +1 -0
  96. data/assets/uswds/img/usa-icons-unused/2k.svg +1 -0
  97. data/assets/uswds/img/usa-icons-unused/2k_plus.svg +1 -0
  98. data/assets/uswds/img/usa-icons-unused/2mp.svg +1 -0
  99. data/assets/uswds/img/usa-icons-unused/360.svg +1 -0
  100. data/assets/uswds/img/usa-icons-unused/3d_rotation.svg +1 -0
  101. data/assets/uswds/img/usa-icons-unused/3k.svg +1 -0
  102. data/assets/uswds/img/usa-icons-unused/3k_plus.svg +1 -0
  103. data/assets/uswds/img/usa-icons-unused/3mp.svg +1 -0
  104. data/assets/uswds/img/usa-icons-unused/4k.svg +1 -0
  105. data/assets/uswds/img/usa-icons-unused/4k_plus.svg +1 -0
  106. data/assets/uswds/img/usa-icons-unused/4mp.svg +1 -0
  107. data/assets/uswds/img/usa-icons-unused/5g.svg +1 -0
  108. data/assets/uswds/img/usa-icons-unused/5k.svg +1 -0
  109. data/assets/uswds/img/usa-icons-unused/5k_plus.svg +1 -0
  110. data/assets/uswds/img/usa-icons-unused/5mp.svg +1 -0
  111. data/assets/uswds/img/usa-icons-unused/6_ft_apart.svg +1 -0
  112. data/assets/uswds/img/usa-icons-unused/6k.svg +1 -0
  113. data/assets/uswds/img/usa-icons-unused/6k_plus.svg +1 -0
  114. data/assets/uswds/img/usa-icons-unused/6mp.svg +1 -0
  115. data/assets/uswds/img/usa-icons-unused/7k.svg +1 -0
  116. data/assets/uswds/img/usa-icons-unused/7k_plus.svg +1 -0
  117. data/assets/uswds/img/usa-icons-unused/7mp.svg +1 -0
  118. data/assets/uswds/img/usa-icons-unused/8k.svg +1 -0
  119. data/assets/uswds/img/usa-icons-unused/8k_plus.svg +1 -0
  120. data/assets/uswds/img/usa-icons-unused/8mp.svg +1 -0
  121. data/assets/uswds/img/usa-icons-unused/9k.svg +1 -0
  122. data/assets/uswds/img/usa-icons-unused/9k_plus.svg +1 -0
  123. data/assets/uswds/img/usa-icons-unused/9mp.svg +1 -0
  124. data/assets/uswds/img/usa-icons-unused/ac_unit.svg +1 -0
  125. data/assets/uswds/img/usa-icons-unused/access_alarm.svg +1 -0
  126. data/assets/uswds/img/usa-icons-unused/access_alarms.svg +1 -0
  127. data/assets/uswds/img/usa-icons-unused/access_time.svg +1 -0
  128. data/assets/uswds/img/usa-icons-unused/accessibility.svg +1 -0
  129. data/assets/uswds/img/usa-icons-unused/accessible.svg +1 -0
  130. data/assets/uswds/img/usa-icons-unused/account_balance_wallet.svg +1 -0
  131. data/assets/uswds/img/usa-icons-unused/account_tree.svg +1 -0
  132. data/assets/uswds/img/usa-icons-unused/ad_units.svg +1 -0
  133. data/assets/uswds/img/usa-icons-unused/adb.svg +1 -0
  134. data/assets/uswds/img/usa-icons-unused/add_a_photo.svg +1 -0
  135. data/assets/uswds/img/usa-icons-unused/add_alarm.svg +1 -0
  136. data/assets/uswds/img/usa-icons-unused/add_alert.svg +1 -0
  137. data/assets/uswds/img/usa-icons-unused/add_box.svg +1 -0
  138. data/assets/uswds/img/usa-icons-unused/add_business.svg +1 -0
  139. data/assets/uswds/img/usa-icons-unused/add_call.svg +1 -0
  140. data/assets/uswds/img/usa-icons-unused/add_chart.svg +1 -0
  141. data/assets/uswds/img/usa-icons-unused/add_comment.svg +1 -0
  142. data/assets/uswds/img/usa-icons-unused/add_ic_call.svg +1 -0
  143. data/assets/uswds/img/usa-icons-unused/add_link.svg +1 -0
  144. data/assets/uswds/img/usa-icons-unused/add_location.svg +1 -0
  145. data/assets/uswds/img/usa-icons-unused/add_location_alt.svg +1 -0
  146. data/assets/uswds/img/usa-icons-unused/add_moderator.svg +1 -0
  147. data/assets/uswds/img/usa-icons-unused/add_photo_alternate.svg +1 -0
  148. data/assets/uswds/img/usa-icons-unused/add_road.svg +1 -0
  149. data/assets/uswds/img/usa-icons-unused/add_shopping_cart.svg +1 -0
  150. data/assets/uswds/img/usa-icons-unused/add_task.svg +1 -0
  151. data/assets/uswds/img/usa-icons-unused/add_to_drive.svg +1 -0
  152. data/assets/uswds/img/usa-icons-unused/add_to_home_screen.svg +1 -0
  153. data/assets/uswds/img/usa-icons-unused/add_to_photos.svg +1 -0
  154. data/assets/uswds/img/usa-icons-unused/add_to_queue.svg +1 -0
  155. data/assets/uswds/img/usa-icons-unused/addchart.svg +1 -0
  156. data/assets/uswds/img/usa-icons-unused/adjust.svg +1 -0
  157. data/assets/uswds/img/usa-icons-unused/admin_panel_settings.svg +1 -0
  158. data/assets/uswds/img/usa-icons-unused/agriculture.svg +1 -0
  159. data/assets/uswds/img/usa-icons-unused/airline_seat_flat.svg +1 -0
  160. data/assets/uswds/img/usa-icons-unused/airline_seat_flat_angled.svg +1 -0
  161. data/assets/uswds/img/usa-icons-unused/airline_seat_individual_suite.svg +1 -0
  162. data/assets/uswds/img/usa-icons-unused/airline_seat_legroom_extra.svg +1 -0
  163. data/assets/uswds/img/usa-icons-unused/airline_seat_legroom_normal.svg +1 -0
  164. data/assets/uswds/img/usa-icons-unused/airline_seat_legroom_reduced.svg +1 -0
  165. data/assets/uswds/img/usa-icons-unused/airline_seat_recline_extra.svg +1 -0
  166. data/assets/uswds/img/usa-icons-unused/airline_seat_recline_normal.svg +1 -0
  167. data/assets/uswds/img/usa-icons-unused/airplanemode_active.svg +1 -0
  168. data/assets/uswds/img/usa-icons-unused/airplanemode_inactive.svg +1 -0
  169. data/assets/uswds/img/usa-icons-unused/airplay.svg +1 -0
  170. data/assets/uswds/img/usa-icons-unused/airport_shuttle.svg +1 -0
  171. data/assets/uswds/img/usa-icons-unused/alarm_add.svg +1 -0
  172. data/assets/uswds/img/usa-icons-unused/alarm_off.svg +1 -0
  173. data/assets/uswds/img/usa-icons-unused/alarm_on.svg +1 -0
  174. data/assets/uswds/img/usa-icons-unused/album.svg +1 -0
  175. data/assets/uswds/img/usa-icons-unused/align_horizontal_center.svg +1 -0
  176. data/assets/uswds/img/usa-icons-unused/align_horizontal_left.svg +1 -0
  177. data/assets/uswds/img/usa-icons-unused/align_horizontal_right.svg +1 -0
  178. data/assets/uswds/img/usa-icons-unused/align_vertical_bottom.svg +1 -0
  179. data/assets/uswds/img/usa-icons-unused/align_vertical_center.svg +1 -0
  180. data/assets/uswds/img/usa-icons-unused/align_vertical_top.svg +1 -0
  181. data/assets/uswds/img/usa-icons-unused/all_inbox.svg +1 -0
  182. data/assets/uswds/img/usa-icons-unused/all_inclusive.svg +1 -0
  183. data/assets/uswds/img/usa-icons-unused/all_out.svg +1 -0
  184. data/assets/uswds/img/usa-icons-unused/alt_route.svg +1 -0
  185. data/assets/uswds/img/usa-icons-unused/amp_stories.svg +1 -0
  186. data/assets/uswds/img/usa-icons-unused/analytics.svg +1 -0
  187. data/assets/uswds/img/usa-icons-unused/anchor.svg +1 -0
  188. data/assets/uswds/img/usa-icons-unused/android.svg +1 -0
  189. data/assets/uswds/img/usa-icons-unused/animation.svg +1 -0
  190. data/assets/uswds/img/usa-icons-unused/apartment.svg +1 -0
  191. data/assets/uswds/img/usa-icons-unused/app_blocking.svg +1 -0
  192. data/assets/uswds/img/usa-icons-unused/app_registration.svg +1 -0
  193. data/assets/uswds/img/usa-icons-unused/app_settings_alt.svg +1 -0
  194. data/assets/uswds/img/usa-icons-unused/approval.svg +1 -0
  195. data/assets/uswds/img/usa-icons-unused/apps.svg +1 -0
  196. data/assets/uswds/img/usa-icons-unused/architecture.svg +1 -0
  197. data/assets/uswds/img/usa-icons-unused/archive.svg +1 -0
  198. data/assets/uswds/img/usa-icons-unused/arrow_back_ios.svg +1 -0
  199. data/assets/uswds/img/usa-icons-unused/arrow_circle_down.svg +1 -0
  200. data/assets/uswds/img/usa-icons-unused/arrow_circle_up.svg +1 -0
  201. data/assets/uswds/img/usa-icons-unused/arrow_drop_down_circle.svg +1 -0
  202. data/assets/uswds/img/usa-icons-unused/arrow_forward_ios.svg +1 -0
  203. data/assets/uswds/img/usa-icons-unused/arrow_left.svg +1 -0
  204. data/assets/uswds/img/usa-icons-unused/arrow_right.svg +1 -0
  205. data/assets/uswds/img/usa-icons-unused/arrow_right_alt.svg +1 -0
  206. data/assets/uswds/img/usa-icons-unused/art_track.svg +1 -0
  207. data/assets/uswds/img/usa-icons-unused/article.svg +1 -0
  208. data/assets/uswds/img/usa-icons-unused/aspect_ratio.svg +1 -0
  209. data/assets/uswds/img/usa-icons-unused/assignment.svg +1 -0
  210. data/assets/uswds/img/usa-icons-unused/assignment_ind.svg +1 -0
  211. data/assets/uswds/img/usa-icons-unused/assignment_late.svg +1 -0
  212. data/assets/uswds/img/usa-icons-unused/assignment_return.svg +1 -0
  213. data/assets/uswds/img/usa-icons-unused/assignment_returned.svg +1 -0
  214. data/assets/uswds/img/usa-icons-unused/assignment_turned_in.svg +1 -0
  215. data/assets/uswds/img/usa-icons-unused/assistant.svg +1 -0
  216. data/assets/uswds/img/usa-icons-unused/assistant_direction.svg +1 -0
  217. data/assets/uswds/img/usa-icons-unused/assistant_navigation.svg +1 -0
  218. data/assets/uswds/img/usa-icons-unused/assistant_photo.svg +1 -0
  219. data/assets/uswds/img/usa-icons-unused/atm.svg +1 -0
  220. data/assets/uswds/img/usa-icons-unused/attach_email.svg +1 -0
  221. data/assets/uswds/img/usa-icons-unused/attachment.svg +1 -0
  222. data/assets/uswds/img/usa-icons-unused/attractions.svg +1 -0
  223. data/assets/uswds/img/usa-icons-unused/audiotrack.svg +1 -0
  224. data/assets/uswds/img/usa-icons-unused/auto_awesome.svg +1 -0
  225. data/assets/uswds/img/usa-icons-unused/auto_awesome_mosaic.svg +1 -0
  226. data/assets/uswds/img/usa-icons-unused/auto_awesome_motion.svg +1 -0
  227. data/assets/uswds/img/usa-icons-unused/auto_delete.svg +1 -0
  228. data/assets/uswds/img/usa-icons-unused/auto_fix_high.svg +1 -0
  229. data/assets/uswds/img/usa-icons-unused/auto_fix_normal.svg +1 -0
  230. data/assets/uswds/img/usa-icons-unused/auto_fix_off.svg +1 -0
  231. data/assets/uswds/img/usa-icons-unused/auto_stories.svg +1 -0
  232. data/assets/uswds/img/usa-icons-unused/av_timer.svg +1 -0
  233. data/assets/uswds/img/usa-icons-unused/baby_changing_station.svg +1 -0
  234. data/assets/uswds/img/usa-icons-unused/backspace.svg +1 -0
  235. data/assets/uswds/img/usa-icons-unused/backup.svg +1 -0
  236. data/assets/uswds/img/usa-icons-unused/backup_table.svg +1 -0
  237. data/assets/uswds/img/usa-icons-unused/badge.svg +1 -0
  238. data/assets/uswds/img/usa-icons-unused/bakery_dining.svg +1 -0
  239. data/assets/uswds/img/usa-icons-unused/ballot.svg +1 -0
  240. data/assets/uswds/img/usa-icons-unused/bar_chart.svg +1 -0
  241. data/assets/uswds/img/usa-icons-unused/batch_prediction.svg +1 -0
  242. data/assets/uswds/img/usa-icons-unused/battery_alert.svg +1 -0
  243. data/assets/uswds/img/usa-icons-unused/battery_charging_full.svg +1 -0
  244. data/assets/uswds/img/usa-icons-unused/battery_full.svg +1 -0
  245. data/assets/uswds/img/usa-icons-unused/battery_std.svg +1 -0
  246. data/assets/uswds/img/usa-icons-unused/battery_unknown.svg +1 -0
  247. data/assets/uswds/img/usa-icons-unused/beach_access.svg +1 -0
  248. data/assets/uswds/img/usa-icons-unused/bedtime.svg +1 -0
  249. data/assets/uswds/img/usa-icons-unused/beenhere.svg +1 -0
  250. data/assets/uswds/img/usa-icons-unused/bento.svg +1 -0
  251. data/assets/uswds/img/usa-icons-unused/bike_scooter.svg +1 -0
  252. data/assets/uswds/img/usa-icons-unused/biotech.svg +1 -0
  253. data/assets/uswds/img/usa-icons-unused/block.svg +1 -0
  254. data/assets/uswds/img/usa-icons-unused/block_flipped.svg +1 -0
  255. data/assets/uswds/img/usa-icons-unused/bluetooth.svg +1 -0
  256. data/assets/uswds/img/usa-icons-unused/bluetooth_audio.svg +1 -0
  257. data/assets/uswds/img/usa-icons-unused/bluetooth_connected.svg +1 -0
  258. data/assets/uswds/img/usa-icons-unused/bluetooth_disabled.svg +1 -0
  259. data/assets/uswds/img/usa-icons-unused/bluetooth_searching.svg +1 -0
  260. data/assets/uswds/img/usa-icons-unused/blur_circular.svg +1 -0
  261. data/assets/uswds/img/usa-icons-unused/blur_linear.svg +1 -0
  262. data/assets/uswds/img/usa-icons-unused/blur_off.svg +1 -0
  263. data/assets/uswds/img/usa-icons-unused/blur_on.svg +1 -0
  264. data/assets/uswds/img/usa-icons-unused/bolt.svg +1 -0
  265. data/assets/uswds/img/usa-icons-unused/book.svg +1 -0
  266. data/assets/uswds/img/usa-icons-unused/book_online.svg +1 -0
  267. data/assets/uswds/img/usa-icons-unused/bookmark_border.svg +1 -0
  268. data/assets/uswds/img/usa-icons-unused/bookmarks.svg +1 -0
  269. data/assets/uswds/img/usa-icons-unused/border_all.svg +1 -0
  270. data/assets/uswds/img/usa-icons-unused/border_bottom.svg +1 -0
  271. data/assets/uswds/img/usa-icons-unused/border_clear.svg +1 -0
  272. data/assets/uswds/img/usa-icons-unused/border_color.svg +1 -0
  273. data/assets/uswds/img/usa-icons-unused/border_horizontal.svg +1 -0
  274. data/assets/uswds/img/usa-icons-unused/border_inner.svg +1 -0
  275. data/assets/uswds/img/usa-icons-unused/border_left.svg +1 -0
  276. data/assets/uswds/img/usa-icons-unused/border_outer.svg +1 -0
  277. data/assets/uswds/img/usa-icons-unused/border_right.svg +1 -0
  278. data/assets/uswds/img/usa-icons-unused/border_style.svg +1 -0
  279. data/assets/uswds/img/usa-icons-unused/border_top.svg +1 -0
  280. data/assets/uswds/img/usa-icons-unused/border_vertical.svg +1 -0
  281. data/assets/uswds/img/usa-icons-unused/branding_watermark.svg +1 -0
  282. data/assets/uswds/img/usa-icons-unused/breakfast_dining.svg +1 -0
  283. data/assets/uswds/img/usa-icons-unused/brightness_1.svg +1 -0
  284. data/assets/uswds/img/usa-icons-unused/brightness_2.svg +1 -0
  285. data/assets/uswds/img/usa-icons-unused/brightness_3.svg +1 -0
  286. data/assets/uswds/img/usa-icons-unused/brightness_4.svg +1 -0
  287. data/assets/uswds/img/usa-icons-unused/brightness_5.svg +1 -0
  288. data/assets/uswds/img/usa-icons-unused/brightness_6.svg +1 -0
  289. data/assets/uswds/img/usa-icons-unused/brightness_7.svg +1 -0
  290. data/assets/uswds/img/usa-icons-unused/brightness_auto.svg +1 -0
  291. data/assets/uswds/img/usa-icons-unused/brightness_high.svg +1 -0
  292. data/assets/uswds/img/usa-icons-unused/brightness_low.svg +1 -0
  293. data/assets/uswds/img/usa-icons-unused/brightness_medium.svg +1 -0
  294. data/assets/uswds/img/usa-icons-unused/broken_image.svg +1 -0
  295. data/assets/uswds/img/usa-icons-unused/browser_not_supported.svg +1 -0
  296. data/assets/uswds/img/usa-icons-unused/brunch_dining.svg +1 -0
  297. data/assets/uswds/img/usa-icons-unused/brush.svg +1 -0
  298. data/assets/uswds/img/usa-icons-unused/bubble_chart.svg +1 -0
  299. data/assets/uswds/img/usa-icons-unused/build_circle.svg +1 -0
  300. data/assets/uswds/img/usa-icons-unused/burst_mode.svg +1 -0
  301. data/assets/uswds/img/usa-icons-unused/bus_alert.svg +1 -0
  302. data/assets/uswds/img/usa-icons-unused/business.svg +1 -0
  303. data/assets/uswds/img/usa-icons-unused/business_center.svg +1 -0
  304. data/assets/uswds/img/usa-icons-unused/cached.svg +1 -0
  305. data/assets/uswds/img/usa-icons-unused/cake.svg +1 -0
  306. data/assets/uswds/img/usa-icons-unused/calculate.svg +1 -0
  307. data/assets/uswds/img/usa-icons-unused/calendar_view_day.svg +1 -0
  308. data/assets/uswds/img/usa-icons-unused/call.svg +1 -0
  309. data/assets/uswds/img/usa-icons-unused/call_end.svg +1 -0
  310. data/assets/uswds/img/usa-icons-unused/call_made.svg +1 -0
  311. data/assets/uswds/img/usa-icons-unused/call_merge.svg +1 -0
  312. data/assets/uswds/img/usa-icons-unused/call_missed.svg +1 -0
  313. data/assets/uswds/img/usa-icons-unused/call_missed_outgoing.svg +1 -0
  314. data/assets/uswds/img/usa-icons-unused/call_received.svg +1 -0
  315. data/assets/uswds/img/usa-icons-unused/call_split.svg +1 -0
  316. data/assets/uswds/img/usa-icons-unused/call_to_action.svg +1 -0
  317. data/assets/uswds/img/usa-icons-unused/camera.svg +1 -0
  318. data/assets/uswds/img/usa-icons-unused/camera_alt.svg +1 -0
  319. data/assets/uswds/img/usa-icons-unused/camera_enhance.svg +1 -0
  320. data/assets/uswds/img/usa-icons-unused/camera_front.svg +1 -0
  321. data/assets/uswds/img/usa-icons-unused/camera_rear.svg +1 -0
  322. data/assets/uswds/img/usa-icons-unused/camera_roll.svg +1 -0
  323. data/assets/uswds/img/usa-icons-unused/cancel_presentation.svg +1 -0
  324. data/assets/uswds/img/usa-icons-unused/cancel_schedule_send.svg +1 -0
  325. data/assets/uswds/img/usa-icons-unused/car_rental.svg +1 -0
  326. data/assets/uswds/img/usa-icons-unused/car_repair.svg +1 -0
  327. data/assets/uswds/img/usa-icons-unused/card_giftcard.svg +1 -0
  328. data/assets/uswds/img/usa-icons-unused/card_membership.svg +1 -0
  329. data/assets/uswds/img/usa-icons-unused/card_travel.svg +1 -0
  330. data/assets/uswds/img/usa-icons-unused/carpenter.svg +1 -0
  331. data/assets/uswds/img/usa-icons-unused/cases.svg +1 -0
  332. data/assets/uswds/img/usa-icons-unused/casino.svg +1 -0
  333. data/assets/uswds/img/usa-icons-unused/cast.svg +1 -0
  334. data/assets/uswds/img/usa-icons-unused/cast_connected.svg +1 -0
  335. data/assets/uswds/img/usa-icons-unused/cast_for_education.svg +1 -0
  336. data/assets/uswds/img/usa-icons-unused/category.svg +1 -0
  337. data/assets/uswds/img/usa-icons-unused/celebration.svg +1 -0
  338. data/assets/uswds/img/usa-icons-unused/cell_wifi.svg +1 -0
  339. data/assets/uswds/img/usa-icons-unused/center_focus_strong.svg +1 -0
  340. data/assets/uswds/img/usa-icons-unused/center_focus_weak.svg +1 -0
  341. data/assets/uswds/img/usa-icons-unused/change_history.svg +1 -0
  342. data/assets/uswds/img/usa-icons-unused/charging_station.svg +1 -0
  343. data/assets/uswds/img/usa-icons-unused/chat_bubble.svg +1 -0
  344. data/assets/uswds/img/usa-icons-unused/chat_bubble_outline.svg +1 -0
  345. data/assets/uswds/img/usa-icons-unused/check_box.svg +1 -0
  346. data/assets/uswds/img/usa-icons-unused/child_care.svg +1 -0
  347. data/assets/uswds/img/usa-icons-unused/child_friendly.svg +1 -0
  348. data/assets/uswds/img/usa-icons-unused/chrome_reader_mode.svg +1 -0
  349. data/assets/uswds/img/usa-icons-unused/circle.svg +1 -0
  350. data/assets/uswds/img/usa-icons-unused/circle_notifications.svg +1 -0
  351. data/assets/uswds/img/usa-icons-unused/class.svg +1 -0
  352. data/assets/uswds/img/usa-icons-unused/cleaning_services.svg +1 -0
  353. data/assets/uswds/img/usa-icons-unused/clear.svg +1 -0
  354. data/assets/uswds/img/usa-icons-unused/clear_all.svg +1 -0
  355. data/assets/uswds/img/usa-icons-unused/close_fullscreen.svg +1 -0
  356. data/assets/uswds/img/usa-icons-unused/closed_caption_disabled.svg +1 -0
  357. data/assets/uswds/img/usa-icons-unused/closed_caption_off.svg +1 -0
  358. data/assets/uswds/img/usa-icons-unused/cloud_circle.svg +1 -0
  359. data/assets/uswds/img/usa-icons-unused/cloud_done.svg +1 -0
  360. data/assets/uswds/img/usa-icons-unused/cloud_download.svg +1 -0
  361. data/assets/uswds/img/usa-icons-unused/cloud_off.svg +1 -0
  362. data/assets/uswds/img/usa-icons-unused/cloud_queue.svg +1 -0
  363. data/assets/uswds/img/usa-icons-unused/cloud_upload.svg +1 -0
  364. data/assets/uswds/img/usa-icons-unused/collections.svg +1 -0
  365. data/assets/uswds/img/usa-icons-unused/collections_bookmark.svg +1 -0
  366. data/assets/uswds/img/usa-icons-unused/color_lens.svg +1 -0
  367. data/assets/uswds/img/usa-icons-unused/colorize.svg +1 -0
  368. data/assets/uswds/img/usa-icons-unused/comment_bank.svg +1 -0
  369. data/assets/uswds/img/usa-icons-unused/commute.svg +1 -0
  370. data/assets/uswds/img/usa-icons-unused/compare.svg +1 -0
  371. data/assets/uswds/img/usa-icons-unused/compare_arrows.svg +1 -0
  372. data/assets/uswds/img/usa-icons-unused/compass_calibration.svg +1 -0
  373. data/assets/uswds/img/usa-icons-unused/compress.svg +1 -0
  374. data/assets/uswds/img/usa-icons-unused/computer.svg +1 -0
  375. data/assets/uswds/img/usa-icons-unused/confirmation_number.svg +1 -0
  376. data/assets/uswds/img/usa-icons-unused/connected_tv.svg +1 -0
  377. data/assets/uswds/img/usa-icons-unused/contact_mail.svg +1 -0
  378. data/assets/uswds/img/usa-icons-unused/contact_phone.svg +1 -0
  379. data/assets/uswds/img/usa-icons-unused/contact_support.svg +1 -0
  380. data/assets/uswds/img/usa-icons-unused/contactless.svg +1 -0
  381. data/assets/uswds/img/usa-icons-unused/contacts.svg +1 -0
  382. data/assets/uswds/img/usa-icons-unused/content_cut.svg +1 -0
  383. data/assets/uswds/img/usa-icons-unused/content_paste.svg +1 -0
  384. data/assets/uswds/img/usa-icons-unused/control_camera.svg +1 -0
  385. data/assets/uswds/img/usa-icons-unused/control_point.svg +1 -0
  386. data/assets/uswds/img/usa-icons-unused/control_point_duplicate.svg +1 -0
  387. data/assets/uswds/img/usa-icons-unused/copyright.svg +1 -0
  388. data/assets/uswds/img/usa-icons-unused/corporate_fare.svg +1 -0
  389. data/assets/uswds/img/usa-icons-unused/countertops.svg +1 -0
  390. data/assets/uswds/img/usa-icons-unused/create.svg +1 -0
  391. data/assets/uswds/img/usa-icons-unused/create_new_folder.svg +1 -0
  392. data/assets/uswds/img/usa-icons-unused/crop.svg +1 -0
  393. data/assets/uswds/img/usa-icons-unused/crop_16_9.svg +1 -0
  394. data/assets/uswds/img/usa-icons-unused/crop_3_2.svg +1 -0
  395. data/assets/uswds/img/usa-icons-unused/crop_5_4.svg +1 -0
  396. data/assets/uswds/img/usa-icons-unused/crop_7_5.svg +1 -0
  397. data/assets/uswds/img/usa-icons-unused/crop_din.svg +1 -0
  398. data/assets/uswds/img/usa-icons-unused/crop_free.svg +1 -0
  399. data/assets/uswds/img/usa-icons-unused/crop_landscape.svg +1 -0
  400. data/assets/uswds/img/usa-icons-unused/crop_original.svg +1 -0
  401. data/assets/uswds/img/usa-icons-unused/crop_portrait.svg +1 -0
  402. data/assets/uswds/img/usa-icons-unused/crop_rotate.svg +1 -0
  403. data/assets/uswds/img/usa-icons-unused/crop_square.svg +1 -0
  404. data/assets/uswds/img/usa-icons-unused/dangerous.svg +1 -0
  405. data/assets/uswds/img/usa-icons-unused/dashboard.svg +1 -0
  406. data/assets/uswds/img/usa-icons-unused/dashboard_customize.svg +1 -0
  407. data/assets/uswds/img/usa-icons-unused/data_usage.svg +1 -0
  408. data/assets/uswds/img/usa-icons-unused/date_range.svg +1 -0
  409. data/assets/uswds/img/usa-icons-unused/dehaze.svg +1 -0
  410. data/assets/uswds/img/usa-icons-unused/delete_forever.svg +1 -0
  411. data/assets/uswds/img/usa-icons-unused/delete_outline.svg +1 -0
  412. data/assets/uswds/img/usa-icons-unused/delete_sweep.svg +1 -0
  413. data/assets/uswds/img/usa-icons-unused/delivery_dining.svg +1 -0
  414. data/assets/uswds/img/usa-icons-unused/departure_board.svg +1 -0
  415. data/assets/uswds/img/usa-icons-unused/description.svg +1 -0
  416. data/assets/uswds/img/usa-icons-unused/design_services.svg +1 -0
  417. data/assets/uswds/img/usa-icons-unused/desktop_access_disabled.svg +1 -0
  418. data/assets/uswds/img/usa-icons-unused/desktop_mac.svg +1 -0
  419. data/assets/uswds/img/usa-icons-unused/desktop_windows.svg +1 -0
  420. data/assets/uswds/img/usa-icons-unused/details.svg +1 -0
  421. data/assets/uswds/img/usa-icons-unused/developer_board.svg +1 -0
  422. data/assets/uswds/img/usa-icons-unused/developer_mode.svg +1 -0
  423. data/assets/uswds/img/usa-icons-unused/device_hub.svg +1 -0
  424. data/assets/uswds/img/usa-icons-unused/device_unknown.svg +1 -0
  425. data/assets/uswds/img/usa-icons-unused/devices.svg +1 -0
  426. data/assets/uswds/img/usa-icons-unused/devices_other.svg +1 -0
  427. data/assets/uswds/img/usa-icons-unused/dialer_sip.svg +1 -0
  428. data/assets/uswds/img/usa-icons-unused/dialpad.svg +1 -0
  429. data/assets/uswds/img/usa-icons-unused/dinner_dining.svg +1 -0
  430. data/assets/uswds/img/usa-icons-unused/directions_boat.svg +1 -0
  431. data/assets/uswds/img/usa-icons-unused/directions_off.svg +1 -0
  432. data/assets/uswds/img/usa-icons-unused/directions_railway.svg +1 -0
  433. data/assets/uswds/img/usa-icons-unused/directions_run.svg +1 -0
  434. data/assets/uswds/img/usa-icons-unused/directions_subway.svg +1 -0
  435. data/assets/uswds/img/usa-icons-unused/directions_transit.svg +1 -0
  436. data/assets/uswds/img/usa-icons-unused/dirty_lens.svg +1 -0
  437. data/assets/uswds/img/usa-icons-unused/disabled_by_default.svg +1 -0
  438. data/assets/uswds/img/usa-icons-unused/disc_full.svg +1 -0
  439. data/assets/uswds/img/usa-icons-unused/dns.svg +1 -0
  440. data/assets/uswds/img/usa-icons-unused/do_not_disturb_alt.svg +1 -0
  441. data/assets/uswds/img/usa-icons-unused/do_not_disturb_off.svg +1 -0
  442. data/assets/uswds/img/usa-icons-unused/do_not_disturb_on.svg +1 -0
  443. data/assets/uswds/img/usa-icons-unused/do_not_step.svg +1 -0
  444. data/assets/uswds/img/usa-icons-unused/dock.svg +1 -0
  445. data/assets/uswds/img/usa-icons-unused/domain.svg +1 -0
  446. data/assets/uswds/img/usa-icons-unused/domain_disabled.svg +1 -0
  447. data/assets/uswds/img/usa-icons-unused/domain_verification.svg +1 -0
  448. data/assets/uswds/img/usa-icons-unused/done.svg +1 -0
  449. data/assets/uswds/img/usa-icons-unused/done_all.svg +1 -0
  450. data/assets/uswds/img/usa-icons-unused/done_outline.svg +1 -0
  451. data/assets/uswds/img/usa-icons-unused/donut_large.svg +1 -0
  452. data/assets/uswds/img/usa-icons-unused/donut_small.svg +1 -0
  453. data/assets/uswds/img/usa-icons-unused/double_arrow.svg +1 -0
  454. data/assets/uswds/img/usa-icons-unused/drafts.svg +1 -0
  455. data/assets/uswds/img/usa-icons-unused/drag_indicator.svg +1 -0
  456. data/assets/uswds/img/usa-icons-unused/drive_eta.svg +1 -0
  457. data/assets/uswds/img/usa-icons-unused/drive_file_move.svg +1 -0
  458. data/assets/uswds/img/usa-icons-unused/drive_file_move_outline.svg +1 -0
  459. data/assets/uswds/img/usa-icons-unused/drive_file_rename_outline.svg +1 -0
  460. data/assets/uswds/img/usa-icons-unused/drive_folder_upload.svg +1 -0
  461. data/assets/uswds/img/usa-icons-unused/dry.svg +1 -0
  462. data/assets/uswds/img/usa-icons-unused/dry_cleaning.svg +1 -0
  463. data/assets/uswds/img/usa-icons-unused/duo.svg +1 -0
  464. data/assets/uswds/img/usa-icons-unused/dvr.svg +1 -0
  465. data/assets/uswds/img/usa-icons-unused/dynamic_feed.svg +1 -0
  466. data/assets/uswds/img/usa-icons-unused/dynamic_form.svg +1 -0
  467. data/assets/uswds/img/usa-icons-unused/east.svg +1 -0
  468. data/assets/uswds/img/usa-icons-unused/edit_attributes.svg +1 -0
  469. data/assets/uswds/img/usa-icons-unused/edit_location.svg +1 -0
  470. data/assets/uswds/img/usa-icons-unused/edit_off.svg +1 -0
  471. data/assets/uswds/img/usa-icons-unused/edit_road.svg +1 -0
  472. data/assets/uswds/img/usa-icons-unused/eject.svg +1 -0
  473. data/assets/uswds/img/usa-icons-unused/elderly.svg +1 -0
  474. data/assets/uswds/img/usa-icons-unused/electric_bike.svg +1 -0
  475. data/assets/uswds/img/usa-icons-unused/electric_car.svg +1 -0
  476. data/assets/uswds/img/usa-icons-unused/electric_moped.svg +1 -0
  477. data/assets/uswds/img/usa-icons-unused/electric_rickshaw.svg +1 -0
  478. data/assets/uswds/img/usa-icons-unused/electric_scooter.svg +1 -0
  479. data/assets/uswds/img/usa-icons-unused/elevator.svg +1 -0
  480. data/assets/uswds/img/usa-icons-unused/email.svg +1 -0
  481. data/assets/uswds/img/usa-icons-unused/emoji_emotions.svg +1 -0
  482. data/assets/uswds/img/usa-icons-unused/emoji_flags.svg +1 -0
  483. data/assets/uswds/img/usa-icons-unused/emoji_food_beverage.svg +1 -0
  484. data/assets/uswds/img/usa-icons-unused/emoji_nature.svg +1 -0
  485. data/assets/uswds/img/usa-icons-unused/emoji_objects.svg +1 -0
  486. data/assets/uswds/img/usa-icons-unused/emoji_people.svg +1 -0
  487. data/assets/uswds/img/usa-icons-unused/emoji_symbols.svg +1 -0
  488. data/assets/uswds/img/usa-icons-unused/emoji_transportation.svg +1 -0
  489. data/assets/uswds/img/usa-icons-unused/engineering.svg +1 -0
  490. data/assets/uswds/img/usa-icons-unused/enhanced_encryption.svg +1 -0
  491. data/assets/uswds/img/usa-icons-unused/equalizer.svg +1 -0
  492. data/assets/uswds/img/usa-icons-unused/escalator.svg +1 -0
  493. data/assets/uswds/img/usa-icons-unused/escalator_warning.svg +1 -0
  494. data/assets/uswds/img/usa-icons-unused/euro.svg +1 -0
  495. data/assets/uswds/img/usa-icons-unused/euro_symbol.svg +1 -0
  496. data/assets/uswds/img/usa-icons-unused/ev_station.svg +1 -0
  497. data/assets/uswds/img/usa-icons-unused/event_available.svg +1 -0
  498. data/assets/uswds/img/usa-icons-unused/event_busy.svg +1 -0
  499. data/assets/uswds/img/usa-icons-unused/event_note.svg +1 -0
  500. data/assets/uswds/img/usa-icons-unused/event_seat.svg +1 -0
  501. data/assets/uswds/img/usa-icons-unused/exit_to_app.svg +1 -0
  502. data/assets/uswds/img/usa-icons-unused/expand.svg +1 -0
  503. data/assets/uswds/img/usa-icons-unused/explicit.svg +1 -0
  504. data/assets/uswds/img/usa-icons-unused/explore.svg +1 -0
  505. data/assets/uswds/img/usa-icons-unused/explore_off.svg +1 -0
  506. data/assets/uswds/img/usa-icons-unused/exposure.svg +1 -0
  507. data/assets/uswds/img/usa-icons-unused/exposure_neg_1.svg +1 -0
  508. data/assets/uswds/img/usa-icons-unused/exposure_neg_2.svg +1 -0
  509. data/assets/uswds/img/usa-icons-unused/exposure_plus_1.svg +1 -0
  510. data/assets/uswds/img/usa-icons-unused/exposure_plus_2.svg +1 -0
  511. data/assets/uswds/img/usa-icons-unused/exposure_zero.svg +1 -0
  512. data/assets/uswds/img/usa-icons-unused/extension.svg +1 -0
  513. data/assets/uswds/img/usa-icons-unused/face.svg +1 -0
  514. data/assets/uswds/img/usa-icons-unused/face_retouching_natural.svg +1 -0
  515. data/assets/uswds/img/usa-icons-unused/fact_check.svg +1 -0
  516. data/assets/uswds/img/usa-icons-unused/family_restroom.svg +1 -0
  517. data/assets/uswds/img/usa-icons-unused/fastfood.svg +1 -0
  518. data/assets/uswds/img/usa-icons-unused/featured_play_list.svg +1 -0
  519. data/assets/uswds/img/usa-icons-unused/featured_video.svg +1 -0
  520. data/assets/uswds/img/usa-icons-unused/feedback.svg +1 -0
  521. data/assets/uswds/img/usa-icons-unused/fence.svg +1 -0
  522. data/assets/uswds/img/usa-icons-unused/festival.svg +1 -0
  523. data/assets/uswds/img/usa-icons-unused/fiber_dvr.svg +1 -0
  524. data/assets/uswds/img/usa-icons-unused/fiber_manual_record.svg +1 -0
  525. data/assets/uswds/img/usa-icons-unused/fiber_new.svg +1 -0
  526. data/assets/uswds/img/usa-icons-unused/fiber_pin.svg +1 -0
  527. data/assets/uswds/img/usa-icons-unused/fiber_smart_record.svg +1 -0
  528. data/assets/uswds/img/usa-icons-unused/file_copy.svg +1 -0
  529. data/assets/uswds/img/usa-icons-unused/file_download_done.svg +1 -0
  530. data/assets/uswds/img/usa-icons-unused/filter.svg +1 -0
  531. data/assets/uswds/img/usa-icons-unused/filter_1.svg +1 -0
  532. data/assets/uswds/img/usa-icons-unused/filter_2.svg +1 -0
  533. data/assets/uswds/img/usa-icons-unused/filter_3.svg +1 -0
  534. data/assets/uswds/img/usa-icons-unused/filter_4.svg +1 -0
  535. data/assets/uswds/img/usa-icons-unused/filter_5.svg +1 -0
  536. data/assets/uswds/img/usa-icons-unused/filter_6.svg +1 -0
  537. data/assets/uswds/img/usa-icons-unused/filter_7.svg +1 -0
  538. data/assets/uswds/img/usa-icons-unused/filter_8.svg +1 -0
  539. data/assets/uswds/img/usa-icons-unused/filter_9.svg +1 -0
  540. data/assets/uswds/img/usa-icons-unused/filter_9_plus.svg +1 -0
  541. data/assets/uswds/img/usa-icons-unused/filter_b_and_w.svg +1 -0
  542. data/assets/uswds/img/usa-icons-unused/filter_center_focus.svg +1 -0
  543. data/assets/uswds/img/usa-icons-unused/filter_drama.svg +1 -0
  544. data/assets/uswds/img/usa-icons-unused/filter_frames.svg +1 -0
  545. data/assets/uswds/img/usa-icons-unused/filter_hdr.svg +1 -0
  546. data/assets/uswds/img/usa-icons-unused/filter_list_alt.svg +1 -0
  547. data/assets/uswds/img/usa-icons-unused/filter_none.svg +1 -0
  548. data/assets/uswds/img/usa-icons-unused/filter_tilt_shift.svg +1 -0
  549. data/assets/uswds/img/usa-icons-unused/filter_vintage.svg +1 -0
  550. data/assets/uswds/img/usa-icons-unused/find_in_page.svg +1 -0
  551. data/assets/uswds/img/usa-icons-unused/find_replace.svg +1 -0
  552. data/assets/uswds/img/usa-icons-unused/fire_extinguisher.svg +1 -0
  553. data/assets/uswds/img/usa-icons-unused/fireplace.svg +1 -0
  554. data/assets/uswds/img/usa-icons-unused/fit_screen.svg +1 -0
  555. data/assets/uswds/img/usa-icons-unused/fitness_center.svg +1 -0
  556. data/assets/uswds/img/usa-icons-unused/flaky.svg +1 -0
  557. data/assets/uswds/img/usa-icons-unused/flare.svg +1 -0
  558. data/assets/uswds/img/usa-icons-unused/flash_auto.svg +1 -0
  559. data/assets/uswds/img/usa-icons-unused/flash_off.svg +1 -0
  560. data/assets/uswds/img/usa-icons-unused/flash_on.svg +1 -0
  561. data/assets/uswds/img/usa-icons-unused/flight_land.svg +1 -0
  562. data/assets/uswds/img/usa-icons-unused/flight_takeoff.svg +1 -0
  563. data/assets/uswds/img/usa-icons-unused/flip.svg +1 -0
  564. data/assets/uswds/img/usa-icons-unused/flip_camera_android.svg +1 -0
  565. data/assets/uswds/img/usa-icons-unused/flip_camera_ios.svg +1 -0
  566. data/assets/uswds/img/usa-icons-unused/flip_to_back.svg +1 -0
  567. data/assets/uswds/img/usa-icons-unused/flip_to_front.svg +1 -0
  568. data/assets/uswds/img/usa-icons-unused/folder_shared.svg +1 -0
  569. data/assets/uswds/img/usa-icons-unused/folder_special.svg +1 -0
  570. data/assets/uswds/img/usa-icons-unused/follow_the_signs.svg +1 -0
  571. data/assets/uswds/img/usa-icons-unused/font_download.svg +1 -0
  572. data/assets/uswds/img/usa-icons-unused/food_bank.svg +1 -0
  573. data/assets/uswds/img/usa-icons-unused/format_align_center.svg +1 -0
  574. data/assets/uswds/img/usa-icons-unused/format_align_justify.svg +1 -0
  575. data/assets/uswds/img/usa-icons-unused/format_align_left.svg +1 -0
  576. data/assets/uswds/img/usa-icons-unused/format_align_right.svg +1 -0
  577. data/assets/uswds/img/usa-icons-unused/format_bold.svg +1 -0
  578. data/assets/uswds/img/usa-icons-unused/format_clear.svg +1 -0
  579. data/assets/uswds/img/usa-icons-unused/format_color_fill.svg +1 -0
  580. data/assets/uswds/img/usa-icons-unused/format_color_reset.svg +1 -0
  581. data/assets/uswds/img/usa-icons-unused/format_color_text.svg +1 -0
  582. data/assets/uswds/img/usa-icons-unused/format_indent_decrease.svg +1 -0
  583. data/assets/uswds/img/usa-icons-unused/format_indent_increase.svg +1 -0
  584. data/assets/uswds/img/usa-icons-unused/format_italic.svg +1 -0
  585. data/assets/uswds/img/usa-icons-unused/format_line_spacing.svg +1 -0
  586. data/assets/uswds/img/usa-icons-unused/format_list_bulleted.svg +1 -0
  587. data/assets/uswds/img/usa-icons-unused/format_list_numbered.svg +1 -0
  588. data/assets/uswds/img/usa-icons-unused/format_list_numbered_rtl.svg +1 -0
  589. data/assets/uswds/img/usa-icons-unused/format_paint.svg +1 -0
  590. data/assets/uswds/img/usa-icons-unused/format_shapes.svg +1 -0
  591. data/assets/uswds/img/usa-icons-unused/format_strikethrough.svg +1 -0
  592. data/assets/uswds/img/usa-icons-unused/format_textdirection_l_to_r.svg +1 -0
  593. data/assets/uswds/img/usa-icons-unused/format_textdirection_r_to_l.svg +1 -0
  594. data/assets/uswds/img/usa-icons-unused/format_underlined.svg +1 -0
  595. data/assets/uswds/img/usa-icons-unused/forward.svg +1 -0
  596. data/assets/uswds/img/usa-icons-unused/forward_10.svg +1 -0
  597. data/assets/uswds/img/usa-icons-unused/forward_30.svg +1 -0
  598. data/assets/uswds/img/usa-icons-unused/forward_5.svg +1 -0
  599. data/assets/uswds/img/usa-icons-unused/forward_to_inbox.svg +1 -0
  600. data/assets/uswds/img/usa-icons-unused/foundation.svg +1 -0
  601. data/assets/uswds/img/usa-icons-unused/free_breakfast.svg +1 -0
  602. data/assets/uswds/img/usa-icons-unused/fullscreen.svg +1 -0
  603. data/assets/uswds/img/usa-icons-unused/fullscreen_exit.svg +1 -0
  604. data/assets/uswds/img/usa-icons-unused/functions.svg +1 -0
  605. data/assets/uswds/img/usa-icons-unused/g_translate.svg +1 -0
  606. data/assets/uswds/img/usa-icons-unused/gamepad.svg +1 -0
  607. data/assets/uswds/img/usa-icons-unused/games.svg +1 -0
  608. data/assets/uswds/img/usa-icons-unused/gavel.svg +1 -0
  609. data/assets/uswds/img/usa-icons-unused/gesture.svg +1 -0
  610. data/assets/uswds/img/usa-icons-unused/get_app.svg +1 -0
  611. data/assets/uswds/img/usa-icons-unused/gif.svg +1 -0
  612. data/assets/uswds/img/usa-icons-unused/golf_course.svg +1 -0
  613. data/assets/uswds/img/usa-icons-unused/gps_fixed.svg +1 -0
  614. data/assets/uswds/img/usa-icons-unused/gps_not_fixed.svg +1 -0
  615. data/assets/uswds/img/usa-icons-unused/gps_off.svg +1 -0
  616. data/assets/uswds/img/usa-icons-unused/grade.svg +1 -0
  617. data/assets/uswds/img/usa-icons-unused/gradient.svg +1 -0
  618. data/assets/uswds/img/usa-icons-unused/grading.svg +1 -0
  619. data/assets/uswds/img/usa-icons-unused/grain.svg +1 -0
  620. data/assets/uswds/img/usa-icons-unused/graphic_eq.svg +1 -0
  621. data/assets/uswds/img/usa-icons-unused/grass.svg +1 -0
  622. data/assets/uswds/img/usa-icons-unused/grid_off.svg +1 -0
  623. data/assets/uswds/img/usa-icons-unused/grid_on.svg +1 -0
  624. data/assets/uswds/img/usa-icons-unused/group.svg +1 -0
  625. data/assets/uswds/img/usa-icons-unused/group_work.svg +1 -0
  626. data/assets/uswds/img/usa-icons-unused/hail.svg +1 -0
  627. data/assets/uswds/img/usa-icons-unused/handyman.svg +1 -0
  628. data/assets/uswds/img/usa-icons-unused/hardware.svg +1 -0
  629. data/assets/uswds/img/usa-icons-unused/hd.svg +1 -0
  630. data/assets/uswds/img/usa-icons-unused/hdr_enhanced_select.svg +1 -0
  631. data/assets/uswds/img/usa-icons-unused/hdr_off.svg +1 -0
  632. data/assets/uswds/img/usa-icons-unused/hdr_on.svg +1 -0
  633. data/assets/uswds/img/usa-icons-unused/hdr_strong.svg +1 -0
  634. data/assets/uswds/img/usa-icons-unused/hdr_weak.svg +1 -0
  635. data/assets/uswds/img/usa-icons-unused/headset.svg +1 -0
  636. data/assets/uswds/img/usa-icons-unused/headset_mic.svg +1 -0
  637. data/assets/uswds/img/usa-icons-unused/headset_off.svg +1 -0
  638. data/assets/uswds/img/usa-icons-unused/healing.svg +1 -0
  639. data/assets/uswds/img/usa-icons-unused/hearing_disabled.svg +1 -0
  640. data/assets/uswds/img/usa-icons-unused/height.svg +1 -0
  641. data/assets/uswds/img/usa-icons-unused/help_center.svg +1 -0
  642. data/assets/uswds/img/usa-icons-unused/high_quality.svg +1 -0
  643. data/assets/uswds/img/usa-icons-unused/highlight.svg +1 -0
  644. data/assets/uswds/img/usa-icons-unused/highlight_alt.svg +1 -0
  645. data/assets/uswds/img/usa-icons-unused/history_edu.svg +1 -0
  646. data/assets/uswds/img/usa-icons-unused/history_toggle_off.svg +1 -0
  647. data/assets/uswds/img/usa-icons-unused/home_filled.svg +1 -0
  648. data/assets/uswds/img/usa-icons-unused/home_repair_service.svg +1 -0
  649. data/assets/uswds/img/usa-icons-unused/home_work.svg +1 -0
  650. data/assets/uswds/img/usa-icons-unused/horizontal_distribute.svg +1 -0
  651. data/assets/uswds/img/usa-icons-unused/horizontal_rule.svg +1 -0
  652. data/assets/uswds/img/usa-icons-unused/horizontal_split.svg +1 -0
  653. data/assets/uswds/img/usa-icons-unused/hot_tub.svg +1 -0
  654. data/assets/uswds/img/usa-icons-unused/hourglass_bottom.svg +1 -0
  655. data/assets/uswds/img/usa-icons-unused/hourglass_disabled.svg +1 -0
  656. data/assets/uswds/img/usa-icons-unused/hourglass_full.svg +1 -0
  657. data/assets/uswds/img/usa-icons-unused/hourglass_top.svg +1 -0
  658. data/assets/uswds/img/usa-icons-unused/house.svg +1 -0
  659. data/assets/uswds/img/usa-icons-unused/house_siding.svg +1 -0
  660. data/assets/uswds/img/usa-icons-unused/how_to_reg.svg +1 -0
  661. data/assets/uswds/img/usa-icons-unused/how_to_vote.svg +1 -0
  662. data/assets/uswds/img/usa-icons-unused/http.svg +1 -0
  663. data/assets/uswds/img/usa-icons-unused/https.svg +1 -0
  664. data/assets/uswds/img/usa-icons-unused/hvac.svg +1 -0
  665. data/assets/uswds/img/usa-icons-unused/icecream.svg +1 -0
  666. data/assets/uswds/img/usa-icons-unused/image_aspect_ratio.svg +1 -0
  667. data/assets/uswds/img/usa-icons-unused/image_not_supported.svg +1 -0
  668. data/assets/uswds/img/usa-icons-unused/image_search.svg +1 -0
  669. data/assets/uswds/img/usa-icons-unused/imagesearch_roller.svg +1 -0
  670. data/assets/uswds/img/usa-icons-unused/import_contacts.svg +1 -0
  671. data/assets/uswds/img/usa-icons-unused/import_export.svg +1 -0
  672. data/assets/uswds/img/usa-icons-unused/important_devices.svg +1 -0
  673. data/assets/uswds/img/usa-icons-unused/inbox.svg +1 -0
  674. data/assets/uswds/img/usa-icons-unused/indeterminate_check_box.svg +1 -0
  675. data/assets/uswds/img/usa-icons-unused/input.svg +1 -0
  676. data/assets/uswds/img/usa-icons-unused/insert_chart.svg +1 -0
  677. data/assets/uswds/img/usa-icons-unused/insert_chart_outlined.svg +1 -0
  678. data/assets/uswds/img/usa-icons-unused/insert_comment.svg +1 -0
  679. data/assets/uswds/img/usa-icons-unused/insert_drive_file.svg +1 -0
  680. data/assets/uswds/img/usa-icons-unused/insert_emoticon.svg +1 -0
  681. data/assets/uswds/img/usa-icons-unused/insert_invitation.svg +1 -0
  682. data/assets/uswds/img/usa-icons-unused/insert_link.svg +1 -0
  683. data/assets/uswds/img/usa-icons-unused/insert_photo.svg +1 -0
  684. data/assets/uswds/img/usa-icons-unused/integration_instructions.svg +1 -0
  685. data/assets/uswds/img/usa-icons-unused/inventory.svg +1 -0
  686. data/assets/uswds/img/usa-icons-unused/invert_colors.svg +1 -0
  687. data/assets/uswds/img/usa-icons-unused/invert_colors_off.svg +1 -0
  688. data/assets/uswds/img/usa-icons-unused/ios_share.svg +1 -0
  689. data/assets/uswds/img/usa-icons-unused/iso.svg +1 -0
  690. data/assets/uswds/img/usa-icons-unused/keyboard_arrow_down.svg +1 -0
  691. data/assets/uswds/img/usa-icons-unused/keyboard_arrow_left.svg +1 -0
  692. data/assets/uswds/img/usa-icons-unused/keyboard_arrow_right.svg +1 -0
  693. data/assets/uswds/img/usa-icons-unused/keyboard_arrow_up.svg +1 -0
  694. data/assets/uswds/img/usa-icons-unused/keyboard_backspace.svg +1 -0
  695. data/assets/uswds/img/usa-icons-unused/keyboard_capslock.svg +1 -0
  696. data/assets/uswds/img/usa-icons-unused/keyboard_hide.svg +1 -0
  697. data/assets/uswds/img/usa-icons-unused/keyboard_return.svg +1 -0
  698. data/assets/uswds/img/usa-icons-unused/keyboard_tab.svg +1 -0
  699. data/assets/uswds/img/usa-icons-unused/keyboard_voice.svg +1 -0
  700. data/assets/uswds/img/usa-icons-unused/king_bed.svg +1 -0
  701. data/assets/uswds/img/usa-icons-unused/kitchen.svg +1 -0
  702. data/assets/uswds/img/usa-icons-unused/label_important.svg +1 -0
  703. data/assets/uswds/img/usa-icons-unused/label_important_outline.svg +1 -0
  704. data/assets/uswds/img/usa-icons-unused/label_off.svg +1 -0
  705. data/assets/uswds/img/usa-icons-unused/label_outline.svg +1 -0
  706. data/assets/uswds/img/usa-icons-unused/landscape.svg +1 -0
  707. data/assets/uswds/img/usa-icons-unused/laptop.svg +1 -0
  708. data/assets/uswds/img/usa-icons-unused/laptop_chromebook.svg +1 -0
  709. data/assets/uswds/img/usa-icons-unused/laptop_mac.svg +1 -0
  710. data/assets/uswds/img/usa-icons-unused/laptop_windows.svg +1 -0
  711. data/assets/uswds/img/usa-icons-unused/layers.svg +1 -0
  712. data/assets/uswds/img/usa-icons-unused/layers_clear.svg +1 -0
  713. data/assets/uswds/img/usa-icons-unused/leaderboard.svg +1 -0
  714. data/assets/uswds/img/usa-icons-unused/leak_add.svg +1 -0
  715. data/assets/uswds/img/usa-icons-unused/leak_remove.svg +1 -0
  716. data/assets/uswds/img/usa-icons-unused/legend_toggle.svg +1 -0
  717. data/assets/uswds/img/usa-icons-unused/lens.svg +1 -0
  718. data/assets/uswds/img/usa-icons-unused/library_add.svg +1 -0
  719. data/assets/uswds/img/usa-icons-unused/library_add_check.svg +1 -0
  720. data/assets/uswds/img/usa-icons-unused/library_books.svg +1 -0
  721. data/assets/uswds/img/usa-icons-unused/library_music.svg +1 -0
  722. data/assets/uswds/img/usa-icons-unused/line_style.svg +1 -0
  723. data/assets/uswds/img/usa-icons-unused/line_weight.svg +1 -0
  724. data/assets/uswds/img/usa-icons-unused/linear_scale.svg +1 -0
  725. data/assets/uswds/img/usa-icons-unused/linked_camera.svg +1 -0
  726. data/assets/uswds/img/usa-icons-unused/liquor.svg +1 -0
  727. data/assets/uswds/img/usa-icons-unused/list_alt.svg +1 -0
  728. data/assets/uswds/img/usa-icons-unused/live_help.svg +1 -0
  729. data/assets/uswds/img/usa-icons-unused/live_tv.svg +1 -0
  730. data/assets/uswds/img/usa-icons-unused/local_activity.svg +1 -0
  731. data/assets/uswds/img/usa-icons-unused/local_airport.svg +1 -0
  732. data/assets/uswds/img/usa-icons-unused/local_atm.svg +1 -0
  733. data/assets/uswds/img/usa-icons-unused/local_bar.svg +1 -0
  734. data/assets/uswds/img/usa-icons-unused/local_car_wash.svg +1 -0
  735. data/assets/uswds/img/usa-icons-unused/local_convenience_store.svg +1 -0
  736. data/assets/uswds/img/usa-icons-unused/local_dining.svg +1 -0
  737. data/assets/uswds/img/usa-icons-unused/local_drink.svg +1 -0
  738. data/assets/uswds/img/usa-icons-unused/local_florist.svg +1 -0
  739. data/assets/uswds/img/usa-icons-unused/local_hotel.svg +1 -0
  740. data/assets/uswds/img/usa-icons-unused/local_mall.svg +1 -0
  741. data/assets/uswds/img/usa-icons-unused/local_movies.svg +1 -0
  742. data/assets/uswds/img/usa-icons-unused/local_phone.svg +1 -0
  743. data/assets/uswds/img/usa-icons-unused/local_pizza.svg +1 -0
  744. data/assets/uswds/img/usa-icons-unused/local_play.svg +1 -0
  745. data/assets/uswds/img/usa-icons-unused/local_post_office.svg +1 -0
  746. data/assets/uswds/img/usa-icons-unused/local_printshop.svg +1 -0
  747. data/assets/uswds/img/usa-icons-unused/local_see.svg +1 -0
  748. data/assets/uswds/img/usa-icons-unused/local_shipping.svg +1 -0
  749. data/assets/uswds/img/usa-icons-unused/location_disabled.svg +1 -0
  750. data/assets/uswds/img/usa-icons-unused/location_off.svg +1 -0
  751. data/assets/uswds/img/usa-icons-unused/location_pin.svg +1 -0
  752. data/assets/uswds/img/usa-icons-unused/location_searching.svg +1 -0
  753. data/assets/uswds/img/usa-icons-unused/lock_clock.svg +1 -0
  754. data/assets/uswds/img/usa-icons-unused/looks.svg +1 -0
  755. data/assets/uswds/img/usa-icons-unused/looks_3.svg +1 -0
  756. data/assets/uswds/img/usa-icons-unused/looks_4.svg +1 -0
  757. data/assets/uswds/img/usa-icons-unused/looks_5.svg +1 -0
  758. data/assets/uswds/img/usa-icons-unused/looks_6.svg +1 -0
  759. data/assets/uswds/img/usa-icons-unused/looks_one.svg +1 -0
  760. data/assets/uswds/img/usa-icons-unused/looks_two.svg +1 -0
  761. data/assets/uswds/img/usa-icons-unused/loupe.svg +1 -0
  762. data/assets/uswds/img/usa-icons-unused/low_priority.svg +1 -0
  763. data/assets/uswds/img/usa-icons-unused/loyalty.svg +1 -0
  764. data/assets/uswds/img/usa-icons-unused/luggage.svg +1 -0
  765. data/assets/uswds/img/usa-icons-unused/lunch_dining.svg +1 -0
  766. data/assets/uswds/img/usa-icons-unused/maps_ugc.svg +1 -0
  767. data/assets/uswds/img/usa-icons-unused/margin.svg +1 -0
  768. data/assets/uswds/img/usa-icons-unused/mark_as_unread.svg +1 -0
  769. data/assets/uswds/img/usa-icons-unused/mark_chat_read.svg +1 -0
  770. data/assets/uswds/img/usa-icons-unused/mark_chat_unread.svg +1 -0
  771. data/assets/uswds/img/usa-icons-unused/mark_email_read.svg +1 -0
  772. data/assets/uswds/img/usa-icons-unused/mark_email_unread.svg +1 -0
  773. data/assets/uswds/img/usa-icons-unused/markunread.svg +1 -0
  774. data/assets/uswds/img/usa-icons-unused/markunread_mailbox.svg +1 -0
  775. data/assets/uswds/img/usa-icons-unused/maximize.svg +1 -0
  776. data/assets/uswds/img/usa-icons-unused/mediation.svg +1 -0
  777. data/assets/uswds/img/usa-icons-unused/meeting_room.svg +1 -0
  778. data/assets/uswds/img/usa-icons-unused/memory.svg +1 -0
  779. data/assets/uswds/img/usa-icons-unused/menu_book.svg +1 -0
  780. data/assets/uswds/img/usa-icons-unused/menu_open.svg +1 -0
  781. data/assets/uswds/img/usa-icons-unused/merge_type.svg +1 -0
  782. data/assets/uswds/img/usa-icons-unused/message.svg +1 -0
  783. data/assets/uswds/img/usa-icons-unused/mic.svg +1 -0
  784. data/assets/uswds/img/usa-icons-unused/mic_external_off.svg +1 -0
  785. data/assets/uswds/img/usa-icons-unused/mic_external_on.svg +1 -0
  786. data/assets/uswds/img/usa-icons-unused/mic_none.svg +1 -0
  787. data/assets/uswds/img/usa-icons-unused/mic_off.svg +1 -0
  788. data/assets/uswds/img/usa-icons-unused/microwave.svg +1 -0
  789. data/assets/uswds/img/usa-icons-unused/minimize.svg +1 -0
  790. data/assets/uswds/img/usa-icons-unused/miscellaneous_services.svg +1 -0
  791. data/assets/uswds/img/usa-icons-unused/missed_video_call.svg +1 -0
  792. data/assets/uswds/img/usa-icons-unused/mms.svg +1 -0
  793. data/assets/uswds/img/usa-icons-unused/mobile_friendly.svg +1 -0
  794. data/assets/uswds/img/usa-icons-unused/mobile_off.svg +1 -0
  795. data/assets/uswds/img/usa-icons-unused/mobile_screen_share.svg +1 -0
  796. data/assets/uswds/img/usa-icons-unused/mode_comment.svg +1 -0
  797. data/assets/uswds/img/usa-icons-unused/mode_edit.svg +1 -0
  798. data/assets/uswds/img/usa-icons-unused/model_training.svg +1 -0
  799. data/assets/uswds/img/usa-icons-unused/monetization_on.svg +1 -0
  800. data/assets/uswds/img/usa-icons-unused/money.svg +1 -0
  801. data/assets/uswds/img/usa-icons-unused/money_off.svg +1 -0
  802. data/assets/uswds/img/usa-icons-unused/monitor.svg +1 -0
  803. data/assets/uswds/img/usa-icons-unused/monochrome_photos.svg +1 -0
  804. data/assets/uswds/img/usa-icons-unused/mood.svg +1 -0
  805. data/assets/uswds/img/usa-icons-unused/mood_bad.svg +1 -0
  806. data/assets/uswds/img/usa-icons-unused/moped.svg +1 -0
  807. data/assets/uswds/img/usa-icons-unused/more.svg +1 -0
  808. data/assets/uswds/img/usa-icons-unused/more_time.svg +1 -0
  809. data/assets/uswds/img/usa-icons-unused/motion_photos_off.svg +1 -0
  810. data/assets/uswds/img/usa-icons-unused/motion_photos_on.svg +1 -0
  811. data/assets/uswds/img/usa-icons-unused/motion_photos_pause.svg +1 -0
  812. data/assets/uswds/img/usa-icons-unused/motion_photos_paused.svg +1 -0
  813. data/assets/uswds/img/usa-icons-unused/mouse.svg +1 -0
  814. data/assets/uswds/img/usa-icons-unused/move_to_inbox.svg +1 -0
  815. data/assets/uswds/img/usa-icons-unused/movie.svg +1 -0
  816. data/assets/uswds/img/usa-icons-unused/movie_creation.svg +1 -0
  817. data/assets/uswds/img/usa-icons-unused/movie_filter.svg +1 -0
  818. data/assets/uswds/img/usa-icons-unused/mp.svg +1 -0
  819. data/assets/uswds/img/usa-icons-unused/multiline_chart.svg +1 -0
  820. data/assets/uswds/img/usa-icons-unused/multiple_stop.svg +1 -0
  821. data/assets/uswds/img/usa-icons-unused/museum.svg +1 -0
  822. data/assets/uswds/img/usa-icons-unused/music_note.svg +1 -0
  823. data/assets/uswds/img/usa-icons-unused/music_off.svg +1 -0
  824. data/assets/uswds/img/usa-icons-unused/music_video.svg +1 -0
  825. data/assets/uswds/img/usa-icons-unused/nat.svg +1 -0
  826. data/assets/uswds/img/usa-icons-unused/nature.svg +1 -0
  827. data/assets/uswds/img/usa-icons-unused/nature_people.svg +1 -0
  828. data/assets/uswds/img/usa-icons-unused/navigation.svg +1 -0
  829. data/assets/uswds/img/usa-icons-unused/near_me_disabled.svg +1 -0
  830. data/assets/uswds/img/usa-icons-unused/network_cell.svg +1 -0
  831. data/assets/uswds/img/usa-icons-unused/network_check.svg +1 -0
  832. data/assets/uswds/img/usa-icons-unused/network_locked.svg +1 -0
  833. data/assets/uswds/img/usa-icons-unused/network_wifi.svg +1 -0
  834. data/assets/uswds/img/usa-icons-unused/new_releases.svg +1 -0
  835. data/assets/uswds/img/usa-icons-unused/next_plan.svg +1 -0
  836. data/assets/uswds/img/usa-icons-unused/next_week.svg +1 -0
  837. data/assets/uswds/img/usa-icons-unused/nfc.svg +1 -0
  838. data/assets/uswds/img/usa-icons-unused/night_shelter.svg +1 -0
  839. data/assets/uswds/img/usa-icons-unused/nightlife.svg +1 -0
  840. data/assets/uswds/img/usa-icons-unused/nightlight_round.svg +1 -0
  841. data/assets/uswds/img/usa-icons-unused/nights_stay.svg +1 -0
  842. data/assets/uswds/img/usa-icons-unused/no_backpack.svg +1 -0
  843. data/assets/uswds/img/usa-icons-unused/no_cell.svg +1 -0
  844. data/assets/uswds/img/usa-icons-unused/no_drinks.svg +1 -0
  845. data/assets/uswds/img/usa-icons-unused/no_encryption.svg +1 -0
  846. data/assets/uswds/img/usa-icons-unused/no_flash.svg +1 -0
  847. data/assets/uswds/img/usa-icons-unused/no_food.svg +1 -0
  848. data/assets/uswds/img/usa-icons-unused/no_luggage.svg +1 -0
  849. data/assets/uswds/img/usa-icons-unused/no_meals.svg +1 -0
  850. data/assets/uswds/img/usa-icons-unused/no_meals_ouline.svg +1 -0
  851. data/assets/uswds/img/usa-icons-unused/no_meeting_room.svg +1 -0
  852. data/assets/uswds/img/usa-icons-unused/no_photography.svg +1 -0
  853. data/assets/uswds/img/usa-icons-unused/no_sim.svg +1 -0
  854. data/assets/uswds/img/usa-icons-unused/no_stroller.svg +1 -0
  855. data/assets/uswds/img/usa-icons-unused/no_transfer.svg +1 -0
  856. data/assets/uswds/img/usa-icons-unused/north.svg +1 -0
  857. data/assets/uswds/img/usa-icons-unused/north_east.svg +1 -0
  858. data/assets/uswds/img/usa-icons-unused/north_west.svg +1 -0
  859. data/assets/uswds/img/usa-icons-unused/not_accessible.svg +1 -0
  860. data/assets/uswds/img/usa-icons-unused/not_interested.svg +1 -0
  861. data/assets/uswds/img/usa-icons-unused/not_listed_location.svg +1 -0
  862. data/assets/uswds/img/usa-icons-unused/not_started.svg +1 -0
  863. data/assets/uswds/img/usa-icons-unused/note.svg +1 -0
  864. data/assets/uswds/img/usa-icons-unused/note_add.svg +1 -0
  865. data/assets/uswds/img/usa-icons-unused/notes.svg +1 -0
  866. data/assets/uswds/img/usa-icons-unused/notification_important.svg +1 -0
  867. data/assets/uswds/img/usa-icons-unused/notifications_paused.svg +1 -0
  868. data/assets/uswds/img/usa-icons-unused/offline_bolt.svg +1 -0
  869. data/assets/uswds/img/usa-icons-unused/offline_pin.svg +1 -0
  870. data/assets/uswds/img/usa-icons-unused/offline_share.svg +1 -0
  871. data/assets/uswds/img/usa-icons-unused/ondemand_video.svg +1 -0
  872. data/assets/uswds/img/usa-icons-unused/online_prediction.svg +1 -0
  873. data/assets/uswds/img/usa-icons-unused/opacity.svg +1 -0
  874. data/assets/uswds/img/usa-icons-unused/open_in_browser.svg +1 -0
  875. data/assets/uswds/img/usa-icons-unused/open_in_full.svg +1 -0
  876. data/assets/uswds/img/usa-icons-unused/open_in_new.svg +1 -0
  877. data/assets/uswds/img/usa-icons-unused/open_with.svg +1 -0
  878. data/assets/uswds/img/usa-icons-unused/outbond.svg +1 -0
  879. data/assets/uswds/img/usa-icons-unused/outbox.svg +1 -0
  880. data/assets/uswds/img/usa-icons-unused/outdoor_grill.svg +1 -0
  881. data/assets/uswds/img/usa-icons-unused/outgoing_mail.svg +1 -0
  882. data/assets/uswds/img/usa-icons-unused/outlet.svg +1 -0
  883. data/assets/uswds/img/usa-icons-unused/outlined_flag.svg +1 -0
  884. data/assets/uswds/img/usa-icons-unused/padding.svg +1 -0
  885. data/assets/uswds/img/usa-icons-unused/pages.svg +1 -0
  886. data/assets/uswds/img/usa-icons-unused/pageview.svg +1 -0
  887. data/assets/uswds/img/usa-icons-unused/palette.svg +1 -0
  888. data/assets/uswds/img/usa-icons-unused/pan_tool.svg +1 -0
  889. data/assets/uswds/img/usa-icons-unused/panorama.svg +1 -0
  890. data/assets/uswds/img/usa-icons-unused/panorama_fish_eye.svg +1 -0
  891. data/assets/uswds/img/usa-icons-unused/panorama_horizontal.svg +1 -0
  892. data/assets/uswds/img/usa-icons-unused/panorama_horizontal_select.svg +1 -0
  893. data/assets/uswds/img/usa-icons-unused/panorama_photosphere.svg +1 -0
  894. data/assets/uswds/img/usa-icons-unused/panorama_photosphere_select.svg +1 -0
  895. data/assets/uswds/img/usa-icons-unused/panorama_vertical.svg +1 -0
  896. data/assets/uswds/img/usa-icons-unused/panorama_vertical_select.svg +1 -0
  897. data/assets/uswds/img/usa-icons-unused/panorama_wide_angle.svg +1 -0
  898. data/assets/uswds/img/usa-icons-unused/panorama_wide_angle_select.svg +1 -0
  899. data/assets/uswds/img/usa-icons-unused/party_mode.svg +1 -0
  900. data/assets/uswds/img/usa-icons-unused/pause.svg +1 -0
  901. data/assets/uswds/img/usa-icons-unused/pause_circle_filled.svg +1 -0
  902. data/assets/uswds/img/usa-icons-unused/pause_circle_outline.svg +1 -0
  903. data/assets/uswds/img/usa-icons-unused/pause_presentation.svg +1 -0
  904. data/assets/uswds/img/usa-icons-unused/payment.svg +1 -0
  905. data/assets/uswds/img/usa-icons-unused/payments.svg +1 -0
  906. data/assets/uswds/img/usa-icons-unused/pedal_bike.svg +1 -0
  907. data/assets/uswds/img/usa-icons-unused/pending.svg +1 -0
  908. data/assets/uswds/img/usa-icons-unused/pending_actions.svg +1 -0
  909. data/assets/uswds/img/usa-icons-unused/people_alt.svg +1 -0
  910. data/assets/uswds/img/usa-icons-unused/people_outline.svg +1 -0
  911. data/assets/uswds/img/usa-icons-unused/perm_camera_mic.svg +1 -0
  912. data/assets/uswds/img/usa-icons-unused/perm_contact_calendar.svg +1 -0
  913. data/assets/uswds/img/usa-icons-unused/perm_data_setting.svg +1 -0
  914. data/assets/uswds/img/usa-icons-unused/perm_device_information.svg +1 -0
  915. data/assets/uswds/img/usa-icons-unused/perm_identity.svg +1 -0
  916. data/assets/uswds/img/usa-icons-unused/perm_media.svg +1 -0
  917. data/assets/uswds/img/usa-icons-unused/perm_phone_msg.svg +1 -0
  918. data/assets/uswds/img/usa-icons-unused/perm_scan_wifi.svg +1 -0
  919. data/assets/uswds/img/usa-icons-unused/person_add.svg +1 -0
  920. data/assets/uswds/img/usa-icons-unused/person_add_alt.svg +1 -0
  921. data/assets/uswds/img/usa-icons-unused/person_add_alt_1.svg +1 -0
  922. data/assets/uswds/img/usa-icons-unused/person_add_disabled.svg +1 -0
  923. data/assets/uswds/img/usa-icons-unused/person_outline.svg +1 -0
  924. data/assets/uswds/img/usa-icons-unused/person_pin.svg +1 -0
  925. data/assets/uswds/img/usa-icons-unused/person_pin_circle.svg +1 -0
  926. data/assets/uswds/img/usa-icons-unused/person_remove.svg +1 -0
  927. data/assets/uswds/img/usa-icons-unused/person_remove_alt_1.svg +1 -0
  928. data/assets/uswds/img/usa-icons-unused/person_search.svg +1 -0
  929. data/assets/uswds/img/usa-icons-unused/personal_video.svg +1 -0
  930. data/assets/uswds/img/usa-icons-unused/pest_control.svg +1 -0
  931. data/assets/uswds/img/usa-icons-unused/pest_control_rodent.svg +1 -0
  932. data/assets/uswds/img/usa-icons-unused/phone_android.svg +1 -0
  933. data/assets/uswds/img/usa-icons-unused/phone_bluetooth_speaker.svg +1 -0
  934. data/assets/uswds/img/usa-icons-unused/phone_callback.svg +1 -0
  935. data/assets/uswds/img/usa-icons-unused/phone_disabled.svg +1 -0
  936. data/assets/uswds/img/usa-icons-unused/phone_enabled.svg +1 -0
  937. data/assets/uswds/img/usa-icons-unused/phone_forwarded.svg +1 -0
  938. data/assets/uswds/img/usa-icons-unused/phone_in_talk.svg +1 -0
  939. data/assets/uswds/img/usa-icons-unused/phone_iphone.svg +1 -0
  940. data/assets/uswds/img/usa-icons-unused/phone_locked.svg +1 -0
  941. data/assets/uswds/img/usa-icons-unused/phone_missed.svg +1 -0
  942. data/assets/uswds/img/usa-icons-unused/phone_paused.svg +1 -0
  943. data/assets/uswds/img/usa-icons-unused/phonelink.svg +1 -0
  944. data/assets/uswds/img/usa-icons-unused/phonelink_erase.svg +1 -0
  945. data/assets/uswds/img/usa-icons-unused/phonelink_lock.svg +1 -0
  946. data/assets/uswds/img/usa-icons-unused/phonelink_off.svg +1 -0
  947. data/assets/uswds/img/usa-icons-unused/phonelink_ring.svg +1 -0
  948. data/assets/uswds/img/usa-icons-unused/phonelink_setup.svg +1 -0
  949. data/assets/uswds/img/usa-icons-unused/photo.svg +1 -0
  950. data/assets/uswds/img/usa-icons-unused/photo_album.svg +1 -0
  951. data/assets/uswds/img/usa-icons-unused/photo_camera_back.svg +1 -0
  952. data/assets/uswds/img/usa-icons-unused/photo_camera_front.svg +1 -0
  953. data/assets/uswds/img/usa-icons-unused/photo_filter.svg +1 -0
  954. data/assets/uswds/img/usa-icons-unused/photo_library.svg +1 -0
  955. data/assets/uswds/img/usa-icons-unused/photo_size_select_actual.svg +1 -0
  956. data/assets/uswds/img/usa-icons-unused/photo_size_select_large.svg +1 -0
  957. data/assets/uswds/img/usa-icons-unused/photo_size_select_small.svg +1 -0
  958. data/assets/uswds/img/usa-icons-unused/picture_as_pdf.svg +1 -0
  959. data/assets/uswds/img/usa-icons-unused/picture_in_picture.svg +1 -0
  960. data/assets/uswds/img/usa-icons-unused/picture_in_picture_alt.svg +1 -0
  961. data/assets/uswds/img/usa-icons-unused/pie_chart.svg +1 -0
  962. data/assets/uswds/img/usa-icons-unused/pie_chart_outlined.svg +1 -0
  963. data/assets/uswds/img/usa-icons-unused/pin_drop.svg +1 -0
  964. data/assets/uswds/img/usa-icons-unused/pivot_table_chart.svg +1 -0
  965. data/assets/uswds/img/usa-icons-unused/place.svg +1 -0
  966. data/assets/uswds/img/usa-icons-unused/plagiarism.svg +1 -0
  967. data/assets/uswds/img/usa-icons-unused/play_arrow.svg +1 -0
  968. data/assets/uswds/img/usa-icons-unused/play_circle_filled.svg +1 -0
  969. data/assets/uswds/img/usa-icons-unused/play_circle_outline.svg +1 -0
  970. data/assets/uswds/img/usa-icons-unused/play_disabled.svg +1 -0
  971. data/assets/uswds/img/usa-icons-unused/play_for_work.svg +1 -0
  972. data/assets/uswds/img/usa-icons-unused/playlist_add.svg +1 -0
  973. data/assets/uswds/img/usa-icons-unused/playlist_add_check.svg +1 -0
  974. data/assets/uswds/img/usa-icons-unused/playlist_play.svg +1 -0
  975. data/assets/uswds/img/usa-icons-unused/plumbing.svg +1 -0
  976. data/assets/uswds/img/usa-icons-unused/plus_one.svg +1 -0
  977. data/assets/uswds/img/usa-icons-unused/point_of_sale.svg +1 -0
  978. data/assets/uswds/img/usa-icons-unused/policy.svg +1 -0
  979. data/assets/uswds/img/usa-icons-unused/poll.svg +1 -0
  980. data/assets/uswds/img/usa-icons-unused/polymer.svg +1 -0
  981. data/assets/uswds/img/usa-icons-unused/pool.svg +1 -0
  982. data/assets/uswds/img/usa-icons-unused/portable_wifi_off.svg +1 -0
  983. data/assets/uswds/img/usa-icons-unused/portrait.svg +1 -0
  984. data/assets/uswds/img/usa-icons-unused/post_add.svg +1 -0
  985. data/assets/uswds/img/usa-icons-unused/power.svg +1 -0
  986. data/assets/uswds/img/usa-icons-unused/power_input.svg +1 -0
  987. data/assets/uswds/img/usa-icons-unused/power_off.svg +1 -0
  988. data/assets/uswds/img/usa-icons-unused/power_settings_new.svg +1 -0
  989. data/assets/uswds/img/usa-icons-unused/pregnant_woman.svg +1 -0
  990. data/assets/uswds/img/usa-icons-unused/present_to_all.svg +1 -0
  991. data/assets/uswds/img/usa-icons-unused/preview.svg +1 -0
  992. data/assets/uswds/img/usa-icons-unused/print_disabled.svg +1 -0
  993. data/assets/uswds/img/usa-icons-unused/privacy_tip.svg +1 -0
  994. data/assets/uswds/img/usa-icons-unused/psychology.svg +1 -0
  995. data/assets/uswds/img/usa-icons-unused/public_off.svg +1 -0
  996. data/assets/uswds/img/usa-icons-unused/publish.svg +1 -0
  997. data/assets/uswds/img/usa-icons-unused/published_with_changes.svg +1 -0
  998. data/assets/uswds/img/usa-icons-unused/qr_code.svg +1 -0
  999. data/assets/uswds/img/usa-icons-unused/qr_code_2.svg +1 -0
  1000. data/assets/uswds/img/usa-icons-unused/qr_code_scanner.svg +1 -0
  1001. data/assets/uswds/img/usa-icons-unused/query_builder.svg +1 -0
  1002. data/assets/uswds/img/usa-icons-unused/question_answer.svg +1 -0
  1003. data/assets/uswds/img/usa-icons-unused/queue.svg +1 -0
  1004. data/assets/uswds/img/usa-icons-unused/queue_music.svg +1 -0
  1005. data/assets/uswds/img/usa-icons-unused/queue_play_next.svg +1 -0
  1006. data/assets/uswds/img/usa-icons-unused/quickreply.svg +1 -0
  1007. data/assets/uswds/img/usa-icons-unused/radio.svg +1 -0
  1008. data/assets/uswds/img/usa-icons-unused/radio_button_checked.svg +1 -0
  1009. data/assets/uswds/img/usa-icons-unused/railway_alert.svg +1 -0
  1010. data/assets/uswds/img/usa-icons-unused/ramen_dining.svg +1 -0
  1011. data/assets/uswds/img/usa-icons-unused/rate_review.svg +1 -0
  1012. data/assets/uswds/img/usa-icons-unused/read_more.svg +1 -0
  1013. data/assets/uswds/img/usa-icons-unused/receipt.svg +1 -0
  1014. data/assets/uswds/img/usa-icons-unused/receipt_long.svg +1 -0
  1015. data/assets/uswds/img/usa-icons-unused/recent_actors.svg +1 -0
  1016. data/assets/uswds/img/usa-icons-unused/recommend.svg +1 -0
  1017. data/assets/uswds/img/usa-icons-unused/record_voice_over.svg +1 -0
  1018. data/assets/uswds/img/usa-icons-unused/redeem.svg +1 -0
  1019. data/assets/uswds/img/usa-icons-unused/redo.svg +1 -0
  1020. data/assets/uswds/img/usa-icons-unused/refresh.svg +1 -0
  1021. data/assets/uswds/img/usa-icons-unused/remove_circle.svg +1 -0
  1022. data/assets/uswds/img/usa-icons-unused/remove_circle_outline.svg +1 -0
  1023. data/assets/uswds/img/usa-icons-unused/remove_done.svg +1 -0
  1024. data/assets/uswds/img/usa-icons-unused/remove_from_queue.svg +1 -0
  1025. data/assets/uswds/img/usa-icons-unused/remove_moderator.svg +1 -0
  1026. data/assets/uswds/img/usa-icons-unused/remove_shopping_cart.svg +1 -0
  1027. data/assets/uswds/img/usa-icons-unused/reorder.svg +1 -0
  1028. data/assets/uswds/img/usa-icons-unused/repeat.svg +1 -0
  1029. data/assets/uswds/img/usa-icons-unused/repeat_on.svg +1 -0
  1030. data/assets/uswds/img/usa-icons-unused/repeat_one.svg +1 -0
  1031. data/assets/uswds/img/usa-icons-unused/repeat_one_on.svg +1 -0
  1032. data/assets/uswds/img/usa-icons-unused/replay.svg +1 -0
  1033. data/assets/uswds/img/usa-icons-unused/replay_10.svg +1 -0
  1034. data/assets/uswds/img/usa-icons-unused/replay_30.svg +1 -0
  1035. data/assets/uswds/img/usa-icons-unused/replay_5.svg +1 -0
  1036. data/assets/uswds/img/usa-icons-unused/replay_circle_filled.svg +1 -0
  1037. data/assets/uswds/img/usa-icons-unused/reply.svg +1 -0
  1038. data/assets/uswds/img/usa-icons-unused/reply_all.svg +1 -0
  1039. data/assets/uswds/img/usa-icons-unused/report_off.svg +1 -0
  1040. data/assets/uswds/img/usa-icons-unused/report_problem.svg +1 -0
  1041. data/assets/uswds/img/usa-icons-unused/request_page.svg +1 -0
  1042. data/assets/uswds/img/usa-icons-unused/request_quote.svg +1 -0
  1043. data/assets/uswds/img/usa-icons-unused/reset_tv.svg +1 -0
  1044. data/assets/uswds/img/usa-icons-unused/restaurant_menu.svg +1 -0
  1045. data/assets/uswds/img/usa-icons-unused/restore.svg +1 -0
  1046. data/assets/uswds/img/usa-icons-unused/restore_from_trash.svg +1 -0
  1047. data/assets/uswds/img/usa-icons-unused/restore_page.svg +1 -0
  1048. data/assets/uswds/img/usa-icons-unused/rice_bowl.svg +1 -0
  1049. data/assets/uswds/img/usa-icons-unused/ring_volume.svg +1 -0
  1050. data/assets/uswds/img/usa-icons-unused/roofing.svg +1 -0
  1051. data/assets/uswds/img/usa-icons-unused/room.svg +1 -0
  1052. data/assets/uswds/img/usa-icons-unused/room_preferences.svg +1 -0
  1053. data/assets/uswds/img/usa-icons-unused/room_service.svg +1 -0
  1054. data/assets/uswds/img/usa-icons-unused/rotate_90_degrees_ccw.svg +1 -0
  1055. data/assets/uswds/img/usa-icons-unused/rotate_left.svg +1 -0
  1056. data/assets/uswds/img/usa-icons-unused/rotate_right.svg +1 -0
  1057. data/assets/uswds/img/usa-icons-unused/rounded_corner.svg +1 -0
  1058. data/assets/uswds/img/usa-icons-unused/router.svg +1 -0
  1059. data/assets/uswds/img/usa-icons-unused/rowing.svg +1 -0
  1060. data/assets/uswds/img/usa-icons-unused/rtt.svg +1 -0
  1061. data/assets/uswds/img/usa-icons-unused/rule.svg +1 -0
  1062. data/assets/uswds/img/usa-icons-unused/rule_folder.svg +1 -0
  1063. data/assets/uswds/img/usa-icons-unused/run_circle.svg +1 -0
  1064. data/assets/uswds/img/usa-icons-unused/rv_hookup.svg +1 -0
  1065. data/assets/uswds/img/usa-icons-unused/satellite.svg +1 -0
  1066. data/assets/uswds/img/usa-icons-unused/save.svg +1 -0
  1067. data/assets/uswds/img/usa-icons-unused/saved_search.svg +1 -0
  1068. data/assets/uswds/img/usa-icons-unused/scanner.svg +1 -0
  1069. data/assets/uswds/img/usa-icons-unused/scatter_plot.svg +1 -0
  1070. data/assets/uswds/img/usa-icons-unused/schedule_send.svg +1 -0
  1071. data/assets/uswds/img/usa-icons-unused/score.svg +1 -0
  1072. data/assets/uswds/img/usa-icons-unused/screen_lock_landscape.svg +1 -0
  1073. data/assets/uswds/img/usa-icons-unused/screen_lock_portrait.svg +1 -0
  1074. data/assets/uswds/img/usa-icons-unused/screen_lock_rotation.svg +1 -0
  1075. data/assets/uswds/img/usa-icons-unused/screen_rotation.svg +1 -0
  1076. data/assets/uswds/img/usa-icons-unused/screen_search_desktop.svg +1 -0
  1077. data/assets/uswds/img/usa-icons-unused/screen_share.svg +1 -0
  1078. data/assets/uswds/img/usa-icons-unused/sd.svg +1 -0
  1079. data/assets/uswds/img/usa-icons-unused/sd_card.svg +1 -0
  1080. data/assets/uswds/img/usa-icons-unused/sd_storage.svg +1 -0
  1081. data/assets/uswds/img/usa-icons-unused/search_off.svg +1 -0
  1082. data/assets/uswds/img/usa-icons-unused/segment.svg +1 -0
  1083. data/assets/uswds/img/usa-icons-unused/select_all.svg +1 -0
  1084. data/assets/uswds/img/usa-icons-unused/self_improvement.svg +1 -0
  1085. data/assets/uswds/img/usa-icons-unused/send_and_archive.svg +1 -0
  1086. data/assets/uswds/img/usa-icons-unused/send_to_mobile.svg +1 -0
  1087. data/assets/uswds/img/usa-icons-unused/sensor_door.svg +1 -0
  1088. data/assets/uswds/img/usa-icons-unused/sensor_window.svg +1 -0
  1089. data/assets/uswds/img/usa-icons-unused/sentiment_very_satisfied.svg +1 -0
  1090. data/assets/uswds/img/usa-icons-unused/set_meal.svg +1 -0
  1091. data/assets/uswds/img/usa-icons-unused/settings_applications.svg +1 -0
  1092. data/assets/uswds/img/usa-icons-unused/settings_backup_restore.svg +1 -0
  1093. data/assets/uswds/img/usa-icons-unused/settings_bluetooth.svg +1 -0
  1094. data/assets/uswds/img/usa-icons-unused/settings_brightness.svg +1 -0
  1095. data/assets/uswds/img/usa-icons-unused/settings_cell.svg +1 -0
  1096. data/assets/uswds/img/usa-icons-unused/settings_ethernet.svg +1 -0
  1097. data/assets/uswds/img/usa-icons-unused/settings_input_antenna.svg +1 -0
  1098. data/assets/uswds/img/usa-icons-unused/settings_input_component.svg +1 -0
  1099. data/assets/uswds/img/usa-icons-unused/settings_input_composite.svg +1 -0
  1100. data/assets/uswds/img/usa-icons-unused/settings_input_hdmi.svg +1 -0
  1101. data/assets/uswds/img/usa-icons-unused/settings_input_svideo.svg +1 -0
  1102. data/assets/uswds/img/usa-icons-unused/settings_overscan.svg +1 -0
  1103. data/assets/uswds/img/usa-icons-unused/settings_phone.svg +1 -0
  1104. data/assets/uswds/img/usa-icons-unused/settings_power.svg +1 -0
  1105. data/assets/uswds/img/usa-icons-unused/settings_remote.svg +1 -0
  1106. data/assets/uswds/img/usa-icons-unused/settings_system_daydream.svg +1 -0
  1107. data/assets/uswds/img/usa-icons-unused/settings_voice.svg +1 -0
  1108. data/assets/uswds/img/usa-icons-unused/shop.svg +1 -0
  1109. data/assets/uswds/img/usa-icons-unused/shop_two.svg +1 -0
  1110. data/assets/uswds/img/usa-icons-unused/shopping_bag.svg +1 -0
  1111. data/assets/uswds/img/usa-icons-unused/shopping_cart.svg +1 -0
  1112. data/assets/uswds/img/usa-icons-unused/short_text.svg +1 -0
  1113. data/assets/uswds/img/usa-icons-unused/show_chart.svg +1 -0
  1114. data/assets/uswds/img/usa-icons-unused/shuffle.svg +1 -0
  1115. data/assets/uswds/img/usa-icons-unused/shuffle_on.svg +1 -0
  1116. data/assets/uswds/img/usa-icons-unused/shutter_speed.svg +1 -0
  1117. data/assets/uswds/img/usa-icons-unused/sick.svg +1 -0
  1118. data/assets/uswds/img/usa-icons-unused/signal_cellular_0_bar.svg +1 -0
  1119. data/assets/uswds/img/usa-icons-unused/signal_cellular_4_bar.svg +1 -0
  1120. data/assets/uswds/img/usa-icons-unused/signal_cellular_alt.svg +1 -0
  1121. data/assets/uswds/img/usa-icons-unused/signal_cellular_connected_no_internet_4_bar.svg +1 -0
  1122. data/assets/uswds/img/usa-icons-unused/signal_cellular_no_sim.svg +1 -0
  1123. data/assets/uswds/img/usa-icons-unused/signal_cellular_null.svg +1 -0
  1124. data/assets/uswds/img/usa-icons-unused/signal_cellular_off.svg +1 -0
  1125. data/assets/uswds/img/usa-icons-unused/signal_wifi_0_bar.svg +1 -0
  1126. data/assets/uswds/img/usa-icons-unused/signal_wifi_4_bar.svg +1 -0
  1127. data/assets/uswds/img/usa-icons-unused/signal_wifi_4_bar_lock.svg +1 -0
  1128. data/assets/uswds/img/usa-icons-unused/signal_wifi_off.svg +1 -0
  1129. data/assets/uswds/img/usa-icons-unused/sim_card.svg +1 -0
  1130. data/assets/uswds/img/usa-icons-unused/sim_card_alert.svg +1 -0
  1131. data/assets/uswds/img/usa-icons-unused/single_bed.svg +1 -0
  1132. data/assets/uswds/img/usa-icons-unused/skip_next.svg +1 -0
  1133. data/assets/uswds/img/usa-icons-unused/skip_previous.svg +1 -0
  1134. data/assets/uswds/img/usa-icons-unused/slideshow.svg +1 -0
  1135. data/assets/uswds/img/usa-icons-unused/slow_motion_video.svg +1 -0
  1136. data/assets/uswds/img/usa-icons-unused/smart_button.svg +1 -0
  1137. data/assets/uswds/img/usa-icons-unused/smartphone.svg +1 -0
  1138. data/assets/uswds/img/usa-icons-unused/smoke_free.svg +1 -0
  1139. data/assets/uswds/img/usa-icons-unused/smoking_rooms.svg +1 -0
  1140. data/assets/uswds/img/usa-icons-unused/sms.svg +1 -0
  1141. data/assets/uswds/img/usa-icons-unused/sms_failed.svg +1 -0
  1142. data/assets/uswds/img/usa-icons-unused/snippet_folder.svg +1 -0
  1143. data/assets/uswds/img/usa-icons-unused/snooze.svg +1 -0
  1144. data/assets/uswds/img/usa-icons-unused/sort.svg +1 -0
  1145. data/assets/uswds/img/usa-icons-unused/sort_by_alpha.svg +1 -0
  1146. data/assets/uswds/img/usa-icons-unused/source.svg +1 -0
  1147. data/assets/uswds/img/usa-icons-unused/south.svg +1 -0
  1148. data/assets/uswds/img/usa-icons-unused/south_east.svg +1 -0
  1149. data/assets/uswds/img/usa-icons-unused/south_west.svg +1 -0
  1150. data/assets/uswds/img/usa-icons-unused/spa.svg +1 -0
  1151. data/assets/uswds/img/usa-icons-unused/space_bar.svg +1 -0
  1152. data/assets/uswds/img/usa-icons-unused/speaker.svg +1 -0
  1153. data/assets/uswds/img/usa-icons-unused/speaker_group.svg +1 -0
  1154. data/assets/uswds/img/usa-icons-unused/speaker_notes.svg +1 -0
  1155. data/assets/uswds/img/usa-icons-unused/speaker_notes_off.svg +1 -0
  1156. data/assets/uswds/img/usa-icons-unused/speaker_phone.svg +1 -0
  1157. data/assets/uswds/img/usa-icons-unused/speed.svg +1 -0
  1158. data/assets/uswds/img/usa-icons-unused/sports.svg +1 -0
  1159. data/assets/uswds/img/usa-icons-unused/sports_bar.svg +1 -0
  1160. data/assets/uswds/img/usa-icons-unused/sports_baseball.svg +1 -0
  1161. data/assets/uswds/img/usa-icons-unused/sports_basketball.svg +1 -0
  1162. data/assets/uswds/img/usa-icons-unused/sports_cricket.svg +1 -0
  1163. data/assets/uswds/img/usa-icons-unused/sports_esports.svg +1 -0
  1164. data/assets/uswds/img/usa-icons-unused/sports_football.svg +1 -0
  1165. data/assets/uswds/img/usa-icons-unused/sports_golf.svg +1 -0
  1166. data/assets/uswds/img/usa-icons-unused/sports_handball.svg +1 -0
  1167. data/assets/uswds/img/usa-icons-unused/sports_hockey.svg +1 -0
  1168. data/assets/uswds/img/usa-icons-unused/sports_kabaddi.svg +1 -0
  1169. data/assets/uswds/img/usa-icons-unused/sports_mma.svg +1 -0
  1170. data/assets/uswds/img/usa-icons-unused/sports_motorsports.svg +1 -0
  1171. data/assets/uswds/img/usa-icons-unused/sports_rugby.svg +1 -0
  1172. data/assets/uswds/img/usa-icons-unused/sports_soccer.svg +1 -0
  1173. data/assets/uswds/img/usa-icons-unused/sports_tennis.svg +1 -0
  1174. data/assets/uswds/img/usa-icons-unused/sports_volleyball.svg +1 -0
  1175. data/assets/uswds/img/usa-icons-unused/square_foot.svg +1 -0
  1176. data/assets/uswds/img/usa-icons-unused/stacked_bar_chart.svg +1 -0
  1177. data/assets/uswds/img/usa-icons-unused/stacked_line_chart.svg +1 -0
  1178. data/assets/uswds/img/usa-icons-unused/stairs.svg +1 -0
  1179. data/assets/uswds/img/usa-icons-unused/star_border.svg +1 -0
  1180. data/assets/uswds/img/usa-icons-unused/star_rate.svg +1 -0
  1181. data/assets/uswds/img/usa-icons-unused/stars.svg +1 -0
  1182. data/assets/uswds/img/usa-icons-unused/stay_current_landscape.svg +1 -0
  1183. data/assets/uswds/img/usa-icons-unused/stay_current_portrait.svg +1 -0
  1184. data/assets/uswds/img/usa-icons-unused/stay_primary_landscape.svg +1 -0
  1185. data/assets/uswds/img/usa-icons-unused/stay_primary_portrait.svg +1 -0
  1186. data/assets/uswds/img/usa-icons-unused/sticky_note_2.svg +1 -0
  1187. data/assets/uswds/img/usa-icons-unused/stop.svg +1 -0
  1188. data/assets/uswds/img/usa-icons-unused/stop_circle.svg +1 -0
  1189. data/assets/uswds/img/usa-icons-unused/stop_screen_share.svg +1 -0
  1190. data/assets/uswds/img/usa-icons-unused/storage.svg +1 -0
  1191. data/assets/uswds/img/usa-icons-unused/store_mall_directory.svg +1 -0
  1192. data/assets/uswds/img/usa-icons-unused/storefront.svg +1 -0
  1193. data/assets/uswds/img/usa-icons-unused/straighten.svg +1 -0
  1194. data/assets/uswds/img/usa-icons-unused/stream.svg +1 -0
  1195. data/assets/uswds/img/usa-icons-unused/streetview.svg +1 -0
  1196. data/assets/uswds/img/usa-icons-unused/strikethrough_s.svg +1 -0
  1197. data/assets/uswds/img/usa-icons-unused/stroller.svg +1 -0
  1198. data/assets/uswds/img/usa-icons-unused/style.svg +1 -0
  1199. data/assets/uswds/img/usa-icons-unused/subdirectory_arrow_left.svg +1 -0
  1200. data/assets/uswds/img/usa-icons-unused/subdirectory_arrow_right.svg +1 -0
  1201. data/assets/uswds/img/usa-icons-unused/subject.svg +1 -0
  1202. data/assets/uswds/img/usa-icons-unused/subscript.svg +1 -0
  1203. data/assets/uswds/img/usa-icons-unused/subscriptions.svg +1 -0
  1204. data/assets/uswds/img/usa-icons-unused/subtitles.svg +1 -0
  1205. data/assets/uswds/img/usa-icons-unused/subtitles_off.svg +1 -0
  1206. data/assets/uswds/img/usa-icons-unused/subway.svg +1 -0
  1207. data/assets/uswds/img/usa-icons-unused/superscript.svg +1 -0
  1208. data/assets/uswds/img/usa-icons-unused/supervised_user_circle.svg +1 -0
  1209. data/assets/uswds/img/usa-icons-unused/supervisor_account.svg +1 -0
  1210. data/assets/uswds/img/usa-icons-unused/surround_sound.svg +1 -0
  1211. data/assets/uswds/img/usa-icons-unused/swap_calls.svg +1 -0
  1212. data/assets/uswds/img/usa-icons-unused/swap_horiz.svg +1 -0
  1213. data/assets/uswds/img/usa-icons-unused/swap_horizontal_circle.svg +1 -0
  1214. data/assets/uswds/img/usa-icons-unused/swap_vert.svg +1 -0
  1215. data/assets/uswds/img/usa-icons-unused/swap_vertical_circle.svg +1 -0
  1216. data/assets/uswds/img/usa-icons-unused/swipe.svg +1 -0
  1217. data/assets/uswds/img/usa-icons-unused/switch_account.svg +1 -0
  1218. data/assets/uswds/img/usa-icons-unused/switch_camera.svg +1 -0
  1219. data/assets/uswds/img/usa-icons-unused/switch_left.svg +1 -0
  1220. data/assets/uswds/img/usa-icons-unused/switch_right.svg +1 -0
  1221. data/assets/uswds/img/usa-icons-unused/switch_video.svg +1 -0
  1222. data/assets/uswds/img/usa-icons-unused/sync.svg +1 -0
  1223. data/assets/uswds/img/usa-icons-unused/sync_alt.svg +1 -0
  1224. data/assets/uswds/img/usa-icons-unused/sync_disabled.svg +1 -0
  1225. data/assets/uswds/img/usa-icons-unused/sync_problem.svg +1 -0
  1226. data/assets/uswds/img/usa-icons-unused/system_update.svg +1 -0
  1227. data/assets/uswds/img/usa-icons-unused/system_update_alt.svg +1 -0
  1228. data/assets/uswds/img/usa-icons-unused/tab.svg +1 -0
  1229. data/assets/uswds/img/usa-icons-unused/tab_unselected.svg +1 -0
  1230. data/assets/uswds/img/usa-icons-unused/table_chart.svg +1 -0
  1231. data/assets/uswds/img/usa-icons-unused/table_rows.svg +1 -0
  1232. data/assets/uswds/img/usa-icons-unused/table_view.svg +1 -0
  1233. data/assets/uswds/img/usa-icons-unused/tablet.svg +1 -0
  1234. data/assets/uswds/img/usa-icons-unused/tablet_android.svg +1 -0
  1235. data/assets/uswds/img/usa-icons-unused/tablet_mac.svg +1 -0
  1236. data/assets/uswds/img/usa-icons-unused/tag.svg +1 -0
  1237. data/assets/uswds/img/usa-icons-unused/tag_faces.svg +1 -0
  1238. data/assets/uswds/img/usa-icons-unused/takeout_dining.svg +1 -0
  1239. data/assets/uswds/img/usa-icons-unused/tap_and_play.svg +1 -0
  1240. data/assets/uswds/img/usa-icons-unused/tapas.svg +1 -0
  1241. data/assets/uswds/img/usa-icons-unused/taxi_alert.svg +1 -0
  1242. data/assets/uswds/img/usa-icons-unused/terrain.svg +1 -0
  1243. data/assets/uswds/img/usa-icons-unused/text_format.svg +1 -0
  1244. data/assets/uswds/img/usa-icons-unused/text_rotate_up.svg +1 -0
  1245. data/assets/uswds/img/usa-icons-unused/text_rotate_vertical.svg +1 -0
  1246. data/assets/uswds/img/usa-icons-unused/text_rotation_angledown.svg +1 -0
  1247. data/assets/uswds/img/usa-icons-unused/text_rotation_angleup.svg +1 -0
  1248. data/assets/uswds/img/usa-icons-unused/text_rotation_down.svg +1 -0
  1249. data/assets/uswds/img/usa-icons-unused/text_rotation_none.svg +1 -0
  1250. data/assets/uswds/img/usa-icons-unused/text_snippet.svg +1 -0
  1251. data/assets/uswds/img/usa-icons-unused/textsms.svg +1 -0
  1252. data/assets/uswds/img/usa-icons-unused/texture.svg +1 -0
  1253. data/assets/uswds/img/usa-icons-unused/theater_comedy.svg +1 -0
  1254. data/assets/uswds/img/usa-icons-unused/theaters.svg +1 -0
  1255. data/assets/uswds/img/usa-icons-unused/thumb_down.svg +1 -0
  1256. data/assets/uswds/img/usa-icons-unused/thumb_down_alt.svg +1 -0
  1257. data/assets/uswds/img/usa-icons-unused/thumb_up.svg +1 -0
  1258. data/assets/uswds/img/usa-icons-unused/thumb_up_off_alt.svg +1 -0
  1259. data/assets/uswds/img/usa-icons-unused/thumbs_up_down.svg +1 -0
  1260. data/assets/uswds/img/usa-icons-unused/time_to_leave.svg +1 -0
  1261. data/assets/uswds/img/usa-icons-unused/timelapse.svg +1 -0
  1262. data/assets/uswds/img/usa-icons-unused/timeline.svg +1 -0
  1263. data/assets/uswds/img/usa-icons-unused/timer_10.svg +1 -0
  1264. data/assets/uswds/img/usa-icons-unused/timer_3.svg +1 -0
  1265. data/assets/uswds/img/usa-icons-unused/timer_off.svg +1 -0
  1266. data/assets/uswds/img/usa-icons-unused/title.svg +1 -0
  1267. data/assets/uswds/img/usa-icons-unused/toc.svg +1 -0
  1268. data/assets/uswds/img/usa-icons-unused/today.svg +1 -0
  1269. data/assets/uswds/img/usa-icons-unused/toll.svg +1 -0
  1270. data/assets/uswds/img/usa-icons-unused/tonality.svg +1 -0
  1271. data/assets/uswds/img/usa-icons-unused/touch_app.svg +1 -0
  1272. data/assets/uswds/img/usa-icons-unused/tour.svg +1 -0
  1273. data/assets/uswds/img/usa-icons-unused/toys.svg +1 -0
  1274. data/assets/uswds/img/usa-icons-unused/track_changes.svg +1 -0
  1275. data/assets/uswds/img/usa-icons-unused/traffic.svg +1 -0
  1276. data/assets/uswds/img/usa-icons-unused/train.svg +1 -0
  1277. data/assets/uswds/img/usa-icons-unused/tram.svg +1 -0
  1278. data/assets/uswds/img/usa-icons-unused/transfer_within_a_station.svg +1 -0
  1279. data/assets/uswds/img/usa-icons-unused/transform.svg +1 -0
  1280. data/assets/uswds/img/usa-icons-unused/transit_enterexit.svg +1 -0
  1281. data/assets/uswds/img/usa-icons-unused/trending_flat.svg +1 -0
  1282. data/assets/uswds/img/usa-icons-unused/trip_origin.svg +1 -0
  1283. data/assets/uswds/img/usa-icons-unused/tty.svg +1 -0
  1284. data/assets/uswds/img/usa-icons-unused/tune.svg +1 -0
  1285. data/assets/uswds/img/usa-icons-unused/turned_in.svg +1 -0
  1286. data/assets/uswds/img/usa-icons-unused/turned_in_not.svg +1 -0
  1287. data/assets/uswds/img/usa-icons-unused/tv.svg +1 -0
  1288. data/assets/uswds/img/usa-icons-unused/tv_off.svg +1 -0
  1289. data/assets/uswds/img/usa-icons-unused/two_wheeler.svg +1 -0
  1290. data/assets/uswds/img/usa-icons-unused/umbrella.svg +1 -0
  1291. data/assets/uswds/img/usa-icons-unused/unarchive.svg +1 -0
  1292. data/assets/uswds/img/usa-icons-unused/unpublished.svg +1 -0
  1293. data/assets/uswds/img/usa-icons-unused/unsubscribe.svg +1 -0
  1294. data/assets/uswds/img/usa-icons-unused/update_disabled.svg +1 -0
  1295. data/assets/uswds/img/usa-icons-unused/upgrade.svg +1 -0
  1296. data/assets/uswds/img/usa-icons-unused/usb.svg +1 -0
  1297. data/assets/uswds/img/usa-icons-unused/vertical_align_bottom.svg +1 -0
  1298. data/assets/uswds/img/usa-icons-unused/vertical_align_center.svg +1 -0
  1299. data/assets/uswds/img/usa-icons-unused/vertical_align_top.svg +1 -0
  1300. data/assets/uswds/img/usa-icons-unused/vertical_distribute.svg +1 -0
  1301. data/assets/uswds/img/usa-icons-unused/vertical_split.svg +1 -0
  1302. data/assets/uswds/img/usa-icons-unused/vibration.svg +1 -0
  1303. data/assets/uswds/img/usa-icons-unused/video_call.svg +1 -0
  1304. data/assets/uswds/img/usa-icons-unused/video_label.svg +1 -0
  1305. data/assets/uswds/img/usa-icons-unused/video_library.svg +1 -0
  1306. data/assets/uswds/img/usa-icons-unused/video_settings.svg +1 -0
  1307. data/assets/uswds/img/usa-icons-unused/videocam.svg +1 -0
  1308. data/assets/uswds/img/usa-icons-unused/videocam_off.svg +1 -0
  1309. data/assets/uswds/img/usa-icons-unused/videogame_asset.svg +1 -0
  1310. data/assets/uswds/img/usa-icons-unused/view_agenda.svg +1 -0
  1311. data/assets/uswds/img/usa-icons-unused/view_array.svg +1 -0
  1312. data/assets/uswds/img/usa-icons-unused/view_carousel.svg +1 -0
  1313. data/assets/uswds/img/usa-icons-unused/view_column.svg +1 -0
  1314. data/assets/uswds/img/usa-icons-unused/view_comfy.svg +1 -0
  1315. data/assets/uswds/img/usa-icons-unused/view_compact.svg +1 -0
  1316. data/assets/uswds/img/usa-icons-unused/view_day.svg +1 -0
  1317. data/assets/uswds/img/usa-icons-unused/view_headline.svg +1 -0
  1318. data/assets/uswds/img/usa-icons-unused/view_in_ar.svg +1 -0
  1319. data/assets/uswds/img/usa-icons-unused/view_list.svg +1 -0
  1320. data/assets/uswds/img/usa-icons-unused/view_module.svg +1 -0
  1321. data/assets/uswds/img/usa-icons-unused/view_quilt.svg +1 -0
  1322. data/assets/uswds/img/usa-icons-unused/view_sidebar.svg +1 -0
  1323. data/assets/uswds/img/usa-icons-unused/view_stream.svg +1 -0
  1324. data/assets/uswds/img/usa-icons-unused/view_week.svg +1 -0
  1325. data/assets/uswds/img/usa-icons-unused/vignette.svg +1 -0
  1326. data/assets/uswds/img/usa-icons-unused/voice_chat.svg +1 -0
  1327. data/assets/uswds/img/usa-icons-unused/voice_over_off.svg +1 -0
  1328. data/assets/uswds/img/usa-icons-unused/voicemail.svg +1 -0
  1329. data/assets/uswds/img/usa-icons-unused/volume_down.svg +1 -0
  1330. data/assets/uswds/img/usa-icons-unused/volume_mute.svg +1 -0
  1331. data/assets/uswds/img/usa-icons-unused/volume_up.svg +1 -0
  1332. data/assets/uswds/img/usa-icons-unused/volunteer_activism.svg +1 -0
  1333. data/assets/uswds/img/usa-icons-unused/vpn_key.svg +1 -0
  1334. data/assets/uswds/img/usa-icons-unused/vpn_lock.svg +1 -0
  1335. data/assets/uswds/img/usa-icons-unused/wallpaper.svg +1 -0
  1336. data/assets/uswds/img/usa-icons-unused/watch.svg +1 -0
  1337. data/assets/uswds/img/usa-icons-unused/watch_later.svg +1 -0
  1338. data/assets/uswds/img/usa-icons-unused/water_damage.svg +1 -0
  1339. data/assets/uswds/img/usa-icons-unused/waterfall_chart.svg +1 -0
  1340. data/assets/uswds/img/usa-icons-unused/waves.svg +1 -0
  1341. data/assets/uswds/img/usa-icons-unused/wb_auto.svg +1 -0
  1342. data/assets/uswds/img/usa-icons-unused/wb_cloudy.svg +1 -0
  1343. data/assets/uswds/img/usa-icons-unused/wb_incandescent.svg +1 -0
  1344. data/assets/uswds/img/usa-icons-unused/wb_iridescent.svg +1 -0
  1345. data/assets/uswds/img/usa-icons-unused/wb_shade.svg +1 -0
  1346. data/assets/uswds/img/usa-icons-unused/wb_sunny.svg +1 -0
  1347. data/assets/uswds/img/usa-icons-unused/wb_twighlight.svg +1 -0
  1348. data/assets/uswds/img/usa-icons-unused/wc.svg +1 -0
  1349. data/assets/uswds/img/usa-icons-unused/web.svg +1 -0
  1350. data/assets/uswds/img/usa-icons-unused/web_asset.svg +1 -0
  1351. data/assets/uswds/img/usa-icons-unused/weekend.svg +1 -0
  1352. data/assets/uswds/img/usa-icons-unused/west.svg +1 -0
  1353. data/assets/uswds/img/usa-icons-unused/whatshot.svg +1 -0
  1354. data/assets/uswds/img/usa-icons-unused/wheelchair_pickup.svg +1 -0
  1355. data/assets/uswds/img/usa-icons-unused/where_to_vote.svg +1 -0
  1356. data/assets/uswds/img/usa-icons-unused/widgets.svg +1 -0
  1357. data/assets/uswds/img/usa-icons-unused/wifi_calling.svg +1 -0
  1358. data/assets/uswds/img/usa-icons-unused/wifi_lock.svg +1 -0
  1359. data/assets/uswds/img/usa-icons-unused/wifi_off.svg +1 -0
  1360. data/assets/uswds/img/usa-icons-unused/wifi_protected_setup.svg +1 -0
  1361. data/assets/uswds/img/usa-icons-unused/wifi_tethering.svg +1 -0
  1362. data/assets/uswds/img/usa-icons-unused/wine_bar.svg +1 -0
  1363. data/assets/uswds/img/usa-icons-unused/work_off.svg +1 -0
  1364. data/assets/uswds/img/usa-icons-unused/work_outline.svg +1 -0
  1365. data/assets/uswds/img/usa-icons-unused/workspaces_filled.svg +1 -0
  1366. data/assets/uswds/img/usa-icons-unused/workspaces_outline.svg +1 -0
  1367. data/assets/uswds/img/usa-icons-unused/wrap_text.svg +1 -0
  1368. data/assets/uswds/img/usa-icons-unused/wrong_location.svg +1 -0
  1369. data/assets/uswds/img/usa-icons-unused/wysiwyg.svg +1 -0
  1370. data/assets/uswds/img/usa-icons-unused/youtube_searched_for.svg +1 -0
  1371. data/assets/uswds/img/usa-icons/accessibility_new.svg +1 -0
  1372. data/assets/uswds/img/usa-icons/accessible_forward.svg +1 -0
  1373. data/assets/uswds/img/usa-icons/account_balance.svg +1 -0
  1374. data/assets/uswds/img/usa-icons/account_box.svg +1 -0
  1375. data/assets/uswds/img/usa-icons/account_circle.svg +1 -0
  1376. data/assets/uswds/img/usa-icons/add.svg +1 -0
  1377. data/assets/uswds/img/usa-icons/add_circle.svg +1 -0
  1378. data/assets/uswds/img/usa-icons/add_circle_outline.svg +1 -0
  1379. data/assets/uswds/img/usa-icons/alarm.svg +1 -0
  1380. data/assets/uswds/img/usa-icons/alternate_email.svg +1 -0
  1381. data/assets/uswds/img/usa-icons/announcement.svg +1 -0
  1382. data/assets/uswds/img/usa-icons/api.svg +1 -0
  1383. data/assets/uswds/img/usa-icons/arrow_back.svg +1 -0
  1384. data/assets/uswds/img/usa-icons/arrow_downward.svg +1 -0
  1385. data/assets/uswds/img/usa-icons/arrow_drop_down.svg +1 -0
  1386. data/assets/uswds/img/usa-icons/arrow_drop_up.svg +1 -0
  1387. data/assets/uswds/img/usa-icons/arrow_forward.svg +1 -0
  1388. data/assets/uswds/img/usa-icons/arrow_upward.svg +1 -0
  1389. data/assets/uswds/img/usa-icons/assessment.svg +1 -0
  1390. data/assets/uswds/img/usa-icons/attach_file.svg +1 -0
  1391. data/assets/uswds/img/usa-icons/attach_money.svg +1 -0
  1392. data/assets/uswds/img/usa-icons/autorenew.svg +1 -0
  1393. data/assets/uswds/img/usa-icons/backpack.svg +1 -0
  1394. data/assets/uswds/img/usa-icons/bathtub.svg +1 -0
  1395. data/assets/uswds/img/usa-icons/bedding.svg +1 -0
  1396. data/assets/uswds/img/usa-icons/bookmark.svg +1 -0
  1397. data/assets/uswds/img/usa-icons/bug_report.svg +1 -0
  1398. data/assets/uswds/img/usa-icons/build.svg +1 -0
  1399. data/assets/uswds/img/usa-icons/calendar_today.svg +1 -0
  1400. data/assets/uswds/img/usa-icons/campaign.svg +1 -0
  1401. data/assets/uswds/img/usa-icons/camping.svg +1 -0
  1402. data/assets/uswds/img/usa-icons/cancel.svg +1 -0
  1403. data/assets/uswds/img/usa-icons/chat.svg +1 -0
  1404. data/assets/uswds/img/usa-icons/check.svg +1 -0
  1405. data/assets/uswds/img/usa-icons/check_box_outline_blank.svg +1 -0
  1406. data/assets/uswds/img/usa-icons/check_circle.svg +1 -0
  1407. data/assets/uswds/img/usa-icons/check_circle_outline.svg +1 -0
  1408. data/assets/uswds/img/usa-icons/checkroom.svg +1 -0
  1409. data/assets/uswds/img/usa-icons/chevron_left.svg +1 -0
  1410. data/assets/uswds/img/usa-icons/chevron_right.svg +1 -0
  1411. data/assets/uswds/img/usa-icons/clean_hands.svg +1 -0
  1412. data/assets/uswds/img/usa-icons/close.svg +1 -0
  1413. data/assets/uswds/img/usa-icons/closed_caption.svg +1 -0
  1414. data/assets/uswds/img/usa-icons/clothes.svg +1 -0
  1415. data/assets/uswds/img/usa-icons/cloud.svg +1 -0
  1416. data/assets/uswds/img/usa-icons/code.svg +1 -0
  1417. data/assets/uswds/img/usa-icons/comment.svg +1 -0
  1418. data/assets/uswds/img/usa-icons/connect_without_contact.svg +1 -0
  1419. data/assets/uswds/img/usa-icons/construction.svg +1 -0
  1420. data/assets/uswds/img/usa-icons/construction_worker.svg +1 -0
  1421. data/assets/uswds/img/usa-icons/contact_page.svg +1 -0
  1422. data/assets/uswds/img/usa-icons/content_copy.svg +1 -0
  1423. data/assets/uswds/img/usa-icons/coronavirus.svg +1 -0
  1424. data/assets/uswds/img/usa-icons/credit_card.svg +1 -0
  1425. data/assets/uswds/img/usa-icons/deck.svg +1 -0
  1426. data/assets/uswds/img/usa-icons/delete.svg +1 -0
  1427. data/assets/uswds/img/usa-icons/device_thermostat.svg +1 -0
  1428. data/assets/uswds/img/usa-icons/directions.svg +1 -0
  1429. data/assets/uswds/img/usa-icons/directions_bike.svg +1 -0
  1430. data/assets/uswds/img/usa-icons/directions_bus.svg +1 -0
  1431. data/assets/uswds/img/usa-icons/directions_car.svg +1 -0
  1432. data/assets/uswds/img/usa-icons/directions_walk.svg +1 -0
  1433. data/assets/uswds/img/usa-icons/do_not_disturb.svg +1 -0
  1434. data/assets/uswds/img/usa-icons/do_not_touch.svg +1 -0
  1435. data/assets/uswds/img/usa-icons/drag_handle.svg +1 -0
  1436. data/assets/uswds/img/usa-icons/eco.svg +1 -0
  1437. data/assets/uswds/img/usa-icons/edit.svg +1 -0
  1438. data/assets/uswds/img/usa-icons/electrical_services.svg +1 -0
  1439. data/assets/uswds/img/usa-icons/emoji_events.svg +1 -0
  1440. data/assets/uswds/img/usa-icons/error.svg +1 -0
  1441. data/assets/uswds/img/usa-icons/error_outline.svg +1 -0
  1442. data/assets/uswds/img/usa-icons/event.svg +1 -0
  1443. data/assets/uswds/img/usa-icons/expand_less.svg +1 -0
  1444. data/assets/uswds/img/usa-icons/expand_more.svg +1 -0
  1445. data/assets/uswds/img/usa-icons/facebook.svg +1 -0
  1446. data/assets/uswds/img/usa-icons/fast_forward.svg +1 -0
  1447. data/assets/uswds/img/usa-icons/fast_rewind.svg +1 -0
  1448. data/assets/uswds/img/usa-icons/favorite.svg +1 -0
  1449. data/assets/uswds/img/usa-icons/favorite_border.svg +1 -0
  1450. data/assets/uswds/img/usa-icons/file_download.svg +1 -0
  1451. data/assets/uswds/img/usa-icons/file_present.svg +1 -0
  1452. data/assets/uswds/img/usa-icons/file_upload.svg +1 -0
  1453. data/assets/uswds/img/usa-icons/filter_alt.svg +1 -0
  1454. data/assets/uswds/img/usa-icons/filter_list.svg +1 -0
  1455. data/assets/uswds/img/usa-icons/fingerprint.svg +1 -0
  1456. data/assets/uswds/img/usa-icons/first_page.svg +1 -0
  1457. data/assets/uswds/img/usa-icons/flag.svg +1 -0
  1458. data/assets/uswds/img/usa-icons/flickr.svg +1 -0
  1459. data/assets/uswds/img/usa-icons/flight.svg +1 -0
  1460. data/assets/uswds/img/usa-icons/flooding.svg +1 -0
  1461. data/assets/uswds/img/usa-icons/folder.svg +1 -0
  1462. data/assets/uswds/img/usa-icons/folder_open.svg +1 -0
  1463. data/assets/uswds/img/usa-icons/format_quote.svg +1 -0
  1464. data/assets/uswds/img/usa-icons/format_size.svg +1 -0
  1465. data/assets/uswds/img/usa-icons/forum.svg +1 -0
  1466. data/assets/uswds/img/usa-icons/github.svg +1 -0
  1467. data/assets/uswds/img/usa-icons/grid_view.svg +1 -0
  1468. data/assets/uswds/img/usa-icons/group_add.svg +1 -0
  1469. data/assets/uswds/img/usa-icons/groups.svg +1 -0
  1470. data/assets/uswds/img/usa-icons/hearing.svg +1 -0
  1471. data/assets/uswds/img/usa-icons/help.svg +1 -0
  1472. data/assets/uswds/img/usa-icons/help_outline.svg +1 -0
  1473. data/assets/uswds/img/usa-icons/highlight_off.svg +1 -0
  1474. data/assets/uswds/img/usa-icons/history.svg +1 -0
  1475. data/assets/uswds/img/usa-icons/home.svg +1 -0
  1476. data/assets/uswds/img/usa-icons/hospital.svg +1 -0
  1477. data/assets/uswds/img/usa-icons/hotel.svg +1 -0
  1478. data/assets/uswds/img/usa-icons/hourglass_empty.svg +1 -0
  1479. data/assets/uswds/img/usa-icons/hurricane.svg +1 -0
  1480. data/assets/uswds/img/usa-icons/identification.svg +1 -0
  1481. data/assets/uswds/img/usa-icons/image.svg +1 -0
  1482. data/assets/uswds/img/usa-icons/info.svg +1 -0
  1483. data/assets/uswds/img/usa-icons/info_outline.svg +1 -0
  1484. data/assets/uswds/img/usa-icons/insights.svg +1 -0
  1485. data/assets/uswds/img/usa-icons/instagram.svg +1 -0
  1486. data/assets/uswds/img/usa-icons/keyboard.svg +1 -0
  1487. data/assets/uswds/img/usa-icons/label.svg +1 -0
  1488. data/assets/uswds/img/usa-icons/language.svg +1 -0
  1489. data/assets/uswds/img/usa-icons/last_page.svg +1 -0
  1490. data/assets/uswds/img/usa-icons/launch.svg +1 -0
  1491. data/assets/uswds/img/usa-icons/lightbulb.svg +1 -0
  1492. data/assets/uswds/img/usa-icons/lightbulb_outline.svg +1 -0
  1493. data/assets/uswds/img/usa-icons/link.svg +1 -0
  1494. data/assets/uswds/img/usa-icons/link_off.svg +1 -0
  1495. data/assets/uswds/img/usa-icons/list.svg +1 -0
  1496. data/assets/uswds/img/usa-icons/local_cafe.svg +1 -0
  1497. data/assets/uswds/img/usa-icons/local_fire_department.svg +1 -0
  1498. data/assets/uswds/img/usa-icons/local_gas_station.svg +1 -0
  1499. data/assets/uswds/img/usa-icons/local_grocery_store.svg +1 -0
  1500. data/assets/uswds/img/usa-icons/local_hospital.svg +1 -0
  1501. data/assets/uswds/img/usa-icons/local_laundry_service.svg +1 -0
  1502. data/assets/uswds/img/usa-icons/local_library.svg +1 -0
  1503. data/assets/uswds/img/usa-icons/local_offer.svg +1 -0
  1504. data/assets/uswds/img/usa-icons/local_parking.svg +1 -0
  1505. data/assets/uswds/img/usa-icons/local_pharmacy.svg +1 -0
  1506. data/assets/uswds/img/usa-icons/local_police.svg +1 -0
  1507. data/assets/uswds/img/usa-icons/local_taxi.svg +1 -0
  1508. data/assets/uswds/img/usa-icons/location_city.svg +1 -0
  1509. data/assets/uswds/img/usa-icons/location_on.svg +1 -0
  1510. data/assets/uswds/img/usa-icons/lock.svg +1 -0
  1511. data/assets/uswds/img/usa-icons/lock_open.svg +1 -0
  1512. data/assets/uswds/img/usa-icons/lock_outline.svg +1 -0
  1513. data/assets/uswds/img/usa-icons/login.svg +1 -0
  1514. data/assets/uswds/img/usa-icons/logout.svg +1 -0
  1515. data/assets/uswds/img/usa-icons/loop.svg +1 -0
  1516. data/assets/uswds/img/usa-icons/mail.svg +1 -0
  1517. data/assets/uswds/img/usa-icons/mail_outline.svg +1 -0
  1518. data/assets/uswds/img/usa-icons/map.svg +1 -0
  1519. data/assets/uswds/img/usa-icons/masks.svg +1 -0
  1520. data/assets/uswds/img/usa-icons/medical_services.svg +1 -0
  1521. data/assets/uswds/img/usa-icons/menu.svg +1 -0
  1522. data/assets/uswds/img/usa-icons/military_tech.svg +1 -0
  1523. data/assets/uswds/img/usa-icons/more_horiz.svg +1 -0
  1524. data/assets/uswds/img/usa-icons/more_vert.svg +1 -0
  1525. data/assets/uswds/img/usa-icons/my_location.svg +1 -0
  1526. data/assets/uswds/img/usa-icons/navigate_before.svg +1 -0
  1527. data/assets/uswds/img/usa-icons/navigate_far_before.svg +1 -0
  1528. data/assets/uswds/img/usa-icons/navigate_far_next.svg +1 -0
  1529. data/assets/uswds/img/usa-icons/navigate_next.svg +1 -0
  1530. data/assets/uswds/img/usa-icons/near_me.svg +1 -0
  1531. data/assets/uswds/img/usa-icons/notifications.svg +1 -0
  1532. data/assets/uswds/img/usa-icons/notifications_active.svg +1 -0
  1533. data/assets/uswds/img/usa-icons/notifications_none.svg +1 -0
  1534. data/assets/uswds/img/usa-icons/notifications_off.svg +1 -0
  1535. data/assets/uswds/img/usa-icons/park.svg +1 -0
  1536. data/assets/uswds/img/usa-icons/people.svg +1 -0
  1537. data/assets/uswds/img/usa-icons/person.svg +1 -0
  1538. data/assets/uswds/img/usa-icons/pets.svg +1 -0
  1539. data/assets/uswds/img/usa-icons/phone.svg +1 -0
  1540. data/assets/uswds/img/usa-icons/photo_camera.svg +1 -0
  1541. data/assets/uswds/img/usa-icons/print.svg +1 -0
  1542. data/assets/uswds/img/usa-icons/priority_high.svg +1 -0
  1543. data/assets/uswds/img/usa-icons/public.svg +1 -0
  1544. data/assets/uswds/img/usa-icons/push_pin.svg +1 -0
  1545. data/assets/uswds/img/usa-icons/radio_button_unchecked.svg +1 -0
  1546. data/assets/uswds/img/usa-icons/rain.svg +1 -0
  1547. data/assets/uswds/img/usa-icons/reduce_capacity.svg +1 -0
  1548. data/assets/uswds/img/usa-icons/remove.svg +1 -0
  1549. data/assets/uswds/img/usa-icons/remove_red_eye.svg +1 -0
  1550. data/assets/uswds/img/usa-icons/report.svg +1 -0
  1551. data/assets/uswds/img/usa-icons/restaurant.svg +1 -0
  1552. data/assets/uswds/img/usa-icons/rss_feed.svg +1 -0
  1553. data/assets/uswds/img/usa-icons/safety_divider.svg +1 -0
  1554. data/assets/uswds/img/usa-icons/sanitizer.svg +1 -0
  1555. data/assets/uswds/img/usa-icons/save_alt.svg +1 -0
  1556. data/assets/uswds/img/usa-icons/schedule.svg +1 -0
  1557. data/assets/uswds/img/usa-icons/school.svg +1 -0
  1558. data/assets/uswds/img/usa-icons/science.svg +1 -0
  1559. data/assets/uswds/img/usa-icons/search.svg +1 -0
  1560. data/assets/uswds/img/usa-icons/security.svg +1 -0
  1561. data/assets/uswds/img/usa-icons/send.svg +1 -0
  1562. data/assets/uswds/img/usa-icons/sentiment_dissatisfied.svg +1 -0
  1563. data/assets/uswds/img/usa-icons/sentiment_neutral.svg +1 -0
  1564. data/assets/uswds/img/usa-icons/sentiment_satisfied.svg +1 -0
  1565. data/assets/uswds/img/usa-icons/sentiment_satisfied_alt.svg +1 -0
  1566. data/assets/uswds/img/usa-icons/sentiment_very_dissatisfied.svg +1 -0
  1567. data/assets/uswds/img/usa-icons/settings.svg +1 -0
  1568. data/assets/uswds/img/usa-icons/severe_weather.svg +1 -0
  1569. data/assets/uswds/img/usa-icons/share.svg +1 -0
  1570. data/assets/uswds/img/usa-icons/shield.svg +1 -0
  1571. data/assets/uswds/img/usa-icons/shopping_basket.svg +1 -0
  1572. data/assets/uswds/img/usa-icons/snow.svg +1 -0
  1573. data/assets/uswds/img/usa-icons/soap.svg +1 -0
  1574. data/assets/uswds/img/usa-icons/social_distance.svg +1 -0
  1575. data/assets/uswds/img/usa-icons/sort_arrow.svg +1 -0
  1576. data/assets/uswds/img/usa-icons/spellcheck.svg +1 -0
  1577. data/assets/uswds/img/usa-icons/star.svg +1 -0
  1578. data/assets/uswds/img/usa-icons/star_half.svg +1 -0
  1579. data/assets/uswds/img/usa-icons/star_outline.svg +1 -0
  1580. data/assets/uswds/img/usa-icons/store.svg +1 -0
  1581. data/assets/uswds/img/usa-icons/support.svg +1 -0
  1582. data/assets/uswds/img/usa-icons/support_agent.svg +1 -0
  1583. data/assets/uswds/img/usa-icons/text_fields.svg +1 -0
  1584. data/assets/uswds/img/usa-icons/thumb_down_off_alt.svg +1 -0
  1585. data/assets/uswds/img/usa-icons/thumb_up_alt.svg +1 -0
  1586. data/assets/uswds/img/usa-icons/timer.svg +1 -0
  1587. data/assets/uswds/img/usa-icons/toggle_off.svg +1 -0
  1588. data/assets/uswds/img/usa-icons/toggle_on.svg +1 -0
  1589. data/assets/uswds/img/usa-icons/topic.svg +1 -0
  1590. data/assets/uswds/img/usa-icons/tornado.svg +1 -0
  1591. data/assets/uswds/img/usa-icons/translate.svg +1 -0
  1592. data/assets/uswds/img/usa-icons/trending_down.svg +1 -0
  1593. data/assets/uswds/img/usa-icons/trending_up.svg +1 -0
  1594. data/assets/uswds/img/usa-icons/twitter.svg +1 -0
  1595. data/assets/uswds/img/usa-icons/undo.svg +1 -0
  1596. data/assets/uswds/img/usa-icons/unfold_less.svg +1 -0
  1597. data/assets/uswds/img/usa-icons/unfold_more.svg +1 -0
  1598. data/assets/uswds/img/usa-icons/update.svg +1 -0
  1599. data/assets/uswds/img/usa-icons/upload_file.svg +1 -0
  1600. data/assets/uswds/img/usa-icons/verified.svg +1 -0
  1601. data/assets/uswds/img/usa-icons/verified_user.svg +1 -0
  1602. data/assets/uswds/img/usa-icons/visibility.svg +1 -0
  1603. data/assets/uswds/img/usa-icons/visibility_off.svg +1 -0
  1604. data/assets/uswds/img/usa-icons/volume_off.svg +1 -0
  1605. data/assets/uswds/img/usa-icons/warning.svg +1 -0
  1606. data/assets/uswds/img/usa-icons/wash.svg +1 -0
  1607. data/assets/uswds/img/usa-icons/wifi.svg +1 -0
  1608. data/assets/uswds/img/usa-icons/work.svg +1 -0
  1609. data/assets/uswds/img/usa-icons/youtube.svg +1 -0
  1610. data/assets/uswds/img/usa-icons/zoom_in.svg +1 -0
  1611. data/assets/uswds/img/usa-icons/zoom_out.svg +1 -0
  1612. data/assets/uswds/img/usa-icons/zoom_out_map.svg +1 -0
  1613. data/assets/uswds/js/uswds-init.js +40 -0
  1614. data/assets/uswds/js/uswds-init.min.js +2 -0
  1615. data/assets/uswds/js/uswds-init.min.js.map +1 -0
  1616. data/assets/uswds/js/uswds.js +290 -50
  1617. data/assets/uswds/js/uswds.min.js +1 -1
  1618. data/assets/uswds/js/uswds.min.js.map +1 -1
  1619. metadata +1564 -3
@@ -1,2 +1,2 @@
1
- !function o(i,c,s){function u(e,t){if(!c[e]){if(!i[e]){var n="function"==typeof require&&require;if(!t&&n)return n(e,!0);if(l)return l(e,!0);var a=new Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}var r=c[e]={exports:{}};i[e][0].call(r.exports,function(t){return u(i[e][1][t]||t)},r,r.exports,o,i,c,s)}return c[e].exports}for(var l="function"==typeof require&&require,t=0;t<s.length;t++)u(s[t]);return u}({1:[function(t,e,n){"use strict";var a,r,o;"document"in window.self&&("classList"in document.createElement("_")&&(!document.createElementNS||"classList"in document.createElementNS("http://www.w3.org/2000/svg","g"))||function(t){if("Element"in t){var e="classList",n="prototype",a=t.Element[n],r=Object,o=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},i=Array[n].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1},c=function(t,e){this.name=t,this.code=DOMException[t],this.message=e},s=function(t,e){if(""===e)throw new c("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(e))throw new c("INVALID_CHARACTER_ERR","String contains an invalid character");return i.call(t,e)},u=function(t){for(var e=o.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],a=0,r=n.length;a<r;a++)this.push(n[a]);this._updateClassName=function(){t.setAttribute("class",this.toString())}},l=u[n]=[],d=function(){return new u(this)};if(c[n]=Error[n],l.item=function(t){return this[t]||null},l.contains=function(t){return-1!==s(this,t+="")},l.add=function(){for(var t,e=arguments,n=0,a=e.length,r=!1;-1===s(this,t=e[n]+"")&&(this.push(t),r=!0),++n<a;);r&&this._updateClassName()},l.remove=function(){var t,e,n=arguments,a=0,r=n.length,o=!1;do{for(e=s(this,t=n[a]+"");-1!==e;)this.splice(e,1),o=!0,e=s(this,t)}while(++a<r);o&&this._updateClassName()},l.toggle=function(t,e){t+="";var n=this.contains(t),a=n?!0!==e&&"remove":!1!==e&&"add";return a&&this[a](t),!0===e||!1===e?e:!n},l.toString=function(){return this.join(" ")},r.defineProperty){var f={get:d,enumerable:!0,configurable:!0};try{r.defineProperty(a,e,f)}catch(t){void 0!==t.number&&-2146823252!==t.number||(f.enumerable=!1,r.defineProperty(a,e,f))}}else r[n].__defineGetter__&&a.__defineGetter__(e,d)}}(window.self),(o=document.createElement("_")).classList.add("c1","c2"),o.classList.contains("c2")||((a=function(t){var a=DOMTokenList.prototype[t];DOMTokenList.prototype[t]=function(t){for(var e=arguments.length,n=0;n<e;n++)t=arguments[n],a.call(this,t)}})("add"),a("remove")),o.classList.toggle("c3",!1),o.classList.contains("c3")&&(r=DOMTokenList.prototype.toggle,DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:r.call(this,t)}),o=null)},{}],2:[function(t,e,n){"use strict";function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(t){void 0!==e?e.exports=t():"function"==typeof define&&"object"==a(define.amd)?define(t):this.domready=t()}(function(){var t,e=[],n=document,a=n.documentElement.doScroll,r="DOMContentLoaded",o=(a?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return o||n.addEventListener(r,t=function(){for(n.removeEventListener(r,t),o=1;t=e.shift();)t()}),function(t){o?setTimeout(t,0):e.push(t)}})},{}],3:[function(t,e,n){"use strict";var a;e.exports=((a=document.createElement("div")).setAttribute("data-a-b","c"),Boolean(a.dataset&&"c"===a.dataset.aB)?function(t){return t.dataset}:function(t){var e={},n=t.attributes;function a(){return this.value}function r(t,e){void 0===e?this.removeAttribute(t):this.setAttribute(t,e)}for(var o=0,i=n.length;o<i;o++){var c,s,u,l=n[o];!l||0===(c=l.name).indexOf("data-")&&(s=c.slice(5).replace(/-./g,function(t){return t.charAt(1).toUpperCase()}),u=l.value,Object.defineProperty(e,s,{enumerable:!0,get:a.bind({value:u||""}),set:r.bind(t,c)}))}return e})},{}],4:[function(t,e,n){"use strict";var a;"function"!=typeof(a=window.Element.prototype).matches&&(a.matches=a.msMatchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||function(t){for(var e=(this.document||this.ownerDocument).querySelectorAll(t),n=0;e[n]&&e[n]!==this;)++n;return Boolean(e[n])}),"function"!=typeof a.closest&&(a.closest=function(t){for(var e=this;e&&1===e.nodeType;){if(e.matches(t))return e;e=e.parentNode}return null})},{}],5:[function(t,a,r){"use strict";!function(){for(var e={polyfill:function(){if(!("KeyboardEvent"in window)||"key"in KeyboardEvent.prototype)return!1;var t={get:function(){var t=e.keys[this.which||this.keyCode];return Array.isArray(t)&&(t=t[+this.shiftKey]),t}};return Object.defineProperty(KeyboardEvent.prototype,"key",t),t},keys:{3:"Cancel",6:"Help",8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",28:"Convert",29:"NonConvert",30:"Accept",31:"ModeChange",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",41:"Select",42:"Print",43:"Execute",44:"PrintScreen",45:"Insert",46:"Delete",48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],91:"OS",93:"ContextMenu",144:"NumLock",145:"ScrollLock",181:"VolumeMute",182:"VolumeDown",183:"VolumeUp",186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"'],224:"Meta",225:"AltGraph",246:"Attn",247:"CrSel",248:"ExSel",249:"EraseEof",250:"Play",251:"ZoomOut"}},t=1;t<25;t++)e.keys[111+t]="F"+t;var n="";for(t=65;t<91;t++)n=String.fromCharCode(t),e.keys[t]=[n.toLowerCase(),n.toUpperCase()];"function"==typeof define&&define.amd?define("keyboardevent-key-polyfill",e):void 0!==r&&void 0!==a?a.exports=e:window&&(window.keyboardeventKeyPolyfill=e)}()},{}],6:[function(t,v,e){(function(t){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function g(){return d.Date.now()}var a=NaN,r="[object Symbol]",o=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,s=/^0o[0-7]+$/i,u=parseInt,e="object"==(void 0===t?"undefined":n(t))&&t&&t.Object===Object&&t,l="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,d=e||l||Function("return this")(),f=Object.prototype.toString,y=Math.max,E=Math.min;function w(t){var e=n(t);return t&&("object"==e||"function"==e)}function p(t){return"symbol"==n(t)||!!(e=t)&&"object"==n(e)&&f.call(t)==r;var e}function x(t){if("number"==typeof t)return t;if(p(t))return a;var e;if(w(t)&&(t=w(e="function"==typeof t.valueOf?t.valueOf():t)?e+"":e),"string"!=typeof t)return 0===t?t:+t;t=t.replace(o,"");var n=c.test(t);return n||s.test(t)?u(t.slice(2),n?2:8):i.test(t)?a:+t}v.exports=function(a,r,t){var o,i,c,s,u,l,d=0,f=!1,p=!1,e=!0;if("function"!=typeof a)throw new TypeError("Expected a function");function v(t){var e=o,n=i;return o=i=void 0,d=t,s=a.apply(n,e)}function b(t){var e=t-l;return void 0===l||r<=e||e<0||p&&c<=t-d}function h(){var t,e,n=g();if(b(n))return m(n);u=setTimeout(h,(e=r-((t=n)-l),p?E(e,c-(t-d)):e))}function m(t){return u=void 0,e&&o?v(t):(o=i=void 0,s)}function n(){var t,e=g(),n=b(e);if(o=arguments,i=this,l=e,n){if(void 0===u)return d=t=l,u=setTimeout(h,r),f?v(t):s;if(p)return u=setTimeout(h,r),v(l)}return void 0===u&&(u=setTimeout(h,r)),s}return r=x(r)||0,w(t)&&(f=!!t.leading,p="maxWait"in t,c=p?y(x(t.maxWait)||0,r):c,e="trailing"in t?!!t.trailing:e),n.cancel=function(){void 0!==u&&clearTimeout(u),o=l=i=u=void(d=0)},n.flush=function(){return void 0===u?s:m(g())},n}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],7:[function(t,e,n){"use strict";var s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(t){a[t]=t}),"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},a)).join("")?void 0:1}catch(t){return}}()?Object.assign:function(t,e){for(var n,a,r=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),o=1;o<arguments.length;o++){for(var i in n=Object(arguments[o]))u.call(n,i)&&(r[i]=n[i]);if(s){a=s(n);for(var c=0;c<a.length;c++)l.call(n,a[c])&&(r[a[c]]=n[a[c]])}}return r}},{}],8:[function(t,e,n){"use strict";function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var c=t("object-assign"),s=t("../delegate"),u=t("../delegateAll"),l=/^(.+):delegate\((.+)\)$/,d=function(t,e){var n=t[e];return delete t[e],n};e.exports=function(a,t){var n=Object.keys(a).reduce(function(t,e){var n=function(t,e){var n,a,r=t.match(l);r&&(t=r[1],n=r[2]),"object"===i(e)&&(a={capture:d(e,"capture"),passive:d(e,"passive")});var o={selector:n,delegate:"object"===i(e)?u(e):n?s(n,e):e,options:a};return-1<t.indexOf(" ")?t.split(" ").map(function(t){return c({type:t},o)}):(o.type=t,[o])}(e,a[e]);return t.concat(n)},[]);return c({add:function(e){n.forEach(function(t){e.addEventListener(t.type,t.delegate,t.options)})},remove:function(e){n.forEach(function(t){e.removeEventListener(t.type,t.delegate,t.options)})}},t)}},{"../delegate":10,"../delegateAll":11,"object-assign":7}],9:[function(t,e,n){"use strict";e.exports=function(t){return function(e){return t.some(function(t){return!1===t.call(this,e)},this)}}},{}],10:[function(t,e,n){"use strict";t("element-closest"),e.exports=function(n,a){return function(t){var e=t.target.closest(n);if(e)return a.call(e,t)}}},{"element-closest":4}],11:[function(t,e,n){"use strict";var a=t("../delegate"),r=t("../compose");e.exports=function(n){var t=Object.keys(n);if(1===t.length&&"*"===t[0])return n["*"];var e=t.reduce(function(t,e){return t.push(a(e,n[e])),t},[]);return r(e)}},{"../compose":9,"../delegate":10}],12:[function(t,e,n){"use strict";e.exports=function(e,n){return function(t){if(e!==t.target&&!e.contains(t.target))return n.call(this,t)}}},{}],13:[function(t,e,n){"use strict";e.exports={behavior:t("./behavior"),delegate:t("./delegate"),delegateAll:t("./delegateAll"),ignore:t("./ignore"),keymap:t("./keymap")}},{"./behavior":8,"./delegate":10,"./delegateAll":11,"./ignore":12,"./keymap":14}],14:[function(t,e,n){"use strict";t("keyboardevent-key-polyfill");var o={Alt:"altKey",Control:"ctrlKey",Ctrl:"ctrlKey",Shift:"shiftKey"};e.exports=function(r){var t=Object.keys(r).some(function(t){return-1<t.indexOf("+")});return function(n){var a=function(t,e){var n=t.key;if(e)for(var a in o)!0===t[o[a]]&&(n=[a,n].join("+"));return n}(n,t);return[a,a.toLowerCase()].reduce(function(t,e){return e in r&&(t=r[a].call(this,n)),t},void 0)}},e.exports.MODIFIERS=o},{"keyboardevent-key-polyfill":5}],15:[function(t,e,n){"use strict";e.exports=function(e,n){var a=function(t){return t.currentTarget.removeEventListener(t.type,a,n),e.call(this,t)};return a}},{}],16:[function(t,e,n){"use strict";function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var r=/(^\s+)|(\s+$)/g,o=/\s+/,i=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(r,"")};e.exports=function(t,e){if("string"!=typeof t)throw new Error("Expected a string but got "+a(t));var n=(e=e||window.document).getElementById?e.getElementById.bind(e):function(t){return this.querySelector('[id="'+t.replace(/"/g,'\\"')+'"]')}.bind(e);return 1===(t=i(t).split(o)).length&&""===t[0]?[]:t.map(function(t){var e=n(t);if(!e)throw new Error('no element with id: "'+t+'"');return e})}},{}],17:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(e){return i(p,e).filter(function(t){return t.closest(f)===e})}function r(e,t){var n,a=e.closest(f);if(!a)throw new Error("".concat(p," is missing outer ").concat(f));n=s(e,t);var r="true"===a.getAttribute("aria-multiselectable");n&&!r&&o(a).forEach(function(t){t!==e&&s(t,!1)})}var i=t("../utils/select"),c=t("../utils/behavior"),s=t("../utils/toggle"),u=t("../utils/is-in-viewport"),l=t("../events").CLICK,d=t("../config").prefix,f=".".concat(d,"-accordion, .").concat(d,"-accordion--bordered"),p=".".concat(d,"-accordion__button[aria-controls]"),v="aria-expanded",b=c(a({},l,a({},p,function(t){t.preventDefault(),r(this),"true"===this.getAttribute(v)&&(u(this)||this.scrollIntoView())})),{init:function(t){i(p,t).forEach(function(t){var e="true"===t.getAttribute(v);r(t,e)})},ACCORDION:f,BUTTON:p,show:function(t){return r(t,!0)},hide:function(t){return r(t,!1)},toggle:r,getButtons:o});e.exports=b},{"../config":33,"../events":34,"../utils/behavior":41,"../utils/is-in-viewport":43,"../utils/select":45,"../utils/toggle":48}],18:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var r=t("../utils/behavior"),o=t("../events").CLICK,i=t("../config").prefix,c=".".concat(i,"-banner__header"),s="".concat(i,"-banner__header--expanded");e.exports=r(a({},o,a({},"".concat(c," [aria-controls]"),function(t){t.preventDefault(),this.closest(c).classList.toggle(s)})))},{"../config":33,"../events":34,"../utils/behavior":41}],19:[function(t,e,n){"use strict";function d(t){var e=t.closest(l);if(!e)throw new Error("".concat(f," is missing outer ").concat(l));var n=e.querySelector(p);if(!n)throw new Error("".concat(l," is missing inner ").concat(p));return{characterCountEl:e,messageEl:n}}function r(t){var e,n,a,r,o,i,c=d(t),s=c.characterCountEl,u=c.messageEl,l=parseInt(s.getAttribute("data-maxlength"),10);l&&(i="",n=(e=t.value.length)&&l<e,i=0===e?"".concat(l," characters allowed"):(a=Math.abs(l-e),r="character".concat(1===a?"":"s"),o=n?"over limit":"left","".concat(a," ").concat(r," ").concat(o)),u.classList.toggle(b,n),u.innerHTML=i,n&&!t.validationMessage&&t.setCustomValidity(v),n||t.validationMessage!==v||t.setCustomValidity(""))}var a,o,i,c=t("../utils/select"),s=t("../utils/behavior"),u=t("../config").prefix,l=".".concat(u,"-character-count"),f=".".concat(u,"-character-count__field"),p=".".concat(u,"-character-count__message"),v="The content is too long.",b="".concat(u,"-character-count__message--invalid"),h=s({input:(i=function(){r(this)},(o=f)in(a={})?Object.defineProperty(a,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):a[o]=i,a)},{init:function(t){c(f,t).forEach(function(t){var e,n,a;n=d(e=t).characterCountEl,(a=e.getAttribute("maxlength"))&&(e.removeAttribute("maxlength"),n.setAttribute("data-maxlength",a)),r(t)})},MESSAGE_INVALID_CLASS:b,VALIDATION_MESSAGE:v});e.exports=h},{"../config":33,"../utils/behavior":41,"../utils/select":45}],20:[function(t,e,n){"use strict";var a,r,o;function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function v(t,e){var n=1<arguments.length&&void 0!==e?e:"",a=t;a.value=n;var r=new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:n}});a.dispatchEvent(r)}function S(t){var e=t.closest(F);if(!e)throw new Error("Element is missing outer ".concat(F));var n=e.querySelector(H),a=e.querySelector(R),r=e.querySelector(K),o=e.querySelector(z),i=e.querySelector(W),c=e.querySelector($),s=e.querySelector(U),u=e.querySelector(Y),l=e.classList.contains(A);return{comboBoxEl:e,selectEl:n,inputEl:a,listEl:r,statusEl:o,focusedOptionEl:i,selectedOptionEl:c,toggleListBtnEl:s,clearInputBtnEl:u,isPristine:l,disableFiltering:"true"===e.dataset.disableFiltering}}function b(t){var e=S(t),n=e.inputEl,a=e.toggleListBtnEl,r=e.clearInputBtnEl;r.hidden=!0,r.disabled=!0,a.disabled=!0,n.disabled=!0}function c(t){var e=t.closest(F);if(!e.dataset.enhanced){var n=e.querySelector("select");if(!n)throw new Error("".concat(F," is missing inner select"));var a,r,o=n.id,i="".concat(o,"--list"),c="".concat(o,"--assistiveHint"),s=[],u=e.dataset.defaultValue,l=e.dataset.placeholder;if(l&&s.push('placeholder="'.concat(l,'"')),u)for(var d=0,f=n.options.length;d<f;d+=1){var p=n.options[d];if(p.value===u){a=p;break}}n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),n.classList.add("usa-sr-only",_),n.id="",n.value="",["required","aria-label","aria-labelledby"].forEach(function(t){var e;n.hasAttribute(t)&&(e=n.getAttribute(t),s.push("".concat(t,'="').concat(e,'"')),n.removeAttribute(t))}),e.insertAdjacentHTML("beforeend",['<input\n aria-owns="'.concat(i,'"\n aria-autocomplete="list"\n aria-describedby="').concat(c,'"\n aria-expanded="false"\n autocapitalize="off"\n autocomplete="off"\n id="').concat(o,'"\n class="').concat(C,'"\n type="text"\n role="combobox"\n ').concat(s.join(" "),"\n >"),'<span class="'.concat(T,'" tabindex="-1">\n <button type="button" class="').concat(k,'" aria-label="Clear the select contents">&nbsp;</button>\n </span>'),'<span class="'.concat(M,'">&nbsp;</span>'),'<span class="'.concat(j,'" tabindex="-1">\n <button type="button" tabindex="-1" class="').concat(O,'" aria-label="Toggle the dropdown list">&nbsp;</button>\n </span>'),'<ul\n tabindex="-1"\n id="'.concat(i,'"\n class="').concat(I,'"\n role="listbox"\n hidden>\n </ul>'),'<div class="'.concat(P,' usa-sr-only" role="status"></div>'),'<span id="'.concat(c,'" class="usa-sr-only">\n When autocomplete results are available use up and down arrows to review and enter to select.\n Touch device users, explore by touch or with swipe gestures.\n </span>')].join("")),a&&(r=S(e).inputEl,v(n,a.value),v(r,a.text),e.classList.add(A)),n.disabled&&(b(e),n.disabled=!1),e.dataset.enhanced="true"}}function D(t,e,n){var a,r=2<arguments.length&&void 0!==n?n:{},o=r.skipFocus,i=r.preventScroll,c=S(t),s=c.inputEl,u=c.listEl,l=c.focusedOptionEl;l&&(l.classList.remove(N),l.setAttribute("tabIndex","-1")),e?(s.setAttribute("aria-activedescendant",e.id),e.setAttribute("tabIndex","0"),e.classList.add(N),i||(a=e.offsetTop+e.offsetHeight,u.scrollTop+u.offsetHeight<a&&(u.scrollTop=a-u.offsetHeight),e.offsetTop<u.scrollTop&&(u.scrollTop=e.offsetTop)),o||e.focus({preventScroll:i})):(s.setAttribute("aria-activedescendant",""),s.focus())}function L(t,e,n){function i(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}var c=1<arguments.length&&void 0!==e?e:"",s=2<arguments.length&&void 0!==n?n:{},a="^(?:"+(a=t.replace(/{{(.*?)}}/g,function(t,e){var n=e.trim(),a=s[n];if("query"!==n&&a){var r=new RegExp(a,"i"),o=c.match(r);return o?i(o[1]):""}return i(c)}))+")$";return new RegExp(a,"i")}function s(t){for(var i,e,n=S(t),a=n.comboBoxEl,r=n.selectEl,o=n.inputEl,c=n.listEl,s=n.statusEl,u=n.isPristine,l=n.disableFiltering,d="".concat(c.id,"--option-"),f=(o.value||"").toLowerCase(),p=a.dataset.filter||".*{{query}}.*",v=L(p,f,a.dataset),b=[],h=0,m=r.options.length;h<m;h+=1){var g=r.options[h],y="".concat(d).concat(b.length);g.value&&(l||u||!f||v.test(g.text))&&(r.value&&g.value===r.value&&(i=y),l&&!e&&v.test(g.text)&&(e=y),b.push(g))}var E,w=b.length,x=b.map(function(t,e){var n="".concat(d).concat(e),a=[q],r="-1",o="false";return n===i&&(a.push(B,N),r="0",o="true"),i||0!==e||(a.push(N),r="0"),'<li\n aria-selected="false"\n aria-setsize="'.concat(b.length,'"\n aria-posinset="').concat(e+1,'"\n aria-selected="').concat(o,'"\n id="').concat(n,'"\n class="').concat(a.join(" "),'"\n tabindex="').concat(r,'"\n role="option"\n data-value="').concat(t.value,'"\n >').concat(t.text,"</li>")}).join(""),A='<li class="'.concat(q,'--no-results">No results found</li>');c.hidden=!1,c.innerHTML=w?x:A,o.setAttribute("aria-expanded","true"),s.innerHTML=w?"".concat(w," result").concat(1<w?"s":""," available."):"No results.",u&&i?E=c.querySelector("#"+i):l&&e&&(E=c.querySelector("#"+e)),E&&D(c,E,{skipFocus:!0})}function u(t){var e=S(t),n=e.inputEl,a=e.listEl,r=e.statusEl,o=e.focusedOptionEl;r.innerHTML="",n.setAttribute("aria-expanded","false"),n.setAttribute("aria-activedescendant",""),o&&o.classList.remove(N),a.scrollTop=0,a.hidden=!0}function l(t){var e=S(t),n=e.comboBoxEl,a=e.selectEl,r=e.inputEl;v(a,t.dataset.value),v(r,t.textContent),n.classList.add(A),u(n),r.focus()}function d(t){var e=S(t),n=e.comboBoxEl,a=e.selectEl,r=e.inputEl,o=a.value,i=(r.value||"").toLowerCase();if(o)for(var c=0,s=a.options.length;c<s;c+=1){var u=a.options[c];if(u.value===o)return i!==u.text&&v(r,u.text),n.classList.add(A),0}i&&v(r)}function f(t){var e=S(t.target),n=e.comboBoxEl,a=e.listEl;a.hidden&&s(n);var r=a.querySelector(W)||a.querySelector(V);r&&D(n,r),t.preventDefault()}function p(t){var e=t.target,n=e.nextSibling;n&&D(e,n),t.preventDefault()}function h(t){var e=S(t.target),n=e.comboBoxEl,a=e.listEl,r=e.focusedOptionEl,o=r&&r.previousSibling,i=!a.hidden;D(n,o),i&&t.preventDefault(),o||u(n)}var m=t("receptor/keymap"),g=t("../utils/select"),y=t("../utils/behavior"),E=t("../config").prefix,w=t("../events").CLICK,x="".concat(E,"-combo-box"),A="".concat(x,"--pristine"),_="".concat(x,"__select"),C="".concat(x,"__input"),k="".concat(x,"__clear-input"),T="".concat(k,"__wrapper"),M="".concat(x,"__input-button-separator"),O="".concat(x,"__toggle-list"),j="".concat(O,"__wrapper"),I="".concat(x,"__list"),q="".concat(x,"__list-option"),N="".concat(q,"--focused"),B="".concat(q,"--selected"),P="".concat(x,"__status"),F=".".concat(x),H=".".concat(_),R=".".concat(C),Y=".".concat(k),U=".".concat(O),K=".".concat(I),V=".".concat(q),W=".".concat(N),$=".".concat(B),z=".".concat(P),Q=y((i(o={},w,(i(a={},R,function(){var t,e;this.disabled||(t=S(this),e=t.comboBoxEl,t.listEl.hidden&&s(e))}),i(a,U,function(){var t,e,n,a;this.disabled||(t=S(this),e=t.comboBoxEl,n=t.listEl,a=t.inputEl,(n.hidden?s:u)(e),a.focus())}),i(a,V,function(){this.disabled||l(this)}),i(a,Y,function(){var t,e,n,a,r,o;this.disabled||(t=S(this),e=t.comboBoxEl,n=t.listEl,a=t.selectEl,r=t.inputEl,o=!n.hidden,a.value&&v(a),r.value&&v(r),e.classList.remove(A),o&&s(e),r.focus())}),a)),i(o,"focusout",i({},F,function(t){this.contains(t.relatedTarget)||(d(this),u(this))})),i(o,"keydown",(i(r={},F,m({Escape:function(t){var e=S(t.target),n=e.comboBoxEl,a=e.inputEl;u(n),d(n),a.focus()}})),i(r,R,m({Enter:function(t){var e=S(t.target),n=e.comboBoxEl,a=!e.listEl.hidden;!function(t){var e=S(t),n=e.comboBoxEl,a=e.selectEl,r=e.inputEl;e.statusEl.textContent="";var o=(r.value||"").toLowerCase();if(o)for(var i=0,c=a.options.length;i<c;i+=1){var s=a.options[i];if(s.text.toLowerCase()===o)return v(a,s.value),v(r,s.text),n.classList.add(A)}d(n)}(n),a&&u(n),t.preventDefault()},ArrowDown:f,Down:f})),i(r,V,m({ArrowUp:h,Up:h,ArrowDown:p,Down:p,Enter:function(t){l(t.target),t.preventDefault()},Tab:function(t){l(t.target),t.preventDefault()},"Shift+Tab":function(){}})),r)),i(o,"input",i({},R,function(){this.closest(F).classList.remove(A),s(this)})),i(o,"mousemove",i({},V,function(){var t;(t=this).classList.contains(N)||D(t,t,{preventScroll:!0})})),o),{init:function(t){g(F,t).forEach(function(t){c(t)})},getComboBoxContext:S,enhanceComboBox:c,generateDynamicRegExp:L,disable:b,enable:function(t){var e=S(t),n=e.inputEl,a=e.toggleListBtnEl,r=e.clearInputBtnEl;r.hidden=!1,r.disabled=!1,a.disabled=!1,n.disabled=!1},displayList:s,hideList:u,COMBO_BOX_CLASS:x});e.exports=Q},{"../config":33,"../events":34,"../utils/behavior":41,"../utils/select":45,"receptor/keymap":14}],21:[function(t,e,n){"use strict";var a,r,o,i;function c(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function h(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],a=!0,r=!1,o=void 0;try{for(var i,c=t[Symbol.iterator]();!(a=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){r=!0,o=t}finally{try{a||null==c.return||c.return()}finally{if(r)throw o}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return s(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function u(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.map(function(t){return t+":not([disabled])"}).join(", ")}function l(t,e){return e!==t.getMonth()&&t.setDate(0),t}function m(t,e,n){var a=new Date(0);return a.setFullYear(t,e,n),a}function N(){var t=new Date,e=t.getDate(),n=t.getMonth(),a=t.getFullYear();return m(a,n,e)}function B(t){var e=new Date(0);return e.setFullYear(t.getFullYear(),t.getMonth(),1),e}function b(t){var e=new Date(0);return e.setFullYear(t.getFullYear(),t.getMonth()+1,0),e}function P(t,e){var n=new Date(t.getTime());return n.setDate(n.getDate()+e),n}function F(t,e){return P(t,-e)}function d(t,e){return P(t,7*e)}function H(t){var e=t.getDay();return F(t,e)}function R(t,e){var n=new Date(t.getTime()),a=(n.getMonth()+12+e)%12;return n.setMonth(n.getMonth()+e),l(n,a),n}function Y(t,e){return R(t,-e)}function f(t,e){return R(t,12*e)}function p(t,e){return f(t,-e)}function g(t,e){var n=new Date(t.getTime());return n.setMonth(e),l(n,e),n}function w(t,e){var n=new Date(t.getTime()),a=n.getMonth();return n.setFullYear(e),l(n,a),n}function v(t,e){return t&&e&&t.getFullYear()===e.getFullYear()}function U(t,e){return v(t,e)&&t.getMonth()===e.getMonth()}function K(t,e){return U(t,e)&&t.getDate()===e.getDate()}function y(t,e,n){var a=t;return t<e?a=e:n&&n<t&&(a=n),new Date(a.getTime())}function V(t,e,n){return e<=t&&(!n||t<=n)}function x(t,e,n){return b(g(t,11))<e||n&&B(g(t,0))>n}function E(t,e,n){var a,r,o,i,c,s,u,l,d,f,p,v,b=2<arguments.length&&void 0!==n&&n;return t&&((1<arguments.length&&void 0!==e?e:xe)===we?(i=(o=h(t.split("/"),3))[0],c=o[1],s=o[2]):(s=(u=h(t.split("-"),3))[0],i=u[1],c=u[2]),s&&(f=parseInt(s,10),Number.isNaN(f)||(d=f,b&&(d=Math.max(0,d),s.length<3&&(d=(l=N().getFullYear())-l%Math.pow(10,s.length)+f)))),i&&(f=parseInt(i,10),Number.isNaN(f)||(r=f,b&&(r=Math.max(1,r),r=Math.min(12,r)))),r&&c&&null!=d&&(f=parseInt(c,10),Number.isNaN(f)||(v=f,b&&(p=m(d,r,0).getDate(),v=Math.max(1,v),v=Math.min(p,v)))),r&&v&&null!=d&&(a=m(d,r-1,v))),a}function W(t,e){function n(t,e){return"0000".concat(t).slice(-e)}var a=1<arguments.length&&void 0!==e?e:xe,r=t.getMonth()+1,o=t.getDate(),i=t.getFullYear();return a===we?[n(r,2),n(o,2),n(i,4)].join("/"):[n(i,4),n(r,2),n(o,2)].join("-")}function $(t,e){for(var n=[],a=[],r=0;r<t.length;){for(a=[];r<t.length&&a.length<e;)a.push("<td>".concat(t[r],"</td>")),r+=1;n.push("<tr>".concat(a.join(""),"</tr>"))}return n.join("")}function A(t,e){var n=1<arguments.length&&void 0!==e?e:"",a=t;a.value=n;var r=new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:n}});a.dispatchEvent(r)}function z(t){var e=t.closest(zt);if(!e)throw new Error("Element is missing outer ".concat(zt));var n=e.querySelector(Gt),a=e.querySelector(Xt),r=e.querySelector(Jt),o=e.querySelector(Qt),i=e.querySelector(Zt),c=e.querySelector(le),s=E(a.value,we,!0),u=E(n.value),l=E(r.dataset.value),d=E(e.dataset.minDate),f=E(e.dataset.maxDate),p=E(e.dataset.rangeDate),v=E(e.dataset.defaultDate);if(d&&f&&f<d)throw new Error("Minimum date cannot be after maximum date");return{calendarDate:l,minDate:d,toggleBtnEl:o,selectedDate:u,maxDate:f,firstYearChunkEl:c,datePickerEl:e,inputDate:s,internalInputEl:n,externalInputEl:a,calendarEl:r,rangeDate:p,defaultDate:v,statusEl:i}}function S(t){var e=z(t),n=e.externalInputEl;e.toggleBtnEl.disabled=!0,n.disabled=!0}function D(t){var e,n,a,r,o,i,c=z(t),s=c.externalInputEl,u=c.minDate,l=c.maxDate,d=s.value,f=!1;return d&&(f=!0,a=(n=h((e=d.split("/")).map(function(t){var e,n=parseInt(t,10);return Number.isNaN(n)||(e=n),e}),3))[0],r=n[1],o=n[2],a&&r&&null!=o&&((i=m(o,a-1,r)).getMonth()===a-1&&i.getDate()===r&&i.getFullYear()===o&&4===e[2].length&&V(i,u,l)&&(f=!1))),f}function L(t){var e=z(t).externalInputEl,n=D(e);n&&!e.validationMessage&&e.setCustomValidity(ge),n||e.validationMessage!==ge||e.setCustomValidity("")}function _(t,e){var n,a,r,o,i,c=E(e);c&&(n=W(c,we),r=(a=z(t)).datePickerEl,o=a.internalInputEl,i=a.externalInputEl,A(o,e),A(i,n),L(r))}function C(t,e){for(var n,a,r,o,i=z(t),c=i.datePickerEl,s=i.calendarEl,u=i.statusEl,f=i.selectedDate,p=i.maxDate,v=i.minDate,b=i.rangeDate,h=N(),l=e||h,d=s.hidden,m=P(l,0),g=l.getMonth(),y=l.getFullYear(),E=Y(l,1),w=R(l,1),x=W(l),A=B(l),S=U(l,v),D=U(l,p),L=f||l,_=b&&(n=L,a=b,new Date((a<n?a:n).getTime())),C=b&&(r=L,o=b,new Date((r<o?o:r).getTime())),k=b&&P(_,1),T=b&&F(C,1),M=ye[g],l=H(A),O=[];O.length<28||l.getMonth()===g||O.length%7!=0;)O.push(function(t){var e=[vt],n=t.getDate(),a=t.getMonth(),r=t.getFullYear(),o=t.getDay(),i=W(t),c="-1",s=!V(t,v,p),u=K(t,f);U(t,E)&&e.push(mt),U(t,m)&&e.push(gt),U(t,w)&&e.push(yt),u&&e.push(ht),K(t,h)&&e.push(wt),b&&(K(t,b)&&e.push(Et),K(t,_)&&e.push(xt),K(t,C)&&e.push(At),V(t,k,T)&&e.push(St)),K(t,m)&&(c="0",e.push(bt));var l=ye[a],d=Ee[o];return'<button\n type="button"\n tabindex="'.concat(c,'"\n class="').concat(e.join(" "),'" \n data-day="').concat(n,'" \n data-month="').concat(a+1,'" \n data-year="').concat(r,'" \n data-value="').concat(i,'"\n aria-label="').concat(n," ").concat(l," ").concat(r," ").concat(d,'"\n aria-selected="').concat(u?"true":"false",'"\n ').concat(s?'disabled="disabled"':"","\n >").concat(n,"</button>")}(l)),l=P(l,1);var j=$(O,7),I=s.cloneNode();I.dataset.value=x,I.style.top="".concat(c.offsetHeight,"px"),I.hidden=!1,I.innerHTML='<div tabindex="-1" class="'.concat(Ft,'">\n <div class="').concat(Ut,'">\n <div class="').concat(Kt," ").concat(Vt,'">\n <button \n type="button"\n class="').concat(Dt,'"\n aria-label="Navigate back one year"\n ').concat(S?'disabled="disabled"':"",'\n >&nbsp;</button>\n </div>\n <div class="').concat(Kt," ").concat(Vt,'">\n <button \n type="button"\n class="').concat(Lt,'"\n aria-label="Navigate back one month"\n ').concat(S?'disabled="disabled"':"",'\n >&nbsp;</button>\n </div>\n <div class="').concat(Kt," ").concat(Wt,'">\n <button \n type="button"\n class="').concat(kt,'" aria-label="').concat(M,'. Click to select month"\n >').concat(M,'</button>\n <button \n type="button"\n class="').concat(Tt,'" aria-label="').concat(y,'. Click to select year"\n >').concat(y,'</button>\n </div>\n <div class="').concat(Kt," ").concat(Vt,'">\n <button \n type="button"\n class="').concat(Ct,'"\n aria-label="Navigate forward one month"\n ').concat(D?'disabled="disabled"':"",'\n >&nbsp;</button>\n </div>\n <div class="').concat(Kt," ").concat(Vt,'">\n <button \n type="button"\n class="').concat(_t,'"\n aria-label="Navigate forward one year"\n ').concat(D?'disabled="disabled"':"",'\n >&nbsp;</button>\n </div>\n </div>\n <table class="').concat(Yt,'" role="presentation">\n <thead>\n <tr>\n <th class="').concat($t,'" scope="col" aria-label="Sunday">S</th>\n <th class="').concat($t,'" scope="col" aria-label="Monday">M</th>\n <th class="').concat($t,'" scope="col" aria-label="Tuesday">T</th>\n <th class="').concat($t,'" scope="col" aria-label="Wednesday">W</th>\n <th class="').concat($t,'" scope="col" aria-label="Thursday">Th</th>\n <th class="').concat($t,'" scope="col" aria-label="Friday">F</th>\n <th class="').concat($t,'" scope="col" aria-label="Saturday">S</th>\n </tr>\n </thead>\n <tbody>\n ').concat(j,"\n </tbody>\n </table>\n </div>"),s.parentNode.replaceChild(I,s),c.classList.add(st);var q=[];return K(f,m)&&q.push("Selected date"),d?(q.push("You can navigate by day using left and right arrows","Weeks by using up and down arrows","Months by using page up and page down keys","Years by using shift plus page up and shift plus page down","Home and end keys navigate to the beginning and end of a week"),u.textContent=""):q.push("".concat(M," ").concat(y)),u.textContent=q.join(". "),I}function k(t){var e=z(t),n=e.datePickerEl,a=e.calendarEl,r=e.statusEl;n.classList.remove(st),a.hidden=!0,r.textContent=""}function T(t){var e,n=z(t),a=n.calendarEl,r=n.inputDate,o=n.minDate,i=n.maxDate;!a.hidden&&r&&(e=y(r,o,i),C(a,e))}function M(t,e){var n=z(t),a=n.calendarEl,r=n.statusEl,l=n.calendarDate,d=n.minDate,f=n.maxDate,p=l.getMonth(),v=null==e?p:e,o=ye.map(function(t,e){var n,a,r,o=g(l,e),i=(a=d,r=f,b(n=o)<a||r&&B(n)>r),c="-1",s=[Mt],u=e===p;return e===v&&(c="0",s.push(Ot)),u&&s.push(jt),'<button \n type="button"\n tabindex="'.concat(c,'"\n class="').concat(s.join(" "),'" \n data-value="').concat(e,'"\n data-label="').concat(t,'"\n aria-selected="').concat(u?"true":"false",'"\n ').concat(i?'disabled="disabled"':"","\n >").concat(t,"</button>")}),i='<div tabindex="-1" class="'.concat(Ht,'">\n <table class="').concat(Yt,'" role="presentation">\n <tbody>\n ').concat($(o,3),"\n </tbody>\n </table>\n </div>"),c=a.cloneNode();return c.innerHTML=i,a.parentNode.replaceChild(c,a),r.textContent="Select a month.",c}function O(t,e){var n=z(t),a=n.calendarEl,r=n.statusEl,o=n.calendarDate,i=n.minDate,c=n.maxDate,s=o.getFullYear(),u=null==e?s:e,l=u;l-=l%12,l=Math.max(0,l);for(var d=x(w(o,l-1),i,c),f=x(w(o,l+12),i,c),p=[],v=l;p.length<12;){var b=x(w(o,v),i,c),h="-1",m=[It],g=v===s;v===u&&(h="0",m.push(qt)),g&&m.push(Nt),p.push('<button \n type="button"\n tabindex="'.concat(h,'"\n class="').concat(m.join(" "),'" \n data-value="').concat(v,'"\n aria-selected="').concat(g?"true":"false",'"\n ').concat(b?'disabled="disabled"':"","\n >").concat(v,"</button>")),v+=1}var y=$(p,3),E=a.cloneNode();return E.innerHTML='<div tabindex="-1" class="'.concat(Rt,'">\n <table class="').concat(Yt,'" role="presentation">\n <tbody>\n <tr>\n <td>\n <button\n type="button"\n class="').concat(Bt,'" \n aria-label="Navigate back ').concat(12,' years"\n ').concat(d?'disabled="disabled"':"",'\n >&nbsp;</button>\n </td>\n <td colspan="3">\n <table class="').concat(Yt,'" role="presentation">\n <tbody>\n ').concat(y,'\n </tbody>\n </table>\n </td>\n <td>\n <button\n type="button"\n class="').concat(Pt,'" \n aria-label="Navigate forward ').concat(12,' years"\n ').concat(f?'disabled="disabled"':"","\n >&nbsp;</button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>"),a.parentNode.replaceChild(E,a),r.textContent="Showing years ".concat(l," to ").concat(l+12-1,". Select a year."),E}function j(t){var e=z(t.target),n=e.datePickerEl,a=e.externalInputEl;k(n),a.focus(),t.preventDefault()}function I(s){return function(t){var e=z(t.target),n=e.calendarEl,a=e.calendarDate,r=e.minDate,o=e.maxDate,i=s(a),c=y(i,r,o);K(a,c)||C(n,c).querySelector(ee).focus(),t.preventDefault()}}function q(f){return function(t){var e=t.target,n=parseInt(e.dataset.value,10),a=z(e),r=a.calendarEl,o=a.calendarDate,i=a.minDate,c=a.maxDate,s=g(o,n),u=f(n),u=Math.max(0,Math.min(11,u)),l=g(o,u),d=y(l,i,c);U(s,d)||M(r,d.getMonth()).querySelector(he).focus(),t.preventDefault()}}function Q(f){return function(t){var e=t.target,n=parseInt(e.dataset.value,10),a=z(e),r=a.calendarEl,o=a.calendarDate,i=a.minDate,c=a.maxDate,s=w(o,n),u=f(n),u=Math.max(0,u),l=w(o,u),d=y(l,i,c);v(s,d)||O(r,d.getFullYear()).querySelector(me).focus(),t.preventDefault()}}function G(c){function o(t){var e=z(t).calendarEl,n=tt(c,e),a=n.length-1,r=n[0],o=n[a],i=n.indexOf(at());return{focusableElements:n,isNotFound:-1===i,firstTabStop:r,isFirstTab:0===i,lastTabStop:o,isLastTab:i===a}}return{tabAhead:function(t){var e=o(t.target),n=e.firstTabStop,a=e.isLastTab,r=e.isNotFound;(a||r)&&(t.preventDefault(),n.focus())},tabBack:function(t){var e=o(t.target),n=e.lastTabStop,a=e.isFirstTab,r=e.isNotFound;(a||r)&&(t.preventDefault(),n.focus())}}}var X,J=t("receptor/keymap"),Z=t("../utils/behavior"),tt=t("../utils/select"),et=t("../config").prefix,nt=t("../events").CLICK,at=t("../utils/active-element"),rt=t("../utils/is-ios-device"),ot="".concat(et,"-date-picker"),it="".concat(ot,"__wrapper"),ct="".concat(ot,"--initialized"),st="".concat(ot,"--active"),ut="".concat(ot,"__internal-input"),lt="".concat(ot,"__external-input"),dt="".concat(ot,"__button"),ft="".concat(ot,"__calendar"),pt="".concat(ot,"__status"),vt="".concat(ft,"__date"),bt="".concat(vt,"--focused"),ht="".concat(vt,"--selected"),mt="".concat(vt,"--previous-month"),gt="".concat(vt,"--current-month"),yt="".concat(vt,"--next-month"),Et="".concat(vt,"--range-date"),wt="".concat(vt,"--today"),xt="".concat(vt,"--range-date-start"),At="".concat(vt,"--range-date-end"),St="".concat(vt,"--within-range"),Dt="".concat(ft,"__previous-year"),Lt="".concat(ft,"__previous-month"),_t="".concat(ft,"__next-year"),Ct="".concat(ft,"__next-month"),kt="".concat(ft,"__month-selection"),Tt="".concat(ft,"__year-selection"),Mt="".concat(ft,"__month"),Ot="".concat(Mt,"--focused"),jt="".concat(Mt,"--selected"),It="".concat(ft,"__year"),qt="".concat(It,"--focused"),Nt="".concat(It,"--selected"),Bt="".concat(ft,"__previous-year-chunk"),Pt="".concat(ft,"__next-year-chunk"),Ft="".concat(ft,"__date-picker"),Ht="".concat(ft,"__month-picker"),Rt="".concat(ft,"__year-picker"),Yt="".concat(ft,"__table"),Ut="".concat(ft,"__row"),Kt="".concat(ft,"__cell"),Vt="".concat(Kt,"--center-items"),Wt="".concat(ft,"__month-label"),$t="".concat(ft,"__day-of-week"),zt=".".concat(ot),Qt=".".concat(dt),Gt=".".concat(ut),Xt=".".concat(lt),Jt=".".concat(ft),Zt=".".concat(pt),te=".".concat(vt),ee=".".concat(bt),ne=".".concat(gt),ae=".".concat(Dt),re=".".concat(Lt),oe=".".concat(_t),ie=".".concat(Ct),ce=".".concat(Tt),se=".".concat(kt),ue=".".concat(Mt),le=".".concat(It),de=".".concat(Bt),fe=".".concat(Pt),pe=".".concat(Ft),ve=".".concat(Ht),be=".".concat(Rt),he=".".concat(Ot),me=".".concat(qt),ge="Please enter a valid date",ye=["January","February","March","April","May","June","July","August","September","October","November","December"],Ee=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],we="MM/DD/YYYY",xe="YYYY-MM-DD",Ae=u(ae,re,ce,se,oe,ie,ee),Se=u(he),De=u(de,fe,me),Le=I(function(t){return d(t,-1)}),_e=I(function(t){return d(t,1)}),Ce=I(function(t){return F(t,1)}),ke=I(function(t){return P(t,1)}),Te=I(H),Me=I(function(t){return n=(e=t).getDay(),P(e,6-n);var e,n}),Oe=I(function(t){return R(t,1)}),je=I(function(t){return Y(t,1)}),Ie=I(function(t){return f(t,1)}),qe=I(function(t){return p(t,1)}),Ne=q(function(t){return t-3}),Be=q(function(t){return t+3}),Pe=q(function(t){return t-1}),Fe=q(function(t){return t+1}),He=q(function(t){return t-t%3}),Re=q(function(t){return t+2-t%3}),Ye=q(function(){return 11}),Ue=q(function(){return 0}),Ke=Q(function(t){return t-3}),Ve=Q(function(t){return t+3}),We=Q(function(t){return t-1}),$e=Q(function(t){return t+1}),ze=Q(function(t){return t-t%3}),Qe=Q(function(t){return t+2-t%3}),Ge=Q(function(t){return t-12}),Xe=Q(function(t){return t+12}),Je=G(Ae),Ze=G(Se),tn=G(De),en=(c(i={},nt,(c(a={},Qt,function(){var t,e,n,a,r,o,i,c;(t=this).disabled||(n=(e=z(t)).calendarEl,a=e.inputDate,r=e.minDate,o=e.maxDate,i=e.defaultDate,n.hidden?(c=y(a||i||N(),r,o),C(n,c).querySelector(ee).focus()):k(t))}),c(a,te,function(){var t,e,n,a;(t=this).disabled||(n=(e=z(t)).datePickerEl,a=e.externalInputEl,_(t,t.dataset.value),k(n),a.focus())}),c(a,ue,function(){var t,e,n,a,r,o,i,c;(t=this).disabled||(n=(e=z(t)).calendarEl,a=e.calendarDate,r=e.minDate,o=e.maxDate,i=parseInt(t.dataset.value,10),c=g(a,i),c=y(c,r,o),C(n,c).querySelector(ee).focus())}),c(a,le,function(){var t,e,n,a,r,o,i,c;(t=this).disabled||(n=(e=z(t)).calendarEl,a=e.calendarDate,r=e.minDate,o=e.maxDate,i=parseInt(t.innerHTML,10),c=w(a,i),c=y(c,r,o),C(n,c).querySelector(ee).focus())}),c(a,re,function(){var t,e,n,a,r,o,i,c,s;(t=this).disabled||(n=(e=z(t)).calendarEl,a=e.calendarDate,r=e.minDate,o=e.maxDate,i=Y(a,1),i=y(i,r,o),(s=(c=C(n,i)).querySelector(re)).disabled&&(s=c.querySelector(pe)),s.focus())}),c(a,ie,function(){var t,e,n,a,r,o,i,c,s;(t=this).disabled||(n=(e=z(t)).calendarEl,a=e.calendarDate,r=e.minDate,o=e.maxDate,i=R(a,1),i=y(i,r,o),(s=(c=C(n,i)).querySelector(ie)).disabled&&(s=c.querySelector(pe)),s.focus())}),c(a,ae,function(){var t,e,n,a,r,o,i,c,s;(t=this).disabled||(n=(e=z(t)).calendarEl,a=e.calendarDate,r=e.minDate,o=e.maxDate,i=p(a,1),i=y(i,r,o),(s=(c=C(n,i)).querySelector(ae)).disabled&&(s=c.querySelector(pe)),s.focus())}),c(a,oe,function(){var t,e,n,a,r,o,i,c,s;(t=this).disabled||(n=(e=z(t)).calendarEl,a=e.calendarDate,r=e.minDate,o=e.maxDate,i=f(a,1),i=y(i,r,o),(s=(c=C(n,i)).querySelector(oe)).disabled&&(s=c.querySelector(pe)),s.focus())}),c(a,de,function(){var t,e,n,a,r,o,i,c,s,u,l,d;(t=this).disabled||(n=(e=z(t)).calendarEl,a=e.calendarDate,r=e.minDate,o=e.maxDate,i=n.querySelector(me),c=parseInt(i.textContent,10)-12,c=Math.max(0,c),s=w(a,c),u=y(s,r,o),(d=(l=O(n,u.getFullYear())).querySelector(de)).disabled&&(d=l.querySelector(be)),d.focus())}),c(a,fe,function(){var t,e,n,a,r,o,i,c,s,u,l,d;(t=this).disabled||(n=(e=z(t)).calendarEl,a=e.calendarDate,r=e.minDate,o=e.maxDate,i=n.querySelector(me),c=parseInt(i.textContent,10)+12,c=Math.max(0,c),s=w(a,c),u=y(s,r,o),(d=(l=O(n,u.getFullYear())).querySelector(fe)).disabled&&(d=l.querySelector(be)),d.focus())}),c(a,se,function(){M(this).querySelector(he).focus()}),c(a,ce,function(){O(this).querySelector(me).focus()}),a)),c(i,"keyup",c({},Jt,function(t){var e=this.dataset.keydownKeyCode;"".concat(t.keyCode)!==e&&t.preventDefault()})),c(i,"keydown",(c(r={},Xt,function(t){13===t.keyCode&&L(this)}),c(r,te,J({Up:Le,ArrowUp:Le,Down:_e,ArrowDown:_e,Left:Ce,ArrowLeft:Ce,Right:ke,ArrowRight:ke,Home:Te,End:Me,PageDown:Oe,PageUp:je,"Shift+PageDown":Ie,"Shift+PageUp":qe})),c(r,pe,J({Tab:Je.tabAhead,"Shift+Tab":Je.tabBack})),c(r,ue,J({Up:Ne,ArrowUp:Ne,Down:Be,ArrowDown:Be,Left:Pe,ArrowLeft:Pe,Right:Fe,ArrowRight:Fe,Home:He,End:Re,PageDown:Ye,PageUp:Ue})),c(r,ve,J({Tab:Ze.tabAhead,"Shift+Tab":Ze.tabBack})),c(r,le,J({Up:Ke,ArrowUp:Ke,Down:Ve,ArrowDown:Ve,Left:We,ArrowLeft:We,Right:$e,ArrowRight:$e,Home:ze,End:Qe,PageDown:Xe,PageUp:Ge})),c(r,be,J({Tab:tn.tabAhead,"Shift+Tab":tn.tabBack})),c(r,Jt,function(t){this.dataset.keydownKeyCode=t.keyCode}),c(r,zt,function(t){J({Escape:j})(t)}),r)),c(i,"focusout",(c(o={},Xt,function(){L(this)}),c(o,zt,function(t){this.contains(t.relatedTarget)||k(this)}),o)),c(i,"input",c({},Xt,function(){var t,e,n,a,r;e=z(t=this),n=e.internalInputEl,a=e.inputDate,r="",a&&!D(t)&&(r=W(a)),n.value!==r&&A(n,r),T(this)})),i);rt()||(en.mousemove=(c(X={},ne,function(){var t,e,n,a,r;(t=this).disabled||(n=(e=t.closest(Jt)).dataset.value,(a=t.dataset.value)!==n&&(r=E(a),C(e,r).querySelector(ee).focus()))}),c(X,ue,function(){var t,e;(t=this).disabled||t.classList.contains(Ot)||(e=parseInt(t.dataset.value,10),M(t,e).querySelector(he).focus())}),c(X,le,function(){var t,e;(t=this).disabled||t.classList.contains(qt)||(e=parseInt(t.dataset.value,10),O(t,e).querySelector(me).focus())}),X));var nn=Z(en,{init:function(t){tt(zt,t).forEach(function(t){!function(t){var e=t.closest(zt),n=e.dataset.defaultValue,a=e.querySelector("input");if(!a)throw new Error("".concat(zt," is missing inner input"));a.value&&(a.value="");var r=E(e.dataset.minDate||a.getAttribute("min"));e.dataset.minDate=r?W(r):"0000-01-01";var o=E(e.dataset.maxDate||a.getAttribute("max"));o&&(e.dataset.maxDate=W(o));var i=document.createElement("div");i.classList.add(it),i.tabIndex="-1";var c=a.cloneNode();c.classList.add(lt),c.type="text",c.name="",i.appendChild(c),i.insertAdjacentHTML("beforeend",['<button type="button" class="'.concat(dt,'" aria-haspopup="true" aria-label="Toggle calendar">&nbsp;</button>'),'<div class="'.concat(ft,'" role="dialog" aria-modal="true" hidden></div>'),'<div class="usa-sr-only '.concat(pt,'" role="status" aria-live="polite"></div>')].join("")),a.setAttribute("aria-hidden","true"),a.setAttribute("tabindex","-1"),a.classList.add("usa-sr-only",ut),a.id="",a.required=!1,e.appendChild(i),e.classList.add(ct),n&&_(e,n),a.disabled&&(S(e),a.disabled=!1)}(t)})},getDatePickerContext:z,disable:S,enable:function(t){var e=z(t),n=e.externalInputEl;e.toggleBtnEl.disabled=!1,n.disabled=!1},isDateInputInvalid:D,setCalendarValue:_,validateDateInput:L,renderCalendar:C,updateCalendarIfVisible:T});e.exports=nn},{"../config":33,"../events":34,"../utils/active-element":40,"../utils/behavior":41,"../utils/is-ios-device":44,"../utils/select":45,"receptor/keymap":14}],22:[function(t,e,n){"use strict";var a;function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function c(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],a=!0,r=!1,o=void 0;try{for(var i,c=t[Symbol.iterator]();!(a=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){r=!0,o=t}finally{try{a||null==c.return||c.return()}finally{if(r)throw o}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function s(t){var e=t.closest(x);if(!e)throw new Error("Element is missing outer ".concat(x));var n=e.querySelector(A),a=e.querySelector(S);return{dateRangePickerEl:e,rangeStartEl:n,rangeEndEl:a}}function u(t){var e=s(t),n=e.dateRangePickerEl,a=e.rangeStartEl,r=e.rangeEndEl,o=v(a).internalInputEl,i=o.value;i&&!b(o)?(r.dataset.minDate=i,r.dataset.rangeDate=i,r.dataset.defaultDate=i):(r.dataset.minDate=n.dataset.minDate||"",r.dataset.rangeDate="",r.dataset.defaultDate=""),h(r)}function l(t){var e=s(t),n=e.dateRangePickerEl,a=e.rangeStartEl,r=e.rangeEndEl,o=v(r).internalInputEl,i=o.value;i&&!b(o)?(a.dataset.maxDate=i,a.dataset.rangeDate=i,a.dataset.defaultDate=i):(a.dataset.maxDate=n.dataset.maxDate||"",a.dataset.rangeDate="",a.dataset.defaultDate=""),h(a)}var i=t("../utils/behavior"),d=t("../utils/select"),f=t("../config").prefix,p=t("./date-picker"),v=p.getDatePickerContext,b=p.isDateInputInvalid,h=p.updateCalendarIfVisible,m="".concat(f,"-date-picker"),g="".concat(f,"-date-range-picker"),y="".concat(g,"__range-start"),E="".concat(g,"__range-end"),w=".".concat(m),x=".".concat(g),A=".".concat(y),S=".".concat(E),D=i({"input change":(r(a={},A,function(){u(this)}),r(a,S,function(){l(this)}),a)},{init:function(t){d(x,t).forEach(function(t){!function(t){var e=t.closest(x),n=c(d(w,e),2),a=n[0],r=n[1];if(!a)throw new Error("".concat(x," is missing inner two '").concat(w,"' elements"));if(!r)throw new Error("".concat(x," is missing second '").concat(w,"' element"));a.classList.add(y),r.classList.add(E),e.dataset.minDate||(e.dataset.minDate="0000-01-01");var o=e.dataset.minDate;a.dataset.minDate=o,r.dataset.minDate=o;var i=e.dataset.maxDate;i&&(a.dataset.maxDate=i,r.dataset.maxDate=i),u(e),l(e)}(t)})}});e.exports=D},{"../config":33,"../utils/behavior":41,"../utils/select":45,"./date-picker":21}],23:[function(t,e,n){"use strict";function d(t){return t.replace(/[^a-z0-9]/g,function(t){var e=t.charCodeAt(0);return 32===e?"-":65<=e&&e<=90?"img_".concat(t.toLowerCase()):"__".concat(e.toString(16).slice(-4))})}function f(t,e){var n=t.querySelectorAll(".".concat(g)),a=t.querySelector(".".concat(y)),r=t.querySelector(".".concat(x));a&&(a.outerHTML=""),r&&(r.outerHTML="",t.classList.remove(_)),null!==n&&(e&&e.classList.remove(L),Array.prototype.forEach.call(n,function(t){t.parentNode.removeChild(t)}))}var a=t("../utils/select"),r=t("../utils/behavior"),o=t("../config").prefix,p="".concat(o,"-file-input"),i=".".concat(p),v="".concat(o,"-file-input__input"),b="".concat(o,"-file-input__target"),h="".concat(o,"-file-input__box"),m="".concat(o,"-file-input__instructions"),g="".concat(o,"-file-input__preview"),y="".concat(o,"-file-input__preview-heading"),E="".concat(o,"-file-input--disabled"),w="".concat(o,"-file-input__choose"),x="".concat(o,"-file-input__accepted-files-message"),A="".concat(o,"-file-input__drag-text"),S="".concat(o,"-file-input--drag"),D="is-loading",L="display-none",_="has-invalid-file",C="".concat(o,"-file-input__preview-image"),k="".concat(C,"--generic"),T="".concat(C,"--pdf"),M="".concat(C,"--word"),O="".concat(C,"--video"),j="".concat(C,"--excel"),I="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",c=r({},{init:function(t){a(i,t).forEach(function(e){var t,n,a,r,o,i,c,s=(n=(t=e).hasAttribute("multiple"),a=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),i=document.createElement("div"),c=t.hasAttribute("disabled"),t.classList.remove(p),t.classList.add(v),a.classList.add(p),o.classList.add(h),i.classList.add(m),i.setAttribute("aria-hidden","true"),r.classList.add(b),t.parentNode.insertBefore(r,t),t.parentNode.insertBefore(a,r),r.appendChild(t),a.appendChild(r),t.parentNode.insertBefore(i,t),t.parentNode.insertBefore(o,t),c&&(a.classList.add(E),a.setAttribute("aria-disabled","true")),i.innerHTML=n?'<span class="'.concat(A,'">Drag files here or </span><span class="').concat(w,'">choose from folder</span>'):'<span class="'.concat(A,'">Drag file here or </span><span class="').concat(w,'">choose from folder</span>'),(/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(a.querySelector(".".concat(A)).outerHTML=""),{instructions:i,dropTarget:r}),u=s.instructions,l=s.dropTarget;l.addEventListener("dragover",function(){this.classList.add(S)},!1),l.addEventListener("dragleave",function(){this.classList.remove(S)},!1),l.addEventListener("drop",function(t){!function(t,e,n,a){var r=e.getAttribute("accept");if(a.classList.remove(_),r){for(var o=document.createElement("div"),i=!0,c=0;c<t.dataTransfer.files.length;c+=1){var s=t.dataTransfer.files[c];if(i&&(i=s.name.indexOf(r))<0)break}i<0&&(f(a,n),e.value="",a.insertBefore(o,e),o.innerHTML="This is not a valid file type.",o.classList.add(x),a.classList.add(_),t.preventDefault(),t.stopPropagation())}}(t,e,u,l),this.classList.remove(S)},!1),e.onchange=function(t){!function(t,r,e){var o=t.target.files,i=document.createElement("div");f(e,r);for(var n=0;n<o.length;n+=1)!function(t){var n=new FileReader,a=o[t].name;n.onloadstart=function(){var t=d(a),e='<img id="'.concat(t,'" src="').concat(I,'" alt="" class="').concat(C," ").concat(D,'"/>');r.insertAdjacentHTML("afterend",'<div class="'.concat(g,'" aria-hidden="true">').concat(e).concat(a,"<div>"))},n.onloadend=function(){var t=d(a),e=document.getElementById(t);0<a.indexOf(".pdf")?e.setAttribute("onerror",'this.onerror=null;this.src="'.concat(I,'"; this.classList.add("').concat(T,'")')):0<a.indexOf(".doc")||0<a.indexOf(".pages")?e.setAttribute("onerror",'this.onerror=null;this.src="'.concat(I,'"; this.classList.add("').concat(M,'")')):0<a.indexOf(".xls")||0<a.indexOf(".numbers")?e.setAttribute("onerror",'this.onerror=null;this.src="'.concat(I,'"; this.classList.add("').concat(j,'")')):0<a.indexOf(".mov")||0<a.indexOf(".mp4")?e.setAttribute("onerror",'this.onerror=null;this.src="'.concat(I,'"; this.classList.add("').concat(O,'")')):e.setAttribute("onerror",'this.onerror=null;this.src="'.concat(I,'"; this.classList.add("').concat(k,'")')),e.classList.remove(D),e.src=n.result},o[t]&&n.readAsDataURL(o[t]),0===t?(e.insertBefore(i,r),i.innerHTML='Selected file <span class="usa-file-input__choose">Change file</span>'):1<=t&&(e.insertBefore(i,r),i.innerHTML="".concat(t+1,' files selected <span class="usa-file-input__choose">Change files</span>')),i&&(r.classList.add(L),i.classList.add(y))}(n)}(t,u,l)}})}});e.exports=c},{"../config":33,"../utils/behavior":41,"../utils/select":45}],24:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var r,o=t("lodash.debounce"),i=t("../utils/behavior"),c=t("../utils/select"),s=t("../events").CLICK,u=t("../config").prefix,l="hidden",d=".".concat(u,"-footer--big"),f="".concat(d," nav"),p="".concat(f," .").concat(u,"-footer__primary-link"),v=".".concat(u,"-footer__primary-content--collapsible");var b=o(function(){var e;r!==window.innerWidth&&(r=window.innerWidth,e=window.innerWidth<480,c(v).forEach(function(t){return t.classList.toggle(l,e)}))},180);e.exports=i(a({},s,a({},p,function(){var e;window.innerWidth<480&&((e=this.closest(v)).classList.toggle(l),c(v,e.closest(f)).forEach(function(t){t!==e&&t.classList.add(l)}))})),{HIDE_MAX_WIDTH:480,DEBOUNCE_RATE:180,init:function(){b(),window.addEventListener("resize",b)},teardown:function(){window.removeEventListener("resize",b)}})},{"../config":33,"../events":34,"../utils/behavior":41,"../utils/select":45,"lodash.debounce":6}],25:[function(t,e,n){"use strict";var a=t("./accordion"),r=t("./banner"),o=t("./character-count"),i=t("./combo-box"),c=t("./file-input"),s=t("./footer"),u=t("./navigation"),l=t("./password"),d=t("./search"),f=t("./skipnav"),p=t("./tooltip"),v=t("./validator"),b=t("./date-picker"),h=t("./date-range-picker"),m=t("./time-picker");e.exports={accordion:a,banner:r,characterCount:o,comboBox:i,datePicker:b,dateRangePicker:h,fileInput:c,footer:s,navigation:u,password:l,search:d,skipnav:f,timePicker:m,tooltip:p,validator:v}},{"./accordion":17,"./banner":18,"./character-count":19,"./combo-box":20,"./date-picker":21,"./date-range-picker":22,"./file-input":23,"./footer":24,"./navigation":26,"./password":27,"./search":28,"./skipnav":29,"./time-picker":30,"./tooltip":31,"./validator":32}],26:[function(t,e,n){"use strict";var a;function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(){return document.body.classList.contains(L)}function i(t){var e=document.body,n="boolean"==typeof t?t:!o();e.classList.toggle(L,n),f(D).forEach(function(t){return t.classList.toggle("is-visible",n)}),_.focusTrap.update(n);var a=e.querySelector(x),r=e.querySelector(w);return n&&a?a.focus():!n&&document.activeElement===a&&r&&r.focus(),n}function c(){var t=document.body.querySelector(x);o()&&t&&0===t.getBoundingClientRect().width&&_.toggleNav.call(t,!1)}function s(){return _.toggleNav.call(_,!1)}function u(){p(l,!1),l=null}var l,d=t("../utils/behavior"),f=t("../utils/select"),p=t("../utils/toggle"),v=t("../utils/focus-trap"),b=t("./accordion"),h=t("../events").CLICK,m=t("../config").prefix,g=".".concat(m,"-nav"),y="".concat(g," a"),E="button.".concat(m,"-nav__link"),w=".".concat(m,"-menu-btn"),x=".".concat(m,"-nav__close"),A=".".concat(m,"-overlay"),S="".concat(x,", .").concat(m,"-overlay"),D=[g,A].join(", "),L="usa-js-mobile-nav--active",_=d(r({},h,(r(a={},E,function(){return l&&l!==this&&u(),l?u():p(l=this,!0),!1}),r(a,"body",function(){l&&u()}),r(a,w,i),r(a,S,i),r(a,y,function(){var t=this.closest(b.ACCORDION);t&&b.getButtons(t).forEach(function(t){return b.hide(t)}),o()&&_.toggleNav.call(_,!1)}),a)),{init:function(t){var e=t.querySelector(g);e&&(_.focusTrap=v(e,{Escape:s})),c(),window.addEventListener("resize",c,!1)},teardown:function(){window.removeEventListener("resize",c,!1),l=!1},focusTrap:null,toggleNav:i});e.exports=_},{"../config":33,"../events":34,"../utils/behavior":41,"../utils/focus-trap":42,"../utils/select":45,"../utils/toggle":48,"./accordion":17}],27:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var r=t("../utils/behavior"),o=t("../utils/toggle-form-input"),i=t("../events").CLICK,c=t("../config").prefix,s=".".concat(c,"-show-password, .").concat(c,"-show-multipassword");e.exports=r(a({},i,a({},s,function(t){t.preventDefault(),o(this)})))},{"../config":33,"../events":34,"../utils/behavior":41,"../utils/toggle-form-input":47}],28:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var i,c=t("receptor/ignore"),r=t("../utils/behavior"),o=t("../utils/select"),s=t("../events").CLICK,u=".js-search-button",l=".js-search-form",d=function(t,e){var n,a,r,o=(n=t.closest("header"))?n.querySelector(l):document.querySelector(l);if(!o)throw new Error("No ".concat(l," found for search toggle in ").concat("header","!"));t.hidden=e,o.hidden=!e,e&&((a=o.querySelector("[type=search]"))&&a.focus(),r=c(o,function(){i&&function(){d(this,!1),i=void 0}.call(i),document.body.removeEventListener(s,r)}),setTimeout(function(){document.body.addEventListener(s,r)},0))};var f=r(a({},s,a({},u,function(){d(this,!0),i=this})),{init:function(t){o(u,t).forEach(function(t){d(t,!1)})},teardown:function(){i=void 0}});e.exports=f},{"../events":34,"../utils/behavior":41,"../utils/select":45,"receptor/ignore":12}],29:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var r=t("receptor/once"),o=t("../utils/behavior"),i=t("../events").CLICK,c=t("../config").prefix,s=".".concat(c,'-skipnav[href^="#"], .').concat(c,'-footer__return-to-top [href^="#"]');e.exports=o(a({},i,a({},s,function(){var t=this.getAttribute("href"),e=document.getElementById("#"===t?"main-content":t.slice(1));e&&(e.style.outline="0",e.setAttribute("tabindex",0),e.focus(),e.addEventListener("blur",r(function(){e.setAttribute("tabindex",-1)})))})))},{"../config":33,"../events":34,"../utils/behavior":41,"receptor/once":15}],30:[function(t,e,n){"use strict";function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],a=!0,r=!1,o=void 0;try{for(var i,c=t[Symbol.iterator]();!(a=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){r=!0,o=t}finally{try{a||null==c.return||c.return()}finally{if(r)throw o}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function g(t){var e,n,a,r;return t&&(a=(n=o(t.split(":").map(function(t){var e,n=parseInt(t,10);return Number.isNaN(n)||(e=n),e}),2))[0],r=n[1],null!=a&&null!=r&&(e=60*a+r)),e}var r=t("../utils/behavior"),i=t("../utils/select"),c=t("../config").prefix,s=t("./combo-box"),y=s.COMBO_BOX_CLASS,u=s.enhanceComboBox,l="".concat(c,"-time-picker"),E=".".concat(l),w={filter:"0?{{ hourQueryFilter }}:{{minuteQueryFilter}}.*{{ apQueryFilter }}m?",apQueryFilter:"([ap])",hourQueryFilter:"([1-9][0-2]?)",minuteQueryFilter:"[\\d]+:([0-9]{0,2})"},d=r({},{init:function(t){i(E,t).forEach(function(t){!function(t){var e=t.closest(E),n=e.querySelector("input");if(!n)throw new Error("".concat(E," is missing inner input"));var a=document.createElement("select");["id","name","required","aria-label","aria-labelledby"].forEach(function(t){var e;n.hasAttribute(t)&&(e=n.getAttribute(t),a.setAttribute(t,e),n.removeAttribute(t))});for(var r,o,i,c=function(t,e){return"0000".concat(t).slice(-e)},s=Math.max(0,g(e.dataset.minTime)||0),u=Math.min(1439,g(e.dataset.maxTime)||1439),l=Math.floor(Math.max(1,e.dataset.step||30)),d=s;d<=u;d+=l){var f=(i=o=void 0,o=(r=d)%60,i=Math.floor(r/60),{minute:o,hour24:i,hour12:i%12||12,ampm:i<12?"am":"pm"}),p=f.minute,v=f.hour24,b=f.hour12,h=f.ampm,m=document.createElement("option");m.value="".concat(c(v,2),":").concat(c(p,2)),m.text="".concat(b,":").concat(c(p,2)).concat(h),a.appendChild(m)}e.classList.add(y),Object.keys(w).forEach(function(t){e.dataset[t]=w[t]}),e.dataset.disableFiltering="true",e.appendChild(a),n.style.display="none"}(t),u(t)})},FILTER_DATASET:w});e.exports=d},{"../config":33,"../utils/behavior":41,"../utils/select":45,"./combo-box":20}],31:[function(t,e,n){"use strict";function f(t,e,n){for(var a=e.split(" "),r=0,o=a.length;r<o;r+=1)t.addEventListener(a[r],n,!1)}function p(e,t,n,a){function r(t){e.classList.remove("".concat(x,"--top")),e.classList.remove("".concat(x,"--bottom")),e.classList.remove("".concat(x,"--right")),e.classList.remove("".concat(x,"--left")),e.classList.add("".concat(x,"--").concat(t))}function o(t){r("top"),t.style.marginLeft="".concat(g,"px"),w(t)||t.classList.add(S),t.style.marginBottom="".concat(E+f+v,"px")}function i(t){r("bottom"),t.style.marginLeft="".concat(g,"px"),w(t)||t.classList.add(S),t.style.marginTop="".concat(E+d+p,"px")}function c(t){return r("right"),t.style.marginBottom="0",t.style.marginLeft="".concat(y+h,"px"),t.style.bottom="".concat((l-b)/2+f+v,"px"),0}function s(t){r("left"),t.style.marginBottom="0",t.style.marginLeft=m<h?"".concat(h-m-7,"px"):"-".concat(m-h+7,"px"),t.style.bottom="".concat((l-b)/2+f+v,"px")}e.setAttribute("aria-hidden","false"),e.classList.add("is-set");var u=t.offsetWidth,l=t.offsetHeight,d=parseInt(window.getComputedStyle(t).getPropertyValue("margin-top"),10),f=parseInt(window.getComputedStyle(t).getPropertyValue("margin-bottom"),10),p=parseInt(window.getComputedStyle(a).getPropertyValue("padding-top"),10),v=parseInt(window.getComputedStyle(a).getPropertyValue("padding-bottom"),10),b=parseInt(window.getComputedStyle(e).getPropertyValue("height"),10),h=t.offsetLeft,m=e.offsetWidth,g=u/2+h,y=u+5+2,E=l+5+2;switch(n){case"top":o(e),w(e)||i(e);break;case"bottom":i(e),w(e)||o(e);break;case"right":c(e),w(e)||(s(e),w(e)||o(e));break;case"left":s(e),w(e)||(c(e),w(e)||o(e))}setTimeout(function(){e.classList.add(A)},20)}var a=t("../utils/select"),r=t("../utils/behavior"),o=t("../config").prefix,w=t("../utils/is-in-viewport"),i=".".concat(o,"-tooltip"),v="".concat(o,"-tooltip__trigger"),b="".concat(o,"-tooltip"),x="".concat(o,"-tooltip__body"),A="is-visible",S="".concat(o,"-tooltip__body--wrap"),c=r({},{init:function(t){a(i,t).forEach(function(t){var e,n,a,r,o,i,c,s=(e=t,n="tooltip-".concat(Math.floor(9e5*Math.random())+1e5),a=e.getAttribute("title"),r=document.createElement("span"),o=document.createElement("span"),i=e.getAttribute("data-position")?e.getAttribute("data-position"):"top",c=e.getAttribute("data-classes"),e.setAttribute("aria-describedby",n),e.setAttribute("tabindex","0"),e.setAttribute("title",""),e.classList.remove(b),e.classList.add(v),e.parentNode.insertBefore(r,e),r.appendChild(e),r.classList.add(b),r.appendChild(o),c&&c.split(" ").forEach(function(t){return r.classList.add(t)}),o.classList.add(x),o.setAttribute("id",n),o.setAttribute("role","tooltip"),o.setAttribute("aria-hidden","true"),o.innerHTML=a,{tooltipBody:o,position:i,tooltipContent:a,wrapper:r}),u=s.tooltipBody,l=s.position,d=s.wrapper;s.tooltipContent&&(f(t,"mouseenter focus",function(){return p(u,t,l,d),!1}),f(t,"mouseleave blur keydown",function(){var t;return(t=u).classList.remove(A),t.classList.remove("is-set"),t.classList.remove(S),t.setAttribute("aria-hidden","true"),!1}))})}});e.exports=c},{"../config":33,"../utils/behavior":41,"../utils/is-in-viewport":43,"../utils/select":45}],32:[function(t,e,n){"use strict";var a=t("../utils/behavior"),r=t("../utils/validate-input");var o=a({"keyup change":{"input[data-validation-element]":function(){r(this)}}});e.exports=o},{"../utils/behavior":41,"../utils/validate-input":49}],33:[function(t,e,n){"use strict";e.exports={prefix:"usa"}},{}],34:[function(t,e,n){"use strict";e.exports={CLICK:"click"}},{}],35:[function(t,e,n){"use strict";"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(t,e){var n=e||{bubbles:!1,cancelable:!1,detail:null},a=document.createEvent("CustomEvent");return a.initCustomEvent(t,n.bubbles,n.cancelable,n.detail),a})},{}],36:[function(t,e,n){"use strict";var a=window.HTMLElement.prototype,r="hidden";r in a||Object.defineProperty(a,r,{get:function(){return this.hasAttribute(r)},set:function(t){t?this.setAttribute(r,""):this.removeAttribute(r)}})},{}],37:[function(t,e,n){"use strict";t("classlist-polyfill"),t("./element-hidden"),t("./number-is-nan"),t("./custom-event")},{"./custom-event":35,"./element-hidden":36,"./number-is-nan":38,"classlist-polyfill":1}],38:[function(t,e,n){"use strict";Number.isNaN=Number.isNaN||function(t){return"number"==typeof t&&t!=t}},{}],39:[function(t,e,n){"use strict";var a=t("domready");t("./polyfills");var r=t("./config"),o=t("./components");r.components=o,a(function(){var e=document.body;Object.keys(o).forEach(function(t){o[t].on(e)})}),e.exports=r},{"./components":25,"./config":33,"./polyfills":37,domready:2}],40:[function(t,e,n){"use strict";e.exports=function(){return(0<arguments.length&&void 0!==arguments[0]?arguments[0]:document).activeElement}},{}],41:[function(t,e,n){"use strict";function a(){for(var t=arguments.length,a=new Array(t),e=0;e<t;e++)a[e]=arguments[e];return function(t){var e=this,n=0<arguments.length&&void 0!==t?t:document.body;a.forEach(function(t){"function"==typeof e[t]&&e[t].call(e,n)})}}var r=t("object-assign"),o=t("receptor/behavior");e.exports=function(t,e){return o(t,r({on:a("init","add"),off:a("teardown","remove")},e))}},{"object-assign":7,"receptor/behavior":8}],42:[function(t,e,n){"use strict";function i(t){var e=r('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable]',t),n=e[0],a=e[e.length-1];return{firstTabStop:n,lastTabStop:a,tabAhead:function(t){o()===a&&(t.preventDefault(),n.focus())},tabBack:function(t){o()===n&&(t.preventDefault(),a.focus())}}}var c=t("object-assign"),s=t("receptor").keymap,u=t("./behavior"),r=t("./select"),o=t("./active-element");e.exports=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=i(t),a=e.Esc,r=e.Escape;r&&!a&&(e.Esc=r);var o=s(c({Tab:n.tabAhead,"Shift+Tab":n.tabBack},e));return u({keydown:o},{init:function(){n.firstTabStop.focus()},update:function(t){t?this.on():this.off()}})}},{"./active-element":40,"./behavior":41,"./select":45,"object-assign":7,receptor:13}],43:[function(t,e,n){"use strict";e.exports=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:window,n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:document.documentElement,a=t.getBoundingClientRect();return 0<=a.top&&0<=a.left&&a.bottom<=(e.innerHeight||n.clientHeight)&&a.right<=(e.innerWidth||n.clientWidth)}},{}],44:[function(t,e,n){"use strict";e.exports=function(){return"undefined"!=typeof navigator&&(navigator.userAgent.match(/(iPod|iPhone|iPad)/g)||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!window.MSStream}},{}],45:[function(t,e,n){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}e.exports=function(t,e){if("string"!=typeof t)return[];var n;e&&((n=e)&&"object"===r(n)&&1===n.nodeType)||(e=window.document);var a=e.querySelectorAll(t);return Array.prototype.slice.call(a)}},{}],46:[function(t,e,n){"use strict";e.exports=function(t,e){t.setAttribute("autocapitalize","off"),t.setAttribute("autocorrect","off"),t.setAttribute("type",e?"password":"text")}},{}],47:[function(t,e,n){"use strict";var r=t("resolve-id-refs"),o=t("./toggle-field-mask"),i="aria-pressed",c="data-show-text";e.exports=function(t){var e=t.hasAttribute(i)&&"true"!==t.getAttribute(i);r(t.getAttribute("aria-controls")).forEach(function(t){return o(t,e)}),t.hasAttribute(c)||t.setAttribute(c,t.textContent);var n=t.getAttribute(c),a=t.getAttribute("data-hide-text")||n.replace(/\bShow\b/i,function(t){return"".concat("S"===t[0]?"H":"h","ide")});return t.textContent=e?n:a,t.setAttribute(i,e),e}},{"./toggle-field-mask":46,"resolve-id-refs":16}],48:[function(t,e,n){"use strict";var o="aria-expanded";e.exports=function(t,e){var n=e;"boolean"!=typeof n&&(n="false"===t.getAttribute(o)),t.setAttribute(o,n);var a=t.getAttribute("aria-controls"),r=document.getElementById(a);if(!r)throw new Error('No toggle target found with id: "'.concat(a,'"'));return n?r.removeAttribute("hidden"):r.setAttribute("hidden",""),n}},{}],49:[function(t,e,n){"use strict";function d(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],a=!0,r=!1,o=void 0;try{for(var i,c=t[Symbol.iterator]();!(a=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){r=!0,o=t}finally{try{a||null==c.return||c.return()}finally{if(r)throw o}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}var r=t("elem-dataset"),o=t("../config").prefix,f="".concat(o,"-checklist__item--checked");e.exports=function(u){var t=r(u),e=t.validationElement,l="#"===e.charAt(0)?document.querySelector(e):document.getElementById(e);if(!l)throw new Error('No validation element found with id: "'.concat(e,'"'));Object.entries(t).forEach(function(t){var e=d(t,2),n=e[0],a=e[1];if(n.startsWith("validate")){var r=n.substr("validate".length).toLowerCase(),o=new RegExp(a),i='[data-validator="'.concat(r,'"]'),c=l.querySelector(i);if(!c)throw new Error('No validator checkbox found for: "'.concat(r,'"'));var s=o.test(u.value);c.classList.toggle(f,s),c.setAttribute("aria-checked",s)}})}},{"../config":33,"elem-dataset":3}]},{},[39]);
1
+ !function a(o,r,i){function c(e,t){if(!r[e]){if(!o[e]){var n="function"==typeof require&&require;if(!t&&n)return n(e,!0);if(s)return s(e,!0);throw(n=new Error("Cannot find module '"+e+"'")).code="MODULE_NOT_FOUND",n}n=r[e]={exports:{}},o[e][0].call(n.exports,function(t){return c(o[e][1][t]||t)},n,n.exports,a,o,r,i)}return r[e].exports}for(var s="function"==typeof require&&require,t=0;t<i.length;t++)c(i[t]);return c}({1:[function(t,e,n){"use strict";var a,o,r;"document"in window.self&&("classList"in document.createElement("_")&&(!document.createElementNS||"classList"in document.createElementNS("http://www.w3.org/2000/svg","g"))||function(t){if("Element"in t){var e="classList",n="prototype",a=t.Element[n],o=Object,r=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},i=Array[n].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1},c=function(t,e){this.name=t,this.code=DOMException[t],this.message=e},s=function(t,e){if(""===e)throw new c("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(e))throw new c("INVALID_CHARACTER_ERR","String contains an invalid character");return i.call(t,e)},u=function(t){for(var e=r.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],a=0,o=n.length;a<o;a++)this.push(n[a]);this._updateClassName=function(){t.setAttribute("class",this.toString())}},l=u[n]=[],t=function(){return new u(this)};if(c[n]=Error[n],l.item=function(t){return this[t]||null},l.contains=function(t){return-1!==s(this,t+="")},l.add=function(){for(var t,e=arguments,n=0,a=e.length,o=!1;-1===s(this,t=e[n]+"")&&(this.push(t),o=!0),++n<a;);o&&this._updateClassName()},l.remove=function(){var t,e,n=arguments,a=0,o=n.length,r=!1;do{for(e=s(this,t=n[a]+"");-1!==e;)this.splice(e,1),r=!0,e=s(this,t)}while(++a<o);r&&this._updateClassName()},l.toggle=function(t,e){t+="";var n=this.contains(t),a=n?!0!==e&&"remove":!1!==e&&"add";return a&&this[a](t),!0===e||!1===e?e:!n},l.toString=function(){return this.join(" ")},o.defineProperty){var d={get:t,enumerable:!0,configurable:!0};try{o.defineProperty(a,e,d)}catch(t){void 0!==t.number&&-2146823252!==t.number||(d.enumerable=!1,o.defineProperty(a,e,d))}}else o[n].__defineGetter__&&a.__defineGetter__(e,t)}}(window.self),(r=document.createElement("_")).classList.add("c1","c2"),r.classList.contains("c2")||((a=function(t){var a=DOMTokenList.prototype[t];DOMTokenList.prototype[t]=function(t){for(var e=arguments.length,n=0;n<e;n++)t=arguments[n],a.call(this,t)}})("add"),a("remove")),r.classList.toggle("c3",!1),r.classList.contains("c3")&&(o=DOMTokenList.prototype.toggle,DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:o.call(this,t)}),r=null)},{}],2:[function(t,e,n){"use strict";function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(t){void 0!==e?e.exports=t():"function"==typeof define&&"object"==a(define.amd)?define(t):this.domready=t()}(function(){var t,e=[],n=document,a=n.documentElement.doScroll,o="DOMContentLoaded",r=(a?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return r||n.addEventListener(o,t=function(){for(n.removeEventListener(o,t),r=1;t=e.shift();)t()}),function(t){r?setTimeout(t,0):e.push(t)}})},{}],3:[function(t,e,n){"use strict";var a;e.exports=((a=document.createElement("div")).setAttribute("data-a-b","c"),Boolean(a.dataset&&"c"===a.dataset.aB)?function(t){return t.dataset}:function(t){var e={},n=t.attributes;function a(){return this.value}function o(t,e){void 0===e?this.removeAttribute(t):this.setAttribute(t,e)}for(var r=0,i=n.length;r<i;r++){var c,s,u=n[r];!u||0===(c=u.name).indexOf("data-")&&(s=c.slice(5).replace(/-./g,function(t){return t.charAt(1).toUpperCase()}),u=u.value,Object.defineProperty(e,s,{enumerable:!0,get:a.bind({value:u||""}),set:o.bind(t,c)}))}return e})},{}],4:[function(t,e,n){"use strict";var a;"function"!=typeof(a=window.Element.prototype).matches&&(a.matches=a.msMatchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||function(t){for(var e=(this.document||this.ownerDocument).querySelectorAll(t),n=0;e[n]&&e[n]!==this;)++n;return Boolean(e[n])}),"function"!=typeof a.closest&&(a.closest=function(t){for(var e=this;e&&1===e.nodeType;){if(e.matches(t))return e;e=e.parentNode}return null})},{}],5:[function(t,a,o){"use strict";!function(){for(var e={polyfill:function(){if(!("KeyboardEvent"in window)||"key"in KeyboardEvent.prototype)return!1;var t={get:function(){var t=e.keys[this.which||this.keyCode];return Array.isArray(t)&&(t=t[+this.shiftKey]),t}};return Object.defineProperty(KeyboardEvent.prototype,"key",t),t},keys:{3:"Cancel",6:"Help",8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",28:"Convert",29:"NonConvert",30:"Accept",31:"ModeChange",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",41:"Select",42:"Print",43:"Execute",44:"PrintScreen",45:"Insert",46:"Delete",48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],91:"OS",93:"ContextMenu",144:"NumLock",145:"ScrollLock",181:"VolumeMute",182:"VolumeDown",183:"VolumeUp",186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"'],224:"Meta",225:"AltGraph",246:"Attn",247:"CrSel",248:"ExSel",249:"EraseEof",250:"Play",251:"ZoomOut"}},t=1;t<25;t++)e.keys[111+t]="F"+t;var n="";for(t=65;t<91;t++)n=String.fromCharCode(t),e.keys[t]=[n.toLowerCase(),n.toUpperCase()];"function"==typeof define&&define.amd?define("keyboardevent-key-polyfill",e):void 0!==o&&void 0!==a?a.exports=e:window&&(window.keyboardeventKeyPolyfill=e)}()},{}],6:[function(t,b,e){(function(p){(function(){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function g(){return l.Date.now()}var a=NaN,o="[object Symbol]",r=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,s=/^0o[0-7]+$/i,u=parseInt,t="object"==(void 0===p?"undefined":n(p))&&p&&p.Object===Object&&p,e="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,l=t||e||Function("return this")(),d=Object.prototype.toString,y=Math.max,w=Math.min;function E(t){var e=n(t);return t&&("object"==e||"function"==e)}function f(t){return"symbol"==n(t)||!!(e=t)&&"object"==n(e)&&d.call(t)==o;var e}function x(t){if("number"==typeof t)return t;if(f(t))return a;if(E(t)&&(t=E(e="function"==typeof t.valueOf?t.valueOf():t)?e+"":e),"string"!=typeof t)return 0===t?t:+t;t=t.replace(r,"");var e=c.test(t);return e||s.test(t)?u(t.slice(2),e?2:8):i.test(t)?a:+t}b.exports=function(a,n,t){var o,r,i,c,s,u,l=0,d=!1,f=!1,e=!0;if("function"!=typeof a)throw new TypeError("Expected a function");function p(t){var e=o,n=r;return o=r=void 0,l=t,c=a.apply(n,e)}function b(t){var e=t-u;return void 0===u||n<=e||e<0||f&&i<=t-l}function v(){var t,e=g();if(b(e))return h(e);s=setTimeout(v,(e=n-((t=e)-u),f?w(e,i-(t-l)):e))}function h(t){return s=void 0,e&&o?p(t):(o=r=void 0,c)}function m(){var t=g(),e=b(t);if(o=arguments,r=this,u=t,e){if(void 0===s)return l=e=u,s=setTimeout(v,n),d?p(e):c;if(f)return s=setTimeout(v,n),p(u)}return void 0===s&&(s=setTimeout(v,n)),c}return n=x(n)||0,E(t)&&(d=!!t.leading,f="maxWait"in t,i=f?y(x(t.maxWait)||0,n):i,e="trailing"in t?!!t.trailing:e),m.cancel=function(){void 0!==s&&clearTimeout(s),o=u=r=s=void(l=0)},m.flush=function(){return void 0===s?c:h(g())},m}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],7:[function(t,e,n){"use strict";var s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(t){a[t]=t}),"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},a)).join("")?void 0:1}catch(t){return}}()?Object.assign:function(t,e){for(var n,a,o=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),r=1;r<arguments.length;r++){for(var i in n=Object(arguments[r]))u.call(n,i)&&(o[i]=n[i]);if(s){a=s(n);for(var c=0;c<a.length;c++)l.call(n,a[c])&&(o[a[c]]=n[a[c]])}}return o}},{}],8:[function(t,e,n){"use strict";function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var c=t("object-assign"),s=t("../delegate"),u=t("../delegateAll"),l=/^(.+):delegate\((.+)\)$/,d=function(t,e){var n=t[e];return delete t[e],n};e.exports=function(n,t){var a=Object.keys(n).reduce(function(t,e){e=function(t,e){var n,a,o=t.match(l);o&&(t=o[1],n=o[2]),"object"===i(e)&&(a={capture:d(e,"capture"),passive:d(e,"passive")});var r={selector:n,delegate:"object"===i(e)?u(e):n?s(n,e):e,options:a};return-1<t.indexOf(" ")?t.split(" ").map(function(t){return c({type:t},r)}):(r.type=t,[r])}(e,n[e]);return t.concat(e)},[]);return c({add:function(e){a.forEach(function(t){e.addEventListener(t.type,t.delegate,t.options)})},remove:function(e){a.forEach(function(t){e.removeEventListener(t.type,t.delegate,t.options)})}},t)}},{"../delegate":10,"../delegateAll":11,"object-assign":7}],9:[function(t,e,n){"use strict";e.exports=function(t){return function(e){return t.some(function(t){return!1===t.call(this,e)},this)}}},{}],10:[function(t,e,n){"use strict";t("element-closest"),e.exports=function(n,a){return function(t){var e=t.target.closest(n);if(e)return a.call(e,t)}}},{"element-closest":4}],11:[function(t,e,n){"use strict";var a=t("../delegate"),o=t("../compose");e.exports=function(n){var t=Object.keys(n);if(1===t.length&&"*"===t[0])return n["*"];t=t.reduce(function(t,e){return t.push(a(e,n[e])),t},[]);return o(t)}},{"../compose":9,"../delegate":10}],12:[function(t,e,n){"use strict";e.exports=function(e,n){return function(t){if(e!==t.target&&!e.contains(t.target))return n.call(this,t)}}},{}],13:[function(t,e,n){"use strict";e.exports={behavior:t("./behavior"),delegate:t("./delegate"),delegateAll:t("./delegateAll"),ignore:t("./ignore"),keymap:t("./keymap")}},{"./behavior":8,"./delegate":10,"./delegateAll":11,"./ignore":12,"./keymap":14}],14:[function(t,e,n){"use strict";t("keyboardevent-key-polyfill");var r={Alt:"altKey",Control:"ctrlKey",Ctrl:"ctrlKey",Shift:"shiftKey"};e.exports=function(o){var t=Object.keys(o).some(function(t){return-1<t.indexOf("+")});return function(n){var a=function(t,e){var n=t.key;if(e)for(var a in r)!0===t[r[a]]&&(n=[a,n].join("+"));return n}(n,t);return[a,a.toLowerCase()].reduce(function(t,e){return e in o&&(t=o[a].call(this,n)),t},void 0)}},e.exports.MODIFIERS=r},{"keyboardevent-key-polyfill":5}],15:[function(t,e,n){"use strict";e.exports=function(e,n){var a=function(t){return t.currentTarget.removeEventListener(t.type,a,n),e.call(this,t)};return a}},{}],16:[function(t,e,n){"use strict";function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var o=/(^\s+)|(\s+$)/g,r=/\s+/,i=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(o,"")};e.exports=function(t,e){if("string"!=typeof t)throw new Error("Expected a string but got "+a(t));var n=((e=e||window.document).getElementById||function(t){return this.querySelector('[id="'+t.replace(/"/g,'\\"')+'"]')}).bind(e);return 1===(t=i(t).split(r)).length&&""===t[0]?[]:t.map(function(t){var e=n(t);if(!e)throw new Error('no element with id: "'+t+'"');return e})}},{}],17:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(e){return i(f,e).filter(function(t){return t.closest(d)===e})}function r(e,t){var n,a=e.closest(d);if(!a)throw new Error("".concat(f," is missing outer ").concat(d));n=s(e,t),t="true"===a.getAttribute("aria-multiselectable"),n&&!t&&o(a).forEach(function(t){t!==e&&s(t,!1)})}var i=t("../utils/select"),c=t("../utils/behavior"),s=t("../utils/toggle"),u=t("../utils/is-in-viewport"),l=t("../events").CLICK,t=t("../config").prefix,d=".".concat(t,"-accordion, .").concat(t,"-accordion--bordered"),f=".".concat(t,"-accordion__button[aria-controls]"),p="aria-expanded",l=c(a({},l,a({},f,function(t){t.preventDefault(),r(this),"true"===this.getAttribute(p)&&(u(this)||this.scrollIntoView())})),{init:function(t){i(f,t).forEach(function(t){var e="true"===t.getAttribute(p);r(t,e)})},ACCORDION:d,BUTTON:f,show:function(t){return r(t,!0)},hide:function(t){return r(t,!1)},toggle:r,getButtons:o});e.exports=l},{"../config":33,"../events":34,"../utils/behavior":42,"../utils/is-in-viewport":44,"../utils/select":46,"../utils/toggle":49}],18:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),r=t("../events").CLICK,t=t("../config").prefix,i=".".concat(t,"-banner__header"),c="".concat(t,"-banner__header--expanded");e.exports=o(a({},r,a({},"".concat(i," [aria-controls]"),function(t){t.preventDefault(),this.closest(i).classList.toggle(c)})))},{"../config":33,"../events":34,"../utils/behavior":42}],19:[function(t,e,n){"use strict";function c(t){var e=t.closest(l);if(!e)throw new Error("".concat(d," is missing outer ").concat(l));if(!(t=e.querySelector(f)))throw new Error("".concat(l," is missing inner ").concat(f));return{characterCountEl:e,messageEl:t}}function o(t){var e,n,a=c(t),o=a.characterCountEl,r=a.messageEl,i=parseInt(o.getAttribute("data-maxlength"),10);i&&(n="",a=(e=t.value.length)&&i<e,n=0===e?"".concat(i," characters allowed"):(o=Math.abs(i-e),i="character".concat(1===o?"":"s"),e=a?"over limit":"left","".concat(o," ").concat(i," ").concat(e)),r.classList.toggle(b,a),r.innerHTML=n,a&&!t.validationMessage&&t.setCustomValidity(p),a||t.validationMessage!==p||t.setCustomValidity(""))}var a,r,i,s=t("../utils/select"),u=t("../utils/behavior"),t=t("../config").prefix,l=".".concat(t,"-character-count"),d=".".concat(t,"-character-count__field"),f=".".concat(t,"-character-count__message"),p="The content is too long.",b="".concat(t,"-character-count__message--invalid"),u=u({input:(i=function(){o(this)},(r=d)in(a={})?Object.defineProperty(a,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):a[r]=i,a)},{init:function(t){s(d,t).forEach(function(t){var e,n,a;n=c(e=t).characterCountEl,(a=e.getAttribute("maxlength"))&&(e.removeAttribute("maxlength"),n.setAttribute("data-maxlength",a)),o(t)})},MESSAGE_INVALID_CLASS:b,VALIDATION_MESSAGE:p});e.exports=u},{"../config":33,"../utils/behavior":42,"../utils/select":46}],20:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function b(t,e){e=1<arguments.length&&void 0!==e?e:"",t.value=e,e=new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:e}}),t.dispatchEvent(e)}function w(t){var e=t.closest(I);if(!e)throw new Error("Element is missing outer ".concat(I));var n=e.querySelector(N),a=e.querySelector(q),o=e.querySelector(F),r=e.querySelector(U),i=e.querySelector(R),c=e.querySelector(Y),s=e.querySelector(P),u=e.querySelector(B),t=e.classList.contains(g);return{comboBoxEl:e,selectEl:n,inputEl:a,listEl:o,statusEl:r,focusedOptionEl:i,selectedOptionEl:c,toggleListBtnEl:s,clearInputBtnEl:u,isPristine:t,disableFiltering:"true"===e.dataset.disableFiltering}}function v(t){var e=w(t),n=e.inputEl,t=e.toggleListBtnEl;(e=e.clearInputBtnEl).hidden=!0,e.disabled=!0,t.disabled=!0,n.disabled=!0}function o(t){var e=t.closest(I);if(!e.dataset.enhanced){var n=e.querySelector("select");if(!n)throw new Error("".concat(I," is missing inner select"));var a,o=n.id,r=document.querySelector('label[for="'.concat(o,'"]')),i="".concat(o,"--list"),c="".concat(o,"-label"),s="".concat(o,"--assistiveHint"),u=[],l=e.dataset.defaultValue,t=e.dataset.placeholder;if(t&&u.push('placeholder="'.concat(t,'"')),l)for(var d=0,f=n.options.length;d<f;d+=1){var p=n.options[d];if(p.value===l){a=p;break}}if(!r||!r.matches('label[for="'.concat(o,'"]')))throw new Error("".concat(I," for ").concat(o,' is either missing a label or a "for" attribute'));r.setAttribute("id",c),r.setAttribute("id",c),n.setAttribute("aria-hidden","true"),n.setAttribute("tabindex","-1"),n.classList.add("usa-sr-only",y),n.id="",n.value="",["required","aria-label","aria-labelledby"].forEach(function(t){var e;n.hasAttribute(t)&&(e=n.getAttribute(t),u.push("".concat(t,'="').concat(e,'"')),n.removeAttribute(t))}),e.insertAdjacentHTML("beforeend",['<input\n aria-owns="'.concat(i,'"\n aria-autocomplete="list"\n aria-describedby="').concat(s,'"\n aria-expanded="false"\n autocapitalize="off"\n autocomplete="off"\n id="').concat(o,'"\n class="').concat(A,'"\n type="text"\n role="combobox"\n ').concat(u.join(" "),"\n >"),'<span class="'.concat(D,'" tabindex="-1">\n <button type="button" class="').concat(S,'" aria-label="Clear the select contents">&nbsp;</button>\n </span>'),'<span class="'.concat(L,'">&nbsp;</span>'),'<span class="'.concat(C,'" tabindex="-1">\n <button type="button" tabindex="-1" class="').concat(_,'" aria-label="Toggle the dropdown list">&nbsp;</button>\n </span>'),'<ul\n tabindex="-1"\n id="'.concat(i,'"\n class="').concat(T,'"\n role="listbox"\n aria-labelledby="').concat(c,'"\n hidden>\n </ul>'),'<div class="'.concat(j,' usa-sr-only" role="status"></div>'),'<span id="'.concat(s,'" class="usa-sr-only">\n When autocomplete results are available use up and down arrows to review and enter to select.\n Touch device users, explore by touch or with swipe gestures.\n </span>')].join("")),a&&(s=w(e).inputEl,b(n,a.value),b(s,a.text),e.classList.add(g)),n.disabled&&(v(e),n.disabled=!1),e.dataset.enhanced="true"}}function E(t,e,n){var a=(r=2<arguments.length&&void 0!==n?n:{}).skipFocus,o=r.preventScroll,r=(n=w(t)).inputEl,t=n.listEl;(n=n.focusedOptionEl)&&(n.classList.remove(M),n.setAttribute("tabIndex","-1")),e?(r.setAttribute("aria-activedescendant",e.id),e.setAttribute("tabIndex","0"),e.classList.add(M),o||(n=e.offsetTop+e.offsetHeight,t.scrollTop+t.offsetHeight<n&&(t.scrollTop=n-t.offsetHeight),e.offsetTop<t.scrollTop&&(t.scrollTop=e.offsetTop)),a||e.focus({preventScroll:o})):(r.setAttribute("aria-activedescendant",""),r.focus())}function x(t,e,n){function a(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}var o=1<arguments.length&&void 0!==e?e:"",r=2<arguments.length&&void 0!==n?n:{},t="^(?:"+(t=t.replace(/{{(.*?)}}/g,function(t,e){var n=e.trim(),e=r[n];if("query"!==n&&e){e=new RegExp(e,"i"),e=o.match(e);return e?a(e[1]):""}return a(o)}))+")$";return new RegExp(t,"i")}function r(t){for(var i,e,n=(y=w(t)).comboBoxEl,a=y.selectEl,o=y.inputEl,r=y.listEl,c=y.statusEl,s=y.isPristine,u=y.disableFiltering,l="".concat(r.id,"--option-"),d=(o.value||"").toLowerCase(),t=n.dataset.filter||".*{{query}}.*",f=x(t,d,n.dataset),p=[],b=0,v=a.options.length;b<v;b+=1){var h=a.options[b],m="".concat(l).concat(p.length);h.value&&(u||s||!d||f.test(h.text))&&(a.value&&h.value===a.value&&(i=m),u&&!e&&f.test(h.text)&&(e=m),p.push(h))}var g,y=p.length,t=p.map(function(t,e){var n="".concat(l).concat(e),a=[k],o="-1",r="false";return n===i&&(a.push(O,M),o="0",r="true"),i||0!==e||(a.push(M),o="0"),'<li\n aria-selected="false"\n aria-setsize="'.concat(p.length,'"\n aria-posinset="').concat(e+1,'"\n aria-selected="').concat(r,'"\n id="').concat(n,'"\n class="').concat(a.join(" "),'"\n tabindex="').concat(o,'"\n role="option"\n data-value="').concat(t.value,'"\n >').concat(t.text,"</li>")}).join(""),n='<li class="'.concat(k,'--no-results">No results found</li>');r.hidden=!1,r.innerHTML=y?t:n,o.setAttribute("aria-expanded","true"),c.innerHTML=y?"".concat(y," result").concat(1<y?"s":""," available."):"No results.",s&&i?g=r.querySelector("#"+i):u&&e&&(g=r.querySelector("#"+e)),g&&E(r,g,{skipFocus:!0})}function i(t){var e=(a=w(t)).inputEl,n=a.listEl,t=a.statusEl,a=a.focusedOptionEl;t.innerHTML="",e.setAttribute("aria-expanded","false"),e.setAttribute("aria-activedescendant",""),a&&a.classList.remove(M),n.scrollTop=0,n.hidden=!0}function c(t){var e=(a=w(t)).comboBoxEl,n=a.selectEl,a=a.inputEl;b(n,t.dataset.value),b(a,t.textContent),e.classList.add(g),i(e),a.focus()}function s(t){var e=(t=w(t)).comboBoxEl,n=t.selectEl,a=t.inputEl,o=n.value,r=(a.value||"").toLowerCase();if(o)for(var i=0,c=n.options.length;i<c;i+=1){var s=n.options[i];if(s.value===o)return r!==s.text&&b(a,s.text),e.classList.add(g),0}r&&b(a)}function u(t){var e=w(t.target),n=e.comboBoxEl;(e=e.listEl).hidden&&r(n),(e=e.querySelector(R)||e.querySelector(H))&&E(n,e),t.preventDefault()}var l=t("receptor/keymap"),d=t("../utils/select"),f=t("../utils/behavior"),p=t("../config").prefix,h=t("../events").CLICK,m="".concat(p,"-combo-box"),g="".concat(m,"--pristine"),y="".concat(m,"__select"),A="".concat(m,"__input"),S="".concat(m,"__clear-input"),D="".concat(S,"__wrapper"),L="".concat(m,"__input-button-separator"),_="".concat(m,"__toggle-list"),C="".concat(_,"__wrapper"),T="".concat(m,"__list"),k="".concat(m,"__list-option"),M="".concat(k,"--focused"),O="".concat(k,"--selected"),j="".concat(m,"__status"),I=".".concat(m),N=".".concat(y),q=".".concat(A),B=".".concat(S),P=".".concat(_),F=".".concat(T),H=".".concat(k),R=".".concat(M),Y=".".concat(O),U=".".concat(j),t=function(t){var e=t.target,n=e.nextSibling;n&&E(e,n),t.preventDefault()},p=function(t){var e=w(t.target),n=e.comboBoxEl,a=e.listEl,e=e.focusedOptionEl,e=e&&e.previousSibling,a=!a.hidden;E(n,e),a&&t.preventDefault(),e||i(n)},m=f((a(f={},h,(a(h={},q,function(){var t,e;this.disabled||(t=(e=w(t=this)).comboBoxEl,e.listEl.hidden&&r(t))}),a(h,P,function(){var t,e,n;this.disabled||(e=w(t=this),n=e.comboBoxEl,t=e.listEl,e=e.inputEl,(t.hidden?r:i)(n),e.focus())}),a(h,H,function(){this.disabled||c(this)}),a(h,B,function(){var t,e,n,a;this.disabled||(e=w(t=this),n=e.comboBoxEl,a=e.listEl,t=e.selectEl,e=e.inputEl,a=!a.hidden,t.value&&b(t),e.value&&b(e),n.classList.remove(g),a&&r(n),e.focus())}),h)),a(f,"focusout",a({},I,function(t){this.contains(t.relatedTarget)||(s(this),i(this))})),a(f,"keydown",(a(h={},I,l({Escape:function(t){var e=w(t.target),t=e.comboBoxEl,e=e.inputEl;i(t),s(t),e.focus()}})),a(h,q,l({Enter:function(t){var e=w(t.target),n=e.comboBoxEl,e=!e.listEl.hidden;!function(t){var e=(t=w(t)).comboBoxEl,n=t.selectEl,a=t.inputEl;t.statusEl.textContent="";var o=(a.value||"").toLowerCase();if(o)for(var r=0,i=n.options.length;r<i;r+=1){var c=n.options[r];if(c.text.toLowerCase()===o)return b(n,c.value),b(a,c.text),e.classList.add(g)}s(e)}(n),e&&i(n),t.preventDefault()},ArrowDown:u,Down:u})),a(h,H,l({ArrowUp:p,Up:p,ArrowDown:t,Down:t,Enter:function(t){c(t.target),t.preventDefault()},Tab:function(t){c(t.target),t.preventDefault()},"Shift+Tab":function(){}})),h)),a(f,"input",a({},q,function(){this.closest(I).classList.remove(g),r(this)})),a(f,"mousemove",a({},H,function(){var t;(t=this).classList.contains(M)||E(t,t,{preventScroll:!0})})),f),{init:function(t){d(I,t).forEach(function(t){o(t)})},getComboBoxContext:w,enhanceComboBox:o,generateDynamicRegExp:x,disable:v,enable:function(t){var e=w(t),n=e.inputEl,t=e.toggleListBtnEl,e=e.clearInputBtnEl;e.hidden=!1,e.disabled=!1,t.disabled=!1,n.disabled=!1},displayList:r,hideList:i,COMBO_BOX_CLASS:m});e.exports=m},{"../config":33,"../events":34,"../utils/behavior":42,"../utils/select":46,"receptor/keymap":14}],21:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],a=!0,o=!1,r=void 0;try{for(var i,c=t[Symbol.iterator]();!(a=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){o=!0,r=t}finally{try{a||null==c.return||c.return()}finally{if(o)throw r}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function r(t,e){return e!==t.getMonth()&&t.setDate(0),t}function p(t,e,n){var a=new Date(0);return a.setFullYear(t,e,n),a}function T(){var t=(n=new Date).getDate(),e=n.getMonth(),n=n.getFullYear();return p(n,e,t)}function k(t){var e=new Date(0);return e.setFullYear(t.getFullYear(),t.getMonth(),1),e}function d(t){var e=new Date(0);return e.setFullYear(t.getFullYear(),t.getMonth()+1,0),e}function M(t,e){return(t=new Date(t.getTime())).setDate(t.getDate()+e),t}function O(t,e){return M(t,-e)}function i(t,e){return M(t,7*e)}function j(t){var e=t.getDay();return O(t,e)}function I(t,e){var n=new Date(t.getTime()),t=(n.getMonth()+12+e)%12;return n.setMonth(n.getMonth()+e),r(n,t),n}function N(t,e){return I(t,-e)}function c(t,e){return I(t,12*e)}function s(t,e){return c(t,-e)}function b(t,e){return(t=new Date(t.getTime())).setMonth(e),r(t,e),t}function g(t,e){var n=new Date(t.getTime()),t=n.getMonth();return n.setFullYear(e),r(n,t),n}function u(t,e){return t&&e&&t.getFullYear()===e.getFullYear()}function q(t,e){return u(t,e)&&t.getMonth()===e.getMonth()}function B(t,e){return q(t,e)&&t.getDate()===e.getDate()}function l(t,e,n){var a=t;return t<e?a=e:n&&n<t&&(a=n),new Date(a.getTime())}function P(t,e,n){return e<=t&&(!n||t<=n)}function y(t,e,n){return d(b(t,11))<e||n&&k(b(t,0))>n}function v(t,e,n){var a,o,r,i,c,s,u,l,d,n=2<arguments.length&&void 0!==n&&n;return t&&((1<arguments.length&&void 0!==e?e:fe)===de?(r=(c=f(t.split("/"),3))[0],i=c[1],c=c[2]):(c=(s=f(t.split("-"),3))[0],r=s[1],i=s[2]),c&&(l=parseInt(c,10),Number.isNaN(l)||(u=l,n&&(u=Math.max(0,u),c.length<3&&(u=(s=T().getFullYear())-s%Math.pow(10,c.length)+l)))),r&&(l=parseInt(r,10),Number.isNaN(l)||(o=l,n&&(o=Math.max(1,o),o=Math.min(12,o)))),o&&i&&null!=u&&(l=parseInt(i,10),Number.isNaN(l)||(d=l,n&&(n=p(u,o,0).getDate(),d=Math.max(1,d),d=Math.min(n,d)))),o&&d&&null!=u&&(a=p(u,o-1,d))),a}function F(t,e){function n(t,e){return"0000".concat(t).slice(-e)}var a=1<arguments.length&&void 0!==e?e:fe,o=t.getMonth()+1,e=t.getDate(),t=t.getFullYear();return a===de?[n(o,2),n(e,2),n(t,4)].join("/"):[n(t,4),n(o,2),n(e,2)].join("-")}function H(t,e){for(var n=[],a=[],o=0;o<t.length;){for(a=[];o<t.length&&a.length<e;)a.push("<td>".concat(t[o],"</td>")),o+=1;n.push("<tr>".concat(a.join(""),"</tr>"))}return n.join("")}function h(t,e){e=1<arguments.length&&void 0!==e?e:"",t.value=e,e=new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:e}}),t.dispatchEvent(e)}function R(t){var e=t.closest(Pt);if(!e)throw new Error("Element is missing outer ".concat(Pt));var n=e.querySelector(Ht),a=e.querySelector(Rt),o=e.querySelector(Yt),r=e.querySelector(Ft),i=e.querySelector(Ut),c=e.querySelector(te),s=v(a.value,de,!0),u=v(n.value),l=v(o.dataset.value),d=v(e.dataset.minDate),f=v(e.dataset.maxDate),p=v(e.dataset.rangeDate),t=v(e.dataset.defaultDate);if(d&&f&&f<d)throw new Error("Minimum date cannot be after maximum date");return{calendarDate:l,minDate:d,toggleBtnEl:r,selectedDate:u,maxDate:f,firstYearChunkEl:c,datePickerEl:e,inputDate:s,internalInputEl:n,externalInputEl:a,calendarEl:o,rangeDate:p,defaultDate:t,statusEl:i}}function m(t){var e=R(t),t=e.externalInputEl;e.toggleBtnEl.disabled=!0,t.disabled=!0}function w(t){var e,n=R(t),a=n.externalInputEl,o=n.minDate,r=n.maxDate,i=a.value,c=!1;return i&&(c=!0,n=(t=f((e=i.split("/")).map(function(t){var e,t=parseInt(t,10);return Number.isNaN(t)||(e=t),e}),3))[0],a=t[1],i=t[2],n&&a&&null!=i&&((t=p(i,n-1,a)).getMonth()===n-1&&t.getDate()===a&&t.getFullYear()===i&&4===e[2].length&&P(t,o,r)&&(c=!1))),c}function E(t){var e=R(t).externalInputEl;(t=w(e))&&!e.validationMessage&&e.setCustomValidity(se),t||e.validationMessage!==se||e.setCustomValidity("")}function x(t,e){var n,a,o=v(e);o&&(n=F(o,de),o=(a=R(t)).datePickerEl,t=a.internalInputEl,a=a.externalInputEl,h(t,e),h(a,n),E(o))}function A(t,e){for(var n,a=(n=R(t)).datePickerEl,o=n.calendarEl,r=n.statusEl,l=n.selectedDate,d=n.maxDate,f=n.minDate,p=n.rangeDate,b=T(),i=e||b,c=o.hidden,v=M(i,0),s=i.getMonth(),u=i.getFullYear(),h=N(i,1),m=I(i,1),g=F(i),y=k(i),w=q(i,f),E=q(i,d),t=l||i,x=p&&(n=t,e=p,new Date((e<n?e:n).getTime())),A=p&&(C=t,L=p,new Date((C<L?L:C).getTime())),S=p&&M(x,1),D=p&&O(A,1),L=ue[s],i=j(y),_=[];_.length<28||i.getMonth()===s||_.length%7!=0;)_.push(function(t){var e=[ot],n=t.getDate(),a=t.getMonth(),o=t.getFullYear(),r=t.getDay(),i=F(t),c="-1",s=!P(t,f,d),u=B(t,l);q(t,h)&&e.push(ct),q(t,v)&&e.push(st),q(t,m)&&e.push(ut),u&&e.push(it),B(t,b)&&e.push(dt),p&&(B(t,p)&&e.push(lt),B(t,x)&&e.push(ft),B(t,A)&&e.push(pt),P(t,S,D)&&e.push(bt)),B(t,v)&&(c="0",e.push(rt));t=ue[a],r=le[r];return'<button\n type="button"\n tabindex="'.concat(c,'"\n class="').concat(e.join(" "),'" \n data-day="').concat(n,'" \n data-month="').concat(a+1,'" \n data-year="').concat(o,'" \n data-value="').concat(i,'"\n aria-label="').concat(n," ").concat(t," ").concat(o," ").concat(r,'"\n aria-selected="').concat(u?"true":"false",'"\n ').concat(s?'disabled="disabled"':"","\n >").concat(n,"</button>")}(i)),i=M(i,1);var C=H(_,7);return(y=o.cloneNode()).dataset.value=g,y.style.top="".concat(a.offsetHeight,"px"),y.hidden=!1,y.innerHTML='<div tabindex="-1" class="'.concat(Tt,'">\n <div class="').concat(jt,'">\n <div class="').concat(It," ").concat(Nt,'">\n <button \n type="button"\n class="').concat(vt,'"\n aria-label="Navigate back one year"\n ').concat(w?'disabled="disabled"':"",'\n >&nbsp;</button>\n </div>\n <div class="').concat(It," ").concat(Nt,'">\n <button \n type="button"\n class="').concat(ht,'"\n aria-label="Navigate back one month"\n ').concat(w?'disabled="disabled"':"",'\n >&nbsp;</button>\n </div>\n <div class="').concat(It," ").concat(qt,'">\n <button \n type="button"\n class="').concat(yt,'" aria-label="').concat(L,'. Click to select month"\n >').concat(L,'</button>\n <button \n type="button"\n class="').concat(wt,'" aria-label="').concat(u,'. Click to select year"\n >').concat(u,'</button>\n </div>\n <div class="').concat(It," ").concat(Nt,'">\n <button \n type="button"\n class="').concat(gt,'"\n aria-label="Navigate forward one month"\n ').concat(E?'disabled="disabled"':"",'\n >&nbsp;</button>\n </div>\n <div class="').concat(It," ").concat(Nt,'">\n <button \n type="button"\n class="').concat(mt,'"\n aria-label="Navigate forward one year"\n ').concat(E?'disabled="disabled"':"",'\n >&nbsp;</button>\n </div>\n </div>\n <table class="').concat(Ot,'" role="presentation">\n <thead>\n <tr>\n <th class="').concat(Bt,'" scope="col" aria-label="Sunday">S</th>\n <th class="').concat(Bt,'" scope="col" aria-label="Monday">M</th>\n <th class="').concat(Bt,'" scope="col" aria-label="Tuesday">T</th>\n <th class="').concat(Bt,'" scope="col" aria-label="Wednesday">W</th>\n <th class="').concat(Bt,'" scope="col" aria-label="Thursday">Th</th>\n <th class="').concat(Bt,'" scope="col" aria-label="Friday">F</th>\n <th class="').concat(Bt,'" scope="col" aria-label="Saturday">S</th>\n </tr>\n </thead>\n <tbody>\n ').concat(C,"\n </tbody>\n </table>\n </div>"),o.parentNode.replaceChild(y,o),a.classList.add(Z),a=[],B(l,v)&&a.push("Selected date"),c?(a.push("You can navigate by day using left and right arrows","Weeks by using up and down arrows","Months by using page up and page down keys","Years by using shift plus page up and shift plus page down","Home and end keys navigate to the beginning and end of a week"),r.textContent=""):a.push("".concat(L," ").concat(u)),r.textContent=a.join(". "),y}function S(t){var e=(n=R(t)).datePickerEl,t=n.calendarEl,n=n.statusEl;e.classList.remove(Z),t.hidden=!0,n.textContent=""}function D(t){var e=(a=R(t)).calendarEl,n=a.inputDate,t=a.minDate,a=a.maxDate;!e.hidden&&n&&(a=l(n,t,a),A(e,a))}function L(t,e){var n=(a=R(t)).calendarEl,t=a.statusEl,i=a.calendarDate,c=a.minDate,s=a.maxDate,u=i.getMonth(),l=null==e?u:e,a=ue.map(function(t,e){var n=b(i,e),n=(a=c,r=s,d(o=n)<a||r&&k(o)>r),a="-1",o=[Et],r=e===u;return e===l&&(a="0",o.push(xt)),r&&o.push(At),'<button \n type="button"\n tabindex="'.concat(a,'"\n class="').concat(o.join(" "),'" \n data-value="').concat(e,'"\n data-label="').concat(t,'"\n aria-selected="').concat(r?"true":"false",'"\n ').concat(n?'disabled="disabled"':"","\n >").concat(t,"</button>")}),e='<div tabindex="-1" class="'.concat(kt,'">\n <table class="').concat(Ot,'" role="presentation">\n <tbody>\n ').concat(H(a,3),"\n </tbody>\n </table>\n </div>");return(a=n.cloneNode()).innerHTML=e,n.parentNode.replaceChild(a,n),t.textContent="Select a month.",a}function _(t,e){var n=R(t),a=n.calendarEl,o=n.statusEl,r=n.calendarDate,i=n.minDate,c=n.maxDate,s=r.getFullYear(),u=null==e?s:e,l=u;l-=l%12,l=Math.max(0,l);for(var d=y(g(r,l-1),i,c),t=y(g(r,l+12),i,c),f=[],p=l;f.length<12;){var b=y(g(r,p),i,c),v="-1",h=[St],m=p===s;p===u&&(v="0",h.push(Dt)),m&&h.push(Lt),f.push('<button \n type="button"\n tabindex="'.concat(v,'"\n class="').concat(h.join(" "),'" \n data-value="').concat(p,'"\n aria-selected="').concat(m?"true":"false",'"\n ').concat(b?'disabled="disabled"':"","\n >").concat(p,"</button>")),p+=1}return n=H(f,3),(e=a.cloneNode()).innerHTML='<div tabindex="-1" class="'.concat(Mt,'">\n <table class="').concat(Ot,'" role="presentation">\n <tbody>\n <tr>\n <td>\n <button\n type="button"\n class="').concat(_t,'" \n aria-label="Navigate back ').concat(12,' years"\n ').concat(d?'disabled="disabled"':"",'\n >&nbsp;</button>\n </td>\n <td colspan="3">\n <table class="').concat(Ot,'" role="presentation">\n <tbody>\n ').concat(n,'\n </tbody>\n </table>\n </td>\n <td>\n <button\n type="button"\n class="').concat(Ct,'" \n aria-label="Navigate forward ').concat(12,' years"\n ').concat(t?'disabled="disabled"':"","\n >&nbsp;</button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>"),a.parentNode.replaceChild(e,a),o.textContent="Showing years ".concat(l," to ").concat(l+12-1,". Select a year."),e}function C(t){var e=(n=R(t.target)).datePickerEl,n=n.externalInputEl;S(e),n.focus(),t.preventDefault()}var Y=t("receptor/keymap"),U=t("../utils/behavior"),K=t("../utils/select"),V=t("../config").prefix,W=t("../events").CLICK,$=t("../utils/active-element"),z=t("../utils/is-ios-device"),G="".concat(V,"-date-picker"),Q="".concat(G,"__wrapper"),X="".concat(G,"--initialized"),Z="".concat(G,"--active"),J="".concat(G,"__internal-input"),tt="".concat(G,"__external-input"),et="".concat(G,"__button"),nt="".concat(G,"__calendar"),at="".concat(G,"__status"),ot="".concat(nt,"__date"),rt="".concat(ot,"--focused"),it="".concat(ot,"--selected"),ct="".concat(ot,"--previous-month"),st="".concat(ot,"--current-month"),ut="".concat(ot,"--next-month"),lt="".concat(ot,"--range-date"),dt="".concat(ot,"--today"),ft="".concat(ot,"--range-date-start"),pt="".concat(ot,"--range-date-end"),bt="".concat(ot,"--within-range"),vt="".concat(nt,"__previous-year"),ht="".concat(nt,"__previous-month"),mt="".concat(nt,"__next-year"),gt="".concat(nt,"__next-month"),yt="".concat(nt,"__month-selection"),wt="".concat(nt,"__year-selection"),Et="".concat(nt,"__month"),xt="".concat(Et,"--focused"),At="".concat(Et,"--selected"),St="".concat(nt,"__year"),Dt="".concat(St,"--focused"),Lt="".concat(St,"--selected"),_t="".concat(nt,"__previous-year-chunk"),Ct="".concat(nt,"__next-year-chunk"),Tt="".concat(nt,"__date-picker"),kt="".concat(nt,"__month-picker"),Mt="".concat(nt,"__year-picker"),Ot="".concat(nt,"__table"),jt="".concat(nt,"__row"),It="".concat(nt,"__cell"),Nt="".concat(It,"--center-items"),qt="".concat(nt,"__month-label"),Bt="".concat(nt,"__day-of-week"),Pt=".".concat(G),Ft=".".concat(et),Ht=".".concat(J),Rt=".".concat(tt),Yt=".".concat(nt),Ut=".".concat(at),Kt=".".concat(ot),Vt=".".concat(rt),Wt=".".concat(st),$t=".".concat(vt),zt=".".concat(ht),Gt=".".concat(mt),Qt=".".concat(gt),Xt=".".concat(wt),Zt=".".concat(yt),Jt=".".concat(Et),te=".".concat(St),ee=".".concat(_t),ne=".".concat(Ct),ae=".".concat(Tt),oe=".".concat(kt),re=".".concat(Mt),ie=".".concat(xt),ce=".".concat(Dt),se="Please enter a valid date",ue=["January","February","March","April","May","June","July","August","September","October","November","December"],le=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],de="MM/DD/YYYY",fe="YYYY-MM-DD",pe=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.map(function(t){return t+":not([disabled])"}).join(", ")},be=pe($t,zt,Xt,Zt,Gt,Qt,Vt),ve=pe(ie),he=pe(ee,ne,ce),me=function(i){return function(t){var e=R(t.target),n=e.calendarEl,a=e.calendarDate,o=e.minDate,r=e.maxDate,e=i(a),r=l(e,o,r);B(a,r)||A(n,r).querySelector(Vt).focus(),t.preventDefault()}},ge=me(function(t){return i(t,-1)}),ye=me(function(t){return i(t,1)}),we=me(function(t){return O(t,1)}),Ee=me(function(t){return M(t,1)}),xe=me(j),Ae=me(function(t){return t=(e=t).getDay(),M(e,6-t);var e}),Se=me(function(t){return I(t,1)}),De=me(function(t){return N(t,1)}),Le=me(function(t){return c(t,1)}),_e=me(function(t){return s(t,1)}),Ce=function(c){return function(t){var e=t.target,n=parseInt(e.dataset.value,10),a=R(e),o=a.calendarEl,r=a.calendarDate,i=a.minDate,e=a.maxDate,a=b(r,n),n=c(n),n=Math.max(0,Math.min(11,n)),n=b(r,n),e=l(n,i,e);q(a,e)||L(o,e.getMonth()).querySelector(ie).focus(),t.preventDefault()}},Te=Ce(function(t){return t-3}),ke=Ce(function(t){return t+3}),Me=Ce(function(t){return t-1}),Oe=Ce(function(t){return t+1}),je=Ce(function(t){return t-t%3}),Ie=Ce(function(t){return t+2-t%3}),Ne=Ce(function(){return 11}),qe=Ce(function(){return 0}),Be=function(c){return function(t){var e=t.target,n=parseInt(e.dataset.value,10),a=R(e),o=a.calendarEl,r=a.calendarDate,i=a.minDate,e=a.maxDate,a=g(r,n),n=c(n),n=Math.max(0,n),n=g(r,n),e=l(n,i,e);u(a,e)||_(o,e.getFullYear()).querySelector(ce).focus(),t.preventDefault()}},Pe=Be(function(t){return t-3}),Fe=Be(function(t){return t+3}),t=Be(function(t){return t-1}),V=Be(function(t){return t+1}),G=Be(function(t){return t-t%3}),pe=Be(function(t){return t+2-t%3}),me=Be(function(t){return t-12}),Ce=Be(function(t){return t+12}),Be=function(r){function o(t){var e=R(t).calendarEl,n=K(r,e),a=n.length-1,o=n[0],t=n[a],e=n.indexOf($());return{focusableElements:n,isNotFound:-1===e,firstTabStop:o,isFirstTab:0===e,lastTabStop:t,isLastTab:e===a}}return{tabAhead:function(t){var e=o(t.target),n=e.firstTabStop,a=e.isLastTab,e=e.isNotFound;(a||e)&&(t.preventDefault(),n.focus())},tabBack:function(t){var e=o(t.target),n=e.lastTabStop,a=e.isFirstTab,e=e.isNotFound;(a||e)&&(t.preventDefault(),n.focus())}}},be=Be(be),ve=Be(ve),Be=Be(he),he=(a(he={},W,(a(W={},Ft,function(){var t,e,n,a,o,r;(t=this).disabled||(e=(o=R(t)).calendarEl,n=o.inputDate,a=o.minDate,r=o.maxDate,o=o.defaultDate,e.hidden?(r=l(n||o||T(),a,r),A(e,r).querySelector(Vt).focus()):S(t))}),a(W,Kt,function(){var t,e,n;(t=this).disabled||(e=(n=R(t)).datePickerEl,n=n.externalInputEl,x(t,t.dataset.value),S(e),n.focus())}),a(W,Jt,function(){var t,e,n,a,o;(t=this).disabled||(e=(o=R(t)).calendarEl,n=o.calendarDate,a=o.minDate,o=o.maxDate,t=parseInt(t.dataset.value,10),t=b(n,t),t=l(t,a,o),A(e,t).querySelector(Vt).focus())}),a(W,te,function(){var t,e,n,a,o;(t=this).disabled||(e=(o=R(t)).calendarEl,n=o.calendarDate,a=o.minDate,o=o.maxDate,t=parseInt(t.innerHTML,10),t=g(n,t),t=l(t,a,o),A(e,t).querySelector(Vt).focus())}),a(W,zt,function(){var t,e,n,a;(t=this).disabled||(n=(e=R(t)).calendarEl,a=e.calendarDate,t=e.minDate,e=e.maxDate,a=N(a,1),a=l(a,t,e),(a=(n=A(n,a)).querySelector(zt)).disabled&&(a=n.querySelector(ae)),a.focus())}),a(W,Qt,function(){var t,e,n,a;(t=this).disabled||(n=(e=R(t)).calendarEl,a=e.calendarDate,t=e.minDate,e=e.maxDate,a=I(a,1),a=l(a,t,e),(a=(n=A(n,a)).querySelector(Qt)).disabled&&(a=n.querySelector(ae)),a.focus())}),a(W,$t,function(){var t,e,n,a;(t=this).disabled||(n=(e=R(t)).calendarEl,a=e.calendarDate,t=e.minDate,e=e.maxDate,a=s(a,1),a=l(a,t,e),(a=(n=A(n,a)).querySelector($t)).disabled&&(a=n.querySelector(ae)),a.focus())}),a(W,Gt,function(){var t,e,n,a;(t=this).disabled||(n=(e=R(t)).calendarEl,a=e.calendarDate,t=e.minDate,e=e.maxDate,a=c(a,1),a=l(a,t,e),(a=(n=A(n,a)).querySelector(Gt)).disabled&&(a=n.querySelector(ae)),a.focus())}),a(W,ee,function(){var t,e,n,a,o;(t=this).disabled||(o=(a=R(t)).calendarEl,e=a.calendarDate,n=a.minDate,t=a.maxDate,a=o.querySelector(ce),a=parseInt(a.textContent,10)-12,a=Math.max(0,a),a=g(e,a),t=l(a,n,t),(t=(o=_(o,t.getFullYear())).querySelector(ee)).disabled&&(t=o.querySelector(re)),t.focus())}),a(W,ne,function(){var t,e,n,a,o;(t=this).disabled||(o=(a=R(t)).calendarEl,e=a.calendarDate,n=a.minDate,t=a.maxDate,a=o.querySelector(ce),a=parseInt(a.textContent,10)+12,a=Math.max(0,a),a=g(e,a),t=l(a,n,t),(t=(o=_(o,t.getFullYear())).querySelector(ne)).disabled&&(t=o.querySelector(re)),t.focus())}),a(W,Zt,function(){L(this).querySelector(ie).focus()}),a(W,Xt,function(){_(this).querySelector(ce).focus()}),W)),a(he,"keyup",a({},Yt,function(t){var e=this.dataset.keydownKeyCode;"".concat(t.keyCode)!==e&&t.preventDefault()})),a(he,"keydown",(a(W={},Rt,function(t){13===t.keyCode&&E(this)}),a(W,Kt,Y({Up:ge,ArrowUp:ge,Down:ye,ArrowDown:ye,Left:we,ArrowLeft:we,Right:Ee,ArrowRight:Ee,Home:xe,End:Ae,PageDown:Se,PageUp:De,"Shift+PageDown":Le,"Shift+PageUp":_e})),a(W,ae,Y({Tab:be.tabAhead,"Shift+Tab":be.tabBack})),a(W,Jt,Y({Up:Te,ArrowUp:Te,Down:ke,ArrowDown:ke,Left:Me,ArrowLeft:Me,Right:Oe,ArrowRight:Oe,Home:je,End:Ie,PageDown:Ne,PageUp:qe})),a(W,oe,Y({Tab:ve.tabAhead,"Shift+Tab":ve.tabBack})),a(W,te,Y({Up:Pe,ArrowUp:Pe,Down:Fe,ArrowDown:Fe,Left:t,ArrowLeft:t,Right:V,ArrowRight:V,Home:G,End:pe,PageDown:Ce,PageUp:me})),a(W,re,Y({Tab:Be.tabAhead,"Shift+Tab":Be.tabBack})),a(W,Yt,function(t){this.dataset.keydownKeyCode=t.keyCode}),a(W,Pt,function(t){Y({Escape:C})(t)}),W)),a(he,"focusout",(a(W={},Rt,function(){E(this)}),a(W,Pt,function(t){this.contains(t.relatedTarget)||S(this)}),W)),a(he,"input",a({},Rt,function(){var t,e,n,a;e=R(t=this),n=e.internalInputEl,a=e.inputDate,e="",a&&!w(t)&&(e=F(a)),n.value!==e&&h(n,e),D(this)})),he);z()||(he.mousemove=(a(z={},Wt,function(){var t,e,n;(t=this).disabled||(n=(e=t.closest(Yt)).dataset.value,(t=t.dataset.value)!==n&&(t=v(t),A(e,t).querySelector(Vt).focus()))}),a(z,Jt,function(){var t,e;(t=this).disabled||t.classList.contains(xt)||(e=parseInt(t.dataset.value,10),L(t,e).querySelector(ie).focus())}),a(z,te,function(){var t,e;(t=this).disabled||t.classList.contains(Dt)||(e=parseInt(t.dataset.value,10),_(t,e).querySelector(ce).focus())}),z));he=U(he,{init:function(t){K(Pt,t).forEach(function(t){!function(t){var e=t.closest(Pt),n=e.dataset.defaultValue,a=e.querySelector("input");if(!a)throw new Error("".concat(Pt," is missing inner input"));a.value&&(a.value="");var o=v(e.dataset.minDate||a.getAttribute("min"));e.dataset.minDate=o?F(o):"0000-01-01",(t=v(e.dataset.maxDate||a.getAttribute("max")))&&(e.dataset.maxDate=F(t)),(o=document.createElement("div")).classList.add(Q),o.tabIndex="-1",(t=a.cloneNode()).classList.add(tt),t.type="text",t.name="",o.appendChild(t),o.insertAdjacentHTML("beforeend",['<button type="button" class="'.concat(et,'" aria-haspopup="true" aria-label="Toggle calendar">&nbsp;</button>'),'<div class="'.concat(nt,'" role="dialog" aria-modal="true" hidden></div>'),'<div class="usa-sr-only '.concat(at,'" role="status" aria-live="polite"></div>')].join("")),a.setAttribute("aria-hidden","true"),a.setAttribute("tabindex","-1"),a.classList.add("usa-sr-only",J),a.id="",a.required=!1,e.appendChild(o),e.classList.add(X),n&&x(e,n),a.disabled&&(m(e),a.disabled=!1)}(t)})},getDatePickerContext:R,disable:m,enable:function(t){var e=R(t),t=e.externalInputEl;e.toggleBtnEl.disabled=!1,t.disabled=!1},isDateInputInvalid:w,setCalendarValue:x,validateDateInput:E,renderCalendar:A,updateCalendarIfVisible:D});e.exports=he},{"../config":33,"../events":34,"../utils/active-element":41,"../utils/behavior":42,"../utils/is-ios-device":45,"../utils/select":46,"receptor/keymap":14}],22:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],a=!0,o=!1,r=void 0;try{for(var i,c=t[Symbol.iterator]();!(a=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){o=!0,r=t}finally{try{a||null==c.return||c.return()}finally{if(o)throw r}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return r(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function i(t){var e=t.closest(g);if(!e)throw new Error("Element is missing outer ".concat(g));var n=e.querySelector(y),t=e.querySelector(w);return{dateRangePickerEl:e,rangeStartEl:n,rangeEndEl:t}}function c(t){var e=(a=i(t)).dateRangePickerEl,n=a.rangeStartEl,t=a.rangeEndEl,a=f(n).internalInputEl;(n=a.value)&&!p(a)?(t.dataset.minDate=n,t.dataset.rangeDate=n,t.dataset.defaultDate=n):(t.dataset.minDate=e.dataset.minDate||"",t.dataset.rangeDate="",t.dataset.defaultDate=""),b(t)}function s(t){var e=(a=i(t)).dateRangePickerEl,n=a.rangeStartEl,t=a.rangeEndEl,a=f(t).internalInputEl;(t=a.value)&&!p(a)?(n.dataset.maxDate=t,n.dataset.rangeDate=t,n.dataset.defaultDate=t):(n.dataset.maxDate=e.dataset.maxDate||"",n.dataset.rangeDate="",n.dataset.defaultDate=""),b(n)}var u=t("../utils/behavior"),l=t("../utils/select"),d=t("../config").prefix,t=t("./date-picker"),f=t.getDatePickerContext,p=t.isDateInputInvalid,b=t.updateCalendarIfVisible,t="".concat(d,"-date-picker"),d="".concat(d,"-date-range-picker"),v="".concat(d,"__range-start"),h="".concat(d,"__range-end"),m=".".concat(t),g=".".concat(d),y=".".concat(v),w=".".concat(h),u=u({"input change":(a(u={},y,function(){c(this)}),a(u,w,function(){s(this)}),u)},{init:function(t){l(g,t).forEach(function(t){!function(t){var e=t.closest(g),n=o(l(m,e),2),a=n[0],t=n[1];if(!a)throw new Error("".concat(g," is missing inner two '").concat(m,"' elements"));if(!t)throw new Error("".concat(g," is missing second '").concat(m,"' element"));a.classList.add(v),t.classList.add(h),e.dataset.minDate||(e.dataset.minDate="0000-01-01"),n=e.dataset.minDate,a.dataset.minDate=n,t.dataset.minDate=n,(n=e.dataset.maxDate)&&(a.dataset.maxDate=n,t.dataset.maxDate=n),c(e),s(e)}(t)})}});e.exports=u},{"../config":33,"../utils/behavior":42,"../utils/select":46,"./date-picker":21}],23:[function(t,e,n){"use strict";function a(t){var e=t.closest(i);if(!e)throw new Error("Element is missing outer ".concat(i));return t=e.querySelector(s),{dropZoneEl:e,inputEl:t}}function l(t){var e=a(t),t=e.dropZoneEl;e.inputEl.disabled=!0,t.classList.add(y),t.setAttribute("aria-disabled","true")}function c(t){return t.replace(/[^a-z0-9]/g,function(t){var e=t.charCodeAt(0);return 32===e?"-":65<=e&&e<=90?"img_".concat(t.toLowerCase()):"__".concat(e.toString(16).slice(-4))})}function d(t,e){var n=t.querySelectorAll(".".concat(u)),a=t.querySelector(".".concat(g)),o=t.querySelector(".".concat(E));a&&(a.outerHTML=""),o&&(o.outerHTML="",t.classList.remove(L)),null!==n&&(e&&e.classList.remove(D),Array.prototype.forEach.call(n,function(t){t.parentNode.removeChild(t)}))}function f(t,e,a,o){var r=t.target.files,i=document.createElement("div");d(o,a);for(var n=0;n<r.length;n+=1)!function(t){var e=new FileReader,n=r[t].name;e.onloadstart=function(){var t=c(n),t='<img id="'.concat(t,'" src="').concat(j,'" alt="" class="').concat(_," ").concat(S,'"/>');a.insertAdjacentHTML("afterend",'<div class="'.concat(u,'" aria-hidden="true">').concat(t).concat(n,"<div>"))},e.onloadend=function(){var t=c(n),t=document.getElementById(t);0<n.indexOf(".pdf")?t.setAttribute("onerror",'this.onerror=null;this.src="'.concat(j,'"; this.classList.add("').concat(T,'")')):0<n.indexOf(".doc")||0<n.indexOf(".pages")?t.setAttribute("onerror",'this.onerror=null;this.src="'.concat(j,'"; this.classList.add("').concat(k,'")')):0<n.indexOf(".xls")||0<n.indexOf(".numbers")?t.setAttribute("onerror",'this.onerror=null;this.src="'.concat(j,'"; this.classList.add("').concat(O,'")')):0<n.indexOf(".mov")||0<n.indexOf(".mp4")?t.setAttribute("onerror",'this.onerror=null;this.src="'.concat(j,'"; this.classList.add("').concat(M,'")')):t.setAttribute("onerror",'this.onerror=null;this.src="'.concat(j,'"; this.classList.add("').concat(C,'")')),t.classList.remove(S),t.src=e.result},r[t]&&e.readAsDataURL(r[t]),0===t?(o.insertBefore(i,a),i.innerHTML='Selected file <span class="usa-file-input__choose">Change file</span>'):1<=t&&(o.insertBefore(i,a),i.innerHTML="".concat(t+1,' files selected <span class="usa-file-input__choose">Change files</span>')),i&&(a.classList.add(D),i.classList.add(g))}(n)}var o=t("../utils/select"),r=t("../utils/behavior"),t=t("../config").prefix,p="".concat(t,"-file-input"),i=".".concat(p),b="".concat(t,"-file-input__input"),v="".concat(t,"-file-input__target"),s=".".concat(b),h="".concat(t,"-file-input__box"),m="".concat(t,"-file-input__instructions"),u="".concat(t,"-file-input__preview"),g="".concat(t,"-file-input__preview-heading"),y="".concat(t,"-file-input--disabled"),w="".concat(t,"-file-input__choose"),E="".concat(t,"-file-input__accepted-files-message"),x="".concat(t,"-file-input__drag-text"),A="".concat(t,"-file-input--drag"),S="is-loading",D="display-none",L="has-invalid-file",_="".concat(t,"-file-input__preview-image"),C="".concat(_,"--generic"),T="".concat(_,"--pdf"),k="".concat(_,"--word"),M="".concat(_,"--video"),O="".concat(_,"--excel"),j="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",r=r({},{init:function(t){o(i,t).forEach(function(e){var t,n,a,o,r,i,c,o=(n=(t=e).hasAttribute("multiple"),a=document.createElement("div"),o=document.createElement("div"),r=document.createElement("div"),i=document.createElement("div"),c=t.hasAttribute("disabled"),t.classList.remove(p),t.classList.add(b),a.classList.add(p),r.classList.add(h),i.classList.add(m),i.setAttribute("aria-hidden","true"),o.classList.add(v),t.parentNode.insertBefore(o,t),t.parentNode.insertBefore(a,o),o.appendChild(t),a.appendChild(o),t.parentNode.insertBefore(i,t),t.parentNode.insertBefore(r,t),c&&l(t),i.innerHTML='<span class="'.concat(x,n?'">Drag files here or </span><span class="':'">Drag file here or </span><span class="').concat(w,'">choose from folder</span>'),(/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(a.querySelector(".".concat(x)).outerHTML=""),{instructions:i,dropTarget:o}),s=o.instructions,u=o.dropTarget;u.addEventListener("dragover",function(){this.classList.add(A)},!1),u.addEventListener("dragleave",function(){this.classList.remove(A)},!1),u.addEventListener("drop",function(t){!function(t,e,n,a){var o=e.getAttribute("accept");if(a.classList.remove(L),o){for(var r=o.split(","),o=document.createElement("div"),i=!0,c=0;c<t.dataTransfer.files.length;c+=1){var s=t.dataTransfer.files[c];if(!i)break;for(var u=0;u<r.length;u+=1){var l=r[u];if(i=0<s.name.indexOf(l)||s.type.includes(l.replace(/\*/g,"")))break}}i||(d(a,n),e.value="",a.insertBefore(o,e),o.innerHTML="This is not a valid file type.",o.classList.add(E),a.classList.add(L),t.preventDefault(),t.stopPropagation())}}(t,e,s,u),this.classList.remove(A)},!1),e.onchange=function(t){f(t,0,s,u)}})},getFileInputContext:a,disable:l,enable:function(t){var e=a(t),t=e.dropZoneEl;e.inputEl.disabled=!1,t.classList.remove(y),t.removeAttribute("aria-disabled")}});e.exports=r},{"../config":33,"../utils/behavior":42,"../utils/select":46}],24:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o,r=t("lodash.debounce"),i=t("../utils/behavior"),c=t("../utils/select"),s=t("../events").CLICK,u=t("../config").prefix,l="hidden",t=".".concat(u,"-footer--big"),d="".concat(t," nav"),t="".concat(d," .").concat(u,"-footer__primary-link"),f=".".concat(u,"-footer__primary-content--collapsible");var p=r(function(){var e;o!==window.innerWidth&&(o=window.innerWidth,e=window.innerWidth<480,c(f).forEach(function(t){return t.classList.toggle(l,e)}))},180);e.exports=i(a({},s,a({},t,function(){var e;window.innerWidth<480&&((e=this.closest(f)).classList.toggle(l),c(f,e.closest(d)).forEach(function(t){t!==e&&t.classList.add(l)}))})),{HIDE_MAX_WIDTH:480,DEBOUNCE_RATE:180,init:function(){p(),window.addEventListener("resize",p)},teardown:function(){window.removeEventListener("resize",p)}})},{"../config":33,"../events":34,"../utils/behavior":42,"../utils/select":46,"lodash.debounce":6}],25:[function(t,e,n){"use strict";var a=t("./accordion"),o=t("./banner"),r=t("./character-count"),i=t("./combo-box"),c=t("./file-input"),s=t("./footer"),u=t("./navigation"),l=t("./password"),d=t("./search"),f=t("./skipnav"),p=t("./tooltip"),b=t("./validator"),v=t("./date-picker"),h=t("./date-range-picker"),t=t("./time-picker");e.exports={accordion:a,banner:o,characterCount:r,comboBox:i,datePicker:v,dateRangePicker:h,fileInput:c,footer:s,navigation:u,password:l,search:d,skipnav:f,timePicker:t,tooltip:p,validator:b}},{"./accordion":17,"./banner":18,"./character-count":19,"./combo-box":20,"./date-picker":21,"./date-range-picker":22,"./file-input":23,"./footer":24,"./navigation":26,"./password":27,"./search":28,"./skipnav":29,"./time-picker":30,"./tooltip":31,"./validator":32}],26:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(){return document.body.classList.contains(x)}function r(){var t=document.body.querySelector(w);o()&&t&&0===t.getBoundingClientRect().width&&A.toggleNav.call(t,!1)}function i(){return A.toggleNav.call(A,!1)}function c(){d(s,!1),s=null}var s,u=t("../utils/behavior"),l=t("../utils/select"),d=t("../utils/toggle"),f=t("../utils/focus-trap"),p=t("./accordion"),b=t("../events").CLICK,v=t("../config").prefix,h=".".concat(v,"-nav"),m="".concat(h," a"),g="button.".concat(v,"-nav__link"),y=".".concat(v,"-menu-btn"),w=".".concat(v,"-nav__close"),t=".".concat(v,"-overlay"),v="".concat(w,", .").concat(v,"-overlay"),E=[h,t].join(", "),x="usa-js-mobile-nav--active",t=function(t){var e=document.body,n="boolean"==typeof t?t:!o();e.classList.toggle(x,n),l(E).forEach(function(t){return t.classList.toggle("is-visible",n)}),A.focusTrap.update(n);t=e.querySelector(w),e=e.querySelector(y);return n&&t?t.focus():!n&&document.activeElement===t&&e&&e.focus(),n},A=u(a({},b,(a(b={},g,function(){return s&&s!==this&&c(),s?c():d(s=this,!0),!1}),a(b,"body",function(){s&&c()}),a(b,y,t),a(b,v,t),a(b,m,function(){var t=this.closest(p.ACCORDION);t&&p.getButtons(t).forEach(function(t){return p.hide(t)}),o()&&A.toggleNav.call(A,!1)}),b)),{init:function(t){t=t.querySelector(h);t&&(A.focusTrap=f(t,{Escape:i})),r(),window.addEventListener("resize",r,!1)},teardown:function(){window.removeEventListener("resize",r,!1),s=!1},focusTrap:null,toggleNav:t});e.exports=A},{"../config":33,"../events":34,"../utils/behavior":42,"../utils/focus-trap":43,"../utils/select":46,"../utils/toggle":49,"./accordion":17}],27:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("../utils/behavior"),r=t("../utils/toggle-form-input"),i=t("../events").CLICK,t=t("../config").prefix,t=".".concat(t,"-show-password, .").concat(t,"-show-multipassword");e.exports=o(a({},i,a({},t,function(t){t.preventDefault(),r(this)})))},{"../config":33,"../events":34,"../utils/behavior":42,"../utils/toggle-form-input":48}],28:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o,r=t("receptor/ignore"),i=t("../utils/behavior"),c=t("../utils/select"),s=t("../events").CLICK,u=".js-search-button",l=".js-search-form",d=function(t,e){var n,a=function(t){t=t.closest("header");return(t||document).querySelector(l)}(t);if(!a)throw new Error("No ".concat(l," found for search toggle in ").concat("header","!"));t.hidden=e,a.hidden=!e,e&&((e=a.querySelector("[type=search]"))&&e.focus(),n=r(a,function(){o&&function(){d(this,!1),o=void 0}.call(o),document.body.removeEventListener(s,n)}),setTimeout(function(){document.body.addEventListener(s,n)},0))};i=i(a({},s,a({},u,function(){d(this,!0),o=this})),{init:function(t){c(u,t).forEach(function(t){d(t,!1)})},teardown:function(){o=void 0}});e.exports=i},{"../events":34,"../utils/behavior":42,"../utils/select":46,"receptor/ignore":12}],29:[function(t,e,n){"use strict";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var o=t("receptor/once"),r=t("../utils/behavior"),i=t("../events").CLICK,t=t("../config").prefix,t=".".concat(t,'-skipnav[href^="#"], .').concat(t,'-footer__return-to-top [href^="#"]');e.exports=r(a({},i,a({},t,function(){var t=encodeURI(this.getAttribute("href")),e=document.getElementById("#"===t?"main-content":t.slice(1));e&&(e.style.outline="0",e.setAttribute("tabindex",0),e.focus(),e.addEventListener("blur",o(function(){e.setAttribute("tabindex",-1)})))})))},{"../config":33,"../events":34,"../utils/behavior":42,"receptor/once":15}],30:[function(t,e,n){"use strict";function a(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],a=!0,o=!1,r=void 0;try{for(var i,c=t[Symbol.iterator]();!(a=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){o=!0,r=t}finally{try{a||null==c.return||c.return()}finally{if(o)throw r}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function p(t){var e,n;return t&&(t=(n=a(t.split(":").map(function(t){var e,t=parseInt(t,10);return Number.isNaN(t)||(e=t),e}),2))[0],n=n[1],null!=t&&null!=n&&(e=60*t+n)),e}var r=t("../utils/behavior"),i=t("../utils/select"),c=t("../config").prefix,t=t("./combo-box"),b=t.COMBO_BOX_CLASS,s=t.enhanceComboBox,c="".concat(c,"-time-picker"),v=".".concat(c),h={filter:"0?{{ hourQueryFilter }}:{{minuteQueryFilter}}.*{{ apQueryFilter }}m?",apQueryFilter:"([ap])",hourQueryFilter:"([1-9][0-2]?)",minuteQueryFilter:"[\\d]+:([0-9]{0,2})"},r=r({},{init:function(t){i(v,t).forEach(function(t){!function(t){var e=t.closest(v),n=e.querySelector("input");if(!n)throw new Error("".concat(v," is missing inner input"));var a=document.createElement("select");["id","name","required","aria-label","aria-labelledby"].forEach(function(t){var e;n.hasAttribute(t)&&(e=n.getAttribute(t),a.setAttribute(t,e),n.removeAttribute(t))});for(var o=function(t,e){return"0000".concat(t).slice(-e)},t=Math.max(0,p(e.dataset.minTime)||0),r=Math.min(1439,p(e.dataset.maxTime)||1439),i=Math.floor(Math.max(1,e.dataset.step||30)),c=t;c<=r;c+=i){var s=(d=void 0,d=(f=c)%60,f=Math.floor(f/60),{minute:d,hour24:f,hour12:f%12||12,ampm:f<12?"am":"pm"}),u=s.minute,l=s.hour24,d=s.hour12,f=s.ampm,s=document.createElement("option");s.value="".concat(o(l,2),":").concat(o(u,2)),s.text="".concat(d,":").concat(o(u,2)).concat(f),a.appendChild(s)}e.classList.add(b),Object.keys(h).forEach(function(t){e.dataset[t]=h[t]}),e.dataset.disableFiltering="true",e.appendChild(a),n.style.display="none"}(t),s(t)})},FILTER_DATASET:h});e.exports=r},{"../config":33,"../utils/behavior":42,"../utils/select":46,"./combo-box":20}],31:[function(t,e,n){"use strict";function d(t,e,n){for(var a=e.split(" "),o=0,r=a.length;o<r;o+=1)t.addEventListener(a[o],n,!1)}function f(e,t,n,a){function o(t){e.classList.remove("".concat(x,"--top")),e.classList.remove("".concat(x,"--bottom")),e.classList.remove("".concat(x,"--right")),e.classList.remove("".concat(x,"--left")),e.classList.add("".concat(x,"--").concat(t))}function r(t){o("top"),t.style.marginLeft="".concat(g,"px"),E(t)||t.classList.add(S),t.style.marginBottom="".concat(w+f+b,"px")}function i(t){o("bottom"),t.style.marginLeft="".concat(g,"px"),E(t)||t.classList.add(S),t.style.marginTop="".concat(w+d+p,"px")}function c(t){return o("right"),t.style.marginBottom="0",t.style.marginLeft="".concat(y+h,"px"),t.style.bottom="".concat((l-v)/2+f+b,"px"),0}function s(t){o("left"),t.style.marginBottom="0",t.style.marginLeft=m<h?"".concat(h-m-7,"px"):"-".concat(m-h+7,"px"),t.style.bottom="".concat((l-v)/2+f+b,"px")}e.setAttribute("aria-hidden","false"),e.classList.add("is-set");var u=t.offsetWidth,l=t.offsetHeight,d=parseInt(window.getComputedStyle(t).getPropertyValue("margin-top"),10),f=parseInt(window.getComputedStyle(t).getPropertyValue("margin-bottom"),10),p=parseInt(window.getComputedStyle(a).getPropertyValue("padding-top"),10),b=parseInt(window.getComputedStyle(a).getPropertyValue("padding-bottom"),10),v=parseInt(window.getComputedStyle(e).getPropertyValue("height"),10),h=t.offsetLeft,m=e.offsetWidth,g=u/2+h,y=u+5+2,w=l+5+2;switch(n){case"top":r(e),E(e)||i(e);break;case"bottom":i(e),E(e)||r(e);break;case"right":c(e),E(e)||(s(e),E(e)||r(e));break;case"left":s(e),E(e)||(c(e),E(e)||r(e))}setTimeout(function(){e.classList.add(A)},20)}var a=t("../utils/select"),o=t("../utils/behavior"),r=t("../config").prefix,E=t("../utils/is-in-viewport"),i=".".concat(r,"-tooltip"),p="".concat(r,"-tooltip__trigger"),b="".concat(r,"-tooltip"),x="".concat(r,"-tooltip__body"),A="is-visible",S="".concat(r,"-tooltip__body--wrap"),o=o({},{init:function(t){a(i,t).forEach(function(t){var e,n,a,o,r,i,c,a=(e=t,n="tooltip-".concat(Math.floor(9e5*Math.random())+1e5),a=e.getAttribute("title"),o=document.createElement("span"),r=document.createElement("span"),i=e.getAttribute("data-position")?e.getAttribute("data-position"):"top",c=e.getAttribute("data-classes"),e.setAttribute("aria-describedby",n),e.setAttribute("tabindex","0"),e.setAttribute("title",""),e.classList.remove(b),e.classList.add(p),e.parentNode.insertBefore(o,e),o.appendChild(e),o.classList.add(b),o.appendChild(r),c&&c.split(" ").forEach(function(t){return o.classList.add(t)}),r.classList.add(x),r.setAttribute("id",n),r.setAttribute("role","tooltip"),r.setAttribute("aria-hidden","true"),r.innerHTML=a,{tooltipBody:r,position:i,tooltipContent:a,wrapper:o}),s=a.tooltipBody,u=a.position,l=a.wrapper;a.tooltipContent&&(d(t,"mouseenter focus",function(){return f(s,t,u,l),!1}),d(t,"mouseleave blur keydown",function(){var t;return(t=s).classList.remove(A),t.classList.remove("is-set"),t.classList.remove(S),t.setAttribute("aria-hidden","true"),!1}))})}});e.exports=o},{"../config":33,"../utils/behavior":42,"../utils/is-in-viewport":44,"../utils/select":46}],32:[function(t,e,n){"use strict";var a=t("../utils/behavior"),o=t("../utils/validate-input");a=a({"keyup change":{"input[data-validation-element]":function(){o(this)}}});e.exports=a},{"../utils/behavior":42,"../utils/validate-input":50}],33:[function(t,e,n){"use strict";e.exports={prefix:"usa"}},{}],34:[function(t,e,n){"use strict";e.exports={CLICK:"click"}},{}],35:[function(t,e,n){"use strict";"function"!=typeof window.CustomEvent&&(window.CustomEvent=function(t,e){var n=e||{bubbles:!1,cancelable:!1,detail:null};return(e=document.createEvent("CustomEvent")).initCustomEvent(t,n.bubbles,n.cancelable,n.detail),e})},{}],36:[function(t,e,n){"use strict";var a=window.HTMLElement.prototype,o="hidden";o in a||Object.defineProperty(a,o,{get:function(){return this.hasAttribute(o)},set:function(t){t?this.setAttribute(o,""):this.removeAttribute(o)}})},{}],37:[function(t,e,n){"use strict";t("classlist-polyfill"),t("./element-hidden"),t("./number-is-nan"),t("./custom-event"),t("./svg4everybody")},{"./custom-event":35,"./element-hidden":36,"./number-is-nan":38,"./svg4everybody":39,"classlist-polyfill":1}],38:[function(t,e,n){"use strict";Number.isNaN=Number.isNaN||function(t){return"number"==typeof t&&t!=t}},{}],39:[function(t,e,n){"use strict";function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var o,r;r=function(){function b(t,e,n,a){if(n){var o=document.createDocumentFragment(),r=!e.hasAttribute("viewBox")&&n.getAttribute("viewBox");r&&e.setAttribute("viewBox",r);for(var i=document.importNode?document.importNode(n,!0):n.cloneNode(!0),c=document.createElementNS(e.namespaceURI||"http://www.w3.org/2000/svg","g");i.childNodes.length;)c.appendChild(i.firstChild);if(a)for(var s=0;a.attributes.length>s;s++){var u=a.attributes[s];"xlink:href"!==u.name&&"href"!==u.name&&c.setAttribute(u.name,u.value)}o.appendChild(c),t.appendChild(o)}}return function(t){var s=Object(t),t=window.top!==window.self,u="polyfill"in s?s.polyfill:/\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/.test(navigator.userAgent)||(navigator.userAgent.match(/\bEdge\/12\.(\d+)\b/)||[])[1]<10547||(navigator.userAgent.match(/\bAppleWebKit\/(\d+)\b/)||[])[1]<537||/\bEdge\/.(\d+)\b/.test(navigator.userAgent)&&t,l={},d=window.requestAnimationFrame||setTimeout,f=document.getElementsByTagName("use"),p=0;u&&function t(){if(p&&f.length-p<=0)d(t,67);else{for(var e=p=0;e<f.length;){var n,a,o=f[e],r=o.parentNode,i=function(t){for(var e=t;"svg"!==e.nodeName.toLowerCase()&&(e=e.parentNode););return e}(r),c=o.getAttribute("xlink:href")||o.getAttribute("href");!c&&s.attributeName&&(c=o.getAttribute(s.attributeName)),i&&c?u&&(!s.validate||s.validate(c,i,o)?(r.removeChild(o),n=(a=c.split("#")).shift(),c=a.join("#"),n.length?((a=l[n])||((a=l[n]=new XMLHttpRequest).open("GET",n),a.send(),a._embeds=[]),a._embeds.push({parent:r,svg:i,id:c}),function(a,o){a.onreadystatechange=function(){var n;4===a.readyState&&((n=a._cachedDocument)||((n=a._cachedDocument=document.implementation.createHTMLDocument("")).body.innerHTML=a.responseText,n.domain!==document.domain&&(n.domain=document.domain),a._cachedTarget={}),a._embeds.splice(0).map(function(t){var e=(e=a._cachedTarget[t.id])||(a._cachedTarget[t.id]=n.getElementById(t.id));b(t.parent,t.svg,e,o)}))},a.onreadystatechange()}(a,o)):b(r,i,document.getElementById(c),o)):(++e,++p)):++e}d(t,67)}}()}},(o=void 0)===o&&(o=window),"function"==typeof define&&define.amd?define([],function(){return o.svg4everybody=r()}):"object"==(void 0===e?"undefined":a(e))&&e.exports?e.exports=r():o.svg4everybody=r()},{}],40:[function(t,e,n){"use strict";var a=t("domready");window.uswdsPresent=!0,t("./polyfills");var o=t("./config"),r=t("./components"),i=t("./polyfills/svg4everybody");o.components=r,a(function(){var e=document.body;Object.keys(r).forEach(function(t){r[t].on(e)}),i()}),e.exports=o},{"./components":25,"./config":33,"./polyfills":37,"./polyfills/svg4everybody":39,domready:2}],41:[function(t,e,n){"use strict";e.exports=function(){return(0<arguments.length&&void 0!==arguments[0]?arguments[0]:document).activeElement}},{}],42:[function(t,e,n){"use strict";function a(){for(var t=arguments.length,a=new Array(t),e=0;e<t;e++)a[e]=arguments[e];return function(t){var e=this,n=0<arguments.length&&void 0!==t?t:document.body;a.forEach(function(t){"function"==typeof e[t]&&e[t].call(e,n)})}}var o=t("object-assign"),r=t("receptor/behavior");e.exports=function(t,e){return r(t,o({on:a("init","add"),off:a("teardown","remove")},e))}},{"object-assign":7,"receptor/behavior":8}],43:[function(t,e,n){"use strict";function o(t){var e=(t=a('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable]',t))[0],n=t[t.length-1];return{firstTabStop:e,lastTabStop:n,tabAhead:function(t){s()===n&&(t.preventDefault(),e.focus())},tabBack:function(t){s()===e&&(t.preventDefault(),n.focus())}}}var r=t("object-assign"),i=t("receptor").keymap,c=t("./behavior"),a=t("./select"),s=t("./active-element");e.exports=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=o(t),a=e.Esc,t=e.Escape;t&&!a&&(e.Esc=t);e=i(r({Tab:n.tabAhead,"Shift+Tab":n.tabBack},e));return c({keydown:e},{init:function(){n.firstTabStop.focus()},update:function(t){t?this.on():this.off()}})}},{"./active-element":41,"./behavior":42,"./select":46,"object-assign":7,receptor:13}],44:[function(t,e,n){"use strict";e.exports=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:window,n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:document.documentElement;return 0<=(t=t.getBoundingClientRect()).top&&0<=t.left&&t.bottom<=(e.innerHeight||n.clientHeight)&&t.right<=(e.innerWidth||n.clientWidth)}},{}],45:[function(t,e,n){"use strict";e.exports=function(){return"undefined"!=typeof navigator&&(navigator.userAgent.match(/(iPod|iPhone|iPad)/g)||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!window.MSStream}},{}],46:[function(t,e,n){"use strict";function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}e.exports=function(t,e){if("string"!=typeof t)return[];var n;e&&((n=e)&&"object"===a(n)&&1===n.nodeType)||(e=window.document);t=e.querySelectorAll(t);return Array.prototype.slice.call(t)}},{}],47:[function(t,e,n){"use strict";e.exports=function(t,e){t.setAttribute("autocapitalize","off"),t.setAttribute("autocorrect","off"),t.setAttribute("type",e?"password":"text")}},{}],48:[function(t,e,n){"use strict";var o=t("resolve-id-refs"),r=t("./toggle-field-mask"),i="aria-pressed",c="data-show-text";e.exports=function(t){var e=t.hasAttribute(i)&&"true"!==t.getAttribute(i);o(t.getAttribute("aria-controls")).forEach(function(t){return r(t,e)}),t.hasAttribute(c)||t.setAttribute(c,t.textContent);var n=t.getAttribute(c),a=t.getAttribute("data-hide-text")||n.replace(/\bShow\b/i,function(t){return"".concat("S"===t[0]?"H":"h","ide")});return t.textContent=e?n:a,t.setAttribute(i,e),e}},{"./toggle-field-mask":47,"resolve-id-refs":16}],49:[function(t,e,n){"use strict";var a="aria-expanded";e.exports=function(t,e){var n=e;"boolean"!=typeof n&&(n="false"===t.getAttribute(a)),t.setAttribute(a,n);e=t.getAttribute("aria-controls"),t=document.getElementById(e);if(!t)throw new Error('No toggle target found with id: "'.concat(e,'"'));return n?t.removeAttribute("hidden"):t.setAttribute("hidden",""),n}},{}],50:[function(t,e,n){"use strict";function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],a=!0,o=!1,r=void 0;try{for(var i,c=t[Symbol.iterator]();!(a=(i=c.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){o=!0,r=t}finally{try{a||null==c.return||c.return()}finally{if(o)throw r}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}var i=t("elem-dataset"),t=t("../config").prefix,c="".concat(t,"-checklist__item--checked");e.exports=function(a){var t=i(a),e=t.validationElement,o="#"===e.charAt(0)?document.querySelector(e):document.getElementById(e);if(!o)throw new Error('No validation element found with id: "'.concat(e,'"'));Object.entries(t).forEach(function(t){var e=r(t,2),n=e[0],t=e[1];if(n.startsWith("validate")){e=n.substr("validate".length).toLowerCase(),n=new RegExp(t),t='[data-validator="'.concat(e,'"]'),t=o.querySelector(t);if(!t)throw new Error('No validator checkbox found for: "'.concat(e,'"'));n=n.test(a.value);t.classList.toggle(c,n),t.setAttribute("aria-checked",n)}})}},{"../config":33,"elem-dataset":3}]},{},[40]);
2
2
  //# sourceMappingURL=uswds.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/classlist-polyfill/src/index.js","node_modules/domready/ready.js","node_modules/elem-dataset/dist/index.js","node_modules/element-closest/element-closest.js","node_modules/keyboardevent-key-polyfill/index.js","node_modules/lodash.debounce/index.js","node_modules/object-assign/index.js","node_modules/receptor/behavior/index.js","node_modules/receptor/compose/index.js","node_modules/receptor/delegate/index.js","node_modules/receptor/delegateAll/index.js","node_modules/receptor/ignore/index.js","node_modules/receptor/index.js","node_modules/receptor/keymap/index.js","node_modules/receptor/once/index.js","node_modules/resolve-id-refs/index.js","src/js/components/accordion.js","src/js/components/banner.js","src/js/components/character-count.js","src/js/components/combo-box.js","src/js/components/date-picker.js","src/js/components/date-range-picker.js","src/js/components/file-input.js","src/js/components/footer.js","src/js/components/index.js","src/js/components/navigation.js","src/js/components/password.js","src/js/components/search.js","src/js/components/skipnav.js","src/js/components/time-picker.js","src/js/components/tooltip.js","src/js/components/validator.js","src/js/config.js","src/js/events.js","src/js/polyfills/custom-event.js","src/js/polyfills/element-hidden.js","src/js/polyfills/index.js","src/js/polyfills/number-is-nan.js","src/js/start.js","src/js/utils/active-element.js","src/js/utils/behavior.js","src/js/utils/focus-trap.js","src/js/utils/is-in-viewport.js","src/js/utils/is-ios-device.js","src/js/utils/select.js","src/js/utils/toggle-field-mask.js","src/js/utils/toggle-form-input.js","src/js/utils/toggle.js","src/js/utils/validate-input.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","createMethod","_toggle","testElement","window","self","document","createElement","createElementNS","view","classListProp","protoProp","elemCtrProto","Element","objCtr","Object","strTrim","String","trim","this","replace","arrIndexOf","Array","indexOf","item","len","DOMEx","type","message","name","DOMException","checkTokenAndGetIndex","classList","token","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","contains","add","tokens","arguments","l","updated","remove","index","splice","toggle","force","result","method","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","undefined","number","__defineGetter__","original","DOMTokenList","prototype","definition","define","_typeof","amd","_listener","fns","doc","hack","documentElement","doScroll","domContentLoaded","loaded","readyState","addEventListener","removeEventListener","shift","fn","setTimeout","Boolean","dataset","aB","element","map","attributes","getter","value","setter","removeAttribute","j","prop","attribute","slice","charAt","toUpperCase","bind","set","ElementProto","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","elements","ownerDocument","querySelectorAll","closest","nodeType","parentNode","keyboardeventKeyPolyfill","polyfill","KeyboardEvent","proto","key","keys","which","keyCode","isArray","shiftKey","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","fromCharCode","toLowerCase","now","root","Date","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","Function","objectToString","nativeMax","Math","max","nativeMin","min","isObject","isSymbol","toNumber","other","valueOf","isBinary","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","debounced","isInvoking","cancel","clearTimeout","flush","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","getOwnPropertyNames","test2","test3","forEach","err","shouldUseNative","target","source","from","symbols","to","val","toObject","s","delegate","delegateAll","DELEGATE_PATTERN","popKey","obj","events","props","listeners","reduce","memo","handler","match","capture","passive","listener","_type","getListeners","concat","functions","some","event","compose","selectors","delegates","behavior","ignore","keymap","MODIFIERS","Alt","Control","Ctrl","Shift","hasModifiers","modifier","getEventKey","_key","wrapped","currentTarget","RE_TRIM","RE_SPLIT","str","ids","getElementById","id","querySelector","el","getAccordionButtons","accordion","select","BUTTON","filter","button","ACCORDION","toggleButton","expanded","safeExpanded","multiselectable","isElementInViewport","CLICK","PREFIX","prefix","EXPANDED","_defineProperty","preventDefault","scrollIntoView","init","show","hide","getButtons","HEADER","EXPANDED_CLASS","getCharacterCountElements","inputEl","characterCountEl","CHARACTER_COUNT","INPUT","messageEl","MESSAGE","updateCountMessage","currentLength","isOverLimit","difference","characters","guidance","newMessage","_getCharacterCountEle","maxlength","abs","MESSAGE_INVALID_CLASS","innerHTML","validationMessage","setCustomValidity","VALIDATION_MESSAGE","characterCount","input","changeElementValue","elementToChange","CustomEvent","bubbles","cancelable","detail","dispatchEvent","getComboBoxContext","comboBoxEl","COMBO_BOX","selectEl","SELECT","listEl","LIST","statusEl","STATUS","focusedOptionEl","LIST_OPTION_FOCUSED","selectedOptionEl","LIST_OPTION_SELECTED","toggleListBtnEl","TOGGLE_LIST_BUTTON","clearInputBtnEl","CLEAR_INPUT_BUTTON","isPristine","COMBO_BOX_PRISTINE_CLASS","disableFiltering","disable","_getComboBoxContext","hidden","disabled","enhanceComboBox","_comboBoxEl","enhanced","selectedOption","selectId","listId","assistiveHintID","additionalAttributes","defaultValue","placeholder","optionEl","SELECT_CLASS","hasAttribute","insertAdjacentHTML","INPUT_CLASS","CLEAR_INPUT_BUTTON_WRAPPER_CLASS","CLEAR_INPUT_BUTTON_CLASS","INPUT_BUTTON_SEPARATOR_CLASS","TOGGLE_LIST_BUTTON_WRAPPER_CLASS","TOGGLE_LIST_BUTTON_CLASS","LIST_CLASS","STATUS_CLASS","text","highlightOption","nextEl","optionBottom","_ref","skipFocus","preventScroll","_getComboBoxContext4","LIST_OPTION_FOCUSED_CLASS","offsetTop","offsetHeight","scrollTop","focus","generateDynamicRegExp","escapeRegExp","query","extras","find","m","$1","queryFilter","matcher","RegExp","displayList","selectedItemId","firstFoundId","_getComboBoxContext5","listOptionBaseId","inputValue","regex","optionId","itemToFocus","numOptions","optionHtml","option","LIST_OPTION_CLASS","tabindex","ariaSelected","LIST_OPTION_SELECTED_CLASS","noResults","hideList","_getComboBoxContext6","selectItem","listOptionEl","_getComboBoxContext7","textContent","resetSelection","_getComboBoxContext9","selectValue","handleDownFromInput","_getComboBoxContext12","nextOptionEl","LIST_OPTION","handleDownFromListOption","nextSibling","handleUpFromListOption","_getComboBoxContext14","previousSibling","listShown","COMBO_BOX_CLASS","comboBox","_behavior","_CLICK","_getComboBoxContext16","_getComboBoxContext15","_getComboBoxContext8","relatedTarget","_keydown","Escape","_getComboBoxContext11","Enter","_getComboBoxContext13","_getComboBoxContext10","completeSelection","ArrowDown","Down","ArrowUp","Up","Tab","Shift+Tab","enable","_getComboBoxContext2","processFocusableSelectors","_len","keepDateWithinMonth","dateToCheck","month","getMonth","setDate","year","date","newDate","setFullYear","today","day","getDate","getFullYear","startOfMonth","lastDayOfMonth","addDays","_date","numDays","getTime","subDays","addWeeks","numWeeks","startOfWeek","dayOfWeek","getDay","addMonths","numMonths","dateMonth","setMonth","subMonths","addYears","numYears","subYears","setYear","isSameYear","dateA","dateB","isSameMonth","isSameDay","keepDateBetweenMinAndMax","minDate","maxDate","isDateWithinMinAndMax","isDatesYearOutsideMinOrMax","parseDateString","dateString","_dateString$split2","monthStr","dayStr","yearStr","_dateString$split4","currentYear","parsed","lastDayOfTheMonth","adjustDate","INTERNAL_DATE_FORMAT","DEFAULT_EXTERNAL_DATE_FORMAT","_slicedToArray","Number","isNaN","pow","formatDate","padZeros","dateFormat","listToGridHtml","htmlArray","rowSize","grid","row","getDatePickerContext","datePickerEl","DATE_PICKER","internalInputEl","DATE_PICKER_INTERNAL_INPUT","externalInputEl","DATE_PICKER_EXTERNAL_INPUT","calendarEl","DATE_PICKER_CALENDAR","toggleBtnEl","DATE_PICKER_BUTTON","DATE_PICKER_STATUS","firstYearChunkEl","CALENDAR_YEAR","inputDate","selectedDate","calendarDate","rangeDate","defaultDate","_getDatePickerContext","isDateInputInvalid","dateStringParts","_dateStringParts$map2","checkDate","_getDatePickerContext3","isInvalid","validateDateInput","setCalendarValue","formattedDate","_getDatePickerContext6","parsedDate","renderCalendar","_dateToDisplay","_getDatePickerContext7","todaysDate","dateToDisplay","calendarWasHidden","focusedDate","focusedMonth","focusedYear","prevMonth","nextMonth","currentFormattedDate","firstOfMonth","prevButtonsDisabled","nextButtonsDisabled","rangeConclusionDate","rangeStartDate","rangeEndDate","withinRangeStartDate","withinRangeEndDate","monthLabel","MONTH_LABELS","days","dateToRender","CALENDAR_DATE_CLASS","isDisabled","isSelected","CALENDAR_DATE_PREVIOUS_MONTH_CLASS","CALENDAR_DATE_CURRENT_MONTH_CLASS","CALENDAR_DATE_NEXT_MONTH_CLASS","CALENDAR_DATE_SELECTED_CLASS","CALENDAR_DATE_TODAY_CLASS","CALENDAR_DATE_RANGE_DATE_CLASS","CALENDAR_DATE_RANGE_DATE_START_CLASS","CALENDAR_DATE_RANGE_DATE_END_CLASS","CALENDAR_DATE_WITHIN_RANGE_CLASS","CALENDAR_DATE_FOCUSED_CLASS","DAY_OF_WEEK_LABELS","generateDateHtml","datesHtml","newCalendar","cloneNode","style","top","CALENDAR_DATE_PICKER_CLASS","CALENDAR_ROW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_CELL_CENTER_ITEMS_CLASS","CALENDAR_PREVIOUS_YEAR_CLASS","CALENDAR_PREVIOUS_MONTH_CLASS","CALENDAR_MONTH_LABEL_CLASS","CALENDAR_MONTH_SELECTION_CLASS","CALENDAR_YEAR_SELECTION_CLASS","CALENDAR_NEXT_MONTH_CLASS","CALENDAR_NEXT_YEAR_CLASS","CALENDAR_TABLE_CLASS","CALENDAR_DAY_OF_WEEK_CLASS","replaceChild","DATE_PICKER_ACTIVE_CLASS","statuses","hideCalendar","_getDatePickerContext12","updateCalendarIfVisible","_getDatePickerContext15","displayMonthSelection","monthToDisplay","_getDatePickerContext16","selectedMonth","months","monthToCheck","CALENDAR_MONTH_CLASS","CALENDAR_MONTH_FOCUSED_CLASS","CALENDAR_MONTH_SELECTED_CLASS","monthsHtml","CALENDAR_MONTH_PICKER_CLASS","displayYearSelection","yearToDisplay","_getDatePickerContext18","selectedYear","yearToChunk","prevYearChunkDisabled","nextYearChunkDisabled","years","yearIndex","CALENDAR_YEAR_CLASS","CALENDAR_YEAR_FOCUSED_CLASS","CALENDAR_YEAR_SELECTED_CLASS","yearsHtml","CALENDAR_YEAR_PICKER_CLASS","CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS","CALENDAR_NEXT_YEAR_CHUNK_CLASS","handleEscapeFromCalendar","_getDatePickerContext22","adjustCalendar","adjustDateFn","_getDatePickerContext23","cappedDate","CALENDAR_DATE_FOCUSED","adjustMonthSelectionScreen","adjustMonthFn","monthEl","_getDatePickerContext24","currentDate","adjustedMonth","CALENDAR_MONTH_FOCUSED","adjustYearSelectionScreen","adjustYearFn","yearEl","_getDatePickerContext25","adjustedYear","CALENDAR_YEAR_FOCUSED","tabHandler","focusable","getFocusableContext","focusableElements","lastTabIndex","firstTabStop","lastTabStop","focusIndex","activeElement","isNotFound","isFirstTab","isLastTab","tabAhead","_getFocusableContext","tabBack","_getFocusableContext2","_datePickerEvents$mou","isIosDevice","DATE_PICKER_CLASS","DATE_PICKER_WRAPPER_CLASS","DATE_PICKER_INITIALIZED_CLASS","DATE_PICKER_INTERNAL_INPUT_CLASS","DATE_PICKER_EXTERNAL_INPUT_CLASS","DATE_PICKER_BUTTON_CLASS","DATE_PICKER_CALENDAR_CLASS","DATE_PICKER_STATUS_CLASS","CALENDAR_DATE","CALENDAR_DATE_CURRENT_MONTH","CALENDAR_PREVIOUS_YEAR","CALENDAR_PREVIOUS_MONTH","CALENDAR_NEXT_YEAR","CALENDAR_NEXT_MONTH","CALENDAR_YEAR_SELECTION","CALENDAR_MONTH_SELECTION","CALENDAR_MONTH","CALENDAR_PREVIOUS_YEAR_CHUNK","CALENDAR_NEXT_YEAR_CHUNK","CALENDAR_DATE_PICKER","CALENDAR_MONTH_PICKER","CALENDAR_YEAR_PICKER","DATE_PICKER_FOCUSABLE","MONTH_PICKER_FOCUSABLE","YEAR_PICKER_FOCUSABLE","handleUpFromDate","handleDownFromDate","handleLeftFromDate","handleRightFromDate","handleHomeFromDate","handleEndFromDate","handlePageDownFromDate","handlePageUpFromDate","handleShiftPageDownFromDate","handleShiftPageUpFromDate","handleUpFromMonth","handleDownFromMonth","handleLeftFromMonth","handleRightFromMonth","handleHomeFromMonth","handleEndFromMonth","handlePageDownFromMonth","handlePageUpFromMonth","handleUpFromYear","handleDownFromYear","handleLeftFromYear","handleRightFromYear","handleHomeFromYear","handleEndFromYear","handlePageUpFromYear","handlePageDownFromYear","datePickerTabEventHandler","monthPickerTabEventHandler","yearPickerTabEventHandler","datePickerEvents","_datePickerEvents","_getDatePickerContext14","calendarDateEl","_getDatePickerContext13","_getDatePickerContext17","_getDatePickerContext21","_buttonEl","_getDatePickerContext9","nextToFocus","_getDatePickerContext10","_getDatePickerContext8","_getDatePickerContext11","_getDatePickerContext19","_getDatePickerContext20","keydown","keydownKeyCode","Left","ArrowLeft","Right","ArrowRight","Home","End","PageDown","PageUp","Shift+PageDown","Shift+PageUp","keyMap","_focusout","_getDatePickerContext5","newValue","mousemove","dateEl","currentCalendarDate","hoverDate","focusMonth","focusYear","datePicker","calendarWrapper","tabIndex","appendChild","required","enhanceDatePicker","_getDatePickerContext2","getDateRangePickerContext","dateRangePickerEl","DATE_RANGE_PICKER","rangeStartEl","DATE_RANGE_PICKER_RANGE_START","rangeEndEl","DATE_RANGE_PICKER_RANGE_END","handleRangeStartUpdate","_getDateRangePickerCo","updatedDate","handleRangeEndUpdate","_getDateRangePickerCo2","DATE_RANGE_PICKER_CLASS","DATE_RANGE_PICKER_RANGE_START_CLASS","DATE_RANGE_PICKER_RANGE_END_CLASS","dateRangePicker","input change","_inputChange","_select2","rangeStart","rangeEnd","enhanceDateRangePicker","makeSafeForID","charCodeAt","removeOldPreviews","dropTarget","instructions","filePreviews","PREVIEW_CLASS","currentPreviewHeading","PREVIEW_HEADING_CLASS","currentErrorMessage","ACCEPTED_FILE_MESSAGE_CLASS","outerHTML","INVALID_FILE_CLASS","HIDDEN_CLASS","node","removeChild","DROPZONE_CLASS","DROPZONE","TARGET_CLASS","BOX_CLASS","INSTRUCTIONS_CLASS","DISABLED_CLASS","CHOOSE_CLASS","DRAG_TEXT_CLASS","DRAG_CLASS","LOADING_CLASS","GENERIC_PREVIEW_CLASS_NAME","GENERIC_PREVIEW_CLASS","PDF_PREVIEW_CLASS","WORD_PREVIEW_CLASS","VIDEO_PREVIEW_CLASS","EXCEL_PREVIEW_CLASS","SPACER_GIF","fileInput","fileInputEl","acceptsMultiple","fileInputParent","box","_buildFileInput","insertBefore","navigator","userAgent","acceptedFiles","errorMessage","allFilesAllowed","dataTransfer","files","file","stopPropagation","preventInvalidFiles","onchange","fileNames","filePreviewsHeading","reader","FileReader","fileName","onloadstart","imageId","previewImage","onloadend","src","readAsDataURL","_loop","handleChange","lastInnerWidth","debounce","HIDDEN","SCOPE","NAV","COLLAPSIBLE","resize","innerWidth","list","collapseEl","HIDE_MAX_WIDTH","DEBOUNCE_RATE","teardown","banner","footer","navigation","password","search","skipnav","tooltip","validator","timePicker","isActive","body","ACTIVE_CLASS","toggleNav","active","safeActive","TOGGLES","focusTrap","update","closeButton","CLOSE_BUTTON","menuButton","OPENERS","closer","getBoundingClientRect","width","onMenuClose","hideActiveNavDropdown","navActive","FocusTrap","NAV_LINKS","NAV_CONTROL","OVERLAY","CLOSERS","acc","btn","trapContainer","toggleFormInput","LINK","lastButton","FORM","toggleSearch","context","form","once","outline","parseTimeString","timeStr","minutes","_timeStr$split$map2","hours","mins","TIME_PICKER_CLASS","TIME_PICKER","FILTER_DATASET","apQueryFilter","hourQueryFilter","minuteQueryFilter","timePickerEl","initialInputEl","minute","hour24","minTime","maxTime","step","floor","_getTimeContext","hour12","ampm","display","transformTimePicker","addListenerMulti","eventNames","iLen","showToolTip","tooltipBody","tooltipTrigger","position","wrapper","setPositionClass","setPos","TOOLTIP_BODY_CLASS","positionTop","marginLeft","adjustHorizontalCenter","ADJUST_WIDTH_CLASS","marginBottom","adjustToEdgeY","offsetForBottomMargin","offsetForBottomPadding","positionBottom","marginTop","offsetForTopMargin","offsetForTopPadding","positionRight","adjustToEdgeX","leftOffset","bottom","tooltipHeight","offsetForTooltipBodyHeight","positionLeft","toolTipBodyWidth","tooltipWidth","offsetWidth","getComputedStyle","getPropertyValue","offsetLeft","VISIBLE_CLASS","TOOLTIP","TOOLTIP_TRIGGER_CLASS","TOOLTIP_CLASS","tooltipID","tooltipContent","additionalClasses","_setUpAttributes","random","classname","validate","keyup change","input[data-validation-element]","_params","params","evt","createEvent","initCustomEvent","elproto","HTMLElement","domready","uswds","components","on","sequence","seq","_this","Behavior","off","additionalKeyBindings","tabEventHandler","Esc","keyMappings","win","docEl","rect","left","innerHeight","clientHeight","right","clientWidth","platform","maxTouchPoints","MSStream","selection","field","mask","resolveIdRefs","toggleFieldMask","PRESSED","SHOW_ATTR","pressed","showText","hideText","controls","CHECKED_CLASS","data","validationElement","checkList","entries","_ref2","startsWith","validatorName","substr","validatorPattern","validatorSelector","validatorCheckbox","checked"],"mappings":"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","file":"uswds.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(window.self));\n\n}\n\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n","'use strict';\n\nfunction useNative() {\n var elem = document.createElement('div');\n elem.setAttribute('data-a-b', 'c');\n return Boolean(elem.dataset && elem.dataset.aB === 'c');\n}\n\nfunction nativeDataset(element) {\n return element.dataset;\n}\n\nmodule.exports = useNative() ? nativeDataset : function (element) {\n var map = {};\n var attributes = element.attributes;\n\n function getter() {\n return this.value;\n }\n\n function setter(name, value) {\n if (typeof value === 'undefined') {\n this.removeAttribute(name);\n } else {\n this.setAttribute(name, value);\n }\n }\n\n for (var i = 0, j = attributes.length; i < j; i++) {\n var attribute = attributes[i];\n\n if (attribute) {\n var name = attribute.name;\n\n if (name.indexOf('data-') === 0) {\n var prop = name.slice(5).replace(/-./g, function (u) {\n return u.charAt(1).toUpperCase();\n });\n var value = attribute.value;\n Object.defineProperty(map, prop, {\n enumerable: true,\n get: getter.bind({\n value: value || ''\n }),\n set: setter.bind(element, name)\n });\n }\n }\n }\n\n return map;\n};\n\n","// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n","/* global define, KeyboardEvent, module */\n\n(function () {\n\n var keyboardeventKeyPolyfill = {\n polyfill: polyfill,\n keys: {\n 3: 'Cancel',\n 6: 'Help',\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 28: 'Convert',\n 29: 'NonConvert',\n 30: 'Accept',\n 31: 'ModeChange',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 41: 'Select',\n 42: 'Print',\n 43: 'Execute',\n 44: 'PrintScreen',\n 45: 'Insert',\n 46: 'Delete',\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 91: 'OS',\n 93: 'ContextMenu',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 181: 'VolumeMute',\n 182: 'VolumeDown',\n 183: 'VolumeUp',\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: [\"'\", '\"'],\n 224: 'Meta',\n 225: 'AltGraph',\n 246: 'Attn',\n 247: 'CrSel',\n 248: 'ExSel',\n 249: 'EraseEof',\n 250: 'Play',\n 251: 'ZoomOut'\n }\n };\n\n // Function keys (F1-24).\n var i;\n for (i = 1; i < 25; i++) {\n keyboardeventKeyPolyfill.keys[111 + i] = 'F' + i;\n }\n\n // Printable ASCII characters.\n var letter = '';\n for (i = 65; i < 91; i++) {\n letter = String.fromCharCode(i);\n keyboardeventKeyPolyfill.keys[i] = [letter.toLowerCase(), letter.toUpperCase()];\n }\n\n function polyfill () {\n if (!('KeyboardEvent' in window) ||\n 'key' in KeyboardEvent.prototype) {\n return false;\n }\n\n // Polyfill `key` on `KeyboardEvent`.\n var proto = {\n get: function (x) {\n var key = keyboardeventKeyPolyfill.keys[this.which || this.keyCode];\n\n if (Array.isArray(key)) {\n key = key[+this.shiftKey];\n }\n\n return key;\n }\n };\n Object.defineProperty(KeyboardEvent.prototype, 'key', proto);\n return proto;\n }\n\n if (typeof define === 'function' && define.amd) {\n define('keyboardevent-key-polyfill', keyboardeventKeyPolyfill);\n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n module.exports = keyboardeventKeyPolyfill;\n } else if (window) {\n window.keyboardeventKeyPolyfill = keyboardeventKeyPolyfill;\n }\n\n})();\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const assign = require('object-assign');\nconst delegate = require('../delegate');\nconst delegateAll = require('../delegateAll');\n\nconst DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nconst SPACE = ' ';\n\nconst getListeners = function(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if (typeof handler === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'object')\n ? delegateAll(handler)\n : selector\n ? delegate(selector, handler)\n : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function(_type) {\n return assign({type: _type}, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n const listeners = Object.keys(events)\n .reduce(function(memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function(listener) {\n element.addEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function(listener) {\n element.removeEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n }\n }, props);\n};\n","module.exports = function compose(functions) {\n return function(e) {\n return functions.some(function(fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n","// polyfill Element.prototype.closest\nrequire('element-closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = event.target.closest(selector);\n if (target) {\n return fn.call(target, event);\n }\n }\n};\n","const delegate = require('../delegate');\nconst compose = require('../compose');\n\nconst SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n const keys = Object.keys(selectors)\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n const delegates = keys.reduce(function(memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n","module.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n","module.exports = {\n behavior: require('./behavior'),\n delegate: require('./delegate'),\n delegateAll: require('./delegateAll'),\n ignore: require('./ignore'),\n keymap: require('./keymap'),\n};\n","require('keyboardevent-key-polyfill');\n\n// these are the only relevant modifiers supported on all platforms,\n// according to MDN:\n// <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState>\nconst MODIFIERS = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Ctrl': 'ctrlKey',\n 'Shift': 'shiftKey'\n};\n\nconst MODIFIER_SEPARATOR = '+';\n\nconst getEventKey = function(event, hasModifiers) {\n var key = event.key;\n if (hasModifiers) {\n for (var modifier in MODIFIERS) {\n if (event[MODIFIERS[modifier]] === true) {\n key = [modifier, key].join(MODIFIER_SEPARATOR);\n }\n }\n }\n return key;\n};\n\nmodule.exports = function keymap(keys) {\n const hasModifiers = Object.keys(keys).some(function(key) {\n return key.indexOf(MODIFIER_SEPARATOR) > -1;\n });\n return function(event) {\n var key = getEventKey(event, hasModifiers);\n return [key, key.toLowerCase()]\n .reduce(function(result, _key) {\n if (_key in keys) {\n result = keys[key].call(this, event);\n }\n return result;\n }, undefined);\n };\n};\n\nmodule.exports.MODIFIERS = MODIFIERS;\n","module.exports = function once(listener, options) {\n var wrapped = function wrappedOnce(e) {\n e.currentTarget.removeEventListener(e.type, wrapped, options);\n return listener.call(this, e);\n };\n return wrapped;\n};\n\n","'use strict';\n\nvar RE_TRIM = /(^\\s+)|(\\s+$)/g;\nvar RE_SPLIT = /\\s+/;\n\nvar trim = String.prototype.trim\n ? function(str) { return str.trim(); }\n : function(str) { return str.replace(RE_TRIM, ''); };\n\nvar queryById = function(id) {\n return this.querySelector('[id=\"' + id.replace(/\"/g, '\\\\\"') + '\"]');\n};\n\nmodule.exports = function resolveIds(ids, doc) {\n if (typeof ids !== 'string') {\n throw new Error('Expected a string but got ' + (typeof ids));\n }\n\n if (!doc) {\n doc = window.document;\n }\n\n var getElementById = doc.getElementById\n ? doc.getElementById.bind(doc)\n : queryById.bind(doc);\n\n ids = trim(ids).split(RE_SPLIT);\n\n // XXX we can short-circuit here because trimming and splitting a\n // string of just whitespace produces an array containing a single,\n // empty string\n if (ids.length === 1 && ids[0] === '') {\n return [];\n }\n\n return ids\n .map(function(id) {\n var el = getElementById(id);\n if (!el) {\n throw new Error('no element with id: \"' + id + '\"');\n }\n return el;\n });\n};\n","const select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst toggle = require(\"../utils/toggle\");\nconst isElementInViewport = require(\"../utils/is-in-viewport\");\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst ACCORDION = `.${PREFIX}-accordion, .${PREFIX}-accordion--bordered`;\nconst BUTTON = `.${PREFIX}-accordion__button[aria-controls]`;\nconst EXPANDED = \"aria-expanded\";\nconst MULTISELECTABLE = \"aria-multiselectable\";\n\n/**\n * Get an Array of button elements belonging directly to the given\n * accordion element.\n * @param {HTMLElement} accordion\n * @return {array<HTMLButtonElement>}\n */\nconst getAccordionButtons = (accordion) => {\n const buttons = select(BUTTON, accordion);\n\n return buttons.filter((button) => button.closest(ACCORDION) === accordion);\n};\n\n/**\n * Toggle a button's \"pressed\" state, optionally providing a target\n * state.\n *\n * @param {HTMLButtonElement} button\n * @param {boolean?} expanded If no state is provided, the current\n * state will be toggled (from false to true, and vice-versa).\n * @return {boolean} the resulting state\n */\nconst toggleButton = (button, expanded) => {\n const accordion = button.closest(ACCORDION);\n let safeExpanded = expanded;\n\n if (!accordion) {\n throw new Error(`${BUTTON} is missing outer ${ACCORDION}`);\n }\n\n safeExpanded = toggle(button, expanded);\n\n // XXX multiselectable is opt-in, to preserve legacy behavior\n const multiselectable = accordion.getAttribute(MULTISELECTABLE) === \"true\";\n\n if (safeExpanded && !multiselectable) {\n getAccordionButtons(accordion).forEach((other) => {\n if (other !== button) {\n toggle(other, false);\n }\n });\n }\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} true\n */\nconst showButton = (button) => toggleButton(button, true);\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} false\n */\nconst hideButton = (button) => toggleButton(button, false);\n\nconst accordion = behavior(\n {\n [CLICK]: {\n [BUTTON](event) {\n event.preventDefault();\n\n toggleButton(this);\n\n if (this.getAttribute(EXPANDED) === \"true\") {\n // We were just expanded, but if another accordion was also just\n // collapsed, we may no longer be in the viewport. This ensures\n // that we are still visible, so the user isn't confused.\n if (!isElementInViewport(this)) this.scrollIntoView();\n }\n },\n },\n },\n {\n init(root) {\n select(BUTTON, root).forEach((button) => {\n const expanded = button.getAttribute(EXPANDED) === \"true\";\n toggleButton(button, expanded);\n });\n },\n ACCORDION,\n BUTTON,\n show: showButton,\n hide: hideButton,\n toggle: toggleButton,\n getButtons: getAccordionButtons,\n }\n);\n\nmodule.exports = accordion;\n","const behavior = require(\"../utils/behavior\");\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst HEADER = `.${PREFIX}-banner__header`;\nconst EXPANDED_CLASS = `${PREFIX}-banner__header--expanded`;\n\nconst toggleBanner = function toggleEl(event) {\n event.preventDefault();\n this.closest(HEADER).classList.toggle(EXPANDED_CLASS);\n};\n\nmodule.exports = behavior({\n [CLICK]: {\n [`${HEADER} [aria-controls]`]: toggleBanner,\n },\n});\n","const select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst CHARACTER_COUNT = `.${PREFIX}-character-count`;\nconst INPUT = `.${PREFIX}-character-count__field`;\nconst MESSAGE = `.${PREFIX}-character-count__message`;\nconst VALIDATION_MESSAGE = \"The content is too long.\";\nconst MESSAGE_INVALID_CLASS = `${PREFIX}-character-count__message--invalid`;\n\n/**\n * The elements within the character count.\n * @typedef {Object} CharacterCountElements\n * @property {HTMLDivElement} characterCountEl\n * @property {HTMLSpanElement} messageEl\n */\n\n/**\n * Returns the root and message element\n * for an character count input\n *\n * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element\n * @returns {CharacterCountElements} elements The root and message element.\n */\nconst getCharacterCountElements = (inputEl) => {\n const characterCountEl = inputEl.closest(CHARACTER_COUNT);\n\n if (!characterCountEl) {\n throw new Error(`${INPUT} is missing outer ${CHARACTER_COUNT}`);\n }\n\n const messageEl = characterCountEl.querySelector(MESSAGE);\n\n if (!messageEl) {\n throw new Error(`${CHARACTER_COUNT} is missing inner ${MESSAGE}`);\n }\n\n return { characterCountEl, messageEl };\n};\n\n/**\n * Update the character count component\n *\n * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element\n */\nconst updateCountMessage = (inputEl) => {\n const { characterCountEl, messageEl } = getCharacterCountElements(inputEl);\n\n const maxlength = parseInt(\n characterCountEl.getAttribute(\"data-maxlength\"),\n 10\n );\n\n if (!maxlength) return;\n\n let newMessage = \"\";\n const currentLength = inputEl.value.length;\n const isOverLimit = currentLength && currentLength > maxlength;\n\n if (currentLength === 0) {\n newMessage = `${maxlength} characters allowed`;\n } else {\n const difference = Math.abs(maxlength - currentLength);\n const characters = `character${difference === 1 ? \"\" : \"s\"}`;\n const guidance = isOverLimit ? \"over limit\" : \"left\";\n\n newMessage = `${difference} ${characters} ${guidance}`;\n }\n\n messageEl.classList.toggle(MESSAGE_INVALID_CLASS, isOverLimit);\n messageEl.innerHTML = newMessage;\n\n if (isOverLimit && !inputEl.validationMessage) {\n inputEl.setCustomValidity(VALIDATION_MESSAGE);\n }\n\n if (!isOverLimit && inputEl.validationMessage === VALIDATION_MESSAGE) {\n inputEl.setCustomValidity(\"\");\n }\n};\n\n/**\n * Setup the character count component\n *\n * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element\n */\nconst setupAttributes = (inputEl) => {\n const { characterCountEl } = getCharacterCountElements(inputEl);\n\n const maxlength = inputEl.getAttribute(\"maxlength\");\n\n if (!maxlength) return;\n\n inputEl.removeAttribute(\"maxlength\");\n characterCountEl.setAttribute(\"data-maxlength\", maxlength);\n};\n\nconst characterCount = behavior(\n {\n input: {\n [INPUT]() {\n updateCountMessage(this);\n },\n },\n },\n {\n init(root) {\n select(INPUT, root).forEach((input) => {\n setupAttributes(input);\n updateCountMessage(input);\n });\n },\n MESSAGE_INVALID_CLASS,\n VALIDATION_MESSAGE,\n }\n);\n\nmodule.exports = characterCount;\n","const keymap = require(\"receptor/keymap\");\nconst select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst { CLICK } = require(\"../events\");\n\nconst COMBO_BOX_CLASS = `${PREFIX}-combo-box`;\nconst COMBO_BOX_PRISTINE_CLASS = `${COMBO_BOX_CLASS}--pristine`;\nconst SELECT_CLASS = `${COMBO_BOX_CLASS}__select`;\nconst INPUT_CLASS = `${COMBO_BOX_CLASS}__input`;\nconst CLEAR_INPUT_BUTTON_CLASS = `${COMBO_BOX_CLASS}__clear-input`;\nconst CLEAR_INPUT_BUTTON_WRAPPER_CLASS = `${CLEAR_INPUT_BUTTON_CLASS}__wrapper`;\nconst INPUT_BUTTON_SEPARATOR_CLASS = `${COMBO_BOX_CLASS}__input-button-separator`;\nconst TOGGLE_LIST_BUTTON_CLASS = `${COMBO_BOX_CLASS}__toggle-list`;\nconst TOGGLE_LIST_BUTTON_WRAPPER_CLASS = `${TOGGLE_LIST_BUTTON_CLASS}__wrapper`;\nconst LIST_CLASS = `${COMBO_BOX_CLASS}__list`;\nconst LIST_OPTION_CLASS = `${COMBO_BOX_CLASS}__list-option`;\nconst LIST_OPTION_FOCUSED_CLASS = `${LIST_OPTION_CLASS}--focused`;\nconst LIST_OPTION_SELECTED_CLASS = `${LIST_OPTION_CLASS}--selected`;\nconst STATUS_CLASS = `${COMBO_BOX_CLASS}__status`;\n\nconst COMBO_BOX = `.${COMBO_BOX_CLASS}`;\nconst SELECT = `.${SELECT_CLASS}`;\nconst INPUT = `.${INPUT_CLASS}`;\nconst CLEAR_INPUT_BUTTON = `.${CLEAR_INPUT_BUTTON_CLASS}`;\nconst TOGGLE_LIST_BUTTON = `.${TOGGLE_LIST_BUTTON_CLASS}`;\nconst LIST = `.${LIST_CLASS}`;\nconst LIST_OPTION = `.${LIST_OPTION_CLASS}`;\nconst LIST_OPTION_FOCUSED = `.${LIST_OPTION_FOCUSED_CLASS}`;\nconst LIST_OPTION_SELECTED = `.${LIST_OPTION_SELECTED_CLASS}`;\nconst STATUS = `.${STATUS_CLASS}`;\n\nconst DEFAULT_FILTER = \".*{{query}}.*\";\n\nconst noop = () => {};\n\n/**\n * set the value of the element and dispatch a change event\n *\n * @param {HTMLInputElement|HTMLSelectElement} el The element to update\n * @param {string} value The new value of the element\n */\nconst changeElementValue = (el, value = \"\") => {\n const elementToChange = el;\n elementToChange.value = value;\n\n const event = new CustomEvent(\"change\", {\n bubbles: true,\n cancelable: true,\n detail: { value },\n });\n elementToChange.dispatchEvent(event);\n};\n\n/**\n * The elements within the combo box.\n * @typedef {Object} ComboBoxContext\n * @property {HTMLElement} comboBoxEl\n * @property {HTMLSelectElement} selectEl\n * @property {HTMLInputElement} inputEl\n * @property {HTMLUListElement} listEl\n * @property {HTMLDivElement} statusEl\n * @property {HTMLLIElement} focusedOptionEl\n * @property {HTMLLIElement} selectedOptionEl\n * @property {HTMLButtonElement} toggleListBtnEl\n * @property {HTMLButtonElement} clearInputBtnEl\n * @property {boolean} isPristine\n * @property {boolean} disableFiltering\n */\n\n/**\n * Get an object of elements belonging directly to the given\n * combo box component.\n *\n * @param {HTMLElement} el the element within the combo box\n * @returns {ComboBoxContext} elements\n */\nconst getComboBoxContext = (el) => {\n const comboBoxEl = el.closest(COMBO_BOX);\n\n if (!comboBoxEl) {\n throw new Error(`Element is missing outer ${COMBO_BOX}`);\n }\n\n const selectEl = comboBoxEl.querySelector(SELECT);\n const inputEl = comboBoxEl.querySelector(INPUT);\n const listEl = comboBoxEl.querySelector(LIST);\n const statusEl = comboBoxEl.querySelector(STATUS);\n const focusedOptionEl = comboBoxEl.querySelector(LIST_OPTION_FOCUSED);\n const selectedOptionEl = comboBoxEl.querySelector(LIST_OPTION_SELECTED);\n const toggleListBtnEl = comboBoxEl.querySelector(TOGGLE_LIST_BUTTON);\n const clearInputBtnEl = comboBoxEl.querySelector(CLEAR_INPUT_BUTTON);\n\n const isPristine = comboBoxEl.classList.contains(COMBO_BOX_PRISTINE_CLASS);\n const disableFiltering = comboBoxEl.dataset.disableFiltering === \"true\";\n\n return {\n comboBoxEl,\n selectEl,\n inputEl,\n listEl,\n statusEl,\n focusedOptionEl,\n selectedOptionEl,\n toggleListBtnEl,\n clearInputBtnEl,\n isPristine,\n disableFiltering,\n };\n};\n\n/**\n * Disable the combo-box component\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst disable = (el) => {\n const { inputEl, toggleListBtnEl, clearInputBtnEl } = getComboBoxContext(el);\n\n clearInputBtnEl.hidden = true;\n clearInputBtnEl.disabled = true;\n toggleListBtnEl.disabled = true;\n inputEl.disabled = true;\n};\n\n/**\n * Enable the combo-box component\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst enable = (el) => {\n const { inputEl, toggleListBtnEl, clearInputBtnEl } = getComboBoxContext(el);\n\n clearInputBtnEl.hidden = false;\n clearInputBtnEl.disabled = false;\n toggleListBtnEl.disabled = false;\n inputEl.disabled = false;\n};\n\n/**\n * Enhance a select element into a combo box component.\n *\n * @param {HTMLElement} _comboBoxEl The initial element of the combo box component\n */\nconst enhanceComboBox = (_comboBoxEl) => {\n const comboBoxEl = _comboBoxEl.closest(COMBO_BOX);\n\n if (comboBoxEl.dataset.enhanced) return;\n\n const selectEl = comboBoxEl.querySelector(\"select\");\n\n if (!selectEl) {\n throw new Error(`${COMBO_BOX} is missing inner select`);\n }\n\n const selectId = selectEl.id;\n const listId = `${selectId}--list`;\n const assistiveHintID = `${selectId}--assistiveHint`;\n const additionalAttributes = [];\n const defaultValue = comboBoxEl.dataset.defaultValue;\n const placeholder = comboBoxEl.dataset.placeholder;\n let selectedOption;\n\n if (placeholder) {\n additionalAttributes.push(`placeholder=\"${placeholder}\"`);\n }\n\n if (defaultValue) {\n for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n const optionEl = selectEl.options[i];\n\n if (optionEl.value === defaultValue) {\n selectedOption = optionEl;\n break;\n }\n }\n }\n\n selectEl.setAttribute(\"aria-hidden\", \"true\");\n selectEl.setAttribute(\"tabindex\", \"-1\");\n selectEl.classList.add(\"usa-sr-only\", SELECT_CLASS);\n selectEl.id = \"\";\n selectEl.value = \"\";\n\n [\"required\", \"aria-label\", \"aria-labelledby\"].forEach((name) => {\n if (selectEl.hasAttribute(name)) {\n const value = selectEl.getAttribute(name);\n additionalAttributes.push(`${name}=\"${value}\"`);\n selectEl.removeAttribute(name);\n }\n });\n\n comboBoxEl.insertAdjacentHTML(\n \"beforeend\",\n [\n `<input\n aria-owns=\"${listId}\"\n aria-autocomplete=\"list\"\n aria-describedby=\"${assistiveHintID}\"\n aria-expanded=\"false\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n id=\"${selectId}\"\n class=\"${INPUT_CLASS}\"\n type=\"text\"\n role=\"combobox\"\n ${additionalAttributes.join(\" \")}\n >`,\n `<span class=\"${CLEAR_INPUT_BUTTON_WRAPPER_CLASS}\" tabindex=\"-1\">\n <button type=\"button\" class=\"${CLEAR_INPUT_BUTTON_CLASS}\" aria-label=\"Clear the select contents\">&nbsp;</button>\n </span>`,\n `<span class=\"${INPUT_BUTTON_SEPARATOR_CLASS}\">&nbsp;</span>`,\n `<span class=\"${TOGGLE_LIST_BUTTON_WRAPPER_CLASS}\" tabindex=\"-1\">\n <button type=\"button\" tabindex=\"-1\" class=\"${TOGGLE_LIST_BUTTON_CLASS}\" aria-label=\"Toggle the dropdown list\">&nbsp;</button>\n </span>`,\n `<ul\n tabindex=\"-1\"\n id=\"${listId}\"\n class=\"${LIST_CLASS}\"\n role=\"listbox\"\n hidden>\n </ul>`,\n `<div class=\"${STATUS_CLASS} usa-sr-only\" role=\"status\"></div>`,\n `<span id=\"${assistiveHintID}\" class=\"usa-sr-only\">\n When autocomplete results are available use up and down arrows to review and enter to select.\n Touch device users, explore by touch or with swipe gestures.\n </span>`,\n ].join(\"\")\n );\n\n if (selectedOption) {\n const { inputEl } = getComboBoxContext(comboBoxEl);\n changeElementValue(selectEl, selectedOption.value);\n changeElementValue(inputEl, selectedOption.text);\n comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n }\n\n if (selectEl.disabled) {\n disable(comboBoxEl);\n selectEl.disabled = false;\n }\n\n comboBoxEl.dataset.enhanced = \"true\";\n};\n\n/**\n * Manage the focused element within the list options when\n * navigating via keyboard.\n *\n * @param {HTMLElement} el An anchor element within the combo box component\n * @param {HTMLElement} nextEl An element within the combo box component\n * @param {Object} options options\n * @param {boolean} options.skipFocus skip focus of highlighted item\n * @param {boolean} options.preventScroll should skip procedure to scroll to element\n */\nconst highlightOption = (el, nextEl, { skipFocus, preventScroll } = {}) => {\n const { inputEl, listEl, focusedOptionEl } = getComboBoxContext(el);\n\n if (focusedOptionEl) {\n focusedOptionEl.classList.remove(LIST_OPTION_FOCUSED_CLASS);\n focusedOptionEl.setAttribute(\"tabIndex\", \"-1\");\n }\n\n if (nextEl) {\n inputEl.setAttribute(\"aria-activedescendant\", nextEl.id);\n nextEl.setAttribute(\"tabIndex\", \"0\");\n nextEl.classList.add(LIST_OPTION_FOCUSED_CLASS);\n\n if (!preventScroll) {\n const optionBottom = nextEl.offsetTop + nextEl.offsetHeight;\n const currentBottom = listEl.scrollTop + listEl.offsetHeight;\n\n if (optionBottom > currentBottom) {\n listEl.scrollTop = optionBottom - listEl.offsetHeight;\n }\n\n if (nextEl.offsetTop < listEl.scrollTop) {\n listEl.scrollTop = nextEl.offsetTop;\n }\n }\n\n if (!skipFocus) {\n nextEl.focus({ preventScroll });\n }\n } else {\n inputEl.setAttribute(\"aria-activedescendant\", \"\");\n inputEl.focus();\n }\n};\n\n/**\n * Generate a dynamic regular expression based off of a replaceable and possibly filtered value.\n *\n * @param {string} el An element within the combo box component\n * @param {string} query The value to use in the regular expression\n * @param {object} extras An object of regular expressions to replace and filter the query\n */\nconst generateDynamicRegExp = (filter, query = \"\", extras = {}) => {\n const escapeRegExp = (text) => {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n };\n\n let find = filter.replace(/{{(.*?)}}/g, (m, $1) => {\n const key = $1.trim();\n const queryFilter = extras[key];\n if (key !== \"query\" && queryFilter) {\n const matcher = new RegExp(queryFilter, \"i\");\n const matches = query.match(matcher);\n\n if (matches) {\n return escapeRegExp(matches[1]);\n }\n\n return \"\";\n }\n return escapeRegExp(query);\n });\n\n find = \"^(?:\" + find + \")$\";\n\n return new RegExp(find, \"i\");\n};\n\n/**\n * Display the option list of a combo box component.\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst displayList = (el) => {\n const {\n comboBoxEl,\n selectEl,\n inputEl,\n listEl,\n statusEl,\n isPristine,\n disableFiltering,\n } = getComboBoxContext(el);\n let selectedItemId;\n let firstFoundId;\n\n const listOptionBaseId = `${listEl.id}--option-`;\n\n const inputValue = (inputEl.value || \"\").toLowerCase();\n const filter = comboBoxEl.dataset.filter || DEFAULT_FILTER;\n const regex = generateDynamicRegExp(filter, inputValue, comboBoxEl.dataset);\n\n const options = [];\n for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n const optionEl = selectEl.options[i];\n const optionId = `${listOptionBaseId}${options.length}`;\n\n if (\n optionEl.value &&\n (disableFiltering ||\n isPristine ||\n !inputValue ||\n regex.test(optionEl.text))\n ) {\n if (selectEl.value && optionEl.value === selectEl.value) {\n selectedItemId = optionId;\n }\n\n if (disableFiltering && !firstFoundId && regex.test(optionEl.text)) {\n firstFoundId = optionId;\n }\n\n options.push(optionEl);\n }\n }\n\n const numOptions = options.length;\n const optionHtml = options\n .map((option, index) => {\n const optionId = `${listOptionBaseId}${index}`;\n const classes = [LIST_OPTION_CLASS];\n let tabindex = \"-1\";\n let ariaSelected = \"false\";\n\n if (optionId === selectedItemId) {\n classes.push(LIST_OPTION_SELECTED_CLASS, LIST_OPTION_FOCUSED_CLASS);\n tabindex = \"0\";\n ariaSelected = \"true\";\n }\n\n if (!selectedItemId && index === 0) {\n classes.push(LIST_OPTION_FOCUSED_CLASS);\n tabindex = \"0\";\n }\n\n return `<li\n aria-selected=\"false\"\n aria-setsize=\"${options.length}\"\n aria-posinset=\"${index + 1}\"\n aria-selected=\"${ariaSelected}\"\n id=\"${optionId}\"\n class=\"${classes.join(\" \")}\"\n tabindex=\"${tabindex}\"\n role=\"option\"\n data-value=\"${option.value}\"\n >${option.text}</li>`;\n })\n .join(\"\");\n\n const noResults = `<li class=\"${LIST_OPTION_CLASS}--no-results\">No results found</li>`;\n\n listEl.hidden = false;\n listEl.innerHTML = numOptions ? optionHtml : noResults;\n\n inputEl.setAttribute(\"aria-expanded\", \"true\");\n\n statusEl.innerHTML = numOptions\n ? `${numOptions} result${numOptions > 1 ? \"s\" : \"\"} available.`\n : \"No results.\";\n\n let itemToFocus;\n\n if (isPristine && selectedItemId) {\n itemToFocus = listEl.querySelector(\"#\" + selectedItemId);\n } else if (disableFiltering && firstFoundId) {\n itemToFocus = listEl.querySelector(\"#\" + firstFoundId);\n }\n\n if (itemToFocus) {\n highlightOption(listEl, itemToFocus, {\n skipFocus: true,\n });\n }\n};\n\n/**\n * Hide the option list of a combo box component.\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst hideList = (el) => {\n const { inputEl, listEl, statusEl, focusedOptionEl } = getComboBoxContext(el);\n\n statusEl.innerHTML = \"\";\n\n inputEl.setAttribute(\"aria-expanded\", \"false\");\n inputEl.setAttribute(\"aria-activedescendant\", \"\");\n\n if (focusedOptionEl) {\n focusedOptionEl.classList.remove(LIST_OPTION_FOCUSED_CLASS);\n }\n\n listEl.scrollTop = 0;\n listEl.hidden = true;\n};\n\n/**\n * Select an option list of the combo box component.\n *\n * @param {HTMLElement} listOptionEl The list option being selected\n */\nconst selectItem = (listOptionEl) => {\n const { comboBoxEl, selectEl, inputEl } = getComboBoxContext(listOptionEl);\n\n changeElementValue(selectEl, listOptionEl.dataset.value);\n changeElementValue(inputEl, listOptionEl.textContent);\n comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n hideList(comboBoxEl);\n inputEl.focus();\n};\n\n/**\n * Clear the input of the combo box\n *\n * @param {HTMLButtonElement} clearButtonEl The clear input button\n */\nconst clearInput = (clearButtonEl) => {\n const { comboBoxEl, listEl, selectEl, inputEl } = getComboBoxContext(\n clearButtonEl\n );\n const listShown = !listEl.hidden;\n\n if (selectEl.value) changeElementValue(selectEl);\n if (inputEl.value) changeElementValue(inputEl);\n comboBoxEl.classList.remove(COMBO_BOX_PRISTINE_CLASS);\n\n if (listShown) displayList(comboBoxEl);\n inputEl.focus();\n};\n\n/**\n * Reset the select based off of currently set select value\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst resetSelection = (el) => {\n const { comboBoxEl, selectEl, inputEl } = getComboBoxContext(el);\n\n const selectValue = selectEl.value;\n const inputValue = (inputEl.value || \"\").toLowerCase();\n\n if (selectValue) {\n for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n const optionEl = selectEl.options[i];\n if (optionEl.value === selectValue) {\n if (inputValue !== optionEl.text) {\n changeElementValue(inputEl, optionEl.text);\n }\n comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n return;\n }\n }\n }\n\n if (inputValue) {\n changeElementValue(inputEl);\n }\n};\n\n/**\n * Select an option list of the combo box component based off of\n * having a current focused list option or\n * having test that completely matches a list option.\n * Otherwise it clears the input and select.\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst completeSelection = (el) => {\n const { comboBoxEl, selectEl, inputEl, statusEl } = getComboBoxContext(el);\n\n statusEl.textContent = \"\";\n\n const inputValue = (inputEl.value || \"\").toLowerCase();\n\n if (inputValue) {\n for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n const optionEl = selectEl.options[i];\n if (optionEl.text.toLowerCase() === inputValue) {\n changeElementValue(selectEl, optionEl.value);\n changeElementValue(inputEl, optionEl.text);\n comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n return;\n }\n }\n }\n\n resetSelection(comboBoxEl);\n};\n\n/**\n * Handle the escape event within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleEscape = (event) => {\n const { comboBoxEl, inputEl } = getComboBoxContext(event.target);\n\n hideList(comboBoxEl);\n resetSelection(comboBoxEl);\n inputEl.focus();\n};\n\n/**\n * Handle the down event within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleDownFromInput = (event) => {\n const { comboBoxEl, listEl } = getComboBoxContext(event.target);\n\n if (listEl.hidden) {\n displayList(comboBoxEl);\n }\n\n let nextOptionEl =\n listEl.querySelector(LIST_OPTION_FOCUSED) ||\n listEl.querySelector(LIST_OPTION);\n\n if (nextOptionEl) {\n highlightOption(comboBoxEl, nextOptionEl);\n }\n\n event.preventDefault();\n};\n\n/**\n * Handle the enter event from an input element within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleEnterFromInput = (event) => {\n const { comboBoxEl, listEl } = getComboBoxContext(event.target);\n const listShown = !listEl.hidden;\n\n completeSelection(comboBoxEl);\n\n if (listShown) {\n hideList(comboBoxEl);\n }\n\n event.preventDefault();\n};\n\n/**\n * Handle the down event within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleDownFromListOption = (event) => {\n const focusedOptionEl = event.target;\n const nextOptionEl = focusedOptionEl.nextSibling;\n\n if (nextOptionEl) {\n highlightOption(focusedOptionEl, nextOptionEl);\n }\n\n event.preventDefault();\n};\n\n/**\n * Handle the tab event from an list option element within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleTabFromListOption = (event) => {\n selectItem(event.target);\n event.preventDefault();\n};\n\n/**\n * Handle the enter event from list option within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleEnterFromListOption = (event) => {\n selectItem(event.target);\n event.preventDefault();\n};\n\n/**\n * Handle the up event from list option within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleUpFromListOption = (event) => {\n const { comboBoxEl, listEl, focusedOptionEl } = getComboBoxContext(\n event.target\n );\n const nextOptionEl = focusedOptionEl && focusedOptionEl.previousSibling;\n const listShown = !listEl.hidden;\n\n highlightOption(comboBoxEl, nextOptionEl);\n\n if (listShown) {\n event.preventDefault();\n }\n\n if (!nextOptionEl) {\n hideList(comboBoxEl);\n }\n};\n\n/**\n * Select list option on the mousemove event.\n *\n * @param {MouseEvent} event The mousemove event\n * @param {HTMLLIElement} listOptionEl An element within the combo box component\n */\nconst handleMousemove = (listOptionEl) => {\n const isCurrentlyFocused = listOptionEl.classList.contains(\n LIST_OPTION_FOCUSED_CLASS\n );\n\n if (isCurrentlyFocused) return;\n\n highlightOption(listOptionEl, listOptionEl, {\n preventScroll: true,\n });\n};\n\n/**\n * Toggle the list when the button is clicked\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst toggleList = (el) => {\n const { comboBoxEl, listEl, inputEl } = getComboBoxContext(el);\n\n if (listEl.hidden) {\n displayList(comboBoxEl);\n } else {\n hideList(comboBoxEl);\n }\n\n inputEl.focus();\n};\n\n/**\n * Handle click from input\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst handleClickFromInput = (el) => {\n const { comboBoxEl, listEl } = getComboBoxContext(el);\n\n if (listEl.hidden) {\n displayList(comboBoxEl);\n }\n};\n\nconst comboBox = behavior(\n {\n [CLICK]: {\n [INPUT]() {\n if (this.disabled) return;\n handleClickFromInput(this);\n },\n [TOGGLE_LIST_BUTTON]() {\n if (this.disabled) return;\n toggleList(this);\n },\n [LIST_OPTION]() {\n if (this.disabled) return;\n selectItem(this);\n },\n [CLEAR_INPUT_BUTTON]() {\n if (this.disabled) return;\n clearInput(this);\n },\n },\n focusout: {\n [COMBO_BOX](event) {\n if (!this.contains(event.relatedTarget)) {\n resetSelection(this);\n hideList(this);\n }\n },\n },\n keydown: {\n [COMBO_BOX]: keymap({\n Escape: handleEscape,\n }),\n [INPUT]: keymap({\n Enter: handleEnterFromInput,\n ArrowDown: handleDownFromInput,\n Down: handleDownFromInput,\n }),\n [LIST_OPTION]: keymap({\n ArrowUp: handleUpFromListOption,\n Up: handleUpFromListOption,\n ArrowDown: handleDownFromListOption,\n Down: handleDownFromListOption,\n Enter: handleEnterFromListOption,\n Tab: handleTabFromListOption,\n \"Shift+Tab\": noop,\n }),\n },\n input: {\n [INPUT]() {\n const comboBoxEl = this.closest(COMBO_BOX);\n comboBoxEl.classList.remove(COMBO_BOX_PRISTINE_CLASS);\n displayList(this);\n },\n },\n mousemove: {\n [LIST_OPTION]() {\n handleMousemove(this);\n },\n },\n },\n {\n init(root) {\n select(COMBO_BOX, root).forEach((comboBoxEl) => {\n enhanceComboBox(comboBoxEl);\n });\n },\n getComboBoxContext,\n enhanceComboBox,\n generateDynamicRegExp,\n disable,\n enable,\n displayList,\n hideList,\n COMBO_BOX_CLASS,\n }\n);\n\nmodule.exports = comboBox;\n","const keymap = require(\"receptor/keymap\");\nconst behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst { CLICK } = require(\"../events\");\nconst activeElement = require(\"../utils/active-element\");\nconst isIosDevice = require(\"../utils/is-ios-device\");\n\nconst DATE_PICKER_CLASS = `${PREFIX}-date-picker`;\nconst DATE_PICKER_WRAPPER_CLASS = `${DATE_PICKER_CLASS}__wrapper`;\nconst DATE_PICKER_INITIALIZED_CLASS = `${DATE_PICKER_CLASS}--initialized`;\nconst DATE_PICKER_ACTIVE_CLASS = `${DATE_PICKER_CLASS}--active`;\nconst DATE_PICKER_INTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__internal-input`;\nconst DATE_PICKER_EXTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__external-input`;\nconst DATE_PICKER_BUTTON_CLASS = `${DATE_PICKER_CLASS}__button`;\nconst DATE_PICKER_CALENDAR_CLASS = `${DATE_PICKER_CLASS}__calendar`;\nconst DATE_PICKER_STATUS_CLASS = `${DATE_PICKER_CLASS}__status`;\nconst CALENDAR_DATE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date`;\n\nconst CALENDAR_DATE_FOCUSED_CLASS = `${CALENDAR_DATE_CLASS}--focused`;\nconst CALENDAR_DATE_SELECTED_CLASS = `${CALENDAR_DATE_CLASS}--selected`;\nconst CALENDAR_DATE_PREVIOUS_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--previous-month`;\nconst CALENDAR_DATE_CURRENT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--current-month`;\nconst CALENDAR_DATE_NEXT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--next-month`;\nconst CALENDAR_DATE_RANGE_DATE_CLASS = `${CALENDAR_DATE_CLASS}--range-date`;\nconst CALENDAR_DATE_TODAY_CLASS = `${CALENDAR_DATE_CLASS}--today`;\nconst CALENDAR_DATE_RANGE_DATE_START_CLASS = `${CALENDAR_DATE_CLASS}--range-date-start`;\nconst CALENDAR_DATE_RANGE_DATE_END_CLASS = `${CALENDAR_DATE_CLASS}--range-date-end`;\nconst CALENDAR_DATE_WITHIN_RANGE_CLASS = `${CALENDAR_DATE_CLASS}--within-range`;\nconst CALENDAR_PREVIOUS_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year`;\nconst CALENDAR_PREVIOUS_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-month`;\nconst CALENDAR_NEXT_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year`;\nconst CALENDAR_NEXT_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-month`;\nconst CALENDAR_MONTH_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-selection`;\nconst CALENDAR_YEAR_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-selection`;\nconst CALENDAR_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month`;\nconst CALENDAR_MONTH_FOCUSED_CLASS = `${CALENDAR_MONTH_CLASS}--focused`;\nconst CALENDAR_MONTH_SELECTED_CLASS = `${CALENDAR_MONTH_CLASS}--selected`;\nconst CALENDAR_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year`;\nconst CALENDAR_YEAR_FOCUSED_CLASS = `${CALENDAR_YEAR_CLASS}--focused`;\nconst CALENDAR_YEAR_SELECTED_CLASS = `${CALENDAR_YEAR_CLASS}--selected`;\nconst CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year-chunk`;\nconst CALENDAR_NEXT_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year-chunk`;\nconst CALENDAR_DATE_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date-picker`;\nconst CALENDAR_MONTH_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-picker`;\nconst CALENDAR_YEAR_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-picker`;\nconst CALENDAR_TABLE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__table`;\nconst CALENDAR_ROW_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__row`;\nconst CALENDAR_CELL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__cell`;\nconst CALENDAR_CELL_CENTER_ITEMS_CLASS = `${CALENDAR_CELL_CLASS}--center-items`;\nconst CALENDAR_MONTH_LABEL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-label`;\nconst CALENDAR_DAY_OF_WEEK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__day-of-week`;\n\nconst DATE_PICKER = `.${DATE_PICKER_CLASS}`;\nconst DATE_PICKER_BUTTON = `.${DATE_PICKER_BUTTON_CLASS}`;\nconst DATE_PICKER_INTERNAL_INPUT = `.${DATE_PICKER_INTERNAL_INPUT_CLASS}`;\nconst DATE_PICKER_EXTERNAL_INPUT = `.${DATE_PICKER_EXTERNAL_INPUT_CLASS}`;\nconst DATE_PICKER_CALENDAR = `.${DATE_PICKER_CALENDAR_CLASS}`;\nconst DATE_PICKER_STATUS = `.${DATE_PICKER_STATUS_CLASS}`;\nconst CALENDAR_DATE = `.${CALENDAR_DATE_CLASS}`;\nconst CALENDAR_DATE_FOCUSED = `.${CALENDAR_DATE_FOCUSED_CLASS}`;\nconst CALENDAR_DATE_CURRENT_MONTH = `.${CALENDAR_DATE_CURRENT_MONTH_CLASS}`;\nconst CALENDAR_PREVIOUS_YEAR = `.${CALENDAR_PREVIOUS_YEAR_CLASS}`;\nconst CALENDAR_PREVIOUS_MONTH = `.${CALENDAR_PREVIOUS_MONTH_CLASS}`;\nconst CALENDAR_NEXT_YEAR = `.${CALENDAR_NEXT_YEAR_CLASS}`;\nconst CALENDAR_NEXT_MONTH = `.${CALENDAR_NEXT_MONTH_CLASS}`;\nconst CALENDAR_YEAR_SELECTION = `.${CALENDAR_YEAR_SELECTION_CLASS}`;\nconst CALENDAR_MONTH_SELECTION = `.${CALENDAR_MONTH_SELECTION_CLASS}`;\nconst CALENDAR_MONTH = `.${CALENDAR_MONTH_CLASS}`;\nconst CALENDAR_YEAR = `.${CALENDAR_YEAR_CLASS}`;\nconst CALENDAR_PREVIOUS_YEAR_CHUNK = `.${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}`;\nconst CALENDAR_NEXT_YEAR_CHUNK = `.${CALENDAR_NEXT_YEAR_CHUNK_CLASS}`;\nconst CALENDAR_DATE_PICKER = `.${CALENDAR_DATE_PICKER_CLASS}`;\nconst CALENDAR_MONTH_PICKER = `.${CALENDAR_MONTH_PICKER_CLASS}`;\nconst CALENDAR_YEAR_PICKER = `.${CALENDAR_YEAR_PICKER_CLASS}`;\nconst CALENDAR_MONTH_FOCUSED = `.${CALENDAR_MONTH_FOCUSED_CLASS}`;\nconst CALENDAR_YEAR_FOCUSED = `.${CALENDAR_YEAR_FOCUSED_CLASS}`;\n\nconst VALIDATION_MESSAGE = \"Please enter a valid date\";\n\nconst MONTH_LABELS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst DAY_OF_WEEK_LABELS = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n];\n\nconst ENTER_KEYCODE = 13;\n\nconst YEAR_CHUNK = 12;\n\nconst DEFAULT_MIN_DATE = \"0000-01-01\";\nconst DEFAULT_EXTERNAL_DATE_FORMAT = \"MM/DD/YYYY\";\nconst INTERNAL_DATE_FORMAT = \"YYYY-MM-DD\";\n\nconst NOT_DISABLED_SELECTOR = \":not([disabled])\";\n\nconst processFocusableSelectors = (...selectors) =>\n selectors.map((query) => query + NOT_DISABLED_SELECTOR).join(\", \");\n\nconst DATE_PICKER_FOCUSABLE = processFocusableSelectors(\n CALENDAR_PREVIOUS_YEAR,\n CALENDAR_PREVIOUS_MONTH,\n CALENDAR_YEAR_SELECTION,\n CALENDAR_MONTH_SELECTION,\n CALENDAR_NEXT_YEAR,\n CALENDAR_NEXT_MONTH,\n CALENDAR_DATE_FOCUSED\n);\n\nconst MONTH_PICKER_FOCUSABLE = processFocusableSelectors(\n CALENDAR_MONTH_FOCUSED\n);\n\nconst YEAR_PICKER_FOCUSABLE = processFocusableSelectors(\n CALENDAR_PREVIOUS_YEAR_CHUNK,\n CALENDAR_NEXT_YEAR_CHUNK,\n CALENDAR_YEAR_FOCUSED\n);\n\n// #region Date Manipulation Functions\n\n/**\n * Keep date within month. Month would only be over by 1 to 3 days\n *\n * @param {Date} dateToCheck the date object to check\n * @param {number} month the correct month\n * @returns {Date} the date, corrected if needed\n */\nconst keepDateWithinMonth = (dateToCheck, month) => {\n if (month !== dateToCheck.getMonth()) {\n dateToCheck.setDate(0);\n }\n\n return dateToCheck;\n};\n\n/**\n * Set date from month day year\n *\n * @param {number} year the year to set\n * @param {number} month the month to set (zero-indexed)\n * @param {number} date the date to set\n * @returns {Date} the set date\n */\nconst setDate = (year, month, date) => {\n const newDate = new Date(0);\n newDate.setFullYear(year, month, date);\n return newDate;\n};\n\n/**\n * todays date\n *\n * @returns {Date} todays date\n */\nconst today = () => {\n const newDate = new Date();\n const day = newDate.getDate();\n const month = newDate.getMonth();\n const year = newDate.getFullYear();\n return setDate(year, month, day);\n};\n\n/**\n * Set date to first day of the month\n *\n * @param {number} date the date to adjust\n * @returns {Date} the adjusted date\n */\nconst startOfMonth = (date) => {\n const newDate = new Date(0);\n newDate.setFullYear(date.getFullYear(), date.getMonth(), 1);\n return newDate;\n};\n\n/**\n * Set date to last day of the month\n *\n * @param {number} date the date to adjust\n * @returns {Date} the adjusted date\n */\nconst lastDayOfMonth = (date) => {\n const newDate = new Date(0);\n newDate.setFullYear(date.getFullYear(), date.getMonth() + 1, 0);\n return newDate;\n};\n\n/**\n * Add days to date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numDays the difference in days\n * @returns {Date} the adjusted date\n */\nconst addDays = (_date, numDays) => {\n const newDate = new Date(_date.getTime());\n newDate.setDate(newDate.getDate() + numDays);\n return newDate;\n};\n\n/**\n * Subtract days from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numDays the difference in days\n * @returns {Date} the adjusted date\n */\nconst subDays = (_date, numDays) => addDays(_date, -numDays);\n\n/**\n * Add weeks to date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numWeeks the difference in weeks\n * @returns {Date} the adjusted date\n */\nconst addWeeks = (_date, numWeeks) => addDays(_date, numWeeks * 7);\n\n/**\n * Subtract weeks from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numWeeks the difference in weeks\n * @returns {Date} the adjusted date\n */\nconst subWeeks = (_date, numWeeks) => addWeeks(_date, -numWeeks);\n\n/**\n * Set date to the start of the week (Sunday)\n *\n * @param {Date} _date the date to adjust\n * @returns {Date} the adjusted date\n */\nconst startOfWeek = (_date) => {\n const dayOfWeek = _date.getDay();\n return subDays(_date, dayOfWeek);\n};\n\n/**\n * Set date to the end of the week (Saturday)\n *\n * @param {Date} _date the date to adjust\n * @param {number} numWeeks the difference in weeks\n * @returns {Date} the adjusted date\n */\nconst endOfWeek = (_date) => {\n const dayOfWeek = _date.getDay();\n return addDays(_date, 6 - dayOfWeek);\n};\n\n/**\n * Add months to date and keep date within month\n *\n * @param {Date} _date the date to adjust\n * @param {number} numMonths the difference in months\n * @returns {Date} the adjusted date\n */\nconst addMonths = (_date, numMonths) => {\n const newDate = new Date(_date.getTime());\n\n const dateMonth = (newDate.getMonth() + 12 + numMonths) % 12;\n newDate.setMonth(newDate.getMonth() + numMonths);\n keepDateWithinMonth(newDate, dateMonth);\n\n return newDate;\n};\n\n/**\n * Subtract months from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numMonths the difference in months\n * @returns {Date} the adjusted date\n */\nconst subMonths = (_date, numMonths) => addMonths(_date, -numMonths);\n\n/**\n * Add years to date and keep date within month\n *\n * @param {Date} _date the date to adjust\n * @param {number} numYears the difference in years\n * @returns {Date} the adjusted date\n */\nconst addYears = (_date, numYears) => addMonths(_date, numYears * 12);\n\n/**\n * Subtract years from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numYears the difference in years\n * @returns {Date} the adjusted date\n */\nconst subYears = (_date, numYears) => addYears(_date, -numYears);\n\n/**\n * Set months of date\n *\n * @param {Date} _date the date to adjust\n * @param {number} month zero-indexed month to set\n * @returns {Date} the adjusted date\n */\nconst setMonth = (_date, month) => {\n const newDate = new Date(_date.getTime());\n\n newDate.setMonth(month);\n keepDateWithinMonth(newDate, month);\n\n return newDate;\n};\n\n/**\n * Set year of date\n *\n * @param {Date} _date the date to adjust\n * @param {number} year the year to set\n * @returns {Date} the adjusted date\n */\nconst setYear = (_date, year) => {\n const newDate = new Date(_date.getTime());\n\n const month = newDate.getMonth();\n newDate.setFullYear(year);\n keepDateWithinMonth(newDate, month);\n\n return newDate;\n};\n\n/**\n * Return the earliest date\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {Date} the earliest date\n */\nconst min = (dateA, dateB) => {\n let newDate = dateA;\n\n if (dateB < dateA) {\n newDate = dateB;\n }\n\n return new Date(newDate.getTime());\n};\n\n/**\n * Return the latest date\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {Date} the latest date\n */\nconst max = (dateA, dateB) => {\n let newDate = dateA;\n\n if (dateB > dateA) {\n newDate = dateB;\n }\n\n return new Date(newDate.getTime());\n};\n\n/**\n * Check if dates are the in the same year\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {boolean} are dates in the same year\n */\nconst isSameYear = (dateA, dateB) => {\n return dateA && dateB && dateA.getFullYear() === dateB.getFullYear();\n};\n\n/**\n * Check if dates are the in the same month\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {boolean} are dates in the same month\n */\nconst isSameMonth = (dateA, dateB) => {\n return isSameYear(dateA, dateB) && dateA.getMonth() === dateB.getMonth();\n};\n\n/**\n * Check if dates are the same date\n *\n * @param {Date} dateA the date to compare\n * @param {Date} dateA the date to compare\n * @returns {boolean} are dates the same date\n */\nconst isSameDay = (dateA, dateB) => {\n return isSameMonth(dateA, dateB) && dateA.getDate() === dateB.getDate();\n};\n\n/**\n * return a new date within minimum and maximum date\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @returns {Date} the date between min and max\n */\nconst keepDateBetweenMinAndMax = (date, minDate, maxDate) => {\n let newDate = date;\n\n if (date < minDate) {\n newDate = minDate;\n } else if (maxDate && date > maxDate) {\n newDate = maxDate;\n }\n\n return new Date(newDate.getTime());\n};\n\n/**\n * Check if dates is valid.\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @return {boolean} is there a day within the month within min and max dates\n */\nconst isDateWithinMinAndMax = (date, minDate, maxDate) =>\n date >= minDate && (!maxDate || date <= maxDate);\n\n/**\n * Check if dates month is invalid.\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @return {boolean} is the month outside min or max dates\n */\nconst isDatesMonthOutsideMinOrMax = (date, minDate, maxDate) => {\n return (\n lastDayOfMonth(date) < minDate || (maxDate && startOfMonth(date) > maxDate)\n );\n};\n\n/**\n * Check if dates year is invalid.\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @return {boolean} is the month outside min or max dates\n */\nconst isDatesYearOutsideMinOrMax = (date, minDate, maxDate) => {\n return (\n lastDayOfMonth(setMonth(date, 11)) < minDate ||\n (maxDate && startOfMonth(setMonth(date, 0)) > maxDate)\n );\n};\n\n/**\n * Parse a date with format M-D-YY\n *\n * @param {string} dateString the date string to parse\n * @param {string} dateFormat the format of the date string\n * @param {boolean} adjustDate should the date be adjusted\n * @returns {Date} the parsed date\n */\nconst parseDateString = (\n dateString,\n dateFormat = INTERNAL_DATE_FORMAT,\n adjustDate = false\n) => {\n let date;\n let month;\n let day;\n let year;\n let parsed;\n\n if (dateString) {\n let monthStr, dayStr, yearStr;\n\n if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\n [monthStr, dayStr, yearStr] = dateString.split(\"/\");\n } else {\n [yearStr, monthStr, dayStr] = dateString.split(\"-\");\n }\n\n if (yearStr) {\n parsed = parseInt(yearStr, 10);\n if (!Number.isNaN(parsed)) {\n year = parsed;\n if (adjustDate) {\n year = Math.max(0, year);\n if (yearStr.length < 3) {\n const currentYear = today().getFullYear();\n const currentYearStub =\n currentYear - (currentYear % 10 ** yearStr.length);\n year = currentYearStub + parsed;\n }\n }\n }\n }\n\n if (monthStr) {\n parsed = parseInt(monthStr, 10);\n if (!Number.isNaN(parsed)) {\n month = parsed;\n if (adjustDate) {\n month = Math.max(1, month);\n month = Math.min(12, month);\n }\n }\n }\n\n if (month && dayStr && year != null) {\n parsed = parseInt(dayStr, 10);\n if (!Number.isNaN(parsed)) {\n day = parsed;\n if (adjustDate) {\n const lastDayOfTheMonth = setDate(year, month, 0).getDate();\n day = Math.max(1, day);\n day = Math.min(lastDayOfTheMonth, day);\n }\n }\n }\n\n if (month && day && year != null) {\n date = setDate(year, month - 1, day);\n }\n }\n\n return date;\n};\n\n/**\n * Format a date to format MM-DD-YYYY\n *\n * @param {Date} date the date to format\n * @param {string} dateFormat the format of the date string\n * @returns {string} the formatted date string\n */\nconst formatDate = (date, dateFormat = INTERNAL_DATE_FORMAT) => {\n const padZeros = (value, length) => {\n return `0000${value}`.slice(-length);\n };\n\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const year = date.getFullYear();\n\n if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\n return [padZeros(month, 2), padZeros(day, 2), padZeros(year, 4)].join(\"/\");\n }\n\n return [padZeros(year, 4), padZeros(month, 2), padZeros(day, 2)].join(\"-\");\n};\n\n// #endregion Date Manipulation Functions\n\n/**\n * Create a grid string from an array of html strings\n *\n * @param {string[]} htmlArray the array of html items\n * @param {number} rowSize the length of a row\n * @returns {string} the grid string\n */\nconst listToGridHtml = (htmlArray, rowSize) => {\n const grid = [];\n let row = [];\n\n let i = 0;\n while (i < htmlArray.length) {\n row = [];\n while (i < htmlArray.length && row.length < rowSize) {\n row.push(`<td>${htmlArray[i]}</td>`);\n i += 1;\n }\n grid.push(`<tr>${row.join(\"\")}</tr>`);\n }\n\n return grid.join(\"\");\n};\n\n/**\n * set the value of the element and dispatch a change event\n *\n * @param {HTMLInputElement} el The element to update\n * @param {string} value The new value of the element\n */\nconst changeElementValue = (el, value = \"\") => {\n const elementToChange = el;\n elementToChange.value = value;\n\n const event = new CustomEvent(\"change\", {\n bubbles: true,\n cancelable: true,\n detail: { value },\n });\n elementToChange.dispatchEvent(event);\n};\n\n/**\n * The properties and elements within the date picker.\n * @typedef {Object} DatePickerContext\n * @property {HTMLDivElement} calendarEl\n * @property {HTMLElement} datePickerEl\n * @property {HTMLInputElement} internalInputEl\n * @property {HTMLInputElement} externalInputEl\n * @property {HTMLDivElement} statusEl\n * @property {HTMLDivElement} firstYearChunkEl\n * @property {Date} calendarDate\n * @property {Date} minDate\n * @property {Date} maxDate\n * @property {Date} selectedDate\n * @property {Date} rangeDate\n * @property {Date} defaultDate\n */\n\n/**\n * Get an object of the properties and elements belonging directly to the given\n * date picker component.\n *\n * @param {HTMLElement} el the element within the date picker\n * @returns {DatePickerContext} elements\n */\nconst getDatePickerContext = (el) => {\n const datePickerEl = el.closest(DATE_PICKER);\n\n if (!datePickerEl) {\n throw new Error(`Element is missing outer ${DATE_PICKER}`);\n }\n\n const internalInputEl = datePickerEl.querySelector(\n DATE_PICKER_INTERNAL_INPUT\n );\n const externalInputEl = datePickerEl.querySelector(\n DATE_PICKER_EXTERNAL_INPUT\n );\n const calendarEl = datePickerEl.querySelector(DATE_PICKER_CALENDAR);\n const toggleBtnEl = datePickerEl.querySelector(DATE_PICKER_BUTTON);\n const statusEl = datePickerEl.querySelector(DATE_PICKER_STATUS);\n const firstYearChunkEl = datePickerEl.querySelector(CALENDAR_YEAR);\n\n const inputDate = parseDateString(\n externalInputEl.value,\n DEFAULT_EXTERNAL_DATE_FORMAT,\n true\n );\n const selectedDate = parseDateString(internalInputEl.value);\n\n const calendarDate = parseDateString(calendarEl.dataset.value);\n const minDate = parseDateString(datePickerEl.dataset.minDate);\n const maxDate = parseDateString(datePickerEl.dataset.maxDate);\n const rangeDate = parseDateString(datePickerEl.dataset.rangeDate);\n const defaultDate = parseDateString(datePickerEl.dataset.defaultDate);\n\n if (minDate && maxDate && minDate > maxDate) {\n throw new Error(\"Minimum date cannot be after maximum date\");\n }\n\n return {\n calendarDate,\n minDate,\n toggleBtnEl,\n selectedDate,\n maxDate,\n firstYearChunkEl,\n datePickerEl,\n inputDate,\n internalInputEl,\n externalInputEl,\n calendarEl,\n rangeDate,\n defaultDate,\n statusEl,\n };\n};\n\n/**\n * Disable the date picker component\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst disable = (el) => {\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\n\n toggleBtnEl.disabled = true;\n externalInputEl.disabled = true;\n};\n\n/**\n * Enable the date picker component\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst enable = (el) => {\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\n\n toggleBtnEl.disabled = false;\n externalInputEl.disabled = false;\n};\n\n// #region Validation\n\n/**\n * Validate the value in the input as a valid date of format M/D/YYYY\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst isDateInputInvalid = (el) => {\n const { externalInputEl, minDate, maxDate } = getDatePickerContext(el);\n\n const dateString = externalInputEl.value;\n let isInvalid = false;\n\n if (dateString) {\n isInvalid = true;\n\n const dateStringParts = dateString.split(\"/\");\n const [month, day, year] = dateStringParts.map((str) => {\n let value;\n const parsed = parseInt(str, 10);\n if (!Number.isNaN(parsed)) value = parsed;\n return value;\n });\n\n if (month && day && year != null) {\n const checkDate = setDate(year, month - 1, day);\n\n if (\n checkDate.getMonth() === month - 1 &&\n checkDate.getDate() === day &&\n checkDate.getFullYear() === year &&\n dateStringParts[2].length === 4 &&\n isDateWithinMinAndMax(checkDate, minDate, maxDate)\n ) {\n isInvalid = false;\n }\n }\n }\n\n return isInvalid;\n};\n\n/**\n * Validate the value in the input as a valid date of format M/D/YYYY\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst validateDateInput = (el) => {\n const { externalInputEl } = getDatePickerContext(el);\n const isInvalid = isDateInputInvalid(externalInputEl);\n\n if (isInvalid && !externalInputEl.validationMessage) {\n externalInputEl.setCustomValidity(VALIDATION_MESSAGE);\n }\n\n if (!isInvalid && externalInputEl.validationMessage === VALIDATION_MESSAGE) {\n externalInputEl.setCustomValidity(\"\");\n }\n};\n\n// #endregion Validation\n\n/**\n * Enable the date picker component\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst reconcileInputValues = (el) => {\n const { internalInputEl, inputDate } = getDatePickerContext(el);\n let newValue = \"\";\n\n if (inputDate && !isDateInputInvalid(el)) {\n newValue = formatDate(inputDate);\n }\n\n if (internalInputEl.value !== newValue) {\n changeElementValue(internalInputEl, newValue);\n }\n};\n\n/**\n * Select the value of the date picker inputs.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n * @param {string} dateString The date string to update in YYYY-MM-DD format\n */\nconst setCalendarValue = (el, dateString) => {\n const parsedDate = parseDateString(dateString);\n\n if (parsedDate) {\n const formattedDate = formatDate(parsedDate, DEFAULT_EXTERNAL_DATE_FORMAT);\n\n const {\n datePickerEl,\n internalInputEl,\n externalInputEl,\n } = getDatePickerContext(el);\n\n changeElementValue(internalInputEl, dateString);\n changeElementValue(externalInputEl, formattedDate);\n\n validateDateInput(datePickerEl);\n }\n};\n\n/**\n * Enhance an input with the date picker elements\n *\n * @param {HTMLElement} el The initial wrapping element of the date picker component\n */\nconst enhanceDatePicker = (el) => {\n const datePickerEl = el.closest(DATE_PICKER);\n const defaultValue = datePickerEl.dataset.defaultValue;\n\n const internalInputEl = datePickerEl.querySelector(`input`);\n\n if (!internalInputEl) {\n throw new Error(`${DATE_PICKER} is missing inner input`);\n }\n\n if (internalInputEl.value) {\n internalInputEl.value = \"\";\n }\n\n const minDate = parseDateString(\n datePickerEl.dataset.minDate || internalInputEl.getAttribute(\"min\")\n );\n datePickerEl.dataset.minDate = minDate\n ? formatDate(minDate)\n : DEFAULT_MIN_DATE;\n\n const maxDate = parseDateString(\n datePickerEl.dataset.maxDate || internalInputEl.getAttribute(\"max\")\n );\n if (maxDate) {\n datePickerEl.dataset.maxDate = formatDate(maxDate);\n }\n\n const calendarWrapper = document.createElement(\"div\");\n calendarWrapper.classList.add(DATE_PICKER_WRAPPER_CLASS);\n calendarWrapper.tabIndex = \"-1\";\n\n const externalInputEl = internalInputEl.cloneNode();\n externalInputEl.classList.add(DATE_PICKER_EXTERNAL_INPUT_CLASS);\n externalInputEl.type = \"text\";\n externalInputEl.name = \"\";\n\n calendarWrapper.appendChild(externalInputEl);\n calendarWrapper.insertAdjacentHTML(\n \"beforeend\",\n [\n `<button type=\"button\" class=\"${DATE_PICKER_BUTTON_CLASS}\" aria-haspopup=\"true\" aria-label=\"Toggle calendar\">&nbsp;</button>`,\n `<div class=\"${DATE_PICKER_CALENDAR_CLASS}\" role=\"dialog\" aria-modal=\"true\" hidden></div>`,\n `<div class=\"usa-sr-only ${DATE_PICKER_STATUS_CLASS}\" role=\"status\" aria-live=\"polite\"></div>`,\n ].join(\"\")\n );\n\n internalInputEl.setAttribute(\"aria-hidden\", \"true\");\n internalInputEl.setAttribute(\"tabindex\", \"-1\");\n internalInputEl.classList.add(\n \"usa-sr-only\",\n DATE_PICKER_INTERNAL_INPUT_CLASS\n );\n internalInputEl.id = \"\";\n internalInputEl.required = false;\n\n datePickerEl.appendChild(calendarWrapper);\n datePickerEl.classList.add(DATE_PICKER_INITIALIZED_CLASS);\n\n if (defaultValue) {\n setCalendarValue(datePickerEl, defaultValue);\n }\n\n if (internalInputEl.disabled) {\n disable(datePickerEl);\n internalInputEl.disabled = false;\n }\n};\n\n// #region Calendar - Date Selection View\n\n/**\n * render the calendar.\n *\n * @param {HTMLElement} el An element within the date picker component\n * @param {Date} _dateToDisplay a date to render on the calendar\n * @returns {HTMLElement} a reference to the new calendar element\n */\nconst renderCalendar = (el, _dateToDisplay) => {\n const {\n datePickerEl,\n calendarEl,\n statusEl,\n selectedDate,\n maxDate,\n minDate,\n rangeDate,\n } = getDatePickerContext(el);\n const todaysDate = today();\n let dateToDisplay = _dateToDisplay || todaysDate;\n\n const calendarWasHidden = calendarEl.hidden;\n\n const focusedDate = addDays(dateToDisplay, 0);\n const focusedMonth = dateToDisplay.getMonth();\n const focusedYear = dateToDisplay.getFullYear();\n\n const prevMonth = subMonths(dateToDisplay, 1);\n const nextMonth = addMonths(dateToDisplay, 1);\n\n const currentFormattedDate = formatDate(dateToDisplay);\n\n const firstOfMonth = startOfMonth(dateToDisplay);\n const prevButtonsDisabled = isSameMonth(dateToDisplay, minDate);\n const nextButtonsDisabled = isSameMonth(dateToDisplay, maxDate);\n\n const rangeConclusionDate = selectedDate || dateToDisplay;\n const rangeStartDate = rangeDate && min(rangeConclusionDate, rangeDate);\n const rangeEndDate = rangeDate && max(rangeConclusionDate, rangeDate);\n\n const withinRangeStartDate = rangeDate && addDays(rangeStartDate, 1);\n const withinRangeEndDate = rangeDate && subDays(rangeEndDate, 1);\n\n const monthLabel = MONTH_LABELS[focusedMonth];\n\n const generateDateHtml = (dateToRender) => {\n const classes = [CALENDAR_DATE_CLASS];\n const day = dateToRender.getDate();\n const month = dateToRender.getMonth();\n const year = dateToRender.getFullYear();\n const dayOfWeek = dateToRender.getDay();\n\n const formattedDate = formatDate(dateToRender);\n\n let tabindex = \"-1\";\n\n const isDisabled = !isDateWithinMinAndMax(dateToRender, minDate, maxDate);\n const isSelected = isSameDay(dateToRender, selectedDate);\n\n if (isSameMonth(dateToRender, prevMonth)) {\n classes.push(CALENDAR_DATE_PREVIOUS_MONTH_CLASS);\n }\n\n if (isSameMonth(dateToRender, focusedDate)) {\n classes.push(CALENDAR_DATE_CURRENT_MONTH_CLASS);\n }\n\n if (isSameMonth(dateToRender, nextMonth)) {\n classes.push(CALENDAR_DATE_NEXT_MONTH_CLASS);\n }\n\n if (isSelected) {\n classes.push(CALENDAR_DATE_SELECTED_CLASS);\n }\n\n if (isSameDay(dateToRender, todaysDate)) {\n classes.push(CALENDAR_DATE_TODAY_CLASS);\n }\n\n if (rangeDate) {\n if (isSameDay(dateToRender, rangeDate)) {\n classes.push(CALENDAR_DATE_RANGE_DATE_CLASS);\n }\n\n if (isSameDay(dateToRender, rangeStartDate)) {\n classes.push(CALENDAR_DATE_RANGE_DATE_START_CLASS);\n }\n\n if (isSameDay(dateToRender, rangeEndDate)) {\n classes.push(CALENDAR_DATE_RANGE_DATE_END_CLASS);\n }\n\n if (\n isDateWithinMinAndMax(\n dateToRender,\n withinRangeStartDate,\n withinRangeEndDate\n )\n ) {\n classes.push(CALENDAR_DATE_WITHIN_RANGE_CLASS);\n }\n }\n\n if (isSameDay(dateToRender, focusedDate)) {\n tabindex = \"0\";\n classes.push(CALENDAR_DATE_FOCUSED_CLASS);\n }\n\n const monthStr = MONTH_LABELS[month];\n const dayStr = DAY_OF_WEEK_LABELS[dayOfWeek];\n\n return `<button\n type=\"button\"\n tabindex=\"${tabindex}\"\n class=\"${classes.join(\" \")}\" \n data-day=\"${day}\" \n data-month=\"${month + 1}\" \n data-year=\"${year}\" \n data-value=\"${formattedDate}\"\n aria-label=\"${day} ${monthStr} ${year} ${dayStr}\"\n aria-selected=\"${isSelected ? \"true\" : \"false\"}\"\n ${isDisabled ? `disabled=\"disabled\"` : \"\"}\n >${day}</button>`;\n };\n\n // set date to first rendered day\n dateToDisplay = startOfWeek(firstOfMonth);\n\n const days = [];\n\n while (\n days.length < 28 ||\n dateToDisplay.getMonth() === focusedMonth ||\n days.length % 7 !== 0\n ) {\n days.push(generateDateHtml(dateToDisplay));\n dateToDisplay = addDays(dateToDisplay, 1);\n }\n\n const datesHtml = listToGridHtml(days, 7);\n\n const newCalendar = calendarEl.cloneNode();\n newCalendar.dataset.value = currentFormattedDate;\n newCalendar.style.top = `${datePickerEl.offsetHeight}px`;\n newCalendar.hidden = false;\n newCalendar.innerHTML = `<div tabindex=\"-1\" class=\"${CALENDAR_DATE_PICKER_CLASS}\">\n <div class=\"${CALENDAR_ROW_CLASS}\">\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_PREVIOUS_YEAR_CLASS}\"\n aria-label=\"Navigate back one year\"\n ${prevButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </div>\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_PREVIOUS_MONTH_CLASS}\"\n aria-label=\"Navigate back one month\"\n ${prevButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </div>\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_MONTH_LABEL_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_MONTH_SELECTION_CLASS}\" aria-label=\"${monthLabel}. Click to select month\"\n >${monthLabel}</button>\n <button \n type=\"button\"\n class=\"${CALENDAR_YEAR_SELECTION_CLASS}\" aria-label=\"${focusedYear}. Click to select year\"\n >${focusedYear}</button>\n </div>\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_NEXT_MONTH_CLASS}\"\n aria-label=\"Navigate forward one month\"\n ${nextButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </div>\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_NEXT_YEAR_CLASS}\"\n aria-label=\"Navigate forward one year\"\n ${nextButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </div>\n </div>\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\n <thead>\n <tr>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Sunday\">S</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Monday\">M</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Tuesday\">T</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Wednesday\">W</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Thursday\">Th</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Friday\">F</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Saturday\">S</th>\n </tr>\n </thead>\n <tbody>\n ${datesHtml}\n </tbody>\n </table>\n </div>`;\n\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\n\n datePickerEl.classList.add(DATE_PICKER_ACTIVE_CLASS);\n\n const statuses = [];\n\n if (isSameDay(selectedDate, focusedDate)) {\n statuses.push(\"Selected date\");\n }\n\n if (calendarWasHidden) {\n statuses.push(\n \"You can navigate by day using left and right arrows\",\n \"Weeks by using up and down arrows\",\n \"Months by using page up and page down keys\",\n \"Years by using shift plus page up and shift plus page down\",\n \"Home and end keys navigate to the beginning and end of a week\"\n );\n statusEl.textContent = \"\";\n } else {\n statuses.push(`${monthLabel} ${focusedYear}`);\n }\n statusEl.textContent = statuses.join(\". \");\n\n return newCalendar;\n};\n\n/**\n * Navigate back one year and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayPreviousYear = (_buttonEl) => {\n if (_buttonEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n _buttonEl\n );\n let date = subYears(calendarDate, 1);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Navigate back one month and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayPreviousMonth = (_buttonEl) => {\n if (_buttonEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n _buttonEl\n );\n let date = subMonths(calendarDate, 1);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_MONTH);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Navigate forward one month and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayNextMonth = (_buttonEl) => {\n if (_buttonEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n _buttonEl\n );\n let date = addMonths(calendarDate, 1);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_MONTH);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Navigate forward one year and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayNextYear = (_buttonEl) => {\n if (_buttonEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n _buttonEl\n );\n let date = addYears(calendarDate, 1);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Hide the calendar of a date picker component.\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst hideCalendar = (el) => {\n const { datePickerEl, calendarEl, statusEl } = getDatePickerContext(el);\n\n datePickerEl.classList.remove(DATE_PICKER_ACTIVE_CLASS);\n calendarEl.hidden = true;\n statusEl.textContent = \"\";\n};\n\n/**\n * Select a date within the date picker component.\n *\n * @param {HTMLButtonElement} calendarDateEl A date element within the date picker component\n */\nconst selectDate = (calendarDateEl) => {\n if (calendarDateEl.disabled) return;\n\n const { datePickerEl, externalInputEl } = getDatePickerContext(\n calendarDateEl\n );\n\n setCalendarValue(calendarDateEl, calendarDateEl.dataset.value);\n hideCalendar(datePickerEl);\n\n externalInputEl.focus();\n};\n\n/**\n * Toggle the calendar.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n */\nconst toggleCalendar = (el) => {\n if (el.disabled) return;\n const {\n calendarEl,\n inputDate,\n minDate,\n maxDate,\n defaultDate,\n } = getDatePickerContext(el);\n\n if (calendarEl.hidden) {\n const dateToDisplay = keepDateBetweenMinAndMax(\n inputDate || defaultDate || today(),\n minDate,\n maxDate\n );\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n } else {\n hideCalendar(el);\n }\n};\n\n/**\n * Update the calendar when visible.\n *\n * @param {HTMLElement} el an element within the date picker\n */\nconst updateCalendarIfVisible = (el) => {\n const { calendarEl, inputDate, minDate, maxDate } = getDatePickerContext(el);\n const calendarShown = !calendarEl.hidden;\n\n if (calendarShown && inputDate) {\n const dateToDisplay = keepDateBetweenMinAndMax(inputDate, minDate, maxDate);\n renderCalendar(calendarEl, dateToDisplay);\n }\n};\n\n// #endregion Calendar - Date Selection View\n\n// #region Calendar - Month Selection View\n/**\n * Display the month selection screen in the date picker.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n * @returns {HTMLElement} a reference to the new calendar element\n */\nconst displayMonthSelection = (el, monthToDisplay) => {\n const {\n calendarEl,\n statusEl,\n calendarDate,\n minDate,\n maxDate,\n } = getDatePickerContext(el);\n\n const selectedMonth = calendarDate.getMonth();\n const focusedMonth = monthToDisplay == null ? selectedMonth : monthToDisplay;\n\n const months = MONTH_LABELS.map((month, index) => {\n const monthToCheck = setMonth(calendarDate, index);\n\n const isDisabled = isDatesMonthOutsideMinOrMax(\n monthToCheck,\n minDate,\n maxDate\n );\n\n let tabindex = \"-1\";\n\n const classes = [CALENDAR_MONTH_CLASS];\n const isSelected = index === selectedMonth;\n\n if (index === focusedMonth) {\n tabindex = \"0\";\n classes.push(CALENDAR_MONTH_FOCUSED_CLASS);\n }\n\n if (isSelected) {\n classes.push(CALENDAR_MONTH_SELECTED_CLASS);\n }\n\n return `<button \n type=\"button\"\n tabindex=\"${tabindex}\"\n class=\"${classes.join(\" \")}\" \n data-value=\"${index}\"\n data-label=\"${month}\"\n aria-selected=\"${isSelected ? \"true\" : \"false\"}\"\n ${isDisabled ? `disabled=\"disabled\"` : \"\"}\n >${month}</button>`;\n });\n\n const monthsHtml = `<div tabindex=\"-1\" class=\"${CALENDAR_MONTH_PICKER_CLASS}\">\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\n <tbody>\n ${listToGridHtml(months, 3)}\n </tbody>\n </table>\n </div>`;\n\n const newCalendar = calendarEl.cloneNode();\n newCalendar.innerHTML = monthsHtml;\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\n\n statusEl.textContent = \"Select a month.\";\n\n return newCalendar;\n};\n\n/**\n * Select a month in the date picker component.\n *\n * @param {HTMLButtonElement} monthEl An month element within the date picker component\n */\nconst selectMonth = (monthEl) => {\n if (monthEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n monthEl\n );\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\n let date = setMonth(calendarDate, selectedMonth);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n};\n\n// #endregion Calendar - Month Selection View\n\n// #region Calendar - Year Selection View\n\n/**\n * Display the year selection screen in the date picker.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n * @param {number} yearToDisplay year to display in year selection\n * @returns {HTMLElement} a reference to the new calendar element\n */\nconst displayYearSelection = (el, yearToDisplay) => {\n const {\n calendarEl,\n statusEl,\n calendarDate,\n minDate,\n maxDate,\n } = getDatePickerContext(el);\n\n const selectedYear = calendarDate.getFullYear();\n const focusedYear = yearToDisplay == null ? selectedYear : yearToDisplay;\n\n let yearToChunk = focusedYear;\n yearToChunk -= yearToChunk % YEAR_CHUNK;\n yearToChunk = Math.max(0, yearToChunk);\n\n const prevYearChunkDisabled = isDatesYearOutsideMinOrMax(\n setYear(calendarDate, yearToChunk - 1),\n minDate,\n maxDate\n );\n\n const nextYearChunkDisabled = isDatesYearOutsideMinOrMax(\n setYear(calendarDate, yearToChunk + YEAR_CHUNK),\n minDate,\n maxDate\n );\n\n const years = [];\n let yearIndex = yearToChunk;\n while (years.length < YEAR_CHUNK) {\n const isDisabled = isDatesYearOutsideMinOrMax(\n setYear(calendarDate, yearIndex),\n minDate,\n maxDate\n );\n\n let tabindex = \"-1\";\n\n const classes = [CALENDAR_YEAR_CLASS];\n const isSelected = yearIndex === selectedYear;\n\n if (yearIndex === focusedYear) {\n tabindex = \"0\";\n classes.push(CALENDAR_YEAR_FOCUSED_CLASS);\n }\n\n if (isSelected) {\n classes.push(CALENDAR_YEAR_SELECTED_CLASS);\n }\n\n years.push(\n `<button \n type=\"button\"\n tabindex=\"${tabindex}\"\n class=\"${classes.join(\" \")}\" \n data-value=\"${yearIndex}\"\n aria-selected=\"${isSelected ? \"true\" : \"false\"}\"\n ${isDisabled ? `disabled=\"disabled\"` : \"\"}\n >${yearIndex}</button>`\n );\n yearIndex += 1;\n }\n\n const yearsHtml = listToGridHtml(years, 3);\n\n const newCalendar = calendarEl.cloneNode();\n newCalendar.innerHTML = `<div tabindex=\"-1\" class=\"${CALENDAR_YEAR_PICKER_CLASS}\">\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\n <tbody>\n <tr>\n <td>\n <button\n type=\"button\"\n class=\"${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}\" \n aria-label=\"Navigate back ${YEAR_CHUNK} years\"\n ${prevYearChunkDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </td>\n <td colspan=\"3\">\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\n <tbody>\n ${yearsHtml}\n </tbody>\n </table>\n </td>\n <td>\n <button\n type=\"button\"\n class=\"${CALENDAR_NEXT_YEAR_CHUNK_CLASS}\" \n aria-label=\"Navigate forward ${YEAR_CHUNK} years\"\n ${nextYearChunkDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>`;\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\n\n statusEl.textContent = `Showing years ${yearToChunk} to ${\n yearToChunk + YEAR_CHUNK - 1\n }. Select a year.`;\n\n return newCalendar;\n};\n\n/**\n * Navigate back by years and display the year selection screen.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n */\nconst displayPreviousYearChunk = (el) => {\n if (el.disabled) return;\n\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n el\n );\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\n const selectedYear = parseInt(yearEl.textContent, 10);\n\n let adjustedYear = selectedYear - YEAR_CHUNK;\n adjustedYear = Math.max(0, adjustedYear);\n\n const date = setYear(calendarDate, adjustedYear);\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = displayYearSelection(\n calendarEl,\n cappedDate.getFullYear()\n );\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR_CHUNK);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Navigate forward by years and display the year selection screen.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n */\nconst displayNextYearChunk = (el) => {\n if (el.disabled) return;\n\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n el\n );\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\n const selectedYear = parseInt(yearEl.textContent, 10);\n\n let adjustedYear = selectedYear + YEAR_CHUNK;\n adjustedYear = Math.max(0, adjustedYear);\n\n const date = setYear(calendarDate, adjustedYear);\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = displayYearSelection(\n calendarEl,\n cappedDate.getFullYear()\n );\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR_CHUNK);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Select a year in the date picker component.\n *\n * @param {HTMLButtonElement} yearEl A year element within the date picker component\n */\nconst selectYear = (yearEl) => {\n if (yearEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n yearEl\n );\n const selectedYear = parseInt(yearEl.innerHTML, 10);\n let date = setYear(calendarDate, selectedYear);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n};\n\n// #endregion Calendar - Year Selection View\n\n// #region Calendar Event Handling\n\n/**\n * Hide the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEscapeFromCalendar = (event) => {\n const { datePickerEl, externalInputEl } = getDatePickerContext(event.target);\n\n hideCalendar(datePickerEl);\n externalInputEl.focus();\n\n event.preventDefault();\n};\n\n// #endregion Calendar Event Handling\n\n// #region Calendar Date Event Handling\n\n/**\n * Adjust the date and display the calendar if needed.\n *\n * @param {function} adjustDateFn function that returns the adjusted date\n */\nconst adjustCalendar = (adjustDateFn) => {\n return (event) => {\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n event.target\n );\n\n const date = adjustDateFn(calendarDate);\n\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n if (!isSameDay(calendarDate, cappedDate)) {\n const newCalendar = renderCalendar(calendarEl, cappedDate);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n }\n event.preventDefault();\n };\n};\n\n/**\n * Navigate back one week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleUpFromDate = adjustCalendar((date) => subWeeks(date, 1));\n\n/**\n * Navigate forward one week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleDownFromDate = adjustCalendar((date) => addWeeks(date, 1));\n\n/**\n * Navigate back one day and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleLeftFromDate = adjustCalendar((date) => subDays(date, 1));\n\n/**\n * Navigate forward one day and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleRightFromDate = adjustCalendar((date) => addDays(date, 1));\n\n/**\n * Navigate to the start of the week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleHomeFromDate = adjustCalendar((date) => startOfWeek(date));\n\n/**\n * Navigate to the end of the week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEndFromDate = adjustCalendar((date) => endOfWeek(date));\n\n/**\n * Navigate forward one month and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageDownFromDate = adjustCalendar((date) => addMonths(date, 1));\n\n/**\n * Navigate back one month and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageUpFromDate = adjustCalendar((date) => subMonths(date, 1));\n\n/**\n * Navigate forward one year and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleShiftPageDownFromDate = adjustCalendar((date) => addYears(date, 1));\n\n/**\n * Navigate back one year and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleShiftPageUpFromDate = adjustCalendar((date) => subYears(date, 1));\n\n/**\n * display the calendar for the mousemove date.\n *\n * @param {MouseEvent} event The mousemove event\n * @param {HTMLButtonElement} dateEl A date element within the date picker component\n */\nconst handleMousemoveFromDate = (dateEl) => {\n if (dateEl.disabled) return;\n\n const calendarEl = dateEl.closest(DATE_PICKER_CALENDAR);\n\n const currentCalendarDate = calendarEl.dataset.value;\n const hoverDate = dateEl.dataset.value;\n\n if (hoverDate === currentCalendarDate) return;\n\n const dateToDisplay = parseDateString(hoverDate);\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n};\n\n// #endregion Calendar Date Event Handling\n\n// #region Calendar Month Event Handling\n\n/**\n * Adjust the month and display the month selection screen if needed.\n *\n * @param {function} adjustMonthFn function that returns the adjusted month\n */\nconst adjustMonthSelectionScreen = (adjustMonthFn) => {\n return (event) => {\n const monthEl = event.target;\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n monthEl\n );\n const currentDate = setMonth(calendarDate, selectedMonth);\n\n let adjustedMonth = adjustMonthFn(selectedMonth);\n adjustedMonth = Math.max(0, Math.min(11, adjustedMonth));\n\n const date = setMonth(calendarDate, adjustedMonth);\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n if (!isSameMonth(currentDate, cappedDate)) {\n const newCalendar = displayMonthSelection(\n calendarEl,\n cappedDate.getMonth()\n );\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\n }\n event.preventDefault();\n };\n};\n\n/**\n * Navigate back three months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleUpFromMonth = adjustMonthSelectionScreen((month) => month - 3);\n\n/**\n * Navigate forward three months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleDownFromMonth = adjustMonthSelectionScreen((month) => month + 3);\n\n/**\n * Navigate back one month and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleLeftFromMonth = adjustMonthSelectionScreen((month) => month - 1);\n\n/**\n * Navigate forward one month and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleRightFromMonth = adjustMonthSelectionScreen((month) => month + 1);\n\n/**\n * Navigate to the start of the row of months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleHomeFromMonth = adjustMonthSelectionScreen(\n (month) => month - (month % 3)\n);\n\n/**\n * Navigate to the end of the row of months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEndFromMonth = adjustMonthSelectionScreen(\n (month) => month + 2 - (month % 3)\n);\n\n/**\n * Navigate to the last month (December) and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageDownFromMonth = adjustMonthSelectionScreen(() => 11);\n\n/**\n * Navigate to the first month (January) and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageUpFromMonth = adjustMonthSelectionScreen(() => 0);\n\n/**\n * update the focus on a month when the mouse moves.\n *\n * @param {MouseEvent} event The mousemove event\n * @param {HTMLButtonElement} monthEl A month element within the date picker component\n */\nconst handleMousemoveFromMonth = (monthEl) => {\n if (monthEl.disabled) return;\n if (monthEl.classList.contains(CALENDAR_MONTH_FOCUSED_CLASS)) return;\n\n const focusMonth = parseInt(monthEl.dataset.value, 10);\n\n const newCalendar = displayMonthSelection(monthEl, focusMonth);\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\n};\n\n// #endregion Calendar Month Event Handling\n\n// #region Calendar Year Event Handling\n\n/**\n * Adjust the year and display the year selection screen if needed.\n *\n * @param {function} adjustYearFn function that returns the adjusted year\n */\nconst adjustYearSelectionScreen = (adjustYearFn) => {\n return (event) => {\n const yearEl = event.target;\n const selectedYear = parseInt(yearEl.dataset.value, 10);\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n yearEl\n );\n const currentDate = setYear(calendarDate, selectedYear);\n\n let adjustedYear = adjustYearFn(selectedYear);\n adjustedYear = Math.max(0, adjustedYear);\n\n const date = setYear(calendarDate, adjustedYear);\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n if (!isSameYear(currentDate, cappedDate)) {\n const newCalendar = displayYearSelection(\n calendarEl,\n cappedDate.getFullYear()\n );\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\n }\n event.preventDefault();\n };\n};\n\n/**\n * Navigate back three years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleUpFromYear = adjustYearSelectionScreen((year) => year - 3);\n\n/**\n * Navigate forward three years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleDownFromYear = adjustYearSelectionScreen((year) => year + 3);\n\n/**\n * Navigate back one year and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleLeftFromYear = adjustYearSelectionScreen((year) => year - 1);\n\n/**\n * Navigate forward one year and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleRightFromYear = adjustYearSelectionScreen((year) => year + 1);\n\n/**\n * Navigate to the start of the row of years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleHomeFromYear = adjustYearSelectionScreen(\n (year) => year - (year % 3)\n);\n\n/**\n * Navigate to the end of the row of years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEndFromYear = adjustYearSelectionScreen(\n (year) => year + 2 - (year % 3)\n);\n\n/**\n * Navigate to back 12 years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageUpFromYear = adjustYearSelectionScreen(\n (year) => year - YEAR_CHUNK\n);\n\n/**\n * Navigate forward 12 years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageDownFromYear = adjustYearSelectionScreen(\n (year) => year + YEAR_CHUNK\n);\n\n/**\n * update the focus on a year when the mouse moves.\n *\n * @param {MouseEvent} event The mousemove event\n * @param {HTMLButtonElement} dateEl A year element within the date picker component\n */\nconst handleMousemoveFromYear = (yearEl) => {\n if (yearEl.disabled) return;\n if (yearEl.classList.contains(CALENDAR_YEAR_FOCUSED_CLASS)) return;\n\n const focusYear = parseInt(yearEl.dataset.value, 10);\n\n const newCalendar = displayYearSelection(yearEl, focusYear);\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\n};\n\n// #endregion Calendar Year Event Handling\n\n// #region Focus Handling Event Handling\n\nconst tabHandler = (focusable) => {\n const getFocusableContext = (el) => {\n const { calendarEl } = getDatePickerContext(el);\n const focusableElements = select(focusable, calendarEl);\n\n const firstTabIndex = 0;\n const lastTabIndex = focusableElements.length - 1;\n const firstTabStop = focusableElements[firstTabIndex];\n const lastTabStop = focusableElements[lastTabIndex];\n const focusIndex = focusableElements.indexOf(activeElement());\n\n const isLastTab = focusIndex === lastTabIndex;\n const isFirstTab = focusIndex === firstTabIndex;\n const isNotFound = focusIndex === -1;\n\n return {\n focusableElements,\n isNotFound,\n firstTabStop,\n isFirstTab,\n lastTabStop,\n isLastTab,\n };\n };\n\n return {\n tabAhead(event) {\n const { firstTabStop, isLastTab, isNotFound } = getFocusableContext(\n event.target\n );\n\n if (isLastTab || isNotFound) {\n event.preventDefault();\n firstTabStop.focus();\n }\n },\n tabBack(event) {\n const { lastTabStop, isFirstTab, isNotFound } = getFocusableContext(\n event.target\n );\n\n if (isFirstTab || isNotFound) {\n event.preventDefault();\n lastTabStop.focus();\n }\n },\n };\n};\n\nconst datePickerTabEventHandler = tabHandler(DATE_PICKER_FOCUSABLE);\nconst monthPickerTabEventHandler = tabHandler(MONTH_PICKER_FOCUSABLE);\nconst yearPickerTabEventHandler = tabHandler(YEAR_PICKER_FOCUSABLE);\n\n// #endregion Focus Handling Event Handling\n\n// #region Date Picker Event Delegation Registration / Component\n\nconst datePickerEvents = {\n [CLICK]: {\n [DATE_PICKER_BUTTON]() {\n toggleCalendar(this);\n },\n [CALENDAR_DATE]() {\n selectDate(this);\n },\n [CALENDAR_MONTH]() {\n selectMonth(this);\n },\n [CALENDAR_YEAR]() {\n selectYear(this);\n },\n [CALENDAR_PREVIOUS_MONTH]() {\n displayPreviousMonth(this);\n },\n [CALENDAR_NEXT_MONTH]() {\n displayNextMonth(this);\n },\n [CALENDAR_PREVIOUS_YEAR]() {\n displayPreviousYear(this);\n },\n [CALENDAR_NEXT_YEAR]() {\n displayNextYear(this);\n },\n [CALENDAR_PREVIOUS_YEAR_CHUNK]() {\n displayPreviousYearChunk(this);\n },\n [CALENDAR_NEXT_YEAR_CHUNK]() {\n displayNextYearChunk(this);\n },\n [CALENDAR_MONTH_SELECTION]() {\n const newCalendar = displayMonthSelection(this);\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\n },\n [CALENDAR_YEAR_SELECTION]() {\n const newCalendar = displayYearSelection(this);\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\n },\n },\n keyup: {\n [DATE_PICKER_CALENDAR](event) {\n const keydown = this.dataset.keydownKeyCode;\n if (`${event.keyCode}` !== keydown) {\n event.preventDefault();\n }\n },\n },\n keydown: {\n [DATE_PICKER_EXTERNAL_INPUT](event) {\n if (event.keyCode === ENTER_KEYCODE) {\n validateDateInput(this);\n }\n },\n [CALENDAR_DATE]: keymap({\n Up: handleUpFromDate,\n ArrowUp: handleUpFromDate,\n Down: handleDownFromDate,\n ArrowDown: handleDownFromDate,\n Left: handleLeftFromDate,\n ArrowLeft: handleLeftFromDate,\n Right: handleRightFromDate,\n ArrowRight: handleRightFromDate,\n Home: handleHomeFromDate,\n End: handleEndFromDate,\n PageDown: handlePageDownFromDate,\n PageUp: handlePageUpFromDate,\n \"Shift+PageDown\": handleShiftPageDownFromDate,\n \"Shift+PageUp\": handleShiftPageUpFromDate,\n }),\n [CALENDAR_DATE_PICKER]: keymap({\n Tab: datePickerTabEventHandler.tabAhead,\n \"Shift+Tab\": datePickerTabEventHandler.tabBack,\n }),\n [CALENDAR_MONTH]: keymap({\n Up: handleUpFromMonth,\n ArrowUp: handleUpFromMonth,\n Down: handleDownFromMonth,\n ArrowDown: handleDownFromMonth,\n Left: handleLeftFromMonth,\n ArrowLeft: handleLeftFromMonth,\n Right: handleRightFromMonth,\n ArrowRight: handleRightFromMonth,\n Home: handleHomeFromMonth,\n End: handleEndFromMonth,\n PageDown: handlePageDownFromMonth,\n PageUp: handlePageUpFromMonth,\n }),\n [CALENDAR_MONTH_PICKER]: keymap({\n Tab: monthPickerTabEventHandler.tabAhead,\n \"Shift+Tab\": monthPickerTabEventHandler.tabBack,\n }),\n [CALENDAR_YEAR]: keymap({\n Up: handleUpFromYear,\n ArrowUp: handleUpFromYear,\n Down: handleDownFromYear,\n ArrowDown: handleDownFromYear,\n Left: handleLeftFromYear,\n ArrowLeft: handleLeftFromYear,\n Right: handleRightFromYear,\n ArrowRight: handleRightFromYear,\n Home: handleHomeFromYear,\n End: handleEndFromYear,\n PageDown: handlePageDownFromYear,\n PageUp: handlePageUpFromYear,\n }),\n [CALENDAR_YEAR_PICKER]: keymap({\n Tab: yearPickerTabEventHandler.tabAhead,\n \"Shift+Tab\": yearPickerTabEventHandler.tabBack,\n }),\n [DATE_PICKER_CALENDAR](event) {\n this.dataset.keydownKeyCode = event.keyCode;\n },\n [DATE_PICKER](event) {\n const keyMap = keymap({\n Escape: handleEscapeFromCalendar,\n });\n\n keyMap(event);\n },\n },\n focusout: {\n [DATE_PICKER_EXTERNAL_INPUT]() {\n validateDateInput(this);\n },\n [DATE_PICKER](event) {\n if (!this.contains(event.relatedTarget)) {\n hideCalendar(this);\n }\n },\n },\n input: {\n [DATE_PICKER_EXTERNAL_INPUT]() {\n reconcileInputValues(this);\n updateCalendarIfVisible(this);\n },\n },\n};\n\nif (!isIosDevice()) {\n datePickerEvents.mousemove = {\n [CALENDAR_DATE_CURRENT_MONTH]() {\n handleMousemoveFromDate(this);\n },\n [CALENDAR_MONTH]() {\n handleMousemoveFromMonth(this);\n },\n [CALENDAR_YEAR]() {\n handleMousemoveFromYear(this);\n },\n };\n}\n\nconst datePicker = behavior(datePickerEvents, {\n init(root) {\n select(DATE_PICKER, root).forEach((datePickerEl) => {\n enhanceDatePicker(datePickerEl);\n });\n },\n getDatePickerContext,\n disable,\n enable,\n isDateInputInvalid,\n setCalendarValue,\n validateDateInput,\n renderCalendar,\n updateCalendarIfVisible,\n});\n\n// #endregion Date Picker Event Delegation Registration / Component\n\nmodule.exports = datePicker;\n","const behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst {\n getDatePickerContext,\n isDateInputInvalid,\n updateCalendarIfVisible,\n} = require(\"./date-picker\");\n\nconst DATE_PICKER_CLASS = `${PREFIX}-date-picker`;\nconst DATE_RANGE_PICKER_CLASS = `${PREFIX}-date-range-picker`;\nconst DATE_RANGE_PICKER_RANGE_START_CLASS = `${DATE_RANGE_PICKER_CLASS}__range-start`;\nconst DATE_RANGE_PICKER_RANGE_END_CLASS = `${DATE_RANGE_PICKER_CLASS}__range-end`;\n\nconst DATE_PICKER = `.${DATE_PICKER_CLASS}`;\nconst DATE_RANGE_PICKER = `.${DATE_RANGE_PICKER_CLASS}`;\nconst DATE_RANGE_PICKER_RANGE_START = `.${DATE_RANGE_PICKER_RANGE_START_CLASS}`;\nconst DATE_RANGE_PICKER_RANGE_END = `.${DATE_RANGE_PICKER_RANGE_END_CLASS}`;\n\nconst DEFAULT_MIN_DATE = \"0000-01-01\";\n\n/**\n * The properties and elements within the date range picker.\n * @typedef {Object} DateRangePickerContext\n * @property {HTMLElement} dateRangePickerEl\n * @property {HTMLElement} rangeStartEl\n * @property {HTMLElement} rangeEndEl\n */\n\n/**\n * Get an object of the properties and elements belonging directly to the given\n * date picker component.\n *\n * @param {HTMLElement} el the element within the date picker\n * @returns {DateRangePickerContext} elements\n */\nconst getDateRangePickerContext = (el) => {\n const dateRangePickerEl = el.closest(DATE_RANGE_PICKER);\n\n if (!dateRangePickerEl) {\n throw new Error(`Element is missing outer ${DATE_RANGE_PICKER}`);\n }\n\n const rangeStartEl = dateRangePickerEl.querySelector(\n DATE_RANGE_PICKER_RANGE_START\n );\n const rangeEndEl = dateRangePickerEl.querySelector(\n DATE_RANGE_PICKER_RANGE_END\n );\n\n return {\n dateRangePickerEl,\n rangeStartEl,\n rangeEndEl,\n };\n};\n\n/**\n * handle update from range start date picker\n *\n * @param {HTMLElement} el an element within the date range picker\n */\nconst handleRangeStartUpdate = (el) => {\n const {\n dateRangePickerEl,\n rangeStartEl,\n rangeEndEl,\n } = getDateRangePickerContext(el);\n const { internalInputEl } = getDatePickerContext(rangeStartEl);\n const updatedDate = internalInputEl.value;\n\n if (updatedDate && !isDateInputInvalid(internalInputEl)) {\n rangeEndEl.dataset.minDate = updatedDate;\n rangeEndEl.dataset.rangeDate = updatedDate;\n rangeEndEl.dataset.defaultDate = updatedDate;\n } else {\n rangeEndEl.dataset.minDate = dateRangePickerEl.dataset.minDate || \"\";\n rangeEndEl.dataset.rangeDate = \"\";\n rangeEndEl.dataset.defaultDate = \"\";\n }\n\n updateCalendarIfVisible(rangeEndEl);\n};\n\n/**\n * handle update from range start date picker\n *\n * @param {HTMLElement} el an element within the date range picker\n */\nconst handleRangeEndUpdate = (el) => {\n const {\n dateRangePickerEl,\n rangeStartEl,\n rangeEndEl,\n } = getDateRangePickerContext(el);\n const { internalInputEl } = getDatePickerContext(rangeEndEl);\n const updatedDate = internalInputEl.value;\n\n if (updatedDate && !isDateInputInvalid(internalInputEl)) {\n rangeStartEl.dataset.maxDate = updatedDate;\n rangeStartEl.dataset.rangeDate = updatedDate;\n rangeStartEl.dataset.defaultDate = updatedDate;\n } else {\n rangeStartEl.dataset.maxDate = dateRangePickerEl.dataset.maxDate || \"\";\n rangeStartEl.dataset.rangeDate = \"\";\n rangeStartEl.dataset.defaultDate = \"\";\n }\n\n updateCalendarIfVisible(rangeStartEl);\n};\n\n/**\n * Enhance an input with the date picker elements\n *\n * @param {HTMLElement} el The initial wrapping element of the date range picker component\n */\nconst enhanceDateRangePicker = (el) => {\n const dateRangePickerEl = el.closest(DATE_RANGE_PICKER);\n\n const [rangeStart, rangeEnd] = select(DATE_PICKER, dateRangePickerEl);\n\n if (!rangeStart) {\n throw new Error(\n `${DATE_RANGE_PICKER} is missing inner two '${DATE_PICKER}' elements`\n );\n }\n\n if (!rangeEnd) {\n throw new Error(\n `${DATE_RANGE_PICKER} is missing second '${DATE_PICKER}' element`\n );\n }\n\n rangeStart.classList.add(DATE_RANGE_PICKER_RANGE_START_CLASS);\n rangeEnd.classList.add(DATE_RANGE_PICKER_RANGE_END_CLASS);\n\n if (!dateRangePickerEl.dataset.minDate) {\n dateRangePickerEl.dataset.minDate = DEFAULT_MIN_DATE;\n }\n\n const minDate = dateRangePickerEl.dataset.minDate;\n rangeStart.dataset.minDate = minDate;\n rangeEnd.dataset.minDate = minDate;\n\n const maxDate = dateRangePickerEl.dataset.maxDate;\n if (maxDate) {\n rangeStart.dataset.maxDate = maxDate;\n rangeEnd.dataset.maxDate = maxDate;\n }\n\n handleRangeStartUpdate(dateRangePickerEl);\n handleRangeEndUpdate(dateRangePickerEl);\n};\n\nconst dateRangePicker = behavior(\n {\n \"input change\": {\n [DATE_RANGE_PICKER_RANGE_START]() {\n handleRangeStartUpdate(this);\n },\n [DATE_RANGE_PICKER_RANGE_END]() {\n handleRangeEndUpdate(this);\n },\n },\n },\n {\n init(root) {\n select(DATE_RANGE_PICKER, root).forEach((dateRangePickerEl) => {\n enhanceDateRangePicker(dateRangePickerEl);\n });\n },\n }\n);\n\nmodule.exports = dateRangePicker;\n","const select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst DROPZONE_CLASS = `${PREFIX}-file-input`;\nconst DROPZONE = `.${DROPZONE_CLASS}`;\nconst INPUT_CLASS = `${PREFIX}-file-input__input`;\nconst TARGET_CLASS = `${PREFIX}-file-input__target`;\nconst BOX_CLASS = `${PREFIX}-file-input__box`;\nconst INSTRUCTIONS_CLASS = `${PREFIX}-file-input__instructions`;\nconst PREVIEW_CLASS = `${PREFIX}-file-input__preview`;\nconst PREVIEW_HEADING_CLASS = `${PREFIX}-file-input__preview-heading`;\nconst DISABLED_CLASS = `${PREFIX}-file-input--disabled`;\nconst CHOOSE_CLASS = `${PREFIX}-file-input__choose`;\nconst ACCEPTED_FILE_MESSAGE_CLASS = `${PREFIX}-file-input__accepted-files-message`;\nconst DRAG_TEXT_CLASS = `${PREFIX}-file-input__drag-text`;\nconst DRAG_CLASS = `${PREFIX}-file-input--drag`;\nconst LOADING_CLASS = \"is-loading\";\nconst HIDDEN_CLASS = \"display-none\";\nconst INVALID_FILE_CLASS = \"has-invalid-file\";\nconst GENERIC_PREVIEW_CLASS_NAME = `${PREFIX}-file-input__preview-image`;\nconst GENERIC_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--generic`;\nconst PDF_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--pdf`;\nconst WORD_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--word`;\nconst VIDEO_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--video`;\nconst EXCEL_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--excel`;\nconst SPACER_GIF =\n \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\";\n\n/**\n * Creates an ID name for each file that strips all invalid characters.\n * @param {string} name - name of the file added to file input\n * @returns {string} same characters as the name with invalide chars removed\n */\nconst makeSafeForID = (name) => {\n return name.replace(/[^a-z0-9]/g, function replaceName(s) {\n const c = s.charCodeAt(0);\n if (c === 32) return \"-\";\n if (c >= 65 && c <= 90) return `img_${s.toLowerCase()}`;\n return `__${(\"000\", c.toString(16)).slice(-4)}`;\n });\n};\n\n/**\n * Builds full file input comonent\n * @param {HTMLElement} fileInputEl - original file input on page\n * @returns {HTMLElement|HTMLElement} - Instructions, target area div\n */\nconst buildFileInput = (fileInputEl) => {\n const acceptsMultiple = fileInputEl.hasAttribute(\"multiple\");\n const fileInputParent = document.createElement(\"div\");\n const dropTarget = document.createElement(\"div\");\n const box = document.createElement(\"div\");\n const instructions = document.createElement(\"div\");\n const disabled = fileInputEl.hasAttribute(\"disabled\");\n\n // Adds class names and other attributes\n fileInputEl.classList.remove(DROPZONE_CLASS);\n fileInputEl.classList.add(INPUT_CLASS);\n fileInputParent.classList.add(DROPZONE_CLASS);\n box.classList.add(BOX_CLASS);\n instructions.classList.add(INSTRUCTIONS_CLASS);\n instructions.setAttribute(\"aria-hidden\", \"true\");\n dropTarget.classList.add(TARGET_CLASS);\n\n // Adds child elements to the DOM\n fileInputEl.parentNode.insertBefore(dropTarget, fileInputEl);\n fileInputEl.parentNode.insertBefore(fileInputParent, dropTarget);\n dropTarget.appendChild(fileInputEl);\n fileInputParent.appendChild(dropTarget);\n fileInputEl.parentNode.insertBefore(instructions, fileInputEl);\n fileInputEl.parentNode.insertBefore(box, fileInputEl);\n\n // Disabled styling\n if (disabled) {\n fileInputParent.classList.add(DISABLED_CLASS);\n fileInputParent.setAttribute(\"aria-disabled\", \"true\");\n }\n\n // Sets instruction test based on whether or not multipe files are accepted\n if (acceptsMultiple) {\n instructions.innerHTML = `<span class=\"${DRAG_TEXT_CLASS}\">Drag files here or </span><span class=\"${CHOOSE_CLASS}\">choose from folder</span>`;\n } else {\n instructions.innerHTML = `<span class=\"${DRAG_TEXT_CLASS}\">Drag file here or </span><span class=\"${CHOOSE_CLASS}\">choose from folder</span>`;\n }\n\n // IE11 and Edge do not support drop files on file inputs, so we've removed text that indicates that\n if (\n /rv:11.0/i.test(navigator.userAgent) ||\n /Edge\\/\\d./i.test(navigator.userAgent)\n ) {\n fileInputParent.querySelector(`.${DRAG_TEXT_CLASS}`).outerHTML = \"\";\n }\n\n return { instructions, dropTarget };\n};\n\n/**\n * Removes image previews, we want to start with a clean list every time files are added to the file input\n * @param {HTMLElement} dropTarget - target area div that encases the input\n * @param {HTMLElement} instructions - text to infrom users to drag or select files\n */\nconst removeOldPreviews = (dropTarget, instructions) => {\n const filePreviews = dropTarget.querySelectorAll(`.${PREVIEW_CLASS}`);\n const currentPreviewHeading = dropTarget.querySelector(\n `.${PREVIEW_HEADING_CLASS}`\n );\n const currentErrorMessage = dropTarget.querySelector(\n `.${ACCEPTED_FILE_MESSAGE_CLASS}`\n );\n\n // Remove the heading above the previews\n if (currentPreviewHeading) {\n currentPreviewHeading.outerHTML = \"\";\n }\n\n // Remove existing error messages\n if (currentErrorMessage) {\n currentErrorMessage.outerHTML = \"\";\n dropTarget.classList.remove(INVALID_FILE_CLASS);\n }\n\n // Get rid of existing previews if they exist, show instructions\n if (filePreviews !== null) {\n if (instructions) {\n instructions.classList.remove(HIDDEN_CLASS);\n }\n Array.prototype.forEach.call(filePreviews, function removeImages(node) {\n node.parentNode.removeChild(node);\n });\n }\n};\n\n/**\n * When using an Accept attribute, invalid files will be hidden from\n * file browser, but they can still be dragged to the input. This\n * function prevents them from being dragged and removes error states\n * when correct files are added.\n * @param {event} e\n * @param {HTMLElement} fileInputEl - file input element\n * @param {HTMLElement} instructions - text to infrom users to drag or select files\n * @param {HTMLElement} dropTarget - target area div that encases the input\n */\nconst preventInvalidFiles = (e, fileInputEl, instructions, dropTarget) => {\n const acceptedFiles = fileInputEl.getAttribute(\"accept\");\n dropTarget.classList.remove(INVALID_FILE_CLASS);\n\n // Runs if only specific files are accepted\n if (acceptedFiles) {\n const errorMessage = document.createElement(\"div\");\n\n // If multiple files are dragged, this iterates through them and look for any files that are not accepted.\n let allFilesAllowed = true;\n for (let i = 0; i < e.dataTransfer.files.length; i += 1) {\n const file = e.dataTransfer.files[i];\n if (allFilesAllowed) {\n allFilesAllowed = file.name.indexOf(acceptedFiles);\n if (allFilesAllowed < 0) {\n break;\n }\n }\n }\n\n // If dragged files are not accepted, this removes them from the value of the input and creates and error state\n if (allFilesAllowed < 0) {\n removeOldPreviews(dropTarget, instructions);\n fileInputEl.value = \"\"; // eslint-disable-line no-param-reassign\n dropTarget.insertBefore(errorMessage, fileInputEl);\n errorMessage.innerHTML = `This is not a valid file type.`;\n errorMessage.classList.add(ACCEPTED_FILE_MESSAGE_CLASS);\n dropTarget.classList.add(INVALID_FILE_CLASS);\n e.preventDefault();\n e.stopPropagation();\n }\n }\n};\n\n/**\n * When new files are applied to file input, this function generates previews\n * and removes old ones.\n * @param {event} e\n * @param {HTMLElement} fileInputEl - file input element\n * @param {HTMLElement} instructions - text to infrom users to drag or select files\n * @param {HTMLElement} dropTarget - target area div that encases the input\n */\nconst handleChange = (e, fileInputEl, instructions, dropTarget) => {\n const fileNames = e.target.files;\n const filePreviewsHeading = document.createElement(\"div\");\n\n // First, get rid of existing previews\n removeOldPreviews(dropTarget, instructions);\n\n // Iterates through files list and creates previews\n for (let i = 0; i < fileNames.length; i += 1) {\n const reader = new FileReader();\n const fileName = fileNames[i].name;\n\n // Starts with a loading image while preview is created\n reader.onloadstart = function createLoadingImage() {\n const imageId = makeSafeForID(fileName);\n const previewImage = `<img id=\"${imageId}\" src=\"${SPACER_GIF}\" alt=\"\" class=\"${GENERIC_PREVIEW_CLASS_NAME} ${LOADING_CLASS}\"/>`;\n\n instructions.insertAdjacentHTML(\n \"afterend\",\n `<div class=\"${PREVIEW_CLASS}\" aria-hidden=\"true\">${previewImage}${fileName}<div>`\n );\n };\n\n // Not all files will be able to generate previews. In case this happens, we provide several types \"generic previews\" based on the file extension.\n reader.onloadend = function createFilePreview() {\n const imageId = makeSafeForID(fileName);\n const previewImage = document.getElementById(imageId);\n if (fileName.indexOf(\".pdf\") > 0) {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${PDF_PREVIEW_CLASS}\")`\n );\n } else if (\n fileName.indexOf(\".doc\") > 0 ||\n fileName.indexOf(\".pages\") > 0\n ) {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${WORD_PREVIEW_CLASS}\")`\n );\n } else if (\n fileName.indexOf(\".xls\") > 0 ||\n fileName.indexOf(\".numbers\") > 0\n ) {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${EXCEL_PREVIEW_CLASS}\")`\n );\n } else if (fileName.indexOf(\".mov\") > 0 || fileName.indexOf(\".mp4\") > 0) {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${VIDEO_PREVIEW_CLASS}\")`\n );\n } else {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${GENERIC_PREVIEW_CLASS}\")`\n );\n }\n\n // Removes loader and displays preview\n previewImage.classList.remove(LOADING_CLASS);\n previewImage.src = reader.result;\n };\n\n if (fileNames[i]) {\n reader.readAsDataURL(fileNames[i]);\n }\n\n // Adds heading above file previews, pluralizes if there are multiple\n if (i === 0) {\n dropTarget.insertBefore(filePreviewsHeading, instructions);\n filePreviewsHeading.innerHTML = `Selected file <span class=\"usa-file-input__choose\">Change file</span>`;\n } else if (i >= 1) {\n dropTarget.insertBefore(filePreviewsHeading, instructions);\n filePreviewsHeading.innerHTML = `${\n i + 1\n } files selected <span class=\"usa-file-input__choose\">Change files</span>`;\n }\n\n // Hides null state content and sets preview heading class\n if (filePreviewsHeading) {\n instructions.classList.add(HIDDEN_CLASS);\n filePreviewsHeading.classList.add(PREVIEW_HEADING_CLASS);\n }\n }\n};\n\nconst fileInput = behavior(\n {},\n {\n init(root) {\n select(DROPZONE, root).forEach((fileInputEl) => {\n const { instructions, dropTarget } = buildFileInput(fileInputEl);\n\n dropTarget.addEventListener(\n \"dragover\",\n function handleDragOver() {\n this.classList.add(DRAG_CLASS);\n },\n false\n );\n\n dropTarget.addEventListener(\n \"dragleave\",\n function handleDragLeave() {\n this.classList.remove(DRAG_CLASS);\n },\n false\n );\n\n dropTarget.addEventListener(\n \"drop\",\n function handleDrop(e) {\n preventInvalidFiles(e, fileInputEl, instructions, dropTarget);\n this.classList.remove(DRAG_CLASS);\n },\n false\n );\n\n // eslint-disable-next-line no-param-reassign\n fileInputEl.onchange = (e) => {\n handleChange(e, fileInputEl, instructions, dropTarget);\n };\n });\n },\n }\n);\n\nmodule.exports = fileInput;\n","const debounce = require(\"lodash.debounce\");\nconst behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst HIDDEN = \"hidden\";\nconst SCOPE = `.${PREFIX}-footer--big`;\nconst NAV = `${SCOPE} nav`;\nconst BUTTON = `${NAV} .${PREFIX}-footer__primary-link`;\nconst COLLAPSIBLE = `.${PREFIX}-footer__primary-content--collapsible`;\n\nconst HIDE_MAX_WIDTH = 480;\nconst DEBOUNCE_RATE = 180;\n\nfunction showPanel() {\n if (window.innerWidth < HIDE_MAX_WIDTH) {\n const collapseEl = this.closest(COLLAPSIBLE);\n collapseEl.classList.toggle(HIDDEN);\n\n // NB: this *should* always succeed because the button\n // selector is scoped to \".{prefix}-footer-big nav\"\n const collapsibleEls = select(COLLAPSIBLE, collapseEl.closest(NAV));\n\n collapsibleEls.forEach((el) => {\n if (el !== collapseEl) {\n el.classList.add(HIDDEN);\n }\n });\n }\n}\n\nlet lastInnerWidth;\n\nconst resize = debounce(() => {\n if (lastInnerWidth === window.innerWidth) return;\n lastInnerWidth = window.innerWidth;\n const hidden = window.innerWidth < HIDE_MAX_WIDTH;\n select(COLLAPSIBLE).forEach((list) => list.classList.toggle(HIDDEN, hidden));\n}, DEBOUNCE_RATE);\n\nmodule.exports = behavior(\n {\n [CLICK]: {\n [BUTTON]: showPanel,\n },\n },\n {\n // export for use elsewhere\n HIDE_MAX_WIDTH,\n DEBOUNCE_RATE,\n\n init() {\n resize();\n window.addEventListener(\"resize\", resize);\n },\n\n teardown() {\n window.removeEventListener(\"resize\", resize);\n },\n }\n);\n","const accordion = require(\"./accordion\");\nconst banner = require(\"./banner\");\nconst characterCount = require(\"./character-count\");\nconst comboBox = require(\"./combo-box\");\nconst fileInput = require(\"./file-input\");\nconst footer = require(\"./footer\");\nconst navigation = require(\"./navigation\");\nconst password = require(\"./password\");\nconst search = require(\"./search\");\nconst skipnav = require(\"./skipnav\");\nconst tooltip = require(\"./tooltip\");\nconst validator = require(\"./validator\");\nconst datePicker = require(\"./date-picker\");\nconst dateRangePicker = require(\"./date-range-picker\");\nconst timePicker = require(\"./time-picker\");\n\nmodule.exports = {\n accordion,\n banner,\n characterCount,\n comboBox,\n datePicker,\n dateRangePicker,\n fileInput,\n footer,\n navigation,\n password,\n search,\n skipnav,\n timePicker,\n tooltip,\n validator,\n};\n","const behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst toggle = require(\"../utils/toggle\");\nconst FocusTrap = require(\"../utils/focus-trap\");\nconst accordion = require(\"./accordion\");\n\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst BODY = \"body\";\nconst NAV = `.${PREFIX}-nav`;\nconst NAV_LINKS = `${NAV} a`;\nconst NAV_CONTROL = `button.${PREFIX}-nav__link`;\nconst OPENERS = `.${PREFIX}-menu-btn`;\nconst CLOSE_BUTTON = `.${PREFIX}-nav__close`;\nconst OVERLAY = `.${PREFIX}-overlay`;\nconst CLOSERS = `${CLOSE_BUTTON}, .${PREFIX}-overlay`;\nconst TOGGLES = [NAV, OVERLAY].join(\", \");\n\nconst ACTIVE_CLASS = \"usa-js-mobile-nav--active\";\nconst VISIBLE_CLASS = \"is-visible\";\n\nlet navigation;\nlet navActive;\n\nconst isActive = () => document.body.classList.contains(ACTIVE_CLASS);\n\nconst toggleNav = (active) => {\n const { body } = document;\n const safeActive = typeof active === \"boolean\" ? active : !isActive();\n\n body.classList.toggle(ACTIVE_CLASS, safeActive);\n\n select(TOGGLES).forEach((el) =>\n el.classList.toggle(VISIBLE_CLASS, safeActive)\n );\n\n navigation.focusTrap.update(safeActive);\n\n const closeButton = body.querySelector(CLOSE_BUTTON);\n const menuButton = body.querySelector(OPENERS);\n\n if (safeActive && closeButton) {\n // The mobile nav was just activated, so focus on the close button,\n // which is just before all the nav elements in the tab order.\n closeButton.focus();\n } else if (\n !safeActive &&\n document.activeElement === closeButton &&\n menuButton\n ) {\n // The mobile nav was just deactivated, and focus was on the close\n // button, which is no longer visible. We don't want the focus to\n // disappear into the void, so focus on the menu button if it's\n // visible (this may have been what the user was just focused on,\n // if they triggered the mobile nav by mistake).\n menuButton.focus();\n }\n\n return safeActive;\n};\n\nconst resize = () => {\n const closer = document.body.querySelector(CLOSE_BUTTON);\n\n if (isActive() && closer && closer.getBoundingClientRect().width === 0) {\n // When the mobile nav is active, and the close box isn't visible,\n // we know the user's viewport has been resized to be larger.\n // Let's make the page state consistent by deactivating the mobile nav.\n navigation.toggleNav.call(closer, false);\n }\n};\n\nconst onMenuClose = () => navigation.toggleNav.call(navigation, false);\nconst hideActiveNavDropdown = () => {\n toggle(navActive, false);\n navActive = null;\n};\n\nnavigation = behavior(\n {\n [CLICK]: {\n [NAV_CONTROL]() {\n // If another nav is open, close it\n if (navActive && navActive !== this) {\n hideActiveNavDropdown();\n }\n // store a reference to the last clicked nav link element, so we\n // can hide the dropdown if another element on the page is clicked\n if (navActive) {\n hideActiveNavDropdown();\n } else {\n navActive = this;\n toggle(navActive, true);\n }\n\n // Do this so the event handler on the body doesn't fire\n return false;\n },\n [BODY]() {\n if (navActive) {\n hideActiveNavDropdown();\n }\n },\n [OPENERS]: toggleNav,\n [CLOSERS]: toggleNav,\n [NAV_LINKS]() {\n // A navigation link has been clicked! We want to collapse any\n // hierarchical navigation UI it's a part of, so that the user\n // can focus on whatever they've just selected.\n\n // Some navigation links are inside accordions; when they're\n // clicked, we want to collapse those accordions.\n const acc = this.closest(accordion.ACCORDION);\n\n if (acc) {\n accordion.getButtons(acc).forEach((btn) => accordion.hide(btn));\n }\n\n // If the mobile navigation menu is active, we want to hide it.\n if (isActive()) {\n navigation.toggleNav.call(navigation, false);\n }\n },\n },\n },\n {\n init(root) {\n const trapContainer = root.querySelector(NAV);\n\n if (trapContainer) {\n navigation.focusTrap = FocusTrap(trapContainer, {\n Escape: onMenuClose,\n });\n }\n\n resize();\n window.addEventListener(\"resize\", resize, false);\n },\n teardown() {\n window.removeEventListener(\"resize\", resize, false);\n navActive = false;\n },\n focusTrap: null,\n toggleNav,\n }\n);\n\nmodule.exports = navigation;\n","const behavior = require(\"../utils/behavior\");\nconst toggleFormInput = require(\"../utils/toggle-form-input\");\n\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst LINK = `.${PREFIX}-show-password, .${PREFIX}-show-multipassword`;\n\nfunction toggle(event) {\n event.preventDefault();\n toggleFormInput(this);\n}\n\nmodule.exports = behavior({\n [CLICK]: {\n [LINK]: toggle,\n },\n});\n","const ignore = require(\"receptor/ignore\");\nconst behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\n\nconst { CLICK } = require(\"../events\");\n\nconst BUTTON = \".js-search-button\";\nconst FORM = \".js-search-form\";\nconst INPUT = \"[type=search]\";\nconst CONTEXT = \"header\"; // XXX\n\nlet lastButton;\n\nconst getForm = (button) => {\n const context = button.closest(CONTEXT);\n return context ? context.querySelector(FORM) : document.querySelector(FORM);\n};\n\nconst toggleSearch = (button, active) => {\n const form = getForm(button);\n\n if (!form) {\n throw new Error(`No ${FORM} found for search toggle in ${CONTEXT}!`);\n }\n\n /* eslint-disable no-param-reassign */\n button.hidden = active;\n form.hidden = !active;\n /* eslint-enable */\n\n if (!active) {\n return;\n }\n\n const input = form.querySelector(INPUT);\n\n if (input) {\n input.focus();\n }\n // when the user clicks _outside_ of the form w/ignore(): hide the\n // search, then remove the listener\n const listener = ignore(form, () => {\n if (lastButton) {\n hideSearch.call(lastButton); // eslint-disable-line no-use-before-define\n }\n\n document.body.removeEventListener(CLICK, listener);\n });\n\n // Normally we would just run this code without a timeout, but\n // IE11 and Edge will actually call the listener *immediately* because\n // they are currently handling this exact type of event, so we'll\n // make sure the browser is done handling the current click event,\n // if any, before we attach the listener.\n setTimeout(() => {\n document.body.addEventListener(CLICK, listener);\n }, 0);\n};\n\nfunction showSearch() {\n toggleSearch(this, true);\n lastButton = this;\n}\n\nfunction hideSearch() {\n toggleSearch(this, false);\n lastButton = undefined;\n}\n\nconst search = behavior(\n {\n [CLICK]: {\n [BUTTON]: showSearch,\n },\n },\n {\n init(target) {\n select(BUTTON, target).forEach((button) => {\n toggleSearch(button, false);\n });\n },\n teardown() {\n // forget the last button clicked\n lastButton = undefined;\n },\n }\n);\n\nmodule.exports = search;\n","const once = require(\"receptor/once\");\nconst behavior = require(\"../utils/behavior\");\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst LINK = `.${PREFIX}-skipnav[href^=\"#\"], .${PREFIX}-footer__return-to-top [href^=\"#\"]`;\nconst MAINCONTENT = \"main-content\";\n\nfunction setTabindex() {\n // NB: we know because of the selector we're delegating to below that the\n // href already begins with '#'\n const id = this.getAttribute(\"href\");\n const target = document.getElementById(\n id === \"#\" ? MAINCONTENT : id.slice(1)\n );\n\n if (target) {\n target.style.outline = \"0\";\n target.setAttribute(\"tabindex\", 0);\n target.focus();\n target.addEventListener(\n \"blur\",\n once(() => {\n target.setAttribute(\"tabindex\", -1);\n })\n );\n } else {\n // throw an error?\n }\n}\n\nmodule.exports = behavior({\n [CLICK]: {\n [LINK]: setTabindex,\n },\n});\n","const behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst { COMBO_BOX_CLASS, enhanceComboBox } = require(\"./combo-box\");\n\nconst TIME_PICKER_CLASS = `${PREFIX}-time-picker`;\nconst TIME_PICKER = `.${TIME_PICKER_CLASS}`;\nconst MAX_TIME = 60 * 24 - 1;\nconst MIN_TIME = 0;\nconst DEFAULT_STEP = 30;\nconst MIN_STEP = 1;\n\nconst FILTER_DATASET = {\n filter:\n \"0?{{ hourQueryFilter }}:{{minuteQueryFilter}}.*{{ apQueryFilter }}m?\",\n apQueryFilter: \"([ap])\",\n hourQueryFilter: \"([1-9][0-2]?)\",\n minuteQueryFilter: \"[\\\\d]+:([0-9]{0,2})\",\n};\n\n/**\n * Parse a string of hh:mm into minutes\n *\n * @param {string} timeStr the time string to parse\n * @returns {number} the number of minutes\n */\nconst parseTimeString = (timeStr) => {\n let minutes;\n\n if (timeStr) {\n const [hours, mins] = timeStr.split(\":\").map((str) => {\n let value;\n const parsed = parseInt(str, 10);\n if (!Number.isNaN(parsed)) value = parsed;\n return value;\n });\n\n if (hours != null && mins != null) {\n minutes = hours * 60 + mins;\n }\n }\n\n return minutes;\n};\n\n/**\n * Enhance an input with the date picker elements\n *\n * @param {HTMLElement} el The initial wrapping element of the date picker component\n */\nconst transformTimePicker = (el) => {\n const timePickerEl = el.closest(TIME_PICKER);\n\n const initialInputEl = timePickerEl.querySelector(`input`);\n\n if (!initialInputEl) {\n throw new Error(`${TIME_PICKER} is missing inner input`);\n }\n\n const selectEl = document.createElement(\"select\");\n\n [\"id\", \"name\", \"required\", \"aria-label\", \"aria-labelledby\"].forEach(\n (name) => {\n if (initialInputEl.hasAttribute(name)) {\n const value = initialInputEl.getAttribute(name);\n selectEl.setAttribute(name, value);\n initialInputEl.removeAttribute(name);\n }\n }\n );\n\n const padZeros = (value, length) => {\n return `0000${value}`.slice(-length);\n };\n\n const getTimeContext = (minutes) => {\n const minute = minutes % 60;\n const hour24 = Math.floor(minutes / 60);\n const hour12 = hour24 % 12 || 12;\n const ampm = hour24 < 12 ? \"am\" : \"pm\";\n\n return {\n minute,\n hour24,\n hour12,\n ampm,\n };\n };\n\n const minTime = Math.max(\n MIN_TIME,\n parseTimeString(timePickerEl.dataset.minTime) || MIN_TIME\n );\n const maxTime = Math.min(\n MAX_TIME,\n parseTimeString(timePickerEl.dataset.maxTime) || MAX_TIME\n );\n const step = Math.floor(\n Math.max(MIN_STEP, timePickerEl.dataset.step || DEFAULT_STEP)\n );\n\n for (let time = minTime; time <= maxTime; time += step) {\n const { minute, hour24, hour12, ampm } = getTimeContext(time);\n\n const option = document.createElement(\"option\");\n option.value = `${padZeros(hour24, 2)}:${padZeros(minute, 2)}`;\n option.text = `${hour12}:${padZeros(minute, 2)}${ampm}`;\n selectEl.appendChild(option);\n }\n\n timePickerEl.classList.add(COMBO_BOX_CLASS);\n\n // combo box properties\n Object.keys(FILTER_DATASET).forEach((key) => {\n timePickerEl.dataset[key] = FILTER_DATASET[key];\n });\n timePickerEl.dataset.disableFiltering = \"true\";\n\n timePickerEl.appendChild(selectEl);\n initialInputEl.style.display = \"none\";\n};\n\nconst timePicker = behavior(\n {},\n {\n init(root) {\n select(TIME_PICKER, root).forEach((timePickerEl) => {\n transformTimePicker(timePickerEl);\n enhanceComboBox(timePickerEl);\n });\n },\n FILTER_DATASET,\n }\n);\n\nmodule.exports = timePicker;\n","// Tooltips\nconst select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst isElementInViewport = require(\"../utils/is-in-viewport\");\n\nconst TOOLTIP = `.${PREFIX}-tooltip`;\nconst TOOLTIP_TRIGGER_CLASS = `${PREFIX}-tooltip__trigger`;\nconst TOOLTIP_CLASS = `${PREFIX}-tooltip`;\nconst TOOLTIP_BODY_CLASS = `${PREFIX}-tooltip__body`;\nconst SET_CLASS = \"is-set\";\nconst VISIBLE_CLASS = \"is-visible\";\nconst TRIANGLE_SIZE = 5;\nconst SPACER = 2;\nconst ADJUST_WIDTH_CLASS = `${PREFIX}-tooltip__body--wrap`;\n\n/**\n * Add one or more listeners to an element\n * @param {DOMElement} element - DOM element to add listeners to\n * @param {events} eventNames - space separated list of event names, e.g. 'click change'\n * @param {Function} listener - function to attach for each event as a listener\n */\nconst addListenerMulti = (element, eventNames, listener) => {\n const events = eventNames.split(\" \");\n for (let i = 0, iLen = events.length; i < iLen; i += 1) {\n element.addEventListener(events[i], listener, false);\n }\n};\n\n/**\n * Shows the tooltip\n * @param {HTMLElement} tooltipTrigger - the element that initializes the tooltip\n */\nconst showToolTip = (tooltipBody, tooltipTrigger, position, wrapper) => {\n tooltipBody.setAttribute(\"aria-hidden\", \"false\");\n\n // This sets up the tooltip body. The opacity is 0, but\n // we can begin running the calculations below.\n tooltipBody.classList.add(SET_CLASS);\n\n // Calculate sizing and adjustments for positioning\n const tooltipWidth = tooltipTrigger.offsetWidth;\n const tooltipHeight = tooltipTrigger.offsetHeight;\n const offsetForTopMargin = parseInt(\n window.getComputedStyle(tooltipTrigger).getPropertyValue(\"margin-top\"),\n 10\n );\n const offsetForBottomMargin = parseInt(\n window.getComputedStyle(tooltipTrigger).getPropertyValue(\"margin-bottom\"),\n 10\n );\n const offsetForTopPadding = parseInt(\n window.getComputedStyle(wrapper).getPropertyValue(\"padding-top\"),\n 10\n );\n const offsetForBottomPadding = parseInt(\n window.getComputedStyle(wrapper).getPropertyValue(\"padding-bottom\"),\n 10\n );\n const offsetForTooltipBodyHeight = parseInt(\n window.getComputedStyle(tooltipBody).getPropertyValue(\"height\"),\n 10\n );\n const leftOffset = tooltipTrigger.offsetLeft;\n const toolTipBodyWidth = tooltipBody.offsetWidth;\n const adjustHorizontalCenter = tooltipWidth / 2 + leftOffset;\n const adjustToEdgeX = tooltipWidth + TRIANGLE_SIZE + SPACER;\n const adjustToEdgeY = tooltipHeight + TRIANGLE_SIZE + SPACER;\n\n /**\n * Position the tooltip body when the trigger is hovered\n * Removes old positioning classnames and reapplies. This allows\n * positioning to change in case the user resizes browser or DOM manipulation\n * causes tooltip to get clipped from viewport\n *\n * @param {string} setPos - can be \"top\", \"bottom\", \"right\", \"left\"\n */\n const setPositionClass = (setPos) => {\n tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--top`);\n tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--bottom`);\n tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--right`);\n tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--left`);\n tooltipBody.classList.add(`${TOOLTIP_BODY_CLASS}--${setPos}`);\n };\n\n /**\n * Positions tooltip at the top\n * We check if the element is in the viewport so we know whether or not we\n * need to constrain the width\n * @param {HTMLElement} e - this is the tooltip body\n */\n const positionTop = (e) => {\n setPositionClass(\"top\");\n e.style.marginLeft = `${adjustHorizontalCenter}px`;\n if (!isElementInViewport(e)) {\n e.classList.add(ADJUST_WIDTH_CLASS);\n }\n e.style.marginBottom = `${\n adjustToEdgeY + offsetForBottomMargin + offsetForBottomPadding\n }px`;\n };\n\n /**\n * Positions tooltip at the bottom\n * We check if the element is in theviewport so we know whether or not we\n * need to constrain the width\n * @param {HTMLElement} e - this is the tooltip body\n */\n const positionBottom = (e) => {\n setPositionClass(\"bottom\");\n e.style.marginLeft = `${adjustHorizontalCenter}px`;\n if (!isElementInViewport(e)) {\n e.classList.add(ADJUST_WIDTH_CLASS);\n }\n e.style.marginTop = `${\n adjustToEdgeY + offsetForTopMargin + offsetForTopPadding\n }px`;\n };\n\n /**\n * Positions tooltip at the right\n * @param {HTMLElement} e - this is the tooltip body\n */\n const positionRight = (e) => {\n setPositionClass(\"right\");\n e.style.marginBottom = \"0\";\n e.style.marginLeft = `${adjustToEdgeX + leftOffset}px`;\n e.style.bottom = `${\n (tooltipHeight - offsetForTooltipBodyHeight) / 2 +\n offsetForBottomMargin +\n offsetForBottomPadding\n }px`;\n return false;\n };\n\n /**\n * Positions tooltip at the right\n * @param {HTMLElement} e - this is the tooltip body\n */\n const positionLeft = (e) => {\n setPositionClass(\"left\");\n e.style.marginBottom = \"0\";\n if (leftOffset > toolTipBodyWidth) {\n e.style.marginLeft = `${\n leftOffset - toolTipBodyWidth - (TRIANGLE_SIZE + SPACER)\n }px`;\n } else {\n e.style.marginLeft = `-${\n toolTipBodyWidth - leftOffset + (TRIANGLE_SIZE + SPACER)\n }px`;\n }\n e.style.bottom = `${\n (tooltipHeight - offsetForTooltipBodyHeight) / 2 +\n offsetForBottomMargin +\n offsetForBottomPadding\n }px`;\n };\n\n /**\n * We try to set the position based on the\n * original intention, but make adjustments\n * if the element is clipped out of the viewport\n */\n switch (position) {\n case \"top\":\n positionTop(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionBottom(tooltipBody);\n }\n break;\n case \"bottom\":\n positionBottom(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionTop(tooltipBody);\n }\n break;\n case \"right\":\n positionRight(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionLeft(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionTop(tooltipBody);\n }\n }\n break;\n case \"left\":\n positionLeft(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionRight(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionTop(tooltipBody);\n }\n }\n break;\n\n default:\n // skip default case\n break;\n }\n\n /**\n * Actually show the tooltip. The VISIBLE_CLASS\n * will change the opacity to 1\n */\n setTimeout(function makeVisible() {\n tooltipBody.classList.add(VISIBLE_CLASS);\n }, 20);\n};\n\n/**\n * Removes all the properties to show and position the tooltip,\n * and resets the tooltip position to the original intention\n * in case the window is resized or the element is moved through\n * DOM maniulation.\n * @param {HTMLElement} tooltipBody - The body of the tooltip\n */\nconst hideToolTip = (tooltipBody) => {\n tooltipBody.classList.remove(VISIBLE_CLASS);\n tooltipBody.classList.remove(SET_CLASS);\n tooltipBody.classList.remove(ADJUST_WIDTH_CLASS);\n tooltipBody.setAttribute(\"aria-hidden\", \"true\");\n};\n\n/**\n * Setup the tooltip component\n * @param {HTMLElement} tooltipTrigger The element that creates the tooltip\n */\nconst setUpAttributes = (tooltipTrigger) => {\n const tooltipID = `tooltip-${Math.floor(Math.random() * 900000) + 100000}`;\n const tooltipContent = tooltipTrigger.getAttribute(\"title\");\n const wrapper = document.createElement(\"span\");\n const tooltipBody = document.createElement(\"span\");\n const position = tooltipTrigger.getAttribute(\"data-position\")\n ? tooltipTrigger.getAttribute(\"data-position\")\n : \"top\";\n const additionalClasses = tooltipTrigger.getAttribute(\"data-classes\");\n\n // Set up tooltip attributes\n tooltipTrigger.setAttribute(\"aria-describedby\", tooltipID);\n tooltipTrigger.setAttribute(\"tabindex\", \"0\");\n tooltipTrigger.setAttribute(\"title\", \"\");\n tooltipTrigger.classList.remove(TOOLTIP_CLASS);\n tooltipTrigger.classList.add(TOOLTIP_TRIGGER_CLASS);\n\n // insert wrapper before el in the DOM tree\n tooltipTrigger.parentNode.insertBefore(wrapper, tooltipTrigger);\n\n // set up the wrapper\n wrapper.appendChild(tooltipTrigger);\n wrapper.classList.add(TOOLTIP_CLASS);\n wrapper.appendChild(tooltipBody);\n\n // Apply additional class names to wrapper element\n if (additionalClasses) {\n const classesArray = additionalClasses.split(\" \");\n classesArray.forEach((classname) => wrapper.classList.add(classname));\n }\n\n // set up the tooltip body\n tooltipBody.classList.add(TOOLTIP_BODY_CLASS);\n tooltipBody.setAttribute(\"id\", tooltipID);\n tooltipBody.setAttribute(\"role\", \"tooltip\");\n tooltipBody.setAttribute(\"aria-hidden\", \"true\");\n\n // place the text in the tooltip\n tooltipBody.innerHTML = tooltipContent;\n\n return { tooltipBody, position, tooltipContent, wrapper };\n};\n\n// Setup our function to run on various events\nconst tooltip = behavior(\n {},\n {\n init(root) {\n select(TOOLTIP, root).forEach((tooltipTrigger) => {\n const {\n tooltipBody,\n position,\n tooltipContent,\n wrapper,\n } = setUpAttributes(tooltipTrigger);\n\n if (tooltipContent) {\n // Listeners for showing and hiding the tooltip\n addListenerMulti(\n tooltipTrigger,\n \"mouseenter focus\",\n function handleShow() {\n showToolTip(tooltipBody, tooltipTrigger, position, wrapper);\n return false;\n }\n );\n\n // Keydown here prevents tooltips from being read twice by screen reader. also allows excape key to close it (along with any other.)\n addListenerMulti(\n tooltipTrigger,\n \"mouseleave blur keydown\",\n function handleHide() {\n hideToolTip(tooltipBody);\n return false;\n }\n );\n } else {\n // throw error or let other tooltips on page function?\n }\n });\n },\n }\n);\n\nmodule.exports = tooltip;\n","const behavior = require(\"../utils/behavior\");\nconst validate = require(\"../utils/validate-input\");\n\nfunction change() {\n validate(this);\n}\n\nconst validator = behavior({\n \"keyup change\": {\n \"input[data-validation-element]\": change,\n },\n});\n\nmodule.exports = validator;\n","module.exports = {\n prefix: \"usa\",\n};\n","module.exports = {\n // This used to be conditionally dependent on whether the\n // browser supported touch events; if it did, `CLICK` was set to\n // `touchstart`. However, this had downsides:\n //\n // * It pre-empted mobile browsers' default behavior of detecting\n // whether a touch turned into a scroll, thereby preventing\n // users from using some of our components as scroll surfaces.\n //\n // * Some devices, such as the Microsoft Surface Pro, support *both*\n // touch and clicks. This meant the conditional effectively dropped\n // support for the user's mouse, frustrating users who preferred\n // it on those systems.\n CLICK: \"click\",\n};\n","/* eslint-disable consistent-return */\n/* eslint-disable func-names */\n(function () {\n if (typeof window.CustomEvent === \"function\") return false;\n\n function CustomEvent(event, _params) {\n const params = _params || {\n bubbles: false,\n cancelable: false,\n detail: null,\n };\n const evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n return evt;\n }\n\n window.CustomEvent = CustomEvent;\n})();\n","const elproto = window.HTMLElement.prototype;\nconst HIDDEN = \"hidden\";\n\nif (!(HIDDEN in elproto)) {\n Object.defineProperty(elproto, HIDDEN, {\n get() {\n return this.hasAttribute(HIDDEN);\n },\n set(value) {\n if (value) {\n this.setAttribute(HIDDEN, \"\");\n } else {\n this.removeAttribute(HIDDEN);\n }\n },\n });\n}\n","// polyfills HTMLElement.prototype.classList and DOMTokenList\nrequire(\"classlist-polyfill\");\n// polyfills HTMLElement.prototype.hidden\nrequire(\"./element-hidden\");\n// polyfills Number.isNaN()\nrequire(\"./number-is-nan\");\n// polyfills CustomEvent\nrequire(\"./custom-event\");\n","Number.isNaN =\n Number.isNaN ||\n function isNaN(input) {\n // eslint-disable-next-line no-self-compare\n return typeof input === \"number\" && input !== input;\n };\n","const domready = require(\"domready\");\n\n/**\n * The 'polyfills' define key ECMAScript 5 methods that may be missing from\n * older browsers, so must be loaded first.\n */\nrequire(\"./polyfills\");\n\nconst uswds = require(\"./config\");\n\nconst components = require(\"./components\");\n\nuswds.components = components;\n\ndomready(() => {\n const target = document.body;\n Object.keys(components).forEach((key) => {\n const behavior = components[key];\n behavior.on(target);\n });\n});\n\nmodule.exports = uswds;\n","module.exports = (htmlDocument = document) => htmlDocument.activeElement;\n","const assign = require(\"object-assign\");\nconst Behavior = require(\"receptor/behavior\");\n\n/**\n * @name sequence\n * @param {...Function} seq an array of functions\n * @return { closure } callHooks\n */\n// We use a named function here because we want it to inherit its lexical scope\n// from the behavior props object, not from the module\nconst sequence = (...seq) =>\n function callHooks(target = document.body) {\n seq.forEach((method) => {\n if (typeof this[method] === \"function\") {\n this[method].call(this, target);\n }\n });\n };\n\n/**\n * @name behavior\n * @param {object} events\n * @param {object?} props\n * @return {receptor.behavior}\n */\nmodule.exports = (events, props) =>\n Behavior(\n events,\n assign(\n {\n on: sequence(\"init\", \"add\"),\n off: sequence(\"teardown\", \"remove\"),\n },\n props\n )\n );\n","const assign = require(\"object-assign\");\nconst { keymap } = require(\"receptor\");\nconst behavior = require(\"./behavior\");\nconst select = require(\"./select\");\nconst activeElement = require(\"./active-element\");\n\nconst FOCUSABLE =\n 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex=\"0\"], [contenteditable]';\n\nconst tabHandler = (context) => {\n const focusableElements = select(FOCUSABLE, context);\n const firstTabStop = focusableElements[0];\n const lastTabStop = focusableElements[focusableElements.length - 1];\n\n // Special rules for when the user is tabbing forward from the last focusable element,\n // or when tabbing backwards from the first focusable element\n function tabAhead(event) {\n if (activeElement() === lastTabStop) {\n event.preventDefault();\n firstTabStop.focus();\n }\n }\n\n function tabBack(event) {\n if (activeElement() === firstTabStop) {\n event.preventDefault();\n lastTabStop.focus();\n }\n }\n\n return {\n firstTabStop,\n lastTabStop,\n tabAhead,\n tabBack,\n };\n};\n\nmodule.exports = (context, additionalKeyBindings = {}) => {\n const tabEventHandler = tabHandler(context);\n const bindings = additionalKeyBindings;\n const { Esc, Escape } = bindings;\n\n if (Escape && !Esc) bindings.Esc = Escape;\n\n // TODO: In the future, loop over additional keybindings and pass an array\n // of functions, if necessary, to the map keys. Then people implementing\n // the focus trap could pass callbacks to fire when tabbing\n const keyMappings = keymap(\n assign(\n {\n Tab: tabEventHandler.tabAhead,\n \"Shift+Tab\": tabEventHandler.tabBack,\n },\n additionalKeyBindings\n )\n );\n\n const focusTrap = behavior(\n {\n keydown: keyMappings,\n },\n {\n init() {\n // TODO: is this desireable behavior? Should the trap always do this by default or should\n // the component getting decorated handle this?\n tabEventHandler.firstTabStop.focus();\n },\n update(isActive) {\n if (isActive) {\n this.on();\n } else {\n this.off();\n }\n },\n }\n );\n\n return focusTrap;\n};\n","// https://stackoverflow.com/a/7557433\nfunction isElementInViewport(\n el,\n win = window,\n docEl = document.documentElement\n) {\n const rect = el.getBoundingClientRect();\n\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (win.innerHeight || docEl.clientHeight) &&\n rect.right <= (win.innerWidth || docEl.clientWidth)\n );\n}\n\nmodule.exports = isElementInViewport;\n","// iOS detection from: http://stackoverflow.com/a/9039885/177710\nfunction isIosDevice() {\n return (\n typeof navigator !== \"undefined\" &&\n (navigator.userAgent.match(/(iPod|iPhone|iPad)/g) ||\n (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1)) &&\n !window.MSStream\n );\n}\n\nmodule.exports = isIosDevice;\n","/**\n * @name isElement\n * @desc returns whether or not the given argument is a DOM element.\n * @param {any} value\n * @return {boolean}\n */\nconst isElement = (value) =>\n value && typeof value === \"object\" && value.nodeType === 1;\n\n/**\n * @name select\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {Document|HTMLElement?} context - The context to traverse the DOM\n * in. If not provided, it defaults to the document.\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\n */\nmodule.exports = (selector, context) => {\n if (typeof selector !== \"string\") {\n return [];\n }\n\n if (!context || !isElement(context)) {\n context = window.document; // eslint-disable-line no-param-reassign\n }\n\n const selection = context.querySelectorAll(selector);\n return Array.prototype.slice.call(selection);\n};\n","/**\n * Flips given INPUT elements between masked (hiding the field value) and unmasked\n * @param {Array.HTMLElement} fields - An array of INPUT elements\n * @param {Boolean} mask - Whether the mask should be applied, hiding the field value\n */\nmodule.exports = (field, mask) => {\n field.setAttribute(\"autocapitalize\", \"off\");\n field.setAttribute(\"autocorrect\", \"off\");\n field.setAttribute(\"type\", mask ? \"password\" : \"text\");\n};\n","const resolveIdRefs = require(\"resolve-id-refs\");\nconst toggleFieldMask = require(\"./toggle-field-mask\");\n\nconst CONTROLS = \"aria-controls\";\nconst PRESSED = \"aria-pressed\";\nconst SHOW_ATTR = \"data-show-text\";\nconst HIDE_ATTR = \"data-hide-text\";\n\n/**\n * Replace the word \"Show\" (or \"show\") with \"Hide\" (or \"hide\") in a string.\n * @param {string} showText\n * @return {strong} hideText\n */\nconst getHideText = (showText) =>\n showText.replace(/\\bShow\\b/i, (show) => `${show[0] === \"S\" ? \"H\" : \"h\"}ide`);\n\n/**\n * Component that decorates an HTML element with the ability to toggle the\n * masked state of an input field (like a password) when clicked.\n * The ids of the fields to be masked will be pulled directly from the button's\n * `aria-controls` attribute.\n *\n * @param {HTMLElement} el Parent element containing the fields to be masked\n * @return {boolean}\n */\nmodule.exports = (el) => {\n // this is the *target* state:\n // * if the element has the attr and it's !== \"true\", pressed is true\n // * otherwise, pressed is false\n const pressed =\n el.hasAttribute(PRESSED) && el.getAttribute(PRESSED) !== \"true\";\n\n const fields = resolveIdRefs(el.getAttribute(CONTROLS));\n fields.forEach((field) => toggleFieldMask(field, pressed));\n\n if (!el.hasAttribute(SHOW_ATTR)) {\n el.setAttribute(SHOW_ATTR, el.textContent);\n }\n\n const showText = el.getAttribute(SHOW_ATTR);\n const hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);\n\n el.textContent = pressed ? showText : hideText; // eslint-disable-line no-param-reassign\n el.setAttribute(PRESSED, pressed);\n return pressed;\n};\n","const EXPANDED = \"aria-expanded\";\nconst CONTROLS = \"aria-controls\";\nconst HIDDEN = \"hidden\";\n\nmodule.exports = (button, expanded) => {\n let safeExpanded = expanded;\n\n if (typeof safeExpanded !== \"boolean\") {\n safeExpanded = button.getAttribute(EXPANDED) === \"false\";\n }\n\n button.setAttribute(EXPANDED, safeExpanded);\n\n const id = button.getAttribute(CONTROLS);\n const controls = document.getElementById(id);\n if (!controls) {\n throw new Error(`No toggle target found with id: \"${id}\"`);\n }\n\n if (safeExpanded) {\n controls.removeAttribute(HIDDEN);\n } else {\n controls.setAttribute(HIDDEN, \"\");\n }\n\n return safeExpanded;\n};\n","const dataset = require(\"elem-dataset\");\n\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst CHECKED = \"aria-checked\";\nconst CHECKED_CLASS = `${PREFIX}-checklist__item--checked`;\n\nmodule.exports = function validate(el) {\n const data = dataset(el);\n const id = data.validationElement;\n const checkList =\n id.charAt(0) === \"#\"\n ? document.querySelector(id)\n : document.getElementById(id);\n\n if (!checkList) {\n throw new Error(`No validation element found with id: \"${id}\"`);\n }\n\n Object.entries(data).forEach(([key, value]) => {\n if (key.startsWith(\"validate\")) {\n const validatorName = key.substr(\"validate\".length).toLowerCase();\n const validatorPattern = new RegExp(value);\n const validatorSelector = `[data-validator=\"${validatorName}\"]`;\n const validatorCheckbox = checkList.querySelector(validatorSelector);\n\n if (!validatorCheckbox) {\n throw new Error(`No validator checkbox found for: \"${validatorName}\"`);\n }\n\n const checked = validatorPattern.test(el.value);\n validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);\n validatorCheckbox.setAttribute(CHECKED, checked);\n }\n });\n};\n"]}
1
+ {"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/classlist-polyfill/src/index.js","node_modules/domready/ready.js","node_modules/elem-dataset/dist/index.js","node_modules/element-closest/element-closest.js","node_modules/keyboardevent-key-polyfill/index.js","node_modules/lodash.debounce/index.js","node_modules/object-assign/index.js","node_modules/receptor/behavior/index.js","node_modules/receptor/compose/index.js","node_modules/receptor/delegate/index.js","node_modules/receptor/delegateAll/index.js","node_modules/receptor/ignore/index.js","node_modules/receptor/index.js","node_modules/receptor/keymap/index.js","node_modules/receptor/once/index.js","node_modules/resolve-id-refs/index.js","src/js/components/accordion.js","src/js/components/banner.js","src/js/components/character-count.js","src/js/components/combo-box.js","src/js/components/date-picker.js","src/js/components/date-range-picker.js","src/js/components/file-input.js","src/js/components/footer.js","src/js/components/index.js","src/js/components/navigation.js","src/js/components/password.js","src/js/components/search.js","src/js/components/skipnav.js","src/js/components/time-picker.js","src/js/components/tooltip.js","src/js/components/validator.js","src/js/config.js","src/js/events.js","src/js/polyfills/custom-event.js","src/js/polyfills/element-hidden.js","src/js/polyfills/index.js","src/js/polyfills/number-is-nan.js","src/js/polyfills/svg4everybody.js","src/js/start.js","src/js/utils/active-element.js","src/js/utils/behavior.js","src/js/utils/focus-trap.js","src/js/utils/is-in-viewport.js","src/js/utils/is-ios-device.js","src/js/utils/select.js","src/js/utils/toggle-field-mask.js","src/js/utils/toggle-form-input.js","src/js/utils/toggle.js","src/js/utils/validate-input.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","createMethod","_toggle","testElement","window","self","document","createElement","createElementNS","view","classListProp","protoProp","elemCtrProto","Element","objCtr","Object","strTrim","String","trim","this","replace","arrIndexOf","Array","indexOf","item","len","DOMEx","type","message","name","DOMException","checkTokenAndGetIndex","classList","token","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","contains","add","tokens","arguments","l","updated","remove","index","splice","toggle","force","result","method","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","undefined","number","__defineGetter__","original","DOMTokenList","prototype","definition","define","_typeof","amd","_listener","fns","doc","hack","documentElement","doScroll","domContentLoaded","loaded","readyState","addEventListener","removeEventListener","shift","fn","setTimeout","Boolean","dataset","aB","element","map","attributes","getter","value","setter","removeAttribute","j","prop","attribute","slice","charAt","toUpperCase","bind","set","ElementProto","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","elements","ownerDocument","querySelectorAll","closest","nodeType","parentNode","keyboardeventKeyPolyfill","polyfill","KeyboardEvent","proto","key","keys","which","keyCode","isArray","shiftKey","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","fromCharCode","toLowerCase","now","root","Date","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","Function","objectToString","nativeMax","Math","max","nativeMin","min","isObject","isSymbol","toNumber","other","valueOf","isBinary","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","debounced","isInvoking","cancel","clearTimeout","flush","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","getOwnPropertyNames","test2","test3","forEach","err","shouldUseNative","target","source","from","symbols","to","val","toObject","s","delegate","delegateAll","DELEGATE_PATTERN","popKey","obj","events","props","listeners","reduce","memo","handler","match","capture","passive","listener","_type","getListeners","concat","functions","some","event","compose","selectors","delegates","behavior","ignore","keymap","MODIFIERS","Alt","Control","Ctrl","Shift","hasModifiers","modifier","getEventKey","_key","wrapped","currentTarget","RE_TRIM","RE_SPLIT","str","ids","getElementById","id","querySelector","el","getAccordionButtons","accordion","select","BUTTON","filter","button","ACCORDION","toggleButton","expanded","safeExpanded","multiselectable","isElementInViewport","CLICK","PREFIX","prefix","EXPANDED","_defineProperty","preventDefault","scrollIntoView","init","show","hide","getButtons","HEADER","EXPANDED_CLASS","getCharacterCountElements","inputEl","characterCountEl","CHARACTER_COUNT","INPUT","messageEl","MESSAGE","updateCountMessage","guidance","newMessage","_getCharacterCountEle","maxlength","isOverLimit","currentLength","difference","abs","characters","MESSAGE_INVALID_CLASS","innerHTML","validationMessage","setCustomValidity","VALIDATION_MESSAGE","characterCount","input","changeElementValue","elementToChange","CustomEvent","bubbles","cancelable","detail","dispatchEvent","getComboBoxContext","comboBoxEl","COMBO_BOX","selectEl","SELECT","listEl","LIST","statusEl","STATUS","focusedOptionEl","LIST_OPTION_FOCUSED","selectedOptionEl","LIST_OPTION_SELECTED","toggleListBtnEl","TOGGLE_LIST_BUTTON","clearInputBtnEl","CLEAR_INPUT_BUTTON","isPristine","COMBO_BOX_PRISTINE_CLASS","disableFiltering","disable","_getComboBoxContext","hidden","disabled","enhanceComboBox","_comboBoxEl","enhanced","selectedOption","selectId","selectLabel","listId","listIdLabel","assistiveHintID","additionalAttributes","defaultValue","placeholder","optionEl","SELECT_CLASS","hasAttribute","insertAdjacentHTML","INPUT_CLASS","CLEAR_INPUT_BUTTON_WRAPPER_CLASS","CLEAR_INPUT_BUTTON_CLASS","INPUT_BUTTON_SEPARATOR_CLASS","TOGGLE_LIST_BUTTON_WRAPPER_CLASS","TOGGLE_LIST_BUTTON_CLASS","LIST_CLASS","STATUS_CLASS","text","highlightOption","nextEl","skipFocus","_ref","preventScroll","_getComboBoxContext4","LIST_OPTION_FOCUSED_CLASS","optionBottom","offsetTop","offsetHeight","scrollTop","focus","generateDynamicRegExp","escapeRegExp","query","extras","find","m","$1","queryFilter","matcher","RegExp","displayList","selectedItemId","firstFoundId","_getComboBoxContext5","listOptionBaseId","inputValue","regex","optionId","itemToFocus","numOptions","optionHtml","option","LIST_OPTION_CLASS","tabindex","ariaSelected","LIST_OPTION_SELECTED_CLASS","noResults","hideList","_getComboBoxContext6","selectItem","listOptionEl","_getComboBoxContext7","textContent","resetSelection","_getComboBoxContext9","selectValue","handleDownFromInput","_getComboBoxContext12","nextOptionEl","LIST_OPTION","COMBO_BOX_CLASS","handleDownFromListOption","nextSibling","handleUpFromListOption","_getComboBoxContext14","previousSibling","listShown","comboBox","_behavior","_CLICK","_getComboBoxContext16","_getComboBoxContext15","clearButtonEl","_getComboBoxContext8","relatedTarget","_keydown","Escape","_getComboBoxContext11","Enter","_getComboBoxContext13","_getComboBoxContext10","completeSelection","ArrowDown","Down","ArrowUp","Up","Tab","Shift+Tab","enable","_getComboBoxContext2","keepDateWithinMonth","dateToCheck","month","getMonth","setDate","year","date","newDate","setFullYear","today","day","getDate","getFullYear","startOfMonth","lastDayOfMonth","addDays","_date","numDays","getTime","subDays","addWeeks","numWeeks","startOfWeek","dayOfWeek","getDay","addMonths","numMonths","dateMonth","setMonth","subMonths","addYears","numYears","subYears","setYear","isSameYear","dateA","dateB","isSameMonth","isSameDay","keepDateBetweenMinAndMax","minDate","maxDate","isDateWithinMinAndMax","isDatesYearOutsideMinOrMax","parseDateString","dateString","monthStr","dayStr","yearStr","currentYear","parsed","adjustDate","INTERNAL_DATE_FORMAT","DEFAULT_EXTERNAL_DATE_FORMAT","_dateString$split2","_slicedToArray","_dateString$split4","Number","isNaN","pow","lastDayOfTheMonth","formatDate","padZeros","dateFormat","listToGridHtml","htmlArray","rowSize","grid","row","getDatePickerContext","datePickerEl","DATE_PICKER","internalInputEl","DATE_PICKER_INTERNAL_INPUT","externalInputEl","DATE_PICKER_EXTERNAL_INPUT","calendarEl","DATE_PICKER_CALENDAR","toggleBtnEl","DATE_PICKER_BUTTON","DATE_PICKER_STATUS","firstYearChunkEl","CALENDAR_YEAR","inputDate","selectedDate","calendarDate","rangeDate","defaultDate","_getDatePickerContext","isDateInputInvalid","dateStringParts","_getDatePickerContext3","isInvalid","_dateStringParts$map2","checkDate","validateDateInput","setCalendarValue","formattedDate","parsedDate","_getDatePickerContext6","renderCalendar","_dateToDisplay","_getDatePickerContext7","todaysDate","dateToDisplay","calendarWasHidden","focusedDate","focusedMonth","focusedYear","prevMonth","nextMonth","currentFormattedDate","firstOfMonth","prevButtonsDisabled","nextButtonsDisabled","rangeConclusionDate","rangeStartDate","rangeEndDate","withinRangeStartDate","withinRangeEndDate","monthLabel","MONTH_LABELS","days","dateToRender","CALENDAR_DATE_CLASS","isDisabled","isSelected","CALENDAR_DATE_PREVIOUS_MONTH_CLASS","CALENDAR_DATE_CURRENT_MONTH_CLASS","CALENDAR_DATE_NEXT_MONTH_CLASS","CALENDAR_DATE_SELECTED_CLASS","CALENDAR_DATE_TODAY_CLASS","CALENDAR_DATE_RANGE_DATE_CLASS","CALENDAR_DATE_RANGE_DATE_START_CLASS","CALENDAR_DATE_RANGE_DATE_END_CLASS","CALENDAR_DATE_WITHIN_RANGE_CLASS","CALENDAR_DATE_FOCUSED_CLASS","DAY_OF_WEEK_LABELS","generateDateHtml","datesHtml","newCalendar","cloneNode","style","top","CALENDAR_DATE_PICKER_CLASS","CALENDAR_ROW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_CELL_CENTER_ITEMS_CLASS","CALENDAR_PREVIOUS_YEAR_CLASS","CALENDAR_PREVIOUS_MONTH_CLASS","CALENDAR_MONTH_LABEL_CLASS","CALENDAR_MONTH_SELECTION_CLASS","CALENDAR_YEAR_SELECTION_CLASS","CALENDAR_NEXT_MONTH_CLASS","CALENDAR_NEXT_YEAR_CLASS","CALENDAR_TABLE_CLASS","CALENDAR_DAY_OF_WEEK_CLASS","replaceChild","DATE_PICKER_ACTIVE_CLASS","statuses","hideCalendar","_getDatePickerContext12","updateCalendarIfVisible","_getDatePickerContext15","displayMonthSelection","monthToDisplay","_getDatePickerContext16","selectedMonth","months","monthToCheck","CALENDAR_MONTH_CLASS","CALENDAR_MONTH_FOCUSED_CLASS","CALENDAR_MONTH_SELECTED_CLASS","monthsHtml","CALENDAR_MONTH_PICKER_CLASS","displayYearSelection","yearToDisplay","_getDatePickerContext18","selectedYear","yearToChunk","prevYearChunkDisabled","nextYearChunkDisabled","years","yearIndex","CALENDAR_YEAR_CLASS","CALENDAR_YEAR_FOCUSED_CLASS","CALENDAR_YEAR_SELECTED_CLASS","yearsHtml","CALENDAR_YEAR_PICKER_CLASS","CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS","CALENDAR_NEXT_YEAR_CHUNK_CLASS","handleEscapeFromCalendar","_getDatePickerContext22","activeElement","isIosDevice","DATE_PICKER_CLASS","DATE_PICKER_WRAPPER_CLASS","DATE_PICKER_INITIALIZED_CLASS","DATE_PICKER_INTERNAL_INPUT_CLASS","DATE_PICKER_EXTERNAL_INPUT_CLASS","DATE_PICKER_BUTTON_CLASS","DATE_PICKER_CALENDAR_CLASS","DATE_PICKER_STATUS_CLASS","CALENDAR_DATE","CALENDAR_DATE_FOCUSED","CALENDAR_DATE_CURRENT_MONTH","CALENDAR_PREVIOUS_YEAR","CALENDAR_PREVIOUS_MONTH","CALENDAR_NEXT_YEAR","CALENDAR_NEXT_MONTH","CALENDAR_YEAR_SELECTION","CALENDAR_MONTH_SELECTION","CALENDAR_MONTH","CALENDAR_PREVIOUS_YEAR_CHUNK","CALENDAR_NEXT_YEAR_CHUNK","CALENDAR_DATE_PICKER","CALENDAR_MONTH_PICKER","CALENDAR_YEAR_PICKER","CALENDAR_MONTH_FOCUSED","CALENDAR_YEAR_FOCUSED","processFocusableSelectors","_len","DATE_PICKER_FOCUSABLE","MONTH_PICKER_FOCUSABLE","YEAR_PICKER_FOCUSABLE","adjustCalendar","adjustDateFn","_getDatePickerContext23","cappedDate","handleUpFromDate","handleDownFromDate","handleLeftFromDate","handleRightFromDate","handleHomeFromDate","handleEndFromDate","handlePageDownFromDate","handlePageUpFromDate","handleShiftPageDownFromDate","handleShiftPageUpFromDate","adjustMonthSelectionScreen","adjustMonthFn","monthEl","_getDatePickerContext24","currentDate","adjustedMonth","handleUpFromMonth","handleDownFromMonth","handleLeftFromMonth","handleRightFromMonth","handleHomeFromMonth","handleEndFromMonth","handlePageDownFromMonth","handlePageUpFromMonth","adjustYearSelectionScreen","adjustYearFn","yearEl","_getDatePickerContext25","adjustedYear","handleUpFromYear","handleDownFromYear","handleLeftFromYear","handleRightFromYear","handleHomeFromYear","handleEndFromYear","handlePageUpFromYear","handlePageDownFromYear","tabHandler","focusable","getFocusableContext","focusableElements","lastTabIndex","firstTabStop","lastTabStop","focusIndex","isNotFound","isFirstTab","isLastTab","tabAhead","_getFocusableContext","tabBack","_getFocusableContext2","datePickerTabEventHandler","monthPickerTabEventHandler","yearPickerTabEventHandler","datePickerEvents","_datePickerEvents","_getDatePickerContext14","calendarDateEl","_getDatePickerContext13","_getDatePickerContext17","_getDatePickerContext21","_buttonEl","nextToFocus","_getDatePickerContext9","_getDatePickerContext10","_getDatePickerContext8","_getDatePickerContext11","_getDatePickerContext19","_getDatePickerContext20","keydown","keydownKeyCode","Left","ArrowLeft","Right","ArrowRight","Home","End","PageDown","PageUp","Shift+PageDown","Shift+PageUp","keyMap","_focusout","_getDatePickerContext5","newValue","mousemove","_datePickerEvents$mou","dateEl","currentCalendarDate","hoverDate","focusMonth","focusYear","datePicker","calendarWrapper","tabIndex","appendChild","required","enhanceDatePicker","_getDatePickerContext2","getDateRangePickerContext","dateRangePickerEl","DATE_RANGE_PICKER","rangeStartEl","DATE_RANGE_PICKER_RANGE_START","rangeEndEl","DATE_RANGE_PICKER_RANGE_END","handleRangeStartUpdate","_getDateRangePickerCo","updatedDate","handleRangeEndUpdate","_getDateRangePickerCo2","DATE_RANGE_PICKER_CLASS","DATE_RANGE_PICKER_RANGE_START_CLASS","DATE_RANGE_PICKER_RANGE_END_CLASS","dateRangePicker","input change","_inputChange","_select2","rangeStart","rangeEnd","enhanceDateRangePicker","getFileInputContext","dropZoneEl","DROPZONE","_getFileInputContext","DISABLED_CLASS","makeSafeForID","charCodeAt","removeOldPreviews","dropTarget","instructions","filePreviews","PREVIEW_CLASS","currentPreviewHeading","PREVIEW_HEADING_CLASS","currentErrorMessage","ACCEPTED_FILE_MESSAGE_CLASS","outerHTML","INVALID_FILE_CLASS","HIDDEN_CLASS","node","removeChild","handleChange","fileInputEl","fileNames","files","filePreviewsHeading","reader","FileReader","fileName","onloadstart","imageId","previewImage","SPACER_GIF","GENERIC_PREVIEW_CLASS_NAME","LOADING_CLASS","onloadend","PDF_PREVIEW_CLASS","WORD_PREVIEW_CLASS","EXCEL_PREVIEW_CLASS","VIDEO_PREVIEW_CLASS","GENERIC_PREVIEW_CLASS","src","readAsDataURL","insertBefore","_loop","DROPZONE_CLASS","TARGET_CLASS","BOX_CLASS","INSTRUCTIONS_CLASS","CHOOSE_CLASS","DRAG_TEXT_CLASS","DRAG_CLASS","fileInput","acceptsMultiple","fileInputParent","box","_buildFileInput","navigator","userAgent","acceptedFilesAttr","acceptedFiles","errorMessage","allFilesAllowed","dataTransfer","file","fileType","includes","stopPropagation","preventInvalidFiles","onchange","_getFileInputContext2","lastInnerWidth","debounce","HIDDEN","SCOPE","NAV","COLLAPSIBLE","resize","innerWidth","list","collapseEl","HIDE_MAX_WIDTH","DEBOUNCE_RATE","teardown","banner","footer","navigation","password","search","skipnav","tooltip","validator","timePicker","isActive","body","ACTIVE_CLASS","closer","CLOSE_BUTTON","getBoundingClientRect","width","toggleNav","onMenuClose","hideActiveNavDropdown","navActive","FocusTrap","NAV_LINKS","NAV_CONTROL","OPENERS","OVERLAY","CLOSERS","TOGGLES","active","safeActive","focusTrap","update","closeButton","menuButton","acc","btn","trapContainer","toggleFormInput","LINK","lastButton","FORM","toggleSearch","form","context","getForm","once","encodeURI","outline","parseTimeString","timeStr","minutes","mins","hours","_timeStr$split$map2","TIME_PICKER_CLASS","TIME_PICKER","FILTER_DATASET","apQueryFilter","hourQueryFilter","minuteQueryFilter","timePickerEl","initialInputEl","minTime","maxTime","step","floor","_getTimeContext","minute","hour24","hour12","ampm","display","transformTimePicker","addListenerMulti","eventNames","iLen","showToolTip","tooltipBody","tooltipTrigger","position","wrapper","setPositionClass","setPos","TOOLTIP_BODY_CLASS","positionTop","marginLeft","adjustHorizontalCenter","ADJUST_WIDTH_CLASS","marginBottom","adjustToEdgeY","offsetForBottomMargin","offsetForBottomPadding","positionBottom","marginTop","offsetForTopMargin","offsetForTopPadding","positionRight","adjustToEdgeX","leftOffset","bottom","tooltipHeight","offsetForTooltipBodyHeight","positionLeft","toolTipBodyWidth","tooltipWidth","offsetWidth","getComputedStyle","getPropertyValue","offsetLeft","VISIBLE_CLASS","TOOLTIP","TOOLTIP_TRIGGER_CLASS","TOOLTIP_CLASS","tooltipID","tooltipContent","additionalClasses","_setUpAttributes","random","classname","validate","keyup change","input[data-validation-element]","_params","params","evt","createEvent","initCustomEvent","elproto","HTMLElement","factory","embed","parent","svg","use","fragment","createDocumentFragment","viewBox","clone","importNode","g","namespaceURI","childNodes","firstChild","attr","rawopts","opts","inIframe","requests","requestAnimationFrame","uses","getElementsByTagName","numberOfSvgUseElementsToBypass","oninterval","url","xhr","nodeName","getSVGAncestor","attributeName","srcSplit","XMLHttpRequest","open","send","_embeds","onreadystatechange","cachedDocument","_cachedDocument","implementation","createHTMLDocument","responseText","domain","_cachedTarget","loadreadystatechange","svg4everybody","domready","uswdsPresent","uswds","components","on","sequence","seq","_this","Behavior","off","additionalKeyBindings","tabEventHandler","Esc","keyMappings","win","docEl","rect","left","innerHeight","clientHeight","right","clientWidth","platform","maxTouchPoints","MSStream","selection","field","mask","resolveIdRefs","toggleFieldMask","PRESSED","SHOW_ATTR","pressed","showText","hideText","controls","CHECKED_CLASS","data","validationElement","checkList","entries","_ref2","startsWith","validatorName","substr","validatorPattern","validatorSelector","validatorCheckbox","checked"],"mappings":"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","file":"uswds.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(window.self));\n\n}\n\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n","'use strict';\n\nfunction useNative() {\n var elem = document.createElement('div');\n elem.setAttribute('data-a-b', 'c');\n return Boolean(elem.dataset && elem.dataset.aB === 'c');\n}\n\nfunction nativeDataset(element) {\n return element.dataset;\n}\n\nmodule.exports = useNative() ? nativeDataset : function (element) {\n var map = {};\n var attributes = element.attributes;\n\n function getter() {\n return this.value;\n }\n\n function setter(name, value) {\n if (typeof value === 'undefined') {\n this.removeAttribute(name);\n } else {\n this.setAttribute(name, value);\n }\n }\n\n for (var i = 0, j = attributes.length; i < j; i++) {\n var attribute = attributes[i];\n\n if (attribute) {\n var name = attribute.name;\n\n if (name.indexOf('data-') === 0) {\n var prop = name.slice(5).replace(/-./g, function (u) {\n return u.charAt(1).toUpperCase();\n });\n var value = attribute.value;\n Object.defineProperty(map, prop, {\n enumerable: true,\n get: getter.bind({\n value: value || ''\n }),\n set: setter.bind(element, name)\n });\n }\n }\n }\n\n return map;\n};\n\n","// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n","/* global define, KeyboardEvent, module */\n\n(function () {\n\n var keyboardeventKeyPolyfill = {\n polyfill: polyfill,\n keys: {\n 3: 'Cancel',\n 6: 'Help',\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 28: 'Convert',\n 29: 'NonConvert',\n 30: 'Accept',\n 31: 'ModeChange',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 41: 'Select',\n 42: 'Print',\n 43: 'Execute',\n 44: 'PrintScreen',\n 45: 'Insert',\n 46: 'Delete',\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 91: 'OS',\n 93: 'ContextMenu',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 181: 'VolumeMute',\n 182: 'VolumeDown',\n 183: 'VolumeUp',\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: [\"'\", '\"'],\n 224: 'Meta',\n 225: 'AltGraph',\n 246: 'Attn',\n 247: 'CrSel',\n 248: 'ExSel',\n 249: 'EraseEof',\n 250: 'Play',\n 251: 'ZoomOut'\n }\n };\n\n // Function keys (F1-24).\n var i;\n for (i = 1; i < 25; i++) {\n keyboardeventKeyPolyfill.keys[111 + i] = 'F' + i;\n }\n\n // Printable ASCII characters.\n var letter = '';\n for (i = 65; i < 91; i++) {\n letter = String.fromCharCode(i);\n keyboardeventKeyPolyfill.keys[i] = [letter.toLowerCase(), letter.toUpperCase()];\n }\n\n function polyfill () {\n if (!('KeyboardEvent' in window) ||\n 'key' in KeyboardEvent.prototype) {\n return false;\n }\n\n // Polyfill `key` on `KeyboardEvent`.\n var proto = {\n get: function (x) {\n var key = keyboardeventKeyPolyfill.keys[this.which || this.keyCode];\n\n if (Array.isArray(key)) {\n key = key[+this.shiftKey];\n }\n\n return key;\n }\n };\n Object.defineProperty(KeyboardEvent.prototype, 'key', proto);\n return proto;\n }\n\n if (typeof define === 'function' && define.amd) {\n define('keyboardevent-key-polyfill', keyboardeventKeyPolyfill);\n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n module.exports = keyboardeventKeyPolyfill;\n } else if (window) {\n window.keyboardeventKeyPolyfill = keyboardeventKeyPolyfill;\n }\n\n})();\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const assign = require('object-assign');\nconst delegate = require('../delegate');\nconst delegateAll = require('../delegateAll');\n\nconst DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nconst SPACE = ' ';\n\nconst getListeners = function(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if (typeof handler === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'object')\n ? delegateAll(handler)\n : selector\n ? delegate(selector, handler)\n : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function(_type) {\n return assign({type: _type}, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n const listeners = Object.keys(events)\n .reduce(function(memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function(listener) {\n element.addEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function(listener) {\n element.removeEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n }\n }, props);\n};\n","module.exports = function compose(functions) {\n return function(e) {\n return functions.some(function(fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n","// polyfill Element.prototype.closest\nrequire('element-closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = event.target.closest(selector);\n if (target) {\n return fn.call(target, event);\n }\n }\n};\n","const delegate = require('../delegate');\nconst compose = require('../compose');\n\nconst SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n const keys = Object.keys(selectors)\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n const delegates = keys.reduce(function(memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n","module.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n","module.exports = {\n behavior: require('./behavior'),\n delegate: require('./delegate'),\n delegateAll: require('./delegateAll'),\n ignore: require('./ignore'),\n keymap: require('./keymap'),\n};\n","require('keyboardevent-key-polyfill');\n\n// these are the only relevant modifiers supported on all platforms,\n// according to MDN:\n// <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState>\nconst MODIFIERS = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Ctrl': 'ctrlKey',\n 'Shift': 'shiftKey'\n};\n\nconst MODIFIER_SEPARATOR = '+';\n\nconst getEventKey = function(event, hasModifiers) {\n var key = event.key;\n if (hasModifiers) {\n for (var modifier in MODIFIERS) {\n if (event[MODIFIERS[modifier]] === true) {\n key = [modifier, key].join(MODIFIER_SEPARATOR);\n }\n }\n }\n return key;\n};\n\nmodule.exports = function keymap(keys) {\n const hasModifiers = Object.keys(keys).some(function(key) {\n return key.indexOf(MODIFIER_SEPARATOR) > -1;\n });\n return function(event) {\n var key = getEventKey(event, hasModifiers);\n return [key, key.toLowerCase()]\n .reduce(function(result, _key) {\n if (_key in keys) {\n result = keys[key].call(this, event);\n }\n return result;\n }, undefined);\n };\n};\n\nmodule.exports.MODIFIERS = MODIFIERS;\n","module.exports = function once(listener, options) {\n var wrapped = function wrappedOnce(e) {\n e.currentTarget.removeEventListener(e.type, wrapped, options);\n return listener.call(this, e);\n };\n return wrapped;\n};\n\n","'use strict';\n\nvar RE_TRIM = /(^\\s+)|(\\s+$)/g;\nvar RE_SPLIT = /\\s+/;\n\nvar trim = String.prototype.trim\n ? function(str) { return str.trim(); }\n : function(str) { return str.replace(RE_TRIM, ''); };\n\nvar queryById = function(id) {\n return this.querySelector('[id=\"' + id.replace(/\"/g, '\\\\\"') + '\"]');\n};\n\nmodule.exports = function resolveIds(ids, doc) {\n if (typeof ids !== 'string') {\n throw new Error('Expected a string but got ' + (typeof ids));\n }\n\n if (!doc) {\n doc = window.document;\n }\n\n var getElementById = doc.getElementById\n ? doc.getElementById.bind(doc)\n : queryById.bind(doc);\n\n ids = trim(ids).split(RE_SPLIT);\n\n // XXX we can short-circuit here because trimming and splitting a\n // string of just whitespace produces an array containing a single,\n // empty string\n if (ids.length === 1 && ids[0] === '') {\n return [];\n }\n\n return ids\n .map(function(id) {\n var el = getElementById(id);\n if (!el) {\n throw new Error('no element with id: \"' + id + '\"');\n }\n return el;\n });\n};\n","const select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst toggle = require(\"../utils/toggle\");\nconst isElementInViewport = require(\"../utils/is-in-viewport\");\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst ACCORDION = `.${PREFIX}-accordion, .${PREFIX}-accordion--bordered`;\nconst BUTTON = `.${PREFIX}-accordion__button[aria-controls]`;\nconst EXPANDED = \"aria-expanded\";\nconst MULTISELECTABLE = \"aria-multiselectable\";\n\n/**\n * Get an Array of button elements belonging directly to the given\n * accordion element.\n * @param {HTMLElement} accordion\n * @return {array<HTMLButtonElement>}\n */\nconst getAccordionButtons = (accordion) => {\n const buttons = select(BUTTON, accordion);\n\n return buttons.filter((button) => button.closest(ACCORDION) === accordion);\n};\n\n/**\n * Toggle a button's \"pressed\" state, optionally providing a target\n * state.\n *\n * @param {HTMLButtonElement} button\n * @param {boolean?} expanded If no state is provided, the current\n * state will be toggled (from false to true, and vice-versa).\n * @return {boolean} the resulting state\n */\nconst toggleButton = (button, expanded) => {\n const accordion = button.closest(ACCORDION);\n let safeExpanded = expanded;\n\n if (!accordion) {\n throw new Error(`${BUTTON} is missing outer ${ACCORDION}`);\n }\n\n safeExpanded = toggle(button, expanded);\n\n // XXX multiselectable is opt-in, to preserve legacy behavior\n const multiselectable = accordion.getAttribute(MULTISELECTABLE) === \"true\";\n\n if (safeExpanded && !multiselectable) {\n getAccordionButtons(accordion).forEach((other) => {\n if (other !== button) {\n toggle(other, false);\n }\n });\n }\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} true\n */\nconst showButton = (button) => toggleButton(button, true);\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} false\n */\nconst hideButton = (button) => toggleButton(button, false);\n\nconst accordion = behavior(\n {\n [CLICK]: {\n [BUTTON](event) {\n event.preventDefault();\n\n toggleButton(this);\n\n if (this.getAttribute(EXPANDED) === \"true\") {\n // We were just expanded, but if another accordion was also just\n // collapsed, we may no longer be in the viewport. This ensures\n // that we are still visible, so the user isn't confused.\n if (!isElementInViewport(this)) this.scrollIntoView();\n }\n },\n },\n },\n {\n init(root) {\n select(BUTTON, root).forEach((button) => {\n const expanded = button.getAttribute(EXPANDED) === \"true\";\n toggleButton(button, expanded);\n });\n },\n ACCORDION,\n BUTTON,\n show: showButton,\n hide: hideButton,\n toggle: toggleButton,\n getButtons: getAccordionButtons,\n }\n);\n\nmodule.exports = accordion;\n","const behavior = require(\"../utils/behavior\");\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst HEADER = `.${PREFIX}-banner__header`;\nconst EXPANDED_CLASS = `${PREFIX}-banner__header--expanded`;\n\nconst toggleBanner = function toggleEl(event) {\n event.preventDefault();\n this.closest(HEADER).classList.toggle(EXPANDED_CLASS);\n};\n\nmodule.exports = behavior({\n [CLICK]: {\n [`${HEADER} [aria-controls]`]: toggleBanner,\n },\n});\n","const select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst CHARACTER_COUNT = `.${PREFIX}-character-count`;\nconst INPUT = `.${PREFIX}-character-count__field`;\nconst MESSAGE = `.${PREFIX}-character-count__message`;\nconst VALIDATION_MESSAGE = \"The content is too long.\";\nconst MESSAGE_INVALID_CLASS = `${PREFIX}-character-count__message--invalid`;\n\n/**\n * The elements within the character count.\n * @typedef {Object} CharacterCountElements\n * @property {HTMLDivElement} characterCountEl\n * @property {HTMLSpanElement} messageEl\n */\n\n/**\n * Returns the root and message element\n * for an character count input\n *\n * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element\n * @returns {CharacterCountElements} elements The root and message element.\n */\nconst getCharacterCountElements = (inputEl) => {\n const characterCountEl = inputEl.closest(CHARACTER_COUNT);\n\n if (!characterCountEl) {\n throw new Error(`${INPUT} is missing outer ${CHARACTER_COUNT}`);\n }\n\n const messageEl = characterCountEl.querySelector(MESSAGE);\n\n if (!messageEl) {\n throw new Error(`${CHARACTER_COUNT} is missing inner ${MESSAGE}`);\n }\n\n return { characterCountEl, messageEl };\n};\n\n/**\n * Update the character count component\n *\n * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element\n */\nconst updateCountMessage = (inputEl) => {\n const { characterCountEl, messageEl } = getCharacterCountElements(inputEl);\n\n const maxlength = parseInt(\n characterCountEl.getAttribute(\"data-maxlength\"),\n 10\n );\n\n if (!maxlength) return;\n\n let newMessage = \"\";\n const currentLength = inputEl.value.length;\n const isOverLimit = currentLength && currentLength > maxlength;\n\n if (currentLength === 0) {\n newMessage = `${maxlength} characters allowed`;\n } else {\n const difference = Math.abs(maxlength - currentLength);\n const characters = `character${difference === 1 ? \"\" : \"s\"}`;\n const guidance = isOverLimit ? \"over limit\" : \"left\";\n\n newMessage = `${difference} ${characters} ${guidance}`;\n }\n\n messageEl.classList.toggle(MESSAGE_INVALID_CLASS, isOverLimit);\n messageEl.innerHTML = newMessage;\n\n if (isOverLimit && !inputEl.validationMessage) {\n inputEl.setCustomValidity(VALIDATION_MESSAGE);\n }\n\n if (!isOverLimit && inputEl.validationMessage === VALIDATION_MESSAGE) {\n inputEl.setCustomValidity(\"\");\n }\n};\n\n/**\n * Setup the character count component\n *\n * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element\n */\nconst setupAttributes = (inputEl) => {\n const { characterCountEl } = getCharacterCountElements(inputEl);\n\n const maxlength = inputEl.getAttribute(\"maxlength\");\n\n if (!maxlength) return;\n\n inputEl.removeAttribute(\"maxlength\");\n characterCountEl.setAttribute(\"data-maxlength\", maxlength);\n};\n\nconst characterCount = behavior(\n {\n input: {\n [INPUT]() {\n updateCountMessage(this);\n },\n },\n },\n {\n init(root) {\n select(INPUT, root).forEach((input) => {\n setupAttributes(input);\n updateCountMessage(input);\n });\n },\n MESSAGE_INVALID_CLASS,\n VALIDATION_MESSAGE,\n }\n);\n\nmodule.exports = characterCount;\n","const keymap = require(\"receptor/keymap\");\nconst select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst { CLICK } = require(\"../events\");\n\nconst COMBO_BOX_CLASS = `${PREFIX}-combo-box`;\nconst COMBO_BOX_PRISTINE_CLASS = `${COMBO_BOX_CLASS}--pristine`;\nconst SELECT_CLASS = `${COMBO_BOX_CLASS}__select`;\nconst INPUT_CLASS = `${COMBO_BOX_CLASS}__input`;\nconst CLEAR_INPUT_BUTTON_CLASS = `${COMBO_BOX_CLASS}__clear-input`;\nconst CLEAR_INPUT_BUTTON_WRAPPER_CLASS = `${CLEAR_INPUT_BUTTON_CLASS}__wrapper`;\nconst INPUT_BUTTON_SEPARATOR_CLASS = `${COMBO_BOX_CLASS}__input-button-separator`;\nconst TOGGLE_LIST_BUTTON_CLASS = `${COMBO_BOX_CLASS}__toggle-list`;\nconst TOGGLE_LIST_BUTTON_WRAPPER_CLASS = `${TOGGLE_LIST_BUTTON_CLASS}__wrapper`;\nconst LIST_CLASS = `${COMBO_BOX_CLASS}__list`;\nconst LIST_OPTION_CLASS = `${COMBO_BOX_CLASS}__list-option`;\nconst LIST_OPTION_FOCUSED_CLASS = `${LIST_OPTION_CLASS}--focused`;\nconst LIST_OPTION_SELECTED_CLASS = `${LIST_OPTION_CLASS}--selected`;\nconst STATUS_CLASS = `${COMBO_BOX_CLASS}__status`;\n\nconst COMBO_BOX = `.${COMBO_BOX_CLASS}`;\nconst SELECT = `.${SELECT_CLASS}`;\nconst INPUT = `.${INPUT_CLASS}`;\nconst CLEAR_INPUT_BUTTON = `.${CLEAR_INPUT_BUTTON_CLASS}`;\nconst TOGGLE_LIST_BUTTON = `.${TOGGLE_LIST_BUTTON_CLASS}`;\nconst LIST = `.${LIST_CLASS}`;\nconst LIST_OPTION = `.${LIST_OPTION_CLASS}`;\nconst LIST_OPTION_FOCUSED = `.${LIST_OPTION_FOCUSED_CLASS}`;\nconst LIST_OPTION_SELECTED = `.${LIST_OPTION_SELECTED_CLASS}`;\nconst STATUS = `.${STATUS_CLASS}`;\n\nconst DEFAULT_FILTER = \".*{{query}}.*\";\n\nconst noop = () => {};\n\n/**\n * set the value of the element and dispatch a change event\n *\n * @param {HTMLInputElement|HTMLSelectElement} el The element to update\n * @param {string} value The new value of the element\n */\nconst changeElementValue = (el, value = \"\") => {\n const elementToChange = el;\n elementToChange.value = value;\n\n const event = new CustomEvent(\"change\", {\n bubbles: true,\n cancelable: true,\n detail: { value },\n });\n elementToChange.dispatchEvent(event);\n};\n\n/**\n * The elements within the combo box.\n * @typedef {Object} ComboBoxContext\n * @property {HTMLElement} comboBoxEl\n * @property {HTMLSelectElement} selectEl\n * @property {HTMLInputElement} inputEl\n * @property {HTMLUListElement} listEl\n * @property {HTMLDivElement} statusEl\n * @property {HTMLLIElement} focusedOptionEl\n * @property {HTMLLIElement} selectedOptionEl\n * @property {HTMLButtonElement} toggleListBtnEl\n * @property {HTMLButtonElement} clearInputBtnEl\n * @property {boolean} isPristine\n * @property {boolean} disableFiltering\n */\n\n/**\n * Get an object of elements belonging directly to the given\n * combo box component.\n *\n * @param {HTMLElement} el the element within the combo box\n * @returns {ComboBoxContext} elements\n */\nconst getComboBoxContext = (el) => {\n const comboBoxEl = el.closest(COMBO_BOX);\n\n if (!comboBoxEl) {\n throw new Error(`Element is missing outer ${COMBO_BOX}`);\n }\n\n const selectEl = comboBoxEl.querySelector(SELECT);\n const inputEl = comboBoxEl.querySelector(INPUT);\n const listEl = comboBoxEl.querySelector(LIST);\n const statusEl = comboBoxEl.querySelector(STATUS);\n const focusedOptionEl = comboBoxEl.querySelector(LIST_OPTION_FOCUSED);\n const selectedOptionEl = comboBoxEl.querySelector(LIST_OPTION_SELECTED);\n const toggleListBtnEl = comboBoxEl.querySelector(TOGGLE_LIST_BUTTON);\n const clearInputBtnEl = comboBoxEl.querySelector(CLEAR_INPUT_BUTTON);\n\n const isPristine = comboBoxEl.classList.contains(COMBO_BOX_PRISTINE_CLASS);\n const disableFiltering = comboBoxEl.dataset.disableFiltering === \"true\";\n\n return {\n comboBoxEl,\n selectEl,\n inputEl,\n listEl,\n statusEl,\n focusedOptionEl,\n selectedOptionEl,\n toggleListBtnEl,\n clearInputBtnEl,\n isPristine,\n disableFiltering,\n };\n};\n\n/**\n * Disable the combo-box component\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst disable = (el) => {\n const { inputEl, toggleListBtnEl, clearInputBtnEl } = getComboBoxContext(el);\n\n clearInputBtnEl.hidden = true;\n clearInputBtnEl.disabled = true;\n toggleListBtnEl.disabled = true;\n inputEl.disabled = true;\n};\n\n/**\n * Enable the combo-box component\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst enable = (el) => {\n const { inputEl, toggleListBtnEl, clearInputBtnEl } = getComboBoxContext(el);\n\n clearInputBtnEl.hidden = false;\n clearInputBtnEl.disabled = false;\n toggleListBtnEl.disabled = false;\n inputEl.disabled = false;\n};\n\n/**\n * Enhance a select element into a combo box component.\n *\n * @param {HTMLElement} _comboBoxEl The initial element of the combo box component\n */\nconst enhanceComboBox = (_comboBoxEl) => {\n const comboBoxEl = _comboBoxEl.closest(COMBO_BOX);\n\n if (comboBoxEl.dataset.enhanced) return;\n\n const selectEl = comboBoxEl.querySelector(\"select\");\n\n if (!selectEl) {\n throw new Error(`${COMBO_BOX} is missing inner select`);\n }\n\n const selectId = selectEl.id;\n const selectLabel = document.querySelector(`label[for=\"${selectId}\"]`);\n const listId = `${selectId}--list`;\n const listIdLabel = `${selectId}-label`;\n const assistiveHintID = `${selectId}--assistiveHint`;\n const additionalAttributes = [];\n const defaultValue = comboBoxEl.dataset.defaultValue;\n const placeholder = comboBoxEl.dataset.placeholder;\n let selectedOption;\n\n if (placeholder) {\n additionalAttributes.push(`placeholder=\"${placeholder}\"`);\n }\n\n if (defaultValue) {\n for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n const optionEl = selectEl.options[i];\n\n if (optionEl.value === defaultValue) {\n selectedOption = optionEl;\n break;\n }\n }\n }\n\n /**\n * Throw error if combobox is missing a label or label is missing\n * `for` attribute. Otherwise, set the ID to match the <ul> aria-labelledby\n */\n if (!selectLabel || !selectLabel.matches(`label[for=\"${selectId}\"]`)) {\n throw new Error(\n `${COMBO_BOX} for ${selectId} is either missing a label or a \"for\" attribute`\n );\n } else {\n selectLabel.setAttribute(\"id\", listIdLabel);\n }\n\n selectLabel.setAttribute(\"id\", listIdLabel);\n selectEl.setAttribute(\"aria-hidden\", \"true\");\n selectEl.setAttribute(\"tabindex\", \"-1\");\n selectEl.classList.add(\"usa-sr-only\", SELECT_CLASS);\n selectEl.id = \"\";\n selectEl.value = \"\";\n\n [\"required\", \"aria-label\", \"aria-labelledby\"].forEach((name) => {\n if (selectEl.hasAttribute(name)) {\n const value = selectEl.getAttribute(name);\n additionalAttributes.push(`${name}=\"${value}\"`);\n selectEl.removeAttribute(name);\n }\n });\n\n comboBoxEl.insertAdjacentHTML(\n \"beforeend\",\n [\n `<input\n aria-owns=\"${listId}\"\n aria-autocomplete=\"list\"\n aria-describedby=\"${assistiveHintID}\"\n aria-expanded=\"false\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n id=\"${selectId}\"\n class=\"${INPUT_CLASS}\"\n type=\"text\"\n role=\"combobox\"\n ${additionalAttributes.join(\" \")}\n >`,\n `<span class=\"${CLEAR_INPUT_BUTTON_WRAPPER_CLASS}\" tabindex=\"-1\">\n <button type=\"button\" class=\"${CLEAR_INPUT_BUTTON_CLASS}\" aria-label=\"Clear the select contents\">&nbsp;</button>\n </span>`,\n `<span class=\"${INPUT_BUTTON_SEPARATOR_CLASS}\">&nbsp;</span>`,\n `<span class=\"${TOGGLE_LIST_BUTTON_WRAPPER_CLASS}\" tabindex=\"-1\">\n <button type=\"button\" tabindex=\"-1\" class=\"${TOGGLE_LIST_BUTTON_CLASS}\" aria-label=\"Toggle the dropdown list\">&nbsp;</button>\n </span>`,\n `<ul\n tabindex=\"-1\"\n id=\"${listId}\"\n class=\"${LIST_CLASS}\"\n role=\"listbox\"\n aria-labelledby=\"${listIdLabel}\"\n hidden>\n </ul>`,\n `<div class=\"${STATUS_CLASS} usa-sr-only\" role=\"status\"></div>`,\n `<span id=\"${assistiveHintID}\" class=\"usa-sr-only\">\n When autocomplete results are available use up and down arrows to review and enter to select.\n Touch device users, explore by touch or with swipe gestures.\n </span>`,\n ].join(\"\")\n );\n\n if (selectedOption) {\n const { inputEl } = getComboBoxContext(comboBoxEl);\n changeElementValue(selectEl, selectedOption.value);\n changeElementValue(inputEl, selectedOption.text);\n comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n }\n\n if (selectEl.disabled) {\n disable(comboBoxEl);\n selectEl.disabled = false;\n }\n\n comboBoxEl.dataset.enhanced = \"true\";\n};\n\n/**\n * Manage the focused element within the list options when\n * navigating via keyboard.\n *\n * @param {HTMLElement} el An anchor element within the combo box component\n * @param {HTMLElement} nextEl An element within the combo box component\n * @param {Object} options options\n * @param {boolean} options.skipFocus skip focus of highlighted item\n * @param {boolean} options.preventScroll should skip procedure to scroll to element\n */\nconst highlightOption = (el, nextEl, { skipFocus, preventScroll } = {}) => {\n const { inputEl, listEl, focusedOptionEl } = getComboBoxContext(el);\n\n if (focusedOptionEl) {\n focusedOptionEl.classList.remove(LIST_OPTION_FOCUSED_CLASS);\n focusedOptionEl.setAttribute(\"tabIndex\", \"-1\");\n }\n\n if (nextEl) {\n inputEl.setAttribute(\"aria-activedescendant\", nextEl.id);\n nextEl.setAttribute(\"tabIndex\", \"0\");\n nextEl.classList.add(LIST_OPTION_FOCUSED_CLASS);\n\n if (!preventScroll) {\n const optionBottom = nextEl.offsetTop + nextEl.offsetHeight;\n const currentBottom = listEl.scrollTop + listEl.offsetHeight;\n\n if (optionBottom > currentBottom) {\n listEl.scrollTop = optionBottom - listEl.offsetHeight;\n }\n\n if (nextEl.offsetTop < listEl.scrollTop) {\n listEl.scrollTop = nextEl.offsetTop;\n }\n }\n\n if (!skipFocus) {\n nextEl.focus({ preventScroll });\n }\n } else {\n inputEl.setAttribute(\"aria-activedescendant\", \"\");\n inputEl.focus();\n }\n};\n\n/**\n * Generate a dynamic regular expression based off of a replaceable and possibly filtered value.\n *\n * @param {string} el An element within the combo box component\n * @param {string} query The value to use in the regular expression\n * @param {object} extras An object of regular expressions to replace and filter the query\n */\nconst generateDynamicRegExp = (filter, query = \"\", extras = {}) => {\n const escapeRegExp = (text) => {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n };\n\n let find = filter.replace(/{{(.*?)}}/g, (m, $1) => {\n const key = $1.trim();\n const queryFilter = extras[key];\n if (key !== \"query\" && queryFilter) {\n const matcher = new RegExp(queryFilter, \"i\");\n const matches = query.match(matcher);\n\n if (matches) {\n return escapeRegExp(matches[1]);\n }\n\n return \"\";\n }\n return escapeRegExp(query);\n });\n\n find = \"^(?:\" + find + \")$\";\n\n return new RegExp(find, \"i\");\n};\n\n/**\n * Display the option list of a combo box component.\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst displayList = (el) => {\n const {\n comboBoxEl,\n selectEl,\n inputEl,\n listEl,\n statusEl,\n isPristine,\n disableFiltering,\n } = getComboBoxContext(el);\n let selectedItemId;\n let firstFoundId;\n\n const listOptionBaseId = `${listEl.id}--option-`;\n\n const inputValue = (inputEl.value || \"\").toLowerCase();\n const filter = comboBoxEl.dataset.filter || DEFAULT_FILTER;\n const regex = generateDynamicRegExp(filter, inputValue, comboBoxEl.dataset);\n\n const options = [];\n for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n const optionEl = selectEl.options[i];\n const optionId = `${listOptionBaseId}${options.length}`;\n\n if (\n optionEl.value &&\n (disableFiltering ||\n isPristine ||\n !inputValue ||\n regex.test(optionEl.text))\n ) {\n if (selectEl.value && optionEl.value === selectEl.value) {\n selectedItemId = optionId;\n }\n\n if (disableFiltering && !firstFoundId && regex.test(optionEl.text)) {\n firstFoundId = optionId;\n }\n\n options.push(optionEl);\n }\n }\n\n const numOptions = options.length;\n const optionHtml = options\n .map((option, index) => {\n const optionId = `${listOptionBaseId}${index}`;\n const classes = [LIST_OPTION_CLASS];\n let tabindex = \"-1\";\n let ariaSelected = \"false\";\n\n if (optionId === selectedItemId) {\n classes.push(LIST_OPTION_SELECTED_CLASS, LIST_OPTION_FOCUSED_CLASS);\n tabindex = \"0\";\n ariaSelected = \"true\";\n }\n\n if (!selectedItemId && index === 0) {\n classes.push(LIST_OPTION_FOCUSED_CLASS);\n tabindex = \"0\";\n }\n\n return `<li\n aria-selected=\"false\"\n aria-setsize=\"${options.length}\"\n aria-posinset=\"${index + 1}\"\n aria-selected=\"${ariaSelected}\"\n id=\"${optionId}\"\n class=\"${classes.join(\" \")}\"\n tabindex=\"${tabindex}\"\n role=\"option\"\n data-value=\"${option.value}\"\n >${option.text}</li>`;\n })\n .join(\"\");\n\n const noResults = `<li class=\"${LIST_OPTION_CLASS}--no-results\">No results found</li>`;\n\n listEl.hidden = false;\n listEl.innerHTML = numOptions ? optionHtml : noResults;\n\n inputEl.setAttribute(\"aria-expanded\", \"true\");\n\n statusEl.innerHTML = numOptions\n ? `${numOptions} result${numOptions > 1 ? \"s\" : \"\"} available.`\n : \"No results.\";\n\n let itemToFocus;\n\n if (isPristine && selectedItemId) {\n itemToFocus = listEl.querySelector(\"#\" + selectedItemId);\n } else if (disableFiltering && firstFoundId) {\n itemToFocus = listEl.querySelector(\"#\" + firstFoundId);\n }\n\n if (itemToFocus) {\n highlightOption(listEl, itemToFocus, {\n skipFocus: true,\n });\n }\n};\n\n/**\n * Hide the option list of a combo box component.\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst hideList = (el) => {\n const { inputEl, listEl, statusEl, focusedOptionEl } = getComboBoxContext(el);\n\n statusEl.innerHTML = \"\";\n\n inputEl.setAttribute(\"aria-expanded\", \"false\");\n inputEl.setAttribute(\"aria-activedescendant\", \"\");\n\n if (focusedOptionEl) {\n focusedOptionEl.classList.remove(LIST_OPTION_FOCUSED_CLASS);\n }\n\n listEl.scrollTop = 0;\n listEl.hidden = true;\n};\n\n/**\n * Select an option list of the combo box component.\n *\n * @param {HTMLElement} listOptionEl The list option being selected\n */\nconst selectItem = (listOptionEl) => {\n const { comboBoxEl, selectEl, inputEl } = getComboBoxContext(listOptionEl);\n\n changeElementValue(selectEl, listOptionEl.dataset.value);\n changeElementValue(inputEl, listOptionEl.textContent);\n comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n hideList(comboBoxEl);\n inputEl.focus();\n};\n\n/**\n * Clear the input of the combo box\n *\n * @param {HTMLButtonElement} clearButtonEl The clear input button\n */\nconst clearInput = (clearButtonEl) => {\n const { comboBoxEl, listEl, selectEl, inputEl } = getComboBoxContext(\n clearButtonEl\n );\n const listShown = !listEl.hidden;\n\n if (selectEl.value) changeElementValue(selectEl);\n if (inputEl.value) changeElementValue(inputEl);\n comboBoxEl.classList.remove(COMBO_BOX_PRISTINE_CLASS);\n\n if (listShown) displayList(comboBoxEl);\n inputEl.focus();\n};\n\n/**\n * Reset the select based off of currently set select value\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst resetSelection = (el) => {\n const { comboBoxEl, selectEl, inputEl } = getComboBoxContext(el);\n\n const selectValue = selectEl.value;\n const inputValue = (inputEl.value || \"\").toLowerCase();\n\n if (selectValue) {\n for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n const optionEl = selectEl.options[i];\n if (optionEl.value === selectValue) {\n if (inputValue !== optionEl.text) {\n changeElementValue(inputEl, optionEl.text);\n }\n comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n return;\n }\n }\n }\n\n if (inputValue) {\n changeElementValue(inputEl);\n }\n};\n\n/**\n * Select an option list of the combo box component based off of\n * having a current focused list option or\n * having test that completely matches a list option.\n * Otherwise it clears the input and select.\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst completeSelection = (el) => {\n const { comboBoxEl, selectEl, inputEl, statusEl } = getComboBoxContext(el);\n\n statusEl.textContent = \"\";\n\n const inputValue = (inputEl.value || \"\").toLowerCase();\n\n if (inputValue) {\n for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n const optionEl = selectEl.options[i];\n if (optionEl.text.toLowerCase() === inputValue) {\n changeElementValue(selectEl, optionEl.value);\n changeElementValue(inputEl, optionEl.text);\n comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n return;\n }\n }\n }\n\n resetSelection(comboBoxEl);\n};\n\n/**\n * Handle the escape event within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleEscape = (event) => {\n const { comboBoxEl, inputEl } = getComboBoxContext(event.target);\n\n hideList(comboBoxEl);\n resetSelection(comboBoxEl);\n inputEl.focus();\n};\n\n/**\n * Handle the down event within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleDownFromInput = (event) => {\n const { comboBoxEl, listEl } = getComboBoxContext(event.target);\n\n if (listEl.hidden) {\n displayList(comboBoxEl);\n }\n\n let nextOptionEl =\n listEl.querySelector(LIST_OPTION_FOCUSED) ||\n listEl.querySelector(LIST_OPTION);\n\n if (nextOptionEl) {\n highlightOption(comboBoxEl, nextOptionEl);\n }\n\n event.preventDefault();\n};\n\n/**\n * Handle the enter event from an input element within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleEnterFromInput = (event) => {\n const { comboBoxEl, listEl } = getComboBoxContext(event.target);\n const listShown = !listEl.hidden;\n\n completeSelection(comboBoxEl);\n\n if (listShown) {\n hideList(comboBoxEl);\n }\n\n event.preventDefault();\n};\n\n/**\n * Handle the down event within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleDownFromListOption = (event) => {\n const focusedOptionEl = event.target;\n const nextOptionEl = focusedOptionEl.nextSibling;\n\n if (nextOptionEl) {\n highlightOption(focusedOptionEl, nextOptionEl);\n }\n\n event.preventDefault();\n};\n\n/**\n * Handle the tab event from an list option element within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleTabFromListOption = (event) => {\n selectItem(event.target);\n event.preventDefault();\n};\n\n/**\n * Handle the enter event from list option within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleEnterFromListOption = (event) => {\n selectItem(event.target);\n event.preventDefault();\n};\n\n/**\n * Handle the up event from list option within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleUpFromListOption = (event) => {\n const { comboBoxEl, listEl, focusedOptionEl } = getComboBoxContext(\n event.target\n );\n const nextOptionEl = focusedOptionEl && focusedOptionEl.previousSibling;\n const listShown = !listEl.hidden;\n\n highlightOption(comboBoxEl, nextOptionEl);\n\n if (listShown) {\n event.preventDefault();\n }\n\n if (!nextOptionEl) {\n hideList(comboBoxEl);\n }\n};\n\n/**\n * Select list option on the mousemove event.\n *\n * @param {MouseEvent} event The mousemove event\n * @param {HTMLLIElement} listOptionEl An element within the combo box component\n */\nconst handleMousemove = (listOptionEl) => {\n const isCurrentlyFocused = listOptionEl.classList.contains(\n LIST_OPTION_FOCUSED_CLASS\n );\n\n if (isCurrentlyFocused) return;\n\n highlightOption(listOptionEl, listOptionEl, {\n preventScroll: true,\n });\n};\n\n/**\n * Toggle the list when the button is clicked\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst toggleList = (el) => {\n const { comboBoxEl, listEl, inputEl } = getComboBoxContext(el);\n\n if (listEl.hidden) {\n displayList(comboBoxEl);\n } else {\n hideList(comboBoxEl);\n }\n\n inputEl.focus();\n};\n\n/**\n * Handle click from input\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst handleClickFromInput = (el) => {\n const { comboBoxEl, listEl } = getComboBoxContext(el);\n\n if (listEl.hidden) {\n displayList(comboBoxEl);\n }\n};\n\nconst comboBox = behavior(\n {\n [CLICK]: {\n [INPUT]() {\n if (this.disabled) return;\n handleClickFromInput(this);\n },\n [TOGGLE_LIST_BUTTON]() {\n if (this.disabled) return;\n toggleList(this);\n },\n [LIST_OPTION]() {\n if (this.disabled) return;\n selectItem(this);\n },\n [CLEAR_INPUT_BUTTON]() {\n if (this.disabled) return;\n clearInput(this);\n },\n },\n focusout: {\n [COMBO_BOX](event) {\n if (!this.contains(event.relatedTarget)) {\n resetSelection(this);\n hideList(this);\n }\n },\n },\n keydown: {\n [COMBO_BOX]: keymap({\n Escape: handleEscape,\n }),\n [INPUT]: keymap({\n Enter: handleEnterFromInput,\n ArrowDown: handleDownFromInput,\n Down: handleDownFromInput,\n }),\n [LIST_OPTION]: keymap({\n ArrowUp: handleUpFromListOption,\n Up: handleUpFromListOption,\n ArrowDown: handleDownFromListOption,\n Down: handleDownFromListOption,\n Enter: handleEnterFromListOption,\n Tab: handleTabFromListOption,\n \"Shift+Tab\": noop,\n }),\n },\n input: {\n [INPUT]() {\n const comboBoxEl = this.closest(COMBO_BOX);\n comboBoxEl.classList.remove(COMBO_BOX_PRISTINE_CLASS);\n displayList(this);\n },\n },\n mousemove: {\n [LIST_OPTION]() {\n handleMousemove(this);\n },\n },\n },\n {\n init(root) {\n select(COMBO_BOX, root).forEach((comboBoxEl) => {\n enhanceComboBox(comboBoxEl);\n });\n },\n getComboBoxContext,\n enhanceComboBox,\n generateDynamicRegExp,\n disable,\n enable,\n displayList,\n hideList,\n COMBO_BOX_CLASS,\n }\n);\n\nmodule.exports = comboBox;\n","const keymap = require(\"receptor/keymap\");\nconst behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst { CLICK } = require(\"../events\");\nconst activeElement = require(\"../utils/active-element\");\nconst isIosDevice = require(\"../utils/is-ios-device\");\n\nconst DATE_PICKER_CLASS = `${PREFIX}-date-picker`;\nconst DATE_PICKER_WRAPPER_CLASS = `${DATE_PICKER_CLASS}__wrapper`;\nconst DATE_PICKER_INITIALIZED_CLASS = `${DATE_PICKER_CLASS}--initialized`;\nconst DATE_PICKER_ACTIVE_CLASS = `${DATE_PICKER_CLASS}--active`;\nconst DATE_PICKER_INTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__internal-input`;\nconst DATE_PICKER_EXTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__external-input`;\nconst DATE_PICKER_BUTTON_CLASS = `${DATE_PICKER_CLASS}__button`;\nconst DATE_PICKER_CALENDAR_CLASS = `${DATE_PICKER_CLASS}__calendar`;\nconst DATE_PICKER_STATUS_CLASS = `${DATE_PICKER_CLASS}__status`;\nconst CALENDAR_DATE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date`;\n\nconst CALENDAR_DATE_FOCUSED_CLASS = `${CALENDAR_DATE_CLASS}--focused`;\nconst CALENDAR_DATE_SELECTED_CLASS = `${CALENDAR_DATE_CLASS}--selected`;\nconst CALENDAR_DATE_PREVIOUS_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--previous-month`;\nconst CALENDAR_DATE_CURRENT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--current-month`;\nconst CALENDAR_DATE_NEXT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--next-month`;\nconst CALENDAR_DATE_RANGE_DATE_CLASS = `${CALENDAR_DATE_CLASS}--range-date`;\nconst CALENDAR_DATE_TODAY_CLASS = `${CALENDAR_DATE_CLASS}--today`;\nconst CALENDAR_DATE_RANGE_DATE_START_CLASS = `${CALENDAR_DATE_CLASS}--range-date-start`;\nconst CALENDAR_DATE_RANGE_DATE_END_CLASS = `${CALENDAR_DATE_CLASS}--range-date-end`;\nconst CALENDAR_DATE_WITHIN_RANGE_CLASS = `${CALENDAR_DATE_CLASS}--within-range`;\nconst CALENDAR_PREVIOUS_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year`;\nconst CALENDAR_PREVIOUS_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-month`;\nconst CALENDAR_NEXT_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year`;\nconst CALENDAR_NEXT_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-month`;\nconst CALENDAR_MONTH_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-selection`;\nconst CALENDAR_YEAR_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-selection`;\nconst CALENDAR_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month`;\nconst CALENDAR_MONTH_FOCUSED_CLASS = `${CALENDAR_MONTH_CLASS}--focused`;\nconst CALENDAR_MONTH_SELECTED_CLASS = `${CALENDAR_MONTH_CLASS}--selected`;\nconst CALENDAR_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year`;\nconst CALENDAR_YEAR_FOCUSED_CLASS = `${CALENDAR_YEAR_CLASS}--focused`;\nconst CALENDAR_YEAR_SELECTED_CLASS = `${CALENDAR_YEAR_CLASS}--selected`;\nconst CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year-chunk`;\nconst CALENDAR_NEXT_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year-chunk`;\nconst CALENDAR_DATE_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date-picker`;\nconst CALENDAR_MONTH_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-picker`;\nconst CALENDAR_YEAR_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-picker`;\nconst CALENDAR_TABLE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__table`;\nconst CALENDAR_ROW_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__row`;\nconst CALENDAR_CELL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__cell`;\nconst CALENDAR_CELL_CENTER_ITEMS_CLASS = `${CALENDAR_CELL_CLASS}--center-items`;\nconst CALENDAR_MONTH_LABEL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-label`;\nconst CALENDAR_DAY_OF_WEEK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__day-of-week`;\n\nconst DATE_PICKER = `.${DATE_PICKER_CLASS}`;\nconst DATE_PICKER_BUTTON = `.${DATE_PICKER_BUTTON_CLASS}`;\nconst DATE_PICKER_INTERNAL_INPUT = `.${DATE_PICKER_INTERNAL_INPUT_CLASS}`;\nconst DATE_PICKER_EXTERNAL_INPUT = `.${DATE_PICKER_EXTERNAL_INPUT_CLASS}`;\nconst DATE_PICKER_CALENDAR = `.${DATE_PICKER_CALENDAR_CLASS}`;\nconst DATE_PICKER_STATUS = `.${DATE_PICKER_STATUS_CLASS}`;\nconst CALENDAR_DATE = `.${CALENDAR_DATE_CLASS}`;\nconst CALENDAR_DATE_FOCUSED = `.${CALENDAR_DATE_FOCUSED_CLASS}`;\nconst CALENDAR_DATE_CURRENT_MONTH = `.${CALENDAR_DATE_CURRENT_MONTH_CLASS}`;\nconst CALENDAR_PREVIOUS_YEAR = `.${CALENDAR_PREVIOUS_YEAR_CLASS}`;\nconst CALENDAR_PREVIOUS_MONTH = `.${CALENDAR_PREVIOUS_MONTH_CLASS}`;\nconst CALENDAR_NEXT_YEAR = `.${CALENDAR_NEXT_YEAR_CLASS}`;\nconst CALENDAR_NEXT_MONTH = `.${CALENDAR_NEXT_MONTH_CLASS}`;\nconst CALENDAR_YEAR_SELECTION = `.${CALENDAR_YEAR_SELECTION_CLASS}`;\nconst CALENDAR_MONTH_SELECTION = `.${CALENDAR_MONTH_SELECTION_CLASS}`;\nconst CALENDAR_MONTH = `.${CALENDAR_MONTH_CLASS}`;\nconst CALENDAR_YEAR = `.${CALENDAR_YEAR_CLASS}`;\nconst CALENDAR_PREVIOUS_YEAR_CHUNK = `.${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}`;\nconst CALENDAR_NEXT_YEAR_CHUNK = `.${CALENDAR_NEXT_YEAR_CHUNK_CLASS}`;\nconst CALENDAR_DATE_PICKER = `.${CALENDAR_DATE_PICKER_CLASS}`;\nconst CALENDAR_MONTH_PICKER = `.${CALENDAR_MONTH_PICKER_CLASS}`;\nconst CALENDAR_YEAR_PICKER = `.${CALENDAR_YEAR_PICKER_CLASS}`;\nconst CALENDAR_MONTH_FOCUSED = `.${CALENDAR_MONTH_FOCUSED_CLASS}`;\nconst CALENDAR_YEAR_FOCUSED = `.${CALENDAR_YEAR_FOCUSED_CLASS}`;\n\nconst VALIDATION_MESSAGE = \"Please enter a valid date\";\n\nconst MONTH_LABELS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst DAY_OF_WEEK_LABELS = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n];\n\nconst ENTER_KEYCODE = 13;\n\nconst YEAR_CHUNK = 12;\n\nconst DEFAULT_MIN_DATE = \"0000-01-01\";\nconst DEFAULT_EXTERNAL_DATE_FORMAT = \"MM/DD/YYYY\";\nconst INTERNAL_DATE_FORMAT = \"YYYY-MM-DD\";\n\nconst NOT_DISABLED_SELECTOR = \":not([disabled])\";\n\nconst processFocusableSelectors = (...selectors) =>\n selectors.map((query) => query + NOT_DISABLED_SELECTOR).join(\", \");\n\nconst DATE_PICKER_FOCUSABLE = processFocusableSelectors(\n CALENDAR_PREVIOUS_YEAR,\n CALENDAR_PREVIOUS_MONTH,\n CALENDAR_YEAR_SELECTION,\n CALENDAR_MONTH_SELECTION,\n CALENDAR_NEXT_YEAR,\n CALENDAR_NEXT_MONTH,\n CALENDAR_DATE_FOCUSED\n);\n\nconst MONTH_PICKER_FOCUSABLE = processFocusableSelectors(\n CALENDAR_MONTH_FOCUSED\n);\n\nconst YEAR_PICKER_FOCUSABLE = processFocusableSelectors(\n CALENDAR_PREVIOUS_YEAR_CHUNK,\n CALENDAR_NEXT_YEAR_CHUNK,\n CALENDAR_YEAR_FOCUSED\n);\n\n// #region Date Manipulation Functions\n\n/**\n * Keep date within month. Month would only be over by 1 to 3 days\n *\n * @param {Date} dateToCheck the date object to check\n * @param {number} month the correct month\n * @returns {Date} the date, corrected if needed\n */\nconst keepDateWithinMonth = (dateToCheck, month) => {\n if (month !== dateToCheck.getMonth()) {\n dateToCheck.setDate(0);\n }\n\n return dateToCheck;\n};\n\n/**\n * Set date from month day year\n *\n * @param {number} year the year to set\n * @param {number} month the month to set (zero-indexed)\n * @param {number} date the date to set\n * @returns {Date} the set date\n */\nconst setDate = (year, month, date) => {\n const newDate = new Date(0);\n newDate.setFullYear(year, month, date);\n return newDate;\n};\n\n/**\n * todays date\n *\n * @returns {Date} todays date\n */\nconst today = () => {\n const newDate = new Date();\n const day = newDate.getDate();\n const month = newDate.getMonth();\n const year = newDate.getFullYear();\n return setDate(year, month, day);\n};\n\n/**\n * Set date to first day of the month\n *\n * @param {number} date the date to adjust\n * @returns {Date} the adjusted date\n */\nconst startOfMonth = (date) => {\n const newDate = new Date(0);\n newDate.setFullYear(date.getFullYear(), date.getMonth(), 1);\n return newDate;\n};\n\n/**\n * Set date to last day of the month\n *\n * @param {number} date the date to adjust\n * @returns {Date} the adjusted date\n */\nconst lastDayOfMonth = (date) => {\n const newDate = new Date(0);\n newDate.setFullYear(date.getFullYear(), date.getMonth() + 1, 0);\n return newDate;\n};\n\n/**\n * Add days to date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numDays the difference in days\n * @returns {Date} the adjusted date\n */\nconst addDays = (_date, numDays) => {\n const newDate = new Date(_date.getTime());\n newDate.setDate(newDate.getDate() + numDays);\n return newDate;\n};\n\n/**\n * Subtract days from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numDays the difference in days\n * @returns {Date} the adjusted date\n */\nconst subDays = (_date, numDays) => addDays(_date, -numDays);\n\n/**\n * Add weeks to date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numWeeks the difference in weeks\n * @returns {Date} the adjusted date\n */\nconst addWeeks = (_date, numWeeks) => addDays(_date, numWeeks * 7);\n\n/**\n * Subtract weeks from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numWeeks the difference in weeks\n * @returns {Date} the adjusted date\n */\nconst subWeeks = (_date, numWeeks) => addWeeks(_date, -numWeeks);\n\n/**\n * Set date to the start of the week (Sunday)\n *\n * @param {Date} _date the date to adjust\n * @returns {Date} the adjusted date\n */\nconst startOfWeek = (_date) => {\n const dayOfWeek = _date.getDay();\n return subDays(_date, dayOfWeek);\n};\n\n/**\n * Set date to the end of the week (Saturday)\n *\n * @param {Date} _date the date to adjust\n * @param {number} numWeeks the difference in weeks\n * @returns {Date} the adjusted date\n */\nconst endOfWeek = (_date) => {\n const dayOfWeek = _date.getDay();\n return addDays(_date, 6 - dayOfWeek);\n};\n\n/**\n * Add months to date and keep date within month\n *\n * @param {Date} _date the date to adjust\n * @param {number} numMonths the difference in months\n * @returns {Date} the adjusted date\n */\nconst addMonths = (_date, numMonths) => {\n const newDate = new Date(_date.getTime());\n\n const dateMonth = (newDate.getMonth() + 12 + numMonths) % 12;\n newDate.setMonth(newDate.getMonth() + numMonths);\n keepDateWithinMonth(newDate, dateMonth);\n\n return newDate;\n};\n\n/**\n * Subtract months from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numMonths the difference in months\n * @returns {Date} the adjusted date\n */\nconst subMonths = (_date, numMonths) => addMonths(_date, -numMonths);\n\n/**\n * Add years to date and keep date within month\n *\n * @param {Date} _date the date to adjust\n * @param {number} numYears the difference in years\n * @returns {Date} the adjusted date\n */\nconst addYears = (_date, numYears) => addMonths(_date, numYears * 12);\n\n/**\n * Subtract years from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numYears the difference in years\n * @returns {Date} the adjusted date\n */\nconst subYears = (_date, numYears) => addYears(_date, -numYears);\n\n/**\n * Set months of date\n *\n * @param {Date} _date the date to adjust\n * @param {number} month zero-indexed month to set\n * @returns {Date} the adjusted date\n */\nconst setMonth = (_date, month) => {\n const newDate = new Date(_date.getTime());\n\n newDate.setMonth(month);\n keepDateWithinMonth(newDate, month);\n\n return newDate;\n};\n\n/**\n * Set year of date\n *\n * @param {Date} _date the date to adjust\n * @param {number} year the year to set\n * @returns {Date} the adjusted date\n */\nconst setYear = (_date, year) => {\n const newDate = new Date(_date.getTime());\n\n const month = newDate.getMonth();\n newDate.setFullYear(year);\n keepDateWithinMonth(newDate, month);\n\n return newDate;\n};\n\n/**\n * Return the earliest date\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {Date} the earliest date\n */\nconst min = (dateA, dateB) => {\n let newDate = dateA;\n\n if (dateB < dateA) {\n newDate = dateB;\n }\n\n return new Date(newDate.getTime());\n};\n\n/**\n * Return the latest date\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {Date} the latest date\n */\nconst max = (dateA, dateB) => {\n let newDate = dateA;\n\n if (dateB > dateA) {\n newDate = dateB;\n }\n\n return new Date(newDate.getTime());\n};\n\n/**\n * Check if dates are the in the same year\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {boolean} are dates in the same year\n */\nconst isSameYear = (dateA, dateB) => {\n return dateA && dateB && dateA.getFullYear() === dateB.getFullYear();\n};\n\n/**\n * Check if dates are the in the same month\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {boolean} are dates in the same month\n */\nconst isSameMonth = (dateA, dateB) => {\n return isSameYear(dateA, dateB) && dateA.getMonth() === dateB.getMonth();\n};\n\n/**\n * Check if dates are the same date\n *\n * @param {Date} dateA the date to compare\n * @param {Date} dateA the date to compare\n * @returns {boolean} are dates the same date\n */\nconst isSameDay = (dateA, dateB) => {\n return isSameMonth(dateA, dateB) && dateA.getDate() === dateB.getDate();\n};\n\n/**\n * return a new date within minimum and maximum date\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @returns {Date} the date between min and max\n */\nconst keepDateBetweenMinAndMax = (date, minDate, maxDate) => {\n let newDate = date;\n\n if (date < minDate) {\n newDate = minDate;\n } else if (maxDate && date > maxDate) {\n newDate = maxDate;\n }\n\n return new Date(newDate.getTime());\n};\n\n/**\n * Check if dates is valid.\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @return {boolean} is there a day within the month within min and max dates\n */\nconst isDateWithinMinAndMax = (date, minDate, maxDate) =>\n date >= minDate && (!maxDate || date <= maxDate);\n\n/**\n * Check if dates month is invalid.\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @return {boolean} is the month outside min or max dates\n */\nconst isDatesMonthOutsideMinOrMax = (date, minDate, maxDate) => {\n return (\n lastDayOfMonth(date) < minDate || (maxDate && startOfMonth(date) > maxDate)\n );\n};\n\n/**\n * Check if dates year is invalid.\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @return {boolean} is the month outside min or max dates\n */\nconst isDatesYearOutsideMinOrMax = (date, minDate, maxDate) => {\n return (\n lastDayOfMonth(setMonth(date, 11)) < minDate ||\n (maxDate && startOfMonth(setMonth(date, 0)) > maxDate)\n );\n};\n\n/**\n * Parse a date with format M-D-YY\n *\n * @param {string} dateString the date string to parse\n * @param {string} dateFormat the format of the date string\n * @param {boolean} adjustDate should the date be adjusted\n * @returns {Date} the parsed date\n */\nconst parseDateString = (\n dateString,\n dateFormat = INTERNAL_DATE_FORMAT,\n adjustDate = false\n) => {\n let date;\n let month;\n let day;\n let year;\n let parsed;\n\n if (dateString) {\n let monthStr, dayStr, yearStr;\n\n if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\n [monthStr, dayStr, yearStr] = dateString.split(\"/\");\n } else {\n [yearStr, monthStr, dayStr] = dateString.split(\"-\");\n }\n\n if (yearStr) {\n parsed = parseInt(yearStr, 10);\n if (!Number.isNaN(parsed)) {\n year = parsed;\n if (adjustDate) {\n year = Math.max(0, year);\n if (yearStr.length < 3) {\n const currentYear = today().getFullYear();\n const currentYearStub =\n currentYear - (currentYear % 10 ** yearStr.length);\n year = currentYearStub + parsed;\n }\n }\n }\n }\n\n if (monthStr) {\n parsed = parseInt(monthStr, 10);\n if (!Number.isNaN(parsed)) {\n month = parsed;\n if (adjustDate) {\n month = Math.max(1, month);\n month = Math.min(12, month);\n }\n }\n }\n\n if (month && dayStr && year != null) {\n parsed = parseInt(dayStr, 10);\n if (!Number.isNaN(parsed)) {\n day = parsed;\n if (adjustDate) {\n const lastDayOfTheMonth = setDate(year, month, 0).getDate();\n day = Math.max(1, day);\n day = Math.min(lastDayOfTheMonth, day);\n }\n }\n }\n\n if (month && day && year != null) {\n date = setDate(year, month - 1, day);\n }\n }\n\n return date;\n};\n\n/**\n * Format a date to format MM-DD-YYYY\n *\n * @param {Date} date the date to format\n * @param {string} dateFormat the format of the date string\n * @returns {string} the formatted date string\n */\nconst formatDate = (date, dateFormat = INTERNAL_DATE_FORMAT) => {\n const padZeros = (value, length) => {\n return `0000${value}`.slice(-length);\n };\n\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const year = date.getFullYear();\n\n if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\n return [padZeros(month, 2), padZeros(day, 2), padZeros(year, 4)].join(\"/\");\n }\n\n return [padZeros(year, 4), padZeros(month, 2), padZeros(day, 2)].join(\"-\");\n};\n\n// #endregion Date Manipulation Functions\n\n/**\n * Create a grid string from an array of html strings\n *\n * @param {string[]} htmlArray the array of html items\n * @param {number} rowSize the length of a row\n * @returns {string} the grid string\n */\nconst listToGridHtml = (htmlArray, rowSize) => {\n const grid = [];\n let row = [];\n\n let i = 0;\n while (i < htmlArray.length) {\n row = [];\n while (i < htmlArray.length && row.length < rowSize) {\n row.push(`<td>${htmlArray[i]}</td>`);\n i += 1;\n }\n grid.push(`<tr>${row.join(\"\")}</tr>`);\n }\n\n return grid.join(\"\");\n};\n\n/**\n * set the value of the element and dispatch a change event\n *\n * @param {HTMLInputElement} el The element to update\n * @param {string} value The new value of the element\n */\nconst changeElementValue = (el, value = \"\") => {\n const elementToChange = el;\n elementToChange.value = value;\n\n const event = new CustomEvent(\"change\", {\n bubbles: true,\n cancelable: true,\n detail: { value },\n });\n elementToChange.dispatchEvent(event);\n};\n\n/**\n * The properties and elements within the date picker.\n * @typedef {Object} DatePickerContext\n * @property {HTMLDivElement} calendarEl\n * @property {HTMLElement} datePickerEl\n * @property {HTMLInputElement} internalInputEl\n * @property {HTMLInputElement} externalInputEl\n * @property {HTMLDivElement} statusEl\n * @property {HTMLDivElement} firstYearChunkEl\n * @property {Date} calendarDate\n * @property {Date} minDate\n * @property {Date} maxDate\n * @property {Date} selectedDate\n * @property {Date} rangeDate\n * @property {Date} defaultDate\n */\n\n/**\n * Get an object of the properties and elements belonging directly to the given\n * date picker component.\n *\n * @param {HTMLElement} el the element within the date picker\n * @returns {DatePickerContext} elements\n */\nconst getDatePickerContext = (el) => {\n const datePickerEl = el.closest(DATE_PICKER);\n\n if (!datePickerEl) {\n throw new Error(`Element is missing outer ${DATE_PICKER}`);\n }\n\n const internalInputEl = datePickerEl.querySelector(\n DATE_PICKER_INTERNAL_INPUT\n );\n const externalInputEl = datePickerEl.querySelector(\n DATE_PICKER_EXTERNAL_INPUT\n );\n const calendarEl = datePickerEl.querySelector(DATE_PICKER_CALENDAR);\n const toggleBtnEl = datePickerEl.querySelector(DATE_PICKER_BUTTON);\n const statusEl = datePickerEl.querySelector(DATE_PICKER_STATUS);\n const firstYearChunkEl = datePickerEl.querySelector(CALENDAR_YEAR);\n\n const inputDate = parseDateString(\n externalInputEl.value,\n DEFAULT_EXTERNAL_DATE_FORMAT,\n true\n );\n const selectedDate = parseDateString(internalInputEl.value);\n\n const calendarDate = parseDateString(calendarEl.dataset.value);\n const minDate = parseDateString(datePickerEl.dataset.minDate);\n const maxDate = parseDateString(datePickerEl.dataset.maxDate);\n const rangeDate = parseDateString(datePickerEl.dataset.rangeDate);\n const defaultDate = parseDateString(datePickerEl.dataset.defaultDate);\n\n if (minDate && maxDate && minDate > maxDate) {\n throw new Error(\"Minimum date cannot be after maximum date\");\n }\n\n return {\n calendarDate,\n minDate,\n toggleBtnEl,\n selectedDate,\n maxDate,\n firstYearChunkEl,\n datePickerEl,\n inputDate,\n internalInputEl,\n externalInputEl,\n calendarEl,\n rangeDate,\n defaultDate,\n statusEl,\n };\n};\n\n/**\n * Disable the date picker component\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst disable = (el) => {\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\n\n toggleBtnEl.disabled = true;\n externalInputEl.disabled = true;\n};\n\n/**\n * Enable the date picker component\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst enable = (el) => {\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\n\n toggleBtnEl.disabled = false;\n externalInputEl.disabled = false;\n};\n\n// #region Validation\n\n/**\n * Validate the value in the input as a valid date of format M/D/YYYY\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst isDateInputInvalid = (el) => {\n const { externalInputEl, minDate, maxDate } = getDatePickerContext(el);\n\n const dateString = externalInputEl.value;\n let isInvalid = false;\n\n if (dateString) {\n isInvalid = true;\n\n const dateStringParts = dateString.split(\"/\");\n const [month, day, year] = dateStringParts.map((str) => {\n let value;\n const parsed = parseInt(str, 10);\n if (!Number.isNaN(parsed)) value = parsed;\n return value;\n });\n\n if (month && day && year != null) {\n const checkDate = setDate(year, month - 1, day);\n\n if (\n checkDate.getMonth() === month - 1 &&\n checkDate.getDate() === day &&\n checkDate.getFullYear() === year &&\n dateStringParts[2].length === 4 &&\n isDateWithinMinAndMax(checkDate, minDate, maxDate)\n ) {\n isInvalid = false;\n }\n }\n }\n\n return isInvalid;\n};\n\n/**\n * Validate the value in the input as a valid date of format M/D/YYYY\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst validateDateInput = (el) => {\n const { externalInputEl } = getDatePickerContext(el);\n const isInvalid = isDateInputInvalid(externalInputEl);\n\n if (isInvalid && !externalInputEl.validationMessage) {\n externalInputEl.setCustomValidity(VALIDATION_MESSAGE);\n }\n\n if (!isInvalid && externalInputEl.validationMessage === VALIDATION_MESSAGE) {\n externalInputEl.setCustomValidity(\"\");\n }\n};\n\n// #endregion Validation\n\n/**\n * Enable the date picker component\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst reconcileInputValues = (el) => {\n const { internalInputEl, inputDate } = getDatePickerContext(el);\n let newValue = \"\";\n\n if (inputDate && !isDateInputInvalid(el)) {\n newValue = formatDate(inputDate);\n }\n\n if (internalInputEl.value !== newValue) {\n changeElementValue(internalInputEl, newValue);\n }\n};\n\n/**\n * Select the value of the date picker inputs.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n * @param {string} dateString The date string to update in YYYY-MM-DD format\n */\nconst setCalendarValue = (el, dateString) => {\n const parsedDate = parseDateString(dateString);\n\n if (parsedDate) {\n const formattedDate = formatDate(parsedDate, DEFAULT_EXTERNAL_DATE_FORMAT);\n\n const {\n datePickerEl,\n internalInputEl,\n externalInputEl,\n } = getDatePickerContext(el);\n\n changeElementValue(internalInputEl, dateString);\n changeElementValue(externalInputEl, formattedDate);\n\n validateDateInput(datePickerEl);\n }\n};\n\n/**\n * Enhance an input with the date picker elements\n *\n * @param {HTMLElement} el The initial wrapping element of the date picker component\n */\nconst enhanceDatePicker = (el) => {\n const datePickerEl = el.closest(DATE_PICKER);\n const defaultValue = datePickerEl.dataset.defaultValue;\n\n const internalInputEl = datePickerEl.querySelector(`input`);\n\n if (!internalInputEl) {\n throw new Error(`${DATE_PICKER} is missing inner input`);\n }\n\n if (internalInputEl.value) {\n internalInputEl.value = \"\";\n }\n\n const minDate = parseDateString(\n datePickerEl.dataset.minDate || internalInputEl.getAttribute(\"min\")\n );\n datePickerEl.dataset.minDate = minDate\n ? formatDate(minDate)\n : DEFAULT_MIN_DATE;\n\n const maxDate = parseDateString(\n datePickerEl.dataset.maxDate || internalInputEl.getAttribute(\"max\")\n );\n if (maxDate) {\n datePickerEl.dataset.maxDate = formatDate(maxDate);\n }\n\n const calendarWrapper = document.createElement(\"div\");\n calendarWrapper.classList.add(DATE_PICKER_WRAPPER_CLASS);\n calendarWrapper.tabIndex = \"-1\";\n\n const externalInputEl = internalInputEl.cloneNode();\n externalInputEl.classList.add(DATE_PICKER_EXTERNAL_INPUT_CLASS);\n externalInputEl.type = \"text\";\n externalInputEl.name = \"\";\n\n calendarWrapper.appendChild(externalInputEl);\n calendarWrapper.insertAdjacentHTML(\n \"beforeend\",\n [\n `<button type=\"button\" class=\"${DATE_PICKER_BUTTON_CLASS}\" aria-haspopup=\"true\" aria-label=\"Toggle calendar\">&nbsp;</button>`,\n `<div class=\"${DATE_PICKER_CALENDAR_CLASS}\" role=\"dialog\" aria-modal=\"true\" hidden></div>`,\n `<div class=\"usa-sr-only ${DATE_PICKER_STATUS_CLASS}\" role=\"status\" aria-live=\"polite\"></div>`,\n ].join(\"\")\n );\n\n internalInputEl.setAttribute(\"aria-hidden\", \"true\");\n internalInputEl.setAttribute(\"tabindex\", \"-1\");\n internalInputEl.classList.add(\n \"usa-sr-only\",\n DATE_PICKER_INTERNAL_INPUT_CLASS\n );\n internalInputEl.id = \"\";\n internalInputEl.required = false;\n\n datePickerEl.appendChild(calendarWrapper);\n datePickerEl.classList.add(DATE_PICKER_INITIALIZED_CLASS);\n\n if (defaultValue) {\n setCalendarValue(datePickerEl, defaultValue);\n }\n\n if (internalInputEl.disabled) {\n disable(datePickerEl);\n internalInputEl.disabled = false;\n }\n};\n\n// #region Calendar - Date Selection View\n\n/**\n * render the calendar.\n *\n * @param {HTMLElement} el An element within the date picker component\n * @param {Date} _dateToDisplay a date to render on the calendar\n * @returns {HTMLElement} a reference to the new calendar element\n */\nconst renderCalendar = (el, _dateToDisplay) => {\n const {\n datePickerEl,\n calendarEl,\n statusEl,\n selectedDate,\n maxDate,\n minDate,\n rangeDate,\n } = getDatePickerContext(el);\n const todaysDate = today();\n let dateToDisplay = _dateToDisplay || todaysDate;\n\n const calendarWasHidden = calendarEl.hidden;\n\n const focusedDate = addDays(dateToDisplay, 0);\n const focusedMonth = dateToDisplay.getMonth();\n const focusedYear = dateToDisplay.getFullYear();\n\n const prevMonth = subMonths(dateToDisplay, 1);\n const nextMonth = addMonths(dateToDisplay, 1);\n\n const currentFormattedDate = formatDate(dateToDisplay);\n\n const firstOfMonth = startOfMonth(dateToDisplay);\n const prevButtonsDisabled = isSameMonth(dateToDisplay, minDate);\n const nextButtonsDisabled = isSameMonth(dateToDisplay, maxDate);\n\n const rangeConclusionDate = selectedDate || dateToDisplay;\n const rangeStartDate = rangeDate && min(rangeConclusionDate, rangeDate);\n const rangeEndDate = rangeDate && max(rangeConclusionDate, rangeDate);\n\n const withinRangeStartDate = rangeDate && addDays(rangeStartDate, 1);\n const withinRangeEndDate = rangeDate && subDays(rangeEndDate, 1);\n\n const monthLabel = MONTH_LABELS[focusedMonth];\n\n const generateDateHtml = (dateToRender) => {\n const classes = [CALENDAR_DATE_CLASS];\n const day = dateToRender.getDate();\n const month = dateToRender.getMonth();\n const year = dateToRender.getFullYear();\n const dayOfWeek = dateToRender.getDay();\n\n const formattedDate = formatDate(dateToRender);\n\n let tabindex = \"-1\";\n\n const isDisabled = !isDateWithinMinAndMax(dateToRender, minDate, maxDate);\n const isSelected = isSameDay(dateToRender, selectedDate);\n\n if (isSameMonth(dateToRender, prevMonth)) {\n classes.push(CALENDAR_DATE_PREVIOUS_MONTH_CLASS);\n }\n\n if (isSameMonth(dateToRender, focusedDate)) {\n classes.push(CALENDAR_DATE_CURRENT_MONTH_CLASS);\n }\n\n if (isSameMonth(dateToRender, nextMonth)) {\n classes.push(CALENDAR_DATE_NEXT_MONTH_CLASS);\n }\n\n if (isSelected) {\n classes.push(CALENDAR_DATE_SELECTED_CLASS);\n }\n\n if (isSameDay(dateToRender, todaysDate)) {\n classes.push(CALENDAR_DATE_TODAY_CLASS);\n }\n\n if (rangeDate) {\n if (isSameDay(dateToRender, rangeDate)) {\n classes.push(CALENDAR_DATE_RANGE_DATE_CLASS);\n }\n\n if (isSameDay(dateToRender, rangeStartDate)) {\n classes.push(CALENDAR_DATE_RANGE_DATE_START_CLASS);\n }\n\n if (isSameDay(dateToRender, rangeEndDate)) {\n classes.push(CALENDAR_DATE_RANGE_DATE_END_CLASS);\n }\n\n if (\n isDateWithinMinAndMax(\n dateToRender,\n withinRangeStartDate,\n withinRangeEndDate\n )\n ) {\n classes.push(CALENDAR_DATE_WITHIN_RANGE_CLASS);\n }\n }\n\n if (isSameDay(dateToRender, focusedDate)) {\n tabindex = \"0\";\n classes.push(CALENDAR_DATE_FOCUSED_CLASS);\n }\n\n const monthStr = MONTH_LABELS[month];\n const dayStr = DAY_OF_WEEK_LABELS[dayOfWeek];\n\n return `<button\n type=\"button\"\n tabindex=\"${tabindex}\"\n class=\"${classes.join(\" \")}\" \n data-day=\"${day}\" \n data-month=\"${month + 1}\" \n data-year=\"${year}\" \n data-value=\"${formattedDate}\"\n aria-label=\"${day} ${monthStr} ${year} ${dayStr}\"\n aria-selected=\"${isSelected ? \"true\" : \"false\"}\"\n ${isDisabled ? `disabled=\"disabled\"` : \"\"}\n >${day}</button>`;\n };\n\n // set date to first rendered day\n dateToDisplay = startOfWeek(firstOfMonth);\n\n const days = [];\n\n while (\n days.length < 28 ||\n dateToDisplay.getMonth() === focusedMonth ||\n days.length % 7 !== 0\n ) {\n days.push(generateDateHtml(dateToDisplay));\n dateToDisplay = addDays(dateToDisplay, 1);\n }\n\n const datesHtml = listToGridHtml(days, 7);\n\n const newCalendar = calendarEl.cloneNode();\n newCalendar.dataset.value = currentFormattedDate;\n newCalendar.style.top = `${datePickerEl.offsetHeight}px`;\n newCalendar.hidden = false;\n newCalendar.innerHTML = `<div tabindex=\"-1\" class=\"${CALENDAR_DATE_PICKER_CLASS}\">\n <div class=\"${CALENDAR_ROW_CLASS}\">\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_PREVIOUS_YEAR_CLASS}\"\n aria-label=\"Navigate back one year\"\n ${prevButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </div>\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_PREVIOUS_MONTH_CLASS}\"\n aria-label=\"Navigate back one month\"\n ${prevButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </div>\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_MONTH_LABEL_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_MONTH_SELECTION_CLASS}\" aria-label=\"${monthLabel}. Click to select month\"\n >${monthLabel}</button>\n <button \n type=\"button\"\n class=\"${CALENDAR_YEAR_SELECTION_CLASS}\" aria-label=\"${focusedYear}. Click to select year\"\n >${focusedYear}</button>\n </div>\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_NEXT_MONTH_CLASS}\"\n aria-label=\"Navigate forward one month\"\n ${nextButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </div>\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n <button \n type=\"button\"\n class=\"${CALENDAR_NEXT_YEAR_CLASS}\"\n aria-label=\"Navigate forward one year\"\n ${nextButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </div>\n </div>\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\n <thead>\n <tr>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Sunday\">S</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Monday\">M</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Tuesday\">T</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Wednesday\">W</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Thursday\">Th</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Friday\">F</th>\n <th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"Saturday\">S</th>\n </tr>\n </thead>\n <tbody>\n ${datesHtml}\n </tbody>\n </table>\n </div>`;\n\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\n\n datePickerEl.classList.add(DATE_PICKER_ACTIVE_CLASS);\n\n const statuses = [];\n\n if (isSameDay(selectedDate, focusedDate)) {\n statuses.push(\"Selected date\");\n }\n\n if (calendarWasHidden) {\n statuses.push(\n \"You can navigate by day using left and right arrows\",\n \"Weeks by using up and down arrows\",\n \"Months by using page up and page down keys\",\n \"Years by using shift plus page up and shift plus page down\",\n \"Home and end keys navigate to the beginning and end of a week\"\n );\n statusEl.textContent = \"\";\n } else {\n statuses.push(`${monthLabel} ${focusedYear}`);\n }\n statusEl.textContent = statuses.join(\". \");\n\n return newCalendar;\n};\n\n/**\n * Navigate back one year and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayPreviousYear = (_buttonEl) => {\n if (_buttonEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n _buttonEl\n );\n let date = subYears(calendarDate, 1);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Navigate back one month and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayPreviousMonth = (_buttonEl) => {\n if (_buttonEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n _buttonEl\n );\n let date = subMonths(calendarDate, 1);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_MONTH);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Navigate forward one month and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayNextMonth = (_buttonEl) => {\n if (_buttonEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n _buttonEl\n );\n let date = addMonths(calendarDate, 1);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_MONTH);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Navigate forward one year and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayNextYear = (_buttonEl) => {\n if (_buttonEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n _buttonEl\n );\n let date = addYears(calendarDate, 1);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Hide the calendar of a date picker component.\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst hideCalendar = (el) => {\n const { datePickerEl, calendarEl, statusEl } = getDatePickerContext(el);\n\n datePickerEl.classList.remove(DATE_PICKER_ACTIVE_CLASS);\n calendarEl.hidden = true;\n statusEl.textContent = \"\";\n};\n\n/**\n * Select a date within the date picker component.\n *\n * @param {HTMLButtonElement} calendarDateEl A date element within the date picker component\n */\nconst selectDate = (calendarDateEl) => {\n if (calendarDateEl.disabled) return;\n\n const { datePickerEl, externalInputEl } = getDatePickerContext(\n calendarDateEl\n );\n\n setCalendarValue(calendarDateEl, calendarDateEl.dataset.value);\n hideCalendar(datePickerEl);\n\n externalInputEl.focus();\n};\n\n/**\n * Toggle the calendar.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n */\nconst toggleCalendar = (el) => {\n if (el.disabled) return;\n const {\n calendarEl,\n inputDate,\n minDate,\n maxDate,\n defaultDate,\n } = getDatePickerContext(el);\n\n if (calendarEl.hidden) {\n const dateToDisplay = keepDateBetweenMinAndMax(\n inputDate || defaultDate || today(),\n minDate,\n maxDate\n );\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n } else {\n hideCalendar(el);\n }\n};\n\n/**\n * Update the calendar when visible.\n *\n * @param {HTMLElement} el an element within the date picker\n */\nconst updateCalendarIfVisible = (el) => {\n const { calendarEl, inputDate, minDate, maxDate } = getDatePickerContext(el);\n const calendarShown = !calendarEl.hidden;\n\n if (calendarShown && inputDate) {\n const dateToDisplay = keepDateBetweenMinAndMax(inputDate, minDate, maxDate);\n renderCalendar(calendarEl, dateToDisplay);\n }\n};\n\n// #endregion Calendar - Date Selection View\n\n// #region Calendar - Month Selection View\n/**\n * Display the month selection screen in the date picker.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n * @returns {HTMLElement} a reference to the new calendar element\n */\nconst displayMonthSelection = (el, monthToDisplay) => {\n const {\n calendarEl,\n statusEl,\n calendarDate,\n minDate,\n maxDate,\n } = getDatePickerContext(el);\n\n const selectedMonth = calendarDate.getMonth();\n const focusedMonth = monthToDisplay == null ? selectedMonth : monthToDisplay;\n\n const months = MONTH_LABELS.map((month, index) => {\n const monthToCheck = setMonth(calendarDate, index);\n\n const isDisabled = isDatesMonthOutsideMinOrMax(\n monthToCheck,\n minDate,\n maxDate\n );\n\n let tabindex = \"-1\";\n\n const classes = [CALENDAR_MONTH_CLASS];\n const isSelected = index === selectedMonth;\n\n if (index === focusedMonth) {\n tabindex = \"0\";\n classes.push(CALENDAR_MONTH_FOCUSED_CLASS);\n }\n\n if (isSelected) {\n classes.push(CALENDAR_MONTH_SELECTED_CLASS);\n }\n\n return `<button \n type=\"button\"\n tabindex=\"${tabindex}\"\n class=\"${classes.join(\" \")}\" \n data-value=\"${index}\"\n data-label=\"${month}\"\n aria-selected=\"${isSelected ? \"true\" : \"false\"}\"\n ${isDisabled ? `disabled=\"disabled\"` : \"\"}\n >${month}</button>`;\n });\n\n const monthsHtml = `<div tabindex=\"-1\" class=\"${CALENDAR_MONTH_PICKER_CLASS}\">\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\n <tbody>\n ${listToGridHtml(months, 3)}\n </tbody>\n </table>\n </div>`;\n\n const newCalendar = calendarEl.cloneNode();\n newCalendar.innerHTML = monthsHtml;\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\n\n statusEl.textContent = \"Select a month.\";\n\n return newCalendar;\n};\n\n/**\n * Select a month in the date picker component.\n *\n * @param {HTMLButtonElement} monthEl An month element within the date picker component\n */\nconst selectMonth = (monthEl) => {\n if (monthEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n monthEl\n );\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\n let date = setMonth(calendarDate, selectedMonth);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n};\n\n// #endregion Calendar - Month Selection View\n\n// #region Calendar - Year Selection View\n\n/**\n * Display the year selection screen in the date picker.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n * @param {number} yearToDisplay year to display in year selection\n * @returns {HTMLElement} a reference to the new calendar element\n */\nconst displayYearSelection = (el, yearToDisplay) => {\n const {\n calendarEl,\n statusEl,\n calendarDate,\n minDate,\n maxDate,\n } = getDatePickerContext(el);\n\n const selectedYear = calendarDate.getFullYear();\n const focusedYear = yearToDisplay == null ? selectedYear : yearToDisplay;\n\n let yearToChunk = focusedYear;\n yearToChunk -= yearToChunk % YEAR_CHUNK;\n yearToChunk = Math.max(0, yearToChunk);\n\n const prevYearChunkDisabled = isDatesYearOutsideMinOrMax(\n setYear(calendarDate, yearToChunk - 1),\n minDate,\n maxDate\n );\n\n const nextYearChunkDisabled = isDatesYearOutsideMinOrMax(\n setYear(calendarDate, yearToChunk + YEAR_CHUNK),\n minDate,\n maxDate\n );\n\n const years = [];\n let yearIndex = yearToChunk;\n while (years.length < YEAR_CHUNK) {\n const isDisabled = isDatesYearOutsideMinOrMax(\n setYear(calendarDate, yearIndex),\n minDate,\n maxDate\n );\n\n let tabindex = \"-1\";\n\n const classes = [CALENDAR_YEAR_CLASS];\n const isSelected = yearIndex === selectedYear;\n\n if (yearIndex === focusedYear) {\n tabindex = \"0\";\n classes.push(CALENDAR_YEAR_FOCUSED_CLASS);\n }\n\n if (isSelected) {\n classes.push(CALENDAR_YEAR_SELECTED_CLASS);\n }\n\n years.push(\n `<button \n type=\"button\"\n tabindex=\"${tabindex}\"\n class=\"${classes.join(\" \")}\" \n data-value=\"${yearIndex}\"\n aria-selected=\"${isSelected ? \"true\" : \"false\"}\"\n ${isDisabled ? `disabled=\"disabled\"` : \"\"}\n >${yearIndex}</button>`\n );\n yearIndex += 1;\n }\n\n const yearsHtml = listToGridHtml(years, 3);\n\n const newCalendar = calendarEl.cloneNode();\n newCalendar.innerHTML = `<div tabindex=\"-1\" class=\"${CALENDAR_YEAR_PICKER_CLASS}\">\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\n <tbody>\n <tr>\n <td>\n <button\n type=\"button\"\n class=\"${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}\" \n aria-label=\"Navigate back ${YEAR_CHUNK} years\"\n ${prevYearChunkDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </td>\n <td colspan=\"3\">\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\n <tbody>\n ${yearsHtml}\n </tbody>\n </table>\n </td>\n <td>\n <button\n type=\"button\"\n class=\"${CALENDAR_NEXT_YEAR_CHUNK_CLASS}\" \n aria-label=\"Navigate forward ${YEAR_CHUNK} years\"\n ${nextYearChunkDisabled ? `disabled=\"disabled\"` : \"\"}\n >&nbsp;</button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>`;\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\n\n statusEl.textContent = `Showing years ${yearToChunk} to ${\n yearToChunk + YEAR_CHUNK - 1\n }. Select a year.`;\n\n return newCalendar;\n};\n\n/**\n * Navigate back by years and display the year selection screen.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n */\nconst displayPreviousYearChunk = (el) => {\n if (el.disabled) return;\n\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n el\n );\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\n const selectedYear = parseInt(yearEl.textContent, 10);\n\n let adjustedYear = selectedYear - YEAR_CHUNK;\n adjustedYear = Math.max(0, adjustedYear);\n\n const date = setYear(calendarDate, adjustedYear);\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = displayYearSelection(\n calendarEl,\n cappedDate.getFullYear()\n );\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR_CHUNK);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Navigate forward by years and display the year selection screen.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n */\nconst displayNextYearChunk = (el) => {\n if (el.disabled) return;\n\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n el\n );\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\n const selectedYear = parseInt(yearEl.textContent, 10);\n\n let adjustedYear = selectedYear + YEAR_CHUNK;\n adjustedYear = Math.max(0, adjustedYear);\n\n const date = setYear(calendarDate, adjustedYear);\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = displayYearSelection(\n calendarEl,\n cappedDate.getFullYear()\n );\n\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR_CHUNK);\n if (nextToFocus.disabled) {\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\n }\n nextToFocus.focus();\n};\n\n/**\n * Select a year in the date picker component.\n *\n * @param {HTMLButtonElement} yearEl A year element within the date picker component\n */\nconst selectYear = (yearEl) => {\n if (yearEl.disabled) return;\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n yearEl\n );\n const selectedYear = parseInt(yearEl.innerHTML, 10);\n let date = setYear(calendarDate, selectedYear);\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n const newCalendar = renderCalendar(calendarEl, date);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n};\n\n// #endregion Calendar - Year Selection View\n\n// #region Calendar Event Handling\n\n/**\n * Hide the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEscapeFromCalendar = (event) => {\n const { datePickerEl, externalInputEl } = getDatePickerContext(event.target);\n\n hideCalendar(datePickerEl);\n externalInputEl.focus();\n\n event.preventDefault();\n};\n\n// #endregion Calendar Event Handling\n\n// #region Calendar Date Event Handling\n\n/**\n * Adjust the date and display the calendar if needed.\n *\n * @param {function} adjustDateFn function that returns the adjusted date\n */\nconst adjustCalendar = (adjustDateFn) => {\n return (event) => {\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n event.target\n );\n\n const date = adjustDateFn(calendarDate);\n\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n if (!isSameDay(calendarDate, cappedDate)) {\n const newCalendar = renderCalendar(calendarEl, cappedDate);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n }\n event.preventDefault();\n };\n};\n\n/**\n * Navigate back one week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleUpFromDate = adjustCalendar((date) => subWeeks(date, 1));\n\n/**\n * Navigate forward one week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleDownFromDate = adjustCalendar((date) => addWeeks(date, 1));\n\n/**\n * Navigate back one day and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleLeftFromDate = adjustCalendar((date) => subDays(date, 1));\n\n/**\n * Navigate forward one day and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleRightFromDate = adjustCalendar((date) => addDays(date, 1));\n\n/**\n * Navigate to the start of the week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleHomeFromDate = adjustCalendar((date) => startOfWeek(date));\n\n/**\n * Navigate to the end of the week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEndFromDate = adjustCalendar((date) => endOfWeek(date));\n\n/**\n * Navigate forward one month and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageDownFromDate = adjustCalendar((date) => addMonths(date, 1));\n\n/**\n * Navigate back one month and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageUpFromDate = adjustCalendar((date) => subMonths(date, 1));\n\n/**\n * Navigate forward one year and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleShiftPageDownFromDate = adjustCalendar((date) => addYears(date, 1));\n\n/**\n * Navigate back one year and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleShiftPageUpFromDate = adjustCalendar((date) => subYears(date, 1));\n\n/**\n * display the calendar for the mousemove date.\n *\n * @param {MouseEvent} event The mousemove event\n * @param {HTMLButtonElement} dateEl A date element within the date picker component\n */\nconst handleMousemoveFromDate = (dateEl) => {\n if (dateEl.disabled) return;\n\n const calendarEl = dateEl.closest(DATE_PICKER_CALENDAR);\n\n const currentCalendarDate = calendarEl.dataset.value;\n const hoverDate = dateEl.dataset.value;\n\n if (hoverDate === currentCalendarDate) return;\n\n const dateToDisplay = parseDateString(hoverDate);\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n};\n\n// #endregion Calendar Date Event Handling\n\n// #region Calendar Month Event Handling\n\n/**\n * Adjust the month and display the month selection screen if needed.\n *\n * @param {function} adjustMonthFn function that returns the adjusted month\n */\nconst adjustMonthSelectionScreen = (adjustMonthFn) => {\n return (event) => {\n const monthEl = event.target;\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n monthEl\n );\n const currentDate = setMonth(calendarDate, selectedMonth);\n\n let adjustedMonth = adjustMonthFn(selectedMonth);\n adjustedMonth = Math.max(0, Math.min(11, adjustedMonth));\n\n const date = setMonth(calendarDate, adjustedMonth);\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n if (!isSameMonth(currentDate, cappedDate)) {\n const newCalendar = displayMonthSelection(\n calendarEl,\n cappedDate.getMonth()\n );\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\n }\n event.preventDefault();\n };\n};\n\n/**\n * Navigate back three months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleUpFromMonth = adjustMonthSelectionScreen((month) => month - 3);\n\n/**\n * Navigate forward three months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleDownFromMonth = adjustMonthSelectionScreen((month) => month + 3);\n\n/**\n * Navigate back one month and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleLeftFromMonth = adjustMonthSelectionScreen((month) => month - 1);\n\n/**\n * Navigate forward one month and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleRightFromMonth = adjustMonthSelectionScreen((month) => month + 1);\n\n/**\n * Navigate to the start of the row of months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleHomeFromMonth = adjustMonthSelectionScreen(\n (month) => month - (month % 3)\n);\n\n/**\n * Navigate to the end of the row of months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEndFromMonth = adjustMonthSelectionScreen(\n (month) => month + 2 - (month % 3)\n);\n\n/**\n * Navigate to the last month (December) and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageDownFromMonth = adjustMonthSelectionScreen(() => 11);\n\n/**\n * Navigate to the first month (January) and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageUpFromMonth = adjustMonthSelectionScreen(() => 0);\n\n/**\n * update the focus on a month when the mouse moves.\n *\n * @param {MouseEvent} event The mousemove event\n * @param {HTMLButtonElement} monthEl A month element within the date picker component\n */\nconst handleMousemoveFromMonth = (monthEl) => {\n if (monthEl.disabled) return;\n if (monthEl.classList.contains(CALENDAR_MONTH_FOCUSED_CLASS)) return;\n\n const focusMonth = parseInt(monthEl.dataset.value, 10);\n\n const newCalendar = displayMonthSelection(monthEl, focusMonth);\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\n};\n\n// #endregion Calendar Month Event Handling\n\n// #region Calendar Year Event Handling\n\n/**\n * Adjust the year and display the year selection screen if needed.\n *\n * @param {function} adjustYearFn function that returns the adjusted year\n */\nconst adjustYearSelectionScreen = (adjustYearFn) => {\n return (event) => {\n const yearEl = event.target;\n const selectedYear = parseInt(yearEl.dataset.value, 10);\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n yearEl\n );\n const currentDate = setYear(calendarDate, selectedYear);\n\n let adjustedYear = adjustYearFn(selectedYear);\n adjustedYear = Math.max(0, adjustedYear);\n\n const date = setYear(calendarDate, adjustedYear);\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n if (!isSameYear(currentDate, cappedDate)) {\n const newCalendar = displayYearSelection(\n calendarEl,\n cappedDate.getFullYear()\n );\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\n }\n event.preventDefault();\n };\n};\n\n/**\n * Navigate back three years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleUpFromYear = adjustYearSelectionScreen((year) => year - 3);\n\n/**\n * Navigate forward three years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleDownFromYear = adjustYearSelectionScreen((year) => year + 3);\n\n/**\n * Navigate back one year and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleLeftFromYear = adjustYearSelectionScreen((year) => year - 1);\n\n/**\n * Navigate forward one year and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleRightFromYear = adjustYearSelectionScreen((year) => year + 1);\n\n/**\n * Navigate to the start of the row of years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleHomeFromYear = adjustYearSelectionScreen(\n (year) => year - (year % 3)\n);\n\n/**\n * Navigate to the end of the row of years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEndFromYear = adjustYearSelectionScreen(\n (year) => year + 2 - (year % 3)\n);\n\n/**\n * Navigate to back 12 years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageUpFromYear = adjustYearSelectionScreen(\n (year) => year - YEAR_CHUNK\n);\n\n/**\n * Navigate forward 12 years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageDownFromYear = adjustYearSelectionScreen(\n (year) => year + YEAR_CHUNK\n);\n\n/**\n * update the focus on a year when the mouse moves.\n *\n * @param {MouseEvent} event The mousemove event\n * @param {HTMLButtonElement} dateEl A year element within the date picker component\n */\nconst handleMousemoveFromYear = (yearEl) => {\n if (yearEl.disabled) return;\n if (yearEl.classList.contains(CALENDAR_YEAR_FOCUSED_CLASS)) return;\n\n const focusYear = parseInt(yearEl.dataset.value, 10);\n\n const newCalendar = displayYearSelection(yearEl, focusYear);\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\n};\n\n// #endregion Calendar Year Event Handling\n\n// #region Focus Handling Event Handling\n\nconst tabHandler = (focusable) => {\n const getFocusableContext = (el) => {\n const { calendarEl } = getDatePickerContext(el);\n const focusableElements = select(focusable, calendarEl);\n\n const firstTabIndex = 0;\n const lastTabIndex = focusableElements.length - 1;\n const firstTabStop = focusableElements[firstTabIndex];\n const lastTabStop = focusableElements[lastTabIndex];\n const focusIndex = focusableElements.indexOf(activeElement());\n\n const isLastTab = focusIndex === lastTabIndex;\n const isFirstTab = focusIndex === firstTabIndex;\n const isNotFound = focusIndex === -1;\n\n return {\n focusableElements,\n isNotFound,\n firstTabStop,\n isFirstTab,\n lastTabStop,\n isLastTab,\n };\n };\n\n return {\n tabAhead(event) {\n const { firstTabStop, isLastTab, isNotFound } = getFocusableContext(\n event.target\n );\n\n if (isLastTab || isNotFound) {\n event.preventDefault();\n firstTabStop.focus();\n }\n },\n tabBack(event) {\n const { lastTabStop, isFirstTab, isNotFound } = getFocusableContext(\n event.target\n );\n\n if (isFirstTab || isNotFound) {\n event.preventDefault();\n lastTabStop.focus();\n }\n },\n };\n};\n\nconst datePickerTabEventHandler = tabHandler(DATE_PICKER_FOCUSABLE);\nconst monthPickerTabEventHandler = tabHandler(MONTH_PICKER_FOCUSABLE);\nconst yearPickerTabEventHandler = tabHandler(YEAR_PICKER_FOCUSABLE);\n\n// #endregion Focus Handling Event Handling\n\n// #region Date Picker Event Delegation Registration / Component\n\nconst datePickerEvents = {\n [CLICK]: {\n [DATE_PICKER_BUTTON]() {\n toggleCalendar(this);\n },\n [CALENDAR_DATE]() {\n selectDate(this);\n },\n [CALENDAR_MONTH]() {\n selectMonth(this);\n },\n [CALENDAR_YEAR]() {\n selectYear(this);\n },\n [CALENDAR_PREVIOUS_MONTH]() {\n displayPreviousMonth(this);\n },\n [CALENDAR_NEXT_MONTH]() {\n displayNextMonth(this);\n },\n [CALENDAR_PREVIOUS_YEAR]() {\n displayPreviousYear(this);\n },\n [CALENDAR_NEXT_YEAR]() {\n displayNextYear(this);\n },\n [CALENDAR_PREVIOUS_YEAR_CHUNK]() {\n displayPreviousYearChunk(this);\n },\n [CALENDAR_NEXT_YEAR_CHUNK]() {\n displayNextYearChunk(this);\n },\n [CALENDAR_MONTH_SELECTION]() {\n const newCalendar = displayMonthSelection(this);\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\n },\n [CALENDAR_YEAR_SELECTION]() {\n const newCalendar = displayYearSelection(this);\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\n },\n },\n keyup: {\n [DATE_PICKER_CALENDAR](event) {\n const keydown = this.dataset.keydownKeyCode;\n if (`${event.keyCode}` !== keydown) {\n event.preventDefault();\n }\n },\n },\n keydown: {\n [DATE_PICKER_EXTERNAL_INPUT](event) {\n if (event.keyCode === ENTER_KEYCODE) {\n validateDateInput(this);\n }\n },\n [CALENDAR_DATE]: keymap({\n Up: handleUpFromDate,\n ArrowUp: handleUpFromDate,\n Down: handleDownFromDate,\n ArrowDown: handleDownFromDate,\n Left: handleLeftFromDate,\n ArrowLeft: handleLeftFromDate,\n Right: handleRightFromDate,\n ArrowRight: handleRightFromDate,\n Home: handleHomeFromDate,\n End: handleEndFromDate,\n PageDown: handlePageDownFromDate,\n PageUp: handlePageUpFromDate,\n \"Shift+PageDown\": handleShiftPageDownFromDate,\n \"Shift+PageUp\": handleShiftPageUpFromDate,\n }),\n [CALENDAR_DATE_PICKER]: keymap({\n Tab: datePickerTabEventHandler.tabAhead,\n \"Shift+Tab\": datePickerTabEventHandler.tabBack,\n }),\n [CALENDAR_MONTH]: keymap({\n Up: handleUpFromMonth,\n ArrowUp: handleUpFromMonth,\n Down: handleDownFromMonth,\n ArrowDown: handleDownFromMonth,\n Left: handleLeftFromMonth,\n ArrowLeft: handleLeftFromMonth,\n Right: handleRightFromMonth,\n ArrowRight: handleRightFromMonth,\n Home: handleHomeFromMonth,\n End: handleEndFromMonth,\n PageDown: handlePageDownFromMonth,\n PageUp: handlePageUpFromMonth,\n }),\n [CALENDAR_MONTH_PICKER]: keymap({\n Tab: monthPickerTabEventHandler.tabAhead,\n \"Shift+Tab\": monthPickerTabEventHandler.tabBack,\n }),\n [CALENDAR_YEAR]: keymap({\n Up: handleUpFromYear,\n ArrowUp: handleUpFromYear,\n Down: handleDownFromYear,\n ArrowDown: handleDownFromYear,\n Left: handleLeftFromYear,\n ArrowLeft: handleLeftFromYear,\n Right: handleRightFromYear,\n ArrowRight: handleRightFromYear,\n Home: handleHomeFromYear,\n End: handleEndFromYear,\n PageDown: handlePageDownFromYear,\n PageUp: handlePageUpFromYear,\n }),\n [CALENDAR_YEAR_PICKER]: keymap({\n Tab: yearPickerTabEventHandler.tabAhead,\n \"Shift+Tab\": yearPickerTabEventHandler.tabBack,\n }),\n [DATE_PICKER_CALENDAR](event) {\n this.dataset.keydownKeyCode = event.keyCode;\n },\n [DATE_PICKER](event) {\n const keyMap = keymap({\n Escape: handleEscapeFromCalendar,\n });\n\n keyMap(event);\n },\n },\n focusout: {\n [DATE_PICKER_EXTERNAL_INPUT]() {\n validateDateInput(this);\n },\n [DATE_PICKER](event) {\n if (!this.contains(event.relatedTarget)) {\n hideCalendar(this);\n }\n },\n },\n input: {\n [DATE_PICKER_EXTERNAL_INPUT]() {\n reconcileInputValues(this);\n updateCalendarIfVisible(this);\n },\n },\n};\n\nif (!isIosDevice()) {\n datePickerEvents.mousemove = {\n [CALENDAR_DATE_CURRENT_MONTH]() {\n handleMousemoveFromDate(this);\n },\n [CALENDAR_MONTH]() {\n handleMousemoveFromMonth(this);\n },\n [CALENDAR_YEAR]() {\n handleMousemoveFromYear(this);\n },\n };\n}\n\nconst datePicker = behavior(datePickerEvents, {\n init(root) {\n select(DATE_PICKER, root).forEach((datePickerEl) => {\n enhanceDatePicker(datePickerEl);\n });\n },\n getDatePickerContext,\n disable,\n enable,\n isDateInputInvalid,\n setCalendarValue,\n validateDateInput,\n renderCalendar,\n updateCalendarIfVisible,\n});\n\n// #endregion Date Picker Event Delegation Registration / Component\n\nmodule.exports = datePicker;\n","const behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst {\n getDatePickerContext,\n isDateInputInvalid,\n updateCalendarIfVisible,\n} = require(\"./date-picker\");\n\nconst DATE_PICKER_CLASS = `${PREFIX}-date-picker`;\nconst DATE_RANGE_PICKER_CLASS = `${PREFIX}-date-range-picker`;\nconst DATE_RANGE_PICKER_RANGE_START_CLASS = `${DATE_RANGE_PICKER_CLASS}__range-start`;\nconst DATE_RANGE_PICKER_RANGE_END_CLASS = `${DATE_RANGE_PICKER_CLASS}__range-end`;\n\nconst DATE_PICKER = `.${DATE_PICKER_CLASS}`;\nconst DATE_RANGE_PICKER = `.${DATE_RANGE_PICKER_CLASS}`;\nconst DATE_RANGE_PICKER_RANGE_START = `.${DATE_RANGE_PICKER_RANGE_START_CLASS}`;\nconst DATE_RANGE_PICKER_RANGE_END = `.${DATE_RANGE_PICKER_RANGE_END_CLASS}`;\n\nconst DEFAULT_MIN_DATE = \"0000-01-01\";\n\n/**\n * The properties and elements within the date range picker.\n * @typedef {Object} DateRangePickerContext\n * @property {HTMLElement} dateRangePickerEl\n * @property {HTMLElement} rangeStartEl\n * @property {HTMLElement} rangeEndEl\n */\n\n/**\n * Get an object of the properties and elements belonging directly to the given\n * date picker component.\n *\n * @param {HTMLElement} el the element within the date picker\n * @returns {DateRangePickerContext} elements\n */\nconst getDateRangePickerContext = (el) => {\n const dateRangePickerEl = el.closest(DATE_RANGE_PICKER);\n\n if (!dateRangePickerEl) {\n throw new Error(`Element is missing outer ${DATE_RANGE_PICKER}`);\n }\n\n const rangeStartEl = dateRangePickerEl.querySelector(\n DATE_RANGE_PICKER_RANGE_START\n );\n const rangeEndEl = dateRangePickerEl.querySelector(\n DATE_RANGE_PICKER_RANGE_END\n );\n\n return {\n dateRangePickerEl,\n rangeStartEl,\n rangeEndEl,\n };\n};\n\n/**\n * handle update from range start date picker\n *\n * @param {HTMLElement} el an element within the date range picker\n */\nconst handleRangeStartUpdate = (el) => {\n const {\n dateRangePickerEl,\n rangeStartEl,\n rangeEndEl,\n } = getDateRangePickerContext(el);\n const { internalInputEl } = getDatePickerContext(rangeStartEl);\n const updatedDate = internalInputEl.value;\n\n if (updatedDate && !isDateInputInvalid(internalInputEl)) {\n rangeEndEl.dataset.minDate = updatedDate;\n rangeEndEl.dataset.rangeDate = updatedDate;\n rangeEndEl.dataset.defaultDate = updatedDate;\n } else {\n rangeEndEl.dataset.minDate = dateRangePickerEl.dataset.minDate || \"\";\n rangeEndEl.dataset.rangeDate = \"\";\n rangeEndEl.dataset.defaultDate = \"\";\n }\n\n updateCalendarIfVisible(rangeEndEl);\n};\n\n/**\n * handle update from range start date picker\n *\n * @param {HTMLElement} el an element within the date range picker\n */\nconst handleRangeEndUpdate = (el) => {\n const {\n dateRangePickerEl,\n rangeStartEl,\n rangeEndEl,\n } = getDateRangePickerContext(el);\n const { internalInputEl } = getDatePickerContext(rangeEndEl);\n const updatedDate = internalInputEl.value;\n\n if (updatedDate && !isDateInputInvalid(internalInputEl)) {\n rangeStartEl.dataset.maxDate = updatedDate;\n rangeStartEl.dataset.rangeDate = updatedDate;\n rangeStartEl.dataset.defaultDate = updatedDate;\n } else {\n rangeStartEl.dataset.maxDate = dateRangePickerEl.dataset.maxDate || \"\";\n rangeStartEl.dataset.rangeDate = \"\";\n rangeStartEl.dataset.defaultDate = \"\";\n }\n\n updateCalendarIfVisible(rangeStartEl);\n};\n\n/**\n * Enhance an input with the date picker elements\n *\n * @param {HTMLElement} el The initial wrapping element of the date range picker component\n */\nconst enhanceDateRangePicker = (el) => {\n const dateRangePickerEl = el.closest(DATE_RANGE_PICKER);\n\n const [rangeStart, rangeEnd] = select(DATE_PICKER, dateRangePickerEl);\n\n if (!rangeStart) {\n throw new Error(\n `${DATE_RANGE_PICKER} is missing inner two '${DATE_PICKER}' elements`\n );\n }\n\n if (!rangeEnd) {\n throw new Error(\n `${DATE_RANGE_PICKER} is missing second '${DATE_PICKER}' element`\n );\n }\n\n rangeStart.classList.add(DATE_RANGE_PICKER_RANGE_START_CLASS);\n rangeEnd.classList.add(DATE_RANGE_PICKER_RANGE_END_CLASS);\n\n if (!dateRangePickerEl.dataset.minDate) {\n dateRangePickerEl.dataset.minDate = DEFAULT_MIN_DATE;\n }\n\n const minDate = dateRangePickerEl.dataset.minDate;\n rangeStart.dataset.minDate = minDate;\n rangeEnd.dataset.minDate = minDate;\n\n const maxDate = dateRangePickerEl.dataset.maxDate;\n if (maxDate) {\n rangeStart.dataset.maxDate = maxDate;\n rangeEnd.dataset.maxDate = maxDate;\n }\n\n handleRangeStartUpdate(dateRangePickerEl);\n handleRangeEndUpdate(dateRangePickerEl);\n};\n\nconst dateRangePicker = behavior(\n {\n \"input change\": {\n [DATE_RANGE_PICKER_RANGE_START]() {\n handleRangeStartUpdate(this);\n },\n [DATE_RANGE_PICKER_RANGE_END]() {\n handleRangeEndUpdate(this);\n },\n },\n },\n {\n init(root) {\n select(DATE_RANGE_PICKER, root).forEach((dateRangePickerEl) => {\n enhanceDateRangePicker(dateRangePickerEl);\n });\n },\n }\n);\n\nmodule.exports = dateRangePicker;\n","const select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst DROPZONE_CLASS = `${PREFIX}-file-input`;\nconst DROPZONE = `.${DROPZONE_CLASS}`;\nconst INPUT_CLASS = `${PREFIX}-file-input__input`;\nconst TARGET_CLASS = `${PREFIX}-file-input__target`;\nconst INPUT = `.${INPUT_CLASS}`;\nconst BOX_CLASS = `${PREFIX}-file-input__box`;\nconst INSTRUCTIONS_CLASS = `${PREFIX}-file-input__instructions`;\nconst PREVIEW_CLASS = `${PREFIX}-file-input__preview`;\nconst PREVIEW_HEADING_CLASS = `${PREFIX}-file-input__preview-heading`;\nconst DISABLED_CLASS = `${PREFIX}-file-input--disabled`;\nconst CHOOSE_CLASS = `${PREFIX}-file-input__choose`;\nconst ACCEPTED_FILE_MESSAGE_CLASS = `${PREFIX}-file-input__accepted-files-message`;\nconst DRAG_TEXT_CLASS = `${PREFIX}-file-input__drag-text`;\nconst DRAG_CLASS = `${PREFIX}-file-input--drag`;\nconst LOADING_CLASS = \"is-loading\";\nconst HIDDEN_CLASS = \"display-none\";\nconst INVALID_FILE_CLASS = \"has-invalid-file\";\nconst GENERIC_PREVIEW_CLASS_NAME = `${PREFIX}-file-input__preview-image`;\nconst GENERIC_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--generic`;\nconst PDF_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--pdf`;\nconst WORD_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--word`;\nconst VIDEO_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--video`;\nconst EXCEL_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--excel`;\nconst SPACER_GIF =\n \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\";\n\n/**\n * The properties and elements within the file input.\n * @typedef {Object} FileInputContext\n * @property {HTMLDivElement} dropZoneEl\n * @property {HTMLInputElement} inputEl\n */\n\n/**\n * Get an object of the properties and elements belonging directly to the given\n * file input component.\n *\n * @param {HTMLElement} el the element within the file input\n * @returns {FileInputContext} elements\n */\nconst getFileInputContext = (el) => {\n const dropZoneEl = el.closest(DROPZONE);\n\n if (!dropZoneEl) {\n throw new Error(`Element is missing outer ${DROPZONE}`);\n }\n\n const inputEl = dropZoneEl.querySelector(INPUT);\n\n return {\n dropZoneEl,\n inputEl,\n };\n};\n\n/**\n * Disable the file input component\n *\n * @param {HTMLElement} el An element within the file input component\n */\nconst disable = (el) => {\n const { dropZoneEl, inputEl } = getFileInputContext(el);\n\n inputEl.disabled = true;\n dropZoneEl.classList.add(DISABLED_CLASS);\n dropZoneEl.setAttribute(\"aria-disabled\", \"true\");\n};\n\n/**\n * Enable the file input component\n *\n * @param {HTMLElement} el An element within the file input component\n */\nconst enable = (el) => {\n const { dropZoneEl, inputEl } = getFileInputContext(el);\n\n inputEl.disabled = false;\n dropZoneEl.classList.remove(DISABLED_CLASS);\n dropZoneEl.removeAttribute(\"aria-disabled\");\n};\n\n/**\n * Creates an ID name for each file that strips all invalid characters.\n * @param {string} name - name of the file added to file input\n * @returns {string} same characters as the name with invalid chars removed\n */\nconst makeSafeForID = (name) => {\n return name.replace(/[^a-z0-9]/g, function replaceName(s) {\n const c = s.charCodeAt(0);\n if (c === 32) return \"-\";\n if (c >= 65 && c <= 90) return `img_${s.toLowerCase()}`;\n return `__${(\"000\", c.toString(16)).slice(-4)}`;\n });\n};\n\n/**\n * Builds full file input comonent\n * @param {HTMLElement} fileInputEl - original file input on page\n * @returns {HTMLElement|HTMLElement} - Instructions, target area div\n */\nconst buildFileInput = (fileInputEl) => {\n const acceptsMultiple = fileInputEl.hasAttribute(\"multiple\");\n const fileInputParent = document.createElement(\"div\");\n const dropTarget = document.createElement(\"div\");\n const box = document.createElement(\"div\");\n const instructions = document.createElement(\"div\");\n const disabled = fileInputEl.hasAttribute(\"disabled\");\n\n // Adds class names and other attributes\n fileInputEl.classList.remove(DROPZONE_CLASS);\n fileInputEl.classList.add(INPUT_CLASS);\n fileInputParent.classList.add(DROPZONE_CLASS);\n box.classList.add(BOX_CLASS);\n instructions.classList.add(INSTRUCTIONS_CLASS);\n instructions.setAttribute(\"aria-hidden\", \"true\");\n dropTarget.classList.add(TARGET_CLASS);\n\n // Adds child elements to the DOM\n fileInputEl.parentNode.insertBefore(dropTarget, fileInputEl);\n fileInputEl.parentNode.insertBefore(fileInputParent, dropTarget);\n dropTarget.appendChild(fileInputEl);\n fileInputParent.appendChild(dropTarget);\n fileInputEl.parentNode.insertBefore(instructions, fileInputEl);\n fileInputEl.parentNode.insertBefore(box, fileInputEl);\n\n // Disabled styling\n if (disabled) {\n disable(fileInputEl);\n }\n\n // Sets instruction test based on whether or not multiple files are accepted\n if (acceptsMultiple) {\n instructions.innerHTML = `<span class=\"${DRAG_TEXT_CLASS}\">Drag files here or </span><span class=\"${CHOOSE_CLASS}\">choose from folder</span>`;\n } else {\n instructions.innerHTML = `<span class=\"${DRAG_TEXT_CLASS}\">Drag file here or </span><span class=\"${CHOOSE_CLASS}\">choose from folder</span>`;\n }\n\n // IE11 and Edge do not support drop files on file inputs, so we've removed text that indicates that\n if (\n /rv:11.0/i.test(navigator.userAgent) ||\n /Edge\\/\\d./i.test(navigator.userAgent)\n ) {\n fileInputParent.querySelector(`.${DRAG_TEXT_CLASS}`).outerHTML = \"\";\n }\n\n return { instructions, dropTarget };\n};\n\n/**\n * Removes image previews, we want to start with a clean list every time files are added to the file input\n * @param {HTMLElement} dropTarget - target area div that encases the input\n * @param {HTMLElement} instructions - text to inform users to drag or select files\n */\nconst removeOldPreviews = (dropTarget, instructions) => {\n const filePreviews = dropTarget.querySelectorAll(`.${PREVIEW_CLASS}`);\n const currentPreviewHeading = dropTarget.querySelector(\n `.${PREVIEW_HEADING_CLASS}`\n );\n const currentErrorMessage = dropTarget.querySelector(\n `.${ACCEPTED_FILE_MESSAGE_CLASS}`\n );\n\n // Remove the heading above the previews\n if (currentPreviewHeading) {\n currentPreviewHeading.outerHTML = \"\";\n }\n\n // Remove existing error messages\n if (currentErrorMessage) {\n currentErrorMessage.outerHTML = \"\";\n dropTarget.classList.remove(INVALID_FILE_CLASS);\n }\n\n // Get rid of existing previews if they exist, show instructions\n if (filePreviews !== null) {\n if (instructions) {\n instructions.classList.remove(HIDDEN_CLASS);\n }\n Array.prototype.forEach.call(filePreviews, function removeImages(node) {\n node.parentNode.removeChild(node);\n });\n }\n};\n\n/**\n * When using an Accept attribute, invalid files will be hidden from\n * file browser, but they can still be dragged to the input. This\n * function prevents them from being dragged and removes error states\n * when correct files are added.\n * @param {event} e\n * @param {HTMLElement} fileInputEl - file input element\n * @param {HTMLElement} instructions - text to inform users to drag or select files\n * @param {HTMLElement} dropTarget - target area div that encases the input\n */\nconst preventInvalidFiles = (e, fileInputEl, instructions, dropTarget) => {\n const acceptedFilesAttr = fileInputEl.getAttribute(\"accept\");\n dropTarget.classList.remove(INVALID_FILE_CLASS);\n\n // Runs if only specific files are accepted\n if (acceptedFilesAttr) {\n const acceptedFiles = acceptedFilesAttr.split(\",\");\n const errorMessage = document.createElement(\"div\");\n\n // If multiple files are dragged, this iterates through them and look for any files that are not accepted.\n let allFilesAllowed = true;\n for (let i = 0; i < e.dataTransfer.files.length; i += 1) {\n const file = e.dataTransfer.files[i];\n if (allFilesAllowed) {\n for (let j = 0; j < acceptedFiles.length; j += 1) {\n const fileType = acceptedFiles[j];\n allFilesAllowed =\n file.name.indexOf(fileType) > 0 ||\n file.type.includes(fileType.replace(/\\*/g, \"\"));\n if (allFilesAllowed) break;\n }\n } else break;\n }\n\n // If dragged files are not accepted, this removes them from the value of the input and creates and error state\n if (!allFilesAllowed) {\n removeOldPreviews(dropTarget, instructions);\n fileInputEl.value = \"\"; // eslint-disable-line no-param-reassign\n dropTarget.insertBefore(errorMessage, fileInputEl);\n errorMessage.innerHTML = `This is not a valid file type.`;\n errorMessage.classList.add(ACCEPTED_FILE_MESSAGE_CLASS);\n dropTarget.classList.add(INVALID_FILE_CLASS);\n e.preventDefault();\n e.stopPropagation();\n }\n }\n};\n\n/**\n * When new files are applied to file input, this function generates previews\n * and removes old ones.\n * @param {event} e\n * @param {HTMLElement} fileInputEl - file input element\n * @param {HTMLElement} instructions - text to inform users to drag or select files\n * @param {HTMLElement} dropTarget - target area div that encases the input\n */\nconst handleChange = (e, fileInputEl, instructions, dropTarget) => {\n const fileNames = e.target.files;\n const filePreviewsHeading = document.createElement(\"div\");\n\n // First, get rid of existing previews\n removeOldPreviews(dropTarget, instructions);\n\n // Iterates through files list and creates previews\n for (let i = 0; i < fileNames.length; i += 1) {\n const reader = new FileReader();\n const fileName = fileNames[i].name;\n\n // Starts with a loading image while preview is created\n reader.onloadstart = function createLoadingImage() {\n const imageId = makeSafeForID(fileName);\n const previewImage = `<img id=\"${imageId}\" src=\"${SPACER_GIF}\" alt=\"\" class=\"${GENERIC_PREVIEW_CLASS_NAME} ${LOADING_CLASS}\"/>`;\n\n instructions.insertAdjacentHTML(\n \"afterend\",\n `<div class=\"${PREVIEW_CLASS}\" aria-hidden=\"true\">${previewImage}${fileName}<div>`\n );\n };\n\n // Not all files will be able to generate previews. In case this happens, we provide several types \"generic previews\" based on the file extension.\n reader.onloadend = function createFilePreview() {\n const imageId = makeSafeForID(fileName);\n const previewImage = document.getElementById(imageId);\n if (fileName.indexOf(\".pdf\") > 0) {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${PDF_PREVIEW_CLASS}\")`\n );\n } else if (\n fileName.indexOf(\".doc\") > 0 ||\n fileName.indexOf(\".pages\") > 0\n ) {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${WORD_PREVIEW_CLASS}\")`\n );\n } else if (\n fileName.indexOf(\".xls\") > 0 ||\n fileName.indexOf(\".numbers\") > 0\n ) {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${EXCEL_PREVIEW_CLASS}\")`\n );\n } else if (fileName.indexOf(\".mov\") > 0 || fileName.indexOf(\".mp4\") > 0) {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${VIDEO_PREVIEW_CLASS}\")`\n );\n } else {\n previewImage.setAttribute(\n \"onerror\",\n `this.onerror=null;this.src=\"${SPACER_GIF}\"; this.classList.add(\"${GENERIC_PREVIEW_CLASS}\")`\n );\n }\n\n // Removes loader and displays preview\n previewImage.classList.remove(LOADING_CLASS);\n previewImage.src = reader.result;\n };\n\n if (fileNames[i]) {\n reader.readAsDataURL(fileNames[i]);\n }\n\n // Adds heading above file previews, pluralizes if there are multiple\n if (i === 0) {\n dropTarget.insertBefore(filePreviewsHeading, instructions);\n filePreviewsHeading.innerHTML = `Selected file <span class=\"usa-file-input__choose\">Change file</span>`;\n } else if (i >= 1) {\n dropTarget.insertBefore(filePreviewsHeading, instructions);\n filePreviewsHeading.innerHTML = `${\n i + 1\n } files selected <span class=\"usa-file-input__choose\">Change files</span>`;\n }\n\n // Hides null state content and sets preview heading class\n if (filePreviewsHeading) {\n instructions.classList.add(HIDDEN_CLASS);\n filePreviewsHeading.classList.add(PREVIEW_HEADING_CLASS);\n }\n }\n};\n\nconst fileInput = behavior(\n {},\n {\n init(root) {\n select(DROPZONE, root).forEach((fileInputEl) => {\n const { instructions, dropTarget } = buildFileInput(fileInputEl);\n\n dropTarget.addEventListener(\n \"dragover\",\n function handleDragOver() {\n this.classList.add(DRAG_CLASS);\n },\n false\n );\n\n dropTarget.addEventListener(\n \"dragleave\",\n function handleDragLeave() {\n this.classList.remove(DRAG_CLASS);\n },\n false\n );\n\n dropTarget.addEventListener(\n \"drop\",\n function handleDrop(e) {\n preventInvalidFiles(e, fileInputEl, instructions, dropTarget);\n this.classList.remove(DRAG_CLASS);\n },\n false\n );\n\n // eslint-disable-next-line no-param-reassign\n fileInputEl.onchange = (e) => {\n handleChange(e, fileInputEl, instructions, dropTarget);\n };\n });\n },\n getFileInputContext,\n disable,\n enable,\n }\n);\n\nmodule.exports = fileInput;\n","const debounce = require(\"lodash.debounce\");\nconst behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst HIDDEN = \"hidden\";\nconst SCOPE = `.${PREFIX}-footer--big`;\nconst NAV = `${SCOPE} nav`;\nconst BUTTON = `${NAV} .${PREFIX}-footer__primary-link`;\nconst COLLAPSIBLE = `.${PREFIX}-footer__primary-content--collapsible`;\n\nconst HIDE_MAX_WIDTH = 480;\nconst DEBOUNCE_RATE = 180;\n\nfunction showPanel() {\n if (window.innerWidth < HIDE_MAX_WIDTH) {\n const collapseEl = this.closest(COLLAPSIBLE);\n collapseEl.classList.toggle(HIDDEN);\n\n // NB: this *should* always succeed because the button\n // selector is scoped to \".{prefix}-footer-big nav\"\n const collapsibleEls = select(COLLAPSIBLE, collapseEl.closest(NAV));\n\n collapsibleEls.forEach((el) => {\n if (el !== collapseEl) {\n el.classList.add(HIDDEN);\n }\n });\n }\n}\n\nlet lastInnerWidth;\n\nconst resize = debounce(() => {\n if (lastInnerWidth === window.innerWidth) return;\n lastInnerWidth = window.innerWidth;\n const hidden = window.innerWidth < HIDE_MAX_WIDTH;\n select(COLLAPSIBLE).forEach((list) => list.classList.toggle(HIDDEN, hidden));\n}, DEBOUNCE_RATE);\n\nmodule.exports = behavior(\n {\n [CLICK]: {\n [BUTTON]: showPanel,\n },\n },\n {\n // export for use elsewhere\n HIDE_MAX_WIDTH,\n DEBOUNCE_RATE,\n\n init() {\n resize();\n window.addEventListener(\"resize\", resize);\n },\n\n teardown() {\n window.removeEventListener(\"resize\", resize);\n },\n }\n);\n","const accordion = require(\"./accordion\");\nconst banner = require(\"./banner\");\nconst characterCount = require(\"./character-count\");\nconst comboBox = require(\"./combo-box\");\nconst fileInput = require(\"./file-input\");\nconst footer = require(\"./footer\");\nconst navigation = require(\"./navigation\");\nconst password = require(\"./password\");\nconst search = require(\"./search\");\nconst skipnav = require(\"./skipnav\");\nconst tooltip = require(\"./tooltip\");\nconst validator = require(\"./validator\");\nconst datePicker = require(\"./date-picker\");\nconst dateRangePicker = require(\"./date-range-picker\");\nconst timePicker = require(\"./time-picker\");\n\nmodule.exports = {\n accordion,\n banner,\n characterCount,\n comboBox,\n datePicker,\n dateRangePicker,\n fileInput,\n footer,\n navigation,\n password,\n search,\n skipnav,\n timePicker,\n tooltip,\n validator,\n};\n","const behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst toggle = require(\"../utils/toggle\");\nconst FocusTrap = require(\"../utils/focus-trap\");\nconst accordion = require(\"./accordion\");\n\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst BODY = \"body\";\nconst NAV = `.${PREFIX}-nav`;\nconst NAV_LINKS = `${NAV} a`;\nconst NAV_CONTROL = `button.${PREFIX}-nav__link`;\nconst OPENERS = `.${PREFIX}-menu-btn`;\nconst CLOSE_BUTTON = `.${PREFIX}-nav__close`;\nconst OVERLAY = `.${PREFIX}-overlay`;\nconst CLOSERS = `${CLOSE_BUTTON}, .${PREFIX}-overlay`;\nconst TOGGLES = [NAV, OVERLAY].join(\", \");\n\nconst ACTIVE_CLASS = \"usa-js-mobile-nav--active\";\nconst VISIBLE_CLASS = \"is-visible\";\n\nlet navigation;\nlet navActive;\n\nconst isActive = () => document.body.classList.contains(ACTIVE_CLASS);\n\nconst toggleNav = (active) => {\n const { body } = document;\n const safeActive = typeof active === \"boolean\" ? active : !isActive();\n\n body.classList.toggle(ACTIVE_CLASS, safeActive);\n\n select(TOGGLES).forEach((el) =>\n el.classList.toggle(VISIBLE_CLASS, safeActive)\n );\n\n navigation.focusTrap.update(safeActive);\n\n const closeButton = body.querySelector(CLOSE_BUTTON);\n const menuButton = body.querySelector(OPENERS);\n\n if (safeActive && closeButton) {\n // The mobile nav was just activated, so focus on the close button,\n // which is just before all the nav elements in the tab order.\n closeButton.focus();\n } else if (\n !safeActive &&\n document.activeElement === closeButton &&\n menuButton\n ) {\n // The mobile nav was just deactivated, and focus was on the close\n // button, which is no longer visible. We don't want the focus to\n // disappear into the void, so focus on the menu button if it's\n // visible (this may have been what the user was just focused on,\n // if they triggered the mobile nav by mistake).\n menuButton.focus();\n }\n\n return safeActive;\n};\n\nconst resize = () => {\n const closer = document.body.querySelector(CLOSE_BUTTON);\n\n if (isActive() && closer && closer.getBoundingClientRect().width === 0) {\n // When the mobile nav is active, and the close box isn't visible,\n // we know the user's viewport has been resized to be larger.\n // Let's make the page state consistent by deactivating the mobile nav.\n navigation.toggleNav.call(closer, false);\n }\n};\n\nconst onMenuClose = () => navigation.toggleNav.call(navigation, false);\nconst hideActiveNavDropdown = () => {\n toggle(navActive, false);\n navActive = null;\n};\n\nnavigation = behavior(\n {\n [CLICK]: {\n [NAV_CONTROL]() {\n // If another nav is open, close it\n if (navActive && navActive !== this) {\n hideActiveNavDropdown();\n }\n // store a reference to the last clicked nav link element, so we\n // can hide the dropdown if another element on the page is clicked\n if (navActive) {\n hideActiveNavDropdown();\n } else {\n navActive = this;\n toggle(navActive, true);\n }\n\n // Do this so the event handler on the body doesn't fire\n return false;\n },\n [BODY]() {\n if (navActive) {\n hideActiveNavDropdown();\n }\n },\n [OPENERS]: toggleNav,\n [CLOSERS]: toggleNav,\n [NAV_LINKS]() {\n // A navigation link has been clicked! We want to collapse any\n // hierarchical navigation UI it's a part of, so that the user\n // can focus on whatever they've just selected.\n\n // Some navigation links are inside accordions; when they're\n // clicked, we want to collapse those accordions.\n const acc = this.closest(accordion.ACCORDION);\n\n if (acc) {\n accordion.getButtons(acc).forEach((btn) => accordion.hide(btn));\n }\n\n // If the mobile navigation menu is active, we want to hide it.\n if (isActive()) {\n navigation.toggleNav.call(navigation, false);\n }\n },\n },\n },\n {\n init(root) {\n const trapContainer = root.querySelector(NAV);\n\n if (trapContainer) {\n navigation.focusTrap = FocusTrap(trapContainer, {\n Escape: onMenuClose,\n });\n }\n\n resize();\n window.addEventListener(\"resize\", resize, false);\n },\n teardown() {\n window.removeEventListener(\"resize\", resize, false);\n navActive = false;\n },\n focusTrap: null,\n toggleNav,\n }\n);\n\nmodule.exports = navigation;\n","const behavior = require(\"../utils/behavior\");\nconst toggleFormInput = require(\"../utils/toggle-form-input\");\n\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst LINK = `.${PREFIX}-show-password, .${PREFIX}-show-multipassword`;\n\nfunction toggle(event) {\n event.preventDefault();\n toggleFormInput(this);\n}\n\nmodule.exports = behavior({\n [CLICK]: {\n [LINK]: toggle,\n },\n});\n","const ignore = require(\"receptor/ignore\");\nconst behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\n\nconst { CLICK } = require(\"../events\");\n\nconst BUTTON = \".js-search-button\";\nconst FORM = \".js-search-form\";\nconst INPUT = \"[type=search]\";\nconst CONTEXT = \"header\"; // XXX\n\nlet lastButton;\n\nconst getForm = (button) => {\n const context = button.closest(CONTEXT);\n return context ? context.querySelector(FORM) : document.querySelector(FORM);\n};\n\nconst toggleSearch = (button, active) => {\n const form = getForm(button);\n\n if (!form) {\n throw new Error(`No ${FORM} found for search toggle in ${CONTEXT}!`);\n }\n\n /* eslint-disable no-param-reassign */\n button.hidden = active;\n form.hidden = !active;\n /* eslint-enable */\n\n if (!active) {\n return;\n }\n\n const input = form.querySelector(INPUT);\n\n if (input) {\n input.focus();\n }\n // when the user clicks _outside_ of the form w/ignore(): hide the\n // search, then remove the listener\n const listener = ignore(form, () => {\n if (lastButton) {\n hideSearch.call(lastButton); // eslint-disable-line no-use-before-define\n }\n\n document.body.removeEventListener(CLICK, listener);\n });\n\n // Normally we would just run this code without a timeout, but\n // IE11 and Edge will actually call the listener *immediately* because\n // they are currently handling this exact type of event, so we'll\n // make sure the browser is done handling the current click event,\n // if any, before we attach the listener.\n setTimeout(() => {\n document.body.addEventListener(CLICK, listener);\n }, 0);\n};\n\nfunction showSearch() {\n toggleSearch(this, true);\n lastButton = this;\n}\n\nfunction hideSearch() {\n toggleSearch(this, false);\n lastButton = undefined;\n}\n\nconst search = behavior(\n {\n [CLICK]: {\n [BUTTON]: showSearch,\n },\n },\n {\n init(target) {\n select(BUTTON, target).forEach((button) => {\n toggleSearch(button, false);\n });\n },\n teardown() {\n // forget the last button clicked\n lastButton = undefined;\n },\n }\n);\n\nmodule.exports = search;\n","const once = require(\"receptor/once\");\nconst behavior = require(\"../utils/behavior\");\nconst { CLICK } = require(\"../events\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst LINK = `.${PREFIX}-skipnav[href^=\"#\"], .${PREFIX}-footer__return-to-top [href^=\"#\"]`;\nconst MAINCONTENT = \"main-content\";\n\nfunction setTabindex() {\n // NB: we know because of the selector we're delegating to below that the\n // href already begins with '#'\n const id = encodeURI(this.getAttribute(\"href\"));\n const target = document.getElementById(\n id === \"#\" ? MAINCONTENT : id.slice(1)\n );\n\n if (target) {\n target.style.outline = \"0\";\n target.setAttribute(\"tabindex\", 0);\n target.focus();\n target.addEventListener(\n \"blur\",\n once(() => {\n target.setAttribute(\"tabindex\", -1);\n })\n );\n } else {\n // throw an error?\n }\n}\n\nmodule.exports = behavior({\n [CLICK]: {\n [LINK]: setTabindex,\n },\n});\n","const behavior = require(\"../utils/behavior\");\nconst select = require(\"../utils/select\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst { COMBO_BOX_CLASS, enhanceComboBox } = require(\"./combo-box\");\n\nconst TIME_PICKER_CLASS = `${PREFIX}-time-picker`;\nconst TIME_PICKER = `.${TIME_PICKER_CLASS}`;\nconst MAX_TIME = 60 * 24 - 1;\nconst MIN_TIME = 0;\nconst DEFAULT_STEP = 30;\nconst MIN_STEP = 1;\n\nconst FILTER_DATASET = {\n filter:\n \"0?{{ hourQueryFilter }}:{{minuteQueryFilter}}.*{{ apQueryFilter }}m?\",\n apQueryFilter: \"([ap])\",\n hourQueryFilter: \"([1-9][0-2]?)\",\n minuteQueryFilter: \"[\\\\d]+:([0-9]{0,2})\",\n};\n\n/**\n * Parse a string of hh:mm into minutes\n *\n * @param {string} timeStr the time string to parse\n * @returns {number} the number of minutes\n */\nconst parseTimeString = (timeStr) => {\n let minutes;\n\n if (timeStr) {\n const [hours, mins] = timeStr.split(\":\").map((str) => {\n let value;\n const parsed = parseInt(str, 10);\n if (!Number.isNaN(parsed)) value = parsed;\n return value;\n });\n\n if (hours != null && mins != null) {\n minutes = hours * 60 + mins;\n }\n }\n\n return minutes;\n};\n\n/**\n * Enhance an input with the date picker elements\n *\n * @param {HTMLElement} el The initial wrapping element of the date picker component\n */\nconst transformTimePicker = (el) => {\n const timePickerEl = el.closest(TIME_PICKER);\n\n const initialInputEl = timePickerEl.querySelector(`input`);\n\n if (!initialInputEl) {\n throw new Error(`${TIME_PICKER} is missing inner input`);\n }\n\n const selectEl = document.createElement(\"select\");\n\n [\"id\", \"name\", \"required\", \"aria-label\", \"aria-labelledby\"].forEach(\n (name) => {\n if (initialInputEl.hasAttribute(name)) {\n const value = initialInputEl.getAttribute(name);\n selectEl.setAttribute(name, value);\n initialInputEl.removeAttribute(name);\n }\n }\n );\n\n const padZeros = (value, length) => {\n return `0000${value}`.slice(-length);\n };\n\n const getTimeContext = (minutes) => {\n const minute = minutes % 60;\n const hour24 = Math.floor(minutes / 60);\n const hour12 = hour24 % 12 || 12;\n const ampm = hour24 < 12 ? \"am\" : \"pm\";\n\n return {\n minute,\n hour24,\n hour12,\n ampm,\n };\n };\n\n const minTime = Math.max(\n MIN_TIME,\n parseTimeString(timePickerEl.dataset.minTime) || MIN_TIME\n );\n const maxTime = Math.min(\n MAX_TIME,\n parseTimeString(timePickerEl.dataset.maxTime) || MAX_TIME\n );\n const step = Math.floor(\n Math.max(MIN_STEP, timePickerEl.dataset.step || DEFAULT_STEP)\n );\n\n for (let time = minTime; time <= maxTime; time += step) {\n const { minute, hour24, hour12, ampm } = getTimeContext(time);\n\n const option = document.createElement(\"option\");\n option.value = `${padZeros(hour24, 2)}:${padZeros(minute, 2)}`;\n option.text = `${hour12}:${padZeros(minute, 2)}${ampm}`;\n selectEl.appendChild(option);\n }\n\n timePickerEl.classList.add(COMBO_BOX_CLASS);\n\n // combo box properties\n Object.keys(FILTER_DATASET).forEach((key) => {\n timePickerEl.dataset[key] = FILTER_DATASET[key];\n });\n timePickerEl.dataset.disableFiltering = \"true\";\n\n timePickerEl.appendChild(selectEl);\n initialInputEl.style.display = \"none\";\n};\n\nconst timePicker = behavior(\n {},\n {\n init(root) {\n select(TIME_PICKER, root).forEach((timePickerEl) => {\n transformTimePicker(timePickerEl);\n enhanceComboBox(timePickerEl);\n });\n },\n FILTER_DATASET,\n }\n);\n\nmodule.exports = timePicker;\n","// Tooltips\nconst select = require(\"../utils/select\");\nconst behavior = require(\"../utils/behavior\");\nconst { prefix: PREFIX } = require(\"../config\");\nconst isElementInViewport = require(\"../utils/is-in-viewport\");\n\nconst TOOLTIP = `.${PREFIX}-tooltip`;\nconst TOOLTIP_TRIGGER_CLASS = `${PREFIX}-tooltip__trigger`;\nconst TOOLTIP_CLASS = `${PREFIX}-tooltip`;\nconst TOOLTIP_BODY_CLASS = `${PREFIX}-tooltip__body`;\nconst SET_CLASS = \"is-set\";\nconst VISIBLE_CLASS = \"is-visible\";\nconst TRIANGLE_SIZE = 5;\nconst SPACER = 2;\nconst ADJUST_WIDTH_CLASS = `${PREFIX}-tooltip__body--wrap`;\n\n/**\n * Add one or more listeners to an element\n * @param {DOMElement} element - DOM element to add listeners to\n * @param {events} eventNames - space separated list of event names, e.g. 'click change'\n * @param {Function} listener - function to attach for each event as a listener\n */\nconst addListenerMulti = (element, eventNames, listener) => {\n const events = eventNames.split(\" \");\n for (let i = 0, iLen = events.length; i < iLen; i += 1) {\n element.addEventListener(events[i], listener, false);\n }\n};\n\n/**\n * Shows the tooltip\n * @param {HTMLElement} tooltipTrigger - the element that initializes the tooltip\n */\nconst showToolTip = (tooltipBody, tooltipTrigger, position, wrapper) => {\n tooltipBody.setAttribute(\"aria-hidden\", \"false\");\n\n // This sets up the tooltip body. The opacity is 0, but\n // we can begin running the calculations below.\n tooltipBody.classList.add(SET_CLASS);\n\n // Calculate sizing and adjustments for positioning\n const tooltipWidth = tooltipTrigger.offsetWidth;\n const tooltipHeight = tooltipTrigger.offsetHeight;\n const offsetForTopMargin = parseInt(\n window.getComputedStyle(tooltipTrigger).getPropertyValue(\"margin-top\"),\n 10\n );\n const offsetForBottomMargin = parseInt(\n window.getComputedStyle(tooltipTrigger).getPropertyValue(\"margin-bottom\"),\n 10\n );\n const offsetForTopPadding = parseInt(\n window.getComputedStyle(wrapper).getPropertyValue(\"padding-top\"),\n 10\n );\n const offsetForBottomPadding = parseInt(\n window.getComputedStyle(wrapper).getPropertyValue(\"padding-bottom\"),\n 10\n );\n const offsetForTooltipBodyHeight = parseInt(\n window.getComputedStyle(tooltipBody).getPropertyValue(\"height\"),\n 10\n );\n const leftOffset = tooltipTrigger.offsetLeft;\n const toolTipBodyWidth = tooltipBody.offsetWidth;\n const adjustHorizontalCenter = tooltipWidth / 2 + leftOffset;\n const adjustToEdgeX = tooltipWidth + TRIANGLE_SIZE + SPACER;\n const adjustToEdgeY = tooltipHeight + TRIANGLE_SIZE + SPACER;\n\n /**\n * Position the tooltip body when the trigger is hovered\n * Removes old positioning classnames and reapplies. This allows\n * positioning to change in case the user resizes browser or DOM manipulation\n * causes tooltip to get clipped from viewport\n *\n * @param {string} setPos - can be \"top\", \"bottom\", \"right\", \"left\"\n */\n const setPositionClass = (setPos) => {\n tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--top`);\n tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--bottom`);\n tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--right`);\n tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--left`);\n tooltipBody.classList.add(`${TOOLTIP_BODY_CLASS}--${setPos}`);\n };\n\n /**\n * Positions tooltip at the top\n * We check if the element is in the viewport so we know whether or not we\n * need to constrain the width\n * @param {HTMLElement} e - this is the tooltip body\n */\n const positionTop = (e) => {\n setPositionClass(\"top\");\n e.style.marginLeft = `${adjustHorizontalCenter}px`;\n if (!isElementInViewport(e)) {\n e.classList.add(ADJUST_WIDTH_CLASS);\n }\n e.style.marginBottom = `${\n adjustToEdgeY + offsetForBottomMargin + offsetForBottomPadding\n }px`;\n };\n\n /**\n * Positions tooltip at the bottom\n * We check if the element is in theviewport so we know whether or not we\n * need to constrain the width\n * @param {HTMLElement} e - this is the tooltip body\n */\n const positionBottom = (e) => {\n setPositionClass(\"bottom\");\n e.style.marginLeft = `${adjustHorizontalCenter}px`;\n if (!isElementInViewport(e)) {\n e.classList.add(ADJUST_WIDTH_CLASS);\n }\n e.style.marginTop = `${\n adjustToEdgeY + offsetForTopMargin + offsetForTopPadding\n }px`;\n };\n\n /**\n * Positions tooltip at the right\n * @param {HTMLElement} e - this is the tooltip body\n */\n const positionRight = (e) => {\n setPositionClass(\"right\");\n e.style.marginBottom = \"0\";\n e.style.marginLeft = `${adjustToEdgeX + leftOffset}px`;\n e.style.bottom = `${\n (tooltipHeight - offsetForTooltipBodyHeight) / 2 +\n offsetForBottomMargin +\n offsetForBottomPadding\n }px`;\n return false;\n };\n\n /**\n * Positions tooltip at the right\n * @param {HTMLElement} e - this is the tooltip body\n */\n const positionLeft = (e) => {\n setPositionClass(\"left\");\n e.style.marginBottom = \"0\";\n if (leftOffset > toolTipBodyWidth) {\n e.style.marginLeft = `${\n leftOffset - toolTipBodyWidth - (TRIANGLE_SIZE + SPACER)\n }px`;\n } else {\n e.style.marginLeft = `-${\n toolTipBodyWidth - leftOffset + (TRIANGLE_SIZE + SPACER)\n }px`;\n }\n e.style.bottom = `${\n (tooltipHeight - offsetForTooltipBodyHeight) / 2 +\n offsetForBottomMargin +\n offsetForBottomPadding\n }px`;\n };\n\n /**\n * We try to set the position based on the\n * original intention, but make adjustments\n * if the element is clipped out of the viewport\n */\n switch (position) {\n case \"top\":\n positionTop(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionBottom(tooltipBody);\n }\n break;\n case \"bottom\":\n positionBottom(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionTop(tooltipBody);\n }\n break;\n case \"right\":\n positionRight(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionLeft(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionTop(tooltipBody);\n }\n }\n break;\n case \"left\":\n positionLeft(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionRight(tooltipBody);\n if (!isElementInViewport(tooltipBody)) {\n positionTop(tooltipBody);\n }\n }\n break;\n\n default:\n // skip default case\n break;\n }\n\n /**\n * Actually show the tooltip. The VISIBLE_CLASS\n * will change the opacity to 1\n */\n setTimeout(function makeVisible() {\n tooltipBody.classList.add(VISIBLE_CLASS);\n }, 20);\n};\n\n/**\n * Removes all the properties to show and position the tooltip,\n * and resets the tooltip position to the original intention\n * in case the window is resized or the element is moved through\n * DOM maniulation.\n * @param {HTMLElement} tooltipBody - The body of the tooltip\n */\nconst hideToolTip = (tooltipBody) => {\n tooltipBody.classList.remove(VISIBLE_CLASS);\n tooltipBody.classList.remove(SET_CLASS);\n tooltipBody.classList.remove(ADJUST_WIDTH_CLASS);\n tooltipBody.setAttribute(\"aria-hidden\", \"true\");\n};\n\n/**\n * Setup the tooltip component\n * @param {HTMLElement} tooltipTrigger The element that creates the tooltip\n */\nconst setUpAttributes = (tooltipTrigger) => {\n const tooltipID = `tooltip-${Math.floor(Math.random() * 900000) + 100000}`;\n const tooltipContent = tooltipTrigger.getAttribute(\"title\");\n const wrapper = document.createElement(\"span\");\n const tooltipBody = document.createElement(\"span\");\n const position = tooltipTrigger.getAttribute(\"data-position\")\n ? tooltipTrigger.getAttribute(\"data-position\")\n : \"top\";\n const additionalClasses = tooltipTrigger.getAttribute(\"data-classes\");\n\n // Set up tooltip attributes\n tooltipTrigger.setAttribute(\"aria-describedby\", tooltipID);\n tooltipTrigger.setAttribute(\"tabindex\", \"0\");\n tooltipTrigger.setAttribute(\"title\", \"\");\n tooltipTrigger.classList.remove(TOOLTIP_CLASS);\n tooltipTrigger.classList.add(TOOLTIP_TRIGGER_CLASS);\n\n // insert wrapper before el in the DOM tree\n tooltipTrigger.parentNode.insertBefore(wrapper, tooltipTrigger);\n\n // set up the wrapper\n wrapper.appendChild(tooltipTrigger);\n wrapper.classList.add(TOOLTIP_CLASS);\n wrapper.appendChild(tooltipBody);\n\n // Apply additional class names to wrapper element\n if (additionalClasses) {\n const classesArray = additionalClasses.split(\" \");\n classesArray.forEach((classname) => wrapper.classList.add(classname));\n }\n\n // set up the tooltip body\n tooltipBody.classList.add(TOOLTIP_BODY_CLASS);\n tooltipBody.setAttribute(\"id\", tooltipID);\n tooltipBody.setAttribute(\"role\", \"tooltip\");\n tooltipBody.setAttribute(\"aria-hidden\", \"true\");\n\n // place the text in the tooltip\n tooltipBody.innerHTML = tooltipContent;\n\n return { tooltipBody, position, tooltipContent, wrapper };\n};\n\n// Setup our function to run on various events\nconst tooltip = behavior(\n {},\n {\n init(root) {\n select(TOOLTIP, root).forEach((tooltipTrigger) => {\n const {\n tooltipBody,\n position,\n tooltipContent,\n wrapper,\n } = setUpAttributes(tooltipTrigger);\n\n if (tooltipContent) {\n // Listeners for showing and hiding the tooltip\n addListenerMulti(\n tooltipTrigger,\n \"mouseenter focus\",\n function handleShow() {\n showToolTip(tooltipBody, tooltipTrigger, position, wrapper);\n return false;\n }\n );\n\n // Keydown here prevents tooltips from being read twice by screen reader. also allows excape key to close it (along with any other.)\n addListenerMulti(\n tooltipTrigger,\n \"mouseleave blur keydown\",\n function handleHide() {\n hideToolTip(tooltipBody);\n return false;\n }\n );\n } else {\n // throw error or let other tooltips on page function?\n }\n });\n },\n }\n);\n\nmodule.exports = tooltip;\n","const behavior = require(\"../utils/behavior\");\nconst validate = require(\"../utils/validate-input\");\n\nfunction change() {\n validate(this);\n}\n\nconst validator = behavior({\n \"keyup change\": {\n \"input[data-validation-element]\": change,\n },\n});\n\nmodule.exports = validator;\n","module.exports = {\n prefix: \"usa\",\n};\n","module.exports = {\n // This used to be conditionally dependent on whether the\n // browser supported touch events; if it did, `CLICK` was set to\n // `touchstart`. However, this had downsides:\n //\n // * It pre-empted mobile browsers' default behavior of detecting\n // whether a touch turned into a scroll, thereby preventing\n // users from using some of our components as scroll surfaces.\n //\n // * Some devices, such as the Microsoft Surface Pro, support *both*\n // touch and clicks. This meant the conditional effectively dropped\n // support for the user's mouse, frustrating users who preferred\n // it on those systems.\n CLICK: \"click\",\n};\n","/* eslint-disable consistent-return */\n/* eslint-disable func-names */\n(function () {\n if (typeof window.CustomEvent === \"function\") return false;\n\n function CustomEvent(event, _params) {\n const params = _params || {\n bubbles: false,\n cancelable: false,\n detail: null,\n };\n const evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n return evt;\n }\n\n window.CustomEvent = CustomEvent;\n})();\n","const elproto = window.HTMLElement.prototype;\nconst HIDDEN = \"hidden\";\n\nif (!(HIDDEN in elproto)) {\n Object.defineProperty(elproto, HIDDEN, {\n get() {\n return this.hasAttribute(HIDDEN);\n },\n set(value) {\n if (value) {\n this.setAttribute(HIDDEN, \"\");\n } else {\n this.removeAttribute(HIDDEN);\n }\n },\n });\n}\n","// polyfills HTMLElement.prototype.classList and DOMTokenList\nrequire(\"classlist-polyfill\");\n// polyfills HTMLElement.prototype.hidden\nrequire(\"./element-hidden\");\n// polyfills Number.isNaN()\nrequire(\"./number-is-nan\");\n// polyfills CustomEvent\nrequire(\"./custom-event\");\n// polyfills svg4everybody\nrequire(\"./svg4everybody\");\n\n","Number.isNaN =\n Number.isNaN ||\n function isNaN(input) {\n // eslint-disable-next-line no-self-compare\n return typeof input === \"number\" && input !== input;\n };\n","/* eslint-disable */\n!function(root, factory) {\n if(root === undefined) root = window; //* THIS IS A HOTFIX FOR BABEL TRANSPILERS ADDING USING STRICT MODE CAUSING ROOT TO BE UNDEFINED. \n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target, use) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = document.importNode ? document.importNode(target, !0) : target.cloneNode(!0), g = document.createElementNS(svg.namespaceURI || \"http://www.w3.org/2000/svg\", \"g\"); clone.childNodes.length; ) {\n g.appendChild(clone.firstChild);\n }\n if (use) {\n for (var i = 0; use.attributes.length > i; i++) {\n var attr = use.attributes[i];\n \"xlink:href\" !== attr.name && \"href\" !== attr.name && g.setAttribute(attr.name, attr.value);\n }\n }\n fragment.appendChild(g), // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr, use) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, // ensure domains are the same, otherwise we'll have issues appending the\n // element in IE 11\n cachedDocument.domain !== document.domain && (cachedDocument.domain = document.domain), \n xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target, use);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // if all <use>s in the array are being bypassed, don't proceed.\n if (numberOfSvgUseElementsToBypass && uses.length - numberOfSvgUseElementsToBypass <= 0) {\n return void requestAnimationFrame(oninterval, 67);\n }\n // if there are <use>s to process, proceed.\n // reset the bypass counter, since the counter will be incremented for every bypassed element,\n // even ones that were counted before.\n numberOfSvgUseElementsToBypass = 0;\n // while the index exists in the live <use> collection\n for (// get the cached <use> index\n var index = 0; index < uses.length; ) {\n // get the current <use>\n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the <use> element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr, use);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id), use);\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});","const domready = require(\"domready\");\n\nwindow.uswdsPresent = true; // GLOBAL variable to indicate that the uswds.js has loaded in the DOM.\n\n/**\n * The 'polyfills' define key ECMAScript 5 methods that may be missing from\n * older browsers, so must be loaded first.\n */\nrequire(\"./polyfills\");\n\nconst uswds = require(\"./config\");\n\nconst components = require(\"./components\");\nconst svg4everybody = require(\"./polyfills/svg4everybody\");\n\nuswds.components = components;\n\ndomready(() => {\n const target = document.body;\n Object.keys(components).forEach((key) => {\n const behavior = components[key];\n behavior.on(target);\n });\n svg4everybody();\n});\n\nmodule.exports = uswds;","module.exports = (htmlDocument = document) => htmlDocument.activeElement;\n","const assign = require(\"object-assign\");\nconst Behavior = require(\"receptor/behavior\");\n\n/**\n * @name sequence\n * @param {...Function} seq an array of functions\n * @return { closure } callHooks\n */\n// We use a named function here because we want it to inherit its lexical scope\n// from the behavior props object, not from the module\nconst sequence = (...seq) =>\n function callHooks(target = document.body) {\n seq.forEach((method) => {\n if (typeof this[method] === \"function\") {\n this[method].call(this, target);\n }\n });\n };\n\n/**\n * @name behavior\n * @param {object} events\n * @param {object?} props\n * @return {receptor.behavior}\n */\nmodule.exports = (events, props) =>\n Behavior(\n events,\n assign(\n {\n on: sequence(\"init\", \"add\"),\n off: sequence(\"teardown\", \"remove\"),\n },\n props\n )\n );\n","const assign = require(\"object-assign\");\nconst { keymap } = require(\"receptor\");\nconst behavior = require(\"./behavior\");\nconst select = require(\"./select\");\nconst activeElement = require(\"./active-element\");\n\nconst FOCUSABLE =\n 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex=\"0\"], [contenteditable]';\n\nconst tabHandler = (context) => {\n const focusableElements = select(FOCUSABLE, context);\n const firstTabStop = focusableElements[0];\n const lastTabStop = focusableElements[focusableElements.length - 1];\n\n // Special rules for when the user is tabbing forward from the last focusable element,\n // or when tabbing backwards from the first focusable element\n function tabAhead(event) {\n if (activeElement() === lastTabStop) {\n event.preventDefault();\n firstTabStop.focus();\n }\n }\n\n function tabBack(event) {\n if (activeElement() === firstTabStop) {\n event.preventDefault();\n lastTabStop.focus();\n }\n }\n\n return {\n firstTabStop,\n lastTabStop,\n tabAhead,\n tabBack,\n };\n};\n\nmodule.exports = (context, additionalKeyBindings = {}) => {\n const tabEventHandler = tabHandler(context);\n const bindings = additionalKeyBindings;\n const { Esc, Escape } = bindings;\n\n if (Escape && !Esc) bindings.Esc = Escape;\n\n // TODO: In the future, loop over additional keybindings and pass an array\n // of functions, if necessary, to the map keys. Then people implementing\n // the focus trap could pass callbacks to fire when tabbing\n const keyMappings = keymap(\n assign(\n {\n Tab: tabEventHandler.tabAhead,\n \"Shift+Tab\": tabEventHandler.tabBack,\n },\n additionalKeyBindings\n )\n );\n\n const focusTrap = behavior(\n {\n keydown: keyMappings,\n },\n {\n init() {\n // TODO: is this desireable behavior? Should the trap always do this by default or should\n // the component getting decorated handle this?\n tabEventHandler.firstTabStop.focus();\n },\n update(isActive) {\n if (isActive) {\n this.on();\n } else {\n this.off();\n }\n },\n }\n );\n\n return focusTrap;\n};\n","// https://stackoverflow.com/a/7557433\nfunction isElementInViewport(\n el,\n win = window,\n docEl = document.documentElement\n) {\n const rect = el.getBoundingClientRect();\n\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (win.innerHeight || docEl.clientHeight) &&\n rect.right <= (win.innerWidth || docEl.clientWidth)\n );\n}\n\nmodule.exports = isElementInViewport;\n","// iOS detection from: http://stackoverflow.com/a/9039885/177710\nfunction isIosDevice() {\n return (\n typeof navigator !== \"undefined\" &&\n (navigator.userAgent.match(/(iPod|iPhone|iPad)/g) ||\n (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1)) &&\n !window.MSStream\n );\n}\n\nmodule.exports = isIosDevice;\n","/**\n * @name isElement\n * @desc returns whether or not the given argument is a DOM element.\n * @param {any} value\n * @return {boolean}\n */\nconst isElement = (value) =>\n value && typeof value === \"object\" && value.nodeType === 1;\n\n/**\n * @name select\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {Document|HTMLElement?} context - The context to traverse the DOM\n * in. If not provided, it defaults to the document.\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\n */\nmodule.exports = (selector, context) => {\n if (typeof selector !== \"string\") {\n return [];\n }\n\n if (!context || !isElement(context)) {\n context = window.document; // eslint-disable-line no-param-reassign\n }\n\n const selection = context.querySelectorAll(selector);\n return Array.prototype.slice.call(selection);\n};\n","/**\n * Flips given INPUT elements between masked (hiding the field value) and unmasked\n * @param {Array.HTMLElement} fields - An array of INPUT elements\n * @param {Boolean} mask - Whether the mask should be applied, hiding the field value\n */\nmodule.exports = (field, mask) => {\n field.setAttribute(\"autocapitalize\", \"off\");\n field.setAttribute(\"autocorrect\", \"off\");\n field.setAttribute(\"type\", mask ? \"password\" : \"text\");\n};\n","const resolveIdRefs = require(\"resolve-id-refs\");\nconst toggleFieldMask = require(\"./toggle-field-mask\");\n\nconst CONTROLS = \"aria-controls\";\nconst PRESSED = \"aria-pressed\";\nconst SHOW_ATTR = \"data-show-text\";\nconst HIDE_ATTR = \"data-hide-text\";\n\n/**\n * Replace the word \"Show\" (or \"show\") with \"Hide\" (or \"hide\") in a string.\n * @param {string} showText\n * @return {strong} hideText\n */\nconst getHideText = (showText) =>\n showText.replace(/\\bShow\\b/i, (show) => `${show[0] === \"S\" ? \"H\" : \"h\"}ide`);\n\n/**\n * Component that decorates an HTML element with the ability to toggle the\n * masked state of an input field (like a password) when clicked.\n * The ids of the fields to be masked will be pulled directly from the button's\n * `aria-controls` attribute.\n *\n * @param {HTMLElement} el Parent element containing the fields to be masked\n * @return {boolean}\n */\nmodule.exports = (el) => {\n // this is the *target* state:\n // * if the element has the attr and it's !== \"true\", pressed is true\n // * otherwise, pressed is false\n const pressed =\n el.hasAttribute(PRESSED) && el.getAttribute(PRESSED) !== \"true\";\n\n const fields = resolveIdRefs(el.getAttribute(CONTROLS));\n fields.forEach((field) => toggleFieldMask(field, pressed));\n\n if (!el.hasAttribute(SHOW_ATTR)) {\n el.setAttribute(SHOW_ATTR, el.textContent);\n }\n\n const showText = el.getAttribute(SHOW_ATTR);\n const hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);\n\n el.textContent = pressed ? showText : hideText; // eslint-disable-line no-param-reassign\n el.setAttribute(PRESSED, pressed);\n return pressed;\n};\n","const EXPANDED = \"aria-expanded\";\nconst CONTROLS = \"aria-controls\";\nconst HIDDEN = \"hidden\";\n\nmodule.exports = (button, expanded) => {\n let safeExpanded = expanded;\n\n if (typeof safeExpanded !== \"boolean\") {\n safeExpanded = button.getAttribute(EXPANDED) === \"false\";\n }\n\n button.setAttribute(EXPANDED, safeExpanded);\n\n const id = button.getAttribute(CONTROLS);\n const controls = document.getElementById(id);\n if (!controls) {\n throw new Error(`No toggle target found with id: \"${id}\"`);\n }\n\n if (safeExpanded) {\n controls.removeAttribute(HIDDEN);\n } else {\n controls.setAttribute(HIDDEN, \"\");\n }\n\n return safeExpanded;\n};\n","const dataset = require(\"elem-dataset\");\n\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst CHECKED = \"aria-checked\";\nconst CHECKED_CLASS = `${PREFIX}-checklist__item--checked`;\n\nmodule.exports = function validate(el) {\n const data = dataset(el);\n const id = data.validationElement;\n const checkList =\n id.charAt(0) === \"#\"\n ? document.querySelector(id)\n : document.getElementById(id);\n\n if (!checkList) {\n throw new Error(`No validation element found with id: \"${id}\"`);\n }\n\n Object.entries(data).forEach(([key, value]) => {\n if (key.startsWith(\"validate\")) {\n const validatorName = key.substr(\"validate\".length).toLowerCase();\n const validatorPattern = new RegExp(value);\n const validatorSelector = `[data-validator=\"${validatorName}\"]`;\n const validatorCheckbox = checkList.querySelector(validatorSelector);\n\n if (!validatorCheckbox) {\n throw new Error(`No validator checkbox found for: \"${validatorName}\"`);\n }\n\n const checked = validatorPattern.test(el.value);\n validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);\n validatorCheckbox.setAttribute(CHECKED, checked);\n }\n });\n};\n"]}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uswds-jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.0
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shawn Allen
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2021-01-29 00:00:00.000000000 Z
15
+ date: 2021-04-15 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: jekyll
@@ -154,11 +154,13 @@ files:
154
154
  - _sass/uswds/src/components/_button-groups.scss
155
155
  - _sass/uswds/src/components/_card.scss
156
156
  - _sass/uswds/src/components/_checklist.scss
157
+ - _sass/uswds/src/components/_collection.scss
157
158
  - _sass/uswds/src/components/_footer.scss
158
159
  - _sass/uswds/src/components/_forms.scss
159
160
  - _sass/uswds/src/components/_graphic-list.scss
160
161
  - _sass/uswds/src/components/_header.scss
161
162
  - _sass/uswds/src/components/_hero.scss
163
+ - _sass/uswds/src/components/_icon.scss
162
164
  - _sass/uswds/src/components/_identifier.scss
163
165
  - _sass/uswds/src/components/_layout.scss
164
166
  - _sass/uswds/src/components/_media-block.scss
@@ -166,11 +168,14 @@ files:
166
168
  - _sass/uswds/src/components/_nav-container.scss
167
169
  - _sass/uswds/src/components/_navbar.scss
168
170
  - _sass/uswds/src/components/_navigation.scss
171
+ - _sass/uswds/src/components/_process-list.scss
169
172
  - _sass/uswds/src/components/_search.scss
170
173
  - _sass/uswds/src/components/_section.scss
171
174
  - _sass/uswds/src/components/_sidenav.scss
175
+ - _sass/uswds/src/components/_site-alert.scss
172
176
  - _sass/uswds/src/components/_skipnav.scss
173
177
  - _sass/uswds/src/components/_step-indicator.scss
178
+ - _sass/uswds/src/components/_summary-box.scss
174
179
  - _sass/uswds/src/components/_tooltip.scss
175
180
  - _sass/uswds/src/core/_defaults.scss
176
181
  - _sass/uswds/src/core/_deprecated.scss
@@ -189,6 +194,8 @@ files:
189
194
  - _sass/uswds/src/core/mixins/_add-list-reset.scss
190
195
  - _sass/uswds/src/core/mixins/_add-responsive-site-margins.scss
191
196
  - _sass/uswds/src/core/mixins/_add-success-mark.scss
197
+ - _sass/uswds/src/core/mixins/_alert-slim-styles.scss
198
+ - _sass/uswds/src/core/mixins/_alert-status-styles.scss
192
199
  - _sass/uswds/src/core/mixins/_all.scss
193
200
  - _sass/uswds/src/core/mixins/_at-media.scss
194
201
  - _sass/uswds/src/core/mixins/_border-box-sizing.scss
@@ -332,9 +339,11 @@ files:
332
339
  - _sass/uswds/src/packages/_usa-button.scss
333
340
  - _sass/uswds/src/packages/_usa-card.scss
334
341
  - _sass/uswds/src/packages/_usa-checklist.scss
342
+ - _sass/uswds/src/packages/_usa-collection.scss
335
343
  - _sass/uswds/src/packages/_usa-footer.scss
336
344
  - _sass/uswds/src/packages/_usa-header.scss
337
345
  - _sass/uswds/src/packages/_usa-hero.scss
346
+ - _sass/uswds/src/packages/_usa-icon.scss
338
347
  - _sass/uswds/src/packages/_usa-identifier.scss
339
348
  - _sass/uswds/src/packages/_usa-media-block.scss
340
349
  - _sass/uswds/src/packages/_usa-megamenu.scss
@@ -343,6 +352,7 @@ files:
343
352
  - _sass/uswds/src/packages/_usa-navbar.scss
344
353
  - _sass/uswds/src/packages/_usa-search.scss
345
354
  - _sass/uswds/src/packages/_usa-sidenav.scss
355
+ - _sass/uswds/src/packages/_usa-site-alert.scss
346
356
  - _sass/uswds/src/packages/_usa-skipnav.scss
347
357
  - _sass/uswds/src/packages/_usa-step-indicator.scss
348
358
  - _sass/uswds/src/packages/_usa-table.scss
@@ -613,6 +623,8 @@ files:
613
623
  - assets/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.ttf
614
624
  - assets/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woff
615
625
  - assets/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woff2
626
+ - assets/uswds/img/alerts/emergency.svg
627
+ - assets/uswds/img/alerts/error-white.svg
616
628
  - assets/uswds/img/alerts/error.svg
617
629
  - assets/uswds/img/alerts/info.svg
618
630
  - assets/uswds/img/alerts/success.svg
@@ -699,13 +711,1562 @@ files:
699
711
  - assets/uswds/img/search.svg
700
712
  - assets/uswds/img/social-icons/facebook25.png
701
713
  - assets/uswds/img/social-icons/facebook25.svg
714
+ - assets/uswds/img/social-icons/instagram25.png
715
+ - assets/uswds/img/social-icons/instagram25.svg
702
716
  - assets/uswds/img/social-icons/rss25.png
703
717
  - assets/uswds/img/social-icons/rss25.svg
704
718
  - assets/uswds/img/social-icons/twitter16.png
705
719
  - assets/uswds/img/social-icons/twitter16.svg
706
720
  - assets/uswds/img/social-icons/youtube15.png
707
721
  - assets/uswds/img/social-icons/youtube15.svg
722
+ - assets/uswds/img/sprite.svg
708
723
  - assets/uswds/img/us_flag_small.png
724
+ - assets/uswds/img/usa-icons-bg/check--blue-60v.svg
725
+ - assets/uswds/img/usa-icons-bg/expand_less--white.svg
726
+ - assets/uswds/img/usa-icons-bg/expand_more--blue-warm-70v.svg
727
+ - assets/uswds/img/usa-icons-bg/launch--blue-60v.svg
728
+ - assets/uswds/img/usa-icons-bg/launch--blue-70v.svg
729
+ - assets/uswds/img/usa-icons-bg/launch--gray-5.svg
730
+ - assets/uswds/img/usa-icons-bg/launch--white.svg
731
+ - assets/uswds/img/usa-icons-bg/search--white.svg
732
+ - assets/uswds/img/usa-icons-unused/10k.svg
733
+ - assets/uswds/img/usa-icons-unused/10mp.svg
734
+ - assets/uswds/img/usa-icons-unused/11mp.svg
735
+ - assets/uswds/img/usa-icons-unused/12mp.svg
736
+ - assets/uswds/img/usa-icons-unused/13mp.svg
737
+ - assets/uswds/img/usa-icons-unused/14mp.svg
738
+ - assets/uswds/img/usa-icons-unused/15mp.svg
739
+ - assets/uswds/img/usa-icons-unused/16mp.svg
740
+ - assets/uswds/img/usa-icons-unused/17mp.svg
741
+ - assets/uswds/img/usa-icons-unused/18mp.svg
742
+ - assets/uswds/img/usa-icons-unused/19mp.svg
743
+ - assets/uswds/img/usa-icons-unused/1k.svg
744
+ - assets/uswds/img/usa-icons-unused/1k_plus.svg
745
+ - assets/uswds/img/usa-icons-unused/20mp.svg
746
+ - assets/uswds/img/usa-icons-unused/21mp.svg
747
+ - assets/uswds/img/usa-icons-unused/22mp.svg
748
+ - assets/uswds/img/usa-icons-unused/23mp.svg
749
+ - assets/uswds/img/usa-icons-unused/24mp.svg
750
+ - assets/uswds/img/usa-icons-unused/2k.svg
751
+ - assets/uswds/img/usa-icons-unused/2k_plus.svg
752
+ - assets/uswds/img/usa-icons-unused/2mp.svg
753
+ - assets/uswds/img/usa-icons-unused/360.svg
754
+ - assets/uswds/img/usa-icons-unused/3d_rotation.svg
755
+ - assets/uswds/img/usa-icons-unused/3k.svg
756
+ - assets/uswds/img/usa-icons-unused/3k_plus.svg
757
+ - assets/uswds/img/usa-icons-unused/3mp.svg
758
+ - assets/uswds/img/usa-icons-unused/4k.svg
759
+ - assets/uswds/img/usa-icons-unused/4k_plus.svg
760
+ - assets/uswds/img/usa-icons-unused/4mp.svg
761
+ - assets/uswds/img/usa-icons-unused/5g.svg
762
+ - assets/uswds/img/usa-icons-unused/5k.svg
763
+ - assets/uswds/img/usa-icons-unused/5k_plus.svg
764
+ - assets/uswds/img/usa-icons-unused/5mp.svg
765
+ - assets/uswds/img/usa-icons-unused/6_ft_apart.svg
766
+ - assets/uswds/img/usa-icons-unused/6k.svg
767
+ - assets/uswds/img/usa-icons-unused/6k_plus.svg
768
+ - assets/uswds/img/usa-icons-unused/6mp.svg
769
+ - assets/uswds/img/usa-icons-unused/7k.svg
770
+ - assets/uswds/img/usa-icons-unused/7k_plus.svg
771
+ - assets/uswds/img/usa-icons-unused/7mp.svg
772
+ - assets/uswds/img/usa-icons-unused/8k.svg
773
+ - assets/uswds/img/usa-icons-unused/8k_plus.svg
774
+ - assets/uswds/img/usa-icons-unused/8mp.svg
775
+ - assets/uswds/img/usa-icons-unused/9k.svg
776
+ - assets/uswds/img/usa-icons-unused/9k_plus.svg
777
+ - assets/uswds/img/usa-icons-unused/9mp.svg
778
+ - assets/uswds/img/usa-icons-unused/ac_unit.svg
779
+ - assets/uswds/img/usa-icons-unused/access_alarm.svg
780
+ - assets/uswds/img/usa-icons-unused/access_alarms.svg
781
+ - assets/uswds/img/usa-icons-unused/access_time.svg
782
+ - assets/uswds/img/usa-icons-unused/accessibility.svg
783
+ - assets/uswds/img/usa-icons-unused/accessible.svg
784
+ - assets/uswds/img/usa-icons-unused/account_balance_wallet.svg
785
+ - assets/uswds/img/usa-icons-unused/account_tree.svg
786
+ - assets/uswds/img/usa-icons-unused/ad_units.svg
787
+ - assets/uswds/img/usa-icons-unused/adb.svg
788
+ - assets/uswds/img/usa-icons-unused/add_a_photo.svg
789
+ - assets/uswds/img/usa-icons-unused/add_alarm.svg
790
+ - assets/uswds/img/usa-icons-unused/add_alert.svg
791
+ - assets/uswds/img/usa-icons-unused/add_box.svg
792
+ - assets/uswds/img/usa-icons-unused/add_business.svg
793
+ - assets/uswds/img/usa-icons-unused/add_call.svg
794
+ - assets/uswds/img/usa-icons-unused/add_chart.svg
795
+ - assets/uswds/img/usa-icons-unused/add_comment.svg
796
+ - assets/uswds/img/usa-icons-unused/add_ic_call.svg
797
+ - assets/uswds/img/usa-icons-unused/add_link.svg
798
+ - assets/uswds/img/usa-icons-unused/add_location.svg
799
+ - assets/uswds/img/usa-icons-unused/add_location_alt.svg
800
+ - assets/uswds/img/usa-icons-unused/add_moderator.svg
801
+ - assets/uswds/img/usa-icons-unused/add_photo_alternate.svg
802
+ - assets/uswds/img/usa-icons-unused/add_road.svg
803
+ - assets/uswds/img/usa-icons-unused/add_shopping_cart.svg
804
+ - assets/uswds/img/usa-icons-unused/add_task.svg
805
+ - assets/uswds/img/usa-icons-unused/add_to_drive.svg
806
+ - assets/uswds/img/usa-icons-unused/add_to_home_screen.svg
807
+ - assets/uswds/img/usa-icons-unused/add_to_photos.svg
808
+ - assets/uswds/img/usa-icons-unused/add_to_queue.svg
809
+ - assets/uswds/img/usa-icons-unused/addchart.svg
810
+ - assets/uswds/img/usa-icons-unused/adjust.svg
811
+ - assets/uswds/img/usa-icons-unused/admin_panel_settings.svg
812
+ - assets/uswds/img/usa-icons-unused/agriculture.svg
813
+ - assets/uswds/img/usa-icons-unused/airline_seat_flat.svg
814
+ - assets/uswds/img/usa-icons-unused/airline_seat_flat_angled.svg
815
+ - assets/uswds/img/usa-icons-unused/airline_seat_individual_suite.svg
816
+ - assets/uswds/img/usa-icons-unused/airline_seat_legroom_extra.svg
817
+ - assets/uswds/img/usa-icons-unused/airline_seat_legroom_normal.svg
818
+ - assets/uswds/img/usa-icons-unused/airline_seat_legroom_reduced.svg
819
+ - assets/uswds/img/usa-icons-unused/airline_seat_recline_extra.svg
820
+ - assets/uswds/img/usa-icons-unused/airline_seat_recline_normal.svg
821
+ - assets/uswds/img/usa-icons-unused/airplanemode_active.svg
822
+ - assets/uswds/img/usa-icons-unused/airplanemode_inactive.svg
823
+ - assets/uswds/img/usa-icons-unused/airplay.svg
824
+ - assets/uswds/img/usa-icons-unused/airport_shuttle.svg
825
+ - assets/uswds/img/usa-icons-unused/alarm_add.svg
826
+ - assets/uswds/img/usa-icons-unused/alarm_off.svg
827
+ - assets/uswds/img/usa-icons-unused/alarm_on.svg
828
+ - assets/uswds/img/usa-icons-unused/album.svg
829
+ - assets/uswds/img/usa-icons-unused/align_horizontal_center.svg
830
+ - assets/uswds/img/usa-icons-unused/align_horizontal_left.svg
831
+ - assets/uswds/img/usa-icons-unused/align_horizontal_right.svg
832
+ - assets/uswds/img/usa-icons-unused/align_vertical_bottom.svg
833
+ - assets/uswds/img/usa-icons-unused/align_vertical_center.svg
834
+ - assets/uswds/img/usa-icons-unused/align_vertical_top.svg
835
+ - assets/uswds/img/usa-icons-unused/all_inbox.svg
836
+ - assets/uswds/img/usa-icons-unused/all_inclusive.svg
837
+ - assets/uswds/img/usa-icons-unused/all_out.svg
838
+ - assets/uswds/img/usa-icons-unused/alt_route.svg
839
+ - assets/uswds/img/usa-icons-unused/amp_stories.svg
840
+ - assets/uswds/img/usa-icons-unused/analytics.svg
841
+ - assets/uswds/img/usa-icons-unused/anchor.svg
842
+ - assets/uswds/img/usa-icons-unused/android.svg
843
+ - assets/uswds/img/usa-icons-unused/animation.svg
844
+ - assets/uswds/img/usa-icons-unused/apartment.svg
845
+ - assets/uswds/img/usa-icons-unused/app_blocking.svg
846
+ - assets/uswds/img/usa-icons-unused/app_registration.svg
847
+ - assets/uswds/img/usa-icons-unused/app_settings_alt.svg
848
+ - assets/uswds/img/usa-icons-unused/approval.svg
849
+ - assets/uswds/img/usa-icons-unused/apps.svg
850
+ - assets/uswds/img/usa-icons-unused/architecture.svg
851
+ - assets/uswds/img/usa-icons-unused/archive.svg
852
+ - assets/uswds/img/usa-icons-unused/arrow_back_ios.svg
853
+ - assets/uswds/img/usa-icons-unused/arrow_circle_down.svg
854
+ - assets/uswds/img/usa-icons-unused/arrow_circle_up.svg
855
+ - assets/uswds/img/usa-icons-unused/arrow_drop_down_circle.svg
856
+ - assets/uswds/img/usa-icons-unused/arrow_forward_ios.svg
857
+ - assets/uswds/img/usa-icons-unused/arrow_left.svg
858
+ - assets/uswds/img/usa-icons-unused/arrow_right.svg
859
+ - assets/uswds/img/usa-icons-unused/arrow_right_alt.svg
860
+ - assets/uswds/img/usa-icons-unused/art_track.svg
861
+ - assets/uswds/img/usa-icons-unused/article.svg
862
+ - assets/uswds/img/usa-icons-unused/aspect_ratio.svg
863
+ - assets/uswds/img/usa-icons-unused/assignment.svg
864
+ - assets/uswds/img/usa-icons-unused/assignment_ind.svg
865
+ - assets/uswds/img/usa-icons-unused/assignment_late.svg
866
+ - assets/uswds/img/usa-icons-unused/assignment_return.svg
867
+ - assets/uswds/img/usa-icons-unused/assignment_returned.svg
868
+ - assets/uswds/img/usa-icons-unused/assignment_turned_in.svg
869
+ - assets/uswds/img/usa-icons-unused/assistant.svg
870
+ - assets/uswds/img/usa-icons-unused/assistant_direction.svg
871
+ - assets/uswds/img/usa-icons-unused/assistant_navigation.svg
872
+ - assets/uswds/img/usa-icons-unused/assistant_photo.svg
873
+ - assets/uswds/img/usa-icons-unused/atm.svg
874
+ - assets/uswds/img/usa-icons-unused/attach_email.svg
875
+ - assets/uswds/img/usa-icons-unused/attachment.svg
876
+ - assets/uswds/img/usa-icons-unused/attractions.svg
877
+ - assets/uswds/img/usa-icons-unused/audiotrack.svg
878
+ - assets/uswds/img/usa-icons-unused/auto_awesome.svg
879
+ - assets/uswds/img/usa-icons-unused/auto_awesome_mosaic.svg
880
+ - assets/uswds/img/usa-icons-unused/auto_awesome_motion.svg
881
+ - assets/uswds/img/usa-icons-unused/auto_delete.svg
882
+ - assets/uswds/img/usa-icons-unused/auto_fix_high.svg
883
+ - assets/uswds/img/usa-icons-unused/auto_fix_normal.svg
884
+ - assets/uswds/img/usa-icons-unused/auto_fix_off.svg
885
+ - assets/uswds/img/usa-icons-unused/auto_stories.svg
886
+ - assets/uswds/img/usa-icons-unused/av_timer.svg
887
+ - assets/uswds/img/usa-icons-unused/baby_changing_station.svg
888
+ - assets/uswds/img/usa-icons-unused/backspace.svg
889
+ - assets/uswds/img/usa-icons-unused/backup.svg
890
+ - assets/uswds/img/usa-icons-unused/backup_table.svg
891
+ - assets/uswds/img/usa-icons-unused/badge.svg
892
+ - assets/uswds/img/usa-icons-unused/bakery_dining.svg
893
+ - assets/uswds/img/usa-icons-unused/ballot.svg
894
+ - assets/uswds/img/usa-icons-unused/bar_chart.svg
895
+ - assets/uswds/img/usa-icons-unused/batch_prediction.svg
896
+ - assets/uswds/img/usa-icons-unused/battery_alert.svg
897
+ - assets/uswds/img/usa-icons-unused/battery_charging_full.svg
898
+ - assets/uswds/img/usa-icons-unused/battery_full.svg
899
+ - assets/uswds/img/usa-icons-unused/battery_std.svg
900
+ - assets/uswds/img/usa-icons-unused/battery_unknown.svg
901
+ - assets/uswds/img/usa-icons-unused/beach_access.svg
902
+ - assets/uswds/img/usa-icons-unused/bedtime.svg
903
+ - assets/uswds/img/usa-icons-unused/beenhere.svg
904
+ - assets/uswds/img/usa-icons-unused/bento.svg
905
+ - assets/uswds/img/usa-icons-unused/bike_scooter.svg
906
+ - assets/uswds/img/usa-icons-unused/biotech.svg
907
+ - assets/uswds/img/usa-icons-unused/block.svg
908
+ - assets/uswds/img/usa-icons-unused/block_flipped.svg
909
+ - assets/uswds/img/usa-icons-unused/bluetooth.svg
910
+ - assets/uswds/img/usa-icons-unused/bluetooth_audio.svg
911
+ - assets/uswds/img/usa-icons-unused/bluetooth_connected.svg
912
+ - assets/uswds/img/usa-icons-unused/bluetooth_disabled.svg
913
+ - assets/uswds/img/usa-icons-unused/bluetooth_searching.svg
914
+ - assets/uswds/img/usa-icons-unused/blur_circular.svg
915
+ - assets/uswds/img/usa-icons-unused/blur_linear.svg
916
+ - assets/uswds/img/usa-icons-unused/blur_off.svg
917
+ - assets/uswds/img/usa-icons-unused/blur_on.svg
918
+ - assets/uswds/img/usa-icons-unused/bolt.svg
919
+ - assets/uswds/img/usa-icons-unused/book.svg
920
+ - assets/uswds/img/usa-icons-unused/book_online.svg
921
+ - assets/uswds/img/usa-icons-unused/bookmark_border.svg
922
+ - assets/uswds/img/usa-icons-unused/bookmarks.svg
923
+ - assets/uswds/img/usa-icons-unused/border_all.svg
924
+ - assets/uswds/img/usa-icons-unused/border_bottom.svg
925
+ - assets/uswds/img/usa-icons-unused/border_clear.svg
926
+ - assets/uswds/img/usa-icons-unused/border_color.svg
927
+ - assets/uswds/img/usa-icons-unused/border_horizontal.svg
928
+ - assets/uswds/img/usa-icons-unused/border_inner.svg
929
+ - assets/uswds/img/usa-icons-unused/border_left.svg
930
+ - assets/uswds/img/usa-icons-unused/border_outer.svg
931
+ - assets/uswds/img/usa-icons-unused/border_right.svg
932
+ - assets/uswds/img/usa-icons-unused/border_style.svg
933
+ - assets/uswds/img/usa-icons-unused/border_top.svg
934
+ - assets/uswds/img/usa-icons-unused/border_vertical.svg
935
+ - assets/uswds/img/usa-icons-unused/branding_watermark.svg
936
+ - assets/uswds/img/usa-icons-unused/breakfast_dining.svg
937
+ - assets/uswds/img/usa-icons-unused/brightness_1.svg
938
+ - assets/uswds/img/usa-icons-unused/brightness_2.svg
939
+ - assets/uswds/img/usa-icons-unused/brightness_3.svg
940
+ - assets/uswds/img/usa-icons-unused/brightness_4.svg
941
+ - assets/uswds/img/usa-icons-unused/brightness_5.svg
942
+ - assets/uswds/img/usa-icons-unused/brightness_6.svg
943
+ - assets/uswds/img/usa-icons-unused/brightness_7.svg
944
+ - assets/uswds/img/usa-icons-unused/brightness_auto.svg
945
+ - assets/uswds/img/usa-icons-unused/brightness_high.svg
946
+ - assets/uswds/img/usa-icons-unused/brightness_low.svg
947
+ - assets/uswds/img/usa-icons-unused/brightness_medium.svg
948
+ - assets/uswds/img/usa-icons-unused/broken_image.svg
949
+ - assets/uswds/img/usa-icons-unused/browser_not_supported.svg
950
+ - assets/uswds/img/usa-icons-unused/brunch_dining.svg
951
+ - assets/uswds/img/usa-icons-unused/brush.svg
952
+ - assets/uswds/img/usa-icons-unused/bubble_chart.svg
953
+ - assets/uswds/img/usa-icons-unused/build_circle.svg
954
+ - assets/uswds/img/usa-icons-unused/burst_mode.svg
955
+ - assets/uswds/img/usa-icons-unused/bus_alert.svg
956
+ - assets/uswds/img/usa-icons-unused/business.svg
957
+ - assets/uswds/img/usa-icons-unused/business_center.svg
958
+ - assets/uswds/img/usa-icons-unused/cached.svg
959
+ - assets/uswds/img/usa-icons-unused/cake.svg
960
+ - assets/uswds/img/usa-icons-unused/calculate.svg
961
+ - assets/uswds/img/usa-icons-unused/calendar_view_day.svg
962
+ - assets/uswds/img/usa-icons-unused/call.svg
963
+ - assets/uswds/img/usa-icons-unused/call_end.svg
964
+ - assets/uswds/img/usa-icons-unused/call_made.svg
965
+ - assets/uswds/img/usa-icons-unused/call_merge.svg
966
+ - assets/uswds/img/usa-icons-unused/call_missed.svg
967
+ - assets/uswds/img/usa-icons-unused/call_missed_outgoing.svg
968
+ - assets/uswds/img/usa-icons-unused/call_received.svg
969
+ - assets/uswds/img/usa-icons-unused/call_split.svg
970
+ - assets/uswds/img/usa-icons-unused/call_to_action.svg
971
+ - assets/uswds/img/usa-icons-unused/camera.svg
972
+ - assets/uswds/img/usa-icons-unused/camera_alt.svg
973
+ - assets/uswds/img/usa-icons-unused/camera_enhance.svg
974
+ - assets/uswds/img/usa-icons-unused/camera_front.svg
975
+ - assets/uswds/img/usa-icons-unused/camera_rear.svg
976
+ - assets/uswds/img/usa-icons-unused/camera_roll.svg
977
+ - assets/uswds/img/usa-icons-unused/cancel_presentation.svg
978
+ - assets/uswds/img/usa-icons-unused/cancel_schedule_send.svg
979
+ - assets/uswds/img/usa-icons-unused/car_rental.svg
980
+ - assets/uswds/img/usa-icons-unused/car_repair.svg
981
+ - assets/uswds/img/usa-icons-unused/card_giftcard.svg
982
+ - assets/uswds/img/usa-icons-unused/card_membership.svg
983
+ - assets/uswds/img/usa-icons-unused/card_travel.svg
984
+ - assets/uswds/img/usa-icons-unused/carpenter.svg
985
+ - assets/uswds/img/usa-icons-unused/cases.svg
986
+ - assets/uswds/img/usa-icons-unused/casino.svg
987
+ - assets/uswds/img/usa-icons-unused/cast.svg
988
+ - assets/uswds/img/usa-icons-unused/cast_connected.svg
989
+ - assets/uswds/img/usa-icons-unused/cast_for_education.svg
990
+ - assets/uswds/img/usa-icons-unused/category.svg
991
+ - assets/uswds/img/usa-icons-unused/celebration.svg
992
+ - assets/uswds/img/usa-icons-unused/cell_wifi.svg
993
+ - assets/uswds/img/usa-icons-unused/center_focus_strong.svg
994
+ - assets/uswds/img/usa-icons-unused/center_focus_weak.svg
995
+ - assets/uswds/img/usa-icons-unused/change_history.svg
996
+ - assets/uswds/img/usa-icons-unused/charging_station.svg
997
+ - assets/uswds/img/usa-icons-unused/chat_bubble.svg
998
+ - assets/uswds/img/usa-icons-unused/chat_bubble_outline.svg
999
+ - assets/uswds/img/usa-icons-unused/check_box.svg
1000
+ - assets/uswds/img/usa-icons-unused/child_care.svg
1001
+ - assets/uswds/img/usa-icons-unused/child_friendly.svg
1002
+ - assets/uswds/img/usa-icons-unused/chrome_reader_mode.svg
1003
+ - assets/uswds/img/usa-icons-unused/circle.svg
1004
+ - assets/uswds/img/usa-icons-unused/circle_notifications.svg
1005
+ - assets/uswds/img/usa-icons-unused/class.svg
1006
+ - assets/uswds/img/usa-icons-unused/cleaning_services.svg
1007
+ - assets/uswds/img/usa-icons-unused/clear.svg
1008
+ - assets/uswds/img/usa-icons-unused/clear_all.svg
1009
+ - assets/uswds/img/usa-icons-unused/close_fullscreen.svg
1010
+ - assets/uswds/img/usa-icons-unused/closed_caption_disabled.svg
1011
+ - assets/uswds/img/usa-icons-unused/closed_caption_off.svg
1012
+ - assets/uswds/img/usa-icons-unused/cloud_circle.svg
1013
+ - assets/uswds/img/usa-icons-unused/cloud_done.svg
1014
+ - assets/uswds/img/usa-icons-unused/cloud_download.svg
1015
+ - assets/uswds/img/usa-icons-unused/cloud_off.svg
1016
+ - assets/uswds/img/usa-icons-unused/cloud_queue.svg
1017
+ - assets/uswds/img/usa-icons-unused/cloud_upload.svg
1018
+ - assets/uswds/img/usa-icons-unused/collections.svg
1019
+ - assets/uswds/img/usa-icons-unused/collections_bookmark.svg
1020
+ - assets/uswds/img/usa-icons-unused/color_lens.svg
1021
+ - assets/uswds/img/usa-icons-unused/colorize.svg
1022
+ - assets/uswds/img/usa-icons-unused/comment_bank.svg
1023
+ - assets/uswds/img/usa-icons-unused/commute.svg
1024
+ - assets/uswds/img/usa-icons-unused/compare.svg
1025
+ - assets/uswds/img/usa-icons-unused/compare_arrows.svg
1026
+ - assets/uswds/img/usa-icons-unused/compass_calibration.svg
1027
+ - assets/uswds/img/usa-icons-unused/compress.svg
1028
+ - assets/uswds/img/usa-icons-unused/computer.svg
1029
+ - assets/uswds/img/usa-icons-unused/confirmation_number.svg
1030
+ - assets/uswds/img/usa-icons-unused/connected_tv.svg
1031
+ - assets/uswds/img/usa-icons-unused/contact_mail.svg
1032
+ - assets/uswds/img/usa-icons-unused/contact_phone.svg
1033
+ - assets/uswds/img/usa-icons-unused/contact_support.svg
1034
+ - assets/uswds/img/usa-icons-unused/contactless.svg
1035
+ - assets/uswds/img/usa-icons-unused/contacts.svg
1036
+ - assets/uswds/img/usa-icons-unused/content_cut.svg
1037
+ - assets/uswds/img/usa-icons-unused/content_paste.svg
1038
+ - assets/uswds/img/usa-icons-unused/control_camera.svg
1039
+ - assets/uswds/img/usa-icons-unused/control_point.svg
1040
+ - assets/uswds/img/usa-icons-unused/control_point_duplicate.svg
1041
+ - assets/uswds/img/usa-icons-unused/copyright.svg
1042
+ - assets/uswds/img/usa-icons-unused/corporate_fare.svg
1043
+ - assets/uswds/img/usa-icons-unused/countertops.svg
1044
+ - assets/uswds/img/usa-icons-unused/create.svg
1045
+ - assets/uswds/img/usa-icons-unused/create_new_folder.svg
1046
+ - assets/uswds/img/usa-icons-unused/crop.svg
1047
+ - assets/uswds/img/usa-icons-unused/crop_16_9.svg
1048
+ - assets/uswds/img/usa-icons-unused/crop_3_2.svg
1049
+ - assets/uswds/img/usa-icons-unused/crop_5_4.svg
1050
+ - assets/uswds/img/usa-icons-unused/crop_7_5.svg
1051
+ - assets/uswds/img/usa-icons-unused/crop_din.svg
1052
+ - assets/uswds/img/usa-icons-unused/crop_free.svg
1053
+ - assets/uswds/img/usa-icons-unused/crop_landscape.svg
1054
+ - assets/uswds/img/usa-icons-unused/crop_original.svg
1055
+ - assets/uswds/img/usa-icons-unused/crop_portrait.svg
1056
+ - assets/uswds/img/usa-icons-unused/crop_rotate.svg
1057
+ - assets/uswds/img/usa-icons-unused/crop_square.svg
1058
+ - assets/uswds/img/usa-icons-unused/dangerous.svg
1059
+ - assets/uswds/img/usa-icons-unused/dashboard.svg
1060
+ - assets/uswds/img/usa-icons-unused/dashboard_customize.svg
1061
+ - assets/uswds/img/usa-icons-unused/data_usage.svg
1062
+ - assets/uswds/img/usa-icons-unused/date_range.svg
1063
+ - assets/uswds/img/usa-icons-unused/dehaze.svg
1064
+ - assets/uswds/img/usa-icons-unused/delete_forever.svg
1065
+ - assets/uswds/img/usa-icons-unused/delete_outline.svg
1066
+ - assets/uswds/img/usa-icons-unused/delete_sweep.svg
1067
+ - assets/uswds/img/usa-icons-unused/delivery_dining.svg
1068
+ - assets/uswds/img/usa-icons-unused/departure_board.svg
1069
+ - assets/uswds/img/usa-icons-unused/description.svg
1070
+ - assets/uswds/img/usa-icons-unused/design_services.svg
1071
+ - assets/uswds/img/usa-icons-unused/desktop_access_disabled.svg
1072
+ - assets/uswds/img/usa-icons-unused/desktop_mac.svg
1073
+ - assets/uswds/img/usa-icons-unused/desktop_windows.svg
1074
+ - assets/uswds/img/usa-icons-unused/details.svg
1075
+ - assets/uswds/img/usa-icons-unused/developer_board.svg
1076
+ - assets/uswds/img/usa-icons-unused/developer_mode.svg
1077
+ - assets/uswds/img/usa-icons-unused/device_hub.svg
1078
+ - assets/uswds/img/usa-icons-unused/device_unknown.svg
1079
+ - assets/uswds/img/usa-icons-unused/devices.svg
1080
+ - assets/uswds/img/usa-icons-unused/devices_other.svg
1081
+ - assets/uswds/img/usa-icons-unused/dialer_sip.svg
1082
+ - assets/uswds/img/usa-icons-unused/dialpad.svg
1083
+ - assets/uswds/img/usa-icons-unused/dinner_dining.svg
1084
+ - assets/uswds/img/usa-icons-unused/directions_boat.svg
1085
+ - assets/uswds/img/usa-icons-unused/directions_off.svg
1086
+ - assets/uswds/img/usa-icons-unused/directions_railway.svg
1087
+ - assets/uswds/img/usa-icons-unused/directions_run.svg
1088
+ - assets/uswds/img/usa-icons-unused/directions_subway.svg
1089
+ - assets/uswds/img/usa-icons-unused/directions_transit.svg
1090
+ - assets/uswds/img/usa-icons-unused/dirty_lens.svg
1091
+ - assets/uswds/img/usa-icons-unused/disabled_by_default.svg
1092
+ - assets/uswds/img/usa-icons-unused/disc_full.svg
1093
+ - assets/uswds/img/usa-icons-unused/dns.svg
1094
+ - assets/uswds/img/usa-icons-unused/do_not_disturb_alt.svg
1095
+ - assets/uswds/img/usa-icons-unused/do_not_disturb_off.svg
1096
+ - assets/uswds/img/usa-icons-unused/do_not_disturb_on.svg
1097
+ - assets/uswds/img/usa-icons-unused/do_not_step.svg
1098
+ - assets/uswds/img/usa-icons-unused/dock.svg
1099
+ - assets/uswds/img/usa-icons-unused/domain.svg
1100
+ - assets/uswds/img/usa-icons-unused/domain_disabled.svg
1101
+ - assets/uswds/img/usa-icons-unused/domain_verification.svg
1102
+ - assets/uswds/img/usa-icons-unused/done.svg
1103
+ - assets/uswds/img/usa-icons-unused/done_all.svg
1104
+ - assets/uswds/img/usa-icons-unused/done_outline.svg
1105
+ - assets/uswds/img/usa-icons-unused/donut_large.svg
1106
+ - assets/uswds/img/usa-icons-unused/donut_small.svg
1107
+ - assets/uswds/img/usa-icons-unused/double_arrow.svg
1108
+ - assets/uswds/img/usa-icons-unused/drafts.svg
1109
+ - assets/uswds/img/usa-icons-unused/drag_indicator.svg
1110
+ - assets/uswds/img/usa-icons-unused/drive_eta.svg
1111
+ - assets/uswds/img/usa-icons-unused/drive_file_move.svg
1112
+ - assets/uswds/img/usa-icons-unused/drive_file_move_outline.svg
1113
+ - assets/uswds/img/usa-icons-unused/drive_file_rename_outline.svg
1114
+ - assets/uswds/img/usa-icons-unused/drive_folder_upload.svg
1115
+ - assets/uswds/img/usa-icons-unused/dry.svg
1116
+ - assets/uswds/img/usa-icons-unused/dry_cleaning.svg
1117
+ - assets/uswds/img/usa-icons-unused/duo.svg
1118
+ - assets/uswds/img/usa-icons-unused/dvr.svg
1119
+ - assets/uswds/img/usa-icons-unused/dynamic_feed.svg
1120
+ - assets/uswds/img/usa-icons-unused/dynamic_form.svg
1121
+ - assets/uswds/img/usa-icons-unused/east.svg
1122
+ - assets/uswds/img/usa-icons-unused/edit_attributes.svg
1123
+ - assets/uswds/img/usa-icons-unused/edit_location.svg
1124
+ - assets/uswds/img/usa-icons-unused/edit_off.svg
1125
+ - assets/uswds/img/usa-icons-unused/edit_road.svg
1126
+ - assets/uswds/img/usa-icons-unused/eject.svg
1127
+ - assets/uswds/img/usa-icons-unused/elderly.svg
1128
+ - assets/uswds/img/usa-icons-unused/electric_bike.svg
1129
+ - assets/uswds/img/usa-icons-unused/electric_car.svg
1130
+ - assets/uswds/img/usa-icons-unused/electric_moped.svg
1131
+ - assets/uswds/img/usa-icons-unused/electric_rickshaw.svg
1132
+ - assets/uswds/img/usa-icons-unused/electric_scooter.svg
1133
+ - assets/uswds/img/usa-icons-unused/elevator.svg
1134
+ - assets/uswds/img/usa-icons-unused/email.svg
1135
+ - assets/uswds/img/usa-icons-unused/emoji_emotions.svg
1136
+ - assets/uswds/img/usa-icons-unused/emoji_flags.svg
1137
+ - assets/uswds/img/usa-icons-unused/emoji_food_beverage.svg
1138
+ - assets/uswds/img/usa-icons-unused/emoji_nature.svg
1139
+ - assets/uswds/img/usa-icons-unused/emoji_objects.svg
1140
+ - assets/uswds/img/usa-icons-unused/emoji_people.svg
1141
+ - assets/uswds/img/usa-icons-unused/emoji_symbols.svg
1142
+ - assets/uswds/img/usa-icons-unused/emoji_transportation.svg
1143
+ - assets/uswds/img/usa-icons-unused/engineering.svg
1144
+ - assets/uswds/img/usa-icons-unused/enhanced_encryption.svg
1145
+ - assets/uswds/img/usa-icons-unused/equalizer.svg
1146
+ - assets/uswds/img/usa-icons-unused/escalator.svg
1147
+ - assets/uswds/img/usa-icons-unused/escalator_warning.svg
1148
+ - assets/uswds/img/usa-icons-unused/euro.svg
1149
+ - assets/uswds/img/usa-icons-unused/euro_symbol.svg
1150
+ - assets/uswds/img/usa-icons-unused/ev_station.svg
1151
+ - assets/uswds/img/usa-icons-unused/event_available.svg
1152
+ - assets/uswds/img/usa-icons-unused/event_busy.svg
1153
+ - assets/uswds/img/usa-icons-unused/event_note.svg
1154
+ - assets/uswds/img/usa-icons-unused/event_seat.svg
1155
+ - assets/uswds/img/usa-icons-unused/exit_to_app.svg
1156
+ - assets/uswds/img/usa-icons-unused/expand.svg
1157
+ - assets/uswds/img/usa-icons-unused/explicit.svg
1158
+ - assets/uswds/img/usa-icons-unused/explore.svg
1159
+ - assets/uswds/img/usa-icons-unused/explore_off.svg
1160
+ - assets/uswds/img/usa-icons-unused/exposure.svg
1161
+ - assets/uswds/img/usa-icons-unused/exposure_neg_1.svg
1162
+ - assets/uswds/img/usa-icons-unused/exposure_neg_2.svg
1163
+ - assets/uswds/img/usa-icons-unused/exposure_plus_1.svg
1164
+ - assets/uswds/img/usa-icons-unused/exposure_plus_2.svg
1165
+ - assets/uswds/img/usa-icons-unused/exposure_zero.svg
1166
+ - assets/uswds/img/usa-icons-unused/extension.svg
1167
+ - assets/uswds/img/usa-icons-unused/face.svg
1168
+ - assets/uswds/img/usa-icons-unused/face_retouching_natural.svg
1169
+ - assets/uswds/img/usa-icons-unused/fact_check.svg
1170
+ - assets/uswds/img/usa-icons-unused/family_restroom.svg
1171
+ - assets/uswds/img/usa-icons-unused/fastfood.svg
1172
+ - assets/uswds/img/usa-icons-unused/featured_play_list.svg
1173
+ - assets/uswds/img/usa-icons-unused/featured_video.svg
1174
+ - assets/uswds/img/usa-icons-unused/feedback.svg
1175
+ - assets/uswds/img/usa-icons-unused/fence.svg
1176
+ - assets/uswds/img/usa-icons-unused/festival.svg
1177
+ - assets/uswds/img/usa-icons-unused/fiber_dvr.svg
1178
+ - assets/uswds/img/usa-icons-unused/fiber_manual_record.svg
1179
+ - assets/uswds/img/usa-icons-unused/fiber_new.svg
1180
+ - assets/uswds/img/usa-icons-unused/fiber_pin.svg
1181
+ - assets/uswds/img/usa-icons-unused/fiber_smart_record.svg
1182
+ - assets/uswds/img/usa-icons-unused/file_copy.svg
1183
+ - assets/uswds/img/usa-icons-unused/file_download_done.svg
1184
+ - assets/uswds/img/usa-icons-unused/filter.svg
1185
+ - assets/uswds/img/usa-icons-unused/filter_1.svg
1186
+ - assets/uswds/img/usa-icons-unused/filter_2.svg
1187
+ - assets/uswds/img/usa-icons-unused/filter_3.svg
1188
+ - assets/uswds/img/usa-icons-unused/filter_4.svg
1189
+ - assets/uswds/img/usa-icons-unused/filter_5.svg
1190
+ - assets/uswds/img/usa-icons-unused/filter_6.svg
1191
+ - assets/uswds/img/usa-icons-unused/filter_7.svg
1192
+ - assets/uswds/img/usa-icons-unused/filter_8.svg
1193
+ - assets/uswds/img/usa-icons-unused/filter_9.svg
1194
+ - assets/uswds/img/usa-icons-unused/filter_9_plus.svg
1195
+ - assets/uswds/img/usa-icons-unused/filter_b_and_w.svg
1196
+ - assets/uswds/img/usa-icons-unused/filter_center_focus.svg
1197
+ - assets/uswds/img/usa-icons-unused/filter_drama.svg
1198
+ - assets/uswds/img/usa-icons-unused/filter_frames.svg
1199
+ - assets/uswds/img/usa-icons-unused/filter_hdr.svg
1200
+ - assets/uswds/img/usa-icons-unused/filter_list_alt.svg
1201
+ - assets/uswds/img/usa-icons-unused/filter_none.svg
1202
+ - assets/uswds/img/usa-icons-unused/filter_tilt_shift.svg
1203
+ - assets/uswds/img/usa-icons-unused/filter_vintage.svg
1204
+ - assets/uswds/img/usa-icons-unused/find_in_page.svg
1205
+ - assets/uswds/img/usa-icons-unused/find_replace.svg
1206
+ - assets/uswds/img/usa-icons-unused/fire_extinguisher.svg
1207
+ - assets/uswds/img/usa-icons-unused/fireplace.svg
1208
+ - assets/uswds/img/usa-icons-unused/fit_screen.svg
1209
+ - assets/uswds/img/usa-icons-unused/fitness_center.svg
1210
+ - assets/uswds/img/usa-icons-unused/flaky.svg
1211
+ - assets/uswds/img/usa-icons-unused/flare.svg
1212
+ - assets/uswds/img/usa-icons-unused/flash_auto.svg
1213
+ - assets/uswds/img/usa-icons-unused/flash_off.svg
1214
+ - assets/uswds/img/usa-icons-unused/flash_on.svg
1215
+ - assets/uswds/img/usa-icons-unused/flight_land.svg
1216
+ - assets/uswds/img/usa-icons-unused/flight_takeoff.svg
1217
+ - assets/uswds/img/usa-icons-unused/flip.svg
1218
+ - assets/uswds/img/usa-icons-unused/flip_camera_android.svg
1219
+ - assets/uswds/img/usa-icons-unused/flip_camera_ios.svg
1220
+ - assets/uswds/img/usa-icons-unused/flip_to_back.svg
1221
+ - assets/uswds/img/usa-icons-unused/flip_to_front.svg
1222
+ - assets/uswds/img/usa-icons-unused/folder_shared.svg
1223
+ - assets/uswds/img/usa-icons-unused/folder_special.svg
1224
+ - assets/uswds/img/usa-icons-unused/follow_the_signs.svg
1225
+ - assets/uswds/img/usa-icons-unused/font_download.svg
1226
+ - assets/uswds/img/usa-icons-unused/food_bank.svg
1227
+ - assets/uswds/img/usa-icons-unused/format_align_center.svg
1228
+ - assets/uswds/img/usa-icons-unused/format_align_justify.svg
1229
+ - assets/uswds/img/usa-icons-unused/format_align_left.svg
1230
+ - assets/uswds/img/usa-icons-unused/format_align_right.svg
1231
+ - assets/uswds/img/usa-icons-unused/format_bold.svg
1232
+ - assets/uswds/img/usa-icons-unused/format_clear.svg
1233
+ - assets/uswds/img/usa-icons-unused/format_color_fill.svg
1234
+ - assets/uswds/img/usa-icons-unused/format_color_reset.svg
1235
+ - assets/uswds/img/usa-icons-unused/format_color_text.svg
1236
+ - assets/uswds/img/usa-icons-unused/format_indent_decrease.svg
1237
+ - assets/uswds/img/usa-icons-unused/format_indent_increase.svg
1238
+ - assets/uswds/img/usa-icons-unused/format_italic.svg
1239
+ - assets/uswds/img/usa-icons-unused/format_line_spacing.svg
1240
+ - assets/uswds/img/usa-icons-unused/format_list_bulleted.svg
1241
+ - assets/uswds/img/usa-icons-unused/format_list_numbered.svg
1242
+ - assets/uswds/img/usa-icons-unused/format_list_numbered_rtl.svg
1243
+ - assets/uswds/img/usa-icons-unused/format_paint.svg
1244
+ - assets/uswds/img/usa-icons-unused/format_shapes.svg
1245
+ - assets/uswds/img/usa-icons-unused/format_strikethrough.svg
1246
+ - assets/uswds/img/usa-icons-unused/format_textdirection_l_to_r.svg
1247
+ - assets/uswds/img/usa-icons-unused/format_textdirection_r_to_l.svg
1248
+ - assets/uswds/img/usa-icons-unused/format_underlined.svg
1249
+ - assets/uswds/img/usa-icons-unused/forward.svg
1250
+ - assets/uswds/img/usa-icons-unused/forward_10.svg
1251
+ - assets/uswds/img/usa-icons-unused/forward_30.svg
1252
+ - assets/uswds/img/usa-icons-unused/forward_5.svg
1253
+ - assets/uswds/img/usa-icons-unused/forward_to_inbox.svg
1254
+ - assets/uswds/img/usa-icons-unused/foundation.svg
1255
+ - assets/uswds/img/usa-icons-unused/free_breakfast.svg
1256
+ - assets/uswds/img/usa-icons-unused/fullscreen.svg
1257
+ - assets/uswds/img/usa-icons-unused/fullscreen_exit.svg
1258
+ - assets/uswds/img/usa-icons-unused/functions.svg
1259
+ - assets/uswds/img/usa-icons-unused/g_translate.svg
1260
+ - assets/uswds/img/usa-icons-unused/gamepad.svg
1261
+ - assets/uswds/img/usa-icons-unused/games.svg
1262
+ - assets/uswds/img/usa-icons-unused/gavel.svg
1263
+ - assets/uswds/img/usa-icons-unused/gesture.svg
1264
+ - assets/uswds/img/usa-icons-unused/get_app.svg
1265
+ - assets/uswds/img/usa-icons-unused/gif.svg
1266
+ - assets/uswds/img/usa-icons-unused/golf_course.svg
1267
+ - assets/uswds/img/usa-icons-unused/gps_fixed.svg
1268
+ - assets/uswds/img/usa-icons-unused/gps_not_fixed.svg
1269
+ - assets/uswds/img/usa-icons-unused/gps_off.svg
1270
+ - assets/uswds/img/usa-icons-unused/grade.svg
1271
+ - assets/uswds/img/usa-icons-unused/gradient.svg
1272
+ - assets/uswds/img/usa-icons-unused/grading.svg
1273
+ - assets/uswds/img/usa-icons-unused/grain.svg
1274
+ - assets/uswds/img/usa-icons-unused/graphic_eq.svg
1275
+ - assets/uswds/img/usa-icons-unused/grass.svg
1276
+ - assets/uswds/img/usa-icons-unused/grid_off.svg
1277
+ - assets/uswds/img/usa-icons-unused/grid_on.svg
1278
+ - assets/uswds/img/usa-icons-unused/group.svg
1279
+ - assets/uswds/img/usa-icons-unused/group_work.svg
1280
+ - assets/uswds/img/usa-icons-unused/hail.svg
1281
+ - assets/uswds/img/usa-icons-unused/handyman.svg
1282
+ - assets/uswds/img/usa-icons-unused/hardware.svg
1283
+ - assets/uswds/img/usa-icons-unused/hd.svg
1284
+ - assets/uswds/img/usa-icons-unused/hdr_enhanced_select.svg
1285
+ - assets/uswds/img/usa-icons-unused/hdr_off.svg
1286
+ - assets/uswds/img/usa-icons-unused/hdr_on.svg
1287
+ - assets/uswds/img/usa-icons-unused/hdr_strong.svg
1288
+ - assets/uswds/img/usa-icons-unused/hdr_weak.svg
1289
+ - assets/uswds/img/usa-icons-unused/headset.svg
1290
+ - assets/uswds/img/usa-icons-unused/headset_mic.svg
1291
+ - assets/uswds/img/usa-icons-unused/headset_off.svg
1292
+ - assets/uswds/img/usa-icons-unused/healing.svg
1293
+ - assets/uswds/img/usa-icons-unused/hearing_disabled.svg
1294
+ - assets/uswds/img/usa-icons-unused/height.svg
1295
+ - assets/uswds/img/usa-icons-unused/help_center.svg
1296
+ - assets/uswds/img/usa-icons-unused/high_quality.svg
1297
+ - assets/uswds/img/usa-icons-unused/highlight.svg
1298
+ - assets/uswds/img/usa-icons-unused/highlight_alt.svg
1299
+ - assets/uswds/img/usa-icons-unused/history_edu.svg
1300
+ - assets/uswds/img/usa-icons-unused/history_toggle_off.svg
1301
+ - assets/uswds/img/usa-icons-unused/home_filled.svg
1302
+ - assets/uswds/img/usa-icons-unused/home_repair_service.svg
1303
+ - assets/uswds/img/usa-icons-unused/home_work.svg
1304
+ - assets/uswds/img/usa-icons-unused/horizontal_distribute.svg
1305
+ - assets/uswds/img/usa-icons-unused/horizontal_rule.svg
1306
+ - assets/uswds/img/usa-icons-unused/horizontal_split.svg
1307
+ - assets/uswds/img/usa-icons-unused/hot_tub.svg
1308
+ - assets/uswds/img/usa-icons-unused/hourglass_bottom.svg
1309
+ - assets/uswds/img/usa-icons-unused/hourglass_disabled.svg
1310
+ - assets/uswds/img/usa-icons-unused/hourglass_full.svg
1311
+ - assets/uswds/img/usa-icons-unused/hourglass_top.svg
1312
+ - assets/uswds/img/usa-icons-unused/house.svg
1313
+ - assets/uswds/img/usa-icons-unused/house_siding.svg
1314
+ - assets/uswds/img/usa-icons-unused/how_to_reg.svg
1315
+ - assets/uswds/img/usa-icons-unused/how_to_vote.svg
1316
+ - assets/uswds/img/usa-icons-unused/http.svg
1317
+ - assets/uswds/img/usa-icons-unused/https.svg
1318
+ - assets/uswds/img/usa-icons-unused/hvac.svg
1319
+ - assets/uswds/img/usa-icons-unused/icecream.svg
1320
+ - assets/uswds/img/usa-icons-unused/image_aspect_ratio.svg
1321
+ - assets/uswds/img/usa-icons-unused/image_not_supported.svg
1322
+ - assets/uswds/img/usa-icons-unused/image_search.svg
1323
+ - assets/uswds/img/usa-icons-unused/imagesearch_roller.svg
1324
+ - assets/uswds/img/usa-icons-unused/import_contacts.svg
1325
+ - assets/uswds/img/usa-icons-unused/import_export.svg
1326
+ - assets/uswds/img/usa-icons-unused/important_devices.svg
1327
+ - assets/uswds/img/usa-icons-unused/inbox.svg
1328
+ - assets/uswds/img/usa-icons-unused/indeterminate_check_box.svg
1329
+ - assets/uswds/img/usa-icons-unused/input.svg
1330
+ - assets/uswds/img/usa-icons-unused/insert_chart.svg
1331
+ - assets/uswds/img/usa-icons-unused/insert_chart_outlined.svg
1332
+ - assets/uswds/img/usa-icons-unused/insert_comment.svg
1333
+ - assets/uswds/img/usa-icons-unused/insert_drive_file.svg
1334
+ - assets/uswds/img/usa-icons-unused/insert_emoticon.svg
1335
+ - assets/uswds/img/usa-icons-unused/insert_invitation.svg
1336
+ - assets/uswds/img/usa-icons-unused/insert_link.svg
1337
+ - assets/uswds/img/usa-icons-unused/insert_photo.svg
1338
+ - assets/uswds/img/usa-icons-unused/integration_instructions.svg
1339
+ - assets/uswds/img/usa-icons-unused/inventory.svg
1340
+ - assets/uswds/img/usa-icons-unused/invert_colors.svg
1341
+ - assets/uswds/img/usa-icons-unused/invert_colors_off.svg
1342
+ - assets/uswds/img/usa-icons-unused/ios_share.svg
1343
+ - assets/uswds/img/usa-icons-unused/iso.svg
1344
+ - assets/uswds/img/usa-icons-unused/keyboard_arrow_down.svg
1345
+ - assets/uswds/img/usa-icons-unused/keyboard_arrow_left.svg
1346
+ - assets/uswds/img/usa-icons-unused/keyboard_arrow_right.svg
1347
+ - assets/uswds/img/usa-icons-unused/keyboard_arrow_up.svg
1348
+ - assets/uswds/img/usa-icons-unused/keyboard_backspace.svg
1349
+ - assets/uswds/img/usa-icons-unused/keyboard_capslock.svg
1350
+ - assets/uswds/img/usa-icons-unused/keyboard_hide.svg
1351
+ - assets/uswds/img/usa-icons-unused/keyboard_return.svg
1352
+ - assets/uswds/img/usa-icons-unused/keyboard_tab.svg
1353
+ - assets/uswds/img/usa-icons-unused/keyboard_voice.svg
1354
+ - assets/uswds/img/usa-icons-unused/king_bed.svg
1355
+ - assets/uswds/img/usa-icons-unused/kitchen.svg
1356
+ - assets/uswds/img/usa-icons-unused/label_important.svg
1357
+ - assets/uswds/img/usa-icons-unused/label_important_outline.svg
1358
+ - assets/uswds/img/usa-icons-unused/label_off.svg
1359
+ - assets/uswds/img/usa-icons-unused/label_outline.svg
1360
+ - assets/uswds/img/usa-icons-unused/landscape.svg
1361
+ - assets/uswds/img/usa-icons-unused/laptop.svg
1362
+ - assets/uswds/img/usa-icons-unused/laptop_chromebook.svg
1363
+ - assets/uswds/img/usa-icons-unused/laptop_mac.svg
1364
+ - assets/uswds/img/usa-icons-unused/laptop_windows.svg
1365
+ - assets/uswds/img/usa-icons-unused/layers.svg
1366
+ - assets/uswds/img/usa-icons-unused/layers_clear.svg
1367
+ - assets/uswds/img/usa-icons-unused/leaderboard.svg
1368
+ - assets/uswds/img/usa-icons-unused/leak_add.svg
1369
+ - assets/uswds/img/usa-icons-unused/leak_remove.svg
1370
+ - assets/uswds/img/usa-icons-unused/legend_toggle.svg
1371
+ - assets/uswds/img/usa-icons-unused/lens.svg
1372
+ - assets/uswds/img/usa-icons-unused/library_add.svg
1373
+ - assets/uswds/img/usa-icons-unused/library_add_check.svg
1374
+ - assets/uswds/img/usa-icons-unused/library_books.svg
1375
+ - assets/uswds/img/usa-icons-unused/library_music.svg
1376
+ - assets/uswds/img/usa-icons-unused/line_style.svg
1377
+ - assets/uswds/img/usa-icons-unused/line_weight.svg
1378
+ - assets/uswds/img/usa-icons-unused/linear_scale.svg
1379
+ - assets/uswds/img/usa-icons-unused/linked_camera.svg
1380
+ - assets/uswds/img/usa-icons-unused/liquor.svg
1381
+ - assets/uswds/img/usa-icons-unused/list_alt.svg
1382
+ - assets/uswds/img/usa-icons-unused/live_help.svg
1383
+ - assets/uswds/img/usa-icons-unused/live_tv.svg
1384
+ - assets/uswds/img/usa-icons-unused/local_activity.svg
1385
+ - assets/uswds/img/usa-icons-unused/local_airport.svg
1386
+ - assets/uswds/img/usa-icons-unused/local_atm.svg
1387
+ - assets/uswds/img/usa-icons-unused/local_bar.svg
1388
+ - assets/uswds/img/usa-icons-unused/local_car_wash.svg
1389
+ - assets/uswds/img/usa-icons-unused/local_convenience_store.svg
1390
+ - assets/uswds/img/usa-icons-unused/local_dining.svg
1391
+ - assets/uswds/img/usa-icons-unused/local_drink.svg
1392
+ - assets/uswds/img/usa-icons-unused/local_florist.svg
1393
+ - assets/uswds/img/usa-icons-unused/local_hotel.svg
1394
+ - assets/uswds/img/usa-icons-unused/local_mall.svg
1395
+ - assets/uswds/img/usa-icons-unused/local_movies.svg
1396
+ - assets/uswds/img/usa-icons-unused/local_phone.svg
1397
+ - assets/uswds/img/usa-icons-unused/local_pizza.svg
1398
+ - assets/uswds/img/usa-icons-unused/local_play.svg
1399
+ - assets/uswds/img/usa-icons-unused/local_post_office.svg
1400
+ - assets/uswds/img/usa-icons-unused/local_printshop.svg
1401
+ - assets/uswds/img/usa-icons-unused/local_see.svg
1402
+ - assets/uswds/img/usa-icons-unused/local_shipping.svg
1403
+ - assets/uswds/img/usa-icons-unused/location_disabled.svg
1404
+ - assets/uswds/img/usa-icons-unused/location_off.svg
1405
+ - assets/uswds/img/usa-icons-unused/location_pin.svg
1406
+ - assets/uswds/img/usa-icons-unused/location_searching.svg
1407
+ - assets/uswds/img/usa-icons-unused/lock_clock.svg
1408
+ - assets/uswds/img/usa-icons-unused/looks.svg
1409
+ - assets/uswds/img/usa-icons-unused/looks_3.svg
1410
+ - assets/uswds/img/usa-icons-unused/looks_4.svg
1411
+ - assets/uswds/img/usa-icons-unused/looks_5.svg
1412
+ - assets/uswds/img/usa-icons-unused/looks_6.svg
1413
+ - assets/uswds/img/usa-icons-unused/looks_one.svg
1414
+ - assets/uswds/img/usa-icons-unused/looks_two.svg
1415
+ - assets/uswds/img/usa-icons-unused/loupe.svg
1416
+ - assets/uswds/img/usa-icons-unused/low_priority.svg
1417
+ - assets/uswds/img/usa-icons-unused/loyalty.svg
1418
+ - assets/uswds/img/usa-icons-unused/luggage.svg
1419
+ - assets/uswds/img/usa-icons-unused/lunch_dining.svg
1420
+ - assets/uswds/img/usa-icons-unused/maps_ugc.svg
1421
+ - assets/uswds/img/usa-icons-unused/margin.svg
1422
+ - assets/uswds/img/usa-icons-unused/mark_as_unread.svg
1423
+ - assets/uswds/img/usa-icons-unused/mark_chat_read.svg
1424
+ - assets/uswds/img/usa-icons-unused/mark_chat_unread.svg
1425
+ - assets/uswds/img/usa-icons-unused/mark_email_read.svg
1426
+ - assets/uswds/img/usa-icons-unused/mark_email_unread.svg
1427
+ - assets/uswds/img/usa-icons-unused/markunread.svg
1428
+ - assets/uswds/img/usa-icons-unused/markunread_mailbox.svg
1429
+ - assets/uswds/img/usa-icons-unused/maximize.svg
1430
+ - assets/uswds/img/usa-icons-unused/mediation.svg
1431
+ - assets/uswds/img/usa-icons-unused/meeting_room.svg
1432
+ - assets/uswds/img/usa-icons-unused/memory.svg
1433
+ - assets/uswds/img/usa-icons-unused/menu_book.svg
1434
+ - assets/uswds/img/usa-icons-unused/menu_open.svg
1435
+ - assets/uswds/img/usa-icons-unused/merge_type.svg
1436
+ - assets/uswds/img/usa-icons-unused/message.svg
1437
+ - assets/uswds/img/usa-icons-unused/mic.svg
1438
+ - assets/uswds/img/usa-icons-unused/mic_external_off.svg
1439
+ - assets/uswds/img/usa-icons-unused/mic_external_on.svg
1440
+ - assets/uswds/img/usa-icons-unused/mic_none.svg
1441
+ - assets/uswds/img/usa-icons-unused/mic_off.svg
1442
+ - assets/uswds/img/usa-icons-unused/microwave.svg
1443
+ - assets/uswds/img/usa-icons-unused/minimize.svg
1444
+ - assets/uswds/img/usa-icons-unused/miscellaneous_services.svg
1445
+ - assets/uswds/img/usa-icons-unused/missed_video_call.svg
1446
+ - assets/uswds/img/usa-icons-unused/mms.svg
1447
+ - assets/uswds/img/usa-icons-unused/mobile_friendly.svg
1448
+ - assets/uswds/img/usa-icons-unused/mobile_off.svg
1449
+ - assets/uswds/img/usa-icons-unused/mobile_screen_share.svg
1450
+ - assets/uswds/img/usa-icons-unused/mode_comment.svg
1451
+ - assets/uswds/img/usa-icons-unused/mode_edit.svg
1452
+ - assets/uswds/img/usa-icons-unused/model_training.svg
1453
+ - assets/uswds/img/usa-icons-unused/monetization_on.svg
1454
+ - assets/uswds/img/usa-icons-unused/money.svg
1455
+ - assets/uswds/img/usa-icons-unused/money_off.svg
1456
+ - assets/uswds/img/usa-icons-unused/monitor.svg
1457
+ - assets/uswds/img/usa-icons-unused/monochrome_photos.svg
1458
+ - assets/uswds/img/usa-icons-unused/mood.svg
1459
+ - assets/uswds/img/usa-icons-unused/mood_bad.svg
1460
+ - assets/uswds/img/usa-icons-unused/moped.svg
1461
+ - assets/uswds/img/usa-icons-unused/more.svg
1462
+ - assets/uswds/img/usa-icons-unused/more_time.svg
1463
+ - assets/uswds/img/usa-icons-unused/motion_photos_off.svg
1464
+ - assets/uswds/img/usa-icons-unused/motion_photos_on.svg
1465
+ - assets/uswds/img/usa-icons-unused/motion_photos_pause.svg
1466
+ - assets/uswds/img/usa-icons-unused/motion_photos_paused.svg
1467
+ - assets/uswds/img/usa-icons-unused/mouse.svg
1468
+ - assets/uswds/img/usa-icons-unused/move_to_inbox.svg
1469
+ - assets/uswds/img/usa-icons-unused/movie.svg
1470
+ - assets/uswds/img/usa-icons-unused/movie_creation.svg
1471
+ - assets/uswds/img/usa-icons-unused/movie_filter.svg
1472
+ - assets/uswds/img/usa-icons-unused/mp.svg
1473
+ - assets/uswds/img/usa-icons-unused/multiline_chart.svg
1474
+ - assets/uswds/img/usa-icons-unused/multiple_stop.svg
1475
+ - assets/uswds/img/usa-icons-unused/museum.svg
1476
+ - assets/uswds/img/usa-icons-unused/music_note.svg
1477
+ - assets/uswds/img/usa-icons-unused/music_off.svg
1478
+ - assets/uswds/img/usa-icons-unused/music_video.svg
1479
+ - assets/uswds/img/usa-icons-unused/nat.svg
1480
+ - assets/uswds/img/usa-icons-unused/nature.svg
1481
+ - assets/uswds/img/usa-icons-unused/nature_people.svg
1482
+ - assets/uswds/img/usa-icons-unused/navigation.svg
1483
+ - assets/uswds/img/usa-icons-unused/near_me_disabled.svg
1484
+ - assets/uswds/img/usa-icons-unused/network_cell.svg
1485
+ - assets/uswds/img/usa-icons-unused/network_check.svg
1486
+ - assets/uswds/img/usa-icons-unused/network_locked.svg
1487
+ - assets/uswds/img/usa-icons-unused/network_wifi.svg
1488
+ - assets/uswds/img/usa-icons-unused/new_releases.svg
1489
+ - assets/uswds/img/usa-icons-unused/next_plan.svg
1490
+ - assets/uswds/img/usa-icons-unused/next_week.svg
1491
+ - assets/uswds/img/usa-icons-unused/nfc.svg
1492
+ - assets/uswds/img/usa-icons-unused/night_shelter.svg
1493
+ - assets/uswds/img/usa-icons-unused/nightlife.svg
1494
+ - assets/uswds/img/usa-icons-unused/nightlight_round.svg
1495
+ - assets/uswds/img/usa-icons-unused/nights_stay.svg
1496
+ - assets/uswds/img/usa-icons-unused/no_backpack.svg
1497
+ - assets/uswds/img/usa-icons-unused/no_cell.svg
1498
+ - assets/uswds/img/usa-icons-unused/no_drinks.svg
1499
+ - assets/uswds/img/usa-icons-unused/no_encryption.svg
1500
+ - assets/uswds/img/usa-icons-unused/no_flash.svg
1501
+ - assets/uswds/img/usa-icons-unused/no_food.svg
1502
+ - assets/uswds/img/usa-icons-unused/no_luggage.svg
1503
+ - assets/uswds/img/usa-icons-unused/no_meals.svg
1504
+ - assets/uswds/img/usa-icons-unused/no_meals_ouline.svg
1505
+ - assets/uswds/img/usa-icons-unused/no_meeting_room.svg
1506
+ - assets/uswds/img/usa-icons-unused/no_photography.svg
1507
+ - assets/uswds/img/usa-icons-unused/no_sim.svg
1508
+ - assets/uswds/img/usa-icons-unused/no_stroller.svg
1509
+ - assets/uswds/img/usa-icons-unused/no_transfer.svg
1510
+ - assets/uswds/img/usa-icons-unused/north.svg
1511
+ - assets/uswds/img/usa-icons-unused/north_east.svg
1512
+ - assets/uswds/img/usa-icons-unused/north_west.svg
1513
+ - assets/uswds/img/usa-icons-unused/not_accessible.svg
1514
+ - assets/uswds/img/usa-icons-unused/not_interested.svg
1515
+ - assets/uswds/img/usa-icons-unused/not_listed_location.svg
1516
+ - assets/uswds/img/usa-icons-unused/not_started.svg
1517
+ - assets/uswds/img/usa-icons-unused/note.svg
1518
+ - assets/uswds/img/usa-icons-unused/note_add.svg
1519
+ - assets/uswds/img/usa-icons-unused/notes.svg
1520
+ - assets/uswds/img/usa-icons-unused/notification_important.svg
1521
+ - assets/uswds/img/usa-icons-unused/notifications_paused.svg
1522
+ - assets/uswds/img/usa-icons-unused/offline_bolt.svg
1523
+ - assets/uswds/img/usa-icons-unused/offline_pin.svg
1524
+ - assets/uswds/img/usa-icons-unused/offline_share.svg
1525
+ - assets/uswds/img/usa-icons-unused/ondemand_video.svg
1526
+ - assets/uswds/img/usa-icons-unused/online_prediction.svg
1527
+ - assets/uswds/img/usa-icons-unused/opacity.svg
1528
+ - assets/uswds/img/usa-icons-unused/open_in_browser.svg
1529
+ - assets/uswds/img/usa-icons-unused/open_in_full.svg
1530
+ - assets/uswds/img/usa-icons-unused/open_in_new.svg
1531
+ - assets/uswds/img/usa-icons-unused/open_with.svg
1532
+ - assets/uswds/img/usa-icons-unused/outbond.svg
1533
+ - assets/uswds/img/usa-icons-unused/outbox.svg
1534
+ - assets/uswds/img/usa-icons-unused/outdoor_grill.svg
1535
+ - assets/uswds/img/usa-icons-unused/outgoing_mail.svg
1536
+ - assets/uswds/img/usa-icons-unused/outlet.svg
1537
+ - assets/uswds/img/usa-icons-unused/outlined_flag.svg
1538
+ - assets/uswds/img/usa-icons-unused/padding.svg
1539
+ - assets/uswds/img/usa-icons-unused/pages.svg
1540
+ - assets/uswds/img/usa-icons-unused/pageview.svg
1541
+ - assets/uswds/img/usa-icons-unused/palette.svg
1542
+ - assets/uswds/img/usa-icons-unused/pan_tool.svg
1543
+ - assets/uswds/img/usa-icons-unused/panorama.svg
1544
+ - assets/uswds/img/usa-icons-unused/panorama_fish_eye.svg
1545
+ - assets/uswds/img/usa-icons-unused/panorama_horizontal.svg
1546
+ - assets/uswds/img/usa-icons-unused/panorama_horizontal_select.svg
1547
+ - assets/uswds/img/usa-icons-unused/panorama_photosphere.svg
1548
+ - assets/uswds/img/usa-icons-unused/panorama_photosphere_select.svg
1549
+ - assets/uswds/img/usa-icons-unused/panorama_vertical.svg
1550
+ - assets/uswds/img/usa-icons-unused/panorama_vertical_select.svg
1551
+ - assets/uswds/img/usa-icons-unused/panorama_wide_angle.svg
1552
+ - assets/uswds/img/usa-icons-unused/panorama_wide_angle_select.svg
1553
+ - assets/uswds/img/usa-icons-unused/party_mode.svg
1554
+ - assets/uswds/img/usa-icons-unused/pause.svg
1555
+ - assets/uswds/img/usa-icons-unused/pause_circle_filled.svg
1556
+ - assets/uswds/img/usa-icons-unused/pause_circle_outline.svg
1557
+ - assets/uswds/img/usa-icons-unused/pause_presentation.svg
1558
+ - assets/uswds/img/usa-icons-unused/payment.svg
1559
+ - assets/uswds/img/usa-icons-unused/payments.svg
1560
+ - assets/uswds/img/usa-icons-unused/pedal_bike.svg
1561
+ - assets/uswds/img/usa-icons-unused/pending.svg
1562
+ - assets/uswds/img/usa-icons-unused/pending_actions.svg
1563
+ - assets/uswds/img/usa-icons-unused/people_alt.svg
1564
+ - assets/uswds/img/usa-icons-unused/people_outline.svg
1565
+ - assets/uswds/img/usa-icons-unused/perm_camera_mic.svg
1566
+ - assets/uswds/img/usa-icons-unused/perm_contact_calendar.svg
1567
+ - assets/uswds/img/usa-icons-unused/perm_data_setting.svg
1568
+ - assets/uswds/img/usa-icons-unused/perm_device_information.svg
1569
+ - assets/uswds/img/usa-icons-unused/perm_identity.svg
1570
+ - assets/uswds/img/usa-icons-unused/perm_media.svg
1571
+ - assets/uswds/img/usa-icons-unused/perm_phone_msg.svg
1572
+ - assets/uswds/img/usa-icons-unused/perm_scan_wifi.svg
1573
+ - assets/uswds/img/usa-icons-unused/person_add.svg
1574
+ - assets/uswds/img/usa-icons-unused/person_add_alt.svg
1575
+ - assets/uswds/img/usa-icons-unused/person_add_alt_1.svg
1576
+ - assets/uswds/img/usa-icons-unused/person_add_disabled.svg
1577
+ - assets/uswds/img/usa-icons-unused/person_outline.svg
1578
+ - assets/uswds/img/usa-icons-unused/person_pin.svg
1579
+ - assets/uswds/img/usa-icons-unused/person_pin_circle.svg
1580
+ - assets/uswds/img/usa-icons-unused/person_remove.svg
1581
+ - assets/uswds/img/usa-icons-unused/person_remove_alt_1.svg
1582
+ - assets/uswds/img/usa-icons-unused/person_search.svg
1583
+ - assets/uswds/img/usa-icons-unused/personal_video.svg
1584
+ - assets/uswds/img/usa-icons-unused/pest_control.svg
1585
+ - assets/uswds/img/usa-icons-unused/pest_control_rodent.svg
1586
+ - assets/uswds/img/usa-icons-unused/phone_android.svg
1587
+ - assets/uswds/img/usa-icons-unused/phone_bluetooth_speaker.svg
1588
+ - assets/uswds/img/usa-icons-unused/phone_callback.svg
1589
+ - assets/uswds/img/usa-icons-unused/phone_disabled.svg
1590
+ - assets/uswds/img/usa-icons-unused/phone_enabled.svg
1591
+ - assets/uswds/img/usa-icons-unused/phone_forwarded.svg
1592
+ - assets/uswds/img/usa-icons-unused/phone_in_talk.svg
1593
+ - assets/uswds/img/usa-icons-unused/phone_iphone.svg
1594
+ - assets/uswds/img/usa-icons-unused/phone_locked.svg
1595
+ - assets/uswds/img/usa-icons-unused/phone_missed.svg
1596
+ - assets/uswds/img/usa-icons-unused/phone_paused.svg
1597
+ - assets/uswds/img/usa-icons-unused/phonelink.svg
1598
+ - assets/uswds/img/usa-icons-unused/phonelink_erase.svg
1599
+ - assets/uswds/img/usa-icons-unused/phonelink_lock.svg
1600
+ - assets/uswds/img/usa-icons-unused/phonelink_off.svg
1601
+ - assets/uswds/img/usa-icons-unused/phonelink_ring.svg
1602
+ - assets/uswds/img/usa-icons-unused/phonelink_setup.svg
1603
+ - assets/uswds/img/usa-icons-unused/photo.svg
1604
+ - assets/uswds/img/usa-icons-unused/photo_album.svg
1605
+ - assets/uswds/img/usa-icons-unused/photo_camera_back.svg
1606
+ - assets/uswds/img/usa-icons-unused/photo_camera_front.svg
1607
+ - assets/uswds/img/usa-icons-unused/photo_filter.svg
1608
+ - assets/uswds/img/usa-icons-unused/photo_library.svg
1609
+ - assets/uswds/img/usa-icons-unused/photo_size_select_actual.svg
1610
+ - assets/uswds/img/usa-icons-unused/photo_size_select_large.svg
1611
+ - assets/uswds/img/usa-icons-unused/photo_size_select_small.svg
1612
+ - assets/uswds/img/usa-icons-unused/picture_as_pdf.svg
1613
+ - assets/uswds/img/usa-icons-unused/picture_in_picture.svg
1614
+ - assets/uswds/img/usa-icons-unused/picture_in_picture_alt.svg
1615
+ - assets/uswds/img/usa-icons-unused/pie_chart.svg
1616
+ - assets/uswds/img/usa-icons-unused/pie_chart_outlined.svg
1617
+ - assets/uswds/img/usa-icons-unused/pin_drop.svg
1618
+ - assets/uswds/img/usa-icons-unused/pivot_table_chart.svg
1619
+ - assets/uswds/img/usa-icons-unused/place.svg
1620
+ - assets/uswds/img/usa-icons-unused/plagiarism.svg
1621
+ - assets/uswds/img/usa-icons-unused/play_arrow.svg
1622
+ - assets/uswds/img/usa-icons-unused/play_circle_filled.svg
1623
+ - assets/uswds/img/usa-icons-unused/play_circle_outline.svg
1624
+ - assets/uswds/img/usa-icons-unused/play_disabled.svg
1625
+ - assets/uswds/img/usa-icons-unused/play_for_work.svg
1626
+ - assets/uswds/img/usa-icons-unused/playlist_add.svg
1627
+ - assets/uswds/img/usa-icons-unused/playlist_add_check.svg
1628
+ - assets/uswds/img/usa-icons-unused/playlist_play.svg
1629
+ - assets/uswds/img/usa-icons-unused/plumbing.svg
1630
+ - assets/uswds/img/usa-icons-unused/plus_one.svg
1631
+ - assets/uswds/img/usa-icons-unused/point_of_sale.svg
1632
+ - assets/uswds/img/usa-icons-unused/policy.svg
1633
+ - assets/uswds/img/usa-icons-unused/poll.svg
1634
+ - assets/uswds/img/usa-icons-unused/polymer.svg
1635
+ - assets/uswds/img/usa-icons-unused/pool.svg
1636
+ - assets/uswds/img/usa-icons-unused/portable_wifi_off.svg
1637
+ - assets/uswds/img/usa-icons-unused/portrait.svg
1638
+ - assets/uswds/img/usa-icons-unused/post_add.svg
1639
+ - assets/uswds/img/usa-icons-unused/power.svg
1640
+ - assets/uswds/img/usa-icons-unused/power_input.svg
1641
+ - assets/uswds/img/usa-icons-unused/power_off.svg
1642
+ - assets/uswds/img/usa-icons-unused/power_settings_new.svg
1643
+ - assets/uswds/img/usa-icons-unused/pregnant_woman.svg
1644
+ - assets/uswds/img/usa-icons-unused/present_to_all.svg
1645
+ - assets/uswds/img/usa-icons-unused/preview.svg
1646
+ - assets/uswds/img/usa-icons-unused/print_disabled.svg
1647
+ - assets/uswds/img/usa-icons-unused/privacy_tip.svg
1648
+ - assets/uswds/img/usa-icons-unused/psychology.svg
1649
+ - assets/uswds/img/usa-icons-unused/public_off.svg
1650
+ - assets/uswds/img/usa-icons-unused/publish.svg
1651
+ - assets/uswds/img/usa-icons-unused/published_with_changes.svg
1652
+ - assets/uswds/img/usa-icons-unused/qr_code.svg
1653
+ - assets/uswds/img/usa-icons-unused/qr_code_2.svg
1654
+ - assets/uswds/img/usa-icons-unused/qr_code_scanner.svg
1655
+ - assets/uswds/img/usa-icons-unused/query_builder.svg
1656
+ - assets/uswds/img/usa-icons-unused/question_answer.svg
1657
+ - assets/uswds/img/usa-icons-unused/queue.svg
1658
+ - assets/uswds/img/usa-icons-unused/queue_music.svg
1659
+ - assets/uswds/img/usa-icons-unused/queue_play_next.svg
1660
+ - assets/uswds/img/usa-icons-unused/quickreply.svg
1661
+ - assets/uswds/img/usa-icons-unused/radio.svg
1662
+ - assets/uswds/img/usa-icons-unused/radio_button_checked.svg
1663
+ - assets/uswds/img/usa-icons-unused/railway_alert.svg
1664
+ - assets/uswds/img/usa-icons-unused/ramen_dining.svg
1665
+ - assets/uswds/img/usa-icons-unused/rate_review.svg
1666
+ - assets/uswds/img/usa-icons-unused/read_more.svg
1667
+ - assets/uswds/img/usa-icons-unused/receipt.svg
1668
+ - assets/uswds/img/usa-icons-unused/receipt_long.svg
1669
+ - assets/uswds/img/usa-icons-unused/recent_actors.svg
1670
+ - assets/uswds/img/usa-icons-unused/recommend.svg
1671
+ - assets/uswds/img/usa-icons-unused/record_voice_over.svg
1672
+ - assets/uswds/img/usa-icons-unused/redeem.svg
1673
+ - assets/uswds/img/usa-icons-unused/redo.svg
1674
+ - assets/uswds/img/usa-icons-unused/refresh.svg
1675
+ - assets/uswds/img/usa-icons-unused/remove_circle.svg
1676
+ - assets/uswds/img/usa-icons-unused/remove_circle_outline.svg
1677
+ - assets/uswds/img/usa-icons-unused/remove_done.svg
1678
+ - assets/uswds/img/usa-icons-unused/remove_from_queue.svg
1679
+ - assets/uswds/img/usa-icons-unused/remove_moderator.svg
1680
+ - assets/uswds/img/usa-icons-unused/remove_shopping_cart.svg
1681
+ - assets/uswds/img/usa-icons-unused/reorder.svg
1682
+ - assets/uswds/img/usa-icons-unused/repeat.svg
1683
+ - assets/uswds/img/usa-icons-unused/repeat_on.svg
1684
+ - assets/uswds/img/usa-icons-unused/repeat_one.svg
1685
+ - assets/uswds/img/usa-icons-unused/repeat_one_on.svg
1686
+ - assets/uswds/img/usa-icons-unused/replay.svg
1687
+ - assets/uswds/img/usa-icons-unused/replay_10.svg
1688
+ - assets/uswds/img/usa-icons-unused/replay_30.svg
1689
+ - assets/uswds/img/usa-icons-unused/replay_5.svg
1690
+ - assets/uswds/img/usa-icons-unused/replay_circle_filled.svg
1691
+ - assets/uswds/img/usa-icons-unused/reply.svg
1692
+ - assets/uswds/img/usa-icons-unused/reply_all.svg
1693
+ - assets/uswds/img/usa-icons-unused/report_off.svg
1694
+ - assets/uswds/img/usa-icons-unused/report_problem.svg
1695
+ - assets/uswds/img/usa-icons-unused/request_page.svg
1696
+ - assets/uswds/img/usa-icons-unused/request_quote.svg
1697
+ - assets/uswds/img/usa-icons-unused/reset_tv.svg
1698
+ - assets/uswds/img/usa-icons-unused/restaurant_menu.svg
1699
+ - assets/uswds/img/usa-icons-unused/restore.svg
1700
+ - assets/uswds/img/usa-icons-unused/restore_from_trash.svg
1701
+ - assets/uswds/img/usa-icons-unused/restore_page.svg
1702
+ - assets/uswds/img/usa-icons-unused/rice_bowl.svg
1703
+ - assets/uswds/img/usa-icons-unused/ring_volume.svg
1704
+ - assets/uswds/img/usa-icons-unused/roofing.svg
1705
+ - assets/uswds/img/usa-icons-unused/room.svg
1706
+ - assets/uswds/img/usa-icons-unused/room_preferences.svg
1707
+ - assets/uswds/img/usa-icons-unused/room_service.svg
1708
+ - assets/uswds/img/usa-icons-unused/rotate_90_degrees_ccw.svg
1709
+ - assets/uswds/img/usa-icons-unused/rotate_left.svg
1710
+ - assets/uswds/img/usa-icons-unused/rotate_right.svg
1711
+ - assets/uswds/img/usa-icons-unused/rounded_corner.svg
1712
+ - assets/uswds/img/usa-icons-unused/router.svg
1713
+ - assets/uswds/img/usa-icons-unused/rowing.svg
1714
+ - assets/uswds/img/usa-icons-unused/rtt.svg
1715
+ - assets/uswds/img/usa-icons-unused/rule.svg
1716
+ - assets/uswds/img/usa-icons-unused/rule_folder.svg
1717
+ - assets/uswds/img/usa-icons-unused/run_circle.svg
1718
+ - assets/uswds/img/usa-icons-unused/rv_hookup.svg
1719
+ - assets/uswds/img/usa-icons-unused/satellite.svg
1720
+ - assets/uswds/img/usa-icons-unused/save.svg
1721
+ - assets/uswds/img/usa-icons-unused/saved_search.svg
1722
+ - assets/uswds/img/usa-icons-unused/scanner.svg
1723
+ - assets/uswds/img/usa-icons-unused/scatter_plot.svg
1724
+ - assets/uswds/img/usa-icons-unused/schedule_send.svg
1725
+ - assets/uswds/img/usa-icons-unused/score.svg
1726
+ - assets/uswds/img/usa-icons-unused/screen_lock_landscape.svg
1727
+ - assets/uswds/img/usa-icons-unused/screen_lock_portrait.svg
1728
+ - assets/uswds/img/usa-icons-unused/screen_lock_rotation.svg
1729
+ - assets/uswds/img/usa-icons-unused/screen_rotation.svg
1730
+ - assets/uswds/img/usa-icons-unused/screen_search_desktop.svg
1731
+ - assets/uswds/img/usa-icons-unused/screen_share.svg
1732
+ - assets/uswds/img/usa-icons-unused/sd.svg
1733
+ - assets/uswds/img/usa-icons-unused/sd_card.svg
1734
+ - assets/uswds/img/usa-icons-unused/sd_storage.svg
1735
+ - assets/uswds/img/usa-icons-unused/search_off.svg
1736
+ - assets/uswds/img/usa-icons-unused/segment.svg
1737
+ - assets/uswds/img/usa-icons-unused/select_all.svg
1738
+ - assets/uswds/img/usa-icons-unused/self_improvement.svg
1739
+ - assets/uswds/img/usa-icons-unused/send_and_archive.svg
1740
+ - assets/uswds/img/usa-icons-unused/send_to_mobile.svg
1741
+ - assets/uswds/img/usa-icons-unused/sensor_door.svg
1742
+ - assets/uswds/img/usa-icons-unused/sensor_window.svg
1743
+ - assets/uswds/img/usa-icons-unused/sentiment_very_satisfied.svg
1744
+ - assets/uswds/img/usa-icons-unused/set_meal.svg
1745
+ - assets/uswds/img/usa-icons-unused/settings_applications.svg
1746
+ - assets/uswds/img/usa-icons-unused/settings_backup_restore.svg
1747
+ - assets/uswds/img/usa-icons-unused/settings_bluetooth.svg
1748
+ - assets/uswds/img/usa-icons-unused/settings_brightness.svg
1749
+ - assets/uswds/img/usa-icons-unused/settings_cell.svg
1750
+ - assets/uswds/img/usa-icons-unused/settings_ethernet.svg
1751
+ - assets/uswds/img/usa-icons-unused/settings_input_antenna.svg
1752
+ - assets/uswds/img/usa-icons-unused/settings_input_component.svg
1753
+ - assets/uswds/img/usa-icons-unused/settings_input_composite.svg
1754
+ - assets/uswds/img/usa-icons-unused/settings_input_hdmi.svg
1755
+ - assets/uswds/img/usa-icons-unused/settings_input_svideo.svg
1756
+ - assets/uswds/img/usa-icons-unused/settings_overscan.svg
1757
+ - assets/uswds/img/usa-icons-unused/settings_phone.svg
1758
+ - assets/uswds/img/usa-icons-unused/settings_power.svg
1759
+ - assets/uswds/img/usa-icons-unused/settings_remote.svg
1760
+ - assets/uswds/img/usa-icons-unused/settings_system_daydream.svg
1761
+ - assets/uswds/img/usa-icons-unused/settings_voice.svg
1762
+ - assets/uswds/img/usa-icons-unused/shop.svg
1763
+ - assets/uswds/img/usa-icons-unused/shop_two.svg
1764
+ - assets/uswds/img/usa-icons-unused/shopping_bag.svg
1765
+ - assets/uswds/img/usa-icons-unused/shopping_cart.svg
1766
+ - assets/uswds/img/usa-icons-unused/short_text.svg
1767
+ - assets/uswds/img/usa-icons-unused/show_chart.svg
1768
+ - assets/uswds/img/usa-icons-unused/shuffle.svg
1769
+ - assets/uswds/img/usa-icons-unused/shuffle_on.svg
1770
+ - assets/uswds/img/usa-icons-unused/shutter_speed.svg
1771
+ - assets/uswds/img/usa-icons-unused/sick.svg
1772
+ - assets/uswds/img/usa-icons-unused/signal_cellular_0_bar.svg
1773
+ - assets/uswds/img/usa-icons-unused/signal_cellular_4_bar.svg
1774
+ - assets/uswds/img/usa-icons-unused/signal_cellular_alt.svg
1775
+ - assets/uswds/img/usa-icons-unused/signal_cellular_connected_no_internet_4_bar.svg
1776
+ - assets/uswds/img/usa-icons-unused/signal_cellular_no_sim.svg
1777
+ - assets/uswds/img/usa-icons-unused/signal_cellular_null.svg
1778
+ - assets/uswds/img/usa-icons-unused/signal_cellular_off.svg
1779
+ - assets/uswds/img/usa-icons-unused/signal_wifi_0_bar.svg
1780
+ - assets/uswds/img/usa-icons-unused/signal_wifi_4_bar.svg
1781
+ - assets/uswds/img/usa-icons-unused/signal_wifi_4_bar_lock.svg
1782
+ - assets/uswds/img/usa-icons-unused/signal_wifi_off.svg
1783
+ - assets/uswds/img/usa-icons-unused/sim_card.svg
1784
+ - assets/uswds/img/usa-icons-unused/sim_card_alert.svg
1785
+ - assets/uswds/img/usa-icons-unused/single_bed.svg
1786
+ - assets/uswds/img/usa-icons-unused/skip_next.svg
1787
+ - assets/uswds/img/usa-icons-unused/skip_previous.svg
1788
+ - assets/uswds/img/usa-icons-unused/slideshow.svg
1789
+ - assets/uswds/img/usa-icons-unused/slow_motion_video.svg
1790
+ - assets/uswds/img/usa-icons-unused/smart_button.svg
1791
+ - assets/uswds/img/usa-icons-unused/smartphone.svg
1792
+ - assets/uswds/img/usa-icons-unused/smoke_free.svg
1793
+ - assets/uswds/img/usa-icons-unused/smoking_rooms.svg
1794
+ - assets/uswds/img/usa-icons-unused/sms.svg
1795
+ - assets/uswds/img/usa-icons-unused/sms_failed.svg
1796
+ - assets/uswds/img/usa-icons-unused/snippet_folder.svg
1797
+ - assets/uswds/img/usa-icons-unused/snooze.svg
1798
+ - assets/uswds/img/usa-icons-unused/sort.svg
1799
+ - assets/uswds/img/usa-icons-unused/sort_by_alpha.svg
1800
+ - assets/uswds/img/usa-icons-unused/source.svg
1801
+ - assets/uswds/img/usa-icons-unused/south.svg
1802
+ - assets/uswds/img/usa-icons-unused/south_east.svg
1803
+ - assets/uswds/img/usa-icons-unused/south_west.svg
1804
+ - assets/uswds/img/usa-icons-unused/spa.svg
1805
+ - assets/uswds/img/usa-icons-unused/space_bar.svg
1806
+ - assets/uswds/img/usa-icons-unused/speaker.svg
1807
+ - assets/uswds/img/usa-icons-unused/speaker_group.svg
1808
+ - assets/uswds/img/usa-icons-unused/speaker_notes.svg
1809
+ - assets/uswds/img/usa-icons-unused/speaker_notes_off.svg
1810
+ - assets/uswds/img/usa-icons-unused/speaker_phone.svg
1811
+ - assets/uswds/img/usa-icons-unused/speed.svg
1812
+ - assets/uswds/img/usa-icons-unused/sports.svg
1813
+ - assets/uswds/img/usa-icons-unused/sports_bar.svg
1814
+ - assets/uswds/img/usa-icons-unused/sports_baseball.svg
1815
+ - assets/uswds/img/usa-icons-unused/sports_basketball.svg
1816
+ - assets/uswds/img/usa-icons-unused/sports_cricket.svg
1817
+ - assets/uswds/img/usa-icons-unused/sports_esports.svg
1818
+ - assets/uswds/img/usa-icons-unused/sports_football.svg
1819
+ - assets/uswds/img/usa-icons-unused/sports_golf.svg
1820
+ - assets/uswds/img/usa-icons-unused/sports_handball.svg
1821
+ - assets/uswds/img/usa-icons-unused/sports_hockey.svg
1822
+ - assets/uswds/img/usa-icons-unused/sports_kabaddi.svg
1823
+ - assets/uswds/img/usa-icons-unused/sports_mma.svg
1824
+ - assets/uswds/img/usa-icons-unused/sports_motorsports.svg
1825
+ - assets/uswds/img/usa-icons-unused/sports_rugby.svg
1826
+ - assets/uswds/img/usa-icons-unused/sports_soccer.svg
1827
+ - assets/uswds/img/usa-icons-unused/sports_tennis.svg
1828
+ - assets/uswds/img/usa-icons-unused/sports_volleyball.svg
1829
+ - assets/uswds/img/usa-icons-unused/square_foot.svg
1830
+ - assets/uswds/img/usa-icons-unused/stacked_bar_chart.svg
1831
+ - assets/uswds/img/usa-icons-unused/stacked_line_chart.svg
1832
+ - assets/uswds/img/usa-icons-unused/stairs.svg
1833
+ - assets/uswds/img/usa-icons-unused/star_border.svg
1834
+ - assets/uswds/img/usa-icons-unused/star_rate.svg
1835
+ - assets/uswds/img/usa-icons-unused/stars.svg
1836
+ - assets/uswds/img/usa-icons-unused/stay_current_landscape.svg
1837
+ - assets/uswds/img/usa-icons-unused/stay_current_portrait.svg
1838
+ - assets/uswds/img/usa-icons-unused/stay_primary_landscape.svg
1839
+ - assets/uswds/img/usa-icons-unused/stay_primary_portrait.svg
1840
+ - assets/uswds/img/usa-icons-unused/sticky_note_2.svg
1841
+ - assets/uswds/img/usa-icons-unused/stop.svg
1842
+ - assets/uswds/img/usa-icons-unused/stop_circle.svg
1843
+ - assets/uswds/img/usa-icons-unused/stop_screen_share.svg
1844
+ - assets/uswds/img/usa-icons-unused/storage.svg
1845
+ - assets/uswds/img/usa-icons-unused/store_mall_directory.svg
1846
+ - assets/uswds/img/usa-icons-unused/storefront.svg
1847
+ - assets/uswds/img/usa-icons-unused/straighten.svg
1848
+ - assets/uswds/img/usa-icons-unused/stream.svg
1849
+ - assets/uswds/img/usa-icons-unused/streetview.svg
1850
+ - assets/uswds/img/usa-icons-unused/strikethrough_s.svg
1851
+ - assets/uswds/img/usa-icons-unused/stroller.svg
1852
+ - assets/uswds/img/usa-icons-unused/style.svg
1853
+ - assets/uswds/img/usa-icons-unused/subdirectory_arrow_left.svg
1854
+ - assets/uswds/img/usa-icons-unused/subdirectory_arrow_right.svg
1855
+ - assets/uswds/img/usa-icons-unused/subject.svg
1856
+ - assets/uswds/img/usa-icons-unused/subscript.svg
1857
+ - assets/uswds/img/usa-icons-unused/subscriptions.svg
1858
+ - assets/uswds/img/usa-icons-unused/subtitles.svg
1859
+ - assets/uswds/img/usa-icons-unused/subtitles_off.svg
1860
+ - assets/uswds/img/usa-icons-unused/subway.svg
1861
+ - assets/uswds/img/usa-icons-unused/superscript.svg
1862
+ - assets/uswds/img/usa-icons-unused/supervised_user_circle.svg
1863
+ - assets/uswds/img/usa-icons-unused/supervisor_account.svg
1864
+ - assets/uswds/img/usa-icons-unused/surround_sound.svg
1865
+ - assets/uswds/img/usa-icons-unused/swap_calls.svg
1866
+ - assets/uswds/img/usa-icons-unused/swap_horiz.svg
1867
+ - assets/uswds/img/usa-icons-unused/swap_horizontal_circle.svg
1868
+ - assets/uswds/img/usa-icons-unused/swap_vert.svg
1869
+ - assets/uswds/img/usa-icons-unused/swap_vertical_circle.svg
1870
+ - assets/uswds/img/usa-icons-unused/swipe.svg
1871
+ - assets/uswds/img/usa-icons-unused/switch_account.svg
1872
+ - assets/uswds/img/usa-icons-unused/switch_camera.svg
1873
+ - assets/uswds/img/usa-icons-unused/switch_left.svg
1874
+ - assets/uswds/img/usa-icons-unused/switch_right.svg
1875
+ - assets/uswds/img/usa-icons-unused/switch_video.svg
1876
+ - assets/uswds/img/usa-icons-unused/sync.svg
1877
+ - assets/uswds/img/usa-icons-unused/sync_alt.svg
1878
+ - assets/uswds/img/usa-icons-unused/sync_disabled.svg
1879
+ - assets/uswds/img/usa-icons-unused/sync_problem.svg
1880
+ - assets/uswds/img/usa-icons-unused/system_update.svg
1881
+ - assets/uswds/img/usa-icons-unused/system_update_alt.svg
1882
+ - assets/uswds/img/usa-icons-unused/tab.svg
1883
+ - assets/uswds/img/usa-icons-unused/tab_unselected.svg
1884
+ - assets/uswds/img/usa-icons-unused/table_chart.svg
1885
+ - assets/uswds/img/usa-icons-unused/table_rows.svg
1886
+ - assets/uswds/img/usa-icons-unused/table_view.svg
1887
+ - assets/uswds/img/usa-icons-unused/tablet.svg
1888
+ - assets/uswds/img/usa-icons-unused/tablet_android.svg
1889
+ - assets/uswds/img/usa-icons-unused/tablet_mac.svg
1890
+ - assets/uswds/img/usa-icons-unused/tag.svg
1891
+ - assets/uswds/img/usa-icons-unused/tag_faces.svg
1892
+ - assets/uswds/img/usa-icons-unused/takeout_dining.svg
1893
+ - assets/uswds/img/usa-icons-unused/tap_and_play.svg
1894
+ - assets/uswds/img/usa-icons-unused/tapas.svg
1895
+ - assets/uswds/img/usa-icons-unused/taxi_alert.svg
1896
+ - assets/uswds/img/usa-icons-unused/terrain.svg
1897
+ - assets/uswds/img/usa-icons-unused/text_format.svg
1898
+ - assets/uswds/img/usa-icons-unused/text_rotate_up.svg
1899
+ - assets/uswds/img/usa-icons-unused/text_rotate_vertical.svg
1900
+ - assets/uswds/img/usa-icons-unused/text_rotation_angledown.svg
1901
+ - assets/uswds/img/usa-icons-unused/text_rotation_angleup.svg
1902
+ - assets/uswds/img/usa-icons-unused/text_rotation_down.svg
1903
+ - assets/uswds/img/usa-icons-unused/text_rotation_none.svg
1904
+ - assets/uswds/img/usa-icons-unused/text_snippet.svg
1905
+ - assets/uswds/img/usa-icons-unused/textsms.svg
1906
+ - assets/uswds/img/usa-icons-unused/texture.svg
1907
+ - assets/uswds/img/usa-icons-unused/theater_comedy.svg
1908
+ - assets/uswds/img/usa-icons-unused/theaters.svg
1909
+ - assets/uswds/img/usa-icons-unused/thumb_down.svg
1910
+ - assets/uswds/img/usa-icons-unused/thumb_down_alt.svg
1911
+ - assets/uswds/img/usa-icons-unused/thumb_up.svg
1912
+ - assets/uswds/img/usa-icons-unused/thumb_up_off_alt.svg
1913
+ - assets/uswds/img/usa-icons-unused/thumbs_up_down.svg
1914
+ - assets/uswds/img/usa-icons-unused/time_to_leave.svg
1915
+ - assets/uswds/img/usa-icons-unused/timelapse.svg
1916
+ - assets/uswds/img/usa-icons-unused/timeline.svg
1917
+ - assets/uswds/img/usa-icons-unused/timer_10.svg
1918
+ - assets/uswds/img/usa-icons-unused/timer_3.svg
1919
+ - assets/uswds/img/usa-icons-unused/timer_off.svg
1920
+ - assets/uswds/img/usa-icons-unused/title.svg
1921
+ - assets/uswds/img/usa-icons-unused/toc.svg
1922
+ - assets/uswds/img/usa-icons-unused/today.svg
1923
+ - assets/uswds/img/usa-icons-unused/toll.svg
1924
+ - assets/uswds/img/usa-icons-unused/tonality.svg
1925
+ - assets/uswds/img/usa-icons-unused/touch_app.svg
1926
+ - assets/uswds/img/usa-icons-unused/tour.svg
1927
+ - assets/uswds/img/usa-icons-unused/toys.svg
1928
+ - assets/uswds/img/usa-icons-unused/track_changes.svg
1929
+ - assets/uswds/img/usa-icons-unused/traffic.svg
1930
+ - assets/uswds/img/usa-icons-unused/train.svg
1931
+ - assets/uswds/img/usa-icons-unused/tram.svg
1932
+ - assets/uswds/img/usa-icons-unused/transfer_within_a_station.svg
1933
+ - assets/uswds/img/usa-icons-unused/transform.svg
1934
+ - assets/uswds/img/usa-icons-unused/transit_enterexit.svg
1935
+ - assets/uswds/img/usa-icons-unused/trending_flat.svg
1936
+ - assets/uswds/img/usa-icons-unused/trip_origin.svg
1937
+ - assets/uswds/img/usa-icons-unused/tty.svg
1938
+ - assets/uswds/img/usa-icons-unused/tune.svg
1939
+ - assets/uswds/img/usa-icons-unused/turned_in.svg
1940
+ - assets/uswds/img/usa-icons-unused/turned_in_not.svg
1941
+ - assets/uswds/img/usa-icons-unused/tv.svg
1942
+ - assets/uswds/img/usa-icons-unused/tv_off.svg
1943
+ - assets/uswds/img/usa-icons-unused/two_wheeler.svg
1944
+ - assets/uswds/img/usa-icons-unused/umbrella.svg
1945
+ - assets/uswds/img/usa-icons-unused/unarchive.svg
1946
+ - assets/uswds/img/usa-icons-unused/unpublished.svg
1947
+ - assets/uswds/img/usa-icons-unused/unsubscribe.svg
1948
+ - assets/uswds/img/usa-icons-unused/update_disabled.svg
1949
+ - assets/uswds/img/usa-icons-unused/upgrade.svg
1950
+ - assets/uswds/img/usa-icons-unused/usb.svg
1951
+ - assets/uswds/img/usa-icons-unused/vertical_align_bottom.svg
1952
+ - assets/uswds/img/usa-icons-unused/vertical_align_center.svg
1953
+ - assets/uswds/img/usa-icons-unused/vertical_align_top.svg
1954
+ - assets/uswds/img/usa-icons-unused/vertical_distribute.svg
1955
+ - assets/uswds/img/usa-icons-unused/vertical_split.svg
1956
+ - assets/uswds/img/usa-icons-unused/vibration.svg
1957
+ - assets/uswds/img/usa-icons-unused/video_call.svg
1958
+ - assets/uswds/img/usa-icons-unused/video_label.svg
1959
+ - assets/uswds/img/usa-icons-unused/video_library.svg
1960
+ - assets/uswds/img/usa-icons-unused/video_settings.svg
1961
+ - assets/uswds/img/usa-icons-unused/videocam.svg
1962
+ - assets/uswds/img/usa-icons-unused/videocam_off.svg
1963
+ - assets/uswds/img/usa-icons-unused/videogame_asset.svg
1964
+ - assets/uswds/img/usa-icons-unused/view_agenda.svg
1965
+ - assets/uswds/img/usa-icons-unused/view_array.svg
1966
+ - assets/uswds/img/usa-icons-unused/view_carousel.svg
1967
+ - assets/uswds/img/usa-icons-unused/view_column.svg
1968
+ - assets/uswds/img/usa-icons-unused/view_comfy.svg
1969
+ - assets/uswds/img/usa-icons-unused/view_compact.svg
1970
+ - assets/uswds/img/usa-icons-unused/view_day.svg
1971
+ - assets/uswds/img/usa-icons-unused/view_headline.svg
1972
+ - assets/uswds/img/usa-icons-unused/view_in_ar.svg
1973
+ - assets/uswds/img/usa-icons-unused/view_list.svg
1974
+ - assets/uswds/img/usa-icons-unused/view_module.svg
1975
+ - assets/uswds/img/usa-icons-unused/view_quilt.svg
1976
+ - assets/uswds/img/usa-icons-unused/view_sidebar.svg
1977
+ - assets/uswds/img/usa-icons-unused/view_stream.svg
1978
+ - assets/uswds/img/usa-icons-unused/view_week.svg
1979
+ - assets/uswds/img/usa-icons-unused/vignette.svg
1980
+ - assets/uswds/img/usa-icons-unused/voice_chat.svg
1981
+ - assets/uswds/img/usa-icons-unused/voice_over_off.svg
1982
+ - assets/uswds/img/usa-icons-unused/voicemail.svg
1983
+ - assets/uswds/img/usa-icons-unused/volume_down.svg
1984
+ - assets/uswds/img/usa-icons-unused/volume_mute.svg
1985
+ - assets/uswds/img/usa-icons-unused/volume_up.svg
1986
+ - assets/uswds/img/usa-icons-unused/volunteer_activism.svg
1987
+ - assets/uswds/img/usa-icons-unused/vpn_key.svg
1988
+ - assets/uswds/img/usa-icons-unused/vpn_lock.svg
1989
+ - assets/uswds/img/usa-icons-unused/wallpaper.svg
1990
+ - assets/uswds/img/usa-icons-unused/watch.svg
1991
+ - assets/uswds/img/usa-icons-unused/watch_later.svg
1992
+ - assets/uswds/img/usa-icons-unused/water_damage.svg
1993
+ - assets/uswds/img/usa-icons-unused/waterfall_chart.svg
1994
+ - assets/uswds/img/usa-icons-unused/waves.svg
1995
+ - assets/uswds/img/usa-icons-unused/wb_auto.svg
1996
+ - assets/uswds/img/usa-icons-unused/wb_cloudy.svg
1997
+ - assets/uswds/img/usa-icons-unused/wb_incandescent.svg
1998
+ - assets/uswds/img/usa-icons-unused/wb_iridescent.svg
1999
+ - assets/uswds/img/usa-icons-unused/wb_shade.svg
2000
+ - assets/uswds/img/usa-icons-unused/wb_sunny.svg
2001
+ - assets/uswds/img/usa-icons-unused/wb_twighlight.svg
2002
+ - assets/uswds/img/usa-icons-unused/wc.svg
2003
+ - assets/uswds/img/usa-icons-unused/web.svg
2004
+ - assets/uswds/img/usa-icons-unused/web_asset.svg
2005
+ - assets/uswds/img/usa-icons-unused/weekend.svg
2006
+ - assets/uswds/img/usa-icons-unused/west.svg
2007
+ - assets/uswds/img/usa-icons-unused/whatshot.svg
2008
+ - assets/uswds/img/usa-icons-unused/wheelchair_pickup.svg
2009
+ - assets/uswds/img/usa-icons-unused/where_to_vote.svg
2010
+ - assets/uswds/img/usa-icons-unused/widgets.svg
2011
+ - assets/uswds/img/usa-icons-unused/wifi_calling.svg
2012
+ - assets/uswds/img/usa-icons-unused/wifi_lock.svg
2013
+ - assets/uswds/img/usa-icons-unused/wifi_off.svg
2014
+ - assets/uswds/img/usa-icons-unused/wifi_protected_setup.svg
2015
+ - assets/uswds/img/usa-icons-unused/wifi_tethering.svg
2016
+ - assets/uswds/img/usa-icons-unused/wine_bar.svg
2017
+ - assets/uswds/img/usa-icons-unused/work_off.svg
2018
+ - assets/uswds/img/usa-icons-unused/work_outline.svg
2019
+ - assets/uswds/img/usa-icons-unused/workspaces_filled.svg
2020
+ - assets/uswds/img/usa-icons-unused/workspaces_outline.svg
2021
+ - assets/uswds/img/usa-icons-unused/wrap_text.svg
2022
+ - assets/uswds/img/usa-icons-unused/wrong_location.svg
2023
+ - assets/uswds/img/usa-icons-unused/wysiwyg.svg
2024
+ - assets/uswds/img/usa-icons-unused/youtube_searched_for.svg
2025
+ - assets/uswds/img/usa-icons/accessibility_new.svg
2026
+ - assets/uswds/img/usa-icons/accessible_forward.svg
2027
+ - assets/uswds/img/usa-icons/account_balance.svg
2028
+ - assets/uswds/img/usa-icons/account_box.svg
2029
+ - assets/uswds/img/usa-icons/account_circle.svg
2030
+ - assets/uswds/img/usa-icons/add.svg
2031
+ - assets/uswds/img/usa-icons/add_circle.svg
2032
+ - assets/uswds/img/usa-icons/add_circle_outline.svg
2033
+ - assets/uswds/img/usa-icons/alarm.svg
2034
+ - assets/uswds/img/usa-icons/alternate_email.svg
2035
+ - assets/uswds/img/usa-icons/announcement.svg
2036
+ - assets/uswds/img/usa-icons/api.svg
2037
+ - assets/uswds/img/usa-icons/arrow_back.svg
2038
+ - assets/uswds/img/usa-icons/arrow_downward.svg
2039
+ - assets/uswds/img/usa-icons/arrow_drop_down.svg
2040
+ - assets/uswds/img/usa-icons/arrow_drop_up.svg
2041
+ - assets/uswds/img/usa-icons/arrow_forward.svg
2042
+ - assets/uswds/img/usa-icons/arrow_upward.svg
2043
+ - assets/uswds/img/usa-icons/assessment.svg
2044
+ - assets/uswds/img/usa-icons/attach_file.svg
2045
+ - assets/uswds/img/usa-icons/attach_money.svg
2046
+ - assets/uswds/img/usa-icons/autorenew.svg
2047
+ - assets/uswds/img/usa-icons/backpack.svg
2048
+ - assets/uswds/img/usa-icons/bathtub.svg
2049
+ - assets/uswds/img/usa-icons/bedding.svg
2050
+ - assets/uswds/img/usa-icons/bookmark.svg
2051
+ - assets/uswds/img/usa-icons/bug_report.svg
2052
+ - assets/uswds/img/usa-icons/build.svg
2053
+ - assets/uswds/img/usa-icons/calendar_today.svg
2054
+ - assets/uswds/img/usa-icons/campaign.svg
2055
+ - assets/uswds/img/usa-icons/camping.svg
2056
+ - assets/uswds/img/usa-icons/cancel.svg
2057
+ - assets/uswds/img/usa-icons/chat.svg
2058
+ - assets/uswds/img/usa-icons/check.svg
2059
+ - assets/uswds/img/usa-icons/check_box_outline_blank.svg
2060
+ - assets/uswds/img/usa-icons/check_circle.svg
2061
+ - assets/uswds/img/usa-icons/check_circle_outline.svg
2062
+ - assets/uswds/img/usa-icons/checkroom.svg
2063
+ - assets/uswds/img/usa-icons/chevron_left.svg
2064
+ - assets/uswds/img/usa-icons/chevron_right.svg
2065
+ - assets/uswds/img/usa-icons/clean_hands.svg
2066
+ - assets/uswds/img/usa-icons/close.svg
2067
+ - assets/uswds/img/usa-icons/closed_caption.svg
2068
+ - assets/uswds/img/usa-icons/clothes.svg
2069
+ - assets/uswds/img/usa-icons/cloud.svg
2070
+ - assets/uswds/img/usa-icons/code.svg
2071
+ - assets/uswds/img/usa-icons/comment.svg
2072
+ - assets/uswds/img/usa-icons/connect_without_contact.svg
2073
+ - assets/uswds/img/usa-icons/construction.svg
2074
+ - assets/uswds/img/usa-icons/construction_worker.svg
2075
+ - assets/uswds/img/usa-icons/contact_page.svg
2076
+ - assets/uswds/img/usa-icons/content_copy.svg
2077
+ - assets/uswds/img/usa-icons/coronavirus.svg
2078
+ - assets/uswds/img/usa-icons/credit_card.svg
2079
+ - assets/uswds/img/usa-icons/deck.svg
2080
+ - assets/uswds/img/usa-icons/delete.svg
2081
+ - assets/uswds/img/usa-icons/device_thermostat.svg
2082
+ - assets/uswds/img/usa-icons/directions.svg
2083
+ - assets/uswds/img/usa-icons/directions_bike.svg
2084
+ - assets/uswds/img/usa-icons/directions_bus.svg
2085
+ - assets/uswds/img/usa-icons/directions_car.svg
2086
+ - assets/uswds/img/usa-icons/directions_walk.svg
2087
+ - assets/uswds/img/usa-icons/do_not_disturb.svg
2088
+ - assets/uswds/img/usa-icons/do_not_touch.svg
2089
+ - assets/uswds/img/usa-icons/drag_handle.svg
2090
+ - assets/uswds/img/usa-icons/eco.svg
2091
+ - assets/uswds/img/usa-icons/edit.svg
2092
+ - assets/uswds/img/usa-icons/electrical_services.svg
2093
+ - assets/uswds/img/usa-icons/emoji_events.svg
2094
+ - assets/uswds/img/usa-icons/error.svg
2095
+ - assets/uswds/img/usa-icons/error_outline.svg
2096
+ - assets/uswds/img/usa-icons/event.svg
2097
+ - assets/uswds/img/usa-icons/expand_less.svg
2098
+ - assets/uswds/img/usa-icons/expand_more.svg
2099
+ - assets/uswds/img/usa-icons/facebook.svg
2100
+ - assets/uswds/img/usa-icons/fast_forward.svg
2101
+ - assets/uswds/img/usa-icons/fast_rewind.svg
2102
+ - assets/uswds/img/usa-icons/favorite.svg
2103
+ - assets/uswds/img/usa-icons/favorite_border.svg
2104
+ - assets/uswds/img/usa-icons/file_download.svg
2105
+ - assets/uswds/img/usa-icons/file_present.svg
2106
+ - assets/uswds/img/usa-icons/file_upload.svg
2107
+ - assets/uswds/img/usa-icons/filter_alt.svg
2108
+ - assets/uswds/img/usa-icons/filter_list.svg
2109
+ - assets/uswds/img/usa-icons/fingerprint.svg
2110
+ - assets/uswds/img/usa-icons/first_page.svg
2111
+ - assets/uswds/img/usa-icons/flag.svg
2112
+ - assets/uswds/img/usa-icons/flickr.svg
2113
+ - assets/uswds/img/usa-icons/flight.svg
2114
+ - assets/uswds/img/usa-icons/flooding.svg
2115
+ - assets/uswds/img/usa-icons/folder.svg
2116
+ - assets/uswds/img/usa-icons/folder_open.svg
2117
+ - assets/uswds/img/usa-icons/format_quote.svg
2118
+ - assets/uswds/img/usa-icons/format_size.svg
2119
+ - assets/uswds/img/usa-icons/forum.svg
2120
+ - assets/uswds/img/usa-icons/github.svg
2121
+ - assets/uswds/img/usa-icons/grid_view.svg
2122
+ - assets/uswds/img/usa-icons/group_add.svg
2123
+ - assets/uswds/img/usa-icons/groups.svg
2124
+ - assets/uswds/img/usa-icons/hearing.svg
2125
+ - assets/uswds/img/usa-icons/help.svg
2126
+ - assets/uswds/img/usa-icons/help_outline.svg
2127
+ - assets/uswds/img/usa-icons/highlight_off.svg
2128
+ - assets/uswds/img/usa-icons/history.svg
2129
+ - assets/uswds/img/usa-icons/home.svg
2130
+ - assets/uswds/img/usa-icons/hospital.svg
2131
+ - assets/uswds/img/usa-icons/hotel.svg
2132
+ - assets/uswds/img/usa-icons/hourglass_empty.svg
2133
+ - assets/uswds/img/usa-icons/hurricane.svg
2134
+ - assets/uswds/img/usa-icons/identification.svg
2135
+ - assets/uswds/img/usa-icons/image.svg
2136
+ - assets/uswds/img/usa-icons/info.svg
2137
+ - assets/uswds/img/usa-icons/info_outline.svg
2138
+ - assets/uswds/img/usa-icons/insights.svg
2139
+ - assets/uswds/img/usa-icons/instagram.svg
2140
+ - assets/uswds/img/usa-icons/keyboard.svg
2141
+ - assets/uswds/img/usa-icons/label.svg
2142
+ - assets/uswds/img/usa-icons/language.svg
2143
+ - assets/uswds/img/usa-icons/last_page.svg
2144
+ - assets/uswds/img/usa-icons/launch.svg
2145
+ - assets/uswds/img/usa-icons/lightbulb.svg
2146
+ - assets/uswds/img/usa-icons/lightbulb_outline.svg
2147
+ - assets/uswds/img/usa-icons/link.svg
2148
+ - assets/uswds/img/usa-icons/link_off.svg
2149
+ - assets/uswds/img/usa-icons/list.svg
2150
+ - assets/uswds/img/usa-icons/local_cafe.svg
2151
+ - assets/uswds/img/usa-icons/local_fire_department.svg
2152
+ - assets/uswds/img/usa-icons/local_gas_station.svg
2153
+ - assets/uswds/img/usa-icons/local_grocery_store.svg
2154
+ - assets/uswds/img/usa-icons/local_hospital.svg
2155
+ - assets/uswds/img/usa-icons/local_laundry_service.svg
2156
+ - assets/uswds/img/usa-icons/local_library.svg
2157
+ - assets/uswds/img/usa-icons/local_offer.svg
2158
+ - assets/uswds/img/usa-icons/local_parking.svg
2159
+ - assets/uswds/img/usa-icons/local_pharmacy.svg
2160
+ - assets/uswds/img/usa-icons/local_police.svg
2161
+ - assets/uswds/img/usa-icons/local_taxi.svg
2162
+ - assets/uswds/img/usa-icons/location_city.svg
2163
+ - assets/uswds/img/usa-icons/location_on.svg
2164
+ - assets/uswds/img/usa-icons/lock.svg
2165
+ - assets/uswds/img/usa-icons/lock_open.svg
2166
+ - assets/uswds/img/usa-icons/lock_outline.svg
2167
+ - assets/uswds/img/usa-icons/login.svg
2168
+ - assets/uswds/img/usa-icons/logout.svg
2169
+ - assets/uswds/img/usa-icons/loop.svg
2170
+ - assets/uswds/img/usa-icons/mail.svg
2171
+ - assets/uswds/img/usa-icons/mail_outline.svg
2172
+ - assets/uswds/img/usa-icons/map.svg
2173
+ - assets/uswds/img/usa-icons/masks.svg
2174
+ - assets/uswds/img/usa-icons/medical_services.svg
2175
+ - assets/uswds/img/usa-icons/menu.svg
2176
+ - assets/uswds/img/usa-icons/military_tech.svg
2177
+ - assets/uswds/img/usa-icons/more_horiz.svg
2178
+ - assets/uswds/img/usa-icons/more_vert.svg
2179
+ - assets/uswds/img/usa-icons/my_location.svg
2180
+ - assets/uswds/img/usa-icons/navigate_before.svg
2181
+ - assets/uswds/img/usa-icons/navigate_far_before.svg
2182
+ - assets/uswds/img/usa-icons/navigate_far_next.svg
2183
+ - assets/uswds/img/usa-icons/navigate_next.svg
2184
+ - assets/uswds/img/usa-icons/near_me.svg
2185
+ - assets/uswds/img/usa-icons/notifications.svg
2186
+ - assets/uswds/img/usa-icons/notifications_active.svg
2187
+ - assets/uswds/img/usa-icons/notifications_none.svg
2188
+ - assets/uswds/img/usa-icons/notifications_off.svg
2189
+ - assets/uswds/img/usa-icons/park.svg
2190
+ - assets/uswds/img/usa-icons/people.svg
2191
+ - assets/uswds/img/usa-icons/person.svg
2192
+ - assets/uswds/img/usa-icons/pets.svg
2193
+ - assets/uswds/img/usa-icons/phone.svg
2194
+ - assets/uswds/img/usa-icons/photo_camera.svg
2195
+ - assets/uswds/img/usa-icons/print.svg
2196
+ - assets/uswds/img/usa-icons/priority_high.svg
2197
+ - assets/uswds/img/usa-icons/public.svg
2198
+ - assets/uswds/img/usa-icons/push_pin.svg
2199
+ - assets/uswds/img/usa-icons/radio_button_unchecked.svg
2200
+ - assets/uswds/img/usa-icons/rain.svg
2201
+ - assets/uswds/img/usa-icons/reduce_capacity.svg
2202
+ - assets/uswds/img/usa-icons/remove.svg
2203
+ - assets/uswds/img/usa-icons/remove_red_eye.svg
2204
+ - assets/uswds/img/usa-icons/report.svg
2205
+ - assets/uswds/img/usa-icons/restaurant.svg
2206
+ - assets/uswds/img/usa-icons/rss_feed.svg
2207
+ - assets/uswds/img/usa-icons/safety_divider.svg
2208
+ - assets/uswds/img/usa-icons/sanitizer.svg
2209
+ - assets/uswds/img/usa-icons/save_alt.svg
2210
+ - assets/uswds/img/usa-icons/schedule.svg
2211
+ - assets/uswds/img/usa-icons/school.svg
2212
+ - assets/uswds/img/usa-icons/science.svg
2213
+ - assets/uswds/img/usa-icons/search.svg
2214
+ - assets/uswds/img/usa-icons/security.svg
2215
+ - assets/uswds/img/usa-icons/send.svg
2216
+ - assets/uswds/img/usa-icons/sentiment_dissatisfied.svg
2217
+ - assets/uswds/img/usa-icons/sentiment_neutral.svg
2218
+ - assets/uswds/img/usa-icons/sentiment_satisfied.svg
2219
+ - assets/uswds/img/usa-icons/sentiment_satisfied_alt.svg
2220
+ - assets/uswds/img/usa-icons/sentiment_very_dissatisfied.svg
2221
+ - assets/uswds/img/usa-icons/settings.svg
2222
+ - assets/uswds/img/usa-icons/severe_weather.svg
2223
+ - assets/uswds/img/usa-icons/share.svg
2224
+ - assets/uswds/img/usa-icons/shield.svg
2225
+ - assets/uswds/img/usa-icons/shopping_basket.svg
2226
+ - assets/uswds/img/usa-icons/snow.svg
2227
+ - assets/uswds/img/usa-icons/soap.svg
2228
+ - assets/uswds/img/usa-icons/social_distance.svg
2229
+ - assets/uswds/img/usa-icons/sort_arrow.svg
2230
+ - assets/uswds/img/usa-icons/spellcheck.svg
2231
+ - assets/uswds/img/usa-icons/star.svg
2232
+ - assets/uswds/img/usa-icons/star_half.svg
2233
+ - assets/uswds/img/usa-icons/star_outline.svg
2234
+ - assets/uswds/img/usa-icons/store.svg
2235
+ - assets/uswds/img/usa-icons/support.svg
2236
+ - assets/uswds/img/usa-icons/support_agent.svg
2237
+ - assets/uswds/img/usa-icons/text_fields.svg
2238
+ - assets/uswds/img/usa-icons/thumb_down_off_alt.svg
2239
+ - assets/uswds/img/usa-icons/thumb_up_alt.svg
2240
+ - assets/uswds/img/usa-icons/timer.svg
2241
+ - assets/uswds/img/usa-icons/toggle_off.svg
2242
+ - assets/uswds/img/usa-icons/toggle_on.svg
2243
+ - assets/uswds/img/usa-icons/topic.svg
2244
+ - assets/uswds/img/usa-icons/tornado.svg
2245
+ - assets/uswds/img/usa-icons/translate.svg
2246
+ - assets/uswds/img/usa-icons/trending_down.svg
2247
+ - assets/uswds/img/usa-icons/trending_up.svg
2248
+ - assets/uswds/img/usa-icons/twitter.svg
2249
+ - assets/uswds/img/usa-icons/undo.svg
2250
+ - assets/uswds/img/usa-icons/unfold_less.svg
2251
+ - assets/uswds/img/usa-icons/unfold_more.svg
2252
+ - assets/uswds/img/usa-icons/update.svg
2253
+ - assets/uswds/img/usa-icons/upload_file.svg
2254
+ - assets/uswds/img/usa-icons/verified.svg
2255
+ - assets/uswds/img/usa-icons/verified_user.svg
2256
+ - assets/uswds/img/usa-icons/visibility.svg
2257
+ - assets/uswds/img/usa-icons/visibility_off.svg
2258
+ - assets/uswds/img/usa-icons/volume_off.svg
2259
+ - assets/uswds/img/usa-icons/warning.svg
2260
+ - assets/uswds/img/usa-icons/wash.svg
2261
+ - assets/uswds/img/usa-icons/wifi.svg
2262
+ - assets/uswds/img/usa-icons/work.svg
2263
+ - assets/uswds/img/usa-icons/youtube.svg
2264
+ - assets/uswds/img/usa-icons/zoom_in.svg
2265
+ - assets/uswds/img/usa-icons/zoom_out.svg
2266
+ - assets/uswds/img/usa-icons/zoom_out_map.svg
2267
+ - assets/uswds/js/uswds-init.js
2268
+ - assets/uswds/js/uswds-init.min.js
2269
+ - assets/uswds/js/uswds-init.min.js.map
709
2270
  - assets/uswds/js/uswds.js
710
2271
  - assets/uswds/js/uswds.min.js
711
2272
  - assets/uswds/js/uswds.min.js.map
@@ -728,7 +2289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
728
2289
  - !ruby/object:Gem::Version
729
2290
  version: '0'
730
2291
  requirements: []
731
- rubygems_version: 3.2.6
2292
+ rubygems_version: 3.2.16
732
2293
  signing_key:
733
2294
  specification_version: 4
734
2295
  summary: A Jekyll theme for the U.S. Web Design System.