@internetarchive/ia-topnav 1.3.6 → 1.3.7

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 (85) hide show
  1. package/.eslintrc +16 -16
  2. package/LICENSE +661 -661
  3. package/README.md +147 -147
  4. package/index.d.ts +109 -109
  5. package/index.js +3 -3
  6. package/package.json +61 -61
  7. package/src/assets/img/hamburger.js +38 -38
  8. package/src/assets/img/ia-icon.js +33 -33
  9. package/src/assets/img/icon-audio.js +23 -23
  10. package/src/assets/img/icon-close.js +16 -16
  11. package/src/assets/img/icon-donate-unpadded.js +16 -16
  12. package/src/assets/img/icon-donate.js +15 -15
  13. package/src/assets/img/icon-ellipses.js +15 -15
  14. package/src/assets/img/icon-ia-logo.js +22 -22
  15. package/src/assets/img/icon-images.js +15 -15
  16. package/src/assets/img/icon-search.js +15 -15
  17. package/src/assets/img/icon-software.js +15 -15
  18. package/src/assets/img/icon-texts.js +15 -15
  19. package/src/assets/img/icon-upload-unpadded.js +14 -14
  20. package/src/assets/img/icon-upload.js +15 -15
  21. package/src/assets/img/icon-user.js +15 -15
  22. package/src/assets/img/icon-video.js +15 -15
  23. package/src/assets/img/icon-web.js +15 -15
  24. package/src/assets/img/icon.js +18 -18
  25. package/src/assets/img/icons.js +33 -33
  26. package/src/assets/img/wordmark-stacked.js +13 -13
  27. package/src/data/menus.js +646 -646
  28. package/src/desktop-subnav.js +45 -45
  29. package/src/dropdown-menu.js +110 -109
  30. package/src/ia-topnav.js +324 -314
  31. package/src/lib/formatUrl.js +1 -1
  32. package/src/lib/keyboard-navigation.js +128 -0
  33. package/src/lib/location-handler.js +5 -5
  34. package/src/lib/query-handler.js +7 -7
  35. package/src/lib/toSentenceCase.js +8 -8
  36. package/src/login-button.js +79 -79
  37. package/src/media-button.js +113 -113
  38. package/src/media-menu.js +154 -133
  39. package/src/media-slider.js +118 -104
  40. package/src/media-subnav.js +112 -112
  41. package/src/more-slider.js +33 -33
  42. package/src/nav-search.js +111 -117
  43. package/src/primary-nav.js +258 -224
  44. package/src/save-page-form.js +59 -59
  45. package/src/search-menu.js +145 -115
  46. package/src/signed-out-dropdown.js +10 -10
  47. package/src/styles/base.js +48 -48
  48. package/src/styles/desktop-subnav.js +37 -37
  49. package/src/styles/dropdown-menu.js +168 -166
  50. package/src/styles/ia-topnav.js +87 -87
  51. package/src/styles/login-button.js +82 -79
  52. package/src/styles/media-button.js +156 -156
  53. package/src/styles/media-menu.js +66 -70
  54. package/src/styles/media-slider.js +81 -81
  55. package/src/styles/media-subnav.js +156 -156
  56. package/src/styles/more-slider.js +15 -15
  57. package/src/styles/nav-search.js +136 -136
  58. package/src/styles/primary-nav.js +311 -300
  59. package/src/styles/save-page-form.js +54 -54
  60. package/src/styles/search-menu.js +105 -99
  61. package/src/styles/signed-out-dropdown.js +31 -31
  62. package/src/styles/user-menu.js +31 -31
  63. package/src/styles/wayback-search.js +48 -48
  64. package/src/styles/wayback-slider.js +30 -30
  65. package/src/tracked-element.js +29 -27
  66. package/src/user-menu.js +56 -42
  67. package/src/wayback-search.js +18 -18
  68. package/src/wayback-slider.js +87 -87
  69. package/test/assets/img/hamburger.test.js +15 -15
  70. package/test/assets/img/user.test.js +15 -15
  71. package/test/data/menus.test.js +19 -19
  72. package/test/dropdown-menu.test.js +25 -25
  73. package/test/ia-icon.test.js +13 -13
  74. package/test/ia-topnav.test.js +273 -273
  75. package/test/login-button.test.js +15 -15
  76. package/test/media-button.test.js +19 -19
  77. package/test/media-menu.test.js +40 -40
  78. package/test/media-slider.test.js +57 -57
  79. package/test/more-slider.test.js +13 -13
  80. package/test/nav-search.test.js +61 -61
  81. package/test/primary-nav.test.js +82 -82
  82. package/test/save-page-form.test.js +35 -35
  83. package/test/search-menu.test.js +49 -49
  84. package/test/user-menu.test.js +33 -33
  85. package/test/wayback-slider.test.js +80 -80
@@ -1,156 +1,156 @@
1
- import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
- import { subnavListCSS } from './base.js';
3
-
4
- export default [subnavListCSS, css`
5
- img {
6
- display: block;
7
- width: 90px;
8
- height: 90px;
9
- margin: 0 auto 1rem auto;
10
- border-radius: 45px;
11
- }
12
-
13
- h3 {
14
- margin-top: 0;
15
- font-size: 1.8rem;
16
- }
17
-
18
- .icon-links {
19
- display: -webkit-box;
20
- display: -ms-flexbox;
21
- display: flex;
22
- -webkit-box-pack: space-evenly;
23
- -ms-flex-pack: space-evenly;
24
- justify-content: space-evenly;
25
- text-align: center;
26
- }
27
-
28
- .icon-links a {
29
- display: inline-block;
30
- width: 12rem;
31
- margin-bottom: 1.5rem;
32
- overflow: hidden;
33
- white-space: nowrap;
34
- text-align: center;
35
- text-overflow: ellipsis;
36
- }
37
-
38
- .icon-links a + a {
39
- margin-left: 2rem;
40
- }
41
-
42
- .featured h4 {
43
- display: none;
44
- }
45
-
46
- @media (min-width: 890px) {
47
- :host {
48
- display: -ms-grid;
49
- display: grid;
50
- -ms-grid-columns: 40% 20% 40%;
51
- grid-template-columns: 40% 20% 40%;
52
- }
53
-
54
- .wayback-search {
55
- -ms-grid-column: 1;
56
- -ms-grid-column-span: 3;
57
- grid-column: 1 / 4;
58
- }
59
-
60
- h3 {
61
- display: none;
62
- }
63
-
64
- .icon-links {
65
- -ms-grid-column: 1;
66
- }
67
-
68
- .icon-links a {
69
- padding-top: 3.5rem;
70
- max-width: 16rem;
71
- }
72
-
73
- .links {
74
- padding: 0 1.5rem;
75
- }
76
-
77
- .featured {
78
- -ms-grid-column: 2;
79
- }
80
-
81
- .featured h4 {
82
- display: block;
83
- }
84
-
85
- .top {
86
- -ms-grid-column: 3;
87
- }
88
-
89
- .top ul {
90
- display: -ms-grid;
91
- display: grid;
92
- -ms-grid-columns: 50% 3rem 50%;
93
- grid-template-columns: 50% 50%;
94
- -ms-grid-rows: (auto)[7];
95
- grid-template-rows: repeat(7, auto);
96
- grid-column-gap: 3rem;
97
- grid-auto-flow: column;
98
- }
99
- .top ul > *:nth-child(1) {
100
- -ms-grid-row: 1;
101
- -ms-grid-column: 1;
102
- }
103
- .top ul > *:nth-child(2) {
104
- -ms-grid-row: 2;
105
- -ms-grid-column: 1;
106
- }
107
- .top ul > *:nth-child(3) {
108
- -ms-grid-row: 3;
109
- -ms-grid-column: 1;
110
- }
111
- .top ul > *:nth-child(4) {
112
- -ms-grid-row: 4;
113
- -ms-grid-column: 1;
114
- }
115
- .top ul > *:nth-child(5) {
116
- -ms-grid-row: 5;
117
- -ms-grid-column: 1;
118
- }
119
- .top ul > *:nth-child(6) {
120
- -ms-grid-row: 6;
121
- -ms-grid-column: 1;
122
- }
123
- .top ul > *:nth-child(7) {
124
- -ms-grid-row: 7;
125
- -ms-grid-column: 1;
126
- }
127
- .top ul > *:nth-child(8) {
128
- -ms-grid-row: 1;
129
- -ms-grid-column: 3;
130
- }
131
- .top ul > *:nth-child(9) {
132
- -ms-grid-row: 2;
133
- -ms-grid-column: 3;
134
- }
135
- .top ul > *:nth-child(10) {
136
- -ms-grid-row: 3;
137
- -ms-grid-column: 3;
138
- }
139
- .top ul > *:nth-child(11) {
140
- -ms-grid-row: 4;
141
- -ms-grid-column: 3;
142
- }
143
- .top ul > *:nth-child(12) {
144
- -ms-grid-row: 5;
145
- -ms-grid-column: 3;
146
- }
147
- .top ul > *:nth-child(13) {
148
- -ms-grid-row: 6;
149
- -ms-grid-column: 3;
150
- }
151
- .top ul > *:nth-child(14) {
152
- -ms-grid-row: 7;
153
- -ms-grid-column: 3;
154
- }
155
- }
156
- `];
1
+ import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
+ import { subnavListCSS } from './base.js';
3
+
4
+ export default [subnavListCSS, css`
5
+ img {
6
+ display: block;
7
+ width: 90px;
8
+ height: 90px;
9
+ margin: 0 auto 1rem auto;
10
+ border-radius: 45px;
11
+ }
12
+
13
+ h3 {
14
+ margin-top: 0;
15
+ font-size: 1.8rem;
16
+ }
17
+
18
+ .icon-links {
19
+ display: -webkit-box;
20
+ display: -ms-flexbox;
21
+ display: flex;
22
+ -webkit-box-pack: space-evenly;
23
+ -ms-flex-pack: space-evenly;
24
+ justify-content: space-evenly;
25
+ text-align: center;
26
+ }
27
+
28
+ .icon-links a {
29
+ display: inline-block;
30
+ width: 12rem;
31
+ margin-bottom: 1.5rem;
32
+ overflow: hidden;
33
+ white-space: nowrap;
34
+ text-align: center;
35
+ text-overflow: ellipsis;
36
+ }
37
+
38
+ .icon-links a + a {
39
+ margin-left: 2rem;
40
+ }
41
+
42
+ .featured h4 {
43
+ display: none;
44
+ }
45
+
46
+ @media (min-width: 890px) {
47
+ :host {
48
+ display: -ms-grid;
49
+ display: grid;
50
+ -ms-grid-columns: 40% 20% 40%;
51
+ grid-template-columns: 40% 20% 40%;
52
+ }
53
+
54
+ .wayback-search {
55
+ -ms-grid-column: 1;
56
+ -ms-grid-column-span: 3;
57
+ grid-column: 1 / 4;
58
+ }
59
+
60
+ h3 {
61
+ display: none;
62
+ }
63
+
64
+ .icon-links {
65
+ -ms-grid-column: 1;
66
+ }
67
+
68
+ .icon-links a {
69
+ padding-top: 3.5rem;
70
+ max-width: 16rem;
71
+ }
72
+
73
+ .links {
74
+ padding: 0 1.5rem;
75
+ }
76
+
77
+ .featured {
78
+ -ms-grid-column: 2;
79
+ }
80
+
81
+ .featured h4 {
82
+ display: block;
83
+ }
84
+
85
+ .top {
86
+ -ms-grid-column: 3;
87
+ }
88
+
89
+ .top ul {
90
+ display: -ms-grid;
91
+ display: grid;
92
+ -ms-grid-columns: 50% 3rem 50%;
93
+ grid-template-columns: 50% 50%;
94
+ -ms-grid-rows: (auto)[7];
95
+ grid-template-rows: repeat(7, auto);
96
+ grid-column-gap: 3rem;
97
+ grid-auto-flow: column;
98
+ }
99
+ .top ul > *:nth-child(1) {
100
+ -ms-grid-row: 1;
101
+ -ms-grid-column: 1;
102
+ }
103
+ .top ul > *:nth-child(2) {
104
+ -ms-grid-row: 2;
105
+ -ms-grid-column: 1;
106
+ }
107
+ .top ul > *:nth-child(3) {
108
+ -ms-grid-row: 3;
109
+ -ms-grid-column: 1;
110
+ }
111
+ .top ul > *:nth-child(4) {
112
+ -ms-grid-row: 4;
113
+ -ms-grid-column: 1;
114
+ }
115
+ .top ul > *:nth-child(5) {
116
+ -ms-grid-row: 5;
117
+ -ms-grid-column: 1;
118
+ }
119
+ .top ul > *:nth-child(6) {
120
+ -ms-grid-row: 6;
121
+ -ms-grid-column: 1;
122
+ }
123
+ .top ul > *:nth-child(7) {
124
+ -ms-grid-row: 7;
125
+ -ms-grid-column: 1;
126
+ }
127
+ .top ul > *:nth-child(8) {
128
+ -ms-grid-row: 1;
129
+ -ms-grid-column: 3;
130
+ }
131
+ .top ul > *:nth-child(9) {
132
+ -ms-grid-row: 2;
133
+ -ms-grid-column: 3;
134
+ }
135
+ .top ul > *:nth-child(10) {
136
+ -ms-grid-row: 3;
137
+ -ms-grid-column: 3;
138
+ }
139
+ .top ul > *:nth-child(11) {
140
+ -ms-grid-row: 4;
141
+ -ms-grid-column: 3;
142
+ }
143
+ .top ul > *:nth-child(12) {
144
+ -ms-grid-row: 5;
145
+ -ms-grid-column: 3;
146
+ }
147
+ .top ul > *:nth-child(13) {
148
+ -ms-grid-row: 6;
149
+ -ms-grid-column: 3;
150
+ }
151
+ .top ul > *:nth-child(14) {
152
+ -ms-grid-row: 7;
153
+ -ms-grid-column: 3;
154
+ }
155
+ }
156
+ `];
@@ -1,15 +1,15 @@
1
- import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
-
3
- export default css`
4
- ul {
5
- padding: 0;
6
- margin: -1rem 0 0 0;
7
- list-style: none;
8
- }
9
- a {
10
- display: block;
11
- padding: 1rem 0;
12
- text-decoration: none;
13
- color: var(--activeColor);
14
- }
15
- `;
1
+ import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
+
3
+ export default css`
4
+ ul {
5
+ padding: 0;
6
+ margin: -1rem 0 0 0;
7
+ list-style: none;
8
+ }
9
+ a {
10
+ display: block;
11
+ padding: 1rem 0;
12
+ text-decoration: none;
13
+ color: var(--activeColor);
14
+ }
15
+ `;
@@ -1,136 +1,136 @@
1
- import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
-
3
- export default css`
4
- input[type="text"] {
5
- color: var(--grey13);
6
- }
7
-
8
- input:focus {
9
- outline: none;
10
- }
11
- button {
12
- background: none;
13
- color: inherit;
14
- border: none;
15
- font: inherit;
16
- cursor: pointer;
17
- }
18
- button:focus {
19
- outline: none;
20
- }
21
- .search {
22
- padding-top: 0;
23
- margin-right: 0.5rem;
24
- }
25
- .search svg {
26
- position: relative;
27
- fill: var(--activeSearchColor);
28
- }
29
- .search-activated {
30
- display: -webkit-box;
31
- display: -ms-flexbox;
32
- display: flex;
33
- position: absolute;
34
- top: 0;
35
- right: 4rem;
36
- bottom: 0;
37
- left: 4rem;
38
- z-index: 3;
39
- padding: 0.5rem 0.2rem;
40
- border-radius: 1rem 1rem 0 0;
41
- background: var(--searchActiveBg);
42
- }
43
- .search-inactive {
44
- display: none;
45
- }
46
- .search-activated .highlight,
47
- .search-activated .search {
48
- background: var(--searchActiveInputBg);
49
- border-radius: 0.5rem;
50
- }
51
- .search-activated .highlight {
52
- display: -webkit-box;
53
- display: -ms-flexbox;
54
- display: flex;
55
- width: 100%;
56
- margin: 0 0.5rem;
57
- }
58
- .search-activated .search {
59
- height: 100%;
60
- padding: 0;
61
- margin-right: 0;
62
- -ms-flex-item-align: center;
63
- -ms-grid-row-align: center;
64
- align-self: center;
65
- }
66
- .search-activated .search svg {
67
- height: 3rem;
68
- width: 3rem;
69
- }
70
- .search-activated .search-field {
71
- width: 100%;
72
- height: 100%;
73
- box-sizing: border-box;
74
- padding-left: 1rem;
75
- border-radius: 0.5rem;
76
- border: none;
77
- font-size: 1.6rem;
78
- text-align: center;
79
- }
80
- .search-activated .search-field:focus {
81
- outline: none;
82
- }
83
- @keyframes fade-in {
84
- 0% {
85
- opacity: 0;
86
- }
87
- 100% {
88
- opacity: 1;
89
- }
90
- }
91
- .fade-in {
92
- animation: fade-in 0.2s forwards;
93
- }
94
-
95
- @media (min-width: 890px) {
96
- .search svg {
97
- display: inline;
98
- width: 2.8rem;
99
- height: 2.8rem;
100
- vertical-align: -14px;
101
- }
102
- .search path {
103
- fill: var(--desktopSearchIconFill);
104
- }
105
-
106
- .search-inactive,
107
- .search-activated {
108
- display: block;
109
- position: static;
110
- padding: 1.1rem 0.2rem;
111
- background: transparent;
112
- }
113
-
114
- .search-activated .highlight {
115
- width: 13rem;
116
- height: 2.8rem;
117
- -webkit-box-orient: horizontal;
118
- -webkit-box-direction: reverse;
119
- -ms-flex-direction: row-reverse;
120
- flex-direction: row-reverse;
121
- }
122
-
123
- .search-activated .search-field {
124
- width: calc(100% - 28px);
125
- height: 100%;
126
- padding-left: 0;
127
- font-size: 1.4rem;
128
- text-align: left;
129
- }
130
-
131
- .search-activated .search svg {
132
- width: 2.8rem;
133
- height: 2.8rem;
134
- }
135
- }
136
- `;
1
+ import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
+
3
+ export default css`
4
+ input[type="text"] {
5
+ color: var(--grey13);
6
+ }
7
+
8
+ input:focus {
9
+ outline: none;
10
+ }
11
+ button {
12
+ background: none;
13
+ color: inherit;
14
+ border: none;
15
+ font: inherit;
16
+ cursor: pointer;
17
+ }
18
+ button:focus {
19
+ outline: none;
20
+ }
21
+ .search {
22
+ padding-top: 0;
23
+ margin-right: 0.5rem;
24
+ }
25
+ .search svg {
26
+ position: relative;
27
+ fill: var(--activeSearchColor);
28
+ }
29
+ .search-activated {
30
+ display: -webkit-box;
31
+ display: -ms-flexbox;
32
+ display: flex;
33
+ position: absolute;
34
+ top: 0;
35
+ right: 4rem;
36
+ bottom: 0;
37
+ left: 4rem;
38
+ z-index: 3;
39
+ padding: 0.5rem 0.2rem;
40
+ border-radius: 1rem 1rem 0 0;
41
+ background: var(--searchActiveBg);
42
+ }
43
+ .search-inactive {
44
+ display: none;
45
+ }
46
+ .search-activated .highlight,
47
+ .search-activated .search {
48
+ background: var(--searchActiveInputBg);
49
+ border-radius: 0.5rem;
50
+ }
51
+ .search-activated .highlight {
52
+ display: -webkit-box;
53
+ display: -ms-flexbox;
54
+ display: flex;
55
+ width: 100%;
56
+ margin: 0 0.5rem;
57
+ }
58
+ .search-activated .search {
59
+ height: 100%;
60
+ padding: 0;
61
+ margin-right: 0;
62
+ -ms-flex-item-align: center;
63
+ -ms-grid-row-align: center;
64
+ align-self: center;
65
+ }
66
+ .search-activated .search svg {
67
+ height: 3rem;
68
+ width: 3rem;
69
+ }
70
+ .search-activated .search-field {
71
+ width: 100%;
72
+ height: 100%;
73
+ box-sizing: border-box;
74
+ padding-left: 1rem;
75
+ border-radius: 0.5rem;
76
+ border: none;
77
+ font-size: 1.6rem;
78
+ text-align: center;
79
+ }
80
+ .search-activated .search-field:focus {
81
+ outline: none;
82
+ }
83
+ @keyframes fade-in {
84
+ 0% {
85
+ opacity: 0;
86
+ }
87
+ 100% {
88
+ opacity: 1;
89
+ }
90
+ }
91
+ .fade-in {
92
+ animation: fade-in 0.2s forwards;
93
+ }
94
+
95
+ @media (min-width: 890px) {
96
+ .search svg {
97
+ display: inline;
98
+ width: 2.8rem;
99
+ height: 2.8rem;
100
+ vertical-align: -14px;
101
+ }
102
+ .search path {
103
+ fill: var(--desktopSearchIconFill);
104
+ }
105
+
106
+ .search-inactive,
107
+ .search-activated {
108
+ display: block;
109
+ position: static;
110
+ padding: 1.1rem 0.2rem;
111
+ background: transparent;
112
+ }
113
+
114
+ .search-activated .highlight {
115
+ width: 13rem;
116
+ height: 2.8rem;
117
+ -webkit-box-orient: horizontal;
118
+ -webkit-box-direction: reverse;
119
+ -ms-flex-direction: row-reverse;
120
+ flex-direction: row-reverse;
121
+ }
122
+
123
+ .search-activated .search-field {
124
+ width: calc(100% - 28px);
125
+ height: 100%;
126
+ padding-left: 0;
127
+ font-size: 1.4rem;
128
+ text-align: left;
129
+ }
130
+
131
+ .search-activated .search svg {
132
+ width: 2.8rem;
133
+ height: 2.8rem;
134
+ }
135
+ }
136
+ `;