@internetarchive/ia-topnav 0.0.0-webdev7666-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/.prettierignore +1 -0
  2. package/LICENSE +661 -0
  3. package/README.md +147 -0
  4. package/demo/app-root.ts +183 -0
  5. package/demo/index.html +27 -0
  6. package/dist/demo/app-root.d.ts +13 -0
  7. package/dist/demo/app-root.js +197 -0
  8. package/dist/demo/app-root.js.map +1 -0
  9. package/dist/index.d.ts +2 -0
  10. package/dist/index.js +3 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/src/assets/img/hamburger.d.ts +7 -0
  13. package/dist/src/assets/img/hamburger.js +51 -0
  14. package/dist/src/assets/img/hamburger.js.map +1 -0
  15. package/dist/src/assets/img/ia-icon.d.ts +7 -0
  16. package/dist/src/assets/img/ia-icon.js +33 -0
  17. package/dist/src/assets/img/ia-icon.js.map +1 -0
  18. package/dist/src/assets/img/icon-audio.d.ts +2 -0
  19. package/dist/src/assets/img/icon-audio.js +28 -0
  20. package/dist/src/assets/img/icon-audio.js.map +1 -0
  21. package/dist/src/assets/img/icon-close.d.ts +2 -0
  22. package/dist/src/assets/img/icon-close.js +20 -0
  23. package/dist/src/assets/img/icon-close.js.map +1 -0
  24. package/dist/src/assets/img/icon-donate-unpadded.d.ts +2 -0
  25. package/dist/src/assets/img/icon-donate-unpadded.js +19 -0
  26. package/dist/src/assets/img/icon-donate-unpadded.js.map +1 -0
  27. package/dist/src/assets/img/icon-donate.d.ts +2 -0
  28. package/dist/src/assets/img/icon-donate.js +18 -0
  29. package/dist/src/assets/img/icon-donate.js.map +1 -0
  30. package/dist/src/assets/img/icon-ellipses.d.ts +2 -0
  31. package/dist/src/assets/img/icon-ellipses.js +19 -0
  32. package/dist/src/assets/img/icon-ellipses.js.map +1 -0
  33. package/dist/src/assets/img/icon-ia-logo.d.ts +2 -0
  34. package/dist/src/assets/img/icon-ia-logo.js +30 -0
  35. package/dist/src/assets/img/icon-ia-logo.js.map +1 -0
  36. package/dist/src/assets/img/icon-images.d.ts +2 -0
  37. package/dist/src/assets/img/icon-images.js +19 -0
  38. package/dist/src/assets/img/icon-images.js.map +1 -0
  39. package/dist/src/assets/img/icon-search.d.ts +2 -0
  40. package/dist/src/assets/img/icon-search.js +19 -0
  41. package/dist/src/assets/img/icon-search.js.map +1 -0
  42. package/dist/src/assets/img/icon-software.d.ts +2 -0
  43. package/dist/src/assets/img/icon-software.js +18 -0
  44. package/dist/src/assets/img/icon-software.js.map +1 -0
  45. package/dist/src/assets/img/icon-texts.d.ts +2 -0
  46. package/dist/src/assets/img/icon-texts.js +18 -0
  47. package/dist/src/assets/img/icon-texts.js.map +1 -0
  48. package/dist/src/assets/img/icon-upload-unpadded.d.ts +2 -0
  49. package/dist/src/assets/img/icon-upload-unpadded.js +18 -0
  50. package/dist/src/assets/img/icon-upload-unpadded.js.map +1 -0
  51. package/dist/src/assets/img/icon-upload.d.ts +2 -0
  52. package/dist/src/assets/img/icon-upload.js +21 -0
  53. package/dist/src/assets/img/icon-upload.js.map +1 -0
  54. package/dist/src/assets/img/icon-user.d.ts +2 -0
  55. package/dist/src/assets/img/icon-user.js +19 -0
  56. package/dist/src/assets/img/icon-user.js.map +1 -0
  57. package/dist/src/assets/img/icon-video.d.ts +2 -0
  58. package/dist/src/assets/img/icon-video.js +19 -0
  59. package/dist/src/assets/img/icon-video.js.map +1 -0
  60. package/dist/src/assets/img/icon-web.d.ts +2 -0
  61. package/dist/src/assets/img/icon-web.js +19 -0
  62. package/dist/src/assets/img/icon-web.js.map +1 -0
  63. package/dist/src/assets/img/icon.d.ts +5 -0
  64. package/dist/src/assets/img/icon.js +17 -0
  65. package/dist/src/assets/img/icon.js.map +1 -0
  66. package/dist/src/assets/img/icons.d.ts +18 -0
  67. package/dist/src/assets/img/icons.js +33 -0
  68. package/dist/src/assets/img/icons.js.map +1 -0
  69. package/dist/src/assets/img/wordmark-stacked.d.ts +2 -0
  70. package/dist/src/assets/img/wordmark-stacked.js +13 -0
  71. package/dist/src/assets/img/wordmark-stacked.js.map +1 -0
  72. package/dist/src/data/menus.d.ts +20 -0
  73. package/dist/src/data/menus.js +676 -0
  74. package/dist/src/data/menus.js.map +1 -0
  75. package/dist/src/desktop-subnav.d.ts +11 -0
  76. package/dist/src/desktop-subnav.js +55 -0
  77. package/dist/src/desktop-subnav.js.map +1 -0
  78. package/dist/src/dropdown-menu.d.ts +19 -0
  79. package/dist/src/dropdown-menu.js +116 -0
  80. package/dist/src/dropdown-menu.js.map +1 -0
  81. package/dist/src/ia-topnav.d.ts +67 -0
  82. package/dist/src/ia-topnav.js +312 -0
  83. package/dist/src/ia-topnav.js.map +1 -0
  84. package/dist/src/lib/format-url.d.ts +2 -0
  85. package/dist/src/lib/format-url.js +2 -0
  86. package/dist/src/lib/format-url.js.map +1 -0
  87. package/dist/src/lib/keyboard-navigation.d.ts +50 -0
  88. package/dist/src/lib/keyboard-navigation.js +136 -0
  89. package/dist/src/lib/keyboard-navigation.js.map +1 -0
  90. package/dist/src/lib/location-handler.d.ts +1 -0
  91. package/dist/src/lib/location-handler.js +5 -0
  92. package/dist/src/lib/location-handler.js.map +1 -0
  93. package/dist/src/lib/make-boolean-string.d.ts +2 -0
  94. package/dist/src/lib/make-boolean-string.js +12 -0
  95. package/dist/src/lib/make-boolean-string.js.map +1 -0
  96. package/dist/src/lib/query-handler.d.ts +4 -0
  97. package/dist/src/lib/query-handler.js +7 -0
  98. package/dist/src/lib/query-handler.js.map +1 -0
  99. package/dist/src/lib/t-sentence-case.d.ts +2 -0
  100. package/dist/src/lib/t-sentence-case.js +10 -0
  101. package/dist/src/lib/t-sentence-case.js.map +1 -0
  102. package/dist/src/login-button.d.ts +16 -0
  103. package/dist/src/login-button.js +83 -0
  104. package/dist/src/login-button.js.map +1 -0
  105. package/dist/src/media-button.d.ts +24 -0
  106. package/dist/src/media-button.js +119 -0
  107. package/dist/src/media-button.js.map +1 -0
  108. package/dist/src/media-menu.d.ts +20 -0
  109. package/dist/src/media-menu.js +148 -0
  110. package/dist/src/media-menu.js.map +1 -0
  111. package/dist/src/media-slider.d.ts +15 -0
  112. package/dist/src/media-slider.js +139 -0
  113. package/dist/src/media-slider.js.map +1 -0
  114. package/dist/src/media-subnav.d.ts +18 -0
  115. package/dist/src/media-subnav.js +126 -0
  116. package/dist/src/media-subnav.js.map +1 -0
  117. package/dist/src/models.d.ts +51 -0
  118. package/dist/src/models.js +2 -0
  119. package/dist/src/models.js.map +1 -0
  120. package/dist/src/more-slider.d.ts +10 -0
  121. package/dist/src/more-slider.js +50 -0
  122. package/dist/src/more-slider.js.map +1 -0
  123. package/dist/src/nav-search.d.ts +19 -0
  124. package/dist/src/nav-search.js +124 -0
  125. package/dist/src/nav-search.js.map +1 -0
  126. package/dist/src/primary-nav.d.ts +45 -0
  127. package/dist/src/primary-nav.js +280 -0
  128. package/dist/src/primary-nav.js.map +1 -0
  129. package/dist/src/save-page-form.d.ts +10 -0
  130. package/dist/src/save-page-form.js +63 -0
  131. package/dist/src/save-page-form.js.map +1 -0
  132. package/dist/src/search-menu.d.ts +20 -0
  133. package/dist/src/search-menu.js +162 -0
  134. package/dist/src/search-menu.js.map +1 -0
  135. package/dist/src/signed-out-dropdown.d.ts +4 -0
  136. package/dist/src/signed-out-dropdown.js +15 -0
  137. package/dist/src/signed-out-dropdown.js.map +1 -0
  138. package/dist/src/styles/base.d.ts +1 -0
  139. package/dist/src/styles/base.js +48 -0
  140. package/dist/src/styles/base.js.map +1 -0
  141. package/dist/src/styles/desktop-subnav.d.ts +2 -0
  142. package/dist/src/styles/desktop-subnav.js +37 -0
  143. package/dist/src/styles/desktop-subnav.js.map +1 -0
  144. package/dist/src/styles/dropdown-menu.d.ts +2 -0
  145. package/dist/src/styles/dropdown-menu.js +170 -0
  146. package/dist/src/styles/dropdown-menu.js.map +1 -0
  147. package/dist/src/styles/ia-topnav.d.ts +2 -0
  148. package/dist/src/styles/ia-topnav.js +87 -0
  149. package/dist/src/styles/ia-topnav.js.map +1 -0
  150. package/dist/src/styles/login-button.d.ts +2 -0
  151. package/dist/src/styles/login-button.js +82 -0
  152. package/dist/src/styles/login-button.js.map +1 -0
  153. package/dist/src/styles/media-button.d.ts +2 -0
  154. package/dist/src/styles/media-button.js +156 -0
  155. package/dist/src/styles/media-button.js.map +1 -0
  156. package/dist/src/styles/media-menu.d.ts +2 -0
  157. package/dist/src/styles/media-menu.js +66 -0
  158. package/dist/src/styles/media-menu.js.map +1 -0
  159. package/dist/src/styles/media-slider.d.ts +2 -0
  160. package/dist/src/styles/media-slider.js +81 -0
  161. package/dist/src/styles/media-slider.js.map +1 -0
  162. package/dist/src/styles/media-subnav.d.ts +2 -0
  163. package/dist/src/styles/media-subnav.js +159 -0
  164. package/dist/src/styles/media-subnav.js.map +1 -0
  165. package/dist/src/styles/more-slider.d.ts +2 -0
  166. package/dist/src/styles/more-slider.js +15 -0
  167. package/dist/src/styles/more-slider.js.map +1 -0
  168. package/dist/src/styles/nav-search.d.ts +2 -0
  169. package/dist/src/styles/nav-search.js +136 -0
  170. package/dist/src/styles/nav-search.js.map +1 -0
  171. package/dist/src/styles/primary-nav.d.ts +2 -0
  172. package/dist/src/styles/primary-nav.js +310 -0
  173. package/dist/src/styles/primary-nav.js.map +1 -0
  174. package/dist/src/styles/save-page-form.d.ts +2 -0
  175. package/dist/src/styles/save-page-form.js +54 -0
  176. package/dist/src/styles/save-page-form.js.map +1 -0
  177. package/dist/src/styles/search-menu.d.ts +2 -0
  178. package/dist/src/styles/search-menu.js +105 -0
  179. package/dist/src/styles/search-menu.js.map +1 -0
  180. package/dist/src/styles/signed-out-dropdown.d.ts +2 -0
  181. package/dist/src/styles/signed-out-dropdown.js +31 -0
  182. package/dist/src/styles/signed-out-dropdown.js.map +1 -0
  183. package/dist/src/styles/user-menu.d.ts +2 -0
  184. package/dist/src/styles/user-menu.js +31 -0
  185. package/dist/src/styles/user-menu.js.map +1 -0
  186. package/dist/src/styles/wayback-search.d.ts +2 -0
  187. package/dist/src/styles/wayback-search.js +48 -0
  188. package/dist/src/styles/wayback-search.js.map +1 -0
  189. package/dist/src/styles/wayback-slider.d.ts +2 -0
  190. package/dist/src/styles/wayback-slider.js +33 -0
  191. package/dist/src/styles/wayback-slider.js.map +1 -0
  192. package/dist/src/tracked-element.d.ts +5 -0
  193. package/dist/src/tracked-element.js +30 -0
  194. package/dist/src/tracked-element.js.map +1 -0
  195. package/dist/src/user-menu.d.ts +10 -0
  196. package/dist/src/user-menu.js +60 -0
  197. package/dist/src/user-menu.js.map +1 -0
  198. package/dist/src/wayback-search.d.ts +4 -0
  199. package/dist/src/wayback-search.js +14 -0
  200. package/dist/src/wayback-search.js.map +1 -0
  201. package/dist/src/wayback-slider.d.ts +18 -0
  202. package/dist/src/wayback-slider.js +99 -0
  203. package/dist/src/wayback-slider.js.map +1 -0
  204. package/dist/test/assets/img/hamburger.test.d.ts +1 -0
  205. package/dist/test/assets/img/hamburger.test.js +13 -0
  206. package/dist/test/assets/img/hamburger.test.js.map +1 -0
  207. package/dist/test/data/menus.test.d.ts +1 -0
  208. package/dist/test/data/menus.test.js +11 -0
  209. package/dist/test/data/menus.test.js.map +1 -0
  210. package/dist/test/dropdown-menu.test.d.ts +1 -0
  211. package/dist/test/dropdown-menu.test.js +20 -0
  212. package/dist/test/dropdown-menu.test.js.map +1 -0
  213. package/dist/test/ia-icon.test.d.ts +1 -0
  214. package/dist/test/ia-icon.test.js +11 -0
  215. package/dist/test/ia-icon.test.js.map +1 -0
  216. package/dist/test/ia-topnav.test.d.ts +1 -0
  217. package/dist/test/ia-topnav.test.js +232 -0
  218. package/dist/test/ia-topnav.test.js.map +1 -0
  219. package/dist/test/login-button.test.d.ts +1 -0
  220. package/dist/test/login-button.test.js +14 -0
  221. package/dist/test/login-button.test.js.map +1 -0
  222. package/dist/test/media-button.test.d.ts +1 -0
  223. package/dist/test/media-button.test.js +13 -0
  224. package/dist/test/media-button.test.js.map +1 -0
  225. package/dist/test/media-menu.test.d.ts +1 -0
  226. package/dist/test/media-menu.test.js +27 -0
  227. package/dist/test/media-menu.test.js.map +1 -0
  228. package/dist/test/media-slider.test.d.ts +1 -0
  229. package/dist/test/media-slider.test.js +47 -0
  230. package/dist/test/media-slider.test.js.map +1 -0
  231. package/dist/test/more-slider.test.d.ts +1 -0
  232. package/dist/test/more-slider.test.js +17 -0
  233. package/dist/test/more-slider.test.js.map +1 -0
  234. package/dist/test/nav-search.test.d.ts +1 -0
  235. package/dist/test/nav-search.test.js +47 -0
  236. package/dist/test/nav-search.test.js.map +1 -0
  237. package/dist/test/primary-nav.test.d.ts +1 -0
  238. package/dist/test/primary-nav.test.js +55 -0
  239. package/dist/test/primary-nav.test.js.map +1 -0
  240. package/dist/test/save-page-form.test.d.ts +1 -0
  241. package/dist/test/save-page-form.test.js +47 -0
  242. package/dist/test/save-page-form.test.js.map +1 -0
  243. package/dist/test/search-menu.test.d.ts +1 -0
  244. package/dist/test/search-menu.test.js +42 -0
  245. package/dist/test/search-menu.test.js.map +1 -0
  246. package/dist/test/user-menu.test.d.ts +1 -0
  247. package/dist/test/user-menu.test.js +28 -0
  248. package/dist/test/user-menu.test.js.map +1 -0
  249. package/dist/test/wayback-slider.test.d.ts +1 -0
  250. package/dist/test/wayback-slider.test.js +80 -0
  251. package/dist/test/wayback-slider.test.js.map +1 -0
  252. package/eslint.config.mjs +53 -0
  253. package/index.ts +3 -0
  254. package/package.json +71 -0
  255. package/prettier.config.js +9 -0
  256. package/src/assets/img/hamburger.ts +49 -0
  257. package/src/assets/img/ia-icon.ts +24 -0
  258. package/src/assets/img/icon-audio.ts +28 -0
  259. package/src/assets/img/icon-close.ts +20 -0
  260. package/src/assets/img/icon-donate-unpadded.ts +19 -0
  261. package/src/assets/img/icon-donate.ts +18 -0
  262. package/src/assets/img/icon-ellipses.ts +19 -0
  263. package/src/assets/img/icon-ia-logo.ts +30 -0
  264. package/src/assets/img/icon-images.ts +19 -0
  265. package/src/assets/img/icon-search.ts +19 -0
  266. package/src/assets/img/icon-software.ts +18 -0
  267. package/src/assets/img/icon-texts.ts +18 -0
  268. package/src/assets/img/icon-upload-unpadded.ts +18 -0
  269. package/src/assets/img/icon-upload.ts +21 -0
  270. package/src/assets/img/icon-user.ts +19 -0
  271. package/src/assets/img/icon-video.ts +19 -0
  272. package/src/assets/img/icon-web.ts +19 -0
  273. package/src/assets/img/icon.ts +8 -0
  274. package/src/assets/img/icons.ts +33 -0
  275. package/src/assets/img/wordmark-stacked.ts +13 -0
  276. package/src/data/menus.ts +691 -0
  277. package/src/desktop-subnav.ts +49 -0
  278. package/src/dropdown-menu.ts +106 -0
  279. package/src/ia-topnav.ts +323 -0
  280. package/src/lib/format-url.ts +2 -0
  281. package/src/lib/keyboard-navigation.ts +158 -0
  282. package/src/lib/location-handler.ts +5 -0
  283. package/src/lib/make-boolean-string.ts +12 -0
  284. package/src/lib/query-handler.ts +7 -0
  285. package/src/lib/t-sentence-case.ts +10 -0
  286. package/src/login-button.ts +75 -0
  287. package/src/media-button.ts +103 -0
  288. package/src/media-menu.ts +143 -0
  289. package/src/media-slider.ts +130 -0
  290. package/src/media-subnav.ts +132 -0
  291. package/src/models.ts +63 -0
  292. package/src/more-slider.ts +42 -0
  293. package/src/nav-search.ts +114 -0
  294. package/src/primary-nav.ts +266 -0
  295. package/src/save-page-form.ts +59 -0
  296. package/src/search-menu.ts +156 -0
  297. package/src/signed-out-dropdown.ts +11 -0
  298. package/src/styles/base.ts +48 -0
  299. package/src/styles/desktop-subnav.ts +37 -0
  300. package/src/styles/dropdown-menu.ts +170 -0
  301. package/src/styles/ia-topnav.ts +87 -0
  302. package/src/styles/login-button.ts +82 -0
  303. package/src/styles/media-button.ts +156 -0
  304. package/src/styles/media-menu.ts +66 -0
  305. package/src/styles/media-slider.ts +81 -0
  306. package/src/styles/media-subnav.ts +159 -0
  307. package/src/styles/more-slider.ts +15 -0
  308. package/src/styles/nav-search.ts +136 -0
  309. package/src/styles/primary-nav.ts +310 -0
  310. package/src/styles/save-page-form.ts +54 -0
  311. package/src/styles/search-menu.ts +105 -0
  312. package/src/styles/signed-out-dropdown.ts +31 -0
  313. package/src/styles/user-menu.ts +31 -0
  314. package/src/styles/wayback-search.ts +48 -0
  315. package/src/styles/wayback-slider.ts +33 -0
  316. package/src/tracked-element.ts +32 -0
  317. package/src/user-menu.ts +57 -0
  318. package/src/wayback-search.ts +10 -0
  319. package/src/wayback-slider.ts +88 -0
  320. package/ssl/server.crt +22 -0
  321. package/ssl/server.key +28 -0
  322. package/test/assets/img/hamburger.test.ts +18 -0
  323. package/test/data/menus.test.ts +15 -0
  324. package/test/dropdown-menu.test.ts +23 -0
  325. package/test/ia-icon.test.ts +15 -0
  326. package/test/ia-topnav.test.ts +343 -0
  327. package/test/login-button.test.ts +19 -0
  328. package/test/media-button.test.ts +19 -0
  329. package/test/media-menu.test.ts +42 -0
  330. package/test/media-slider.test.ts +63 -0
  331. package/test/more-slider.test.ts +21 -0
  332. package/test/nav-search.test.ts +70 -0
  333. package/test/primary-nav.test.ts +94 -0
  334. package/test/save-page-form.test.ts +62 -0
  335. package/test/search-menu.test.ts +58 -0
  336. package/test/user-menu.test.ts +34 -0
  337. package/test/wayback-slider.test.ts +97 -0
  338. package/tsconfig.json +31 -0
  339. package/web-dev-server.config.mjs +32 -0
  340. package/web-test-runner.config.mjs +41 -0
package/README.md ADDED
@@ -0,0 +1,147 @@
1
+ # The top navigation menu component for archive.org
2
+
3
+ ## Update guide
4
+ https://git.archive.org/www/offshoot/-/blob/main/guides/update-top-nav.md
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm i -S @internetarchive/ia-topnav
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ @see [www/index.html](www/index.html) for the simplest example with all the defaults
14
+
15
+ * Demo app is in another directory: `/www/index.html`
16
+ * `npm run start` - runs local server in Demo directory which is in `/www` folder
17
+ * you can also just use your preferred server
18
+ * open demo: `http://localhost:8000/www/index.html`
19
+
20
+ It shows a dynamic change of the logged in user name -- and how it will re-paint the menus.
21
+
22
+
23
+ ```js
24
+ // ia-top-nav.js
25
+ import IATopNav from '@internetarchive/ia-topnav';
26
+ export default IATopNav;
27
+ ```
28
+
29
+ ```html
30
+ <!-- index.html -->
31
+ <script type="module">
32
+ import './ia-topnav.js';
33
+ </script>
34
+
35
+ <style>
36
+ /* Defaults */
37
+ ia-topnav {
38
+ --white: #fff;
39
+ --grey13: #222;
40
+ --grey20: #333;
41
+ --grey40: #666;
42
+ --grey28: #474747;
43
+ --grey60: #999;
44
+ --grey66: #aaa;
45
+ --grey80: #ccc;
46
+ --errorYellow: #ffcd27;
47
+
48
+ --linkColor: #428bca;
49
+ --linkHoverColor: var(--white);
50
+ --subnavLinkColor: var(--grey66);
51
+ --primaryTextColor: var(--white);
52
+ --inverseTextColor: var(--grey20);
53
+ --lightTextColor: var(--grey60);
54
+ --activeColor: var(--white);
55
+ --activeButtonBg: var(--grey20);
56
+ --iconFill: var(--grey60);
57
+
58
+ --searchActiveBg: var(--grey20);
59
+ --searchActiveInputBg: var(--white);
60
+ --searchMenuBg: var(--grey20);
61
+ --desktopSearchIconFill: var(--grey20);
62
+
63
+ --mediaMenuBg: var(--grey13);
64
+ --mediaLabelDesktopColor: var(--grey60);
65
+ --activeDesktopMenuIcon: var(--grey28);
66
+
67
+ --mediaSliderBg: var(--grey20);
68
+ --mediaSliderDesktopBg: var(--grey28);
69
+
70
+ --primaryNavBg: var(--grey13);
71
+ --primaryNavBottomBorder: var(--grey20);
72
+
73
+ --desktopSubnavBg: var(--grey20);
74
+
75
+ --dropdownMenuBg: var(--grey20);
76
+ --dropdownMenuInfoItem: var(--grey60);
77
+ --dropdownMenuDivider: var(--grey40);
78
+
79
+ --loginTextColor: var(--grey60);
80
+
81
+ --themeFontFamily: 'Helvetica Neue', Helvetica, Arial, sans-serif;
82
+ --logoWidthTablet: 263px;
83
+
84
+ --savePageSubmitBg: var(--grey13);
85
+ --savePageSubmitText: var(--white);
86
+ --savePageInputBorder: var(--grey60);
87
+ --savePageErrorText: var(--errorYellow);
88
+
89
+ --topOffset: -1500px;
90
+ }
91
+ </style>
92
+
93
+ <!--
94
+ `baseHost` is the navigation base so leave emtpy for relative links
95
+ `mediaBaseHost` is the base host for media like the profile picture if it's not relative
96
+
97
+ NOTE:
98
+ When passing in the `searchQuery` attribute from HTML, not LitElement bindings,
99
+ you must base64 the value to account for any special characters.
100
+ -->
101
+ <ia-topnav
102
+ baseHost="https://archive.org"
103
+ mediaBaseHost="https://archive.org"
104
+ hideSearch=${true}
105
+ username="shaneriley"
106
+ screenName="long_screen_name_that_gets_truncated"
107
+ searchQuery="J2Zvbyc="
108
+ ></ia-topnav>
109
+ ```
110
+
111
+
112
+ **Menus object:**
113
+
114
+ Please see [src/data/menus.js](the menu objects) for our valid `menus` property.
115
+
116
+ # Development
117
+
118
+ ## Prerequisite
119
+
120
+ ```bash
121
+ npm install
122
+ ```
123
+
124
+ ## Start Development Server
125
+
126
+ ```bash
127
+ npm run start // start development server and typescript compiler
128
+ ```
129
+ then open demo - http://localhost:8000/www/index.html
130
+
131
+ ## Testing
132
+
133
+ ```bash
134
+ npm run test
135
+ ```
136
+
137
+ ## Testing via browserstack
138
+
139
+ ```bash
140
+ npm run test:bs
141
+ ```
142
+
143
+ ## Linting
144
+
145
+ ```bash
146
+ npm run lint
147
+ ```
@@ -0,0 +1,183 @@
1
+ import { html, css, LitElement, TemplateResult } from 'lit';
2
+ import { customElement, query, state } from 'lit/decorators.js';
3
+ import '../src/ia-topnav';
4
+ import type { IATopNav } from '../src/ia-topnav';
5
+
6
+ @customElement('app-root')
7
+ export class AppRoot extends LitElement {
8
+ @query('ia-topnav')
9
+ private topnav!: IATopNav;
10
+
11
+ @state() private admin = false;
12
+
13
+ @state() private canManageFlags = false;
14
+
15
+ @state() private username = '';
16
+
17
+ @state() private screenName = '';
18
+
19
+ @state() private itemIdentifier = '';
20
+
21
+ render() {
22
+ return html`
23
+ <ia-topnav
24
+ ?admin=${this.admin}
25
+ ?canManageFlags=${this.canManageFlags}
26
+ .username=${this.username}
27
+ .screenName=${this.screenName}
28
+ .itemIdentifier=${this.itemIdentifier}
29
+ >
30
+ </ia-topnav>
31
+
32
+ ${this.devTools}
33
+ `;
34
+ }
35
+
36
+ private get devTools(): TemplateResult {
37
+ return html`
38
+ <div id="dev-tools">
39
+ <h1>Dev Tools</h1>
40
+
41
+ <h2>User menu</h2>
42
+ <fieldset>
43
+ <ul>
44
+ <li>
45
+ <button
46
+ @click=${() => {
47
+ this.screenName = 'brewster';
48
+ this.username = '@brewster';
49
+ }}
50
+ >
51
+ Switch username to brewster
52
+ </button>
53
+ </li>
54
+
55
+ <li>
56
+ <button
57
+ @click=${() => {
58
+ this.screenName = 'a😊b😊c😊d😊e😊f😊g😊h😊i😊';
59
+ this.username = '@test';
60
+ }}
61
+ >
62
+ Switch username to a😊b😊c😊d😊e😊f😊g😊h😊i😊
63
+ </button>
64
+ </li>
65
+
66
+ <li>
67
+ <button
68
+ @click=${() => {
69
+ this.screenName =
70
+ 'الدكتور محمالدكتور محمد العجوز محمالدكتور محمد العجوز';
71
+ this.username = '@test';
72
+ }}
73
+ >
74
+ Switch username to محمالدكتور محمد العجوز الدكتور محمالدكتور
75
+ محمد العجوز
76
+ </button>
77
+ </li>
78
+
79
+ <li>
80
+ <button
81
+ @click=${() => {
82
+ this.username = '';
83
+ this.screenName = '';
84
+ }}
85
+ >
86
+ Switch to logged out
87
+ </button>
88
+ </li>
89
+
90
+ <li>
91
+ <button
92
+ @click=${() => {
93
+ this.itemIdentifier = this.admin ? '' : 'boop';
94
+ this.admin = !this.admin;
95
+ }}
96
+ >
97
+ Toggle admin mode (${this.admin ? 'on' : 'off'}) (requires
98
+ logged in)
99
+ </button>
100
+ </li>
101
+
102
+ <li>
103
+ <button
104
+ @click=${() => {
105
+ this.canManageFlags = !this.canManageFlags;
106
+ }}
107
+ >
108
+ Toggle manage flags mode (${this.canManageFlags ? 'on' : 'off'})
109
+ (requires admin mode)
110
+ </button>
111
+ </li>
112
+ </ul>
113
+ </fieldset>
114
+
115
+ <h2>Local Links</h2>
116
+ <fieldset>
117
+ <button
118
+ @click=${() => {
119
+ this.topnav.localLinks = false;
120
+ }}
121
+ >
122
+ Disable local links
123
+ </button>
124
+ <button
125
+ @click=${() => {
126
+ this.topnav.localLinks = true;
127
+ }}
128
+ >
129
+ Enable local links
130
+ </button>
131
+ </fieldset>
132
+
133
+ <h2>Wayback Count</h2>
134
+ <fieldset>
135
+ <button
136
+ @click=${() => {
137
+ this.topnav.waybackPagesArchived = 'many, MAAAANNNY';
138
+ }}
139
+ >
140
+ Change WB pages count
141
+ </button>
142
+
143
+ <button
144
+ @click=${() => {
145
+ this.topnav.waybackPagesArchived = '740 billion';
146
+ }}
147
+ >
148
+ Reset WB pages count
149
+ </button>
150
+ </fieldset>
151
+
152
+ <h2>Search</h2>
153
+ <fieldset>
154
+ <button
155
+ @click=${() => {
156
+ this.topnav.hideSearch = true;
157
+ }}
158
+ >
159
+ Hide Top Row Search button, like on mobile
160
+ </button>
161
+ <button
162
+ @click=${() => {
163
+ this.topnav.hideSearch = false;
164
+ }}
165
+ >
166
+ Show Top Row Search button, like on mobile
167
+ </button>
168
+ </fieldset>
169
+ </div>
170
+ `;
171
+ }
172
+
173
+ static styles = css`
174
+ :host {
175
+ display: block;
176
+ font-family: sans-serif;
177
+ }
178
+
179
+ #dev-tools {
180
+ margin: 1rem;
181
+ }
182
+ `;
183
+ }
@@ -0,0 +1,27 @@
1
+ <!doctype html>
2
+ <html lang="en-GB">
3
+
4
+ <head>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <meta charset="utf-8">
7
+ <style>
8
+ html {
9
+ font-size: 10px;
10
+ }
11
+
12
+ body {
13
+ background: #fafafa;
14
+ margin: 0;
15
+ padding: 0;
16
+ }
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <app-root></app-root>
22
+
23
+ <script type="module" src="../dist/demo/app-root.js">
24
+ </script>
25
+ </body>
26
+
27
+ </html>
@@ -0,0 +1,13 @@
1
+ import { LitElement, TemplateResult } from 'lit';
2
+ import '../src/ia-topnav';
3
+ export declare class AppRoot extends LitElement {
4
+ private topnav;
5
+ private admin;
6
+ private canManageFlags;
7
+ private username;
8
+ private screenName;
9
+ private itemIdentifier;
10
+ render(): TemplateResult<1>;
11
+ private get devTools();
12
+ static styles: import("lit").CSSResult;
13
+ }
@@ -0,0 +1,197 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, css, LitElement } from 'lit';
3
+ import { customElement, query, state } from 'lit/decorators.js';
4
+ import '../src/ia-topnav';
5
+ let AppRoot = class AppRoot extends LitElement {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.admin = false;
9
+ this.canManageFlags = false;
10
+ this.username = '';
11
+ this.screenName = '';
12
+ this.itemIdentifier = '';
13
+ }
14
+ render() {
15
+ return html `
16
+ <ia-topnav
17
+ ?admin=${this.admin}
18
+ ?canManageFlags=${this.canManageFlags}
19
+ .username=${this.username}
20
+ .screenName=${this.screenName}
21
+ .itemIdentifier=${this.itemIdentifier}
22
+ >
23
+ </ia-topnav>
24
+
25
+ ${this.devTools}
26
+ `;
27
+ }
28
+ get devTools() {
29
+ return html `
30
+ <div id="dev-tools">
31
+ <h1>Dev Tools</h1>
32
+
33
+ <h2>User menu</h2>
34
+ <fieldset>
35
+ <ul>
36
+ <li>
37
+ <button
38
+ @click=${() => {
39
+ this.screenName = 'brewster';
40
+ this.username = '@brewster';
41
+ }}
42
+ >
43
+ Switch username to brewster
44
+ </button>
45
+ </li>
46
+
47
+ <li>
48
+ <button
49
+ @click=${() => {
50
+ this.screenName = 'a😊b😊c😊d😊e😊f😊g😊h😊i😊';
51
+ this.username = '@test';
52
+ }}
53
+ >
54
+ Switch username to a😊b😊c😊d😊e😊f😊g😊h😊i😊
55
+ </button>
56
+ </li>
57
+
58
+ <li>
59
+ <button
60
+ @click=${() => {
61
+ this.screenName =
62
+ 'الدكتور محمالدكتور محمد العجوز محمالدكتور محمد العجوز';
63
+ this.username = '@test';
64
+ }}
65
+ >
66
+ Switch username to محمالدكتور محمد العجوز الدكتور محمالدكتور
67
+ محمد العجوز
68
+ </button>
69
+ </li>
70
+
71
+ <li>
72
+ <button
73
+ @click=${() => {
74
+ this.username = '';
75
+ this.screenName = '';
76
+ }}
77
+ >
78
+ Switch to logged out
79
+ </button>
80
+ </li>
81
+
82
+ <li>
83
+ <button
84
+ @click=${() => {
85
+ this.itemIdentifier = this.admin ? '' : 'boop';
86
+ this.admin = !this.admin;
87
+ }}
88
+ >
89
+ Toggle admin mode (${this.admin ? 'on' : 'off'}) (requires
90
+ logged in)
91
+ </button>
92
+ </li>
93
+
94
+ <li>
95
+ <button
96
+ @click=${() => {
97
+ this.canManageFlags = !this.canManageFlags;
98
+ }}
99
+ >
100
+ Toggle manage flags mode (${this.canManageFlags ? 'on' : 'off'})
101
+ (requires admin mode)
102
+ </button>
103
+ </li>
104
+ </ul>
105
+ </fieldset>
106
+
107
+ <h2>Local Links</h2>
108
+ <fieldset>
109
+ <button
110
+ @click=${() => {
111
+ this.topnav.localLinks = false;
112
+ }}
113
+ >
114
+ Disable local links
115
+ </button>
116
+ <button
117
+ @click=${() => {
118
+ this.topnav.localLinks = true;
119
+ }}
120
+ >
121
+ Enable local links
122
+ </button>
123
+ </fieldset>
124
+
125
+ <h2>Wayback Count</h2>
126
+ <fieldset>
127
+ <button
128
+ @click=${() => {
129
+ this.topnav.waybackPagesArchived = 'many, MAAAANNNY';
130
+ }}
131
+ >
132
+ Change WB pages count
133
+ </button>
134
+
135
+ <button
136
+ @click=${() => {
137
+ this.topnav.waybackPagesArchived = '740 billion';
138
+ }}
139
+ >
140
+ Reset WB pages count
141
+ </button>
142
+ </fieldset>
143
+
144
+ <h2>Search</h2>
145
+ <fieldset>
146
+ <button
147
+ @click=${() => {
148
+ this.topnav.hideSearch = true;
149
+ }}
150
+ >
151
+ Hide Top Row Search button, like on mobile
152
+ </button>
153
+ <button
154
+ @click=${() => {
155
+ this.topnav.hideSearch = false;
156
+ }}
157
+ >
158
+ Show Top Row Search button, like on mobile
159
+ </button>
160
+ </fieldset>
161
+ </div>
162
+ `;
163
+ }
164
+ };
165
+ AppRoot.styles = css `
166
+ :host {
167
+ display: block;
168
+ font-family: sans-serif;
169
+ }
170
+
171
+ #dev-tools {
172
+ margin: 1rem;
173
+ }
174
+ `;
175
+ __decorate([
176
+ query('ia-topnav')
177
+ ], AppRoot.prototype, "topnav", void 0);
178
+ __decorate([
179
+ state()
180
+ ], AppRoot.prototype, "admin", void 0);
181
+ __decorate([
182
+ state()
183
+ ], AppRoot.prototype, "canManageFlags", void 0);
184
+ __decorate([
185
+ state()
186
+ ], AppRoot.prototype, "username", void 0);
187
+ __decorate([
188
+ state()
189
+ ], AppRoot.prototype, "screenName", void 0);
190
+ __decorate([
191
+ state()
192
+ ], AppRoot.prototype, "itemIdentifier", void 0);
193
+ AppRoot = __decorate([
194
+ customElement('app-root')
195
+ ], AppRoot);
196
+ export { AppRoot };
197
+ //# sourceMappingURL=app-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-root.js","sourceRoot":"","sources":["../../demo/app-root.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, css, LitElement, TemplateResult } from 'lit';\nimport { customElement, query, state } from 'lit/decorators.js';\nimport '../src/ia-topnav';\nimport type { IATopNav } from '../src/ia-topnav';\n\n@customElement('app-root')\nexport class AppRoot extends LitElement {\n @query('ia-topnav')\n private topnav!: IATopNav;\n\n @state() private admin = false;\n\n @state() private canManageFlags = false;\n\n @state() private username = '';\n\n @state() private screenName = '';\n\n @state() private itemIdentifier = '';\n\n render() {\n return html`\n <ia-topnav\n ?admin=${this.admin}\n ?canManageFlags=${this.canManageFlags}\n .username=${this.username}\n .screenName=${this.screenName}\n .itemIdentifier=${this.itemIdentifier}\n >\n </ia-topnav>\n\n ${this.devTools}\n `;\n }\n\n private get devTools(): TemplateResult {\n return html`\n <div id=\"dev-tools\">\n <h1>Dev Tools</h1>\n\n <h2>User menu</h2>\n <fieldset>\n <ul>\n <li>\n <button\n @click=${() => {\n this.screenName = 'brewster';\n this.username = '@brewster';\n }}\n >\n Switch username to brewster\n </button>\n </li>\n\n <li>\n <button\n @click=${() => {\n this.screenName = 'a😊b😊c😊d😊e😊f😊g😊h😊i😊';\n this.username = '@test';\n }}\n >\n Switch username to a😊b😊c😊d😊e😊f😊g😊h😊i😊\n </button>\n </li>\n\n <li>\n <button\n @click=${() => {\n this.screenName =\n 'الدكتور محمالدكتور محمد العجوز محمالدكتور محمد العجوز';\n this.username = '@test';\n }}\n >\n Switch username to محمالدكتور محمد العجوز الدكتور محمالدكتور\n محمد العجوز\n </button>\n </li>\n\n <li>\n <button\n @click=${() => {\n this.username = '';\n this.screenName = '';\n }}\n >\n Switch to logged out\n </button>\n </li>\n\n <li>\n <button\n @click=${() => {\n this.itemIdentifier = this.admin ? '' : 'boop';\n this.admin = !this.admin;\n }}\n >\n Toggle admin mode (${this.admin ? 'on' : 'off'}) (requires\n logged in)\n </button>\n </li>\n\n <li>\n <button\n @click=${() => {\n this.canManageFlags = !this.canManageFlags;\n }}\n >\n Toggle manage flags mode (${this.canManageFlags ? 'on' : 'off'})\n (requires admin mode)\n </button>\n </li>\n </ul>\n </fieldset>\n\n <h2>Local Links</h2>\n <fieldset>\n <button\n @click=${() => {\n this.topnav.localLinks = false;\n }}\n >\n Disable local links\n </button>\n <button\n @click=${() => {\n this.topnav.localLinks = true;\n }}\n >\n Enable local links\n </button>\n </fieldset>\n\n <h2>Wayback Count</h2>\n <fieldset>\n <button\n @click=${() => {\n this.topnav.waybackPagesArchived = 'many, MAAAANNNY';\n }}\n >\n Change WB pages count\n </button>\n\n <button\n @click=${() => {\n this.topnav.waybackPagesArchived = '740 billion';\n }}\n >\n Reset WB pages count\n </button>\n </fieldset>\n\n <h2>Search</h2>\n <fieldset>\n <button\n @click=${() => {\n this.topnav.hideSearch = true;\n }}\n >\n Hide Top Row Search button, like on mobile\n </button>\n <button\n @click=${() => {\n this.topnav.hideSearch = false;\n }}\n >\n Show Top Row Search button, like on mobile\n </button>\n </fieldset>\n </div>\n `;\n }\n\n static styles = css`\n :host {\n display: block;\n font-family: sans-serif;\n }\n\n #dev-tools {\n margin: 1rem;\n }\n `;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import { IATopNav } from './src/ia-topnav';
2
+ export { IATopNav };
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ import { IATopNav } from './src/ia-topnav';
2
+ export { IATopNav };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["import { IATopNav } from './src/ia-topnav';\n\nexport { IATopNav };\n"]}
@@ -0,0 +1,7 @@
1
+ import Icon from './icon';
2
+ export declare class HamBurger extends Icon {
3
+ static get styles(): import("lit").CSSResult;
4
+ static get closed(): import("lit").TemplateResult<1>;
5
+ static get opened(): import("lit").TemplateResult<1>;
6
+ render(): import("lit").TemplateResult<1>;
7
+ }
@@ -0,0 +1,51 @@
1
+ var HamBurger_1;
2
+ import { __decorate } from "tslib";
3
+ import { html, css } from 'lit';
4
+ import Icon from './icon';
5
+ import icons from './icons';
6
+ import { customElement } from 'lit/decorators.js';
7
+ let HamBurger = HamBurger_1 = class HamBurger extends Icon {
8
+ static get styles() {
9
+ return css `
10
+ svg {
11
+ display: block;
12
+ height: 4rem;
13
+ width: 4rem;
14
+ }
15
+ .fill-color {
16
+ fill: var(--activeColor);
17
+ }
18
+ `;
19
+ }
20
+ static get closed() {
21
+ return html `
22
+ <svg
23
+ viewBox="0 0 40 40"
24
+ xmlns="http://www.w3.org/2000/svg"
25
+ aria-labelledby="hamburgerTitleID hamburgerDescID"
26
+ >
27
+ <title id="hamburgerTitleID">Hamburger icon</title>
28
+ <desc id="hamburgerDescID">
29
+ An icon used to represent a menu that can be toggled by interacting
30
+ with this icon.
31
+ </desc>
32
+ <path
33
+ d="m30.5 26.5c.8284271 0 1.5.6715729 1.5 1.5s-.6715729 1.5-1.5 1.5h-21c-.82842712 0-1.5-.6715729-1.5-1.5s.67157288-1.5 1.5-1.5zm0-8c.8284271 0 1.5.6715729 1.5 1.5s-.6715729 1.5-1.5 1.5h-21c-.82842712 0-1.5-.6715729-1.5-1.5s.67157288-1.5 1.5-1.5zm0-8c.8284271 0 1.5.6715729 1.5 1.5s-.6715729 1.5-1.5 1.5h-21c-.82842712 0-1.5-.6715729-1.5-1.5s.67157288-1.5 1.5-1.5z"
34
+ fill="#999"
35
+ fill-rule="evenodd"
36
+ />
37
+ </svg>
38
+ `;
39
+ }
40
+ static get opened() {
41
+ return icons.close;
42
+ }
43
+ render() {
44
+ return this.active ? HamBurger_1.opened : HamBurger_1.closed;
45
+ }
46
+ };
47
+ HamBurger = HamBurger_1 = __decorate([
48
+ customElement('icon-hamburger')
49
+ ], HamBurger);
50
+ export { HamBurger };
51
+ //# sourceMappingURL=hamburger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hamburger.js","sourceRoot":"","sources":["../../../../src/assets/img/hamburger.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG3C,IAAM,SAAS,iBAAf,MAAM,SAAU,SAAQ,IAAI;IACjC,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;KAST,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;;;KAiBV,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAS,CAAC,MAAM,CAAC;IAC3D,CAAC;CACF,CAAA;AA1CY,SAAS;IADrB,aAAa,CAAC,gBAAgB,CAAC;GACnB,SAAS,CA0CrB","sourcesContent":["import { html, css } from 'lit';\nimport Icon from './icon';\nimport icons from './icons';\nimport { customElement } from 'lit/decorators.js';\n\n@customElement('icon-hamburger')\nexport class HamBurger extends Icon {\n static get styles() {\n return css`\n svg {\n display: block;\n height: 4rem;\n width: 4rem;\n }\n .fill-color {\n fill: var(--activeColor);\n }\n `;\n }\n\n static get closed() {\n return html`\n <svg\n viewBox=\"0 0 40 40\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-labelledby=\"hamburgerTitleID hamburgerDescID\"\n >\n <title id=\"hamburgerTitleID\">Hamburger icon</title>\n <desc id=\"hamburgerDescID\">\n An icon used to represent a menu that can be toggled by interacting\n with this icon.\n </desc>\n <path\n d=\"m30.5 26.5c.8284271 0 1.5.6715729 1.5 1.5s-.6715729 1.5-1.5 1.5h-21c-.82842712 0-1.5-.6715729-1.5-1.5s.67157288-1.5 1.5-1.5zm0-8c.8284271 0 1.5.6715729 1.5 1.5s-.6715729 1.5-1.5 1.5h-21c-.82842712 0-1.5-.6715729-1.5-1.5s.67157288-1.5 1.5-1.5zm0-8c.8284271 0 1.5.6715729 1.5 1.5s-.6715729 1.5-1.5 1.5h-21c-.82842712 0-1.5-.6715729-1.5-1.5s.67157288-1.5 1.5-1.5z\"\n fill=\"#999\"\n fill-rule=\"evenodd\"\n />\n </svg>\n `;\n }\n\n static get opened() {\n return icons.close;\n }\n\n render() {\n return this.active ? HamBurger.opened : HamBurger.closed;\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { LitElement, TemplateResult } from 'lit';
2
+ import './icons';
3
+ export declare class IAIcon extends LitElement {
4
+ icon: string;
5
+ static get icons(): Record<string, TemplateResult>;
6
+ render(): TemplateResult;
7
+ }