@internetarchive/ia-topnav 2.0.2-alpha2 → 2.1.0-alpha-webdev8660.0

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 (58) 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.d.ts +2 -2
  6. package/dist/index.js +2 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/src/data/menus.js +1 -1
  9. package/dist/src/data/menus.js.map +1 -1
  10. package/dist/src/models.d.ts +9 -0
  11. package/dist/src/models.js +9 -1
  12. package/dist/src/models.js.map +1 -1
  13. package/dist/src/styles/base.js +2 -1
  14. package/dist/src/styles/base.js.map +1 -1
  15. package/dist/src/styles/dropdown-menu.js +2 -1
  16. package/dist/src/styles/dropdown-menu.js.map +1 -1
  17. package/dist/src/styles/ia-topnav.js +2 -1
  18. package/dist/src/styles/ia-topnav.js.map +1 -1
  19. package/dist/src/styles/login-button.js +2 -1
  20. package/dist/src/styles/login-button.js.map +1 -1
  21. package/dist/src/styles/media-button.js +2 -1
  22. package/dist/src/styles/media-button.js.map +1 -1
  23. package/dist/src/styles/media-menu.js +3 -2
  24. package/dist/src/styles/media-menu.js.map +1 -1
  25. package/dist/src/styles/media-slider.js +3 -2
  26. package/dist/src/styles/media-slider.js.map +1 -1
  27. package/dist/src/styles/media-subnav.js +2 -1
  28. package/dist/src/styles/media-subnav.js.map +1 -1
  29. package/dist/src/styles/primary-nav.js +4 -3
  30. package/dist/src/styles/primary-nav.js.map +1 -1
  31. package/dist/src/styles/save-page-form.js +2 -1
  32. package/dist/src/styles/save-page-form.js.map +1 -1
  33. package/dist/src/styles/wayback-search.js +2 -1
  34. package/dist/src/styles/wayback-search.js.map +1 -1
  35. package/dist/src/styles/wayback-slider.js +2 -1
  36. package/dist/src/styles/wayback-slider.js.map +1 -1
  37. package/eslint.config.mjs +53 -53
  38. package/index.ts +2 -2
  39. package/package.json +72 -72
  40. package/prettier.config.js +9 -9
  41. package/src/data/menus.ts +1 -1
  42. package/src/models.ts +10 -0
  43. package/src/styles/base.ts +2 -1
  44. package/src/styles/dropdown-menu.ts +2 -1
  45. package/src/styles/ia-topnav.ts +2 -1
  46. package/src/styles/login-button.ts +2 -1
  47. package/src/styles/media-button.ts +2 -1
  48. package/src/styles/media-menu.ts +3 -2
  49. package/src/styles/media-slider.ts +3 -2
  50. package/src/styles/media-subnav.ts +2 -1
  51. package/src/styles/primary-nav.ts +4 -3
  52. package/src/styles/save-page-form.ts +2 -1
  53. package/src/styles/wayback-search.ts +2 -1
  54. package/src/styles/wayback-slider.ts +2 -1
  55. package/ssl/server.key +28 -28
  56. package/tsconfig.json +31 -31
  57. package/web-dev-server.config.mjs +32 -32
  58. package/web-test-runner.config.mjs +41 -41
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/@${userid}/favorites`,
547
+ url: `${baseHost}/details/fav-${userid}`,
548
548
  title: 'My favorites',
549
549
  analyticsEvent: 'UserFavorites',
550
550
  },
package/src/models.ts CHANGED
@@ -1,3 +1,13 @@
1
+ /**
2
+ * The pixel width at which ia-topnav switches from mobile to desktop layout.
3
+ * Desktop styles apply at `min-width: TOPNAV_MOBILE_BREAKPOINT px`.
4
+ * Mobile styles apply at `max-width: (TOPNAV_MOBILE_BREAKPOINT - 1) px`.
5
+ *
6
+ * Exported so that host applications can derive their own media queries from
7
+ * this value rather than hard-coding it independently.
8
+ */
9
+ export const TOPNAV_MOBILE_BREAKPOINT = 890;
10
+
1
11
  export interface IATopNavConfig {
2
12
  /**
3
13
  * Google Analytics event category
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export const subnavListCSS = css`
4
5
  h4 {
@@ -20,7 +21,7 @@ export const subnavListCSS = css`
20
21
  padding-top: 1.5rem;
21
22
  }
22
23
 
23
- @media (min-width: 890px) {
24
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
24
25
  h4 {
25
26
  margin: 0 0 1rem 0;
26
27
  font-weight: 100;
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export default css`
4
5
  .nav-container {
@@ -90,7 +91,7 @@ export default css`
90
91
  width: 1.4rem;
91
92
  }
92
93
 
93
- @media (min-width: 890px) {
94
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
94
95
  nav {
95
96
  display: flex;
96
97
  overflow: visible;
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export default css`
4
5
  :host {
@@ -77,7 +78,7 @@ export default css`
77
78
  z-index: 4;
78
79
  }
79
80
 
80
- @media (max-width: 889px) {
81
+ @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
81
82
  desktop-subnav {
82
83
  display: none;
83
84
  }
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export default css`
4
5
  .logged-out-menu {
@@ -61,7 +62,7 @@ export default css`
61
62
  outline-offset: inherit !important;
62
63
  }
63
64
 
64
- @media (min-width: 890px) {
65
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
65
66
  .logged-out-toolbar {
66
67
  padding: 1rem 0.5rem;
67
68
  vertical-align: middle;
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export default css`
4
5
  a {
@@ -64,7 +65,7 @@ export default css`
64
65
  fill: #f00;
65
66
  }
66
67
 
67
- @media (min-width: 890px) {
68
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
68
69
  .menu-item {
69
70
  width: auto;
70
71
  height: 5rem;
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export default css`
4
5
  :host {
@@ -22,7 +23,7 @@ export default css`
22
23
  }
23
24
 
24
25
  /* Mobile view styles */
25
- @media (max-width: 889px) {
26
+ @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
26
27
  .media-menu-inner {
27
28
  position: absolute;
28
29
  width: 100%;
@@ -50,7 +51,7 @@ export default css`
50
51
  }
51
52
 
52
53
  /* Desktop view styles */
53
- @media (min-width: 890px) {
54
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
54
55
  .media-menu-inner {
55
56
  display: block;
56
57
  position: static;
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export default css`
4
5
  .media-slider-container {
@@ -40,7 +41,7 @@ export default css`
40
41
  padding: 1rem;
41
42
  }
42
43
 
43
- @media (max-width: 889px) {
44
+ @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
44
45
  .overflow-clip.open {
45
46
  display: block;
46
47
  height: 35.8rem;
@@ -49,7 +50,7 @@ export default css`
49
50
  }
50
51
  }
51
52
 
52
- @media (min-width: 890px) {
53
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
53
54
  .overflow-clip {
54
55
  display: block;
55
56
  }
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
  import { subnavListCSS } from './base';
3
4
 
4
5
  export default [
@@ -45,7 +46,7 @@ export default [
45
46
  display: none;
46
47
  }
47
48
 
48
- @media (min-width: 890px) {
49
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
49
50
  :host {
50
51
  display: -ms-grid;
51
52
  display: grid;
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export default css`
4
5
  button:focus,
@@ -211,7 +212,7 @@ export default css`
211
212
  outline-offset: 1px;
212
213
  }
213
214
 
214
- @media only screen and (min-width: 890px) and (max-device-width: 905px) {
215
+ @media only screen and (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) and (max-device-width: 905px) {
215
216
  .branding.second-logo {
216
217
  padding-right: 0;
217
218
  }
@@ -223,7 +224,7 @@ export default css`
223
224
  }
224
225
  }
225
226
 
226
- @media (max-width: 889px) {
227
+ @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
227
228
  slot[name='opt-sec-logo'] {
228
229
  display: none;
229
230
  }
@@ -236,7 +237,7 @@ export default css`
236
237
  }
237
238
  }
238
239
 
239
- @media (min-width: 890px) {
240
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
240
241
  :host {
241
242
  --userIconWidth: 3.2rem;
242
243
  --userIconHeight: 3.2rem;
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export default css`
4
5
  div {
@@ -45,7 +46,7 @@ export default css`
45
46
  display: block;
46
47
  }
47
48
 
48
- @media (min-width: 890px) {
49
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
49
50
  h3 {
50
51
  margin-top: 0;
51
52
  font: normal 100 1.6rem var(--themeFontFamily);
@@ -1,4 +1,5 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
 
3
4
  export default css`
4
5
  form {
@@ -34,7 +35,7 @@ export default css`
34
35
  transform: translateY(-50%);
35
36
  }
36
37
 
37
- @media (min-width: 890px) {
38
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
38
39
  fieldset a,
39
40
  .search-field {
40
41
  display: block;
@@ -1,10 +1,11 @@
1
1
  import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
2
3
  import { subnavListCSS } from './base';
3
4
 
4
5
  export default [
5
6
  subnavListCSS,
6
7
  css`
7
- @media (min-width: 890px) {
8
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
8
9
  :host {
9
10
  display: block;
10
11
  grid-column: 1 / 4;
package/ssl/server.key CHANGED
@@ -1,28 +1,28 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDZqbS9hNS38Atc
3
- A7Uszq7EA7RavuHc8AcpbURa6Y7NORs0SmfDD0oLptQ7DX5pSuHyOeDHzQ3UXRCU
4
- DAhAD1XlaYQ6PPdiJPRAe4ACELzgDzepxVz3pdKPcfXd5/mHV3ghUZya2XW5DSF1
5
- CRYUX2j10a+JORJIG4bhvTg4HxTJZZDuaNfBMC6ZSn7d9YLQoAf1MLLJm43Ycj1W
6
- lOnyG4DHxNEqEk260BlbBywJH+SJA6GA0GR2bnzYZaDnZ0wqea0Zamx8ijpdJxBU
7
- xYOqLfzs2KREVkkGOmsFEu82W6G3D4bKsY1UNaWXb/jcl3UkXIJJij6CdbbMQkUJ
8
- c8dow3sVAgMBAAECggEANgLpITAhcuVDhFk9L3m4H1bF/dCpDmCXfl2pXR/guicm
9
- C4M9HUeheaOzvVWbXThiOe/HyfylpmFTmFEmCPNlPrDAyYzQXE/MNmYO/TQ3Eihk
10
- iSG68I764XKHbsG+Byoa2rW8NSaqEjniZ/7Rtkt4qasXMmdxlGgUP9bq6O45g8HV
11
- kHxneFlA2KbrvmWnBi7NTea9+tp61NWiq5n97UgHacQR6KkYIpbxd7uNSnCSdmXt
12
- pcwzO4ZPabJ2/DKRjePhU5OggPh+9AhJ3jsBo99GwYPgSZDh8E3vh2OWOtLBMUH3
13
- rmAYwlRT2aZ5hy5yi+4QD98WoUQtsr+9n757F8V6MQKBgQDzZycdgaKwWd5d34NN
14
- 0TkFtPQPwxxJTCCs3I3q02uWcS3svQzBK0cWb4nISO04TnJ3MnXo83dgGhCMF+uZ
15
- FCXxAA53z8F92iZo+ELlXFDFwNeNYih/afDA42tWZ6TlVsDnZ4zQgRjHS7jEF/JV
16
- 0ZgwGpw5725JQt64dic8wTOcDQKBgQDk7YYACQcWTnmjDhZQ3PZSX4fcTtzPZKZj
17
- fa1GrXEaUH1hSyc9VmY6qJpUmXexpvtr194nXE+O5wbThOHcBjVlo2Qv+vswmUX3
18
- WEcVzTVN4/fODCLCqFcMNIr+BzwZfwpT+p0u8g9FxDy1gGmvkxwIu8DCpnUT12Xj
19
- hm2wO+UxKQKBgFxCSDBF9+2SUtgQJYv0dwGzwiLLWMhro6MCAoT02D3w7nBihBgg
20
- GFTnuDkDc285ROfrZ4gB6MizeHwxgOrIGU2NMO62/+d9LbvyBiE76Z3bZ5i+kQ0i
21
- kc/7I69fn8ASLxJHTLenh0XbbNBfJ0riJCZvn7HSEGKShysyFdNQhAhtAoGAFYVi
22
- 0IQIv4cXFkYPwQBUw7+pVQOw7GpI3heFf5x0goXIk6nuAW0q5R7Oi192CiRphGTh
23
- xI+ABy4ezSmz1exbfreShpQwowv1sOACpsEI3s6skBlB90y+Ci6yVlk1xCvWO7jW
24
- qAAngWaGUoXE6bWJsCR+ZY4ieYAJWw9bJnMrA6kCgYAzV4Xeoh5ofENZM21wKW3W
25
- iCzRibPObv6Vb/j9A9yT57yzI3BdfvsX5zmuSvOJm1DimgGY9nCJUzUEYG0a1Dhh
26
- /rqObPoVIFGesmvwflVYFktmVHk7ycEDVreSTz23cvmraPz1fnpdKeuEs4sRQJV7
27
- iJhLoxX5SJlJc0RXMhgHGQ==
28
- -----END PRIVATE KEY-----
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDZqbS9hNS38Atc
3
+ A7Uszq7EA7RavuHc8AcpbURa6Y7NORs0SmfDD0oLptQ7DX5pSuHyOeDHzQ3UXRCU
4
+ DAhAD1XlaYQ6PPdiJPRAe4ACELzgDzepxVz3pdKPcfXd5/mHV3ghUZya2XW5DSF1
5
+ CRYUX2j10a+JORJIG4bhvTg4HxTJZZDuaNfBMC6ZSn7d9YLQoAf1MLLJm43Ycj1W
6
+ lOnyG4DHxNEqEk260BlbBywJH+SJA6GA0GR2bnzYZaDnZ0wqea0Zamx8ijpdJxBU
7
+ xYOqLfzs2KREVkkGOmsFEu82W6G3D4bKsY1UNaWXb/jcl3UkXIJJij6CdbbMQkUJ
8
+ c8dow3sVAgMBAAECggEANgLpITAhcuVDhFk9L3m4H1bF/dCpDmCXfl2pXR/guicm
9
+ C4M9HUeheaOzvVWbXThiOe/HyfylpmFTmFEmCPNlPrDAyYzQXE/MNmYO/TQ3Eihk
10
+ iSG68I764XKHbsG+Byoa2rW8NSaqEjniZ/7Rtkt4qasXMmdxlGgUP9bq6O45g8HV
11
+ kHxneFlA2KbrvmWnBi7NTea9+tp61NWiq5n97UgHacQR6KkYIpbxd7uNSnCSdmXt
12
+ pcwzO4ZPabJ2/DKRjePhU5OggPh+9AhJ3jsBo99GwYPgSZDh8E3vh2OWOtLBMUH3
13
+ rmAYwlRT2aZ5hy5yi+4QD98WoUQtsr+9n757F8V6MQKBgQDzZycdgaKwWd5d34NN
14
+ 0TkFtPQPwxxJTCCs3I3q02uWcS3svQzBK0cWb4nISO04TnJ3MnXo83dgGhCMF+uZ
15
+ FCXxAA53z8F92iZo+ELlXFDFwNeNYih/afDA42tWZ6TlVsDnZ4zQgRjHS7jEF/JV
16
+ 0ZgwGpw5725JQt64dic8wTOcDQKBgQDk7YYACQcWTnmjDhZQ3PZSX4fcTtzPZKZj
17
+ fa1GrXEaUH1hSyc9VmY6qJpUmXexpvtr194nXE+O5wbThOHcBjVlo2Qv+vswmUX3
18
+ WEcVzTVN4/fODCLCqFcMNIr+BzwZfwpT+p0u8g9FxDy1gGmvkxwIu8DCpnUT12Xj
19
+ hm2wO+UxKQKBgFxCSDBF9+2SUtgQJYv0dwGzwiLLWMhro6MCAoT02D3w7nBihBgg
20
+ GFTnuDkDc285ROfrZ4gB6MizeHwxgOrIGU2NMO62/+d9LbvyBiE76Z3bZ5i+kQ0i
21
+ kc/7I69fn8ASLxJHTLenh0XbbNBfJ0riJCZvn7HSEGKShysyFdNQhAhtAoGAFYVi
22
+ 0IQIv4cXFkYPwQBUw7+pVQOw7GpI3heFf5x0goXIk6nuAW0q5R7Oi192CiRphGTh
23
+ xI+ABy4ezSmz1exbfreShpQwowv1sOACpsEI3s6skBlB90y+Ci6yVlk1xCvWO7jW
24
+ qAAngWaGUoXE6bWJsCR+ZY4ieYAJWw9bJnMrA6kCgYAzV4Xeoh5ofENZM21wKW3W
25
+ iCzRibPObv6Vb/j9A9yT57yzI3BdfvsX5zmuSvOJm1DimgGY9nCJUzUEYG0a1Dhh
26
+ /rqObPoVIFGesmvwflVYFktmVHk7ycEDVreSTz23cvmraPz1fnpdKeuEs4sRQJV7
27
+ iJhLoxX5SJlJc0RXMhgHGQ==
28
+ -----END PRIVATE KEY-----
package/tsconfig.json CHANGED
@@ -1,31 +1,31 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2018",
4
- "module": "esnext",
5
- "moduleResolution": "node",
6
- "noEmitOnError": true,
7
- "lib": ["es2017", "dom"],
8
- "strict": true,
9
- "esModuleInterop": false,
10
- "allowSyntheticDefaultImports": true,
11
- "experimentalDecorators": true,
12
- "importHelpers": true,
13
- "outDir": "dist",
14
- "sourceMap": true,
15
- "inlineSources": true,
16
- "rootDir": "./",
17
- "declaration": true,
18
- "plugins": [
19
- {
20
- "name": "ts-lit-plugin"
21
- }
22
- ],
23
- "paths": {
24
- // workaround for: https://github.com/vitest-dev/vitest/issues/4567
25
- "rollup/parseAst": [
26
- "./node_modules/rollup/dist/parseAst"
27
- ]
28
- }
29
- },
30
- "include": ["**/*.ts"]
31
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2018",
4
+ "module": "esnext",
5
+ "moduleResolution": "node",
6
+ "noEmitOnError": true,
7
+ "lib": ["es2017", "dom"],
8
+ "strict": true,
9
+ "esModuleInterop": false,
10
+ "allowSyntheticDefaultImports": true,
11
+ "experimentalDecorators": true,
12
+ "importHelpers": true,
13
+ "outDir": "dist",
14
+ "sourceMap": true,
15
+ "inlineSources": true,
16
+ "rootDir": "./",
17
+ "declaration": true,
18
+ "plugins": [
19
+ {
20
+ "name": "ts-lit-plugin"
21
+ }
22
+ ],
23
+ "paths": {
24
+ // workaround for: https://github.com/vitest-dev/vitest/issues/4567
25
+ "rollup/parseAst": [
26
+ "./node_modules/rollup/dist/parseAst"
27
+ ]
28
+ }
29
+ },
30
+ "include": ["**/*.ts"]
31
+ }
@@ -1,32 +1,32 @@
1
- // import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
2
-
3
- /** Use Hot Module replacement by adding --hmr to the start command */
4
- const hmr = process.argv.includes('--hmr');
5
-
6
- export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
7
- nodeResolve: true,
8
- open: '/demo',
9
- watch: !hmr,
10
- sslCert: './ssl/server.crt',
11
- sslKey: './ssl/server.key',
12
- hostname: 'local.archive.org',
13
- http2: true,
14
-
15
- /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
16
- // esbuildTarget: 'auto'
17
-
18
- /** Set appIndex to enable SPA routing */
19
- // appIndex: 'demo/index.html',
20
-
21
- /** Configure bare import resolve plugin */
22
- // nodeResolve: {
23
- // exportConditions: ['browser', 'development']
24
- // },
25
-
26
- plugins: [
27
- /** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
28
- // hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
29
- ],
30
-
31
- // See documentation for all available options
32
- });
1
+ // import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
2
+
3
+ /** Use Hot Module replacement by adding --hmr to the start command */
4
+ const hmr = process.argv.includes('--hmr');
5
+
6
+ export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
7
+ nodeResolve: true,
8
+ open: '/demo',
9
+ watch: !hmr,
10
+ sslCert: './ssl/server.crt',
11
+ sslKey: './ssl/server.key',
12
+ hostname: 'local.archive.org',
13
+ http2: true,
14
+
15
+ /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
16
+ // esbuildTarget: 'auto'
17
+
18
+ /** Set appIndex to enable SPA routing */
19
+ // appIndex: 'demo/index.html',
20
+
21
+ /** Configure bare import resolve plugin */
22
+ // nodeResolve: {
23
+ // exportConditions: ['browser', 'development']
24
+ // },
25
+
26
+ plugins: [
27
+ /** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
28
+ // hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
29
+ ],
30
+
31
+ // See documentation for all available options
32
+ });
@@ -1,41 +1,41 @@
1
- // import { playwrightLauncher } from '@web/test-runner-playwright';
2
-
3
- const filteredLogs = ['Running in dev mode', 'lit-html is in dev mode'];
4
-
5
- export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
6
- /** Test files to run */
7
- files: 'dist/test/**/*.test.js',
8
-
9
- /** Resolve bare module imports */
10
- nodeResolve: {
11
- exportConditions: ['browser', 'development'],
12
- },
13
-
14
- /** Filter out lit dev mode logs */
15
- filterBrowserLogs(log) {
16
- for (const arg of log.args) {
17
- if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
18
- return false;
19
- }
20
- }
21
- return true;
22
- },
23
-
24
- /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
25
- // esbuildTarget: 'auto',
26
-
27
- /** Amount of browsers to run concurrently */
28
- // concurrentBrowsers: 2,
29
-
30
- /** Amount of test files per browser to test concurrently */
31
- // concurrency: 1,
32
-
33
- /** Browsers to run tests on */
34
- // browsers: [
35
- // playwrightLauncher({ product: 'chromium' }),
36
- // playwrightLauncher({ product: 'firefox' }),
37
- // playwrightLauncher({ product: 'webkit' }),
38
- // ],
39
-
40
- // See documentation for all available options
41
- });
1
+ // import { playwrightLauncher } from '@web/test-runner-playwright';
2
+
3
+ const filteredLogs = ['Running in dev mode', 'lit-html is in dev mode'];
4
+
5
+ export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
6
+ /** Test files to run */
7
+ files: 'dist/test/**/*.test.js',
8
+
9
+ /** Resolve bare module imports */
10
+ nodeResolve: {
11
+ exportConditions: ['browser', 'development'],
12
+ },
13
+
14
+ /** Filter out lit dev mode logs */
15
+ filterBrowserLogs(log) {
16
+ for (const arg of log.args) {
17
+ if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
18
+ return false;
19
+ }
20
+ }
21
+ return true;
22
+ },
23
+
24
+ /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
25
+ // esbuildTarget: 'auto',
26
+
27
+ /** Amount of browsers to run concurrently */
28
+ // concurrentBrowsers: 2,
29
+
30
+ /** Amount of test files per browser to test concurrently */
31
+ // concurrency: 1,
32
+
33
+ /** Browsers to run tests on */
34
+ // browsers: [
35
+ // playwrightLauncher({ product: 'chromium' }),
36
+ // playwrightLauncher({ product: 'firefox' }),
37
+ // playwrightLauncher({ product: 'webkit' }),
38
+ // ],
39
+
40
+ // See documentation for all available options
41
+ });