@internetarchive/elements 1.1.3-webdev-9241.0 → 1.1.3

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 (182) hide show
  1. package/README.md +2 -2
  2. package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts +2 -0
  3. package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts.map +1 -1
  4. package/dist/src/elements/ia-radio-player/ia-radio-player.js +6 -1
  5. package/dist/src/elements/ia-radio-player/ia-radio-player.js.map +1 -1
  6. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts +16 -1
  7. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts.map +1 -1
  8. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js +136 -8
  9. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js.map +1 -1
  10. package/package.json +3 -5
  11. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts +0 -3
  12. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts.map +0 -1
  13. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js +0 -28
  14. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js.map +0 -1
  15. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts +0 -3
  16. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts.map +0 -1
  17. package/dist/src/elements/ia-topnav/assets/img/icon-close.js +0 -20
  18. package/dist/src/elements/ia-topnav/assets/img/icon-close.js.map +0 -1
  19. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts +0 -3
  20. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts.map +0 -1
  21. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js +0 -19
  22. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js.map +0 -1
  23. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts +0 -3
  24. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts.map +0 -1
  25. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js +0 -18
  26. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js.map +0 -1
  27. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts +0 -3
  28. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts.map +0 -1
  29. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js +0 -19
  30. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js.map +0 -1
  31. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts +0 -3
  32. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts.map +0 -1
  33. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js +0 -30
  34. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js.map +0 -1
  35. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts +0 -3
  36. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts.map +0 -1
  37. package/dist/src/elements/ia-topnav/assets/img/icon-images.js +0 -19
  38. package/dist/src/elements/ia-topnav/assets/img/icon-images.js.map +0 -1
  39. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts +0 -3
  40. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts.map +0 -1
  41. package/dist/src/elements/ia-topnav/assets/img/icon-search.js +0 -19
  42. package/dist/src/elements/ia-topnav/assets/img/icon-search.js.map +0 -1
  43. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts +0 -3
  44. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts.map +0 -1
  45. package/dist/src/elements/ia-topnav/assets/img/icon-software.js +0 -18
  46. package/dist/src/elements/ia-topnav/assets/img/icon-software.js.map +0 -1
  47. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts +0 -3
  48. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts.map +0 -1
  49. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js +0 -18
  50. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js.map +0 -1
  51. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts +0 -3
  52. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts.map +0 -1
  53. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js +0 -18
  54. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js.map +0 -1
  55. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts +0 -3
  56. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts.map +0 -1
  57. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js +0 -21
  58. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js.map +0 -1
  59. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts +0 -3
  60. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts.map +0 -1
  61. package/dist/src/elements/ia-topnav/assets/img/icon-user.js +0 -19
  62. package/dist/src/elements/ia-topnav/assets/img/icon-user.js.map +0 -1
  63. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts +0 -3
  64. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts.map +0 -1
  65. package/dist/src/elements/ia-topnav/assets/img/icon-video.js +0 -19
  66. package/dist/src/elements/ia-topnav/assets/img/icon-video.js.map +0 -1
  67. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts +0 -3
  68. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts.map +0 -1
  69. package/dist/src/elements/ia-topnav/assets/img/icon-web.js +0 -19
  70. package/dist/src/elements/ia-topnav/assets/img/icon-web.js.map +0 -1
  71. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts +0 -6
  72. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts.map +0 -1
  73. package/dist/src/elements/ia-topnav/assets/img/icon.js +0 -17
  74. package/dist/src/elements/ia-topnav/assets/img/icon.js.map +0 -1
  75. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts +0 -19
  76. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts.map +0 -1
  77. package/dist/src/elements/ia-topnav/assets/img/icons.js +0 -33
  78. package/dist/src/elements/ia-topnav/assets/img/icons.js.map +0 -1
  79. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts +0 -3
  80. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts.map +0 -1
  81. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js +0 -21
  82. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js.map +0 -1
  83. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts +0 -3
  84. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts.map +0 -1
  85. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js +0 -13
  86. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js.map +0 -1
  87. package/dist/src/elements/ia-topnav/data/menus.d.ts +0 -17
  88. package/dist/src/elements/ia-topnav/data/menus.d.ts.map +0 -1
  89. package/dist/src/elements/ia-topnav/data/menus.js +0 -680
  90. package/dist/src/elements/ia-topnav/data/menus.js.map +0 -1
  91. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts +0 -21
  92. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts.map +0 -1
  93. package/dist/src/elements/ia-topnav/dropdown-menu.js +0 -315
  94. package/dist/src/elements/ia-topnav/dropdown-menu.js.map +0 -1
  95. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts +0 -11
  96. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts.map +0 -1
  97. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js +0 -89
  98. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js.map +0 -1
  99. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts +0 -6
  100. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts.map +0 -1
  101. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js +0 -47
  102. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js.map +0 -1
  103. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts +0 -20
  104. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts.map +0 -1
  105. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js +0 -183
  106. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js.map +0 -1
  107. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts +0 -31
  108. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts.map +0 -1
  109. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js +0 -287
  110. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js.map +0 -1
  111. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts +0 -21
  112. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts.map +0 -1
  113. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js +0 -222
  114. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js.map +0 -1
  115. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts +0 -16
  116. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts.map +0 -1
  117. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js +0 -221
  118. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js.map +0 -1
  119. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts +0 -20
  120. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts.map +0 -1
  121. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js +0 -285
  122. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js.map +0 -1
  123. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts +0 -12
  124. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts.map +0 -1
  125. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js +0 -65
  126. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js.map +0 -1
  127. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts +0 -53
  128. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts.map +0 -1
  129. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js +0 -653
  130. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js.map +0 -1
  131. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts +0 -12
  132. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts.map +0 -1
  133. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js +0 -128
  134. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js.map +0 -1
  135. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts +0 -4
  136. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts.map +0 -1
  137. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js +0 -10
  138. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js.map +0 -1
  139. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts +0 -7
  140. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts.map +0 -1
  141. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js +0 -39
  142. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js.map +0 -1
  143. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts +0 -10
  144. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts.map +0 -1
  145. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js +0 -64
  146. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js.map +0 -1
  147. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts +0 -20
  148. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts.map +0 -1
  149. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js +0 -131
  150. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js.map +0 -1
  151. package/dist/src/elements/ia-topnav/ia-topnav.d.ts +0 -85
  152. package/dist/src/elements/ia-topnav/ia-topnav.d.ts.map +0 -1
  153. package/dist/src/elements/ia-topnav/ia-topnav.js +0 -434
  154. package/dist/src/elements/ia-topnav/ia-topnav.js.map +0 -1
  155. package/dist/src/elements/ia-topnav/lib/helpers.d.ts +0 -13
  156. package/dist/src/elements/ia-topnav/lib/helpers.d.ts.map +0 -1
  157. package/dist/src/elements/ia-topnav/lib/helpers.js +0 -24
  158. package/dist/src/elements/ia-topnav/lib/helpers.js.map +0 -1
  159. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts +0 -46
  160. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts.map +0 -1
  161. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js +0 -136
  162. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js.map +0 -1
  163. package/dist/src/elements/ia-topnav/models.d.ts +0 -59
  164. package/dist/src/elements/ia-topnav/models.d.ts.map +0 -1
  165. package/dist/src/elements/ia-topnav/models.js +0 -10
  166. package/dist/src/elements/ia-topnav/models.js.map +0 -1
  167. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts +0 -2
  168. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts.map +0 -1
  169. package/dist/src/elements/ia-topnav/subnav-list-styles.js +0 -49
  170. package/dist/src/elements/ia-topnav/subnav-list-styles.js.map +0 -1
  171. package/dist/src/elements/ia-topnav/tracked-element.d.ts +0 -6
  172. package/dist/src/elements/ia-topnav/tracked-element.d.ts.map +0 -1
  173. package/dist/src/elements/ia-topnav/tracked-element.js +0 -29
  174. package/dist/src/elements/ia-topnav/tracked-element.js.map +0 -1
  175. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts +0 -24
  176. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts.map +0 -1
  177. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js +0 -240
  178. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js.map +0 -1
  179. package/dist/src/elements/index.d.ts +0 -41
  180. package/dist/src/elements/index.d.ts.map +0 -1
  181. package/dist/src/elements/index.js +0 -41
  182. package/dist/src/elements/index.js.map +0 -1
@@ -1,183 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { css, html } from 'lit';
3
- import TrackedElement from './tracked-element.js';
4
- import icons from './assets/img/icons.js';
5
- import { formatUrl, makeBooleanString } from './lib/helpers.js';
6
- import { property, query } from 'lit/decorators.js';
7
- import { customElement } from '../../util/custom-element.js';
8
- import { TOPNAV_MOBILE_BREAKPOINT } from './models.js';
9
- import { defaultTopNavConfig } from './data/menus.js';
10
- import themeStyles from '../../themes/theme-styles.js';
11
- import { localized, msg } from '@lit/localize';
12
- let LoginButton = class LoginButton extends TrackedElement {
13
- constructor() {
14
- super(...arguments);
15
- this.baseHost = '';
16
- this.config = defaultTopNavConfig;
17
- this.openMenu = '';
18
- }
19
- render() {
20
- return html `
21
- <div class="logged-out-toolbar">
22
- <button
23
- class="logged-out-menu ${this.avatarClass}"
24
- @click=${this.toggleDropdown}
25
- data-event-click-tracking="${this.analyticsEvent}"
26
- aria-label=${msg('Toggle login menu')}
27
- aria-expanded="${makeBooleanString(this.menuOpened)}"
28
- >
29
- ${icons.user}
30
- </button>
31
- <span>
32
- <a href="${this.signupPath}">${msg('Sign up')}</a>
33
- |
34
- <a href="${this.loginPath}">${msg('Log in')}</a>
35
- </span>
36
- </div>
37
- `;
38
- }
39
- /** Distance (px) from this element's right edge to the right edge of the dropdown toggle icon. */
40
- getDropdownToggleOffset() {
41
- if (!this.toggleButton)
42
- return 0;
43
- return (this.getBoundingClientRect().right -
44
- this.toggleButton.getBoundingClientRect().right);
45
- }
46
- get signupPath() {
47
- return formatUrl('/signup', this.baseHost);
48
- }
49
- get loginPath() {
50
- return formatUrl('/login', this.baseHost);
51
- }
52
- get analyticsEvent() {
53
- return `${this.config?.eventCategory}|NavLoginIcon`;
54
- }
55
- get menuOpened() {
56
- return this.openMenu === 'login';
57
- }
58
- get avatarClass() {
59
- return `dropdown-toggle${this.menuOpened ? ' active' : ''}`;
60
- }
61
- toggleDropdown(e) {
62
- e.preventDefault();
63
- this.trackClick(e);
64
- this.dispatchEvent(new CustomEvent('menuToggled', {
65
- bubbles: true,
66
- composed: true,
67
- detail: {
68
- menuName: 'login',
69
- },
70
- }));
71
- }
72
- static get styles() {
73
- return [
74
- themeStyles,
75
- css `
76
- .logged-out-menu {
77
- background: inherit;
78
- border: none;
79
- }
80
- .logged-out-menu:focus-visible {
81
- outline: none;
82
- border: none;
83
- }
84
- .dropdown-toggle {
85
- display: block;
86
- text-transform: uppercase;
87
- color: var(--grey80);
88
- cursor: pointer;
89
- }
90
-
91
- .dropdown-toggle svg {
92
- height: 100%;
93
- width: 4rem;
94
- }
95
-
96
- .dropdown-toggle .fill-color {
97
- fill: var(--iconFill);
98
- }
99
-
100
- .dropdown-toggle:active .fill-color,
101
- .dropdown-toggle:focus .fill-color,
102
- .dropdown-toggle:hover .fill-color {
103
- fill: var(--linkHoverColor);
104
- }
105
-
106
- .active {
107
- border-radius: 1rem 1rem 0 0;
108
- background: var(--activeButtonBg);
109
- }
110
-
111
- .active .fill-color {
112
- fill: var(--activeColor);
113
- }
114
-
115
- span {
116
- display: none;
117
- font-size: 1.4rem;
118
- text-transform: uppercase;
119
- color: var(--loginTextColor);
120
- }
121
-
122
- span a {
123
- color: inherit;
124
- text-decoration: none;
125
- outline: 0;
126
- }
127
-
128
- a:hover,
129
- a:active,
130
- a:focus {
131
- color: var(--linkHoverColor) !important;
132
- outline: none !important;
133
- outline-offset: inherit !important;
134
- }
135
-
136
- @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
137
- .logged-out-toolbar {
138
- padding: 1rem 0.5rem;
139
- vertical-align: middle;
140
- }
141
-
142
- .active {
143
- background: transparent;
144
- }
145
-
146
- .dropdown-toggle {
147
- display: inline-block;
148
- vertical-align: middle;
149
- }
150
-
151
- .dropdown-toggle svg {
152
- height: 3rem;
153
- width: 3rem;
154
- display: block;
155
- }
156
-
157
- span {
158
- display: inline;
159
- vertical-align: middle;
160
- }
161
- }
162
- `,
163
- ];
164
- }
165
- };
166
- __decorate([
167
- property({ type: String })
168
- ], LoginButton.prototype, "baseHost", void 0);
169
- __decorate([
170
- property({ type: Object })
171
- ], LoginButton.prototype, "config", void 0);
172
- __decorate([
173
- property({ type: String })
174
- ], LoginButton.prototype, "openMenu", void 0);
175
- __decorate([
176
- query('button.logged-out-menu')
177
- ], LoginButton.prototype, "toggleButton", void 0);
178
- LoginButton = __decorate([
179
- customElement('ia-topnav-login-button'),
180
- localized()
181
- ], LoginButton);
182
- export { LoginButton };
183
- //# sourceMappingURL=ia-topnav-login-button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ia-topnav-login-button.js","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav-login-button.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup, css, html } from 'lit';\nimport TrackedElement from './tracked-element';\nimport icons from './assets/img/icons';\nimport { formatUrl, makeBooleanString } from './lib/helpers';\nimport { property, query } from 'lit/decorators.js';\nimport { customElement } from '@src/util/custom-element';\nimport { IATopNavConfig, TOPNAV_MOBILE_BREAKPOINT } from './models';\nimport { defaultTopNavConfig } from './data/menus';\nimport themeStyles from '@src/themes/theme-styles';\nimport { localized, msg } from '@lit/localize';\n\n@customElement('ia-topnav-login-button')\n@localized()\nexport class LoginButton extends TrackedElement {\n @property({ type: String }) baseHost = '';\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n @property({ type: String }) openMenu = '';\n\n @query('button.logged-out-menu') private toggleButton?: HTMLButtonElement;\n\n render() {\n return html`\n <div class=\"logged-out-toolbar\">\n <button\n class=\"logged-out-menu ${this.avatarClass}\"\n @click=${this.toggleDropdown}\n data-event-click-tracking=\"${this.analyticsEvent}\"\n aria-label=${msg('Toggle login menu')}\n aria-expanded=\"${makeBooleanString(this.menuOpened)}\"\n >\n ${icons.user}\n </button>\n <span>\n <a href=\"${this.signupPath}\">${msg('Sign up')}</a>\n |\n <a href=\"${this.loginPath}\">${msg('Log in')}</a>\n </span>\n </div>\n `;\n }\n\n /** Distance (px) from this element's right edge to the right edge of the dropdown toggle icon. */\n getDropdownToggleOffset(): number {\n if (!this.toggleButton) return 0;\n return (\n this.getBoundingClientRect().right -\n this.toggleButton.getBoundingClientRect().right\n );\n }\n\n get signupPath() {\n return formatUrl('/signup', this.baseHost);\n }\n\n get loginPath() {\n return formatUrl('/login', this.baseHost);\n }\n\n get analyticsEvent() {\n return `${this.config?.eventCategory}|NavLoginIcon`;\n }\n\n get menuOpened(): boolean {\n return this.openMenu === 'login';\n }\n\n get avatarClass() {\n return `dropdown-toggle${this.menuOpened ? ' active' : ''}`;\n }\n\n toggleDropdown(e: Event) {\n e.preventDefault();\n this.trackClick(e);\n this.dispatchEvent(\n new CustomEvent('menuToggled', {\n bubbles: true,\n composed: true,\n detail: {\n menuName: 'login',\n },\n }),\n );\n }\n\n static get styles(): CSSResultGroup {\n return [\n themeStyles,\n css`\n .logged-out-menu {\n background: inherit;\n border: none;\n }\n .logged-out-menu:focus-visible {\n outline: none;\n border: none;\n }\n .dropdown-toggle {\n display: block;\n text-transform: uppercase;\n color: var(--grey80);\n cursor: pointer;\n }\n\n .dropdown-toggle svg {\n height: 100%;\n width: 4rem;\n }\n\n .dropdown-toggle .fill-color {\n fill: var(--iconFill);\n }\n\n .dropdown-toggle:active .fill-color,\n .dropdown-toggle:focus .fill-color,\n .dropdown-toggle:hover .fill-color {\n fill: var(--linkHoverColor);\n }\n\n .active {\n border-radius: 1rem 1rem 0 0;\n background: var(--activeButtonBg);\n }\n\n .active .fill-color {\n fill: var(--activeColor);\n }\n\n span {\n display: none;\n font-size: 1.4rem;\n text-transform: uppercase;\n color: var(--loginTextColor);\n }\n\n span a {\n color: inherit;\n text-decoration: none;\n outline: 0;\n }\n\n a:hover,\n a:active,\n a:focus {\n color: var(--linkHoverColor) !important;\n outline: none !important;\n outline-offset: inherit !important;\n }\n\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\n .logged-out-toolbar {\n padding: 1rem 0.5rem;\n vertical-align: middle;\n }\n\n .active {\n background: transparent;\n }\n\n .dropdown-toggle {\n display: inline-block;\n vertical-align: middle;\n }\n\n .dropdown-toggle svg {\n height: 3rem;\n width: 3rem;\n display: block;\n }\n\n span {\n display: inline;\n vertical-align: middle;\n }\n }\n `,\n ];\n }\n}\n"]}
@@ -1,31 +0,0 @@
1
- import { CSSResultGroup, TemplateResult } from 'lit';
2
- import TrackedElement from './tracked-element.js';
3
- import { IATopNavConfig } from './models.js';
4
- export declare class MediaButton extends TrackedElement {
5
- config: IATopNavConfig;
6
- icon: string;
7
- href: string;
8
- label: string;
9
- mediatype: string;
10
- openMenu: string;
11
- selected: boolean;
12
- followable: boolean;
13
- render(): TemplateResult<1>;
14
- static get icons(): Record<string, TemplateResult>;
15
- onClick(e: Event): void;
16
- dispatchMenuToggledEvent(): void;
17
- dispatchMediaTypeSelectedEvent(): void;
18
- get buttonClass(): "" | "selected";
19
- /**
20
- * The button's tooltip.
21
- *
22
- * Built as a whole phrase per state, because word order around the
23
- * mediatype differs by language.
24
- */
25
- get tooltip(): string;
26
- get iconClass(): "" | "active";
27
- get analyticsEvent(): string;
28
- get menuItem(): TemplateResult<1>;
29
- static get styles(): CSSResultGroup;
30
- }
31
- //# sourceMappingURL=ia-topnav-media-button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ia-topnav-media-button.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav-media-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAChE,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAK/C,OAAO,EAAE,cAAc,EAA4B,MAAM,UAAU,CAAC;AAKpE,qBAEa,WAAY,SAAQ,cAAc;IACjB,MAAM,EAAE,cAAc,CAAuB;IAC7C,IAAI,SAAM;IACV,IAAI,SAAM;IACV,KAAK,SAAM;IACX,SAAS,SAAM;IACf,QAAQ,SAAM;IACb,QAAQ,UAAS;IACjB,UAAU,UAAS;IAEhD,MAAM;IAcN,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAEjD;IAED,OAAO,CAAC,CAAC,EAAE,KAAK;IAYhB,wBAAwB;IAYxB,8BAA8B;IAY9B,IAAI,WAAW,oBAEd;IAED;;;;;OAKG;IACH,IAAI,OAAO,WAIV;IAED,IAAI,SAAS,kBAEZ;IAED,IAAI,cAAc,WAEjB;IAED,IAAI,QAAQ,sBAOX;IAED,MAAM,KAAK,MAAM,IAAI,cAAc,CA8JlC;CACF"}
@@ -1,287 +0,0 @@
1
- var MediaButton_1;
2
- import { __decorate } from "tslib";
3
- import { css, html } from 'lit';
4
- import TrackedElement from './tracked-element.js';
5
- import icons from './assets/img/icons.js';
6
- import { toSentenceCase } from './lib/helpers.js';
7
- import { property } from 'lit/decorators.js';
8
- import { customElement } from '../../util/custom-element.js';
9
- import { TOPNAV_MOBILE_BREAKPOINT } from './models.js';
10
- import { defaultTopNavConfig } from './data/menus.js';
11
- import themeStyles from '../../themes/theme-styles.js';
12
- import { localized, msg, str } from '@lit/localize';
13
- let MediaButton = MediaButton_1 = class MediaButton extends TrackedElement {
14
- constructor() {
15
- super(...arguments);
16
- this.config = defaultTopNavConfig;
17
- this.icon = '';
18
- this.href = '';
19
- this.label = '';
20
- this.mediatype = '';
21
- this.openMenu = '';
22
- this.selected = false;
23
- this.followable = false;
24
- }
25
- render() {
26
- return html `
27
- <a
28
- href="${this.href}"
29
- class="menu-item ${this.mediatype} ${this.buttonClass}"
30
- @click=${this.followable ? this.trackClick : this.onClick}
31
- data-event-click-tracking="${this.analyticsEvent}"
32
- title=${this.tooltip}
33
- >
34
- ${this.menuItem}
35
- </a>
36
- `;
37
- }
38
- static get icons() {
39
- return icons;
40
- }
41
- onClick(e) {
42
- this.trackClick(e);
43
- e.preventDefault();
44
- // On desktop viewport widths, the media subnav is always visible. To
45
- // ensure the media subnav is open on mobile if the viewport is
46
- // resized, the openMenu needs to be set to 'media'.
47
- if (this.openMenu !== 'media') {
48
- this.dispatchMenuToggledEvent();
49
- }
50
- this.dispatchMediaTypeSelectedEvent();
51
- }
52
- dispatchMenuToggledEvent() {
53
- this.dispatchEvent(new CustomEvent('menuToggled', {
54
- bubbles: true,
55
- composed: true,
56
- detail: {
57
- menuName: 'media',
58
- },
59
- }));
60
- }
61
- dispatchMediaTypeSelectedEvent() {
62
- this.dispatchEvent(new CustomEvent('mediaTypeSelected', {
63
- bubbles: true,
64
- composed: true,
65
- detail: {
66
- mediatype: this.mediatype,
67
- },
68
- }));
69
- }
70
- get buttonClass() {
71
- return this.selected ? 'selected' : '';
72
- }
73
- /**
74
- * The button's tooltip.
75
- *
76
- * Built as a whole phrase per state, because word order around the
77
- * mediatype differs by language.
78
- */
79
- get tooltip() {
80
- return this.selected
81
- ? msg(str `Collapse ${this.mediatype} menu`)
82
- : msg(str `Expand ${this.mediatype} menu`);
83
- }
84
- get iconClass() {
85
- return this.selected ? 'active' : '';
86
- }
87
- get analyticsEvent() {
88
- return `${this.config.eventCategory}|NavMenu${toSentenceCase(this.mediatype)}`;
89
- }
90
- get menuItem() {
91
- return html `
92
- <span class="icon ${this.iconClass}">
93
- ${MediaButton_1.icons[this.icon]}
94
- </span>
95
- <span class="label">${this.label}</span>
96
- `;
97
- }
98
- static get styles() {
99
- return [
100
- themeStyles,
101
- css `
102
- a {
103
- display: inline-block;
104
- text-decoration: none;
105
- }
106
-
107
- .menu-item {
108
- display: inline-block;
109
- width: 100%;
110
- padding: 0;
111
- font-size: 1.6rem;
112
- text-align: left;
113
- background: transparent;
114
- -webkit-box-align: center;
115
- -ms-flex-align: center;
116
- align-items: center;
117
- }
118
-
119
- .menu-item:focus {
120
- outline: none;
121
- }
122
-
123
- .label {
124
- display: inline-block;
125
- padding: 0;
126
- font-weight: 400;
127
- color: var(--primaryTextColor);
128
- text-align: left;
129
- vertical-align: middle;
130
- }
131
-
132
- .menu-item > .icon {
133
- display: inline-flex;
134
- vertical-align: middle;
135
- -webkit-box-align: center;
136
- -ms-flex-align: center;
137
- align-items: center;
138
- -webkit-box-pack: center;
139
- -ms-flex-pack: center;
140
- justify-content: center;
141
- }
142
-
143
- .menu-item > .icon > svg {
144
- height: 4rem;
145
- width: 4rem;
146
- }
147
-
148
- .menu-item.selected .icon {
149
- background-color: var(--activeButtonBg);
150
- border-radius: 1rem 0 0 1rem;
151
- }
152
-
153
- .icon .fill-color {
154
- fill: #999;
155
- }
156
-
157
- .icon.active .fill-color {
158
- fill: #fff;
159
- }
160
-
161
- .donate .fill-color {
162
- fill: #f00;
163
- }
164
-
165
- @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
166
- .menu-item {
167
- width: auto;
168
- height: 5rem;
169
- color: var(--mediaLabelDesktopColor);
170
- display: inline-flex;
171
- }
172
- .menu-item:hover,
173
- .menu-item:active,
174
- .menu-item:focus {
175
- color: var(--linkHoverColor);
176
- }
177
-
178
- .menu-item:hover .fill-color,
179
- .menu-item:active .fill-color,
180
- .menu-item:focus .fill-color {
181
- fill: var(--linkHoverColor);
182
- }
183
-
184
- .label {
185
- display: none;
186
- }
187
-
188
- .label,
189
- .web:after {
190
- padding-right: 1rem;
191
- font-size: 1.3rem;
192
- text-transform: uppercase;
193
- color: inherit;
194
- }
195
-
196
- .web:after {
197
- display: none;
198
- content: 'web';
199
- }
200
- .donate,
201
- .more {
202
- display: none;
203
- }
204
-
205
- .menu-item.selected {
206
- background: var(--activeDesktopMenuIcon);
207
- }
208
-
209
- .menu-item.selected .label,
210
- .menu-item.selected.web:after {
211
- color: var(--linkHoverColor);
212
- }
213
-
214
- .menu-item.selected .icon {
215
- background: transparent;
216
- }
217
-
218
- /* selected state icon colors */
219
- .web.selected .fill-color {
220
- fill: #ffcd27;
221
- }
222
-
223
- .texts.selected .fill-color {
224
- fill: #faab3c;
225
- }
226
-
227
- .video.selected .fill-color {
228
- fill: #f1644b;
229
- }
230
-
231
- .audio.selected .fill-color {
232
- fill: #00adef;
233
- }
234
-
235
- .software.selected .fill-color {
236
- fill: #9ecc4f;
237
- }
238
-
239
- .images.selected .fill-color {
240
- fill: #aa99c9;
241
- }
242
- }
243
-
244
- @media (min-width: 1200px) {
245
- .label,
246
- .web:after {
247
- display: inline;
248
- }
249
-
250
- .web .label {
251
- display: none;
252
- }
253
- }
254
- `,
255
- ];
256
- }
257
- };
258
- __decorate([
259
- property({ type: Object })
260
- ], MediaButton.prototype, "config", void 0);
261
- __decorate([
262
- property({ type: String })
263
- ], MediaButton.prototype, "icon", void 0);
264
- __decorate([
265
- property({ type: String })
266
- ], MediaButton.prototype, "href", void 0);
267
- __decorate([
268
- property({ type: String })
269
- ], MediaButton.prototype, "label", void 0);
270
- __decorate([
271
- property({ type: String })
272
- ], MediaButton.prototype, "mediatype", void 0);
273
- __decorate([
274
- property({ type: String })
275
- ], MediaButton.prototype, "openMenu", void 0);
276
- __decorate([
277
- property({ type: Boolean })
278
- ], MediaButton.prototype, "selected", void 0);
279
- __decorate([
280
- property({ type: Boolean })
281
- ], MediaButton.prototype, "followable", void 0);
282
- MediaButton = MediaButton_1 = __decorate([
283
- customElement('ia-topnav-media-button'),
284
- localized()
285
- ], MediaButton);
286
- export { MediaButton };
287
- //# sourceMappingURL=ia-topnav-media-button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ia-topnav-media-button.js","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav-media-button.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup, TemplateResult, css, html } from 'lit';\nimport TrackedElement from './tracked-element';\nimport icons from './assets/img/icons';\nimport { toSentenceCase } from './lib/helpers';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '@src/util/custom-element';\nimport { IATopNavConfig, TOPNAV_MOBILE_BREAKPOINT } from './models';\nimport { defaultTopNavConfig } from './data/menus';\nimport themeStyles from '@src/themes/theme-styles';\nimport { localized, msg, str } from '@lit/localize';\n\n@customElement('ia-topnav-media-button')\n@localized()\nexport class MediaButton extends TrackedElement {\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n @property({ type: String }) icon = '';\n @property({ type: String }) href = '';\n @property({ type: String }) label = '';\n @property({ type: String }) mediatype = '';\n @property({ type: String }) openMenu = '';\n @property({ type: Boolean }) selected = false;\n @property({ type: Boolean }) followable = false;\n\n render() {\n return html`\n <a\n href=\"${this.href}\"\n class=\"menu-item ${this.mediatype} ${this.buttonClass}\"\n @click=${this.followable ? this.trackClick : this.onClick}\n data-event-click-tracking=\"${this.analyticsEvent}\"\n title=${this.tooltip}\n >\n ${this.menuItem}\n </a>\n `;\n }\n\n static get icons(): Record<string, TemplateResult> {\n return icons;\n }\n\n onClick(e: Event) {\n this.trackClick(e);\n e.preventDefault();\n // On desktop viewport widths, the media subnav is always visible. To\n // ensure the media subnav is open on mobile if the viewport is\n // resized, the openMenu needs to be set to 'media'.\n if (this.openMenu !== 'media') {\n this.dispatchMenuToggledEvent();\n }\n this.dispatchMediaTypeSelectedEvent();\n }\n\n dispatchMenuToggledEvent() {\n this.dispatchEvent(\n new CustomEvent('menuToggled', {\n bubbles: true,\n composed: true,\n detail: {\n menuName: 'media',\n },\n }),\n );\n }\n\n dispatchMediaTypeSelectedEvent() {\n this.dispatchEvent(\n new CustomEvent('mediaTypeSelected', {\n bubbles: true,\n composed: true,\n detail: {\n mediatype: this.mediatype,\n },\n }),\n );\n }\n\n get buttonClass() {\n return this.selected ? 'selected' : '';\n }\n\n /**\n * The button's tooltip.\n *\n * Built as a whole phrase per state, because word order around the\n * mediatype differs by language.\n */\n get tooltip() {\n return this.selected\n ? msg(str`Collapse ${this.mediatype} menu`)\n : msg(str`Expand ${this.mediatype} menu`);\n }\n\n get iconClass() {\n return this.selected ? 'active' : '';\n }\n\n get analyticsEvent() {\n return `${this.config.eventCategory}|NavMenu${toSentenceCase(this.mediatype)}`;\n }\n\n get menuItem() {\n return html`\n <span class=\"icon ${this.iconClass}\">\n ${MediaButton.icons[this.icon]}\n </span>\n <span class=\"label\">${this.label}</span>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return [\n themeStyles,\n css`\n a {\n display: inline-block;\n text-decoration: none;\n }\n\n .menu-item {\n display: inline-block;\n width: 100%;\n padding: 0;\n font-size: 1.6rem;\n text-align: left;\n background: transparent;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n }\n\n .menu-item:focus {\n outline: none;\n }\n\n .label {\n display: inline-block;\n padding: 0;\n font-weight: 400;\n color: var(--primaryTextColor);\n text-align: left;\n vertical-align: middle;\n }\n\n .menu-item > .icon {\n display: inline-flex;\n vertical-align: middle;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n\n .menu-item > .icon > svg {\n height: 4rem;\n width: 4rem;\n }\n\n .menu-item.selected .icon {\n background-color: var(--activeButtonBg);\n border-radius: 1rem 0 0 1rem;\n }\n\n .icon .fill-color {\n fill: #999;\n }\n\n .icon.active .fill-color {\n fill: #fff;\n }\n\n .donate .fill-color {\n fill: #f00;\n }\n\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\n .menu-item {\n width: auto;\n height: 5rem;\n color: var(--mediaLabelDesktopColor);\n display: inline-flex;\n }\n .menu-item:hover,\n .menu-item:active,\n .menu-item:focus {\n color: var(--linkHoverColor);\n }\n\n .menu-item:hover .fill-color,\n .menu-item:active .fill-color,\n .menu-item:focus .fill-color {\n fill: var(--linkHoverColor);\n }\n\n .label {\n display: none;\n }\n\n .label,\n .web:after {\n padding-right: 1rem;\n font-size: 1.3rem;\n text-transform: uppercase;\n color: inherit;\n }\n\n .web:after {\n display: none;\n content: 'web';\n }\n .donate,\n .more {\n display: none;\n }\n\n .menu-item.selected {\n background: var(--activeDesktopMenuIcon);\n }\n\n .menu-item.selected .label,\n .menu-item.selected.web:after {\n color: var(--linkHoverColor);\n }\n\n .menu-item.selected .icon {\n background: transparent;\n }\n\n /* selected state icon colors */\n .web.selected .fill-color {\n fill: #ffcd27;\n }\n\n .texts.selected .fill-color {\n fill: #faab3c;\n }\n\n .video.selected .fill-color {\n fill: #f1644b;\n }\n\n .audio.selected .fill-color {\n fill: #00adef;\n }\n\n .software.selected .fill-color {\n fill: #9ecc4f;\n }\n\n .images.selected .fill-color {\n fill: #aa99c9;\n }\n }\n\n @media (min-width: 1200px) {\n .label,\n .web:after {\n display: inline;\n }\n\n .web .label {\n display: none;\n }\n }\n `,\n ];\n }\n}\n"]}
@@ -1,21 +0,0 @@
1
- import { CSSResultGroup, LitElement, PropertyValues } from 'lit';
2
- import './ia-topnav-media-button.js';
3
- import { MediaButton } from './ia-topnav-media-button.js';
4
- import { IATopNavConfig } from './models.js';
5
- export declare class MediaMenu extends LitElement {
6
- baseHost: string;
7
- config: IATopNavConfig;
8
- openMenu: string;
9
- selectedMenuOption: string;
10
- currentTab: {
11
- moveTo: string;
12
- } | undefined;
13
- mediaButtons?: MediaButton[];
14
- updated(props: PropertyValues): void;
15
- render(): import("lit").TemplateResult<1>;
16
- get mediaMenuOptionsTemplate(): import("lit").TemplateResult<1>[];
17
- get menuOpened(): boolean;
18
- get menuClass(): "open" | "closed";
19
- static get styles(): CSSResultGroup;
20
- }
21
- //# sourceMappingURL=ia-topnav-media-menu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ia-topnav-media-menu.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav-media-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAM5E,OAAO,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAA4B,MAAM,UAAU,CAAC;AAsEpE,qBAEa,SAAU,SAAQ,UAAU;IACX,QAAQ,SAAM;IACd,MAAM,EAAE,cAAc,CAAuB;IAC7C,QAAQ,SAAM;IACd,kBAAkB,SAAM;IACxB,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAEnC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAEjE,OAAO,CAAC,KAAK,EAAE,cAAc;IAwB7B,MAAM;IAYN,IAAI,wBAAwB,sCAqB3B;IAED,IAAI,UAAU,YAEb;IAED,IAAI,SAAS,sBAEZ;IAED,MAAM,KAAK,MAAM,IAAI,cAAc,CAoElC;CACF"}