@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,153 +1,153 @@
1
- import { css } from 'https://offshoot.ux.archive.org/lit.js';
2
-
3
- export default css`
4
- a {
5
- display: inline-block;
6
- text-decoration: none;
7
- }
8
-
9
- .menu-item {
10
- display: inline-flex;
11
- width: 100%;
12
- padding: 0;
13
- font-size: 1.6rem;
14
- text-align: left;
15
- background: transparent;
16
- -webkit-box-align: center;
17
- -ms-flex-align: center;
18
- align-items: center;
19
- }
20
-
21
- .menu-item:focus {
22
- outline: none;
23
- }
24
-
25
- .label {
26
- display: inline-block;
27
- padding: 0;
28
- font-weight: 400;
29
- color: var(--primaryTextColor);
30
- text-align: left;
31
- vertical-align: middle;
32
- }
33
-
34
- .menu-item > .icon {
35
- display: inline-flex;
36
- width: 42px;
37
- height: 42px;
38
- vertical-align: middle;
39
- -webkit-box-align: center;
40
- -ms-flex-align: center;
41
- align-items: center;
42
- -webkit-box-pack: center;
43
- -ms-flex-pack: center;
44
- justify-content: center;
45
- }
46
-
47
- .menu-item.selected .icon {
48
- background-color: var(--activeButtonBg);
49
- border-radius: 1rem 0 0 1rem;
50
- }
51
-
52
- .icon .fill-color {
53
- fill: #999;
54
- }
55
-
56
- .icon.active .fill-color {
57
- fill: #fff;
58
- }
59
-
60
- .donate .fill-color {
61
- fill: #f00;
62
- }
63
-
64
- @media (min-width: 890px) {
65
- .menu-item {
66
- width: auto;
67
- height: 5rem;
68
- color: var(--mediaLabelDesktopColor);
69
- }
70
- .menu-item:hover,
71
- .menu-item:active,
72
- .menu-item:focus {
73
- color: var(--linkHoverColor);
74
- }
75
-
76
- .menu-item:hover .fill-color,
77
- .menu-item:active .fill-color,
78
- .menu-item:focus .fill-color {
79
- fill: var(--linkHoverColor);
80
- }
81
-
82
- .label {
83
- display: none;
84
- }
85
-
86
- .label,
87
- .web:after {
88
- padding-right: 1rem;
89
- font-size: 1.3rem;
90
- text-transform: uppercase;
91
- color: inherit;
92
- }
93
-
94
-
95
- .web:after {
96
- display: none;
97
- content: "web";
98
- }
99
- .donate,
100
- .more {
101
- display: none;
102
- }
103
-
104
- .menu-item.selected {
105
- background: var(--activeDesktopMenuIcon);
106
- }
107
-
108
- .menu-item.selected .label,
109
- .menu-item.selected.web:after {
110
- color: var(--linkHoverColor);
111
- }
112
-
113
- .menu-item.selected .icon {
114
- background: transparent;
115
- }
116
-
117
- /* selected state icon colors */
118
- .web.selected .fill-color {
119
- fill: #ffcd27;
120
- }
121
-
122
- .texts.selected .fill-color {
123
- fill: #faab3c;
124
- }
125
-
126
- .video.selected .fill-color {
127
- fill: #f1644b;
128
- }
129
-
130
- .audio.selected .fill-color {
131
- fill: #00adef;
132
- }
133
-
134
- .software.selected .fill-color {
135
- fill: #9ecc4f;
136
- }
137
-
138
- .images.selected .fill-color {
139
- fill: #aa99c9;
140
- }
141
- }
142
-
143
- @media (min-width: 1300px) {
144
- .label,
145
- .web:after {
146
- display: inline;
147
- }
148
-
149
- .web .label {
150
- display: none;
151
- }
152
- }
153
- `;
1
+ import { css } from 'https://offshoot.ux.archive.org/lit.js';
2
+
3
+ export default css`
4
+ a {
5
+ display: inline-block;
6
+ text-decoration: none;
7
+ }
8
+
9
+ .menu-item {
10
+ display: inline-flex;
11
+ width: 100%;
12
+ padding: 0;
13
+ font-size: 1.6rem;
14
+ text-align: left;
15
+ background: transparent;
16
+ -webkit-box-align: center;
17
+ -ms-flex-align: center;
18
+ align-items: center;
19
+ }
20
+
21
+ .menu-item:focus {
22
+ outline: none;
23
+ }
24
+
25
+ .label {
26
+ display: inline-block;
27
+ padding: 0;
28
+ font-weight: 400;
29
+ color: var(--primaryTextColor);
30
+ text-align: left;
31
+ vertical-align: middle;
32
+ }
33
+
34
+ .menu-item > .icon {
35
+ display: inline-flex;
36
+ width: 42px;
37
+ height: 42px;
38
+ vertical-align: middle;
39
+ -webkit-box-align: center;
40
+ -ms-flex-align: center;
41
+ align-items: center;
42
+ -webkit-box-pack: center;
43
+ -ms-flex-pack: center;
44
+ justify-content: center;
45
+ }
46
+
47
+ .menu-item.selected .icon {
48
+ background-color: var(--activeButtonBg);
49
+ border-radius: 1rem 0 0 1rem;
50
+ }
51
+
52
+ .icon .fill-color {
53
+ fill: #999;
54
+ }
55
+
56
+ .icon.active .fill-color {
57
+ fill: #fff;
58
+ }
59
+
60
+ .donate .fill-color {
61
+ fill: #f00;
62
+ }
63
+
64
+ @media (min-width: 890px) {
65
+ .menu-item {
66
+ width: auto;
67
+ height: 5rem;
68
+ color: var(--mediaLabelDesktopColor);
69
+ }
70
+ .menu-item:hover,
71
+ .menu-item:active,
72
+ .menu-item:focus {
73
+ color: var(--linkHoverColor);
74
+ }
75
+
76
+ .menu-item:hover .fill-color,
77
+ .menu-item:active .fill-color,
78
+ .menu-item:focus .fill-color {
79
+ fill: var(--linkHoverColor);
80
+ }
81
+
82
+ .label {
83
+ display: none;
84
+ }
85
+
86
+ .label,
87
+ .web:after {
88
+ padding-right: 1rem;
89
+ font-size: 1.3rem;
90
+ text-transform: uppercase;
91
+ color: inherit;
92
+ }
93
+
94
+
95
+ .web:after {
96
+ display: none;
97
+ content: "web";
98
+ }
99
+ .donate,
100
+ .more {
101
+ display: none;
102
+ }
103
+
104
+ .menu-item.selected {
105
+ background: var(--activeDesktopMenuIcon);
106
+ }
107
+
108
+ .menu-item.selected .label,
109
+ .menu-item.selected.web:after {
110
+ color: var(--linkHoverColor);
111
+ }
112
+
113
+ .menu-item.selected .icon {
114
+ background: transparent;
115
+ }
116
+
117
+ /* selected state icon colors */
118
+ .web.selected .fill-color {
119
+ fill: #ffcd27;
120
+ }
121
+
122
+ .texts.selected .fill-color {
123
+ fill: #faab3c;
124
+ }
125
+
126
+ .video.selected .fill-color {
127
+ fill: #f1644b;
128
+ }
129
+
130
+ .audio.selected .fill-color {
131
+ fill: #00adef;
132
+ }
133
+
134
+ .software.selected .fill-color {
135
+ fill: #9ecc4f;
136
+ }
137
+
138
+ .images.selected .fill-color {
139
+ fill: #aa99c9;
140
+ }
141
+ }
142
+
143
+ @media (min-width: 1300px) {
144
+ .label,
145
+ .web:after {
146
+ display: inline;
147
+ }
148
+
149
+ .web .label {
150
+ display: none;
151
+ }
152
+ }
153
+ `;
@@ -1,70 +1,70 @@
1
- import { css } from 'https://offshoot.ux.archive.org/lit.js';
2
-
3
- export default css`
4
- :host {
5
- outline: none;
6
- }
7
-
8
- .media-menu-inner {
9
- z-index: -1;
10
- top: -40rem;
11
- background-color: var(--mediaMenuBg);
12
- margin: 0;
13
- overflow: hidden;
14
- transition-duration: 0.2s;
15
- transition-property: top;
16
- transition-timing-function: ease;
17
- }
18
-
19
- .menu-group {
20
- position: relative;
21
- line-height: normal;
22
- }
23
-
24
- /* Mobile view styles */
25
- @media (max-width: 889px) {
26
- .media-menu-container {
27
- position: relative;
28
- }
29
-
30
- .media-menu-inner {
31
- position: absolute;
32
- width: 100%;
33
- }
34
-
35
- .open .media-menu-inner {
36
- top: 0;
37
- }
38
-
39
- .overflow-clip {
40
- position: absolute;
41
- z-index: -1; /** needs to be under the navigation, otherwise it intercepts clicks */
42
- top: 0;
43
- left: 0;
44
- height: 0;
45
- width: 100%;
46
- overflow: hidden;
47
- transition-duration: 0.2s;
48
- transition-property: height;
49
- }
50
-
51
- .open .overflow-clip {
52
- height: 40rem;
53
- }
54
- }
55
-
56
- /* Desktop view styles */
57
- @media (min-width: 890px) {
58
- .media-menu-inner {
59
- display: inline-block;
60
- position: static;
61
- width: auto;
62
- height: 5rem;
63
- transition-property: none;
64
- }
65
-
66
- .menu-group {
67
- font-size: 0;
68
- }
69
- }
70
- `;
1
+ import { css } from 'https://offshoot.ux.archive.org/lit.js';
2
+
3
+ export default css`
4
+ :host {
5
+ outline: none;
6
+ }
7
+
8
+ .media-menu-inner {
9
+ z-index: -1;
10
+ top: -40rem;
11
+ background-color: var(--mediaMenuBg);
12
+ margin: 0;
13
+ overflow: hidden;
14
+ transition-duration: 0.2s;
15
+ transition-property: top;
16
+ transition-timing-function: ease;
17
+ }
18
+
19
+ .menu-group {
20
+ position: relative;
21
+ line-height: normal;
22
+ }
23
+
24
+ /* Mobile view styles */
25
+ @media (max-width: 889px) {
26
+ .media-menu-container {
27
+ position: relative;
28
+ }
29
+
30
+ .media-menu-inner {
31
+ position: absolute;
32
+ width: 100%;
33
+ }
34
+
35
+ .open .media-menu-inner {
36
+ top: 0;
37
+ }
38
+
39
+ .overflow-clip {
40
+ position: absolute;
41
+ z-index: -1; /** needs to be under the navigation, otherwise it intercepts clicks */
42
+ top: 0;
43
+ left: 0;
44
+ height: 0;
45
+ width: 100%;
46
+ overflow: hidden;
47
+ transition-duration: 0.2s;
48
+ transition-property: height;
49
+ }
50
+
51
+ .open .overflow-clip {
52
+ height: 40rem;
53
+ }
54
+ }
55
+
56
+ /* Desktop view styles */
57
+ @media (min-width: 890px) {
58
+ .media-menu-inner {
59
+ display: inline-block;
60
+ position: static;
61
+ width: auto;
62
+ height: 5rem;
63
+ transition-property: none;
64
+ }
65
+
66
+ .menu-group {
67
+ font-size: 0;
68
+ }
69
+ }
70
+ `;
@@ -1,81 +1,81 @@
1
- import { css } from 'https://offshoot.ux.archive.org/lit.js';
2
-
3
- export default css`
4
- .media-slider-container {
5
- position: relative;
6
- }
7
-
8
- .overflow-clip {
9
- display: none;
10
- position: absolute;
11
- top: 3rem;
12
- right: 0;
13
- left: 0;
14
- height: 0;
15
- overflow: hidden;
16
- transition: height 0.2s ease;
17
- }
18
-
19
- .information-menu {
20
- position: absolute;
21
- top: 0;
22
- right: 0;
23
- left: 0;
24
- padding: 0;
25
- height: 368px;
26
- overflow-x: hidden;
27
- font-size: 1.4rem;
28
- background: var(--mediaSliderBg);
29
- }
30
-
31
- .open {
32
- display: block;
33
- }
34
-
35
- .hidden {
36
- display: none;
37
- }
38
-
39
- .info-box {
40
- padding: 1rem;
41
- }
42
-
43
- @media (max-width: 889px) {
44
- .overflow-clip.open {
45
- display: block;
46
- height: 367px;
47
- left: 4rem;
48
- top: 0;
49
- }
50
- }
51
-
52
- @media (min-width: 890px) {
53
- .overflow-clip {
54
- display: block;
55
- }
56
-
57
- .information-menu {
58
- left: 0;
59
- z-index: 2;
60
- height: auto;
61
- min-height: 21rem;
62
- background: var(--mediaSliderDesktopBg);
63
- transform: translate(0, -100%);
64
- transition: transform 0.2s ease;
65
- }
66
-
67
- .overflow-clip.open {
68
- height: 22rem;
69
- }
70
-
71
- .information-menu.open {
72
- transform: translate(0, 0);
73
- }
74
-
75
- .info-box {
76
- max-width: 1000px;
77
- padding: 1.5rem 0;
78
- margin: 0 auto;
79
- }
80
- }
81
- `;
1
+ import { css } from 'https://offshoot.ux.archive.org/lit.js';
2
+
3
+ export default css`
4
+ .media-slider-container {
5
+ position: relative;
6
+ }
7
+
8
+ .overflow-clip {
9
+ display: none;
10
+ position: absolute;
11
+ top: 3rem;
12
+ right: 0;
13
+ left: 0;
14
+ height: 0;
15
+ overflow: hidden;
16
+ transition: height 0.2s ease;
17
+ }
18
+
19
+ .information-menu {
20
+ position: absolute;
21
+ top: 0;
22
+ right: 0;
23
+ left: 0;
24
+ padding: 0;
25
+ height: 368px;
26
+ overflow-x: hidden;
27
+ font-size: 1.4rem;
28
+ background: var(--mediaSliderBg);
29
+ }
30
+
31
+ .open {
32
+ display: block;
33
+ }
34
+
35
+ .hidden {
36
+ display: none;
37
+ }
38
+
39
+ .info-box {
40
+ padding: 1rem;
41
+ }
42
+
43
+ @media (max-width: 889px) {
44
+ .overflow-clip.open {
45
+ display: block;
46
+ height: 367px;
47
+ left: 4rem;
48
+ top: 0;
49
+ }
50
+ }
51
+
52
+ @media (min-width: 890px) {
53
+ .overflow-clip {
54
+ display: block;
55
+ }
56
+
57
+ .information-menu {
58
+ left: 0;
59
+ z-index: 2;
60
+ height: auto;
61
+ min-height: 21rem;
62
+ background: var(--mediaSliderDesktopBg);
63
+ transform: translate(0, -100%);
64
+ transition: transform 0.2s ease;
65
+ }
66
+
67
+ .overflow-clip.open {
68
+ height: 22rem;
69
+ }
70
+
71
+ .information-menu.open {
72
+ transform: translate(0, 0);
73
+ }
74
+
75
+ .info-box {
76
+ max-width: 1000px;
77
+ padding: 1.5rem 0;
78
+ margin: 0 auto;
79
+ }
80
+ }
81
+ `;