@internetarchive/ia-topnav 2.1.0 → 2.1.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 (54) hide show
  1. package/.prettierignore +1 -1
  2. package/LICENSE +661 -661
  3. package/README.md +147 -147
  4. package/demo/index.html +28 -28
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/data/menus.js +1 -1
  7. package/dist/src/data/menus.js.map +1 -1
  8. package/dist/src/models.js.map +1 -1
  9. package/dist/src/styles/base.js +45 -45
  10. package/dist/src/styles/base.js.map +1 -1
  11. package/dist/src/styles/dropdown-menu.js +169 -169
  12. package/dist/src/styles/dropdown-menu.js.map +1 -1
  13. package/dist/src/styles/ia-topnav.js +82 -82
  14. package/dist/src/styles/ia-topnav.js.map +1 -1
  15. package/dist/src/styles/login-button.js +87 -87
  16. package/dist/src/styles/login-button.js.map +1 -1
  17. package/dist/src/styles/media-button.js +153 -153
  18. package/dist/src/styles/media-button.js.map +1 -1
  19. package/dist/src/styles/media-menu.js +63 -63
  20. package/dist/src/styles/media-menu.js.map +1 -1
  21. package/dist/src/styles/media-slider.js +78 -78
  22. package/dist/src/styles/media-slider.js.map +1 -1
  23. package/dist/src/styles/media-subnav.js +152 -152
  24. package/dist/src/styles/media-subnav.js.map +1 -1
  25. package/dist/src/styles/primary-nav.js +353 -353
  26. package/dist/src/styles/primary-nav.js.map +1 -1
  27. package/dist/src/styles/save-page-form.js +51 -51
  28. package/dist/src/styles/save-page-form.js.map +1 -1
  29. package/dist/src/styles/wayback-search.js +45 -45
  30. package/dist/src/styles/wayback-search.js.map +1 -1
  31. package/dist/src/styles/wayback-slider.js +26 -26
  32. package/dist/src/styles/wayback-slider.js.map +1 -1
  33. package/eslint.config.mjs +53 -53
  34. package/index.ts +3 -3
  35. package/package.json +72 -72
  36. package/prettier.config.js +9 -9
  37. package/src/data/menus.ts +1 -1
  38. package/src/models.ts +68 -68
  39. package/src/styles/base.ts +49 -49
  40. package/src/styles/dropdown-menu.ts +173 -173
  41. package/src/styles/ia-topnav.ts +86 -86
  42. package/src/styles/login-button.ts +91 -91
  43. package/src/styles/media-button.ts +157 -157
  44. package/src/styles/media-menu.ts +67 -67
  45. package/src/styles/media-slider.ts +82 -82
  46. package/src/styles/media-subnav.ts +160 -160
  47. package/src/styles/primary-nav.ts +357 -357
  48. package/src/styles/save-page-form.ts +55 -55
  49. package/src/styles/wayback-search.ts +49 -49
  50. package/src/styles/wayback-slider.ts +34 -34
  51. package/ssl/server.key +28 -28
  52. package/tsconfig.json +31 -31
  53. package/web-dev-server.config.mjs +32 -32
  54. package/web-test-runner.config.mjs +41 -41
@@ -1 +1 @@
1
- {"version":3,"file":"primary-nav.js","sourceRoot":"","sources":["../../../src/styles/primary-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAmNqB,wBAAwB;;;;;;;;;;;;uBAYxC,wBAAwB,GAAG,CAAC;;;;;;;;;;;;;uBAa5B,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqH9C,CAAC","sourcesContent":["import { css } from 'lit';\r\nimport { TOPNAV_MOBILE_BREAKPOINT } from '../models';\r\n\r\nexport default css`\r\n button:focus,\r\n input:focus {\r\n outline: none;\r\n }\r\n\r\n nav {\r\n position: relative;\r\n display: flex;\r\n height: 4rem;\r\n grid-template-areas: 'hamburger empty heart search user';\r\n -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem 4rem;\r\n grid-template-columns: 4rem auto 4rem 4rem 4rem;\r\n -ms-grid-rows: 100%;\r\n grid-template-rows: 100%;\r\n background: var(--primaryNavBg);\r\n border-bottom: 1px solid var(--primaryNavBottomBorder);\r\n }\r\n\r\n nav.hide-search {\r\n grid-template-areas: 'hamburger empty heart user';\r\n -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem;\r\n grid-template-columns: 4rem auto 4rem 4rem;\r\n }\r\n\r\n .right-side-section {\r\n display: flex;\r\n margin-left: auto;\r\n user-select: none;\r\n }\r\n button {\r\n background: none;\r\n color: inherit;\r\n border: none;\r\n font: inherit;\r\n cursor: pointer;\r\n }\r\n\r\n .branding {\r\n position: static;\r\n float: left;\r\n margin: 0 !important;\r\n padding: 0 5px 0 10px;\r\n -webkit-transform: translate(0, 0);\r\n -ms-transform: translate(0, 0);\r\n transform: translate(0, 0);\r\n }\r\n\r\n slot,\r\n .branding {\r\n display: flex;\r\n justify-content: left;\r\n align-items: center;\r\n }\r\n\r\n media-menu {\r\n flex: 1;\r\n justify-self: stretch;\r\n }\r\n\r\n .ia-logo {\r\n height: 3rem;\r\n width: 2.7rem;\r\n display: inline-block;\r\n }\r\n .ia-wordmark {\r\n height: 3rem;\r\n width: 9.5rem;\r\n }\r\n .ia-logo,\r\n .ia-wordmark {\r\n margin-right: 5px;\r\n }\r\n\r\n .hamburger {\r\n -ms-grid-row: 1;\r\n -ms-grid-column: 1;\r\n grid-area: hamburger;\r\n padding: 0;\r\n }\r\n .hamburger svg {\r\n height: 4rem;\r\n width: 4rem;\r\n fill: var(--activeColor);\r\n }\r\n\r\n .mobile-donate-link {\r\n display: inline-block;\r\n }\r\n .mobile-donate-link svg {\r\n height: 4rem;\r\n width: 4rem;\r\n }\r\n .mobile-donate-link .fill-color {\r\n fill: rgb(255, 0, 0);\r\n }\r\n\r\n .sr-only {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n margin: -1px;\r\n padding: 0;\r\n border: 0;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n clip: rect(1px, 1px, 1px, 1px);\r\n -webkit-clip-path: inset(50%);\r\n clip-path: inset(50%);\r\n user-select: none;\r\n }\r\n\r\n .search-trigger {\r\n padding: 0;\r\n }\r\n .search-trigger svg {\r\n height: 4rem;\r\n width: 4rem;\r\n }\r\n .search-trigger .fill-color {\r\n fill: var(--iconFill);\r\n }\r\n\r\n .search-container {\r\n display: none;\r\n }\r\n\r\n .search-container.open {\r\n display: flex;\r\n position: absolute;\r\n top: 0;\r\n right: 4rem;\r\n bottom: 0;\r\n left: 4rem;\r\n z-index: 3;\r\n padding: 0.5rem;\r\n border-radius: 1rem 1rem 0 0;\r\n background: var(--primaryNavBg);\r\n align-items: center;\r\n animation: fade-in 0.2s forwards;\r\n }\r\n\r\n .search-container ::slotted(*) {\r\n display: block;\r\n }\r\n\r\n .search-container slot {\r\n width: 100%;\r\n }\r\n\r\n @keyframes fade-in {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .upload {\r\n display: none;\r\n }\r\n\r\n .upload span {\r\n display: none;\r\n }\r\n\r\n .upload svg {\r\n height: 3rem;\r\n width: 3rem;\r\n }\r\n\r\n .screen-name {\r\n display: none;\r\n font-size: 1.3rem;\r\n vertical-align: middle;\r\n text-transform: uppercase;\r\n }\r\n\r\n .user-menu {\r\n color: var(--lightTextColor);\r\n padding: 0.5rem;\r\n height: 100%;\r\n }\r\n\r\n button.user-menu:hover,\r\n button.user-menu:focus {\r\n color: var(--linkHoverColor);\r\n outline: none;\r\n }\r\n\r\n .user-menu.active {\r\n border-radius: 1rem 1rem 0 0;\r\n background: var(--activeButtonBg);\r\n }\r\n\r\n .user-menu img {\r\n display: block;\r\n width: 3rem;\r\n height: 3rem;\r\n }\r\n\r\n .link-home {\r\n text-decoration: none;\r\n display: inline-flex;\r\n }\r\n a.link-home:focus,\r\n a.link-home:focus-visible {\r\n outline-offset: 1px;\r\n }\r\n\r\n @media only screen and (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) and (max-device-width: 905px) {\r\n .branding.second-logo {\r\n padding-right: 0;\r\n }\r\n }\r\n\r\n @media (min-width: 906px) {\r\n .branding.second-logo {\r\n padding-right: 20px;\r\n }\r\n }\r\n\r\n @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {\r\n slot[name='opt-sec-logo'] {\r\n display: none;\r\n }\r\n\r\n .right-side-section {\r\n display: initial;\r\n }\r\n .right-side-section .user-info {\r\n float: right;\r\n }\r\n }\r\n\r\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\r\n :host {\r\n --userIconWidth: 3.2rem;\r\n --userIconHeight: 3.2rem;\r\n }\r\n\r\n nav {\r\n display: flex;\r\n z-index: 4;\r\n height: 5rem;\r\n padding-right: 1.5rem;\r\n }\r\n\r\n slot[name='opt-sec-logo-mobile'] {\r\n display: none;\r\n }\r\n\r\n .ia-logo,\r\n .ia-wordmark {\r\n margin-right: 10px;\r\n }\r\n\r\n .hamburger,\r\n .search-trigger,\r\n .mobile-donate-link {\r\n display: none;\r\n }\r\n\r\n .user-info {\r\n display: block;\r\n float: right;\r\n vertical-align: middle;\r\n height: 100%;\r\n }\r\n\r\n .user-info .user-menu img {\r\n height: 3rem;\r\n width: 3rem;\r\n margin-right: 0.5rem;\r\n }\r\n\r\n .user-menu {\r\n padding: 1rem 0.5rem;\r\n }\r\n .user-menu.active {\r\n background: transparent;\r\n }\r\n\r\n .user-menu img {\r\n display: inline-block;\r\n vertical-align: middle;\r\n margin-right: 0.5rem;\r\n }\r\n\r\n .upload {\r\n display: block;\r\n padding: 1rem 0.5rem;\r\n float: right;\r\n font-size: 1.4rem;\r\n text-transform: uppercase;\r\n text-decoration: none;\r\n color: var(--lightTextColor);\r\n }\r\n .upload:active,\r\n .upload:focus,\r\n .upload:hover {\r\n color: var(--linkHoverColor);\r\n }\r\n .upload:focus-visible {\r\n outline: none;\r\n }\r\n\r\n .upload svg {\r\n vertical-align: middle;\r\n fill: var(--iconFill);\r\n }\r\n\r\n .upload:hover svg,\r\n .upload:focus svg,\r\n .upload:active svg {\r\n fill: var(--linkHoverColor);\r\n }\r\n\r\n .search-container,\r\n .search-container.open {\r\n display: flex;\r\n position: static;\r\n top: auto;\r\n right: auto;\r\n bottom: auto;\r\n left: auto;\r\n align-items: center;\r\n padding: 0 0 0 1rem;\r\n background: transparent;\r\n border-radius: 0;\r\n z-index: auto;\r\n }\r\n\r\n .search-container slot {\r\n width: auto;\r\n }\r\n }\r\n\r\n @media (min-width: 990px) {\r\n .screen-name {\r\n display: inline-block;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n max-width: 165px;\r\n }\r\n\r\n .upload span {\r\n display: inline-block;\r\n vertical-align: middle;\r\n }\r\n }\r\n`;\r\n"]}
1
+ {"version":3,"file":"primary-nav.js","sourceRoot":"","sources":["../../../src/styles/primary-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAmNqB,wBAAwB;;;;;;;;;;;;uBAYxC,wBAAwB,GAAG,CAAC;;;;;;;;;;;;;uBAa5B,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqH9C,CAAC","sourcesContent":["import { css } from 'lit';\nimport { TOPNAV_MOBILE_BREAKPOINT } from '../models';\n\nexport default css`\n button:focus,\n input:focus {\n outline: none;\n }\n\n nav {\n position: relative;\n display: flex;\n height: 4rem;\n grid-template-areas: 'hamburger empty heart search user';\n -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem 4rem;\n grid-template-columns: 4rem auto 4rem 4rem 4rem;\n -ms-grid-rows: 100%;\n grid-template-rows: 100%;\n background: var(--primaryNavBg);\n border-bottom: 1px solid var(--primaryNavBottomBorder);\n }\n\n nav.hide-search {\n grid-template-areas: 'hamburger empty heart user';\n -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem;\n grid-template-columns: 4rem auto 4rem 4rem;\n }\n\n .right-side-section {\n display: flex;\n margin-left: auto;\n user-select: none;\n }\n button {\n background: none;\n color: inherit;\n border: none;\n font: inherit;\n cursor: pointer;\n }\n\n .branding {\n position: static;\n float: left;\n margin: 0 !important;\n padding: 0 5px 0 10px;\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n transform: translate(0, 0);\n }\n\n slot,\n .branding {\n display: flex;\n justify-content: left;\n align-items: center;\n }\n\n media-menu {\n flex: 1;\n justify-self: stretch;\n }\n\n .ia-logo {\n height: 3rem;\n width: 2.7rem;\n display: inline-block;\n }\n .ia-wordmark {\n height: 3rem;\n width: 9.5rem;\n }\n .ia-logo,\n .ia-wordmark {\n margin-right: 5px;\n }\n\n .hamburger {\n -ms-grid-row: 1;\n -ms-grid-column: 1;\n grid-area: hamburger;\n padding: 0;\n }\n .hamburger svg {\n height: 4rem;\n width: 4rem;\n fill: var(--activeColor);\n }\n\n .mobile-donate-link {\n display: inline-block;\n }\n .mobile-donate-link svg {\n height: 4rem;\n width: 4rem;\n }\n .mobile-donate-link .fill-color {\n fill: rgb(255, 0, 0);\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n border: 0;\n overflow: hidden;\n white-space: nowrap;\n clip: rect(1px, 1px, 1px, 1px);\n -webkit-clip-path: inset(50%);\n clip-path: inset(50%);\n user-select: none;\n }\n\n .search-trigger {\n padding: 0;\n }\n .search-trigger svg {\n height: 4rem;\n width: 4rem;\n }\n .search-trigger .fill-color {\n fill: var(--iconFill);\n }\n\n .search-container {\n display: none;\n }\n\n .search-container.open {\n display: flex;\n position: absolute;\n top: 0;\n right: 4rem;\n bottom: 0;\n left: 4rem;\n z-index: 3;\n padding: 0.5rem;\n border-radius: 1rem 1rem 0 0;\n background: var(--primaryNavBg);\n align-items: center;\n animation: fade-in 0.2s forwards;\n }\n\n .search-container ::slotted(*) {\n display: block;\n }\n\n .search-container slot {\n width: 100%;\n }\n\n @keyframes fade-in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n .upload {\n display: none;\n }\n\n .upload span {\n display: none;\n }\n\n .upload svg {\n height: 3rem;\n width: 3rem;\n }\n\n .screen-name {\n display: none;\n font-size: 1.3rem;\n vertical-align: middle;\n text-transform: uppercase;\n }\n\n .user-menu {\n color: var(--lightTextColor);\n padding: 0.5rem;\n height: 100%;\n }\n\n button.user-menu:hover,\n button.user-menu:focus {\n color: var(--linkHoverColor);\n outline: none;\n }\n\n .user-menu.active {\n border-radius: 1rem 1rem 0 0;\n background: var(--activeButtonBg);\n }\n\n .user-menu img {\n display: block;\n width: 3rem;\n height: 3rem;\n }\n\n .link-home {\n text-decoration: none;\n display: inline-flex;\n }\n a.link-home:focus,\n a.link-home:focus-visible {\n outline-offset: 1px;\n }\n\n @media only screen and (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) and (max-device-width: 905px) {\n .branding.second-logo {\n padding-right: 0;\n }\n }\n\n @media (min-width: 906px) {\n .branding.second-logo {\n padding-right: 20px;\n }\n }\n\n @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {\n slot[name='opt-sec-logo'] {\n display: none;\n }\n\n .right-side-section {\n display: initial;\n }\n .right-side-section .user-info {\n float: right;\n }\n }\n\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\n :host {\n --userIconWidth: 3.2rem;\n --userIconHeight: 3.2rem;\n }\n\n nav {\n display: flex;\n z-index: 4;\n height: 5rem;\n padding-right: 1.5rem;\n }\n\n slot[name='opt-sec-logo-mobile'] {\n display: none;\n }\n\n .ia-logo,\n .ia-wordmark {\n margin-right: 10px;\n }\n\n .hamburger,\n .search-trigger,\n .mobile-donate-link {\n display: none;\n }\n\n .user-info {\n display: block;\n float: right;\n vertical-align: middle;\n height: 100%;\n }\n\n .user-info .user-menu img {\n height: 3rem;\n width: 3rem;\n margin-right: 0.5rem;\n }\n\n .user-menu {\n padding: 1rem 0.5rem;\n }\n .user-menu.active {\n background: transparent;\n }\n\n .user-menu img {\n display: inline-block;\n vertical-align: middle;\n margin-right: 0.5rem;\n }\n\n .upload {\n display: block;\n padding: 1rem 0.5rem;\n float: right;\n font-size: 1.4rem;\n text-transform: uppercase;\n text-decoration: none;\n color: var(--lightTextColor);\n }\n .upload:active,\n .upload:focus,\n .upload:hover {\n color: var(--linkHoverColor);\n }\n .upload:focus-visible {\n outline: none;\n }\n\n .upload svg {\n vertical-align: middle;\n fill: var(--iconFill);\n }\n\n .upload:hover svg,\n .upload:focus svg,\n .upload:active svg {\n fill: var(--linkHoverColor);\n }\n\n .search-container,\n .search-container.open {\n display: flex;\n position: static;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n align-items: center;\n padding: 0 0 0 1rem;\n background: transparent;\n border-radius: 0;\n z-index: auto;\n }\n\n .search-container slot {\n width: auto;\n }\n }\n\n @media (min-width: 990px) {\n .screen-name {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 165px;\n }\n\n .upload span {\n display: inline-block;\n vertical-align: middle;\n }\n }\n`;\n"]}
@@ -1,55 +1,55 @@
1
1
  import { css } from 'lit';
2
2
  import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
3
- export default css `
4
- div {
5
- display: grid;
6
- grid-template-columns: 1fr auto;
7
- grid-column-gap: 0.8rem;
8
- margin: 0;
9
- padding: 0;
10
- border: none;
11
- }
12
-
13
- input[type='text'] {
14
- width: 100%;
15
- height: 3rem;
16
- box-sizing: border-box;
17
- border: 1px solid var(--savePageInputBorder);
18
- border-radius: 0.5rem;
19
- color: var(--grey13);
20
- font-size: inherit;
21
- }
22
-
23
- input[type='submit'] {
24
- -webkit-appearance: none;
25
- -moz-appearance: none;
26
- appearance: none;
27
- padding: 0.4rem 0.8rem;
28
- font: normal 1.3rem var(--themeFontFamily);
29
- text-transform: uppercase;
30
- color: var(--savePageSubmitText);
31
- border: none;
32
- border-radius: 16px;
33
- background: var(--savePageSubmitBg);
34
- cursor: pointer;
35
- }
36
-
37
- .error {
38
- display: none;
39
- margin-top: 0.5rem;
40
- font-weight: bold;
41
- color: var(--savePageErrorText);
42
- }
43
-
44
- .visible {
45
- display: block;
46
- }
47
-
48
- @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
49
- h3 {
50
- margin-top: 0;
51
- font: normal 100 1.6rem var(--themeFontFamily);
52
- }
53
- }
3
+ export default css `
4
+ div {
5
+ display: grid;
6
+ grid-template-columns: 1fr auto;
7
+ grid-column-gap: 0.8rem;
8
+ margin: 0;
9
+ padding: 0;
10
+ border: none;
11
+ }
12
+
13
+ input[type='text'] {
14
+ width: 100%;
15
+ height: 3rem;
16
+ box-sizing: border-box;
17
+ border: 1px solid var(--savePageInputBorder);
18
+ border-radius: 0.5rem;
19
+ color: var(--grey13);
20
+ font-size: inherit;
21
+ }
22
+
23
+ input[type='submit'] {
24
+ -webkit-appearance: none;
25
+ -moz-appearance: none;
26
+ appearance: none;
27
+ padding: 0.4rem 0.8rem;
28
+ font: normal 1.3rem var(--themeFontFamily);
29
+ text-transform: uppercase;
30
+ color: var(--savePageSubmitText);
31
+ border: none;
32
+ border-radius: 16px;
33
+ background: var(--savePageSubmitBg);
34
+ cursor: pointer;
35
+ }
36
+
37
+ .error {
38
+ display: none;
39
+ margin-top: 0.5rem;
40
+ font-weight: bold;
41
+ color: var(--savePageErrorText);
42
+ }
43
+
44
+ .visible {
45
+ display: block;
46
+ }
47
+
48
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
49
+ h3 {
50
+ margin-top: 0;
51
+ font: normal 100 1.6rem var(--themeFontFamily);
52
+ }
53
+ }
54
54
  `;
55
55
  //# sourceMappingURL=save-page-form.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"save-page-form.js","sourceRoot":"","sources":["../../../src/styles/save-page-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA6CK,wBAAwB;;;;;;CAM9C,CAAC","sourcesContent":["import { css } from 'lit';\r\nimport { TOPNAV_MOBILE_BREAKPOINT } from '../models';\r\n\r\nexport default css`\r\n div {\r\n display: grid;\r\n grid-template-columns: 1fr auto;\r\n grid-column-gap: 0.8rem;\r\n margin: 0;\r\n padding: 0;\r\n border: none;\r\n }\r\n\r\n input[type='text'] {\r\n width: 100%;\r\n height: 3rem;\r\n box-sizing: border-box;\r\n border: 1px solid var(--savePageInputBorder);\r\n border-radius: 0.5rem;\r\n color: var(--grey13);\r\n font-size: inherit;\r\n }\r\n\r\n input[type='submit'] {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n padding: 0.4rem 0.8rem;\r\n font: normal 1.3rem var(--themeFontFamily);\r\n text-transform: uppercase;\r\n color: var(--savePageSubmitText);\r\n border: none;\r\n border-radius: 16px;\r\n background: var(--savePageSubmitBg);\r\n cursor: pointer;\r\n }\r\n\r\n .error {\r\n display: none;\r\n margin-top: 0.5rem;\r\n font-weight: bold;\r\n color: var(--savePageErrorText);\r\n }\r\n\r\n .visible {\r\n display: block;\r\n }\r\n\r\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\r\n h3 {\r\n margin-top: 0;\r\n font: normal 100 1.6rem var(--themeFontFamily);\r\n }\r\n }\r\n`;\r\n"]}
1
+ {"version":3,"file":"save-page-form.js","sourceRoot":"","sources":["../../../src/styles/save-page-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA6CK,wBAAwB;;;;;;CAM9C,CAAC","sourcesContent":["import { css } from 'lit';\nimport { TOPNAV_MOBILE_BREAKPOINT } from '../models';\n\nexport default css`\n div {\n display: grid;\n grid-template-columns: 1fr auto;\n grid-column-gap: 0.8rem;\n margin: 0;\n padding: 0;\n border: none;\n }\n\n input[type='text'] {\n width: 100%;\n height: 3rem;\n box-sizing: border-box;\n border: 1px solid var(--savePageInputBorder);\n border-radius: 0.5rem;\n color: var(--grey13);\n font-size: inherit;\n }\n\n input[type='submit'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 0.4rem 0.8rem;\n font: normal 1.3rem var(--themeFontFamily);\n text-transform: uppercase;\n color: var(--savePageSubmitText);\n border: none;\n border-radius: 16px;\n background: var(--savePageSubmitBg);\n cursor: pointer;\n }\n\n .error {\n display: none;\n margin-top: 0.5rem;\n font-weight: bold;\n color: var(--savePageErrorText);\n }\n\n .visible {\n display: block;\n }\n\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\n h3 {\n margin-top: 0;\n font: normal 100 1.6rem var(--themeFontFamily);\n }\n }\n`;\n"]}
@@ -1,49 +1,49 @@
1
1
  import { css } from 'lit';
2
2
  import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
3
- export default css `
4
- form {
5
- }
6
-
7
- p {
8
- margin-bottom: 1rem;
9
- font-size: 1.6rem;
10
- text-align: center;
11
- }
12
-
13
- fieldset {
14
- padding: 0.5rem;
15
- border-radius: 5px;
16
- box-shadow: none;
17
- }
18
-
19
- input {
20
- padding-left: 3rem;
21
- margin-top: 0.3rem;
22
- font-size: 1.4rem;
23
- border-color: #bca38e;
24
- background: #fff;
25
- }
26
-
27
- input::placeholder,
28
- input::-webkit-input-placeholder {
29
- color: #8e8e8e;
30
- }
31
-
32
- .search-field svg {
33
- top: 50%;
34
- transform: translateY(-50%);
35
- }
36
-
37
- @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
38
- fieldset a,
39
- .search-field {
40
- display: block;
41
- width: auto;
42
- }
43
-
44
- fieldset a {
45
- margin: 0 1.5rem;
46
- }
47
- }
3
+ export default css `
4
+ form {
5
+ }
6
+
7
+ p {
8
+ margin-bottom: 1rem;
9
+ font-size: 1.6rem;
10
+ text-align: center;
11
+ }
12
+
13
+ fieldset {
14
+ padding: 0.5rem;
15
+ border-radius: 5px;
16
+ box-shadow: none;
17
+ }
18
+
19
+ input {
20
+ padding-left: 3rem;
21
+ margin-top: 0.3rem;
22
+ font-size: 1.4rem;
23
+ border-color: #bca38e;
24
+ background: #fff;
25
+ }
26
+
27
+ input::placeholder,
28
+ input::-webkit-input-placeholder {
29
+ color: #8e8e8e;
30
+ }
31
+
32
+ .search-field svg {
33
+ top: 50%;
34
+ transform: translateY(-50%);
35
+ }
36
+
37
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
38
+ fieldset a,
39
+ .search-field {
40
+ display: block;
41
+ width: auto;
42
+ }
43
+
44
+ fieldset a {
45
+ margin: 0 1.5rem;
46
+ }
47
+ }
48
48
  `;
49
49
  //# sourceMappingURL=wayback-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wayback-search.js","sourceRoot":"","sources":["../../../src/styles/wayback-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAkCK,wBAAwB;;;;;;;;;;;CAW9C,CAAC","sourcesContent":["import { css } from 'lit';\r\nimport { TOPNAV_MOBILE_BREAKPOINT } from '../models';\r\n\r\nexport default css`\r\n form {\r\n }\r\n\r\n p {\r\n margin-bottom: 1rem;\r\n font-size: 1.6rem;\r\n text-align: center;\r\n }\r\n\r\n fieldset {\r\n padding: 0.5rem;\r\n border-radius: 5px;\r\n box-shadow: none;\r\n }\r\n\r\n input {\r\n padding-left: 3rem;\r\n margin-top: 0.3rem;\r\n font-size: 1.4rem;\r\n border-color: #bca38e;\r\n background: #fff;\r\n }\r\n\r\n input::placeholder,\r\n input::-webkit-input-placeholder {\r\n color: #8e8e8e;\r\n }\r\n\r\n .search-field svg {\r\n top: 50%;\r\n transform: translateY(-50%);\r\n }\r\n\r\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\r\n fieldset a,\r\n .search-field {\r\n display: block;\r\n width: auto;\r\n }\r\n\r\n fieldset a {\r\n margin: 0 1.5rem;\r\n }\r\n }\r\n`;\r\n"]}
1
+ {"version":3,"file":"wayback-search.js","sourceRoot":"","sources":["../../../src/styles/wayback-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAkCK,wBAAwB;;;;;;;;;;;CAW9C,CAAC","sourcesContent":["import { css } from 'lit';\nimport { TOPNAV_MOBILE_BREAKPOINT } from '../models';\n\nexport default css`\n form {\n }\n\n p {\n margin-bottom: 1rem;\n font-size: 1.6rem;\n text-align: center;\n }\n\n fieldset {\n padding: 0.5rem;\n border-radius: 5px;\n box-shadow: none;\n }\n\n input {\n padding-left: 3rem;\n margin-top: 0.3rem;\n font-size: 1.4rem;\n border-color: #bca38e;\n background: #fff;\n }\n\n input::placeholder,\n input::-webkit-input-placeholder {\n color: #8e8e8e;\n }\n\n .search-field svg {\n top: 50%;\n transform: translateY(-50%);\n }\n\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\n fieldset a,\n .search-field {\n display: block;\n width: auto;\n }\n\n fieldset a {\n margin: 0 1.5rem;\n }\n }\n`;\n"]}
@@ -3,32 +3,32 @@ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
3
3
  import { subnavListCSS } from './base';
4
4
  export default [
5
5
  subnavListCSS,
6
- css `
7
- @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
8
- :host {
9
- display: block;
10
- grid-column: 1 / 4;
11
- padding: 0 1.5rem;
12
- }
13
-
14
- h4 {
15
- margin-top: 0;
16
- font: normal 100 1.6rem var(--themeFontFamily);
17
- }
18
-
19
- .grid {
20
- display: grid;
21
- grid-template-columns: minmax(auto, 260px) 1fr minmax(auto, 260px);
22
- /* Possible for 890 - 935: minmax(auto, 260px) 1fr minmax(auto, 260px) */
23
- grid-column-gap: 2.5rem;
24
- }
25
-
26
- .link-lists {
27
- display: grid;
28
- grid-template-columns: calc(50% - 1.25rem) calc(50% - 1.25rem);
29
- grid-column-gap: 2.5rem;
30
- }
31
- }
6
+ css `
7
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
8
+ :host {
9
+ display: block;
10
+ grid-column: 1 / 4;
11
+ padding: 0 1.5rem;
12
+ }
13
+
14
+ h4 {
15
+ margin-top: 0;
16
+ font: normal 100 1.6rem var(--themeFontFamily);
17
+ }
18
+
19
+ .grid {
20
+ display: grid;
21
+ grid-template-columns: minmax(auto, 260px) 1fr minmax(auto, 260px);
22
+ /* Possible for 890 - 935: minmax(auto, 260px) 1fr minmax(auto, 260px) */
23
+ grid-column-gap: 2.5rem;
24
+ }
25
+
26
+ .link-lists {
27
+ display: grid;
28
+ grid-template-columns: calc(50% - 1.25rem) calc(50% - 1.25rem);
29
+ grid-column-gap: 2.5rem;
30
+ }
31
+ }
32
32
  `,
33
33
  ];
34
34
  //# sourceMappingURL=wayback-slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wayback-slider.js","sourceRoot":"","sources":["../../../src/styles/wayback-slider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,eAAe;IACb,aAAa;IACb,GAAG,CAAA;yBACoB,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;GAyB9C;CACF,CAAC","sourcesContent":["import { css } from 'lit';\r\nimport { TOPNAV_MOBILE_BREAKPOINT } from '../models';\r\nimport { subnavListCSS } from './base';\r\n\r\nexport default [\r\n subnavListCSS,\r\n css`\r\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\r\n :host {\r\n display: block;\r\n grid-column: 1 / 4;\r\n padding: 0 1.5rem;\r\n }\r\n\r\n h4 {\r\n margin-top: 0;\r\n font: normal 100 1.6rem var(--themeFontFamily);\r\n }\r\n\r\n .grid {\r\n display: grid;\r\n grid-template-columns: minmax(auto, 260px) 1fr minmax(auto, 260px);\r\n /* Possible for 890 - 935: minmax(auto, 260px) 1fr minmax(auto, 260px) */\r\n grid-column-gap: 2.5rem;\r\n }\r\n\r\n .link-lists {\r\n display: grid;\r\n grid-template-columns: calc(50% - 1.25rem) calc(50% - 1.25rem);\r\n grid-column-gap: 2.5rem;\r\n }\r\n }\r\n `,\r\n];\r\n"]}
1
+ {"version":3,"file":"wayback-slider.js","sourceRoot":"","sources":["../../../src/styles/wayback-slider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,eAAe;IACb,aAAa;IACb,GAAG,CAAA;yBACoB,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;GAyB9C;CACF,CAAC","sourcesContent":["import { css } from 'lit';\nimport { TOPNAV_MOBILE_BREAKPOINT } from '../models';\nimport { subnavListCSS } from './base';\n\nexport default [\n subnavListCSS,\n css`\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\n :host {\n display: block;\n grid-column: 1 / 4;\n padding: 0 1.5rem;\n }\n\n h4 {\n margin-top: 0;\n font: normal 100 1.6rem var(--themeFontFamily);\n }\n\n .grid {\n display: grid;\n grid-template-columns: minmax(auto, 260px) 1fr minmax(auto, 260px);\n /* Possible for 890 - 935: minmax(auto, 260px) 1fr minmax(auto, 260px) */\n grid-column-gap: 2.5rem;\n }\n\n .link-lists {\n display: grid;\n grid-template-columns: calc(50% - 1.25rem) calc(50% - 1.25rem);\n grid-column-gap: 2.5rem;\n }\n }\n `,\n];\n"]}
package/eslint.config.mjs CHANGED
@@ -1,53 +1,53 @@
1
- import typescriptEslint from '@typescript-eslint/eslint-plugin';
2
- import html from 'eslint-plugin-html';
3
- import tsParser from '@typescript-eslint/parser';
4
- import path from 'node:path';
5
- import { fileURLToPath } from 'node:url';
6
- import js from '@eslint/js';
7
- import { FlatCompat } from '@eslint/eslintrc';
8
-
9
- const __filename = fileURLToPath(import.meta.url);
10
- const __dirname = path.dirname(__filename);
11
- const compat = new FlatCompat({
12
- baseDirectory: __dirname,
13
- recommendedConfig: js.configs.recommended,
14
- allConfig: js.configs.all,
15
- });
16
-
17
- export default [
18
- ...compat.extends('plugin:@typescript-eslint/recommended'),
19
- {
20
- plugins: {
21
- '@typescript-eslint': typescriptEslint,
22
- html,
23
- },
24
-
25
- languageOptions: {
26
- parser: tsParser,
27
- },
28
-
29
- settings: {
30
- 'import/resolver': {
31
- node: {
32
- extensions: ['.ts', '.tsx'],
33
- moduleDirectory: ['node_modules', 'src', 'demo'],
34
- },
35
- },
36
- },
37
-
38
- rules: {
39
- '@typescript-eslint/no-unsafe-function-type': 'warn',
40
- '@typescript-eslint/no-unused-vars': 'warn',
41
- '@typescript-eslint/no-explicit-any': 'warn',
42
- },
43
- },
44
- {
45
- ignores: ['**/*.js', '**/*.mjs'],
46
- },
47
- {
48
- files: ['**/*.test.ts'],
49
- rules: {
50
- '@typescript-eslint/no-unused-expressions': 'off',
51
- },
52
- },
53
- ];
1
+ import typescriptEslint from '@typescript-eslint/eslint-plugin';
2
+ import html from 'eslint-plugin-html';
3
+ import tsParser from '@typescript-eslint/parser';
4
+ import path from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import js from '@eslint/js';
7
+ import { FlatCompat } from '@eslint/eslintrc';
8
+
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = path.dirname(__filename);
11
+ const compat = new FlatCompat({
12
+ baseDirectory: __dirname,
13
+ recommendedConfig: js.configs.recommended,
14
+ allConfig: js.configs.all,
15
+ });
16
+
17
+ export default [
18
+ ...compat.extends('plugin:@typescript-eslint/recommended'),
19
+ {
20
+ plugins: {
21
+ '@typescript-eslint': typescriptEslint,
22
+ html,
23
+ },
24
+
25
+ languageOptions: {
26
+ parser: tsParser,
27
+ },
28
+
29
+ settings: {
30
+ 'import/resolver': {
31
+ node: {
32
+ extensions: ['.ts', '.tsx'],
33
+ moduleDirectory: ['node_modules', 'src', 'demo'],
34
+ },
35
+ },
36
+ },
37
+
38
+ rules: {
39
+ '@typescript-eslint/no-unsafe-function-type': 'warn',
40
+ '@typescript-eslint/no-unused-vars': 'warn',
41
+ '@typescript-eslint/no-explicit-any': 'warn',
42
+ },
43
+ },
44
+ {
45
+ ignores: ['**/*.js', '**/*.mjs'],
46
+ },
47
+ {
48
+ files: ['**/*.test.ts'],
49
+ rules: {
50
+ '@typescript-eslint/no-unused-expressions': 'off',
51
+ },
52
+ },
53
+ ];
package/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { IATopNav } from './src/ia-topnav';
2
-
3
- export { TOPNAV_MOBILE_BREAKPOINT } from './src/models';
1
+ export { IATopNav } from './src/ia-topnav';
2
+
3
+ export { TOPNAV_MOBILE_BREAKPOINT } from './src/models';
package/package.json CHANGED
@@ -1,72 +1,72 @@
1
- {
2
- "name": "@internetarchive/ia-topnav",
3
- "version": "2.1.0",
4
- "description": "Top nav for Internet Archive",
5
- "license": "AGPL-3.0-only",
6
- "main": "dist/index.js",
7
- "module": "dist/index.js",
8
- "types": "dist/index.d.ts",
9
- "type": "module",
10
- "publishConfig": {
11
- "access": "public"
12
- },
13
- "scripts": {
14
- "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds\"",
15
- "prepare": "rimraf dist && tsc && husky install",
16
- "build": "tsc",
17
- "lint": "eslint . && prettier \"**/*.ts\" --check",
18
- "format": "eslint . --fix && prettier \"**/*.ts\" --write",
19
- "circular": "madge --circular --extensions ts .",
20
- "test": "tsc && npm run lint && npm run circular && wtr --coverage",
21
- "test:watch": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wtr --watch\"",
22
- "ghpages:build": "rimraf ghpages && npm run prepare && vite build",
23
- "ghpages:publish": "npm run ghpages:prepare -e $(git branch --show-current)",
24
- "ghpages:prepare": "npm run ghpages:build && touch ghpages/.nojekyll && npm run ghpages:generate",
25
- "ghpages:generate": "gh-pages -t -d ghpages -m \"Build for $(git log --pretty=format:\"%h %an %ai %s\" -n1) [skip ci]\""
26
- },
27
- "dependencies": {
28
- "@internetarchive/ia-styles": "^1.0.0",
29
- "@internetarchive/ia-wayback-search": "^1.0.4",
30
- "lit": "^2.8.0"
31
- },
32
- "devDependencies": {
33
- "@open-wc/eslint-config": "^12.0.3",
34
- "@open-wc/testing": "^4.0.0",
35
- "@types/mocha": "^10.0.10",
36
- "@typescript-eslint/eslint-plugin": "^8.19.1",
37
- "@typescript-eslint/parser": "^8.19.1",
38
- "@web/dev-server": "^0.4.6",
39
- "@web/test-runner": "^0.20.0",
40
- "concurrently": "^9.1.2",
41
- "eslint": "^9.24.0",
42
- "eslint-config-prettier": "^10.1.1",
43
- "eslint-plugin-html": "^8.1.2",
44
- "eslint-plugin-import": "^2.31.0",
45
- "eslint-plugin-lit": "^2.0.0",
46
- "eslint-plugin-lit-a11y": "^4.1.4",
47
- "eslint-plugin-no-only-tests": "^3.3.0",
48
- "eslint-plugin-wc": "^3.0.0",
49
- "gh-pages": "^6.3.0",
50
- "husky": "^9.1.7",
51
- "madge": "^8.0.0",
52
- "prettier": "^3.4.2",
53
- "rimraf": "^6.0.1",
54
- "sinon": "^20.0.0",
55
- "ts-lit-plugin": "^2.0.2",
56
- "tslib": "^2.8.1",
57
- "typescript": "^5.7.2",
58
- "vite": "^6.0.7"
59
- },
60
- "husky": {
61
- "hooks": {
62
- "pre-commit": "lint-staged"
63
- }
64
- },
65
- "lint-staged": {
66
- "*.ts": [
67
- "eslint --fix",
68
- "prettier --write",
69
- "git add"
70
- ]
71
- }
72
- }
1
+ {
2
+ "name": "@internetarchive/ia-topnav",
3
+ "version": "2.1.1",
4
+ "description": "Top nav for Internet Archive",
5
+ "license": "AGPL-3.0-only",
6
+ "main": "dist/index.js",
7
+ "module": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "type": "module",
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "scripts": {
14
+ "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds\"",
15
+ "prepare": "rimraf dist && tsc && husky install",
16
+ "build": "tsc",
17
+ "lint": "eslint . && prettier \"**/*.ts\" --check",
18
+ "format": "eslint . --fix && prettier \"**/*.ts\" --write",
19
+ "circular": "madge --circular --extensions ts .",
20
+ "test": "tsc && npm run lint && npm run circular && wtr --coverage",
21
+ "test:watch": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wtr --watch\"",
22
+ "ghpages:build": "rimraf ghpages && npm run prepare && vite build",
23
+ "ghpages:publish": "npm run ghpages:prepare -e $(git branch --show-current)",
24
+ "ghpages:prepare": "npm run ghpages:build && touch ghpages/.nojekyll && npm run ghpages:generate",
25
+ "ghpages:generate": "gh-pages -t -d ghpages -m \"Build for $(git log --pretty=format:\"%h %an %ai %s\" -n1) [skip ci]\""
26
+ },
27
+ "dependencies": {
28
+ "@internetarchive/ia-styles": "^1.0.0",
29
+ "@internetarchive/ia-wayback-search": "^1.0.4",
30
+ "lit": "^2.8.0"
31
+ },
32
+ "devDependencies": {
33
+ "@open-wc/eslint-config": "^12.0.3",
34
+ "@open-wc/testing": "^4.0.0",
35
+ "@types/mocha": "^10.0.10",
36
+ "@typescript-eslint/eslint-plugin": "^8.19.1",
37
+ "@typescript-eslint/parser": "^8.19.1",
38
+ "@web/dev-server": "^0.4.6",
39
+ "@web/test-runner": "^0.20.0",
40
+ "concurrently": "^9.1.2",
41
+ "eslint": "^9.24.0",
42
+ "eslint-config-prettier": "^10.1.1",
43
+ "eslint-plugin-html": "^8.1.2",
44
+ "eslint-plugin-import": "^2.31.0",
45
+ "eslint-plugin-lit": "^2.0.0",
46
+ "eslint-plugin-lit-a11y": "^4.1.4",
47
+ "eslint-plugin-no-only-tests": "^3.3.0",
48
+ "eslint-plugin-wc": "^3.0.0",
49
+ "gh-pages": "^6.3.0",
50
+ "husky": "^9.1.7",
51
+ "madge": "^8.0.0",
52
+ "prettier": "^3.4.2",
53
+ "rimraf": "^6.0.1",
54
+ "sinon": "^20.0.0",
55
+ "ts-lit-plugin": "^2.0.2",
56
+ "tslib": "^2.8.1",
57
+ "typescript": "^5.7.2",
58
+ "vite": "^6.0.7"
59
+ },
60
+ "husky": {
61
+ "hooks": {
62
+ "pre-commit": "lint-staged"
63
+ }
64
+ },
65
+ "lint-staged": {
66
+ "*.ts": [
67
+ "eslint --fix",
68
+ "prettier --write",
69
+ "git add"
70
+ ]
71
+ }
72
+ }
@@ -1,9 +1,9 @@
1
- /**
2
- * @see https://prettier.io/docs/configuration
3
- * @type {import("prettier").Config}
4
- */
5
- const config = {
6
- singleQuote: true,
7
- };
8
-
9
- export default config;
1
+ /**
2
+ * @see https://prettier.io/docs/configuration
3
+ * @type {import("prettier").Config}
4
+ */
5
+ const config = {
6
+ singleQuote: true,
7
+ };
8
+
9
+ export default config;
package/src/data/menus.ts CHANGED
@@ -544,7 +544,7 @@ export function buildTopNavMenus(
544
544
  analyticsEvent: 'UserLoans',
545
545
  },
546
546
  {
547
- url: `${baseHost}/details/fav-${userid}`,
547
+ url: `${baseHost}/details/@${userid}/favorites`,
548
548
  title: 'My favorites',
549
549
  analyticsEvent: 'UserFavorites',
550
550
  },