@internetarchive/ia-topnav 1.1.19 → 1.1.21-alpha

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 (89) hide show
  1. package/.eslintrc +16 -16
  2. package/.storybook/.babelrc +15 -15
  3. package/.storybook/addons.js +7 -7
  4. package/.storybook/config.js +11 -11
  5. package/.storybook/webpack.config.js +5 -5
  6. package/LICENSE +661 -661
  7. package/README.md +145 -145
  8. package/demo.html +41 -41
  9. package/index.d.ts +105 -105
  10. package/index.js +3 -3
  11. package/package.json +65 -65
  12. package/src/assets/img/hamburger.js +36 -36
  13. package/src/assets/img/ia-icon.js +33 -33
  14. package/src/assets/img/icon-audio.js +23 -23
  15. package/src/assets/img/icon-close.js +16 -16
  16. package/src/assets/img/icon-donate.js +15 -15
  17. package/src/assets/img/icon-ellipses.js +15 -15
  18. package/src/assets/img/icon-ia-logo.js +24 -24
  19. package/src/assets/img/icon-images.js +15 -15
  20. package/src/assets/img/icon-search.js +15 -15
  21. package/src/assets/img/icon-software.js +15 -15
  22. package/src/assets/img/icon-texts.js +15 -15
  23. package/src/assets/img/icon-upload.js +15 -15
  24. package/src/assets/img/icon-user.js +15 -15
  25. package/src/assets/img/icon-video.js +15 -15
  26. package/src/assets/img/icon-web.js +15 -15
  27. package/src/assets/img/icon.js +18 -18
  28. package/src/assets/img/icons.js +29 -29
  29. package/src/assets/img/user.js +38 -38
  30. package/src/assets/img/wordmark-stacked.js +13 -13
  31. package/src/data/menus.js +603 -603
  32. package/src/desktop-subnav.js +45 -45
  33. package/src/dropdown-menu.js +98 -98
  34. package/src/ia-topnav.js +285 -285
  35. package/src/lib/formatUrl.js +1 -1
  36. package/src/lib/location-handler.js +5 -5
  37. package/src/lib/query-handler.js +7 -7
  38. package/src/lib/toSentenceCase.js +8 -8
  39. package/src/login-button.js +79 -79
  40. package/src/media-button.js +113 -113
  41. package/src/media-menu.js +133 -133
  42. package/src/media-slider.js +104 -104
  43. package/src/media-subnav.js +112 -112
  44. package/src/more-slider.js +33 -33
  45. package/src/nav-search.js +124 -124
  46. package/src/primary-nav.js +211 -211
  47. package/src/save-page-form.js +59 -59
  48. package/src/search-menu.js +115 -115
  49. package/src/signed-out-dropdown.js +10 -10
  50. package/src/styles/base.js +48 -48
  51. package/src/styles/desktop-subnav.js +37 -37
  52. package/src/styles/dropdown-menu.js +143 -143
  53. package/src/styles/ia-topnav.js +88 -88
  54. package/src/styles/login-button.js +70 -70
  55. package/src/styles/media-button.js +153 -153
  56. package/src/styles/media-menu.js +70 -70
  57. package/src/styles/media-slider.js +81 -81
  58. package/src/styles/media-subnav.js +156 -156
  59. package/src/styles/more-slider.js +15 -15
  60. package/src/styles/nav-search.js +134 -130
  61. package/src/styles/primary-nav.js +254 -254
  62. package/src/styles/save-page-form.js +53 -52
  63. package/src/styles/search-menu.js +104 -103
  64. package/src/styles/signed-out-dropdown.js +31 -31
  65. package/src/styles/user-menu.js +31 -31
  66. package/src/styles/wayback-search.js +48 -48
  67. package/src/styles/wayback-slider.js +30 -30
  68. package/src/tracked-element.js +27 -27
  69. package/src/user-menu.js +42 -42
  70. package/src/wayback-search.js +18 -18
  71. package/src/wayback-slider.js +88 -88
  72. package/stories/topnav-element.stories.js +7 -7
  73. package/test/assets/img/hamburger.test.js +15 -15
  74. package/test/assets/img/user.test.js +15 -15
  75. package/test/data/menus.test.js +19 -19
  76. package/test/dropdown-menu.test.js +25 -25
  77. package/test/ia-icon.test.js +13 -13
  78. package/test/ia-topnav.test.js +273 -273
  79. package/test/login-button.test.js +15 -15
  80. package/test/media-button.test.js +19 -19
  81. package/test/media-menu.test.js +40 -40
  82. package/test/media-slider.test.js +57 -57
  83. package/test/more-slider.test.js +13 -13
  84. package/test/nav-search.test.js +61 -61
  85. package/test/primary-nav.test.js +82 -82
  86. package/test/save-page-form.test.js +35 -35
  87. package/test/search-menu.test.js +49 -49
  88. package/test/user-menu.test.js +33 -33
  89. package/test/wayback-slider.test.js +80 -80
@@ -1,254 +1,254 @@
1
- import { css } from 'https://offshoot.ux.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
- .username {
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: 2;
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
- .username {
247
- display: inline-block;
248
- }
249
-
250
- .upload span {
251
- display: inline;
252
- }
253
- }
254
- `;
1
+ import { css } from 'https://offshoot.ux.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
+ .username {
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: 2;
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
+ .username {
247
+ display: inline-block;
248
+ }
249
+
250
+ .upload span {
251
+ display: inline;
252
+ }
253
+ }
254
+ `;
@@ -1,52 +1,53 @@
1
- import { css } from 'https://offshoot.ux.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
- }
20
-
21
- input[type="submit"] {
22
- -webkit-appearance: none;
23
- -moz-appearance: none;
24
- appearance: none;
25
- padding: .4rem .8rem;
26
- font: normal 1.3rem var(--themeFontFamily);
27
- text-transform: uppercase;
28
- color: var(--savePageSubmitText);
29
- border: none;
30
- border-radius: 16px;
31
- background: var(--savePageSubmitBg);
32
- cursor: pointer;
33
- }
34
-
35
- .error {
36
- display: none;
37
- margin-top: .5rem;
38
- font-weight: bold;
39
- color: var(--savePageErrorText);
40
- }
41
-
42
- .visible {
43
- display: block;
44
- }
45
-
46
- @media (min-width: 890px) {
47
- h3 {
48
- margin-top: 0;
49
- font: normal 100 1.6rem var(--themeFontFamily);
50
- }
51
- }
52
- `;
1
+ import { css } from 'https://offshoot.ux.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
+ `;