@internetarchive/ia-topnav 1.3.5-alpha7 → 1.3.6-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 (84) 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 +670 -670
  28. package/src/desktop-subnav.js +45 -45
  29. package/src/dropdown-menu.js +109 -110
  30. package/src/ia-topnav.js +314 -315
  31. package/src/lib/formatUrl.js +1 -1
  32. package/src/lib/location-handler.js +5 -5
  33. package/src/lib/query-handler.js +7 -7
  34. package/src/lib/toSentenceCase.js +8 -8
  35. package/src/login-button.js +79 -79
  36. package/src/media-button.js +113 -114
  37. package/src/media-menu.js +133 -133
  38. package/src/media-slider.js +104 -104
  39. package/src/media-subnav.js +112 -112
  40. package/src/more-slider.js +33 -33
  41. package/src/nav-search.js +117 -120
  42. package/src/primary-nav.js +224 -232
  43. package/src/save-page-form.js +59 -59
  44. package/src/search-menu.js +115 -146
  45. package/src/signed-out-dropdown.js +10 -10
  46. package/src/styles/base.js +48 -48
  47. package/src/styles/desktop-subnav.js +37 -37
  48. package/src/styles/dropdown-menu.js +166 -166
  49. package/src/styles/ia-topnav.js +87 -87
  50. package/src/styles/login-button.js +79 -79
  51. package/src/styles/media-button.js +156 -156
  52. package/src/styles/media-menu.js +70 -70
  53. package/src/styles/media-slider.js +81 -81
  54. package/src/styles/media-subnav.js +156 -156
  55. package/src/styles/more-slider.js +15 -15
  56. package/src/styles/nav-search.js +136 -136
  57. package/src/styles/primary-nav.js +300 -300
  58. package/src/styles/save-page-form.js +54 -54
  59. package/src/styles/search-menu.js +99 -104
  60. package/src/styles/signed-out-dropdown.js +31 -31
  61. package/src/styles/user-menu.js +31 -31
  62. package/src/styles/wayback-search.js +48 -48
  63. package/src/styles/wayback-slider.js +30 -30
  64. package/src/tracked-element.js +27 -27
  65. package/src/user-menu.js +42 -42
  66. package/src/wayback-search.js +18 -18
  67. package/src/wayback-slider.js +87 -87
  68. package/test/assets/img/hamburger.test.js +15 -15
  69. package/test/assets/img/user.test.js +15 -15
  70. package/test/data/menus.test.js +19 -19
  71. package/test/dropdown-menu.test.js +25 -25
  72. package/test/ia-icon.test.js +13 -13
  73. package/test/ia-topnav.test.js +273 -273
  74. package/test/login-button.test.js +15 -15
  75. package/test/media-button.test.js +19 -19
  76. package/test/media-menu.test.js +40 -40
  77. package/test/media-slider.test.js +57 -57
  78. package/test/more-slider.test.js +13 -13
  79. package/test/nav-search.test.js +61 -61
  80. package/test/primary-nav.test.js +82 -82
  81. package/test/save-page-form.test.js +35 -35
  82. package/test/search-menu.test.js +49 -49
  83. package/test/user-menu.test.js +33 -33
  84. package/test/wayback-slider.test.js +80 -80
@@ -1,166 +1,166 @@
1
- import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
-
3
- export default css`
4
- .nav-container {
5
- position: relative;
6
- }
7
-
8
- nav {
9
- position: absolute;
10
- right: 0;
11
- z-index: 4;
12
- overflow: hidden;
13
- font-size: 1.6rem;
14
- background-color: var(--dropdownMenuBg);
15
- transition-property: top;
16
- transition-duration: 0.2s;
17
- transition-timing-function: ease;
18
- }
19
-
20
- .initial,
21
- .closed {
22
- top: var(--topOffset, -1500px);
23
- }
24
-
25
- .closed {
26
- transition-duration: 0.5s;
27
- }
28
-
29
- .open {
30
- max-width: 100vw;
31
- overflow: auto;
32
- }
33
-
34
- h3 {
35
- padding: 0.6rem 2rem;
36
- margin: 0;
37
- font-size: inherit;
38
- overflow: hidden;
39
- text-overflow: ellipsis;
40
- }
41
-
42
- ul {
43
- padding: 0.4rem 0 0.7rem 0;
44
- margin: 0;
45
- list-style: none;
46
- /* viewport height - nav height + bottom nav border */
47
- max-height: calc(100vh - 7.2rem + 1px);
48
- overflow: auto;
49
- box-sizing: border-box;
50
- }
51
-
52
- .divider {
53
- margin: 0.5rem 0;
54
- border-bottom: 1px solid var(--dropdownMenuDivider);
55
- }
56
-
57
- a,
58
- .info-item {
59
- display: block;
60
- color: var(--primaryTextColor);
61
- text-decoration: none;
62
- padding: 1rem 2rem;
63
- }
64
-
65
- .info-item {
66
- font-size: 0.8em;
67
- color: var(--dropdownMenuInfoItem);
68
- }
69
-
70
- .callout {
71
- position: absolute;
72
- margin-left: 10px;
73
- padding: 0 5px;
74
- border-radius: 2px;
75
- background: #fee257;
76
- color: #2c2c2c;
77
- font-size: 1.4rem;
78
- font-weight: bold;
79
- }
80
-
81
- a.mobile-upload {
82
- display: flex;
83
- justify-content: left;
84
- align-items: center;
85
- }
86
- a.mobile-upload svg {
87
- fill: var(--white);
88
- margin-right: 1rem;
89
- height: 1.4rem;
90
- width: 1.4rem;
91
- }
92
-
93
- @media (min-width: 890px) {
94
- nav {
95
- overflow: visible;
96
- top: 0;
97
- left: auto;
98
- z-index: 5;
99
- transition: opacity 0.2s ease-in-out;
100
- font-size: 1.4rem;
101
- border-radius: 2px;
102
- background: var(--primaryTextColor);
103
- box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.15);
104
- }
105
-
106
- nav:after {
107
- position: absolute;
108
- right: 7px;
109
- top: -7px;
110
- width: 12px;
111
- height: 7px;
112
- box-sizing: border-box;
113
- color: var(--white);
114
- content: '';
115
- border-bottom: 7px solid currentColor;
116
- border-left: 6px solid transparent;
117
- border-right: 6px solid transparent;
118
- }
119
-
120
- h3 {
121
- display: none;
122
- }
123
-
124
- ul {
125
- /* viewport height - nav height + bottom nav border */
126
- max-height: calc(100vh - 8.5rem + 1px);
127
- }
128
-
129
- .divider {
130
- border-bottom-color: var(--dropdownMenuDivider);
131
- }
132
-
133
- a {
134
- padding: 0.5rem 2rem;
135
- color: var(--inverseTextColor);
136
- transition: background 0.1s ease-out, color 0.1s ease-out;
137
- }
138
-
139
- .info-item {
140
- padding: 0.5rem 2rem;
141
- font-size: 0.8em;
142
- }
143
-
144
- a:hover,
145
- a:active,
146
- a:focus {
147
- color: var(--linkHoverColor);
148
- background: var(--linkColor);
149
- }
150
-
151
- .initial,
152
- .closed {
153
- opacity: 0;
154
- transition-duration: 0.2s;
155
- }
156
-
157
- .open {
158
- opacity: 1;
159
- overflow: visible;
160
- }
161
-
162
- a.mobile-upload {
163
- display: none;
164
- }
165
- }
166
- `;
1
+ import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
+
3
+ export default css`
4
+ .nav-container {
5
+ position: relative;
6
+ }
7
+
8
+ nav {
9
+ position: absolute;
10
+ right: 0;
11
+ z-index: 4;
12
+ overflow: hidden;
13
+ font-size: 1.6rem;
14
+ background-color: var(--dropdownMenuBg);
15
+ transition-property: top;
16
+ transition-duration: 0.2s;
17
+ transition-timing-function: ease;
18
+ }
19
+
20
+ .initial,
21
+ .closed {
22
+ top: var(--topOffset, -1500px);
23
+ }
24
+
25
+ .closed {
26
+ transition-duration: 0.5s;
27
+ }
28
+
29
+ .open {
30
+ max-width: 100vw;
31
+ overflow: auto;
32
+ }
33
+
34
+ h3 {
35
+ padding: 0.6rem 2rem;
36
+ margin: 0;
37
+ font-size: inherit;
38
+ overflow: hidden;
39
+ text-overflow: ellipsis;
40
+ }
41
+
42
+ ul {
43
+ padding: 0.4rem 0 0.7rem 0;
44
+ margin: 0;
45
+ list-style: none;
46
+ /* viewport height - nav height + bottom nav border */
47
+ max-height: calc(100vh - 7.2rem + 1px);
48
+ overflow: auto;
49
+ box-sizing: border-box;
50
+ }
51
+
52
+ .divider {
53
+ margin: 0.5rem 0;
54
+ border-bottom: 1px solid var(--dropdownMenuDivider);
55
+ }
56
+
57
+ a,
58
+ .info-item {
59
+ display: block;
60
+ color: var(--primaryTextColor);
61
+ text-decoration: none;
62
+ padding: 1rem 2rem;
63
+ }
64
+
65
+ .info-item {
66
+ font-size: 0.8em;
67
+ color: var(--dropdownMenuInfoItem);
68
+ }
69
+
70
+ .callout {
71
+ position: absolute;
72
+ margin-left: 10px;
73
+ padding: 0 5px;
74
+ border-radius: 2px;
75
+ background: #fee257;
76
+ color: #2c2c2c;
77
+ font-size: 1.4rem;
78
+ font-weight: bold;
79
+ }
80
+
81
+ a.mobile-upload {
82
+ display: flex;
83
+ justify-content: left;
84
+ align-items: center;
85
+ }
86
+ a.mobile-upload svg {
87
+ fill: var(--white);
88
+ margin-right: 1rem;
89
+ height: 1.4rem;
90
+ width: 1.4rem;
91
+ }
92
+
93
+ @media (min-width: 890px) {
94
+ nav {
95
+ overflow: visible;
96
+ top: 0;
97
+ left: auto;
98
+ z-index: 5;
99
+ transition: opacity 0.2s ease-in-out;
100
+ font-size: 1.4rem;
101
+ border-radius: 2px;
102
+ background: var(--primaryTextColor);
103
+ box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.15);
104
+ }
105
+
106
+ nav:after {
107
+ position: absolute;
108
+ right: 7px;
109
+ top: -7px;
110
+ width: 12px;
111
+ height: 7px;
112
+ box-sizing: border-box;
113
+ color: var(--white);
114
+ content: '';
115
+ border-bottom: 7px solid currentColor;
116
+ border-left: 6px solid transparent;
117
+ border-right: 6px solid transparent;
118
+ }
119
+
120
+ h3 {
121
+ display: none;
122
+ }
123
+
124
+ ul {
125
+ /* viewport height - nav height + bottom nav border */
126
+ max-height: calc(100vh - 8.5rem + 1px);
127
+ }
128
+
129
+ .divider {
130
+ border-bottom-color: var(--dropdownMenuDivider);
131
+ }
132
+
133
+ a {
134
+ padding: 0.5rem 2rem;
135
+ color: var(--inverseTextColor);
136
+ transition: background 0.1s ease-out, color 0.1s ease-out;
137
+ }
138
+
139
+ .info-item {
140
+ padding: 0.5rem 2rem;
141
+ font-size: 0.8em;
142
+ }
143
+
144
+ a:hover,
145
+ a:active,
146
+ a:focus {
147
+ color: var(--linkHoverColor);
148
+ background: var(--linkColor);
149
+ }
150
+
151
+ .initial,
152
+ .closed {
153
+ opacity: 0;
154
+ transition-duration: 0.2s;
155
+ }
156
+
157
+ .open {
158
+ opacity: 1;
159
+ overflow: visible;
160
+ }
161
+
162
+ a.mobile-upload {
163
+ display: none;
164
+ }
165
+ }
166
+ `;
@@ -1,87 +1,87 @@
1
- import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
-
3
- export default css`
4
- :host {
5
- --white: #fff;
6
- --grey13: #222;
7
- --grey20: #333;
8
- --grey40: #666;
9
- --grey28: #474747;
10
- --grey60: #999;
11
- --grey66: #aaa;
12
- --grey80: #ccc;
13
- --errorYellow: #ffcd27;
14
-
15
- --linkColor: #428bca;
16
- --linkHoverColor: var(--white);
17
- --subnavLinkColor: var(--grey66);
18
- --primaryTextColor: var(--white);
19
- --inverseTextColor: var(--grey20);
20
- --lightTextColor: var(--grey60);
21
- --activeColor: var(--white);
22
- --activeButtonBg: var(--grey20);
23
- --iconFill: var(--grey60);
24
-
25
- --searchActiveBg: var(--grey20);
26
- --searchActiveInputBg: var(--white);
27
- --searchMenuBg: var(--grey20);
28
- --desktopSearchIconFill: var(--grey20);
29
-
30
- --mediaMenuBg: var(--grey13);
31
- --mediaLabelDesktopColor: var(--grey60);
32
- --activeDesktopMenuIcon: var(--grey28);
33
-
34
- --mediaSliderBg: var(--grey20);
35
- --mediaSliderDesktopBg: var(--grey28);
36
-
37
- --primaryNavBg: var(--grey13);
38
- --primaryNavBottomBorder: var(--grey20);
39
-
40
- --desktopSubnavBg: var(--grey20);
41
-
42
- --dropdownMenuBg: var(--grey20);
43
- --dropdownMenuInfoItem: var(--grey60);
44
- --dropdownMenuDivider: var(--grey40);
45
-
46
- --loginTextColor: var(--grey60);
47
-
48
- --themeFontFamily: 'Helvetica Neue', Helvetica, Arial, sans-serif;
49
- --logoWidthTablet: 263px;
50
-
51
- --savePageSubmitBg: var(--grey13);
52
- --savePageSubmitText: var(--white);
53
- --savePageInputBorder: var(--grey60);
54
- --savePageErrorText: var(--errorYellow);
55
-
56
- color: var(--primaryTextColor);
57
- font-family: var(--themeFontFamily);
58
- }
59
-
60
- primary-nav:focus {
61
- outline: none !important;
62
- }
63
-
64
- #close-layer {
65
- display: none;
66
- position: fixed;
67
- top: 0;
68
- right: 0;
69
- bottom: 0;
70
- left: 0;
71
- z-index: 3;
72
- }
73
- #close-layer.visible {
74
- display: block;
75
- }
76
-
77
- .topnav {
78
- position: relative;
79
- z-index: 4;
80
- }
81
-
82
- @media (max-width: 889px) {
83
- desktop-subnav {
84
- display: none;
85
- }
86
- }
87
- `;
1
+ import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
+
3
+ export default css`
4
+ :host {
5
+ --white: #fff;
6
+ --grey13: #222;
7
+ --grey20: #333;
8
+ --grey40: #666;
9
+ --grey28: #474747;
10
+ --grey60: #999;
11
+ --grey66: #aaa;
12
+ --grey80: #ccc;
13
+ --errorYellow: #ffcd27;
14
+
15
+ --linkColor: #428bca;
16
+ --linkHoverColor: var(--white);
17
+ --subnavLinkColor: var(--grey66);
18
+ --primaryTextColor: var(--white);
19
+ --inverseTextColor: var(--grey20);
20
+ --lightTextColor: var(--grey60);
21
+ --activeColor: var(--white);
22
+ --activeButtonBg: var(--grey20);
23
+ --iconFill: var(--grey60);
24
+
25
+ --searchActiveBg: var(--grey20);
26
+ --searchActiveInputBg: var(--white);
27
+ --searchMenuBg: var(--grey20);
28
+ --desktopSearchIconFill: var(--grey20);
29
+
30
+ --mediaMenuBg: var(--grey13);
31
+ --mediaLabelDesktopColor: var(--grey60);
32
+ --activeDesktopMenuIcon: var(--grey28);
33
+
34
+ --mediaSliderBg: var(--grey20);
35
+ --mediaSliderDesktopBg: var(--grey28);
36
+
37
+ --primaryNavBg: var(--grey13);
38
+ --primaryNavBottomBorder: var(--grey20);
39
+
40
+ --desktopSubnavBg: var(--grey20);
41
+
42
+ --dropdownMenuBg: var(--grey20);
43
+ --dropdownMenuInfoItem: var(--grey60);
44
+ --dropdownMenuDivider: var(--grey40);
45
+
46
+ --loginTextColor: var(--grey60);
47
+
48
+ --themeFontFamily: 'Helvetica Neue', Helvetica, Arial, sans-serif;
49
+ --logoWidthTablet: 263px;
50
+
51
+ --savePageSubmitBg: var(--grey13);
52
+ --savePageSubmitText: var(--white);
53
+ --savePageInputBorder: var(--grey60);
54
+ --savePageErrorText: var(--errorYellow);
55
+
56
+ color: var(--primaryTextColor);
57
+ font-family: var(--themeFontFamily);
58
+ }
59
+
60
+ primary-nav:focus {
61
+ outline: none !important;
62
+ }
63
+
64
+ #close-layer {
65
+ display: none;
66
+ position: fixed;
67
+ top: 0;
68
+ right: 0;
69
+ bottom: 0;
70
+ left: 0;
71
+ z-index: 3;
72
+ }
73
+ #close-layer.visible {
74
+ display: block;
75
+ }
76
+
77
+ .topnav {
78
+ position: relative;
79
+ z-index: 4;
80
+ }
81
+
82
+ @media (max-width: 889px) {
83
+ desktop-subnav {
84
+ display: none;
85
+ }
86
+ }
87
+ `;
@@ -1,79 +1,79 @@
1
- import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
-
3
- export default css`
4
- .dropdown-toggle {
5
- display: block;
6
- text-transform: uppercase;
7
- color: var(--grey80);
8
- cursor: pointer;
9
- }
10
-
11
- .dropdown-toggle svg {
12
- height: 100%;
13
- width: 4rem;
14
- }
15
-
16
- .dropdown-toggle .fill-color {
17
- fill: var(--iconFill);
18
- }
19
-
20
- .dropdown-toggle:active .fill-color,
21
- .dropdown-toggle:focus .fill-color,
22
- .dropdown-toggle:hover .fill-color {
23
- fill: var(--linkHoverColor);
24
- }
25
-
26
- .active {
27
- border-radius: 1rem 1rem 0 0;
28
- background: var(--activeButtonBg);
29
- }
30
-
31
- .active .fill-color {
32
- fill: var(--activeColor);
33
- }
34
-
35
- span {
36
- display: none;
37
- font-size: 1.4rem;
38
- text-transform: uppercase;
39
- color: var(--loginTextColor);
40
- }
41
-
42
- span a {
43
- color: inherit;
44
- text-decoration: none;
45
- }
46
-
47
- a:hover,
48
- a:active,
49
- a:focus {
50
- color: var(--linkHoverColor);
51
- }
52
-
53
- @media (min-width: 890px) {
54
- .logged-out-toolbar {
55
- padding: 1rem 0.5rem;
56
- vertical-align: middle;
57
- }
58
-
59
- .active {
60
- background: transparent;
61
- }
62
-
63
- .dropdown-toggle {
64
- display: inline-block;
65
- vertical-align: middle;
66
- }
67
-
68
- .dropdown-toggle svg {
69
- height: 3rem;
70
- width: 3rem;
71
- display: block;
72
- }
73
-
74
- span {
75
- display: inline;
76
- vertical-align: middle;
77
- }
78
- }
79
- `;
1
+ import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
+
3
+ export default css`
4
+ .dropdown-toggle {
5
+ display: block;
6
+ text-transform: uppercase;
7
+ color: var(--grey80);
8
+ cursor: pointer;
9
+ }
10
+
11
+ .dropdown-toggle svg {
12
+ height: 100%;
13
+ width: 4rem;
14
+ }
15
+
16
+ .dropdown-toggle .fill-color {
17
+ fill: var(--iconFill);
18
+ }
19
+
20
+ .dropdown-toggle:active .fill-color,
21
+ .dropdown-toggle:focus .fill-color,
22
+ .dropdown-toggle:hover .fill-color {
23
+ fill: var(--linkHoverColor);
24
+ }
25
+
26
+ .active {
27
+ border-radius: 1rem 1rem 0 0;
28
+ background: var(--activeButtonBg);
29
+ }
30
+
31
+ .active .fill-color {
32
+ fill: var(--activeColor);
33
+ }
34
+
35
+ span {
36
+ display: none;
37
+ font-size: 1.4rem;
38
+ text-transform: uppercase;
39
+ color: var(--loginTextColor);
40
+ }
41
+
42
+ span a {
43
+ color: inherit;
44
+ text-decoration: none;
45
+ }
46
+
47
+ a:hover,
48
+ a:active,
49
+ a:focus {
50
+ color: var(--linkHoverColor);
51
+ }
52
+
53
+ @media (min-width: 890px) {
54
+ .logged-out-toolbar {
55
+ padding: 1rem 0.5rem;
56
+ vertical-align: middle;
57
+ }
58
+
59
+ .active {
60
+ background: transparent;
61
+ }
62
+
63
+ .dropdown-toggle {
64
+ display: inline-block;
65
+ vertical-align: middle;
66
+ }
67
+
68
+ .dropdown-toggle svg {
69
+ height: 3rem;
70
+ width: 3rem;
71
+ display: block;
72
+ }
73
+
74
+ span {
75
+ display: inline;
76
+ vertical-align: middle;
77
+ }
78
+ }
79
+ `;