@ogds/elements 1.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/.storybook/UswdsTheme.js +11 -0
  2. package/.storybook/blocks/SiteNote.jsx +5 -0
  3. package/.storybook/main.js +38 -0
  4. package/.storybook/manager.js +6 -0
  5. package/.storybook/preview.js +37 -0
  6. package/.storybook/test-runner.js +23 -0
  7. package/README.md +201 -0
  8. package/build/css/breakpoints.css +15 -0
  9. package/build/css/colors.css +490 -0
  10. package/build/css/spacing.css +16 -0
  11. package/build/scss/_breakpoints.scss +12 -0
  12. package/build/scss/_colors.scss +487 -0
  13. package/build/scss/_spacing.scss +13 -0
  14. package/dist/components/frameworks/react/OgdsAccordion.d.ts +69 -0
  15. package/dist/components/frameworks/react/OgdsAccordion.js +22 -0
  16. package/dist/components/frameworks/react/OgdsAccordionToggle.d.ts +60 -0
  17. package/dist/components/frameworks/react/OgdsAccordionToggle.js +23 -0
  18. package/dist/components/frameworks/react/UsaBanner.d.ts +82 -0
  19. package/dist/components/frameworks/react/UsaBanner.js +25 -0
  20. package/dist/components/frameworks/react/UsaLink.d.ts +60 -0
  21. package/dist/components/frameworks/react/UsaLink.js +21 -0
  22. package/dist/components/frameworks/react/index.d.ts +4 -0
  23. package/dist/components/frameworks/react/index.js +4 -0
  24. package/dist/components/frameworks/react/react-utils.js +34 -0
  25. package/dist/components/index.cjs +1 -0
  26. package/dist/components/index.cjs.map +1 -0
  27. package/dist/components/index.d.ts +3 -0
  28. package/dist/components/index.js +6 -0
  29. package/dist/components/index.js.map +1 -0
  30. package/dist/components/usa-banner/index.d.ts +82 -0
  31. package/dist/components/usa-banner/usa-banner.spec.d.ts +0 -0
  32. package/dist/components/usa-banner/usa-banner.stories.d.ts +95 -0
  33. package/dist/components/usa-banner.cjs +95 -0
  34. package/dist/components/usa-banner.cjs.map +1 -0
  35. package/dist/components/usa-banner.js +189 -0
  36. package/dist/components/usa-banner.js.map +1 -0
  37. package/dist/components/usa-header/index.d.ts +6 -0
  38. package/dist/components/usa-link/index.d.ts +30 -0
  39. package/dist/components/usa-link/usa-link.spec.d.ts +0 -0
  40. package/dist/components/usa-link.cjs +5 -0
  41. package/dist/components/usa-link.cjs.map +1 -0
  42. package/dist/components/usa-link.js +32 -0
  43. package/dist/components/usa-link.js.map +1 -0
  44. package/dist/core/OgdsElement.d.ts +3 -0
  45. package/dist/index-7kIMQwBw.cjs +1 -0
  46. package/dist/index-7kIMQwBw.cjs.map +1 -0
  47. package/dist/index-BrHk1-6T.js +10 -0
  48. package/dist/index-BrHk1-6T.js.map +1 -0
  49. package/dist/types/custom-element-jsx.d.ts +175 -0
  50. package/dist/types/custom-element-solidjs.d.ts +185 -0
  51. package/dist/types/custom-element-svelte.d.ts +157 -0
  52. package/dist/types/custom-element-vuejs.d.ts +127 -0
  53. package/dist/utils/index.d.ts +1 -0
  54. package/dist/utils/index.test.d.ts +1 -0
  55. package/package.json +119 -0
  56. package/src/components/index.ts +5 -0
  57. package/src/components/ogds-accordion/.claude/settings.local.json +7 -0
  58. package/src/components/ogds-accordion/docs.mdx +90 -0
  59. package/src/components/ogds-accordion/index.ts +132 -0
  60. package/src/components/ogds-accordion/ogds-accordion.css +99 -0
  61. package/src/components/ogds-accordion/ogds-accordion.spec.ts +175 -0
  62. package/src/components/ogds-accordion/ogds-accordion.stories.ts +77 -0
  63. package/src/components/ogds-accordion-toggle/index.ts +80 -0
  64. package/src/components/usa-banner/docs.mdx +108 -0
  65. package/src/components/usa-banner/index.ts +290 -0
  66. package/src/components/usa-banner/usa-banner.css +511 -0
  67. package/src/components/usa-banner/usa-banner.spec.ts +76 -0
  68. package/src/components/usa-banner/usa-banner.stories.ts +136 -0
  69. package/src/components/usa-header/index.ts +50 -0
  70. package/src/components/usa-header/usa-header.css +1 -0
  71. package/src/components/usa-link/index.ts +66 -0
  72. package/src/components/usa-link/usa-link.css +24 -0
  73. package/src/components/usa-link/usa-link.spec.ts +50 -0
  74. package/src/core/colors.css +8 -0
  75. package/src/core/fonts.css +213 -0
  76. package/src/core/index.css +2 -0
  77. package/src/core/token-styles.ts +26 -0
  78. package/src/declaration.d.ts +75 -0
  79. package/src/shared/icons/accessibility_new.svg +1 -0
  80. package/src/shared/icons/accessible_forward.svg +1 -0
  81. package/src/shared/icons/account_balance.svg +1 -0
  82. package/src/shared/icons/account_box.svg +1 -0
  83. package/src/shared/icons/account_circle.svg +1 -0
  84. package/src/shared/icons/add.svg +1 -0
  85. package/src/shared/icons/add_circle.svg +1 -0
  86. package/src/shared/icons/add_circle_outline.svg +1 -0
  87. package/src/shared/icons/alarm.svg +1 -0
  88. package/src/shared/icons/alternate_email.svg +1 -0
  89. package/src/shared/icons/announcement.svg +1 -0
  90. package/src/shared/icons/api.svg +1 -0
  91. package/src/shared/icons/arrow_back.svg +1 -0
  92. package/src/shared/icons/arrow_downward.svg +1 -0
  93. package/src/shared/icons/arrow_drop_down.svg +1 -0
  94. package/src/shared/icons/arrow_drop_up.svg +1 -0
  95. package/src/shared/icons/arrow_forward.svg +1 -0
  96. package/src/shared/icons/arrow_upward.svg +1 -0
  97. package/src/shared/icons/assessment.svg +1 -0
  98. package/src/shared/icons/attach_file.svg +1 -0
  99. package/src/shared/icons/attach_money.svg +1 -0
  100. package/src/shared/icons/autorenew.svg +1 -0
  101. package/src/shared/icons/backpack.svg +1 -0
  102. package/src/shared/icons/bathtub.svg +1 -0
  103. package/src/shared/icons/bedding.svg +1 -0
  104. package/src/shared/icons/bookmark.svg +1 -0
  105. package/src/shared/icons/bug_report.svg +1 -0
  106. package/src/shared/icons/build.svg +1 -0
  107. package/src/shared/icons/calendar_today.svg +1 -0
  108. package/src/shared/icons/campaign.svg +1 -0
  109. package/src/shared/icons/camping.svg +1 -0
  110. package/src/shared/icons/cancel.svg +1 -0
  111. package/src/shared/icons/chat.svg +1 -0
  112. package/src/shared/icons/check.svg +1 -0
  113. package/src/shared/icons/check_box_outline_blank.svg +1 -0
  114. package/src/shared/icons/check_circle.svg +1 -0
  115. package/src/shared/icons/check_circle_outline.svg +1 -0
  116. package/src/shared/icons/checkroom.svg +1 -0
  117. package/src/shared/icons/chevron_left.svg +1 -0
  118. package/src/shared/icons/chevron_right.svg +1 -0
  119. package/src/shared/icons/clean_hands.svg +1 -0
  120. package/src/shared/icons/close.svg +1 -0
  121. package/src/shared/icons/closed_caption.svg +1 -0
  122. package/src/shared/icons/clothes.svg +1 -0
  123. package/src/shared/icons/cloud.svg +1 -0
  124. package/src/shared/icons/code.svg +1 -0
  125. package/src/shared/icons/comment.svg +1 -0
  126. package/src/shared/icons/connect_without_contact.svg +1 -0
  127. package/src/shared/icons/construction.svg +1 -0
  128. package/src/shared/icons/construction_worker.svg +1 -0
  129. package/src/shared/icons/contact_page.svg +1 -0
  130. package/src/shared/icons/content_copy.svg +1 -0
  131. package/src/shared/icons/coronavirus.svg +1 -0
  132. package/src/shared/icons/credit_card.svg +1 -0
  133. package/src/shared/icons/deck.svg +1 -0
  134. package/src/shared/icons/delete.svg +1 -0
  135. package/src/shared/icons/device_thermostat.svg +1 -0
  136. package/src/shared/icons/directions.svg +1 -0
  137. package/src/shared/icons/directions_bike.svg +1 -0
  138. package/src/shared/icons/directions_bus.svg +1 -0
  139. package/src/shared/icons/directions_car.svg +1 -0
  140. package/src/shared/icons/directions_walk.svg +1 -0
  141. package/src/shared/icons/do_not_disturb.svg +1 -0
  142. package/src/shared/icons/do_not_touch.svg +1 -0
  143. package/src/shared/icons/drag_handle.svg +1 -0
  144. package/src/shared/icons/eco.svg +1 -0
  145. package/src/shared/icons/edit.svg +1 -0
  146. package/src/shared/icons/electrical_services.svg +1 -0
  147. package/src/shared/icons/emoji_events.svg +1 -0
  148. package/src/shared/icons/error.svg +1 -0
  149. package/src/shared/icons/error_outline.svg +1 -0
  150. package/src/shared/icons/event.svg +1 -0
  151. package/src/shared/icons/expand_less.svg +1 -0
  152. package/src/shared/icons/expand_more.svg +1 -0
  153. package/src/shared/icons/facebook.svg +1 -0
  154. package/src/shared/icons/fast_forward.svg +1 -0
  155. package/src/shared/icons/fast_rewind.svg +1 -0
  156. package/src/shared/icons/favorite.svg +1 -0
  157. package/src/shared/icons/favorite_border.svg +1 -0
  158. package/src/shared/icons/fax.svg +1 -0
  159. package/src/shared/icons/file_download.svg +1 -0
  160. package/src/shared/icons/file_present.svg +1 -0
  161. package/src/shared/icons/file_upload.svg +1 -0
  162. package/src/shared/icons/filter_alt.svg +1 -0
  163. package/src/shared/icons/filter_list.svg +1 -0
  164. package/src/shared/icons/fingerprint.svg +1 -0
  165. package/src/shared/icons/first_page.svg +1 -0
  166. package/src/shared/icons/flag.svg +1 -0
  167. package/src/shared/icons/flickr.svg +1 -0
  168. package/src/shared/icons/flight.svg +1 -0
  169. package/src/shared/icons/flooding.svg +1 -0
  170. package/src/shared/icons/folder.svg +1 -0
  171. package/src/shared/icons/folder_open.svg +1 -0
  172. package/src/shared/icons/format_quote.svg +1 -0
  173. package/src/shared/icons/format_size.svg +1 -0
  174. package/src/shared/icons/forum.svg +1 -0
  175. package/src/shared/icons/github.svg +1 -0
  176. package/src/shared/icons/grid_view.svg +1 -0
  177. package/src/shared/icons/group_add.svg +1 -0
  178. package/src/shared/icons/groups.svg +1 -0
  179. package/src/shared/icons/hearing.svg +1 -0
  180. package/src/shared/icons/help.svg +1 -0
  181. package/src/shared/icons/help_outline.svg +1 -0
  182. package/src/shared/icons/highlight_off.svg +1 -0
  183. package/src/shared/icons/history.svg +1 -0
  184. package/src/shared/icons/home.svg +1 -0
  185. package/src/shared/icons/hospital.svg +1 -0
  186. package/src/shared/icons/hotel.svg +1 -0
  187. package/src/shared/icons/hourglass_empty.svg +1 -0
  188. package/src/shared/icons/hurricane.svg +1 -0
  189. package/src/shared/icons/identification.svg +1 -0
  190. package/src/shared/icons/image.svg +1 -0
  191. package/src/shared/icons/info.svg +1 -0
  192. package/src/shared/icons/info_outline.svg +1 -0
  193. package/src/shared/icons/insights.svg +1 -0
  194. package/src/shared/icons/instagram.svg +1 -0
  195. package/src/shared/icons/keyboard.svg +1 -0
  196. package/src/shared/icons/label.svg +1 -0
  197. package/src/shared/icons/language.svg +1 -0
  198. package/src/shared/icons/last_page.svg +1 -0
  199. package/src/shared/icons/launch.svg +1 -0
  200. package/src/shared/icons/lightbulb.svg +1 -0
  201. package/src/shared/icons/lightbulb_outline.svg +1 -0
  202. package/src/shared/icons/link.svg +1 -0
  203. package/src/shared/icons/link_off.svg +1 -0
  204. package/src/shared/icons/linkedin.svg +1 -0
  205. package/src/shared/icons/list.svg +1 -0
  206. package/src/shared/icons/local_cafe.svg +1 -0
  207. package/src/shared/icons/local_fire_department.svg +1 -0
  208. package/src/shared/icons/local_gas_station.svg +1 -0
  209. package/src/shared/icons/local_grocery_store.svg +1 -0
  210. package/src/shared/icons/local_hospital.svg +1 -0
  211. package/src/shared/icons/local_laundry_service.svg +1 -0
  212. package/src/shared/icons/local_library.svg +1 -0
  213. package/src/shared/icons/local_offer.svg +1 -0
  214. package/src/shared/icons/local_parking.svg +1 -0
  215. package/src/shared/icons/local_pharmacy.svg +1 -0
  216. package/src/shared/icons/local_police.svg +1 -0
  217. package/src/shared/icons/local_taxi.svg +1 -0
  218. package/src/shared/icons/location_city.svg +1 -0
  219. package/src/shared/icons/location_on.svg +1 -0
  220. package/src/shared/icons/lock.svg +1 -0
  221. package/src/shared/icons/lock_open.svg +1 -0
  222. package/src/shared/icons/lock_outline.svg +1 -0
  223. package/src/shared/icons/login.svg +1 -0
  224. package/src/shared/icons/logout.svg +1 -0
  225. package/src/shared/icons/loop.svg +1 -0
  226. package/src/shared/icons/mail.svg +1 -0
  227. package/src/shared/icons/mail_outline.svg +1 -0
  228. package/src/shared/icons/map.svg +1 -0
  229. package/src/shared/icons/masks.svg +1 -0
  230. package/src/shared/icons/medical_services.svg +1 -0
  231. package/src/shared/icons/menu.svg +1 -0
  232. package/src/shared/icons/military_tech.svg +1 -0
  233. package/src/shared/icons/more_horiz.svg +1 -0
  234. package/src/shared/icons/more_vert.svg +1 -0
  235. package/src/shared/icons/my_location.svg +1 -0
  236. package/src/shared/icons/navigate_before.svg +1 -0
  237. package/src/shared/icons/navigate_far_before.svg +1 -0
  238. package/src/shared/icons/navigate_far_next.svg +1 -0
  239. package/src/shared/icons/navigate_next.svg +1 -0
  240. package/src/shared/icons/near_me.svg +1 -0
  241. package/src/shared/icons/notifications.svg +1 -0
  242. package/src/shared/icons/notifications_active.svg +1 -0
  243. package/src/shared/icons/notifications_none.svg +1 -0
  244. package/src/shared/icons/notifications_off.svg +1 -0
  245. package/src/shared/icons/park.svg +1 -0
  246. package/src/shared/icons/people.svg +1 -0
  247. package/src/shared/icons/person.svg +1 -0
  248. package/src/shared/icons/pets.svg +1 -0
  249. package/src/shared/icons/phone.svg +1 -0
  250. package/src/shared/icons/photo_camera.svg +1 -0
  251. package/src/shared/icons/print.svg +1 -0
  252. package/src/shared/icons/priority_high.svg +1 -0
  253. package/src/shared/icons/public.svg +1 -0
  254. package/src/shared/icons/push_pin.svg +1 -0
  255. package/src/shared/icons/radio_button_unchecked.svg +1 -0
  256. package/src/shared/icons/rain.svg +1 -0
  257. package/src/shared/icons/reduce_capacity.svg +1 -0
  258. package/src/shared/icons/remove.svg +1 -0
  259. package/src/shared/icons/remove_circle.svg +1 -0
  260. package/src/shared/icons/report.svg +1 -0
  261. package/src/shared/icons/restaurant.svg +1 -0
  262. package/src/shared/icons/rss_feed.svg +1 -0
  263. package/src/shared/icons/safety_divider.svg +1 -0
  264. package/src/shared/icons/sanitizer.svg +1 -0
  265. package/src/shared/icons/save_alt.svg +1 -0
  266. package/src/shared/icons/schedule.svg +1 -0
  267. package/src/shared/icons/school.svg +1 -0
  268. package/src/shared/icons/science.svg +1 -0
  269. package/src/shared/icons/search.svg +1 -0
  270. package/src/shared/icons/security.svg +1 -0
  271. package/src/shared/icons/send.svg +1 -0
  272. package/src/shared/icons/sentiment_dissatisfied.svg +1 -0
  273. package/src/shared/icons/sentiment_neutral.svg +1 -0
  274. package/src/shared/icons/sentiment_satisfied.svg +1 -0
  275. package/src/shared/icons/sentiment_satisfied_alt.svg +1 -0
  276. package/src/shared/icons/sentiment_very_dissatisfied.svg +1 -0
  277. package/src/shared/icons/settings.svg +1 -0
  278. package/src/shared/icons/severe_weather.svg +1 -0
  279. package/src/shared/icons/share.svg +1 -0
  280. package/src/shared/icons/shield.svg +1 -0
  281. package/src/shared/icons/shopping_basket.svg +1 -0
  282. package/src/shared/icons/snow.svg +1 -0
  283. package/src/shared/icons/soap.svg +1 -0
  284. package/src/shared/icons/social_distance.svg +1 -0
  285. package/src/shared/icons/sort_arrow.svg +1 -0
  286. package/src/shared/icons/spellcheck.svg +1 -0
  287. package/src/shared/icons/star.svg +1 -0
  288. package/src/shared/icons/star_half.svg +1 -0
  289. package/src/shared/icons/star_outline.svg +1 -0
  290. package/src/shared/icons/store.svg +1 -0
  291. package/src/shared/icons/support.svg +1 -0
  292. package/src/shared/icons/support_agent.svg +1 -0
  293. package/src/shared/icons/text_fields.svg +1 -0
  294. package/src/shared/icons/thumb_down_alt.svg +1 -0
  295. package/src/shared/icons/thumb_up_alt.svg +1 -0
  296. package/src/shared/icons/timer.svg +1 -0
  297. package/src/shared/icons/toggle_off.svg +1 -0
  298. package/src/shared/icons/toggle_on.svg +1 -0
  299. package/src/shared/icons/topic.svg +1 -0
  300. package/src/shared/icons/tornado.svg +1 -0
  301. package/src/shared/icons/translate.svg +1 -0
  302. package/src/shared/icons/trending_down.svg +1 -0
  303. package/src/shared/icons/trending_up.svg +1 -0
  304. package/src/shared/icons/twitter.svg +1 -0
  305. package/src/shared/icons/undo.svg +1 -0
  306. package/src/shared/icons/unfold_less.svg +1 -0
  307. package/src/shared/icons/unfold_more.svg +1 -0
  308. package/src/shared/icons/update.svg +1 -0
  309. package/src/shared/icons/upload_file.svg +1 -0
  310. package/src/shared/icons/verified.svg +1 -0
  311. package/src/shared/icons/verified_user.svg +1 -0
  312. package/src/shared/icons/visibility.svg +1 -0
  313. package/src/shared/icons/visibility_off.svg +1 -0
  314. package/src/shared/icons/volume_off.svg +1 -0
  315. package/src/shared/icons/warning.svg +1 -0
  316. package/src/shared/icons/wash.svg +1 -0
  317. package/src/shared/icons/wifi.svg +1 -0
  318. package/src/shared/icons/work.svg +1 -0
  319. package/src/shared/icons/x.svg +1 -0
  320. package/src/shared/icons/youtube.svg +1 -0
  321. package/src/shared/icons/zoom_in.svg +1 -0
  322. package/src/shared/icons/zoom_out.svg +1 -0
  323. package/src/shared/icons/zoom_out_map.svg +1 -0
  324. package/src/utils/index.test.ts +34 -0
  325. package/src/utils/index.ts +8 -0
  326. package/src/vite-env.d.ts +17 -0
  327. package/storybook/contributing.mdx +115 -0
  328. package/storybook/framework-guidance.mdx +96 -0
  329. package/storybook/index.css +70 -0
  330. package/storybook/readme.mdx +6 -0
@@ -0,0 +1,50 @@
1
+ import { html } from "lit";
2
+ import { OgdsElement } from "../../core/OgdsElement";
3
+ import { defineCustomElement } from "../../utils";
4
+
5
+ import styles from "./usa-header.css";
6
+
7
+ export class UsaHeader extends OgdsElement {
8
+ constructor() {
9
+ super();
10
+ }
11
+
12
+ static styles = [styles];
13
+
14
+ render() {
15
+ return html`
16
+ <div class="header__logo">LOGO</div>
17
+ <nav aria-label="Primary navigation">
18
+ <ul>
19
+ <li>
20
+ <a href="#">A link</a>
21
+ </li>
22
+ <li>
23
+ <button popovertarget="primary-nav-1">
24
+ First item with dropdown
25
+ </button>
26
+ <ul popover id="primary-nav-1">
27
+ <li><a href="#">Subnav 1</a></li>
28
+ <li><a href="#">Subnav 2</a></li>
29
+ <li><a href="#">Subnav 3</a></li>
30
+ <li><a href="#">Subnav 4</a></li>
31
+ </ul>
32
+ </li>
33
+ <li>
34
+ <button popovertarget="primary-nav-2">
35
+ Second item with dropdown
36
+ </button>
37
+ <ul popover id="primary-nav-2">
38
+ <li><a href="#">Second Subnav 1</a></li>
39
+ <li><a href="#">Subnav 2</a></li>
40
+ <li><a href="#">Subnav 3</a></li>
41
+ <li><a href="#">Subnav 4</a></li>
42
+ </ul>
43
+ </li>
44
+ </ul>
45
+ </nav>
46
+ `;
47
+ }
48
+ }
49
+
50
+ defineCustomElement("usa-header", UsaHeader);
@@ -0,0 +1 @@
1
+ /* Hi */
@@ -0,0 +1,66 @@
1
+ import { LitElement, html } from "lit";
2
+ import styles from "./usa-link.css";
3
+ import { defineCustomElement } from "../../utils";
4
+
5
+ /**
6
+ * @summary The usa-link component.
7
+ *
8
+ * @slot - This element has a slot
9
+ *
10
+ * @attribute {String} href - The url for the link
11
+ *
12
+ * @cssprop --theme-link-color - Sets the link color
13
+ * @cssprop --theme-link-visited-color - Sets the color for visited links
14
+ * @cssprop --theme-link-hover-color - Sets the hover state link color
15
+ * @cssprop --theme-link-active-color - Sets the active state link color
16
+ *
17
+ * @tagname usa-link
18
+ */
19
+ export class UsaLink extends LitElement {
20
+ static styles = [styles];
21
+
22
+ static properties = {
23
+ href: { type: String },
24
+ };
25
+
26
+ declare href?: string;
27
+ private slottedChildren?: HTMLAnchorElement;
28
+
29
+ constructor() {
30
+ super();
31
+ }
32
+
33
+ private hasLinkChild(): boolean {
34
+ const childLink = this.querySelector("a");
35
+ if (!childLink) return false;
36
+
37
+ if (childLink instanceof HTMLAnchorElement) {
38
+ this.href = childLink.href;
39
+ this.slottedChildren = childLink;
40
+ this.shadowRoot?.appendChild(this.slottedChildren);
41
+ return true;
42
+ }
43
+
44
+ return false;
45
+ }
46
+
47
+ private templateWithChildren() {
48
+ return html`<a class="usa-link" href="${this.href ?? ""}"
49
+ >${this.slottedChildren}</a
50
+ >`;
51
+ }
52
+
53
+ private templateWithSlots() {
54
+ return html`<a class="usa-link" href="${this.href ?? ""}"
55
+ ><slot></slot
56
+ ></a>`;
57
+ }
58
+
59
+ render() {
60
+ return this.hasLinkChild()
61
+ ? this.templateWithChildren()
62
+ : this.templateWithSlots();
63
+ }
64
+ }
65
+
66
+ defineCustomElement("usa-link", UsaLink);
@@ -0,0 +1,24 @@
1
+ :host {
2
+ a {
3
+ color: var(--theme-link-color, #005ea2);
4
+ text-decoration: underline;
5
+ }
6
+
7
+ a:visited {
8
+ color: var(--theme-link-visited-color, #54278f);
9
+ }
10
+
11
+ a:hover {
12
+ color: var(--theme-link-hover-color, #1a4480);
13
+ }
14
+
15
+ a:active {
16
+ color: var(--theme-link-active-color, #162e51);
17
+ }
18
+
19
+ a:focus {
20
+ outline: var(--theme-focus-width, 0.25rem) var(--theme-focus-style, solid)
21
+ var(--theme-focus-color, #2491ff);
22
+ outline-offset: var(--theme-focus-offset, 0);
23
+ }
24
+ }
@@ -0,0 +1,50 @@
1
+ import { beforeEach, describe, expect, it } from "vitest";
2
+
3
+ import "./index.ts";
4
+
5
+ function getInsideLink(): HTMLAnchorElement {
6
+ const link = document.body
7
+ .querySelector("usa-link")
8
+ ?.shadowRoot?.querySelector("a");
9
+
10
+ if (!link) {
11
+ throw new Error("Could not find inner <a> inside <usa-link>");
12
+ }
13
+
14
+ return link as HTMLAnchorElement;
15
+ }
16
+
17
+ describe("usa-link component", async () => {
18
+ beforeEach(async () => {
19
+ document.body.innerHTML = `<usa-link href="http://designsystem.digital.gov">It's dangerous to go alone. Here, take this.</usa-link>`;
20
+ });
21
+
22
+ it("should show href props", () => {
23
+ expect(getInsideLink().getAttribute("href")).toContain(".gov");
24
+ });
25
+
26
+ it("should show slotted children", () => {
27
+ const slot = document.body
28
+ .querySelector("usa-link")
29
+ ?.shadowRoot?.querySelector("slot");
30
+
31
+ expect(
32
+ slot?.assignedNodes({ flatten: true })[0].textContent ?? "",
33
+ ).toContain("dangerous");
34
+ });
35
+ });
36
+
37
+ describe("progressively enhanced usa-link component", async () => {
38
+ beforeEach(async () => {
39
+ document.body.innerHTML = `<usa-link><a href="http://designsystem.digital.gov">It's dangerous to go alone. Here, take this.</a></usa-link>`;
40
+ });
41
+
42
+ it("should show href props", () => {
43
+ getInsideLink();
44
+ expect(getInsideLink().getAttribute("href")).toContain(".gov");
45
+ });
46
+
47
+ it("should render link with component markup", () => {
48
+ expect(getInsideLink().className).toContain("usa-link");
49
+ });
50
+ });
@@ -0,0 +1,8 @@
1
+ @import url("/build/css/colors.css");
2
+
3
+ :root {
4
+ --usa-color-base-lightest: var(--usa-color-gray-5);
5
+
6
+ --theme-link-color: var(--usa-color-blue-vivid-60);
7
+ --theme-link-hover-color: var(--usa-color-blue-warm-vivid-70);
8
+ }
@@ -0,0 +1,213 @@
1
+ /* ==========================================================================
2
+ USWDS Fonts & theme settings
3
+ ========================================================================== */
4
+
5
+ /*
6
+ Theme settings
7
+ ========================================================================== */
8
+ :root {
9
+ --font-stack-source-sans-pro:
10
+ "Source Sans Pro Web", "Helvetica Neue", "Helvetica", "Roboto", "Arial",
11
+ sans-serif;
12
+ --font-stack-public-sans:
13
+ "Public Sans Web", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
14
+ Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
15
+ "Segoe UI Symbol";
16
+
17
+ --usa-font-sans: var(--font-stack-source-sans-pro);
18
+ --usa-font-ui: var(--usa-font-sans);
19
+ }
20
+
21
+ /*
22
+ Source Sans Pro Web
23
+ ========================================================================== */
24
+ @font-face {
25
+ font-family: "Source Sans Pro Web";
26
+ font-style: normal;
27
+ font-weight: 300;
28
+ font-display: fallback;
29
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woff2")
30
+ format("woff2");
31
+ }
32
+
33
+ @font-face {
34
+ font-family: "Source Sans Pro Web";
35
+ font-style: normal;
36
+ font-weight: 400;
37
+ font-display: fallback;
38
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2")
39
+ format("woff2");
40
+ }
41
+ @font-face {
42
+ font-family: "Source Sans Pro Web";
43
+ font-style: normal;
44
+ font-weight: 700;
45
+ font-display: fallback;
46
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2")
47
+ format("woff2");
48
+ }
49
+ @font-face {
50
+ font-family: "Source Sans Pro Web";
51
+ font-style: italic;
52
+ font-weight: 300;
53
+ font-display: fallback;
54
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2")
55
+ format("woff2");
56
+ }
57
+ @font-face {
58
+ font-family: "Source Sans Pro Web";
59
+ font-style: italic;
60
+ font-weight: 400;
61
+ font-display: fallback;
62
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2")
63
+ format("woff2");
64
+ }
65
+ @font-face {
66
+ font-family: "Source Sans Pro Web";
67
+ font-style: italic;
68
+ font-weight: 700;
69
+ font-display: fallback;
70
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2")
71
+ format("woff2");
72
+ }
73
+
74
+ @font-face {
75
+ font-family: "Source Sans Pro Web";
76
+ font-style: normal;
77
+ font-weight: 300;
78
+ font-display: fallback;
79
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woff2")
80
+ format("woff2");
81
+ }
82
+
83
+ @font-face {
84
+ font-family: "Source Sans Pro Web";
85
+ font-style: normal;
86
+ font-weight: 400;
87
+ font-display: fallback;
88
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2")
89
+ format("woff2");
90
+ }
91
+ @font-face {
92
+ font-family: "Source Sans Pro Web";
93
+ font-style: normal;
94
+ font-weight: 700;
95
+ font-display: fallback;
96
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2")
97
+ format("woff2");
98
+ }
99
+ @font-face {
100
+ font-family: "Source Sans Pro Web";
101
+ font-style: italic;
102
+ font-weight: 300;
103
+ font-display: fallback;
104
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2")
105
+ format("woff2");
106
+ }
107
+ @font-face {
108
+ font-family: "Source Sans Pro Web";
109
+ font-style: italic;
110
+ font-weight: 400;
111
+ font-display: fallback;
112
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2")
113
+ format("woff2");
114
+ }
115
+ @font-face {
116
+ font-family: "Source Sans Pro Web";
117
+ font-style: italic;
118
+ font-weight: 700;
119
+ font-display: fallback;
120
+ src: url("@uswds/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2")
121
+ format("woff2");
122
+ }
123
+
124
+ /*
125
+ Public Sans
126
+ ========================================================================== */
127
+ @font-face {
128
+ font-family: "Public Sans Web";
129
+ font-style: normal;
130
+ font-weight: 300;
131
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-Light.woff2")
132
+ format("woff2");
133
+ }
134
+
135
+ @font-face {
136
+ font-family: "Public Sans Web";
137
+ font-style: normal;
138
+ font-weight: 400;
139
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-Regular.woff2")
140
+ format("woff2");
141
+ }
142
+ @font-face {
143
+ font-family: "Public Sans Web";
144
+ font-style: normal;
145
+ font-weight: 700;
146
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-Bold.woff2")
147
+ format("woff2");
148
+ }
149
+ @font-face {
150
+ font-family: "Public Sans Web";
151
+ font-style: italic;
152
+ font-weight: 300;
153
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-LightItalic.woff2")
154
+ format("woff2");
155
+ }
156
+ @font-face {
157
+ font-family: "Public Sans Web";
158
+ font-style: italic;
159
+ font-weight: 400;
160
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-Italic.woff2")
161
+ format("woff2");
162
+ }
163
+ @font-face {
164
+ font-family: "Public Sans Web";
165
+ font-style: italic;
166
+ font-weight: 700;
167
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-BoldItalic.woff2")
168
+ format("woff2");
169
+ }
170
+
171
+ @font-face {
172
+ font-family: "Public Sans Web";
173
+ font-style: normal;
174
+ font-weight: 300;
175
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-Light.woff2")
176
+ format("woff2");
177
+ }
178
+
179
+ @font-face {
180
+ font-family: "Public Sans Web";
181
+ font-style: normal;
182
+ font-weight: 400;
183
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-Regular.woff2")
184
+ format("woff2");
185
+ }
186
+ @font-face {
187
+ font-family: "Public Sans Web";
188
+ font-style: normal;
189
+ font-weight: 700;
190
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-Bold.woff2")
191
+ format("woff2");
192
+ }
193
+ @font-face {
194
+ font-family: "Public Sans Web";
195
+ font-style: italic;
196
+ font-weight: 300;
197
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-LightItalic.woff2")
198
+ format("woff2");
199
+ }
200
+ @font-face {
201
+ font-family: "Public Sans Web";
202
+ font-style: italic;
203
+ font-weight: 400;
204
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-Italic.woff2")
205
+ format("woff2");
206
+ }
207
+ @font-face {
208
+ font-family: "Public Sans Web";
209
+ font-style: italic;
210
+ font-weight: 700;
211
+ src: url("@uswds/uswds/fonts/public-sans/PublicSans-BoldItalic.woff2")
212
+ format("woff2");
213
+ }
@@ -0,0 +1,2 @@
1
+ @import "./colors.css" layer;
2
+ @import "./fonts.css" layer;
@@ -0,0 +1,26 @@
1
+ import colorTokens from "@ogds/tokens/styles/css/colors.css";
2
+ import spacingTokens from "@ogds/tokens/styles/css/spacing.css";
3
+ import typographyTokens from "@ogds/tokens/styles/css/typography.css";
4
+ import themeColorTokens from "@ogds/tokens/styles/css/theme-color.css";
5
+ import themeSpacingTokens from "@ogds/tokens/styles/css/theme-spacing.css";
6
+ import themeTypographyTokens from "@ogds/tokens/styles/css/theme-typography.css";
7
+
8
+ const sheet = new CSSStyleSheet();
9
+ sheet.replaceSync(
10
+ [
11
+ colorTokens,
12
+ spacingTokens,
13
+ typographyTokens,
14
+ themeColorTokens,
15
+ themeSpacingTokens,
16
+ themeTypographyTokens,
17
+ ]
18
+ .map((s) => s.cssText)
19
+ .join("\n"),
20
+ );
21
+
22
+ export function adoptTokenStyles() {
23
+ if (!document.adoptedStyleSheets.includes(sheet)) {
24
+ document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];
25
+ }
26
+ }
@@ -0,0 +1,75 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ import type { CSSResultGroup } from "lit";
4
+
5
+ // Asset imports
6
+ declare module "*.svg" {
7
+ const content: string;
8
+ export default content;
9
+ }
10
+
11
+ declare module "*.scss?inline" {
12
+ const content: string;
13
+ export default content;
14
+ }
15
+
16
+ declare module "*.svg?inline" {
17
+ const content: string;
18
+ export default content;
19
+ }
20
+
21
+ declare module "*.png" {
22
+ const content: string;
23
+ export default content;
24
+ }
25
+
26
+ declare module "*.jpg" {
27
+ const content: string;
28
+ export default content;
29
+ }
30
+
31
+ declare module "*.jpeg" {
32
+ const content: string;
33
+ export default content;
34
+ }
35
+
36
+ // USWDS specific module declarations
37
+ declare module "@uswds/uswds/img/us_flag_small.png" {
38
+ const content: string;
39
+ export default content;
40
+ }
41
+
42
+ declare module "@uswds/uswds/img/icon-dot-gov.svg" {
43
+ const content: string;
44
+ export default content;
45
+ }
46
+
47
+ declare module "@uswds/uswds/img/icon-https.svg" {
48
+ const content: string;
49
+ export default content;
50
+ }
51
+
52
+ declare module "@uswds/uswds/img/usa-icons/close.svg" {
53
+ const content: string;
54
+ export default content;
55
+ }
56
+
57
+ declare module "@uswds/uswds/img/usa-icons/expand_more.svg" {
58
+ const content: string;
59
+ export default content;
60
+ }
61
+
62
+ declare module "@uswds/uswds/img/usa-icons/expand_less.svg" {
63
+ const content: string;
64
+ export default content;
65
+ }
66
+
67
+ declare module "@uswds/uswds/img/usa-icons/lock.svg" {
68
+ const content: string;
69
+ export default content;
70
+ }
71
+
72
+ declare module "@uswds/uswds/scss/stylesheets/packages/_usa-banner.scss?inline" {
73
+ const content: string;
74
+ export default content;
75
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5 6c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 8c1.86.5 4 .83 6 1v13h2v-6h2v6h2V9c2-.17 4.14-.5 6-1l-.5-2zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="17" cy="4.54" r="2"/><path d="M14 17h-2c0 1.65-1.35 3-3 3s-3-1.35-3-3 1.35-3 3-3v-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5zm3-3.5h-1.86l1.67-3.67C17.42 8.5 16.44 7 14.96 7h-5.2c-.81 0-1.54.47-1.87 1.2L7.22 10l1.92.53L9.79 9H12l-1.83 4.1c-.6 1.33.39 2.9 1.85 2.9H17v5h2v-5.5c0-1.1-.9-2-2-2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 10h3v7H4zm6.5 0h3v7h-3zM2 19h20v3H2zm15-9h3v7h-3zm-5-9L2 6v2h20V6z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm7 13H5v-.23c0-.62.28-1.2.76-1.58C7.47 15.82 9.64 15 12 15s4.53.82 6.24 2.19c.48.38.76.97.76 1.58V19z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm0 14c-2.03 0-4.43-.82-6.14-2.88a9.947 9.947 0 0 1 12.28 0C16.43 19.18 14.03 20 12 20z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 5.72-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39 6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10h5v-2h-5c-4.34 0-8-3.66-8-8s3.66-8 8-8 8 3.66 8 8v1.43c0 .79-.71 1.57-1.5 1.57s-1.5-.78-1.5-1.57V12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.38 0 2.64-.56 3.54-1.47.65.89 1.77 1.47 2.96 1.47 1.97 0 3.5-1.6 3.5-3.57V12c0-5.52-4.48-10-10-10zm0 13c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 12-2 2-2-2 2-2 2 2zm-2-6 2.12 2.12 2.5-2.5L12 1 7.38 5.62l2.5 2.5L12 6zm-6 6 2.12-2.12-2.5-2.5L1 12l4.62 4.62 2.5-2.5L6 12zm12 0-2.12 2.12 2.5 2.5L23 12l-4.62-4.62-2.5 2.5L18 12zm-6 6-2.12-2.12-2.5 2.5L12 23l4.62-4.62-2.5-2.5L12 18z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m7 10 5 5 5-5z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m7 14 5-5 5 5z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5a2.5 2.5 0 0 1 5 0v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5a2.5 2.5 0 0 0 5 0V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8A5.87 5.87 0 0 1 6 12c0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V8c0-1.86 1.28-3.41 3-3.86V2h3v2h4V2h3v2.14c1.72.45 3 2 3 3.86zM6 12v2h10v2h2v-4H6z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="7" cy="7" r="2"/><path d="M20 13V4.83C20 3.27 18.73 2 17.17 2c-.75 0-1.47.3-2 .83l-1.25 1.25c-.16-.05-.33-.08-.51-.08-.4 0-.77.12-1.08.32l2.76 2.76c.2-.31.32-.68.32-1.08 0-.18-.03-.34-.07-.51l1.25-1.25a.828.828 0 0 1 1.41.59V13h-6.85c-.3-.21-.57-.45-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5A2.251 2.251 0 0 0 5 12.25V13H2v6c0 1.1.9 2 2 2 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 1.1 0 2-.9 2-2v-6h-2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M17 10.13a33.86 33.86 0 0 1-10 0 1.92 1.92 0 0 1-1.51-1.46 10.42 10.42 0 0 1 0-4.84 1.92 1.92 0 0 1 1.57-1.46 33.86 33.86 0 0 1 10 0 1.9 1.9 0 0 1 1.56 1.46 10.16 10.16 0 0 1 0 4.84A1.9 1.9 0 0 1 17 10.13Zm4 12.12H7a5.25 5.25 0 0 1 0-10.5h10a3.25 3.25 0 0 1 0 6.5H7a1.25 1.25 0 0 1 0-2.5h10a.75.75 0 0 0 0-1.5H7a2.75 2.75 0 0 0 0 5.5h14a1.25 1.25 0 0 1 0 2.5Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="m12 5 8 13h2v2H2v-2h2l8-13zm.05 8-2.69 5h5.38l-2.69-5zM5.5 3l-.018.024A2.5 2.5 0 0 0 7.498 7 2.5 2.5 0 1 1 5.5 3z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>