@internetarchive/ia-topnav 1.1.26 → 1.1.27-alpha.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 (88) 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 +144 -144
  8. package/index.d.ts +104 -104
  9. package/index.js +3 -3
  10. package/package.json +61 -61
  11. package/src/assets/img/hamburger.js +36 -36
  12. package/src/assets/img/ia-icon.js +33 -33
  13. package/src/assets/img/icon-audio.js +23 -23
  14. package/src/assets/img/icon-close.js +16 -16
  15. package/src/assets/img/icon-donate.js +15 -15
  16. package/src/assets/img/icon-ellipses.js +15 -15
  17. package/src/assets/img/icon-ia-logo.js +24 -24
  18. package/src/assets/img/icon-images.js +15 -15
  19. package/src/assets/img/icon-search.js +15 -15
  20. package/src/assets/img/icon-software.js +15 -15
  21. package/src/assets/img/icon-texts.js +15 -15
  22. package/src/assets/img/icon-upload.js +15 -15
  23. package/src/assets/img/icon-user.js +15 -15
  24. package/src/assets/img/icon-video.js +15 -15
  25. package/src/assets/img/icon-web.js +15 -15
  26. package/src/assets/img/icon.js +18 -18
  27. package/src/assets/img/icons.js +29 -29
  28. package/src/assets/img/user.js +38 -38
  29. package/src/assets/img/wordmark-stacked.js +13 -13
  30. package/src/data/menus.js +659 -603
  31. package/src/desktop-subnav.js +45 -45
  32. package/src/dropdown-menu.js +98 -98
  33. package/src/ia-topnav.js +307 -283
  34. package/src/lib/formatUrl.js +1 -1
  35. package/src/lib/location-handler.js +5 -5
  36. package/src/lib/query-handler.js +7 -7
  37. package/src/lib/toSentenceCase.js +8 -8
  38. package/src/login-button.js +79 -79
  39. package/src/media-button.js +113 -113
  40. package/src/media-menu.js +133 -133
  41. package/src/media-slider.js +104 -104
  42. package/src/media-subnav.js +112 -112
  43. package/src/more-slider.js +33 -33
  44. package/src/nav-search.js +125 -125
  45. package/src/primary-nav.js +210 -210
  46. package/src/save-page-form.js +59 -59
  47. package/src/search-menu.js +115 -115
  48. package/src/signed-out-dropdown.js +10 -10
  49. package/src/styles/base.js +48 -48
  50. package/src/styles/desktop-subnav.js +37 -37
  51. package/src/styles/dropdown-menu.js +139 -139
  52. package/src/styles/ia-topnav.js +88 -88
  53. package/src/styles/login-button.js +70 -70
  54. package/src/styles/media-button.js +153 -153
  55. package/src/styles/media-menu.js +70 -70
  56. package/src/styles/media-slider.js +81 -81
  57. package/src/styles/media-subnav.js +156 -156
  58. package/src/styles/more-slider.js +15 -15
  59. package/src/styles/nav-search.js +134 -134
  60. package/src/styles/primary-nav.js +254 -254
  61. package/src/styles/save-page-form.js +53 -53
  62. package/src/styles/search-menu.js +99 -99
  63. package/src/styles/signed-out-dropdown.js +31 -31
  64. package/src/styles/user-menu.js +31 -31
  65. package/src/styles/wayback-search.js +48 -48
  66. package/src/styles/wayback-slider.js +30 -30
  67. package/src/tracked-element.js +27 -27
  68. package/src/user-menu.js +42 -42
  69. package/src/wayback-search.js +18 -18
  70. package/src/wayback-slider.js +88 -88
  71. package/stories/topnav-element.stories.js +7 -7
  72. package/test/assets/img/hamburger.test.js +15 -15
  73. package/test/assets/img/user.test.js +15 -15
  74. package/test/data/menus.test.js +19 -19
  75. package/test/dropdown-menu.test.js +25 -25
  76. package/test/ia-icon.test.js +13 -13
  77. package/test/ia-topnav.test.js +273 -273
  78. package/test/login-button.test.js +15 -15
  79. package/test/media-button.test.js +19 -19
  80. package/test/media-menu.test.js +40 -40
  81. package/test/media-slider.test.js +57 -57
  82. package/test/more-slider.test.js +13 -13
  83. package/test/nav-search.test.js +61 -61
  84. package/test/primary-nav.test.js +82 -82
  85. package/test/save-page-form.test.js +35 -35
  86. package/test/search-menu.test.js +49 -49
  87. package/test/user-menu.test.js +33 -33
  88. package/test/wayback-slider.test.js +80 -80
@@ -1,139 +1,139 @@
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: 3;
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
- @media (min-width: 890px) {
71
- nav {
72
- overflow: visible;
73
- top: 0;
74
- left: auto;
75
- z-index: 5;
76
- transition: opacity 0.2s ease-in-out;
77
- font-size: 1.4rem;
78
- border-radius: 2px;
79
- background: var(--primaryTextColor);
80
- box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.15);
81
- }
82
-
83
- nav:after {
84
- position: absolute;
85
- right: 7px;
86
- top: -7px;
87
- width: 12px;
88
- height: 7px;
89
- box-sizing: border-box;
90
- color: #fff;
91
- content: '';
92
- border-bottom: 7px solid currentColor;
93
- border-left: 6px solid transparent;
94
- border-right: 6px solid transparent;
95
- }
96
-
97
- h3 {
98
- display: none;
99
- }
100
-
101
- ul {
102
- /* viewport height - nav height + bottom nav border */
103
- max-height: calc(100vh - 8.5rem + 1px);
104
- }
105
-
106
- .divider {
107
- border-bottom-color: var(--dropdownMenuDivider);
108
- }
109
-
110
- a {
111
- padding: 0.5rem 2rem;
112
- color: var(--inverseTextColor);
113
- transition: background 0.1s ease-out, color 0.1s ease-out;
114
- }
115
-
116
- .info-item {
117
- padding: 0.5rem 2rem;
118
- font-size: 0.8em;
119
- }
120
-
121
- a:hover,
122
- a:active,
123
- a:focus {
124
- color: var(--linkHoverColor);
125
- background: var(--linkColor);
126
- }
127
-
128
- .initial,
129
- .closed {
130
- opacity: 0;
131
- transition-duration: 0.2s;
132
- }
133
-
134
- .open {
135
- opacity: 1;
136
- overflow: visible;
137
- }
138
- }
139
- `;
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: 3;
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
+ @media (min-width: 890px) {
71
+ nav {
72
+ overflow: visible;
73
+ top: 0;
74
+ left: auto;
75
+ z-index: 5;
76
+ transition: opacity 0.2s ease-in-out;
77
+ font-size: 1.4rem;
78
+ border-radius: 2px;
79
+ background: var(--primaryTextColor);
80
+ box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.15);
81
+ }
82
+
83
+ nav:after {
84
+ position: absolute;
85
+ right: 7px;
86
+ top: -7px;
87
+ width: 12px;
88
+ height: 7px;
89
+ box-sizing: border-box;
90
+ color: #fff;
91
+ content: '';
92
+ border-bottom: 7px solid currentColor;
93
+ border-left: 6px solid transparent;
94
+ border-right: 6px solid transparent;
95
+ }
96
+
97
+ h3 {
98
+ display: none;
99
+ }
100
+
101
+ ul {
102
+ /* viewport height - nav height + bottom nav border */
103
+ max-height: calc(100vh - 8.5rem + 1px);
104
+ }
105
+
106
+ .divider {
107
+ border-bottom-color: var(--dropdownMenuDivider);
108
+ }
109
+
110
+ a {
111
+ padding: 0.5rem 2rem;
112
+ color: var(--inverseTextColor);
113
+ transition: background 0.1s ease-out, color 0.1s ease-out;
114
+ }
115
+
116
+ .info-item {
117
+ padding: 0.5rem 2rem;
118
+ font-size: 0.8em;
119
+ }
120
+
121
+ a:hover,
122
+ a:active,
123
+ a:focus {
124
+ color: var(--linkHoverColor);
125
+ background: var(--linkColor);
126
+ }
127
+
128
+ .initial,
129
+ .closed {
130
+ opacity: 0;
131
+ transition-duration: 0.2s;
132
+ }
133
+
134
+ .open {
135
+ opacity: 1;
136
+ overflow: visible;
137
+ }
138
+ }
139
+ `;
@@ -1,88 +1,88 @@
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-size: 2rem;
58
- font-family: var(--themeFontFamily);
59
- }
60
-
61
- primary-nav:focus {
62
- outline: none !important;
63
- }
64
-
65
- #close-layer {
66
- display: none;
67
- position: fixed;
68
- top: 0;
69
- right: 0;
70
- bottom: 0;
71
- left: 0;
72
- z-index: 0;
73
- }
74
- #close-layer.visible {
75
- display: block;
76
- }
77
-
78
- .topnav {
79
- position: relative;
80
- z-index: 3;
81
- }
82
-
83
- @media (max-width: 889px) {
84
- desktop-subnav {
85
- display: none;
86
- }
87
- }
88
- `;
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-size: 2rem;
58
+ font-family: var(--themeFontFamily);
59
+ }
60
+
61
+ primary-nav:focus {
62
+ outline: none !important;
63
+ }
64
+
65
+ #close-layer {
66
+ display: none;
67
+ position: fixed;
68
+ top: 0;
69
+ right: 0;
70
+ bottom: 0;
71
+ left: 0;
72
+ z-index: 0;
73
+ }
74
+ #close-layer.visible {
75
+ display: block;
76
+ }
77
+
78
+ .topnav {
79
+ position: relative;
80
+ z-index: 3;
81
+ }
82
+
83
+ @media (max-width: 889px) {
84
+ desktop-subnav {
85
+ display: none;
86
+ }
87
+ }
88
+ `;
@@ -1,70 +1,70 @@
1
- import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
-
3
- export default css`
4
- .dropdown-toggle {
5
- display: block;
6
- height: 4rem;
7
- font-size: 1.6rem;
8
- text-transform: uppercase;
9
- text-decoration: none;
10
- color: var(--grey80);
11
- cursor: pointer;
12
- }
13
-
14
- .dropdown-toggle .fill-color {
15
- fill: var(--iconFill);
16
- }
17
-
18
- .dropdown-toggle:active .fill-color,
19
- .dropdown-toggle:focus .fill-color,
20
- .dropdown-toggle:hover .fill-color {
21
- fill: var(--linkHoverColor);
22
- }
23
-
24
- .active {
25
- border-radius: 1rem 1rem 0 0;
26
- background: var(--activeButtonBg);
27
- }
28
-
29
- .active .fill-color {
30
- fill: var(--activeColor);
31
- }
32
-
33
- span {
34
- display: none;
35
- font-size: 1.4rem;
36
- text-transform: uppercase;
37
- color: var(--loginTextColor);
38
- }
39
-
40
- span a {
41
- color: inherit;
42
- text-decoration: none;
43
- }
44
-
45
- a:hover,
46
- a:active,
47
- a:focus {
48
- color: var(--linkHoverColor);
49
- }
50
-
51
- @media (min-width: 890px) {
52
- .logged-out-toolbar {
53
- transform: translateY(-.5rem);
54
- }
55
-
56
- .active {
57
- background: transparent;
58
- }
59
-
60
- .dropdown-toggle {
61
- display: inline-block;
62
- vertical-align: middle;
63
- }
64
-
65
- span {
66
- display: inline;
67
- vertical-align: middle;
68
- }
69
- }
70
- `;
1
+ import { css } from 'https://offshoot.prod.archive.org/lit.js';
2
+
3
+ export default css`
4
+ .dropdown-toggle {
5
+ display: block;
6
+ height: 4rem;
7
+ font-size: 1.6rem;
8
+ text-transform: uppercase;
9
+ text-decoration: none;
10
+ color: var(--grey80);
11
+ cursor: pointer;
12
+ }
13
+
14
+ .dropdown-toggle .fill-color {
15
+ fill: var(--iconFill);
16
+ }
17
+
18
+ .dropdown-toggle:active .fill-color,
19
+ .dropdown-toggle:focus .fill-color,
20
+ .dropdown-toggle:hover .fill-color {
21
+ fill: var(--linkHoverColor);
22
+ }
23
+
24
+ .active {
25
+ border-radius: 1rem 1rem 0 0;
26
+ background: var(--activeButtonBg);
27
+ }
28
+
29
+ .active .fill-color {
30
+ fill: var(--activeColor);
31
+ }
32
+
33
+ span {
34
+ display: none;
35
+ font-size: 1.4rem;
36
+ text-transform: uppercase;
37
+ color: var(--loginTextColor);
38
+ }
39
+
40
+ span a {
41
+ color: inherit;
42
+ text-decoration: none;
43
+ }
44
+
45
+ a:hover,
46
+ a:active,
47
+ a:focus {
48
+ color: var(--linkHoverColor);
49
+ }
50
+
51
+ @media (min-width: 890px) {
52
+ .logged-out-toolbar {
53
+ transform: translateY(-.5rem);
54
+ }
55
+
56
+ .active {
57
+ background: transparent;
58
+ }
59
+
60
+ .dropdown-toggle {
61
+ display: inline-block;
62
+ vertical-align: middle;
63
+ }
64
+
65
+ span {
66
+ display: inline;
67
+ vertical-align: middle;
68
+ }
69
+ }
70
+ `;