@internetarchive/ia-topnav 2.1.0 → 2.1.1

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 (54) 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.js.map +1 -1
  6. package/dist/src/data/menus.js +1 -1
  7. package/dist/src/data/menus.js.map +1 -1
  8. package/dist/src/models.js.map +1 -1
  9. package/dist/src/styles/base.js +45 -45
  10. package/dist/src/styles/base.js.map +1 -1
  11. package/dist/src/styles/dropdown-menu.js +169 -169
  12. package/dist/src/styles/dropdown-menu.js.map +1 -1
  13. package/dist/src/styles/ia-topnav.js +82 -82
  14. package/dist/src/styles/ia-topnav.js.map +1 -1
  15. package/dist/src/styles/login-button.js +87 -87
  16. package/dist/src/styles/login-button.js.map +1 -1
  17. package/dist/src/styles/media-button.js +153 -153
  18. package/dist/src/styles/media-button.js.map +1 -1
  19. package/dist/src/styles/media-menu.js +63 -63
  20. package/dist/src/styles/media-menu.js.map +1 -1
  21. package/dist/src/styles/media-slider.js +78 -78
  22. package/dist/src/styles/media-slider.js.map +1 -1
  23. package/dist/src/styles/media-subnav.js +152 -152
  24. package/dist/src/styles/media-subnav.js.map +1 -1
  25. package/dist/src/styles/primary-nav.js +353 -353
  26. package/dist/src/styles/primary-nav.js.map +1 -1
  27. package/dist/src/styles/save-page-form.js +51 -51
  28. package/dist/src/styles/save-page-form.js.map +1 -1
  29. package/dist/src/styles/wayback-search.js +45 -45
  30. package/dist/src/styles/wayback-search.js.map +1 -1
  31. package/dist/src/styles/wayback-slider.js +26 -26
  32. package/dist/src/styles/wayback-slider.js.map +1 -1
  33. package/eslint.config.mjs +53 -53
  34. package/index.ts +3 -3
  35. package/package.json +72 -72
  36. package/prettier.config.js +9 -9
  37. package/src/data/menus.ts +1 -1
  38. package/src/models.ts +68 -68
  39. package/src/styles/base.ts +49 -49
  40. package/src/styles/dropdown-menu.ts +173 -173
  41. package/src/styles/ia-topnav.ts +86 -86
  42. package/src/styles/login-button.ts +91 -91
  43. package/src/styles/media-button.ts +157 -157
  44. package/src/styles/media-menu.ts +67 -67
  45. package/src/styles/media-slider.ts +82 -82
  46. package/src/styles/media-subnav.ts +160 -160
  47. package/src/styles/primary-nav.ts +357 -357
  48. package/src/styles/save-page-form.ts +55 -55
  49. package/src/styles/wayback-search.ts +49 -49
  50. package/src/styles/wayback-slider.ts +34 -34
  51. package/ssl/server.key +28 -28
  52. package/tsconfig.json +31 -31
  53. package/web-dev-server.config.mjs +32 -32
  54. package/web-test-runner.config.mjs +41 -41
@@ -1,86 +1,86 @@
1
- import { css } from 'lit';
2
- import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
3
-
4
- export default css`
5
- :host {
6
- --white: #fff;
7
- --grey13: #222;
8
- --grey20: #333;
9
- --grey40: #666;
10
- --grey28: #474747;
11
- --grey60: #999;
12
- --grey66: #aaa;
13
- --grey80: #ccc;
14
- --greya0: #a0a0a0;
15
- --grey6f: #6f6f6f;
16
- --errorYellow: #ffcd27;
17
-
18
- --linkColor: #4b64ff;
19
- --linkHoverColor: var(--white);
20
- --subnavLinkColor: var(--grey66);
21
- --primaryTextColor: var(--white);
22
- --inverseTextColor: var(--grey20);
23
- --lightTextColor: var(--grey60);
24
- --activeColor: var(--white);
25
- --activeButtonBg: var(--grey20);
26
- --iconFill: var(--grey60);
27
-
28
- --mediaMenuBg: var(--grey13);
29
- --mediaLabelDesktopColor: var(--grey60);
30
- --activeDesktopMenuIcon: var(--grey28);
31
-
32
- --mediaSliderBg: var(--grey20);
33
- --mediaSliderDesktopBg: var(--grey28);
34
-
35
- --primaryNavBg: var(--grey13);
36
- --primaryNavBottomBorder: var(--grey20);
37
-
38
- --desktopSubnavBg: var(--grey20);
39
-
40
- --dropdownMenuBg: var(--grey20);
41
- --dropdownMenuInfoItem: var(--greya0);
42
- --dropdownMenuDivider: var(--grey40);
43
- --inverseDropdownMenuInfoItem: var(--grey6f);
44
-
45
- --loginTextColor: var(--grey60);
46
-
47
- --themeFontFamily: 'Helvetica Neue', Helvetica, Arial, sans-serif;
48
- --logoWidthTablet: 263px;
49
-
50
- --savePageSubmitBg: var(--grey13);
51
- --savePageSubmitText: var(--white);
52
- --savePageInputBorder: var(--grey60);
53
- --savePageErrorText: var(--errorYellow);
54
-
55
- color: var(--primaryTextColor);
56
- font-family: var(--themeFontFamily);
57
- }
58
-
59
- primary-nav:focus {
60
- outline: none !important;
61
- }
62
-
63
- #close-layer {
64
- display: none;
65
- position: fixed;
66
- top: 0;
67
- right: 0;
68
- bottom: 0;
69
- left: 0;
70
- z-index: 3;
71
- }
72
- #close-layer.visible {
73
- display: block;
74
- }
75
-
76
- .topnav {
77
- position: relative;
78
- z-index: 4;
79
- }
80
-
81
- @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
82
- desktop-subnav {
83
- display: none;
84
- }
85
- }
86
- `;
1
+ import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
3
+
4
+ export default css`
5
+ :host {
6
+ --white: #fff;
7
+ --grey13: #222;
8
+ --grey20: #333;
9
+ --grey40: #666;
10
+ --grey28: #474747;
11
+ --grey60: #999;
12
+ --grey66: #aaa;
13
+ --grey80: #ccc;
14
+ --greya0: #a0a0a0;
15
+ --grey6f: #6f6f6f;
16
+ --errorYellow: #ffcd27;
17
+
18
+ --linkColor: #4b64ff;
19
+ --linkHoverColor: var(--white);
20
+ --subnavLinkColor: var(--grey66);
21
+ --primaryTextColor: var(--white);
22
+ --inverseTextColor: var(--grey20);
23
+ --lightTextColor: var(--grey60);
24
+ --activeColor: var(--white);
25
+ --activeButtonBg: var(--grey20);
26
+ --iconFill: var(--grey60);
27
+
28
+ --mediaMenuBg: var(--grey13);
29
+ --mediaLabelDesktopColor: var(--grey60);
30
+ --activeDesktopMenuIcon: var(--grey28);
31
+
32
+ --mediaSliderBg: var(--grey20);
33
+ --mediaSliderDesktopBg: var(--grey28);
34
+
35
+ --primaryNavBg: var(--grey13);
36
+ --primaryNavBottomBorder: var(--grey20);
37
+
38
+ --desktopSubnavBg: var(--grey20);
39
+
40
+ --dropdownMenuBg: var(--grey20);
41
+ --dropdownMenuInfoItem: var(--greya0);
42
+ --dropdownMenuDivider: var(--grey40);
43
+ --inverseDropdownMenuInfoItem: var(--grey6f);
44
+
45
+ --loginTextColor: var(--grey60);
46
+
47
+ --themeFontFamily: 'Helvetica Neue', Helvetica, Arial, sans-serif;
48
+ --logoWidthTablet: 263px;
49
+
50
+ --savePageSubmitBg: var(--grey13);
51
+ --savePageSubmitText: var(--white);
52
+ --savePageInputBorder: var(--grey60);
53
+ --savePageErrorText: var(--errorYellow);
54
+
55
+ color: var(--primaryTextColor);
56
+ font-family: var(--themeFontFamily);
57
+ }
58
+
59
+ primary-nav:focus {
60
+ outline: none !important;
61
+ }
62
+
63
+ #close-layer {
64
+ display: none;
65
+ position: fixed;
66
+ top: 0;
67
+ right: 0;
68
+ bottom: 0;
69
+ left: 0;
70
+ z-index: 3;
71
+ }
72
+ #close-layer.visible {
73
+ display: block;
74
+ }
75
+
76
+ .topnav {
77
+ position: relative;
78
+ z-index: 4;
79
+ }
80
+
81
+ @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
82
+ desktop-subnav {
83
+ display: none;
84
+ }
85
+ }
86
+ `;
@@ -1,91 +1,91 @@
1
- import { css } from 'lit';
2
- import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
3
-
4
- export default css`
5
- .logged-out-menu {
6
- background: inherit;
7
- border: none;
8
- }
9
- .logged-out-menu:focus-visible {
10
- outline: none;
11
- border: none;
12
- }
13
- .dropdown-toggle {
14
- display: block;
15
- text-transform: uppercase;
16
- color: var(--grey80);
17
- cursor: pointer;
18
- }
19
-
20
- .dropdown-toggle svg {
21
- height: 100%;
22
- width: 4rem;
23
- }
24
-
25
- .dropdown-toggle .fill-color {
26
- fill: var(--iconFill);
27
- }
28
-
29
- .dropdown-toggle:active .fill-color,
30
- .dropdown-toggle:focus .fill-color,
31
- .dropdown-toggle:hover .fill-color {
32
- fill: var(--linkHoverColor);
33
- }
34
-
35
- .active {
36
- border-radius: 1rem 1rem 0 0;
37
- background: var(--activeButtonBg);
38
- }
39
-
40
- .active .fill-color {
41
- fill: var(--activeColor);
42
- }
43
-
44
- span {
45
- display: none;
46
- font-size: 1.4rem;
47
- text-transform: uppercase;
48
- color: var(--loginTextColor);
49
- }
50
-
51
- span a {
52
- color: inherit;
53
- text-decoration: none;
54
- outline: 0;
55
- }
56
-
57
- a:hover,
58
- a:active,
59
- a:focus {
60
- color: var(--linkHoverColor) !important;
61
- outline: none !important;
62
- outline-offset: inherit !important;
63
- }
64
-
65
- @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
66
- .logged-out-toolbar {
67
- padding: 1rem 0.5rem;
68
- vertical-align: middle;
69
- }
70
-
71
- .active {
72
- background: transparent;
73
- }
74
-
75
- .dropdown-toggle {
76
- display: inline-block;
77
- vertical-align: middle;
78
- }
79
-
80
- .dropdown-toggle svg {
81
- height: 3rem;
82
- width: 3rem;
83
- display: block;
84
- }
85
-
86
- span {
87
- display: inline;
88
- vertical-align: middle;
89
- }
90
- }
91
- `;
1
+ import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
3
+
4
+ export default css`
5
+ .logged-out-menu {
6
+ background: inherit;
7
+ border: none;
8
+ }
9
+ .logged-out-menu:focus-visible {
10
+ outline: none;
11
+ border: none;
12
+ }
13
+ .dropdown-toggle {
14
+ display: block;
15
+ text-transform: uppercase;
16
+ color: var(--grey80);
17
+ cursor: pointer;
18
+ }
19
+
20
+ .dropdown-toggle svg {
21
+ height: 100%;
22
+ width: 4rem;
23
+ }
24
+
25
+ .dropdown-toggle .fill-color {
26
+ fill: var(--iconFill);
27
+ }
28
+
29
+ .dropdown-toggle:active .fill-color,
30
+ .dropdown-toggle:focus .fill-color,
31
+ .dropdown-toggle:hover .fill-color {
32
+ fill: var(--linkHoverColor);
33
+ }
34
+
35
+ .active {
36
+ border-radius: 1rem 1rem 0 0;
37
+ background: var(--activeButtonBg);
38
+ }
39
+
40
+ .active .fill-color {
41
+ fill: var(--activeColor);
42
+ }
43
+
44
+ span {
45
+ display: none;
46
+ font-size: 1.4rem;
47
+ text-transform: uppercase;
48
+ color: var(--loginTextColor);
49
+ }
50
+
51
+ span a {
52
+ color: inherit;
53
+ text-decoration: none;
54
+ outline: 0;
55
+ }
56
+
57
+ a:hover,
58
+ a:active,
59
+ a:focus {
60
+ color: var(--linkHoverColor) !important;
61
+ outline: none !important;
62
+ outline-offset: inherit !important;
63
+ }
64
+
65
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
66
+ .logged-out-toolbar {
67
+ padding: 1rem 0.5rem;
68
+ vertical-align: middle;
69
+ }
70
+
71
+ .active {
72
+ background: transparent;
73
+ }
74
+
75
+ .dropdown-toggle {
76
+ display: inline-block;
77
+ vertical-align: middle;
78
+ }
79
+
80
+ .dropdown-toggle svg {
81
+ height: 3rem;
82
+ width: 3rem;
83
+ display: block;
84
+ }
85
+
86
+ span {
87
+ display: inline;
88
+ vertical-align: middle;
89
+ }
90
+ }
91
+ `;
@@ -1,157 +1,157 @@
1
- import { css } from 'lit';
2
- import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
3
-
4
- export default css`
5
- a {
6
- display: inline-block;
7
- text-decoration: none;
8
- }
9
-
10
- .menu-item {
11
- display: inline-block;
12
- width: 100%;
13
- padding: 0;
14
- font-size: 1.6rem;
15
- text-align: left;
16
- background: transparent;
17
- -webkit-box-align: center;
18
- -ms-flex-align: center;
19
- align-items: center;
20
- }
21
-
22
- .menu-item:focus {
23
- outline: none;
24
- }
25
-
26
- .label {
27
- display: inline-block;
28
- padding: 0;
29
- font-weight: 400;
30
- color: var(--primaryTextColor);
31
- text-align: left;
32
- vertical-align: middle;
33
- }
34
-
35
- .menu-item > .icon {
36
- display: inline-flex;
37
- vertical-align: middle;
38
- -webkit-box-align: center;
39
- -ms-flex-align: center;
40
- align-items: center;
41
- -webkit-box-pack: center;
42
- -ms-flex-pack: center;
43
- justify-content: center;
44
- }
45
-
46
- .menu-item > .icon > svg {
47
- height: 4rem;
48
- width: 4rem;
49
- }
50
-
51
- .menu-item.selected .icon {
52
- background-color: var(--activeButtonBg);
53
- border-radius: 1rem 0 0 1rem;
54
- }
55
-
56
- .icon .fill-color {
57
- fill: #999;
58
- }
59
-
60
- .icon.active .fill-color {
61
- fill: #fff;
62
- }
63
-
64
- .donate .fill-color {
65
- fill: #f00;
66
- }
67
-
68
- @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
69
- .menu-item {
70
- width: auto;
71
- height: 5rem;
72
- color: var(--mediaLabelDesktopColor);
73
- display: inline-flex;
74
- }
75
- .menu-item:hover,
76
- .menu-item:active,
77
- .menu-item:focus {
78
- color: var(--linkHoverColor);
79
- }
80
-
81
- .menu-item:hover .fill-color,
82
- .menu-item:active .fill-color,
83
- .menu-item:focus .fill-color {
84
- fill: var(--linkHoverColor);
85
- }
86
-
87
- .label {
88
- display: none;
89
- }
90
-
91
- .label,
92
- .web:after {
93
- padding-right: 1rem;
94
- font-size: 1.3rem;
95
- text-transform: uppercase;
96
- color: inherit;
97
- }
98
-
99
- .web:after {
100
- display: none;
101
- content: 'web';
102
- }
103
- .donate,
104
- .more {
105
- display: none;
106
- }
107
-
108
- .menu-item.selected {
109
- background: var(--activeDesktopMenuIcon);
110
- }
111
-
112
- .menu-item.selected .label,
113
- .menu-item.selected.web:after {
114
- color: var(--linkHoverColor);
115
- }
116
-
117
- .menu-item.selected .icon {
118
- background: transparent;
119
- }
120
-
121
- /* selected state icon colors */
122
- .web.selected .fill-color {
123
- fill: #ffcd27;
124
- }
125
-
126
- .texts.selected .fill-color {
127
- fill: #faab3c;
128
- }
129
-
130
- .video.selected .fill-color {
131
- fill: #f1644b;
132
- }
133
-
134
- .audio.selected .fill-color {
135
- fill: #00adef;
136
- }
137
-
138
- .software.selected .fill-color {
139
- fill: #9ecc4f;
140
- }
141
-
142
- .images.selected .fill-color {
143
- fill: #aa99c9;
144
- }
145
- }
146
-
147
- @media (min-width: 1200px) {
148
- .label,
149
- .web:after {
150
- display: inline;
151
- }
152
-
153
- .web .label {
154
- display: none;
155
- }
156
- }
157
- `;
1
+ import { css } from 'lit';
2
+ import { TOPNAV_MOBILE_BREAKPOINT } from '../models';
3
+
4
+ export default css`
5
+ a {
6
+ display: inline-block;
7
+ text-decoration: none;
8
+ }
9
+
10
+ .menu-item {
11
+ display: inline-block;
12
+ width: 100%;
13
+ padding: 0;
14
+ font-size: 1.6rem;
15
+ text-align: left;
16
+ background: transparent;
17
+ -webkit-box-align: center;
18
+ -ms-flex-align: center;
19
+ align-items: center;
20
+ }
21
+
22
+ .menu-item:focus {
23
+ outline: none;
24
+ }
25
+
26
+ .label {
27
+ display: inline-block;
28
+ padding: 0;
29
+ font-weight: 400;
30
+ color: var(--primaryTextColor);
31
+ text-align: left;
32
+ vertical-align: middle;
33
+ }
34
+
35
+ .menu-item > .icon {
36
+ display: inline-flex;
37
+ vertical-align: middle;
38
+ -webkit-box-align: center;
39
+ -ms-flex-align: center;
40
+ align-items: center;
41
+ -webkit-box-pack: center;
42
+ -ms-flex-pack: center;
43
+ justify-content: center;
44
+ }
45
+
46
+ .menu-item > .icon > svg {
47
+ height: 4rem;
48
+ width: 4rem;
49
+ }
50
+
51
+ .menu-item.selected .icon {
52
+ background-color: var(--activeButtonBg);
53
+ border-radius: 1rem 0 0 1rem;
54
+ }
55
+
56
+ .icon .fill-color {
57
+ fill: #999;
58
+ }
59
+
60
+ .icon.active .fill-color {
61
+ fill: #fff;
62
+ }
63
+
64
+ .donate .fill-color {
65
+ fill: #f00;
66
+ }
67
+
68
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
69
+ .menu-item {
70
+ width: auto;
71
+ height: 5rem;
72
+ color: var(--mediaLabelDesktopColor);
73
+ display: inline-flex;
74
+ }
75
+ .menu-item:hover,
76
+ .menu-item:active,
77
+ .menu-item:focus {
78
+ color: var(--linkHoverColor);
79
+ }
80
+
81
+ .menu-item:hover .fill-color,
82
+ .menu-item:active .fill-color,
83
+ .menu-item:focus .fill-color {
84
+ fill: var(--linkHoverColor);
85
+ }
86
+
87
+ .label {
88
+ display: none;
89
+ }
90
+
91
+ .label,
92
+ .web:after {
93
+ padding-right: 1rem;
94
+ font-size: 1.3rem;
95
+ text-transform: uppercase;
96
+ color: inherit;
97
+ }
98
+
99
+ .web:after {
100
+ display: none;
101
+ content: 'web';
102
+ }
103
+ .donate,
104
+ .more {
105
+ display: none;
106
+ }
107
+
108
+ .menu-item.selected {
109
+ background: var(--activeDesktopMenuIcon);
110
+ }
111
+
112
+ .menu-item.selected .label,
113
+ .menu-item.selected.web:after {
114
+ color: var(--linkHoverColor);
115
+ }
116
+
117
+ .menu-item.selected .icon {
118
+ background: transparent;
119
+ }
120
+
121
+ /* selected state icon colors */
122
+ .web.selected .fill-color {
123
+ fill: #ffcd27;
124
+ }
125
+
126
+ .texts.selected .fill-color {
127
+ fill: #faab3c;
128
+ }
129
+
130
+ .video.selected .fill-color {
131
+ fill: #f1644b;
132
+ }
133
+
134
+ .audio.selected .fill-color {
135
+ fill: #00adef;
136
+ }
137
+
138
+ .software.selected .fill-color {
139
+ fill: #9ecc4f;
140
+ }
141
+
142
+ .images.selected .fill-color {
143
+ fill: #aa99c9;
144
+ }
145
+ }
146
+
147
+ @media (min-width: 1200px) {
148
+ .label,
149
+ .web:after {
150
+ display: inline;
151
+ }
152
+
153
+ .web .label {
154
+ display: none;
155
+ }
156
+ }
157
+ `;