@internetarchive/ia-topnav 1.4.0 → 1.4.1-alpha-webdev8259.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 (53) 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 +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/src/data/menus.js.map +1 -1
  8. package/dist/src/dropdown-menu.js +26 -26
  9. package/dist/src/dropdown-menu.js.map +1 -1
  10. package/dist/src/ia-topnav.d.ts +4 -1
  11. package/dist/src/ia-topnav.js +96 -81
  12. package/dist/src/ia-topnav.js.map +1 -1
  13. package/dist/src/lib/keyboard-navigation.js.map +1 -1
  14. package/dist/src/login-button.js +17 -17
  15. package/dist/src/login-button.js.map +1 -1
  16. package/dist/src/media-menu.js +21 -21
  17. package/dist/src/media-menu.js.map +1 -1
  18. package/dist/src/models.d.ts +1 -0
  19. package/dist/src/models.js.map +1 -1
  20. package/dist/src/primary-nav.d.ts +3 -1
  21. package/dist/src/primary-nav.js +118 -95
  22. package/dist/src/primary-nav.js.map +1 -1
  23. package/dist/src/styles/login-button.js +87 -87
  24. package/dist/src/styles/login-button.js.map +1 -1
  25. package/dist/src/styles/primary-nav.js +343 -308
  26. package/dist/src/styles/primary-nav.js.map +1 -1
  27. package/dist/src/user-menu.js +13 -13
  28. package/dist/src/user-menu.js.map +1 -1
  29. package/dist/test/ia-topnav.test.js +39 -9
  30. package/dist/test/ia-topnav.test.js.map +1 -1
  31. package/dist/test/primary-nav.test.js +55 -7
  32. package/dist/test/primary-nav.test.js.map +1 -1
  33. package/eslint.config.mjs +53 -53
  34. package/index.ts +4 -3
  35. package/package.json +72 -72
  36. package/prettier.config.js +9 -9
  37. package/src/data/menus.ts +652 -652
  38. package/src/dropdown-menu.ts +132 -132
  39. package/src/ia-topnav.ts +383 -366
  40. package/src/lib/keyboard-navigation.ts +166 -166
  41. package/src/login-button.ts +78 -78
  42. package/src/media-menu.ts +143 -143
  43. package/src/models.ts +65 -63
  44. package/src/primary-nav.ts +324 -296
  45. package/src/styles/login-button.ts +90 -90
  46. package/src/styles/primary-nav.ts +346 -311
  47. package/src/user-menu.ts +32 -32
  48. package/ssl/server.key +28 -28
  49. package/test/ia-topnav.test.ts +381 -343
  50. package/test/primary-nav.test.ts +163 -94
  51. package/tsconfig.json +31 -31
  52. package/web-dev-server.config.mjs +32 -32
  53. package/web-test-runner.config.mjs +41 -41
@@ -1,311 +1,346 @@
1
1
  import { css } from 'lit';
2
- export default css `
3
- button:focus,
4
- input:focus {
5
- outline: none;
6
- }
7
-
8
- nav {
9
- position: relative;
10
- display: flex;
11
- height: 4rem;
12
- grid-template-areas: 'hamburger empty heart search user';
13
- -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem 4rem;
14
- grid-template-columns: 4rem auto 4rem 4rem 4rem;
15
- -ms-grid-rows: 100%;
16
- grid-template-rows: 100%;
17
- background: var(--primaryNavBg);
18
- border-bottom: 1px solid var(--primaryNavBottomBorder);
19
- }
20
-
21
- nav.hide-search {
22
- grid-template-areas: 'hamburger empty heart user';
23
- -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem;
24
- grid-template-columns: 4rem auto 4rem 4rem;
25
- }
26
-
27
- .right-side-section {
28
- display: flex;
29
- margin-left: auto;
30
- user-select: none;
31
- }
32
- button {
33
- background: none;
34
- color: inherit;
35
- border: none;
36
- font: inherit;
37
- cursor: pointer;
38
- }
39
-
40
- .branding {
41
- position: static;
42
- float: left;
43
- margin: 0 !important;
44
- padding: 0 5px 0 10px;
45
- -webkit-transform: translate(0, 0);
46
- -ms-transform: translate(0, 0);
47
- transform: translate(0, 0);
48
- }
49
-
50
- slot,
51
- .branding {
52
- display: flex;
53
- justify-content: left;
54
- align-items: center;
55
- }
56
-
57
- media-menu {
58
- flex: 1;
59
- justify-self: stretch;
60
- }
61
-
62
- .ia-logo {
63
- height: 3rem;
64
- width: 2.7rem;
65
- display: inline-block;
66
- }
67
- .ia-wordmark {
68
- height: 3rem;
69
- width: 9.5rem;
70
- }
71
- .ia-logo,
72
- .ia-wordmark {
73
- margin-right: 5px;
74
- }
75
-
76
- .hamburger {
77
- -ms-grid-row: 1;
78
- -ms-grid-column: 1;
79
- grid-area: hamburger;
80
- padding: 0;
81
- }
82
- .hamburger svg {
83
- height: 4rem;
84
- width: 4rem;
85
- fill: var(--activeColor);
86
- }
87
-
88
- .mobile-donate-link {
89
- display: inline-block;
90
- }
91
- .mobile-donate-link svg {
92
- height: 4rem;
93
- width: 4rem;
94
- }
95
- .mobile-donate-link .fill-color {
96
- fill: rgb(255, 0, 0);
97
- }
98
-
99
- .sr-only {
100
- position: absolute;
101
- width: 1px;
102
- height: 1px;
103
- margin: -1px;
104
- padding: 0;
105
- border: 0;
106
- overflow: hidden;
107
- white-space: nowrap;
108
- clip: rect(1px, 1px, 1px, 1px);
109
- -webkit-clip-path: inset(50%);
110
- clip-path: inset(50%);
111
- user-select: none;
112
- }
113
-
114
- .search-trigger {
115
- padding: 0;
116
- }
117
- .search-trigger svg {
118
- height: 4rem;
119
- width: 4rem;
120
- }
121
- .search-trigger .fill-color {
122
- fill: var(--iconFill);
123
- }
124
-
125
- .search-activated {
126
- position: relative;
127
- z-index: 3;
128
- }
129
-
130
- .upload {
131
- display: none;
132
- }
133
-
134
- .upload span {
135
- display: none;
136
- }
137
-
138
- .upload svg {
139
- height: 3rem;
140
- width: 3rem;
141
- }
142
-
143
- .screen-name {
144
- display: none;
145
- font-size: 1.3rem;
146
- vertical-align: middle;
147
- text-transform: uppercase;
148
- }
149
-
150
- .user-menu {
151
- color: var(--lightTextColor);
152
- padding: 0.5rem;
153
- height: 100%;
154
- }
155
-
156
- button.user-menu:hover,
157
- button.user-menu:focus {
158
- color: var(--linkHoverColor);
159
- outline: none;
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: 3rem;
170
- height: 3rem;
171
- }
172
-
173
- .link-home {
174
- text-decoration: none;
175
- display: inline-flex;
176
- }
177
- a.link-home:focus,
178
- a.link-home:focus-visible {
179
- outline-offset: 1px;
180
- }
181
-
182
- @media only screen and (min-width: 890px) and (max-device-width: 905px) {
183
- .branding.second-logo {
184
- padding-right: 0;
185
- }
186
- }
187
-
188
- @media (min-width: 906px) {
189
- .branding.second-logo {
190
- padding-right: 20px;
191
- }
192
- }
193
-
194
- @media (max-width: 889px) {
195
- slot[name='opt-sec-logo'] {
196
- display: none;
197
- }
198
-
199
- .right-side-section {
200
- display: initial;
201
- }
202
- .right-side-section .user-info {
203
- float: right;
204
- }
205
- }
206
-
207
- @media (min-width: 890px) {
208
- :host {
209
- --userIconWidth: 3.2rem;
210
- --userIconHeight: 3.2rem;
211
- }
212
-
213
- nav {
214
- display: flex;
215
- z-index: 4;
216
- height: 5rem;
217
- padding-right: 1.5rem;
218
- }
219
-
220
- slot[name='opt-sec-logo-mobile'] {
221
- display: none;
222
- }
223
-
224
- .ia-logo,
225
- .ia-wordmark {
226
- margin-right: 10px;
227
- }
228
-
229
- .hamburger,
230
- .search-trigger,
231
- .mobile-donate-link {
232
- display: none;
233
- }
234
-
235
- .user-info {
236
- display: block;
237
- float: right;
238
- vertical-align: middle;
239
- height: 100%;
240
- }
241
-
242
- .user-info .user-menu img {
243
- height: 3rem;
244
- width: 3rem;
245
- margin-right: 0.5rem;
246
- }
247
-
248
- .user-menu {
249
- padding: 1rem 0.5rem;
250
- }
251
- .user-menu.active {
252
- background: transparent;
253
- }
254
-
255
- .user-menu img {
256
- display: inline-block;
257
- vertical-align: middle;
258
- margin-right: 0.5rem;
259
- }
260
-
261
- .upload {
262
- display: block;
263
- padding: 1rem 0.5rem;
264
- float: right;
265
- font-size: 1.4rem;
266
- text-transform: uppercase;
267
- text-decoration: none;
268
- color: var(--lightTextColor);
269
- }
270
- .upload:active,
271
- .upload:focus,
272
- .upload:hover {
273
- color: var(--linkHoverColor);
274
- }
275
- .upload:focus-visible {
276
- outline: none;
277
- }
278
-
279
- .upload svg {
280
- vertical-align: middle;
281
- fill: var(--iconFill);
282
- }
283
-
284
- .upload:hover svg,
285
- .upload:focus svg,
286
- .upload:active svg {
287
- fill: var(--linkHoverColor);
288
- }
289
-
290
- nav-search {
291
- float: right;
292
- margin-left: 1rem;
293
- }
294
- }
295
-
296
- @media (min-width: 990px) {
297
- .screen-name {
298
- display: inline-block;
299
- text-overflow: ellipsis;
300
- overflow: hidden;
301
- white-space: nowrap;
302
- max-width: 165px;
303
- }
304
-
305
- .upload span {
306
- display: inline-block;
307
- vertical-align: middle;
308
- }
309
- }
2
+ export default css `
3
+ button:focus,
4
+ input:focus {
5
+ outline: none;
6
+ }
7
+
8
+ nav {
9
+ position: relative;
10
+ display: flex;
11
+ height: 4rem;
12
+ grid-template-areas: 'hamburger empty heart search user';
13
+ -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem 4rem;
14
+ grid-template-columns: 4rem auto 4rem 4rem 4rem;
15
+ -ms-grid-rows: 100%;
16
+ grid-template-rows: 100%;
17
+ background: var(--primaryNavBg);
18
+ border-bottom: 1px solid var(--primaryNavBottomBorder);
19
+ }
20
+
21
+ nav.hide-search {
22
+ grid-template-areas: 'hamburger empty heart user';
23
+ -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem;
24
+ grid-template-columns: 4rem auto 4rem 4rem;
25
+ }
26
+
27
+ .right-side-section {
28
+ display: flex;
29
+ margin-left: auto;
30
+ user-select: none;
31
+ }
32
+ button {
33
+ background: none;
34
+ color: inherit;
35
+ border: none;
36
+ font: inherit;
37
+ cursor: pointer;
38
+ }
39
+
40
+ .branding {
41
+ position: static;
42
+ float: left;
43
+ margin: 0 !important;
44
+ padding: 0 5px 0 10px;
45
+ -webkit-transform: translate(0, 0);
46
+ -ms-transform: translate(0, 0);
47
+ transform: translate(0, 0);
48
+ }
49
+
50
+ slot,
51
+ .branding {
52
+ display: flex;
53
+ justify-content: left;
54
+ align-items: center;
55
+ }
56
+
57
+ media-menu {
58
+ flex: 1;
59
+ justify-self: stretch;
60
+ }
61
+
62
+ .ia-logo {
63
+ height: 3rem;
64
+ width: 2.7rem;
65
+ display: inline-block;
66
+ }
67
+ .ia-wordmark {
68
+ height: 3rem;
69
+ width: 9.5rem;
70
+ }
71
+ .ia-logo,
72
+ .ia-wordmark {
73
+ margin-right: 5px;
74
+ }
75
+
76
+ .hamburger {
77
+ -ms-grid-row: 1;
78
+ -ms-grid-column: 1;
79
+ grid-area: hamburger;
80
+ padding: 0;
81
+ }
82
+ .hamburger svg {
83
+ height: 4rem;
84
+ width: 4rem;
85
+ fill: var(--activeColor);
86
+ }
87
+
88
+ .mobile-donate-link {
89
+ display: inline-block;
90
+ }
91
+ .mobile-donate-link svg {
92
+ height: 4rem;
93
+ width: 4rem;
94
+ }
95
+ .mobile-donate-link .fill-color {
96
+ fill: rgb(255, 0, 0);
97
+ }
98
+
99
+ .sr-only {
100
+ position: absolute;
101
+ width: 1px;
102
+ height: 1px;
103
+ margin: -1px;
104
+ padding: 0;
105
+ border: 0;
106
+ overflow: hidden;
107
+ white-space: nowrap;
108
+ clip: rect(1px, 1px, 1px, 1px);
109
+ -webkit-clip-path: inset(50%);
110
+ clip-path: inset(50%);
111
+ user-select: none;
112
+ }
113
+
114
+ .search-trigger {
115
+ padding: 0;
116
+ }
117
+ .search-trigger svg {
118
+ height: 4rem;
119
+ width: 4rem;
120
+ }
121
+ .search-trigger .fill-color {
122
+ fill: var(--iconFill);
123
+ }
124
+
125
+ .search-activated {
126
+ position: relative;
127
+ z-index: 3;
128
+ }
129
+
130
+ .custom-search-container {
131
+ display: none;
132
+ }
133
+
134
+ .custom-search-container.open {
135
+ display: flex;
136
+ position: absolute;
137
+ top: 0;
138
+ right: 4rem;
139
+ bottom: 0;
140
+ left: 4rem;
141
+ z-index: 3;
142
+ padding: 0.5rem 0.2rem;
143
+ border-radius: 1rem 1rem 0 0;
144
+ background: var(--searchActiveBg);
145
+ align-items: center;
146
+ animation: fade-in 0.2s forwards;
147
+ }
148
+
149
+ @keyframes fade-in {
150
+ 0% {
151
+ opacity: 0;
152
+ }
153
+ 100% {
154
+ opacity: 1;
155
+ }
156
+ }
157
+
158
+ .upload {
159
+ display: none;
160
+ }
161
+
162
+ .upload span {
163
+ display: none;
164
+ }
165
+
166
+ .upload svg {
167
+ height: 3rem;
168
+ width: 3rem;
169
+ }
170
+
171
+ .screen-name {
172
+ display: none;
173
+ font-size: 1.3rem;
174
+ vertical-align: middle;
175
+ text-transform: uppercase;
176
+ }
177
+
178
+ .user-menu {
179
+ color: var(--lightTextColor);
180
+ padding: 0.5rem;
181
+ height: 100%;
182
+ }
183
+
184
+ button.user-menu:hover,
185
+ button.user-menu:focus {
186
+ color: var(--linkHoverColor);
187
+ outline: none;
188
+ }
189
+
190
+ .user-menu.active {
191
+ border-radius: 1rem 1rem 0 0;
192
+ background: var(--activeButtonBg);
193
+ }
194
+
195
+ .user-menu img {
196
+ display: block;
197
+ width: 3rem;
198
+ height: 3rem;
199
+ }
200
+
201
+ .link-home {
202
+ text-decoration: none;
203
+ display: inline-flex;
204
+ }
205
+ a.link-home:focus,
206
+ a.link-home:focus-visible {
207
+ outline-offset: 1px;
208
+ }
209
+
210
+ @media only screen and (min-width: 890px) and (max-device-width: 905px) {
211
+ .branding.second-logo {
212
+ padding-right: 0;
213
+ }
214
+ }
215
+
216
+ @media (min-width: 906px) {
217
+ .branding.second-logo {
218
+ padding-right: 20px;
219
+ }
220
+ }
221
+
222
+ @media (max-width: 889px) {
223
+ slot[name='opt-sec-logo'] {
224
+ display: none;
225
+ }
226
+
227
+ .right-side-section {
228
+ display: initial;
229
+ }
230
+ .right-side-section .user-info {
231
+ float: right;
232
+ }
233
+ }
234
+
235
+ @media (min-width: 890px) {
236
+ :host {
237
+ --userIconWidth: 3.2rem;
238
+ --userIconHeight: 3.2rem;
239
+ }
240
+
241
+ nav {
242
+ display: flex;
243
+ z-index: 4;
244
+ height: 5rem;
245
+ padding-right: 1.5rem;
246
+ }
247
+
248
+ slot[name='opt-sec-logo-mobile'] {
249
+ display: none;
250
+ }
251
+
252
+ .ia-logo,
253
+ .ia-wordmark {
254
+ margin-right: 10px;
255
+ }
256
+
257
+ .hamburger,
258
+ .search-trigger,
259
+ .mobile-donate-link {
260
+ display: none;
261
+ }
262
+
263
+ .user-info {
264
+ display: block;
265
+ float: right;
266
+ vertical-align: middle;
267
+ height: 100%;
268
+ }
269
+
270
+ .user-info .user-menu img {
271
+ height: 3rem;
272
+ width: 3rem;
273
+ margin-right: 0.5rem;
274
+ }
275
+
276
+ .user-menu {
277
+ padding: 1rem 0.5rem;
278
+ }
279
+ .user-menu.active {
280
+ background: transparent;
281
+ }
282
+
283
+ .user-menu img {
284
+ display: inline-block;
285
+ vertical-align: middle;
286
+ margin-right: 0.5rem;
287
+ }
288
+
289
+ .upload {
290
+ display: block;
291
+ padding: 1rem 0.5rem;
292
+ float: right;
293
+ font-size: 1.4rem;
294
+ text-transform: uppercase;
295
+ text-decoration: none;
296
+ color: var(--lightTextColor);
297
+ }
298
+ .upload:active,
299
+ .upload:focus,
300
+ .upload:hover {
301
+ color: var(--linkHoverColor);
302
+ }
303
+ .upload:focus-visible {
304
+ outline: none;
305
+ }
306
+
307
+ .upload svg {
308
+ vertical-align: middle;
309
+ fill: var(--iconFill);
310
+ }
311
+
312
+ .upload:hover svg,
313
+ .upload:focus svg,
314
+ .upload:active svg {
315
+ fill: var(--linkHoverColor);
316
+ }
317
+
318
+ nav-search {
319
+ float: right;
320
+ margin-left: 1rem;
321
+ }
322
+
323
+ .custom-search-container {
324
+ display: flex;
325
+ align-items: center;
326
+ float: right;
327
+ margin-left: 1rem;
328
+ }
329
+ }
330
+
331
+ @media (min-width: 990px) {
332
+ .screen-name {
333
+ display: inline-block;
334
+ text-overflow: ellipsis;
335
+ overflow: hidden;
336
+ white-space: nowrap;
337
+ max-width: 165px;
338
+ }
339
+
340
+ .upload span {
341
+ display: inline-block;
342
+ vertical-align: middle;
343
+ }
344
+ }
310
345
  `;
311
346
  //# sourceMappingURL=primary-nav.js.map