@ucd-lib/theme-elements 1.1.4 → 1.2.0

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.
@@ -0,0 +1,368 @@
1
+ import { html, css } from 'lit';
2
+
3
+ import normalizeStyles from "@ucd-lib/theme-sass/normalize.css.js";
4
+ import formStyles from "@ucd-lib/theme-sass/1_base_html/_forms.css.js";
5
+ import menuStyles from "@ucd-lib/theme-sass/2_base_class/_misc.css.js";
6
+ import primaryNavStyles from "@ucd-lib/theme-sass/4_component/_nav-primary.css.js";
7
+ import subNavToggleStyles from "@ucd-lib/theme-sass/4_component/_submenu-toggle.css.js";
8
+
9
+ export function styles() {
10
+ const elementStyles = css`
11
+ :host {
12
+ display: block;
13
+ }
14
+ .submenu-toggle * {
15
+ pointer-events: none;
16
+ }
17
+ button[disabled] {
18
+ pointer-events: none;
19
+ }
20
+ @media (min-width: 992px) {
21
+ nav.primary-nav--mega li.depth-0 > ul.menu {
22
+ opacity: 1;
23
+ display: block;
24
+ }
25
+
26
+ ul.menu ul.menu {
27
+ opacity: 0;
28
+ display: none;
29
+ }
30
+ ul.menu li.sf--hover > ul.menu {
31
+ display: block;
32
+ opacity: 1;
33
+ }
34
+ ul.menu li.closing > ul.menu {
35
+ display: block;
36
+ opacity: 0;
37
+ }
38
+ .mega-focus .primary-nav__top-link a,
39
+ .mega-focus .primary-nav__top-link a::before, .mega-focus
40
+ .primary-nav__top-link a::after {
41
+ background-color: rgb(255, 223, 128);
42
+ }
43
+ .mega-focus .primary-nav__top-link a:focus,
44
+ .mega-focus .primary-nav__top-link a:focus::before,
45
+ .mega-focus .primary-nav__top-link a:focus::after {
46
+ background-color: rgb(255, 191, 0);
47
+ }
48
+ .mega-focus > ul {
49
+ background-color: rgb(255, 251, 237);
50
+ }
51
+
52
+ }
53
+
54
+ @media (max-width: 991px) {
55
+ ul.menu ul.menu {
56
+ display: none;
57
+ overflow-y: hidden;
58
+ visibility: visible;
59
+ height: auto;
60
+ border-top-width: 0px;
61
+ border-bottom-width: 0px;
62
+ padding-top: 0px;
63
+ padding-bottom: 0px;
64
+ }
65
+
66
+ ul.menu ul.menu.menu--open {
67
+ display: block;
68
+ }
69
+
70
+ }
71
+ `;
72
+
73
+ return [
74
+ normalizeStyles,
75
+ formStyles,
76
+ menuStyles,
77
+ primaryNavStyles,
78
+ subNavToggleStyles,
79
+ elementStyles,
80
+ ];
81
+ }
82
+
83
+ export function render() {
84
+ return html`
85
+ <style>
86
+ ul.menu ul.menu {
87
+ transition: opacity ${this.animationDuration + "ms"}, height ${this.animationDuration + "ms"};
88
+ }
89
+ ul.menu li.sf--hover > ul.menu {
90
+ transition: opacity ${this.animationDuration + "ms"} ${this.hoverDelay + "ms"}, height ${this.animationDuration + "ms"};
91
+ }
92
+
93
+
94
+ @media (max-width: ${this.mobileWidth - 1}px) {
95
+ .primary-nav li.alt-size li a, li.alt-size li .primary-nav__nolink {
96
+ display: flex;
97
+ align-items: center;
98
+ }
99
+ .primary-nav li.alt-size li a:before, li.alt-size li .primary-nav__nolink:before {
100
+ margin-right: 0.5rem;
101
+ font-family: "Font Awesome 5 Free";
102
+ font-weight: 900;
103
+ }
104
+ .primary-nav li.alt-size li a:before, li.alt-size li .primary-nav__nolink:before {
105
+ color: #ffbf00;
106
+ content: "";
107
+ font-size: 1.25em;
108
+ }
109
+ .primary-nav li.alt-size li a:focus:before, .primary-nav li.alt-size li a:hover:before, li.alt-size li .primary-nav__nolink:focus:before, li.alt-size li .primary-nav__nolink:hover:before {
110
+ color: #022851;
111
+ }
112
+ }
113
+
114
+ @media (min-width: ${this.mobileWidth}px) {
115
+ .primary-nav {
116
+ background-color: transparent !important;
117
+ font-size: 0.85rem !important;
118
+ }
119
+ .primary-nav ul ul {
120
+ display: none !important;
121
+ }
122
+ .primary-nav li {
123
+ float: left !important;
124
+ }
125
+ .primary-nav li:hover ul {
126
+ background-color: #fffbed !important;
127
+ }
128
+ .primary-nav li li {
129
+ float: none !important;
130
+ }
131
+ .primary-nav li:hover > .primary-nav__top-link a, .primary-nav li:focus-within > .primary-nav__top-link a, .primary-nav li:hover > .primary-nav__top-link .primary-nav__nolink {
132
+ color: #022851 !important;
133
+ }
134
+ .primary-nav .submenu-toggle {
135
+ display: none !important;
136
+ }
137
+
138
+ .primary-nav a, .primary-nav__nolink {
139
+ margin-left: 1rem !important;
140
+ padding: 0 !important;
141
+ border-bottom: 0 !important;
142
+ background-color: transparent !important;
143
+ font-weight: 700 !important;
144
+ line-height: 3.25rem !important;
145
+ }
146
+ .primary-nav a:before, .primary-nav__nolink:before {
147
+ width: 1rem !important;
148
+ height: 3.25rem !important;
149
+ margin-right: 0.5rem !important;
150
+ margin-left: -1rem !important;
151
+ background-color: transparent !important;
152
+ clip-path: polygon(93% 0, 110% 0, 110% 102%, 0% 102%) !important;
153
+ content: "" !important;
154
+ }
155
+ .primary-nav a:focus:before, .primary-nav a:hover:before, .primary-nav__nolink:focus:before, .primary-nav__nolink:hover:before {
156
+ background-color: #ffbf00 !important;
157
+ }
158
+ .primary-nav a:after, .primary-nav__nolink:after {
159
+ z-index: 1 !important;
160
+ width: 1rem !important;
161
+ height: 3.25rem !important;
162
+ margin-right: -1rem !important;
163
+ margin-left: 0.5rem !important;
164
+ background-color: transparent !important;
165
+ clip-path: polygon(-2px -2px, 100% -2px, 7% 102%, -2px 100%) !important;
166
+ content: "" !important;
167
+ }
168
+ .primary-nav a:focus {
169
+ background-color: #ffbf00 !important;
170
+ color: rgb(2, 40, 81) !important;
171
+ }
172
+ .primary-nav a:focus:after, .primary-nav a:hover:after, .primary-nav__nolink:focus:after, .primary-nav__nolink:hover:after {
173
+ background-color: #ffbf00 !important;
174
+ }
175
+
176
+ .primary-nav__top-link a, .primary-nav__top-link .primary-nav__nolink {
177
+ color: #fff !important;
178
+ white-space: nowrap !important;
179
+ }
180
+ .primary-nav__top-link a:hover, .primary-nav__top-link .primary-nav__nolink:hover {
181
+ color: #022851 !important;
182
+ }
183
+
184
+ .primary-nav li li a, li li .primary-nav__nolink {
185
+ margin-left: 0 !important;
186
+ padding: 0.5rem 1rem !important;
187
+ font-size: 0.9375em !important;
188
+ line-height: 1.35 !important;
189
+ }
190
+ .primary-nav li li a:focus, li li .primary-nav__nolink:focus {
191
+ background-color: #ffbf00 !important;
192
+ }
193
+ .primary-nav li li a:before, .primary-nav li li a:after, li li .primary-nav__nolink:before, li li .primary-nav__nolink:after {
194
+ display: none !important;
195
+ }
196
+
197
+ .primary-nav--justify > .menu {
198
+ display: flex !important;
199
+ flex-wrap: wrap !important;
200
+ justify-content: flex-start !important;
201
+ }
202
+ .primary-nav--justify li {
203
+ float: none !important;
204
+ flex-basis: 0 !important;
205
+ flex-grow: 1 !important;
206
+ width: auto !important;
207
+ }
208
+ .primary-nav--justify li:last-child .primary-nav__top-link a, .primary-nav--justify li:last-child .primary-nav__top-link .primary-nav__nolink {
209
+ margin-right: 1rem !important;
210
+ }
211
+ .primary-nav--justify a:after,
212
+ .primary-nav--justify .primary-nav__nolink:after {
213
+ margin-left: auto !important;
214
+ }
215
+
216
+ .primary-nav--mega {
217
+ overflow: hidden !important;
218
+ max-height: 3.25rem !important;
219
+ margin-right: -1rem !important;
220
+ transition: max-height 0.3s !important;
221
+ }
222
+ .primary-nav--mega.is-hover {
223
+ max-height: 600px !important;
224
+ }
225
+ .primary-nav--mega a:after,
226
+ .primary-nav--mega .primary-nav__nolink:after {
227
+ margin-left: auto !important;
228
+ }
229
+ .primary-nav--mega > .menu {
230
+ display: flex !important;
231
+ flex-wrap: wrap !important;
232
+ }
233
+ .primary-nav--mega li {
234
+ float: none !important;
235
+ width: auto !important;
236
+ min-width: 9em !important;
237
+ }
238
+ .primary-nav--mega li li a,
239
+ .primary-nav--mega li li .primary-nav__nolink {
240
+ background: none !important;
241
+ }
242
+ .primary-nav--mega li:hover .primary-nav__top-link a,
243
+ .primary-nav--mega li:hover .primary-nav__top-link .primary-nav__nolink {
244
+ background-color: #ffdf80 !important;
245
+ }
246
+ .primary-nav--mega li:hover .primary-nav__top-link a:before, .primary-nav--mega li:hover .primary-nav__top-link a:after,
247
+ .primary-nav--mega li:hover .primary-nav__top-link .primary-nav__nolink:before,
248
+ .primary-nav--mega li:hover .primary-nav__top-link .primary-nav__nolink:after {
249
+ background-color: #ffdf80 !important;
250
+ }
251
+ .primary-nav--mega li .primary-nav__top-link a:hover {
252
+ background-color: #ffbf00 !important;
253
+ }
254
+ .primary-nav--mega li .primary-nav__top-link a:hover:before, .primary-nav--mega li .primary-nav__top-link a:hover:after {
255
+ background-color: #ffbf00 !important;
256
+ }
257
+ .primary-nav--mega .primary-nav__top-link {
258
+ background-color: #022851 !important;
259
+ }
260
+
261
+ .primary-nav--superfish {
262
+ box-shadow: inset 0 -1px 0 #14447a !important;
263
+ }
264
+ .primary-nav--superfish li {
265
+ position: relative !important;
266
+ }
267
+ .primary-nav--superfish ul ul {
268
+ position: absolute !important;
269
+ z-index: 840 !important;
270
+ top: 100% !important;
271
+ left: 0 !important;
272
+ display: none !important;
273
+ min-width: 12em !important;
274
+ background-color: #fff !important;
275
+ }
276
+ .primary-nav--superfish ul ul ul {
277
+ top: 0 !important;
278
+ left: 100% !important;
279
+ }
280
+ .primary-nav--superfish li li a,
281
+ .primary-nav--superfish li li .primary-nav__nolink {
282
+ background-color: #fffbed !important;
283
+ }
284
+ .primary-nav--superfish li li li a,
285
+ .primary-nav--superfish li li li .primary-nav__nolink {
286
+ background-color: #fffbed !important;
287
+ }
288
+ .primary-nav--superfish li li li li a,
289
+ .primary-nav--superfish li li li li .primary-nav__nolink {
290
+ background-color: #fff9e6 !important;
291
+ }
292
+ .primary-nav--superfish .primary-nav__submenu-indicator {
293
+ display: flex !important;
294
+ align-items: center !important;
295
+ width: 1rem !important;
296
+ height: auto !important;
297
+ margin-right: -0.5rem !important;
298
+ margin-left: auto !important;
299
+ padding-top: 0 !important;
300
+ padding-bottom: 0 !important;
301
+ background-color: transparent !important;
302
+ }
303
+ .primary-nav--superfish .primary-nav__submenu-indicator:after {
304
+ margin-left: 0.5rem !important;
305
+ font-family: "Font Awesome 5 Free" !important;
306
+ font-weight: 900 !important;
307
+ }
308
+ .primary-nav--superfish .primary-nav__submenu-indicator:focus {
309
+ box-shadow: none !important;
310
+ }
311
+ .primary-nav--superfish .primary-nav__submenu-indicator:after {
312
+ color: #ffbf00 !important;
313
+ content: "" !important;
314
+ font-size: 0.75em !important;
315
+ }
316
+ .primary-nav--superfish li li .primary-nav__submenu-indicator:after {
317
+ color: #022851 !important;
318
+ }
319
+ .primary-nav--superfish li li li .primary-nav__submenu-indicator {
320
+ display: none !important;
321
+ }
322
+ .primary-nav--superfish li:hover > ul,
323
+ .primary-nav--superfish .sf--hover > ul {
324
+ display: block !important;
325
+ }
326
+ .primary-nav--superfish li:hover > .primary-nav__top-link a,
327
+ .primary-nav--superfish li:hover > .primary-nav__top-link .primary-nav__nolink,
328
+ .primary-nav--superfish .sf--hover > .primary-nav__top-link a,
329
+ .primary-nav--superfish .sf--hover > .primary-nav__top-link .primary-nav__nolink {
330
+ background-color: #ffbf00 !important;
331
+ }
332
+ .primary-nav--superfish li:hover > .primary-nav__top-link a:before, .primary-nav--superfish li:hover > .primary-nav__top-link a:after,
333
+ .primary-nav--superfish li:hover > .primary-nav__top-link .primary-nav__nolink:before,
334
+ .primary-nav--superfish li:hover > .primary-nav__top-link .primary-nav__nolink:after,
335
+ .primary-nav--superfish .sf--hover > .primary-nav__top-link a:before,
336
+ .primary-nav--superfish .sf--hover > .primary-nav__top-link a:after,
337
+ .primary-nav--superfish .sf--hover > .primary-nav__top-link .primary-nav__nolink:before,
338
+ .primary-nav--superfish .sf--hover > .primary-nav__top-link .primary-nav__nolink:after {
339
+ background-color: #ffbf00 !important;
340
+ }
341
+ .primary-nav--superfish li:hover > .primary-nav__top-link a .primary-nav__submenu-indicator:after,
342
+ .primary-nav--superfish li:hover > .primary-nav__top-link .primary-nav__nolink .primary-nav__submenu-indicator:after,
343
+ .primary-nav--superfish .sf--hover > .primary-nav__top-link a .primary-nav__submenu-indicator:after,
344
+ .primary-nav--superfish .sf--hover > .primary-nav__top-link .primary-nav__nolink .primary-nav__submenu-indicator:after {
345
+ color: #022851 !important;
346
+ }
347
+ .primary-nav--superfish li:hover > .primary-nav__top-link a,
348
+ .primary-nav--superfish .sf--hover > .primary-nav__top-link a,
349
+ .primary-nav--superfish li:hover > .primary-nav__top-link .primary-nav__nolink {
350
+ color: #022851 !important;
351
+ }
352
+ }
353
+
354
+
355
+ </style>
356
+ <nav
357
+ id=${this._classPrefix}
358
+ class="${this._getNavClasses()}"
359
+ @mouseenter=${this._onNavMouseenter}
360
+ @mouseleave=${this._onNavMouseleave}
361
+ @focusout=${this._onNavFocusout}
362
+ @focusin=${this._onNavFocusin}
363
+ aria-label="Main Menu">
364
+ <ul class="menu">
365
+ ${this.navItems.map((navItem, i) => this._renderNavItem(navItem, [i]))}
366
+ </ul>
367
+ </nav>
368
+ `;}
@@ -1,9 +1,9 @@
1
1
  export class BreakPointsController{
2
2
 
3
- constructor(host){
3
+ constructor(host, mobileBreakPoint=992){
4
4
  (this.host = host).addController(this);
5
5
 
6
- this.mobileBreakPoint = 992;
6
+ this.mobileBreakPoint = mobileBreakPoint;
7
7
  }
8
8
 
9
9
  /**