@internetarchive/ia-topnav 1.1.30 → 1.1.31-alpha.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 (83) hide show
  1. package/.eslintrc +16 -16
  2. package/LICENSE +661 -661
  3. package/README.md +147 -147
  4. package/index.d.ts +104 -104
  5. package/index.js +3 -3
  6. package/package.json +61 -61
  7. package/src/assets/img/hamburger.js +36 -36
  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.js +15 -15
  12. package/src/assets/img/icon-ellipses.js +15 -15
  13. package/src/assets/img/icon-ia-logo.js +24 -24
  14. package/src/assets/img/icon-images.js +15 -15
  15. package/src/assets/img/icon-search.js +15 -15
  16. package/src/assets/img/icon-software.js +15 -15
  17. package/src/assets/img/icon-texts.js +15 -15
  18. package/src/assets/img/icon-upload.js +15 -15
  19. package/src/assets/img/icon-user.js +15 -15
  20. package/src/assets/img/icon-video.js +15 -15
  21. package/src/assets/img/icon-web.js +15 -15
  22. package/src/assets/img/icon.js +18 -18
  23. package/src/assets/img/icons.js +29 -29
  24. package/src/assets/img/user.js +38 -38
  25. package/src/assets/img/wordmark-stacked.js +13 -13
  26. package/src/data/menus.js +669 -659
  27. package/src/desktop-subnav.js +45 -45
  28. package/src/dropdown-menu.js +102 -98
  29. package/src/ia-topnav.js +307 -307
  30. package/src/lib/formatUrl.js +1 -1
  31. package/src/lib/location-handler.js +5 -5
  32. package/src/lib/query-handler.js +7 -7
  33. package/src/lib/toSentenceCase.js +8 -8
  34. package/src/login-button.js +79 -79
  35. package/src/media-button.js +113 -113
  36. package/src/media-menu.js +133 -133
  37. package/src/media-slider.js +104 -104
  38. package/src/media-subnav.js +112 -112
  39. package/src/more-slider.js +33 -33
  40. package/src/nav-search.js +125 -125
  41. package/src/primary-nav.js +215 -203
  42. package/src/save-page-form.js +59 -59
  43. package/src/search-menu.js +115 -115
  44. package/src/signed-out-dropdown.js +10 -10
  45. package/src/styles/base.js +48 -48
  46. package/src/styles/desktop-subnav.js +37 -37
  47. package/src/styles/dropdown-menu.js +149 -139
  48. package/src/styles/ia-topnav.js +88 -88
  49. package/src/styles/login-button.js +70 -70
  50. package/src/styles/media-button.js +153 -153
  51. package/src/styles/media-menu.js +70 -70
  52. package/src/styles/media-slider.js +81 -81
  53. package/src/styles/media-subnav.js +156 -156
  54. package/src/styles/more-slider.js +15 -15
  55. package/src/styles/nav-search.js +134 -134
  56. package/src/styles/primary-nav.js +298 -258
  57. package/src/styles/save-page-form.js +53 -53
  58. package/src/styles/search-menu.js +99 -99
  59. package/src/styles/signed-out-dropdown.js +31 -31
  60. package/src/styles/user-menu.js +31 -31
  61. package/src/styles/wayback-search.js +48 -48
  62. package/src/styles/wayback-slider.js +30 -30
  63. package/src/tracked-element.js +27 -27
  64. package/src/user-menu.js +42 -42
  65. package/src/wayback-search.js +18 -18
  66. package/src/wayback-slider.js +88 -88
  67. package/test/assets/img/hamburger.test.js +15 -15
  68. package/test/assets/img/user.test.js +15 -15
  69. package/test/data/menus.test.js +19 -19
  70. package/test/dropdown-menu.test.js +25 -25
  71. package/test/ia-icon.test.js +13 -13
  72. package/test/ia-topnav.test.js +273 -273
  73. package/test/login-button.test.js +15 -15
  74. package/test/media-button.test.js +19 -19
  75. package/test/media-menu.test.js +40 -40
  76. package/test/media-slider.test.js +57 -57
  77. package/test/more-slider.test.js +13 -13
  78. package/test/nav-search.test.js +61 -61
  79. package/test/primary-nav.test.js +82 -82
  80. package/test/save-page-form.test.js +35 -35
  81. package/test/search-menu.test.js +49 -49
  82. package/test/user-menu.test.js +33 -33
  83. package/test/wayback-slider.test.js +80 -80
@@ -1,258 +1,298 @@
1
- import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
-
3
- export default css`
4
- button:focus,
5
- a:focus,
6
- input:focus {
7
- outline: none;
8
- }
9
-
10
- nav {
11
- position: relative;
12
- display: -ms-grid;
13
- display: grid;
14
- height: 4rem;
15
- grid-template-areas: 'hamburger empty search user';
16
- -ms-grid-columns: 4rem minmax(1rem, 100%) 4.3rem 4rem;
17
- grid-template-columns: 4rem auto 4.3rem 4rem;
18
- -ms-grid-rows: 100%;
19
- grid-template-rows: 100%;
20
- background: var(--primaryNavBg);
21
- border-bottom: 1px solid var(--primaryNavBottomBorder);
22
- }
23
-
24
- button {
25
- background: none;
26
- color: inherit;
27
- border: none;
28
- font: inherit;
29
- cursor: pointer;
30
- }
31
-
32
- .branding {
33
- position: static;
34
- float: left;
35
- padding: 0 5px 0 10px;
36
- -webkit-transform: translate(0, 0);
37
- -ms-transform: translate(0, 0);
38
- transform: translate(0, 0);
39
- }
40
-
41
- slot,
42
- .branding {
43
- display: flex;
44
- justify-content: left;
45
- align-items: center;
46
- }
47
-
48
- media-menu {
49
- grid-column-start: hamburger-start;
50
- grid-column-end: user-end;
51
- }
52
-
53
- .ia-logo,
54
- .ia-wordmark {
55
- margin-right: 5px;
56
- }
57
-
58
- .hamburger {
59
- -ms-grid-row: 1;
60
- -ms-grid-column: 1;
61
- grid-area: hamburger;
62
- padding: 0;
63
- }
64
-
65
- .search-trigger {
66
- -ms-grid-row: 1;
67
- -ms-grid-column: 3;
68
- grid-area: search;
69
- position: relative;
70
- padding: 0;
71
- z-index: 1;
72
- width: 100%;
73
- text-align: right;
74
- -webkit-box-align: center;
75
- -ms-flex-align: center;
76
- align-items: center;
77
- }
78
-
79
- .search-trigger .fill-color {
80
- fill: var(--iconFill);
81
- }
82
-
83
- .search-activated {
84
- position: relative;
85
- z-index: 3;
86
- }
87
-
88
- .upload {
89
- display: none;
90
- }
91
-
92
- .upload span {
93
- display: none;
94
- }
95
-
96
- .user-info {
97
- -ms-grid-row: 1;
98
- -ms-grid-column: 4;
99
- grid-area: user;
100
- -ms-grid-row-align: stretch;
101
- align-self: stretch;
102
- -ms-grid-column-align: end;
103
- justify-self: end;
104
- }
105
-
106
- .screen-name {
107
- display: none;
108
- font-size: 1.3rem;
109
- vertical-align: middle;
110
- text-transform: uppercase;
111
- }
112
-
113
- .user-menu {
114
- height: 100%;
115
- padding: 0.5rem 1rem;
116
- color: var(--lightTextColor);
117
- }
118
-
119
- .user-menu:hover {
120
- color: var(--linkHoverColor);
121
- }
122
-
123
- .user-menu.active {
124
- border-radius: 1rem 1rem 0 0;
125
- background: var(--activeButtonBg);
126
- }
127
-
128
- .user-menu img {
129
- display: block;
130
- width: 30px;
131
- height: 30px;
132
- }
133
-
134
- .link-home {
135
- display: flex;
136
- text-decoration: none;
137
- }
138
-
139
- @media only screen and (min-width: 890px) and (max-device-width: 905px) {
140
- .branding.second-logo {
141
- padding-right: 0;
142
- }
143
- }
144
-
145
- @media (min-width: 906px) {
146
- .branding.second-logo {
147
- padding-right: 20px;
148
- }
149
- }
150
-
151
- @media (max-width: 889px) {
152
- slot[name='opt-sec-logo'] {
153
- display: none;
154
- }
155
- }
156
-
157
- @media (min-width: 890px) {
158
- :host {
159
- --userIconWidth: 32px;
160
- --userIconHeight: 32px;
161
- }
162
-
163
- nav {
164
- display: block;
165
- z-index: 3;
166
- height: 5rem;
167
- padding-right: 1.5rem;
168
- }
169
-
170
- slot[name='opt-sec-logo-mobile'] {
171
- display: none;
172
- }
173
-
174
- .branding {
175
- margin-top: 1rem;
176
- }
177
-
178
- .ia-logo,
179
- .ia-wordmark {
180
- margin-right: 10px;
181
- }
182
-
183
- .hamburger,
184
- .search-trigger {
185
- display: none;
186
- }
187
-
188
- .user-info {
189
- float: right;
190
- padding-top: 1rem;
191
- }
192
-
193
- .user-menu {
194
- padding-top: 0;
195
- }
196
-
197
- .user-menu.active {
198
- background: transparent;
199
- }
200
-
201
- .user-menu img {
202
- display: inline-block;
203
- vertical-align: middle;
204
- }
205
-
206
- .upload {
207
- display: block;
208
- float: right;
209
- margin-top: 1rem;
210
- font-size: 1.4rem;
211
- text-transform: uppercase;
212
- text-decoration: none;
213
- color: var(--lightTextColor);
214
- }
215
- .upload:active,
216
- .upload:focus,
217
- .upload:hover {
218
- color: var(--linkHoverColor);
219
- }
220
-
221
- .upload svg {
222
- width: 32px;
223
- height: 32px;
224
- vertical-align: middle;
225
- fill: var(--iconFill);
226
- }
227
-
228
- .upload:hover svg,
229
- .upload:focus svg,
230
- .upload:active svg {
231
- fill: var(--linkHoverColor);
232
- }
233
-
234
- nav-search {
235
- float: right;
236
- margin-left: 1rem;
237
- }
238
-
239
- login-button {
240
- display: block;
241
- margin-right: 1rem;
242
- }
243
- }
244
-
245
- @media (min-width: 990px) {
246
- .screen-name {
247
- display: inline-block;
248
- text-overflow: ellipsis;
249
- overflow: hidden;
250
- white-space: nowrap;
251
- max-width: 165px;
252
- }
253
-
254
- .upload span {
255
- display: inline;
256
- }
257
- }
258
- `;
1
+ import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
+
3
+ export default css`
4
+ button:focus,
5
+ a:focus,
6
+ input:focus {
7
+ outline: none;
8
+ }
9
+
10
+ nav {
11
+ position: relative;
12
+ display: -ms-grid;
13
+ display: grid;
14
+ height: 40px;
15
+ grid-template-areas: 'hamburger empty heart search user';
16
+ -ms-grid-columns: 40px minmax(1rem, 100%) 40px 40px 40px;
17
+ grid-template-columns: 40px auto 40px 40px 40px;
18
+ -ms-grid-rows: 100%;
19
+ grid-template-rows: 100%;
20
+ background: var(--primaryNavBg);
21
+ border-bottom: 1px solid var(--primaryNavBottomBorder);
22
+ }
23
+
24
+ nav.hide-search {
25
+ grid-template-areas: 'hamburger empty heart user';
26
+ -ms-grid-columns: 40px minmax(1rem, 100%) 40px 40px;
27
+ grid-template-columns: 40px auto 40px 40px;
28
+ }
29
+
30
+ button {
31
+ background: none;
32
+ color: inherit;
33
+ border: none;
34
+ font: inherit;
35
+ cursor: pointer;
36
+ }
37
+
38
+ .branding {
39
+ position: static;
40
+ float: left;
41
+ padding: 0 5px 0 10px;
42
+ -webkit-transform: translate(0, 0);
43
+ -ms-transform: translate(0, 0);
44
+ transform: translate(0, 0);
45
+ }
46
+
47
+ slot,
48
+ .branding {
49
+ display: flex;
50
+ justify-content: left;
51
+ align-items: center;
52
+ }
53
+
54
+ media-menu {
55
+ grid-column-start: hamburger-start;
56
+ grid-column-end: user-end;
57
+ }
58
+
59
+ .ia-logo,
60
+ .ia-wordmark {
61
+ margin-right: 5px;
62
+ }
63
+
64
+ .hamburger {
65
+ -ms-grid-row: 1;
66
+ -ms-grid-column: 1;
67
+ grid-area: hamburger;
68
+ padding: 0;
69
+ }
70
+
71
+ .mobile-donate-link {
72
+ -ms-grid-row: 1;
73
+ -ms-grid-column: 3;
74
+ grid-area: heart;
75
+ position: relative;
76
+ padding: 0;
77
+ z-index: 1;
78
+ width: 100%;
79
+ text-align: right;
80
+ -webkit-box-align: center;
81
+ -ms-flex-align: center;
82
+ align-items: center;
83
+ }
84
+ .mobile-donate-link svg {
85
+ height: 50px;
86
+ width: 50px;
87
+ margin-top: -5px;
88
+ margin-left: -5px;
89
+ }
90
+ .mobile-donate-link .fill-color {
91
+ fill: rgb(255, 0, 0);
92
+ }
93
+ .mobile-donate-link .label {
94
+ position: absolute;
95
+ width: 1px;
96
+ height: 1px;
97
+ padding: 0;
98
+ margin: -1px;
99
+ overflow: hidden;
100
+ clip: rect(0,0,0,0);
101
+ border: 0;
102
+ }
103
+
104
+ .search-trigger {
105
+ -ms-grid-row: 1;
106
+ -ms-grid-column: 4;
107
+ grid-area: search;
108
+ position: relative;
109
+ padding: 0;
110
+ z-index: 1;
111
+ width: 100%;
112
+ text-align: right;
113
+ -webkit-box-align: center;
114
+ -ms-flex-align: center;
115
+ align-items: center;
116
+ }
117
+
118
+ .search-trigger .fill-color {
119
+ fill: var(--iconFill);
120
+ }
121
+
122
+ .search-activated {
123
+ position: relative;
124
+ z-index: 3;
125
+ }
126
+
127
+ .upload {
128
+ display: none;
129
+ }
130
+
131
+ .upload span {
132
+ display: none;
133
+ }
134
+
135
+ .user-info {
136
+ -ms-grid-row: 1;
137
+ -ms-grid-column: 5;
138
+ grid-area: user;
139
+ -ms-grid-row-align: stretch;
140
+ align-self: stretch;
141
+ -ms-grid-column-align: end;
142
+ justify-self: end;
143
+ }
144
+
145
+ .screen-name {
146
+ display: none;
147
+ font-size: 1.3rem;
148
+ vertical-align: middle;
149
+ text-transform: uppercase;
150
+ }
151
+
152
+ .user-menu {
153
+ height: 100%;
154
+ padding: 0.5rem 1rem;
155
+ color: var(--lightTextColor);
156
+ }
157
+
158
+ .user-menu:hover {
159
+ color: var(--linkHoverColor);
160
+ }
161
+
162
+ .user-menu.active {
163
+ border-radius: 1rem 1rem 0 0;
164
+ background: var(--activeButtonBg);
165
+ }
166
+
167
+ .user-menu img {
168
+ display: block;
169
+ width: 30px;
170
+ height: 30px;
171
+ }
172
+
173
+ .link-home {
174
+ display: flex;
175
+ text-decoration: none;
176
+ }
177
+
178
+ @media only screen and (min-width: 890px) and (max-device-width: 905px) {
179
+ .branding.second-logo {
180
+ padding-right: 0;
181
+ }
182
+ }
183
+
184
+ @media (min-width: 906px) {
185
+ .branding.second-logo {
186
+ padding-right: 20px;
187
+ }
188
+ }
189
+
190
+ @media (max-width: 889px) {
191
+ slot[name='opt-sec-logo'] {
192
+ display: none;
193
+ }
194
+ }
195
+
196
+ @media (min-width: 890px) {
197
+ :host {
198
+ --userIconWidth: 32px;
199
+ --userIconHeight: 32px;
200
+ }
201
+
202
+ nav {
203
+ display: block;
204
+ z-index: 3;
205
+ height: 5rem;
206
+ padding-right: 1.5rem;
207
+ }
208
+
209
+ slot[name='opt-sec-logo-mobile'] {
210
+ display: none;
211
+ }
212
+
213
+ .branding {
214
+ margin-top: 1rem;
215
+ }
216
+
217
+ .ia-logo,
218
+ .ia-wordmark {
219
+ margin-right: 10px;
220
+ }
221
+
222
+ .hamburger,
223
+ .search-trigger,
224
+ .mobile-donate-link {
225
+ display: none;
226
+ }
227
+
228
+ .user-info {
229
+ float: right;
230
+ padding-top: 1rem;
231
+ }
232
+
233
+ .user-menu {
234
+ padding-top: 0;
235
+ }
236
+
237
+ .user-menu.active {
238
+ background: transparent;
239
+ }
240
+
241
+ .user-menu img {
242
+ display: inline-block;
243
+ vertical-align: middle;
244
+ }
245
+
246
+ .upload {
247
+ display: block;
248
+ float: right;
249
+ margin-top: 1rem;
250
+ font-size: 1.4rem;
251
+ text-transform: uppercase;
252
+ text-decoration: none;
253
+ color: var(--lightTextColor);
254
+ }
255
+ .upload:active,
256
+ .upload:focus,
257
+ .upload:hover {
258
+ color: var(--linkHoverColor);
259
+ }
260
+
261
+ .upload svg {
262
+ width: 32px;
263
+ height: 32px;
264
+ vertical-align: middle;
265
+ fill: var(--iconFill);
266
+ }
267
+
268
+ .upload:hover svg,
269
+ .upload:focus svg,
270
+ .upload:active svg {
271
+ fill: var(--linkHoverColor);
272
+ }
273
+
274
+ nav-search {
275
+ float: right;
276
+ margin-left: 1rem;
277
+ }
278
+
279
+ login-button {
280
+ display: block;
281
+ margin-right: 1rem;
282
+ }
283
+ }
284
+
285
+ @media (min-width: 990px) {
286
+ .screen-name {
287
+ display: inline-block;
288
+ text-overflow: ellipsis;
289
+ overflow: hidden;
290
+ white-space: nowrap;
291
+ max-width: 165px;
292
+ }
293
+
294
+ .upload span {
295
+ display: inline;
296
+ }
297
+ }
298
+ `;
@@ -1,53 +1,53 @@
1
- import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
-
3
- export default css`
4
- div {
5
- display: grid;
6
- grid-template-columns: 1fr auto;
7
- grid-column-gap: .8rem;
8
- margin: 0;
9
- padding: 0;
10
- border: none;
11
- }
12
-
13
- input[type="text"] {
14
- width: 100%;
15
- height: 30px;
16
- box-sizing: border-box;
17
- border: 1px solid var(--savePageInputBorder);
18
- border-radius: .5rem;
19
- color: var(--grey13);
20
- }
21
-
22
- input[type="submit"] {
23
- -webkit-appearance: none;
24
- -moz-appearance: none;
25
- appearance: none;
26
- padding: .4rem .8rem;
27
- font: normal 1.3rem var(--themeFontFamily);
28
- text-transform: uppercase;
29
- color: var(--savePageSubmitText);
30
- border: none;
31
- border-radius: 16px;
32
- background: var(--savePageSubmitBg);
33
- cursor: pointer;
34
- }
35
-
36
- .error {
37
- display: none;
38
- margin-top: .5rem;
39
- font-weight: bold;
40
- color: var(--savePageErrorText);
41
- }
42
-
43
- .visible {
44
- display: block;
45
- }
46
-
47
- @media (min-width: 890px) {
48
- h3 {
49
- margin-top: 0;
50
- font: normal 100 1.6rem var(--themeFontFamily);
51
- }
52
- }
53
- `;
1
+ import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
+
3
+ export default css`
4
+ div {
5
+ display: grid;
6
+ grid-template-columns: 1fr auto;
7
+ grid-column-gap: .8rem;
8
+ margin: 0;
9
+ padding: 0;
10
+ border: none;
11
+ }
12
+
13
+ input[type="text"] {
14
+ width: 100%;
15
+ height: 30px;
16
+ box-sizing: border-box;
17
+ border: 1px solid var(--savePageInputBorder);
18
+ border-radius: .5rem;
19
+ color: var(--grey13);
20
+ }
21
+
22
+ input[type="submit"] {
23
+ -webkit-appearance: none;
24
+ -moz-appearance: none;
25
+ appearance: none;
26
+ padding: .4rem .8rem;
27
+ font: normal 1.3rem var(--themeFontFamily);
28
+ text-transform: uppercase;
29
+ color: var(--savePageSubmitText);
30
+ border: none;
31
+ border-radius: 16px;
32
+ background: var(--savePageSubmitBg);
33
+ cursor: pointer;
34
+ }
35
+
36
+ .error {
37
+ display: none;
38
+ margin-top: .5rem;
39
+ font-weight: bold;
40
+ color: var(--savePageErrorText);
41
+ }
42
+
43
+ .visible {
44
+ display: block;
45
+ }
46
+
47
+ @media (min-width: 890px) {
48
+ h3 {
49
+ margin-top: 0;
50
+ font: normal 100 1.6rem var(--themeFontFamily);
51
+ }
52
+ }
53
+ `;