@ucd-lib/theme-elements 1.1.4 → 1.2.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.
@@ -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
+ `;}
@@ -87,8 +87,27 @@ export default class UcdlibSilsSearchRedirect extends LitElement {
87
87
  */
88
88
  _onSubmit(e){
89
89
  e.preventDefault();
90
+ this.doSearch('simple-search');
91
+
92
+ }
93
+
94
+ /**
95
+ * @method _onAdvancedSearch
96
+ * @description Called when advanced search button is clicked
97
+ * @private
98
+ */
99
+ _onAdvancedSearch(){
100
+ this.doSearch('advanced-search');
101
+ }
102
+
103
+ /**
104
+ * @method doSearch
105
+ * @description Either redirects to Primo or fires event listener
106
+ * @param {*} searchType - advanced or basic
107
+ */
108
+ doSearch(searchType){
109
+ let advanced = searchType == "advanced-search";
90
110
  let corpus = this.ucdOnly ? "ucd" : "everything";
91
- let advanced = e.submitter.id == "advanced-search";
92
111
 
93
112
  let url = this.primo.makeSearchUrl(this.query, corpus, advanced);
94
113
  if ( this.preventRedirect ) {
@@ -107,7 +107,7 @@ return html`
107
107
  <div class="checkbox u-space-mr--small u-space-mt--small">
108
108
  <input id="corpus" type="checkbox" ?checked=${this.ucdOnly} @input=${this._onCorpusChange}><label for="corpus">UC Davis libraries only</label>
109
109
  </div>
110
- <button id="advanced-search" class="u-space-mt--small" type="submit">Advanced Search</button>
110
+ <button id="advanced-search" class="u-space-mt--small" type="button" @click=${this._onAdvancedSearch}>Advanced Search</button>
111
111
  </div>
112
112
  </form>
113
113
 
@@ -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
  /**