@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,143 +1,143 @@
1
- import { css } from 'https://offshoot.ux.archive.org/lit.js';
2
-
3
- export default css`
4
- :host {
5
- --topOffset: -1500px;
6
- }
7
-
8
- .nav-container {
9
- position: relative;
10
- }
11
-
12
- nav {
13
- position: absolute;
14
- right: 0;
15
- z-index: 2;
16
- overflow: hidden;
17
- font-size: 1.6rem;
18
- background-color: var(--dropdownMenuBg);
19
- transition-property: top;
20
- transition-duration: 0.2s;
21
- transition-timing-function: ease;
22
- }
23
-
24
- .initial,
25
- .closed {
26
- top: var(--topOffset);
27
- }
28
-
29
- .closed {
30
- transition-duration: 0.5s;
31
- }
32
-
33
- .open {
34
- max-width: 100vw;
35
- overflow: auto;
36
- }
37
-
38
- h3 {
39
- padding: 0.6rem 2rem;
40
- margin: 0;
41
- font-size: inherit;
42
- overflow: hidden;
43
- text-overflow: ellipsis;
44
- }
45
-
46
- ul {
47
- padding: 0.4rem 0 0.7rem 0;
48
- margin: 0;
49
- list-style: none;
50
- /* viewport height - nav height + bottom nav border */
51
- max-height: calc(100vh - 7.2rem + 1px);
52
- overflow: auto;
53
- box-sizing: border-box;
54
- }
55
-
56
- .divider {
57
- margin: 0.5rem 0;
58
- border-bottom: 1px solid var(--dropdownMenuDivider);
59
- }
60
-
61
- a,
62
- .info-item {
63
- display: block;
64
- color: var(--primaryTextColor);
65
- text-decoration: none;
66
- padding: 1rem 2rem;
67
- }
68
-
69
- .info-item {
70
- font-size: 0.8em;
71
- color: var(--dropdownMenuInfoItem);
72
- }
73
-
74
- @media (min-width: 890px) {
75
- nav {
76
- overflow: visible;
77
- top: 0;
78
- left: auto;
79
- z-index: 5;
80
- transition: opacity 0.2s ease-in-out;
81
- font-size: 1.4rem;
82
- border-radius: 2px;
83
- background: var(--primaryTextColor);
84
- box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.15);
85
- }
86
-
87
- nav:after {
88
- position: absolute;
89
- right: 7px;
90
- top: -7px;
91
- width: 12px;
92
- height: 7px;
93
- box-sizing: border-box;
94
- color: #fff;
95
- content: '';
96
- border-bottom: 7px solid currentColor;
97
- border-left: 6px solid transparent;
98
- border-right: 6px solid transparent;
99
- }
100
-
101
- h3 {
102
- display: none;
103
- }
104
-
105
- ul {
106
- /* viewport height - nav height + bottom nav border */
107
- max-height: calc(100vh - 8.5rem + 1px);
108
- }
109
-
110
- .divider {
111
- border-bottom-color: var(--dropdownMenuDivider);
112
- }
113
-
114
- a {
115
- padding: 0.5rem 2rem;
116
- color: var(--inverseTextColor);
117
- transition: background 0.1s ease-out, color 0.1s ease-out;
118
- }
119
-
120
- .info-item {
121
- padding: 0.5rem 2rem;
122
- font-size: 0.8em;
123
- }
124
-
125
- a:hover,
126
- a:active,
127
- a:focus {
128
- color: var(--linkHoverColor);
129
- background: var(--linkColor);
130
- }
131
-
132
- .initial,
133
- .closed {
134
- opacity: 0;
135
- transition-duration: 0.2s;
136
- }
137
-
138
- .open {
139
- opacity: 1;
140
- overflow: visible;
141
- }
142
- }
143
- `;
1
+ import { css } from 'https://offshoot.ux.archive.org/lit.js';
2
+
3
+ export default css`
4
+ :host {
5
+ --topOffset: -1500px;
6
+ }
7
+
8
+ .nav-container {
9
+ position: relative;
10
+ }
11
+
12
+ nav {
13
+ position: absolute;
14
+ right: 0;
15
+ z-index: 2;
16
+ overflow: hidden;
17
+ font-size: 1.6rem;
18
+ background-color: var(--dropdownMenuBg);
19
+ transition-property: top;
20
+ transition-duration: 0.2s;
21
+ transition-timing-function: ease;
22
+ }
23
+
24
+ .initial,
25
+ .closed {
26
+ top: var(--topOffset);
27
+ }
28
+
29
+ .closed {
30
+ transition-duration: 0.5s;
31
+ }
32
+
33
+ .open {
34
+ max-width: 100vw;
35
+ overflow: auto;
36
+ }
37
+
38
+ h3 {
39
+ padding: 0.6rem 2rem;
40
+ margin: 0;
41
+ font-size: inherit;
42
+ overflow: hidden;
43
+ text-overflow: ellipsis;
44
+ }
45
+
46
+ ul {
47
+ padding: 0.4rem 0 0.7rem 0;
48
+ margin: 0;
49
+ list-style: none;
50
+ /* viewport height - nav height + bottom nav border */
51
+ max-height: calc(100vh - 7.2rem + 1px);
52
+ overflow: auto;
53
+ box-sizing: border-box;
54
+ }
55
+
56
+ .divider {
57
+ margin: 0.5rem 0;
58
+ border-bottom: 1px solid var(--dropdownMenuDivider);
59
+ }
60
+
61
+ a,
62
+ .info-item {
63
+ display: block;
64
+ color: var(--primaryTextColor);
65
+ text-decoration: none;
66
+ padding: 1rem 2rem;
67
+ }
68
+
69
+ .info-item {
70
+ font-size: 0.8em;
71
+ color: var(--dropdownMenuInfoItem);
72
+ }
73
+
74
+ @media (min-width: 890px) {
75
+ nav {
76
+ overflow: visible;
77
+ top: 0;
78
+ left: auto;
79
+ z-index: 5;
80
+ transition: opacity 0.2s ease-in-out;
81
+ font-size: 1.4rem;
82
+ border-radius: 2px;
83
+ background: var(--primaryTextColor);
84
+ box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.15);
85
+ }
86
+
87
+ nav:after {
88
+ position: absolute;
89
+ right: 7px;
90
+ top: -7px;
91
+ width: 12px;
92
+ height: 7px;
93
+ box-sizing: border-box;
94
+ color: #fff;
95
+ content: '';
96
+ border-bottom: 7px solid currentColor;
97
+ border-left: 6px solid transparent;
98
+ border-right: 6px solid transparent;
99
+ }
100
+
101
+ h3 {
102
+ display: none;
103
+ }
104
+
105
+ ul {
106
+ /* viewport height - nav height + bottom nav border */
107
+ max-height: calc(100vh - 8.5rem + 1px);
108
+ }
109
+
110
+ .divider {
111
+ border-bottom-color: var(--dropdownMenuDivider);
112
+ }
113
+
114
+ a {
115
+ padding: 0.5rem 2rem;
116
+ color: var(--inverseTextColor);
117
+ transition: background 0.1s ease-out, color 0.1s ease-out;
118
+ }
119
+
120
+ .info-item {
121
+ padding: 0.5rem 2rem;
122
+ font-size: 0.8em;
123
+ }
124
+
125
+ a:hover,
126
+ a:active,
127
+ a:focus {
128
+ color: var(--linkHoverColor);
129
+ background: var(--linkColor);
130
+ }
131
+
132
+ .initial,
133
+ .closed {
134
+ opacity: 0;
135
+ transition-duration: 0.2s;
136
+ }
137
+
138
+ .open {
139
+ opacity: 1;
140
+ overflow: visible;
141
+ }
142
+ }
143
+ `;
@@ -1,88 +1,88 @@
1
- import { css } from 'https://offshoot.ux.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.ux.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.ux.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.ux.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
+ `;