@penn-libraries/web 0.3.0-dev.3 → 0.3.0-dev.5

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 (62) hide show
  1. package/dist/cjs/{index-B6Rjt_WH.js → index-B6HF5D3u.js} +652 -8
  2. package/dist/cjs/index-B6HF5D3u.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/pennlibs-banner.cjs.entry.js +1 -1
  6. package/dist/cjs/pennlibs-chat.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.cjs.js.map +1 -1
  7. package/dist/cjs/pennlibs-chat_5.cjs.entry.js +16 -12
  8. package/dist/cjs/pennlibs-chat_5.cjs.entry.js.map +1 -1
  9. package/dist/cjs/pennlibs-colors.cjs.entry.js +1 -1
  10. package/dist/cjs/web.cjs.js +2 -2
  11. package/dist/collection/components/pennlibs-footer/pennlibs-footer.css +4 -0
  12. package/dist/collection/components/pennlibs-footer/pennlibs-footer.js +3 -32
  13. package/dist/collection/components/pennlibs-footer/pennlibs-footer.js.map +1 -1
  14. package/dist/collection/components/pennlibs-header/pennlibs-header.css +9 -9
  15. package/dist/collection/components/pennlibs-header/pennlibs-header.js +45 -14
  16. package/dist/collection/components/pennlibs-header/pennlibs-header.js.map +1 -1
  17. package/dist/collection/components/pennlibs-hero/pennlibs-hero.css +5 -4
  18. package/dist/collection/components/pennlibs-hero/pennlibs-hero.js +8 -1
  19. package/dist/collection/components/pennlibs-hero/pennlibs-hero.js.map +1 -1
  20. package/dist/components/pennlibs-footer.js +4 -7
  21. package/dist/components/pennlibs-footer.js.map +1 -1
  22. package/dist/components/pennlibs-header.js +9 -3
  23. package/dist/components/pennlibs-header.js.map +1 -1
  24. package/dist/components/pennlibs-hero.js +2 -2
  25. package/dist/components/pennlibs-hero.js.map +1 -1
  26. package/dist/docs.d.ts +443 -0
  27. package/dist/docs.json +332 -0
  28. package/dist/esm/{index-BQRdy1TQ.js → index-BAQIT3Vo.js} +652 -8
  29. package/dist/esm/index-BAQIT3Vo.js.map +1 -0
  30. package/dist/esm/index.js +1 -1
  31. package/dist/esm/loader.js +3 -3
  32. package/dist/esm/pennlibs-banner.entry.js +1 -1
  33. package/dist/esm/pennlibs-chat.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.js.map +1 -1
  34. package/dist/esm/pennlibs-chat_5.entry.js +16 -12
  35. package/dist/esm/pennlibs-chat_5.entry.js.map +1 -1
  36. package/dist/esm/pennlibs-colors.entry.js +1 -1
  37. package/dist/esm/web.js +3 -3
  38. package/dist/types/components/pennlibs-footer/pennlibs-footer.d.ts +0 -10
  39. package/dist/types/components/pennlibs-header/pennlibs-header.d.ts +28 -8
  40. package/dist/types/components/pennlibs-hero/pennlibs-hero.d.ts +7 -0
  41. package/dist/types/components.d.ts +85 -33
  42. package/dist/web/index.esm.js +1 -1
  43. package/dist/web/{p-dac033ee.entry.js → p-072fba0a.entry.js} +2 -2
  44. package/dist/web/{p-2edaa432.entry.js → p-42b20949.entry.js} +2 -2
  45. package/dist/web/{p-a921fec4.entry.js → p-64706047.entry.js} +17 -13
  46. package/dist/web/p-64706047.entry.js.map +1 -0
  47. package/dist/web/{p-BQRdy1TQ.js → p-BAQIT3Vo.js} +652 -8
  48. package/dist/web/p-BAQIT3Vo.js.map +1 -0
  49. package/dist/web/pennlibs-chat.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.esm.js.map +1 -1
  50. package/dist/web/web.css +6 -1
  51. package/dist/web/web.esm.js +3 -3
  52. package/hydrate/index.d.ts +271 -0
  53. package/hydrate/index.js +19572 -0
  54. package/hydrate/index.mjs +19564 -0
  55. package/hydrate/package.json +12 -0
  56. package/package.json +12 -8
  57. package/dist/cjs/index-B6Rjt_WH.js.map +0 -1
  58. package/dist/esm/index-BQRdy1TQ.js.map +0 -1
  59. package/dist/web/p-BQRdy1TQ.js.map +0 -1
  60. package/dist/web/p-a921fec4.entry.js.map +0 -1
  61. /package/dist/web/{p-dac033ee.entry.js.map → p-072fba0a.entry.js.map} +0 -0
  62. /package/dist/web/{p-2edaa432.entry.js.map → p-42b20949.entry.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h } from './index-BQRdy1TQ.js';
1
+ import { r as registerInstance, h } from './index-BAQIT3Vo.js';
2
2
 
3
3
  const pennlibsColorsCss = ":host{font-family:var(--font-family);font-size:var(--font-size);--max-width:1080px}*{box-sizing:border-box}.viewport-margins{max-width:var(--max-width);margin:0 auto;padding:0 1rem}.colors-container{display:grid;grid-template-columns:repeat(auto-fill, minmax(22rem, 1fr));gap:2rem;margin-bottom:2rem}.colors-container code{display:block;width:100%;padding:3em 1.5em}.colors-container code+code{margin-top:1em}.colors-container code span{font-size:0.875em;display:inline-block;background:var(--color-bg-default);padding:0.25em 0.5em}.colors-container code{display:flex;justify-content:space-between}h2{font-size:1.25em;font-weight:600;margin-bottom:0.25em}";
4
4
 
package/dist/esm/web.js CHANGED
@@ -1,5 +1,5 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-BQRdy1TQ.js';
2
- export { s as setNonce } from './index-BQRdy1TQ.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-BAQIT3Vo.js';
2
+ export { s as setNonce } from './index-BAQIT3Vo.js';
3
3
  import { g as globalScripts } from './app-globals-DQuL1Twl.js';
4
4
 
5
5
  /*
@@ -17,7 +17,7 @@ var patchBrowser = () => {
17
17
 
18
18
  patchBrowser().then(async (options) => {
19
19
  await globalScripts();
20
- return bootstrapLazy([["pennlibs-chat_5",[[1,"pennlibs-chat",{"href":[32]}],[1,"pennlibs-feedback",{"error":[32],"answer":[32]}],[1,"pennlibs-footer",{"navigation":[16],"navigationByChildren":[32]}],[1,"pennlibs-header",{"serviceName":[1,"service-name"],"serviceLede":[1,"service-lede"],"serviceHref":[1,"service-href"],"theme":[1],"isMenuOpen":[32],"navigation":[32]}],[1,"pennlibs-hero",{"heroPictureElement":[32],"heroHeadingElement":[32],"heroParagraphElement":[32],"heroSrc":[32]}]]],["pennlibs-banner",[[1,"pennlibs-banner"]]],["pennlibs-colors",[[1,"pennlibs-colors",{"navigation":[16]}]]]], options);
20
+ return bootstrapLazy([["pennlibs-chat_5",[[1,"pennlibs-chat",{"href":[32]}],[1,"pennlibs-feedback",{"error":[32],"answer":[32]}],[1,"pennlibs-footer",{"navigationByChildren":[32]}],[1,"pennlibs-header",{"serviceName":[1,"service-name"],"serviceLede":[1,"service-lede"],"serviceHref":[1,"service-href"],"theme":[1],"isMenuOpen":[32],"navigation":[32]}],[1,"pennlibs-hero",{"heroPictureElement":[32],"heroHeadingElement":[32],"heroParagraphElement":[32],"heroSrc":[32]}]]],["pennlibs-banner",[[1,"pennlibs-banner"]]],["pennlibs-colors",[[1,"pennlibs-colors",{"navigation":[16]}]]]], options);
21
21
  });
22
22
  //# sourceMappingURL=web.js.map
23
23
 
@@ -1,14 +1,4 @@
1
1
  export declare class Footer {
2
- /**
3
- * The navigation sections.
4
- */
5
- navigation: Array<{
6
- heading: string;
7
- links: Array<{
8
- label: string;
9
- href: string;
10
- }>;
11
- }>;
12
2
  navigationByChildren: any;
13
3
  hostElement: HTMLElement;
14
4
  componentWillLoad(): void;
@@ -1,20 +1,40 @@
1
+ /**
2
+ * A header component for Penn Libraries websites that displays the Penn Libraries logo,
3
+ * service branding, and navigation. Supports both light and dark themes.
4
+ *
5
+ * @component
6
+ * @example
7
+ * <pennlibs-header
8
+ * service-name="Find Books"
9
+ * service-lede="Search our catalog and collections"
10
+ * theme="light">
11
+ * <a href="/search">Search</a>
12
+ * <a href="/help">Help</a>
13
+ * </pennlibs-header>
14
+ *
15
+ * @slot end - Content to display at the end of the header (right side)
16
+ *
17
+ * @prop --max-width: The maximum width of the header.
18
+ */
1
19
  export declare class Header {
2
20
  /**
3
- * The name of the service.
21
+ * The service name should clearly describe what users want to accomplish. Avoid technical jargon, technology names, and acronyms.
4
22
  */
5
- serviceName: string;
23
+ serviceName?: string;
6
24
  /**
7
- * The opening brief sentence introducting the most important aspects of the service.
25
+ * A brief, compelling description that helps users understand what they can do here. Keep it short and focused on user benefits.
8
26
  */
9
- serviceLede: string;
27
+ serviceLede?: string;
10
28
  /**
11
- * The service href that turns the service name into a link.
29
+ * The URL where the service name links to, typically the service homepage or main landing page.
30
+ * @default "/"
12
31
  */
13
- serviceHref: string;
32
+ serviceHref?: string;
14
33
  /**
15
- * The service href that turns the service name into a link.
34
+ * The visual theme of the header. Light theme uses blue logo, dark theme uses white logo.
35
+ * @default 'light'
16
36
  */
17
- theme: string;
37
+ theme: 'light' | 'dark';
18
38
  isMenuOpen: boolean;
19
39
  navigation: any[];
20
40
  hostElement: HTMLElement;
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Place your most important content in a prominent space, often at the top of your website.
3
+ *
4
+ * @slot start - Content to display at the start (top) of the hero.
5
+ *
6
+ * @prop --max-width: The maximum width of the hero inner content.
7
+ */
1
8
  export declare class Hero {
2
9
  hostElement: HTMLElement;
3
10
  heroPictureElement: null | HTMLPictureElement;
@@ -25,35 +25,44 @@ export namespace Components {
25
25
  interface PennlibsFeedback {
26
26
  }
27
27
  interface PennlibsFooter {
28
- /**
29
- * The navigation sections.
30
- */
31
- "navigation": Array<{
32
- heading: string;
33
- links: Array<{
34
- label: string;
35
- href: string;
36
- }>;
37
- }>;
38
28
  }
29
+ /**
30
+ * A header component for Penn Libraries websites that displays the Penn Libraries logo,
31
+ * service branding, and navigation. Supports both light and dark themes.
32
+ * @component
33
+ * @example <pennlibs-header
34
+ * service-name="Find Books"
35
+ * service-lede="Search our catalog and collections"
36
+ * theme="light">
37
+ * <a href="/search">Search</a>
38
+ * <a href="/help">Help</a>
39
+ * </pennlibs-header>
40
+ * @prop --max-width: The maximum width of the header.
41
+ */
39
42
  interface PennlibsHeader {
40
43
  /**
41
- * The service href that turns the service name into a link.
44
+ * The URL where the service name links to, typically the service homepage or main landing page.
45
+ * @default "/"
42
46
  */
43
- "serviceHref": string;
47
+ "serviceHref"?: string;
44
48
  /**
45
- * The opening brief sentence introducting the most important aspects of the service.
49
+ * A brief, compelling description that helps users understand what they can do here. Keep it short and focused on user benefits.
46
50
  */
47
- "serviceLede": string;
51
+ "serviceLede"?: string;
48
52
  /**
49
- * The name of the service.
53
+ * The service name should clearly describe what users want to accomplish. Avoid technical jargon, technology names, and acronyms.
50
54
  */
51
- "serviceName": string;
55
+ "serviceName"?: string;
52
56
  /**
53
- * The service href that turns the service name into a link.
57
+ * The visual theme of the header. Light theme uses blue logo, dark theme uses white logo.
58
+ * @default 'light'
54
59
  */
55
- "theme": string;
60
+ "theme": 'light' | 'dark';
56
61
  }
62
+ /**
63
+ * Place your most important content in a prominent space, often at the top of your website.
64
+ * @prop --max-width: The maximum width of the hero inner content.
65
+ */
57
66
  interface PennlibsHero {
58
67
  }
59
68
  }
@@ -109,12 +118,29 @@ declare global {
109
118
  prototype: HTMLPennlibsFooterElement;
110
119
  new (): HTMLPennlibsFooterElement;
111
120
  };
121
+ /**
122
+ * A header component for Penn Libraries websites that displays the Penn Libraries logo,
123
+ * service branding, and navigation. Supports both light and dark themes.
124
+ * @component
125
+ * @example <pennlibs-header
126
+ * service-name="Find Books"
127
+ * service-lede="Search our catalog and collections"
128
+ * theme="light">
129
+ * <a href="/search">Search</a>
130
+ * <a href="/help">Help</a>
131
+ * </pennlibs-header>
132
+ * @prop --max-width: The maximum width of the header.
133
+ */
112
134
  interface HTMLPennlibsHeaderElement extends Components.PennlibsHeader, HTMLStencilElement {
113
135
  }
114
136
  var HTMLPennlibsHeaderElement: {
115
137
  prototype: HTMLPennlibsHeaderElement;
116
138
  new (): HTMLPennlibsHeaderElement;
117
139
  };
140
+ /**
141
+ * Place your most important content in a prominent space, often at the top of your website.
142
+ * @prop --max-width: The maximum width of the hero inner content.
143
+ */
118
144
  interface HTMLPennlibsHeroElement extends Components.PennlibsHero, HTMLStencilElement {
119
145
  }
120
146
  var HTMLPennlibsHeroElement: {
@@ -158,35 +184,44 @@ declare namespace LocalJSX {
158
184
  }>) => void;
159
185
  }
160
186
  interface PennlibsFooter {
161
- /**
162
- * The navigation sections.
163
- */
164
- "navigation"?: Array<{
165
- heading: string;
166
- links: Array<{
167
- label: string;
168
- href: string;
169
- }>;
170
- }>;
171
187
  }
188
+ /**
189
+ * A header component for Penn Libraries websites that displays the Penn Libraries logo,
190
+ * service branding, and navigation. Supports both light and dark themes.
191
+ * @component
192
+ * @example <pennlibs-header
193
+ * service-name="Find Books"
194
+ * service-lede="Search our catalog and collections"
195
+ * theme="light">
196
+ * <a href="/search">Search</a>
197
+ * <a href="/help">Help</a>
198
+ * </pennlibs-header>
199
+ * @prop --max-width: The maximum width of the header.
200
+ */
172
201
  interface PennlibsHeader {
173
202
  /**
174
- * The service href that turns the service name into a link.
203
+ * The URL where the service name links to, typically the service homepage or main landing page.
204
+ * @default "/"
175
205
  */
176
206
  "serviceHref"?: string;
177
207
  /**
178
- * The opening brief sentence introducting the most important aspects of the service.
208
+ * A brief, compelling description that helps users understand what they can do here. Keep it short and focused on user benefits.
179
209
  */
180
210
  "serviceLede"?: string;
181
211
  /**
182
- * The name of the service.
212
+ * The service name should clearly describe what users want to accomplish. Avoid technical jargon, technology names, and acronyms.
183
213
  */
184
214
  "serviceName"?: string;
185
215
  /**
186
- * The service href that turns the service name into a link.
216
+ * The visual theme of the header. Light theme uses blue logo, dark theme uses white logo.
217
+ * @default 'light'
187
218
  */
188
- "theme"?: string;
219
+ "theme"?: 'light' | 'dark';
189
220
  }
221
+ /**
222
+ * Place your most important content in a prominent space, often at the top of your website.
223
+ * @prop --max-width: The maximum width of the hero inner content.
224
+ */
190
225
  interface PennlibsHero {
191
226
  }
192
227
  interface IntrinsicElements {
@@ -208,7 +243,24 @@ declare module "@stencil/core" {
208
243
  "pennlibs-colors": LocalJSX.PennlibsColors & JSXBase.HTMLAttributes<HTMLPennlibsColorsElement>;
209
244
  "pennlibs-feedback": LocalJSX.PennlibsFeedback & JSXBase.HTMLAttributes<HTMLPennlibsFeedbackElement>;
210
245
  "pennlibs-footer": LocalJSX.PennlibsFooter & JSXBase.HTMLAttributes<HTMLPennlibsFooterElement>;
246
+ /**
247
+ * A header component for Penn Libraries websites that displays the Penn Libraries logo,
248
+ * service branding, and navigation. Supports both light and dark themes.
249
+ * @component
250
+ * @example <pennlibs-header
251
+ * service-name="Find Books"
252
+ * service-lede="Search our catalog and collections"
253
+ * theme="light">
254
+ * <a href="/search">Search</a>
255
+ * <a href="/help">Help</a>
256
+ * </pennlibs-header>
257
+ * @prop --max-width: The maximum width of the header.
258
+ */
211
259
  "pennlibs-header": LocalJSX.PennlibsHeader & JSXBase.HTMLAttributes<HTMLPennlibsHeaderElement>;
260
+ /**
261
+ * Place your most important content in a prominent space, often at the top of your website.
262
+ * @prop --max-width: The maximum width of the hero inner content.
263
+ */
212
264
  "pennlibs-hero": LocalJSX.PennlibsHero & JSXBase.HTMLAttributes<HTMLPennlibsHeroElement>;
213
265
  }
214
266
  }
@@ -1,4 +1,4 @@
1
- export { d as setAssetPath } from './p-BQRdy1TQ.js';
1
+ export { d as setAssetPath } from './p-BAQIT3Vo.js';
2
2
  //# sourceMappingURL=index.esm.js.map
3
3
 
4
4
  //# sourceMappingURL=index.esm.js.map
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, g as getAssetPath, h } from './p-BQRdy1TQ.js';
1
+ import { r as registerInstance, g as getAssetPath, h } from './p-BAQIT3Vo.js';
2
2
 
3
3
  const pennlibsBannerCss = ":host{font-family:var(--font-family);font-size:var(--font-size);--max-width:1080px}.viewport-margins{max-width:calc(var(--max-width) + 0.5em);margin:0 auto;padding:0 0.75em}.skip-to-content-link{position:absolute;transform:translateY(-300%);background:var(--color-bg-default);left:0.5em;padding:0.5em 1em;margin-top:0.5em;position:absolute}.skip-to-content-link:focus{transform:translateY(0%);color:var(--color-fg-default)}.universal-nav{background:var(--color-penn-blue)}.universal-nav ul{display:flex;align-items:baseline;flex-wrap:wrap;scrollbar-color:var(--color-penn-red);list-style:none;padding:0;margin:0}.universal-nav li{display:inline-block}.universal-nav a{display:inline-block;text-transform:uppercase;font-size:0.75em;letter-spacing:0.075em;font-weight:600;color:var(--color-fg-subtle-on-emphasis);padding:0.5em;text-decoration:none}.universal-nav a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.15em}.universal-nav__shield-image{vertical-align:sub;height:1em;padding-right:0.5em;height:auto}";
4
4
 
@@ -17,4 +17,4 @@ Banner.style = pennlibsBannerCss;
17
17
  export { Banner as pennlibs_banner };
18
18
  //# sourceMappingURL=pennlibs-banner.entry.esm.js.map
19
19
 
20
- //# sourceMappingURL=p-dac033ee.entry.js.map
20
+ //# sourceMappingURL=p-072fba0a.entry.js.map
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h } from './p-BQRdy1TQ.js';
1
+ import { r as registerInstance, h } from './p-BAQIT3Vo.js';
2
2
 
3
3
  const pennlibsColorsCss = ":host{font-family:var(--font-family);font-size:var(--font-size);--max-width:1080px}*{box-sizing:border-box}.viewport-margins{max-width:var(--max-width);margin:0 auto;padding:0 1rem}.colors-container{display:grid;grid-template-columns:repeat(auto-fill, minmax(22rem, 1fr));gap:2rem;margin-bottom:2rem}.colors-container code{display:block;width:100%;padding:3em 1.5em}.colors-container code+code{margin-top:1em}.colors-container code span{font-size:0.875em;display:inline-block;background:var(--color-bg-default);padding:0.25em 0.5em}.colors-container code{display:flex;justify-content:space-between}h2{font-size:1.25em;font-weight:600;margin-bottom:0.25em}";
4
4
 
@@ -15,4 +15,4 @@ Footer.style = pennlibsColorsCss;
15
15
  export { Footer as pennlibs_colors };
16
16
  //# sourceMappingURL=pennlibs-colors.entry.esm.js.map
17
17
 
18
- //# sourceMappingURL=p-2edaa432.entry.js.map
18
+ //# sourceMappingURL=p-42b20949.entry.js.map
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, c as createEvent, g as getAssetPath, a as getElement } from './p-BQRdy1TQ.js';
1
+ import { r as registerInstance, h, c as createEvent, g as getAssetPath, a as getElement } from './p-BAQIT3Vo.js';
2
2
 
3
3
  const pennlibsChatCss = ":host {\n font-family: var(--font-family);\n font-size: var(--font-size);\n line-height: normal;\n}\n\na {\n display: flex;\n align-items: center;\n background: linear-gradient(45deg, #faa755, #fcca99);\n border-radius: 1em;\n position: fixed;\n bottom: 0.75em;\n right: 0.75em;\n box-shadow: rgba(0,0,0,0.3) 0px 2px 16px 0px;\n color: var(--color-penn-blue);\n text-decoration: none;\n font-weight: 500;\n padding: 0.15em;\n font-size: 1em;\n\n @media (min-width: 820px) {\n bottom: 1.5em;\n right: 1.5em;\n width: auto;\n padding: 0.15em 0.75em;\n padding-left: 0.5em;\n }\n}\n\na:hover {\n text-decoration: underline;\n text-underline-offset: var(--link-text-underline-offset);\n text-decoration-thickness: var(--link-hover-text-decoration-thickness);\n}\n\na:hover,\na:focus {\n outline: none;\n box-shadow: 0 0 0 2px var(--color-bg-attention),0 0 0 4px var(--color-penn-blue), rgba(0,0,0,0.3) 0px 2px 16px 0px;;\n}\n\nsvg {\n width: 2.5em;\n height: 2.5em;\n}\n\nspan {\n display: none;\n font-size: 1.1em;\n\n @media (min-width: 820px) {\n display: inline;\n }\n}";
4
4
 
@@ -69,7 +69,7 @@ const PennlibsFeedback = class {
69
69
  };
70
70
  PennlibsFeedback.style = pennlibsFeedbackCss;
71
71
 
72
- const pennlibsFooterCss = ":host {\n font-family: var(--font-family);\n font-size: var(--font-size);\n --max-width: 1080px;\n --padding-bottom: 5.75rem;\n}\n\n.website-footer-wrapper {\n background: var(--color-penn-blue);\n padding-bottom: var(--padding-bottom);\n}\n\n.viewport-margins {\n max-width: var(--max-width);\n margin: 0 auto;\n padding: 0 1em;\n}\n\n.website-footer {\n background-size: cover;\n color: var(--color-fg-subtle-on-emphasis);\n}\n\n.website-footer a {\n color: var(--color-fg-subtle-on-emphasis);\n}\n\n.website-footer__content {\n padding: 4em 0;\n}\n\n.website-footer__links-container {\n gap: 4em 2em;\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(14em, 1fr));\n}\n\n.website-footer__heading {\n font-size: 0.8em;\n text-transform: uppercase;\n letter-spacing: 0.075em;\n margin-bottom: 1em;\n opacity: 0.75;\n}\n\n.website-footer__links {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: 0.75em;\n}\n\n.website-footer__links a {\n text-decoration: none;\n}\n\n.website-footer__links a:hover {\n text-decoration: underline;\n text-underline-offset: var(--link-text-underline-offset);\n}\n\n.website-footer__footer {\n padding: 1em 0;\n background: rgba(1, 31, 91, 0.65);\n}\n\n.website-footer__links--footer {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n flex-direction: row;\n margin-left: -0.5em;\n\n @media (max-width: 1080px) {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(16em, 1fr));\n }\n}\n\n.website-footer__links--footer a {\n display: inline-block;\n padding: 0.5em 0.75em;\n font-size: 0.875em;\n opacity: 0.875;\n font-weight: 500;\n}\n\n.website-footer__links--footer a:hover {\n text-decoration: underline;\n text-underline-offset: var(--link-text-underline-offset);\n}";
72
+ const pennlibsFooterCss = ":host {\n font-family: var(--font-family);\n font-size: var(--font-size);\n --max-width: 1080px;\n --padding-bottom: 5.75rem;\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n.website-footer-wrapper {\n background: var(--color-penn-blue);\n padding-bottom: var(--padding-bottom);\n}\n\n.viewport-margins {\n max-width: var(--max-width);\n margin: 0 auto;\n padding: 0 1em;\n}\n\n.website-footer {\n background-size: cover;\n color: var(--color-fg-subtle-on-emphasis);\n}\n\n.website-footer a {\n color: var(--color-fg-subtle-on-emphasis);\n}\n\n.website-footer__content {\n padding: 4em 0;\n}\n\n.website-footer__links-container {\n gap: 4em 2em;\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(14em, 1fr));\n}\n\n.website-footer__heading {\n font-size: 0.8em;\n text-transform: uppercase;\n letter-spacing: 0.075em;\n margin-bottom: 1em;\n opacity: 0.75;\n}\n\n.website-footer__links {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: 0.75em;\n}\n\n.website-footer__links a {\n text-decoration: none;\n}\n\n.website-footer__links a:hover {\n text-decoration: underline;\n text-underline-offset: var(--link-text-underline-offset);\n}\n\n.website-footer__footer {\n padding: 1em 0;\n background: rgba(1, 31, 91, 0.65);\n}\n\n.website-footer__links--footer {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n flex-direction: row;\n margin-left: -0.5em;\n\n @media (max-width: 1080px) {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(16em, 1fr));\n }\n}\n\n.website-footer__links--footer a {\n display: inline-block;\n padding: 0.5em 0.75em;\n font-size: 0.875em;\n opacity: 0.875;\n font-weight: 500;\n}\n\n.website-footer__links--footer a:hover {\n text-decoration: underline;\n text-underline-offset: var(--link-text-underline-offset);\n}";
73
73
 
74
74
  const Footer = class {
75
75
  constructor(hostRef) {
@@ -98,14 +98,12 @@ const Footer = class {
98
98
  }
99
99
  render() {
100
100
  const footerBackgroundSrc = getAssetPath('./assets/footer-bg.webp');
101
- return (h("div", { key: '3c96aac7bf1fdcbdbc625c225ddc0e8898c53e61', class: "website-footer-wrapper" }, h("footer", { key: '99a5cc8d9314d5679939ff45b6c7b75c34b636f1', class: "website-footer", style: {
101
+ return (h("div", { key: '40bee22231ae7f79cf368a06b34fc479490d90e2', class: "website-footer-wrapper" }, h("footer", { key: '7ffcbb84fc096a1a3a19fdbaa999f031944df14b', class: "website-footer", style: {
102
102
  background: `var(--color-penn-blue) url(${footerBackgroundSrc}) no-repeat 50% 50%`,
103
103
  backgroundSize: 'cover',
104
- } }, h("div", { key: 'b9557f708fea1b72531115855900c5462c4b0c80', class: "viewport-margins" }, h("div", { key: '7fa44e2c7bccbb965ace27dad6e38a5672eac76b', class: "website-footer__content" }, h("div", { key: '21ffc5801b449db2f79284914b78fff453821d4c', class: "website-footer__links-container" }, h("section", { key: 'f011f1edc1bd2ed8f242f100867c7b631445e073' }, h("h2", { key: '663b91e98e2fdc21471f7575b4654eec2ddfb915', class: "website-footer__heading" }, "Penn Libraries"), h("ul", { key: '7b8f956aa7f1683b1d02dea3ffada72dbaf8b24d', class: "website-footer__links" }, h("li", { key: '31ab710eb506f88ede7cc54afbb682b4bf2db724' }, h("a", { key: '87b041e2041ded6785d958255a86240dea2b56fe', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", h("br", { key: 'd238b7890fa996a3547af2a5df14f983c15e687b' }), "Philadelphia, PA 19104-6206")), h("li", { key: '179c7d6edd9afb43e9df885a90e3f4f05dd1c7b8' }, h("a", { key: 'a784bb6777842c961e219bd3eaa0b9efbd9d24fb', href: "tel:(215) 898-7555" }, "(215) 898-7555")), h("li", { key: '64c6ba65dc23d5f10e8d9318d914e59a31ae75a2' }, h("a", { key: '8e91e8c93aee24a72790096fdeb7e0cdce89caac', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), h("li", { key: '2027b919303e4c8e5d25873d78ac7dd61fcf377b' }, h("a", { key: '157e532c56aa6ede5773f21f4169a9af5f82e5e6', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), h("section", { key: '95255d9bbef031ec05f7bf0c964b6027026fd2be' }, h("h2", { key: '1f2f9c91903888e0bd374de4e3766b68db02bfc7', class: "website-footer__heading" }, "Stay in touch"), h("ul", { key: '32790f2d6e6096b0b05b2e6ef1d24f88a36fc047', class: "website-footer__links" }, h("li", { key: '6233fa7c740be6aef6937ccca64293cb18019c6e' }, h("a", { key: '172452c25b2926f486f5122ec6a43127316497e3', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), h("li", { key: '8d59fa988ddb0057bfa3fd5e50e4101309502774' }, h("a", { key: 'c9ffb0c2120f46e5a2753782c3c53405f30eb3cf', href: "https://www.instagram.com/upennlib/" }, "Instagram")), h("li", { key: 'bd14021edb6ae03dc961d7f2992d78db7923e474' }, h("a", { key: 'c8c4204ffc9a54e258d1168ab02c3c01c6f26186', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), h("li", { key: '31e36c9b62bdadc961573ddff3bb79a7c5dbfeca' }, h("a", { key: 'dc59bd19fc27370eae2739b38cc3fa73656b0154', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
104
+ } }, h("div", { key: 'ccb8cafc9f49d4796b158bd2bf0c2e4a81e7c301', class: "viewport-margins" }, h("div", { key: 'e3461be746bbf460422d24448bfdcd35d75f143e', class: "website-footer__content" }, h("div", { key: 'ceb536cf8d1e8cb4cbd008415e84367869fa319a', class: "website-footer__links-container" }, h("section", { key: 'a936c772c58f083f7cb4d03c4e2c9563412a029f' }, h("h2", { key: '8562595447974e570026a3295c6b8a4ea2eadcfc', class: "website-footer__heading" }, "Penn Libraries"), h("ul", { key: 'a49281bd1399c6713f2c2165b941585464e32653', class: "website-footer__links" }, h("li", { key: '3aaff28e4c8e15d97f5722850d4fe5a5b84ca7c7' }, h("a", { key: '9c46688197ae90029c46cfc40d84970a8f6a4956', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", h("br", { key: '8fda816b66576fc26d6888dd101674af025042e6' }), "Philadelphia, PA 19104-6206")), h("li", { key: '18ac4042e695b00e1e6816a8108eb47b40097b17' }, h("a", { key: '2d1df64e1abbdfb5c852597c3c1fe5064d929780', href: "tel:(215) 898-7555" }, "(215) 898-7555")), h("li", { key: '50b7e0d1937695dd2d91d4888e72849e55bbc230' }, h("a", { key: 'e6e329346b6df142ec21c9454ce4beda59400064', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), h("li", { key: '95f0d1e8a6c5bf44931f33cae7acd4b1aad094bb' }, h("a", { key: '12782dc2f58ab2f0d438ca2b3136c2956821ad67', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), h("section", { key: 'c06ef6b6bdbeeb1399ae4fe997492b69724b905f' }, h("h2", { key: 'e669081302570c944677ace470a94adc2cca2c61', class: "website-footer__heading" }, "Stay in touch"), h("ul", { key: '73f90d530da56d6866425db3ca3512a77c34230f', class: "website-footer__links" }, h("li", { key: 'e2ae803e424a77f96c390e4175940dbcc16bf141' }, h("a", { key: 'f8b2f47e20efa037126c936065744509f586af16', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), h("li", { key: '47728d60b3f7df3f5561c9d6366655bd572c3b1a' }, h("a", { key: 'be6191de186e4c7bc5a4600946d10fd5e3ac5051', href: "https://www.instagram.com/upennlib/" }, "Instagram")), h("li", { key: '5e195c6da1431647529831c64e8e29218aa5b629' }, h("a", { key: 'b452a29c023f2cf4e5ebe00e13029f6c25c5cb1d', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), h("li", { key: '0264616dde4c2fadc9de0a2dca75f8a424c2744e' }, h("a", { key: '969ba001ed12c911f1ab2f96666a68e6629c1e63', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
105
105
  this.navigationByChildren.map(section => (h("section", null, h("h2", { class: "website-footer__heading" }, section.heading), h("ul", { class: "website-footer__links" }, section.links.map(link => (h("li", null, h("a", { href: link.href }, link.label))))))))
106
- ], this.navigation && [
107
- this.navigation.map(section => (h("section", null, h("h2", { class: "website-footer__heading" }, section.heading), h("ul", { class: "website-footer__links" }, section.links.map(link => (h("li", null, h("a", { href: link.href }, link.label))))))))
108
- ]))), h("div", { key: '92ba07834ec5907ab47c59925d5d09d3dc7960df', class: "website-footer__footer" }, h("div", { key: 'f649f0dde206c92a41c10cb871137ccb725f2394', class: "viewport-margins" }, h("ul", { key: '82244f9c342acdcb9dd9ff0ae651c4b4cb2939e4', class: "website-footer__links website-footer__links--footer" }, h("li", { key: '44be5c6a8380af4482a97080df640c34b852a865' }, h("a", { key: '8eb4ffa492285f6a2f3f42df1b2b5a784f042332', href: "https://www.upenn.edu/" }, "UPenn")), h("li", { key: '658402f36047ba302a90521a57e414a995bc19f4' }, h("a", { key: 'a0f85214bea0883b03abd4a1afc8ef97a6eddf27', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), h("li", { key: '0f43503a3c031967429ef9021457bafa3ec9325b' }, h("a", { key: '21b9c566ef1b8800b41a21ba70e4444128653b9c', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), h("li", { key: '92b1311cebfe09923505d0c9db17f2cc79bc8b09' }, h("a", { key: 'ed7ca974f5cea0841bb3946efc39cc6e13e8748f', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), h("li", { key: 'effb3c2ef3eb3b8611bf8bf6cba2db907bde3d5d' }, h("a", { key: '1a6f73099f9311e189987988317dda7390dda6a5', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), h("li", { key: '3b1f57c5073869e4a5f3f4fbd94b28bee437bc72' }, h("a", { key: '4e2ab4fd8a1fcf310a5b67a5a264b7dc5b2aed11', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement"))))))));
106
+ ]))), h("div", { key: 'b0f07d479fc29d673758d97a0f242397e9c434fd', class: "website-footer__footer" }, h("div", { key: '7b2201088c578e0c7dc54d26c0642bd2221efba0', class: "viewport-margins" }, h("ul", { key: '6ccf0109682bc0c63553ae4ce45076ecc06a1506', class: "website-footer__links website-footer__links--footer" }, h("li", { key: 'bd61ce924e4cd2e19665427743640c23d531335a' }, h("a", { key: '2326f72667de436ebee473e81c21c0d478306b7c', href: "https://www.upenn.edu/" }, "UPenn")), h("li", { key: 'e0be39fea786c611f61d6215901b887c773489fc' }, h("a", { key: '10e1a39069f966ba3a1894352f93adf0bd05e184', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), h("li", { key: 'be0fe00a2614d2eb1179d63e223f0cacefd7d640' }, h("a", { key: 'a45dcae52ba1c8389408f998a20547fe27e9ff04', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), h("li", { key: 'f00048be9bd71c503dd0b29d7dd1841f34dfa7d1' }, h("a", { key: '3d5cc82cb2ddb4fa61eabe92f3c9f8a0e3263d3a', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), h("li", { key: '75d566a8e7e17b5102dd697a5ac2d2bdf3189586' }, h("a", { key: '143c075d181701e9f1a90be037f9888b0fad153a', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), h("li", { key: '08d8bceb70f47a13dcdb33c8be43de26491379d8' }, h("a", { key: '6451e811d74f807cef2d3009bcc99117109118c3', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement"))))))));
109
107
  }
110
108
  static get assetsDirs() { return ["assets"]; }
111
109
  get hostElement() { return getElement(this); }
@@ -135,13 +133,19 @@ const LogoBlue = () => {
135
133
  h("path", { fill: "#fff", d: "M0 0H444.165V95H0z" })))));
136
134
  };
137
135
 
138
- const pennlibsHeaderCss = ":host{font-family:var(--font-family);font-size:var(--font-size);color:var(--color-fg-default);--max-width:1080px}*,*:before,*:after{box-sizing:inherit}.viewport-margins{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1em}a{color:var(--color-fg-menu)}*:focus{box-shadow:0 0 0 2px var(--color-bg-accent), 0 0 0 4px var(--color-bg-accent-emphasis);outline:none}.website-header{--color-fg-service:var(--color-penn-blue);--color-fg-menu:var(--color-fg-default);--color-bg-menu:var(--color-bg-default)}.website-header--dark{--color-fg-service:var(--color-fg-on-emphasis);--color-fg-menu:var(--color-fg-on-emphasis);--color-bg-menu:var(--color-penn-blue)}.website-header__logo-name-container{display:flex;align-items:stretch;margin-right:auto}@media (max-width: 620px){.website-header__logo-name-container{margin-right:6em;flex-direction:column;gap:0.5rem}}.website-header_logo-link{line-height:0}.website-header__logo{max-width:260px;margin-right:1em}@media (max-width: 920px){.website-header__logo{max-width:200px}}@media (max-width: 620px){.website-header__logo{max-width:190px}}.website-header__service-link{display:flex;justify-content:center;flex-direction:column;text-decoration:none;line-height:1;color:var(--color-fg-service)}@media (min-width: 921px){.website-header__service-link{padding-left:0.5em}}.website-header__hero .website-header__service-link{border-left:none}.website-header__service-link:hover .website-header__service-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:0.1em;text-decoration-color:var(--color-fg-service)}.website-header__service-name{font-size:1.5em;font-weight:500}.website-header__service-lede{font-size:1em}.website-header__inner-container{display:flex;justify-content:space-between;align-items:center;position:relative;padding:1em 0}@media (max-width: 920px){.website-header__inner-container{flex-direction:column;align-items:flex-start}}@media (max-width: 920px){.website-header__navigation{width:100%}}.website-header__navigation-list{list-style:none;display:flex;margin:0;padding:0}@media (max-width: 920px){.website-header__navigation-list{display:none}}@media (max-width: 920px){.website-header__navigation-list--visible{display:block;margin-top:1rem}.website-header__navigation-list--visible a{display:inline-block}}.website-header__navigation-list button{background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;padding:0;color:inherit}.website-header__navigation-list a,.website-header__navigation-list button{display:block;text-decoration:none;cursor:pointer}@media (max-width: 920px){.website-header__navigation-list a,.website-header__navigation-list button{padding:0.75em 0}}.website-header__navigation-list--visible a,.website-header__navigation-list--visible button{padding:0.5em 0}@media (min-width: 921px){.website-header__navigation-list a,.website-header__navigation-list button{padding:0.5em}}.website-header__navigation-list a:hover,.website-header__navigation-list button:hover{text-decoration:underline;text-underline-offset:var(--link-text-underline-offset)}.website-header__navigation-button{all:unset;text-transform:uppercase;font-size:0.75em;letter-spacing:0.075em;font-weight:600;padding:0.5em;border-radius:0.25em;position:absolute;right:0;top:1.5em;display:flex;align-items:center;color:var(--color-fg-service);cursor:pointer}@media (min-width: 921px){.website-header__navigation-button{display:none}}.website-header__navigation-button[aria-expanded=true] svg{rotate:180deg}";
136
+ const pennlibsHeaderCss = ":host{font-family:var(--font-family);font-size:var(--font-size);color:var(--color-fg-default);--max-width:1080px}*,*:before,*:after{box-sizing:inherit}.viewport-margins{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1em}a{color:var(--color-fg-menu)}*:focus{box-shadow:0 0 0 2px var(--color-bg-accent), 0 0 0 4px var(--color-bg-accent-emphasis);outline:none}.website-header{--color-fg-service:var(--color-penn-blue);--color-fg-menu:var(--color-fg-default);--color-bg-menu:var(--color-bg-default)}.website-header--dark{--color-fg-service:var(--color-fg-on-emphasis);--color-fg-menu:var(--color-fg-on-emphasis);--color-bg-menu:var(--color-penn-blue)}.website-header__logo-name-container{display:flex;align-items:stretch;margin-right:auto}@media (max-width: 620px){.website-header__logo-name-container{margin-right:6em;flex-direction:column;gap:0.5rem}}.website-header_logo-link{line-height:0}.website-header__logo{max-width:260px;margin-right:1em}@media (max-width: 1000px){.website-header__logo{max-width:200px}}@media (max-width: 620px){.website-header__logo{max-width:190px}}.website-header__service-link{display:flex;justify-content:center;flex-direction:column;text-decoration:none;line-height:1;color:var(--color-fg-service)}@media (min-width: 1001px){.website-header__service-link{padding-left:0.5em}}.website-header__hero .website-header__service-link{border-left:none}.website-header__service-link:hover .website-header__service-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:0.1em;text-decoration-color:var(--color-fg-service)}.website-header__service-name{font-size:1.5em;font-weight:500}.website-header__service-lede{font-size:1em}.website-header__inner-container{display:flex;justify-content:space-between;align-items:center;position:relative;padding:1em 0}@media (max-width: 1000px){.website-header__inner-container{flex-direction:column;align-items:flex-start}}@media (max-width: 1000px){.website-header__navigation{width:100%}}.website-header__navigation-list{list-style:none;display:flex;margin:0;padding:0}@media (max-width: 1000px){.website-header__navigation-list{display:none}}@media (max-width: 1000px){.website-header__navigation-list--visible{display:block;margin-top:1rem}.website-header__navigation-list--visible a{display:inline-block}}.website-header__navigation-list button{background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;padding:0;color:inherit}.website-header__navigation-list a,.website-header__navigation-list button{display:block;text-decoration:none;cursor:pointer}@media (max-width: 1000px){.website-header__navigation-list a,.website-header__navigation-list button{padding:0.75em 0}}.website-header__navigation-list--visible a,.website-header__navigation-list--visible button{padding:0.5em 0}@media (min-width: 1001px){.website-header__navigation-list a,.website-header__navigation-list button{padding:0.5em}}.website-header__navigation-list a:hover,.website-header__navigation-list button:hover{text-decoration:underline;text-underline-offset:var(--link-text-underline-offset)}.website-header__navigation-button{all:unset;text-transform:uppercase;font-size:0.75em;letter-spacing:0.075em;font-weight:600;padding:0.5em;border-radius:0.25em;position:absolute;right:0;top:1.5em;display:flex;align-items:center;color:var(--color-fg-service);cursor:pointer}@media (min-width: 1001px){.website-header__navigation-button{display:none}}.website-header__navigation-button[aria-expanded=true] svg{rotate:180deg}";
139
137
 
140
138
  const Header = class {
141
139
  constructor(hostRef) {
142
140
  registerInstance(this, hostRef);
143
141
  /**
144
- * The service href that turns the service name into a link.
142
+ * The URL where the service name links to, typically the service homepage or main landing page.
143
+ * @default "/"
144
+ */
145
+ this.serviceHref = "/";
146
+ /**
147
+ * The visual theme of the header. Light theme uses blue logo, dark theme uses white logo.
148
+ * @default 'light'
145
149
  */
146
150
  this.theme = 'light';
147
151
  this.isMenuOpen = false;
@@ -172,14 +176,14 @@ const Header = class {
172
176
  return (h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24", viewBox: "0 -960 960 960", width: "24" }, h("path", { fill: "currentColor", d: "M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z" })));
173
177
  }
174
178
  render() {
175
- return (h("header", { key: '865c3c13148c36b791d854b420fe34ac05207438', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, h("div", { key: '372d85d6a5bdc55a80028adf971b99cf9bd39000', class: "website-header__inner-container" }, h("div", { key: '69b9151390e311f054aeee0fa99ba7f5d6e4f35f', class: "website-header__logo-name-container" }, h("a", { key: '8e5880531e043763b3c7279f3371bff49e1c51f8', href: "https://www.library.upenn.edu/", class: "website-header_logo-link", "aria-label": "Penn Libraries" }, this.theme === 'dark' ? h(LogoWhite, null) : h(LogoBlue, null)), this.serviceName && (h("a", { key: '37028e0b96a7e1f2fcd29e2c6a64be9697a9f657', href: "/", class: "website-header__service-link" }, h("span", { key: '808d5aea5f0a3c5cfcc6f889e2f9eefd23d11d1f', class: "website-header__service-name" }, this.serviceName), this.serviceLede && h("span", { key: 'c099359cdc6d0c6344dfb28f34e736bcb12e1b02', class: "website-header__service-lede" }, this.serviceLede)))), this.navigation.length > 0 && (h("nav", { key: '50e2f517d3f38452ca7372da788040314bc6c3b0', class: "website-header__navigation" }, h("button", { key: 'c2aabb612f009788d3f43e84267e20a7e30e4cd0', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (h("ol", { key: 'f0e515e1bd08b0a3a7c6deb331ceb8b9af493563', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => h("li", { innerHTML: element.outerHTML })))))))));
179
+ return (h("header", { key: '707a9337f77742da7588908387e20e89217cfef4', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, h("div", { key: '828414077205b9bcccd391b5d49196673c204855', class: "website-header__inner-container" }, h("div", { key: '14d2eadb7d366cf1a0b1a737a3c701f42d43deae', class: "website-header__logo-name-container" }, h("a", { key: 'c34ae1516dd6e37f07ec39c5f6cf9d519c41c898', href: "https://www.library.upenn.edu/", class: "website-header_logo-link", "aria-label": "Penn Libraries" }, this.theme === 'dark' ? h(LogoWhite, null) : h(LogoBlue, null)), this.serviceName && (h("a", { key: 'e7084e840463f5598faef98ff5bf5c5e3229ffb3', href: "/", class: "website-header__service-link" }, h("span", { key: 'ea3f3ecd778592244e671b40a41a26c17b6a47b3', class: "website-header__service-name" }, this.serviceName), this.serviceLede && h("span", { key: '0ba8b8697e1d22d526c453ba1b7428550ec30dde', class: "website-header__service-lede" }, this.serviceLede)))), this.navigation.length > 0 && (h("nav", { key: '9d872495646af129b045777b0cdf211f1d3a5102', class: "website-header__navigation" }, h("button", { key: '57069987df48a530b1314c5de7215d00c82bbfe1', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (h("ol", { key: '235b39191eb97292b8ca915cc462e1e84101915a', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => h("li", { innerHTML: element.outerHTML })))))), h("slot", { key: '1768bad83b473f6c765da4b8b3823423472c6c06', name: "end" }))));
176
180
  }
177
181
  static get assetsDirs() { return ["assets"]; }
178
182
  get hostElement() { return getElement(this); }
179
183
  };
180
184
  Header.style = pennlibsHeaderCss;
181
185
 
182
- const pennlibsHeroCss = ":host{--hero-height:clamp(62vh, 32rem, 32rem);--hero-heading-font:var(--font-serif);--max-width:1080px;--color-typo:var(--color-fg-on-emphasis)}*,*:before,*:after{box-sizing:inherit}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.viewport-margins{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1em}.hero{position:relative;min-height:var(--hero-height);height:100%;background-size:cover;background-repeat:no-repeat;background-position:50% 33%;display:flex}.hero::before{content:\"\";display:flex;width:100%;height:100%;top:0;position:absolute;background:linear-gradient(365deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.5) 30%, rgba(0, 0, 0, 0.05) 100%);z-index:0}.hero::after{content:\"\";display:flex;width:100%;height:100%;top:0;position:absolute;background:linear-gradient(180deg, rgba(1, 31, 91, 1) 0%, rgba(1, 31, 91, 0.8) 20%, rgba(1, 31, 91, 0.2) 50%, rgba(1, 31, 91, 0.05) 100%);z-index:0}.hero__content{position:relative;display:flex;flex-direction:column;width:100%;z-index:1}.hero__heading-container{margin-top:auto;padding-bottom:3em;padding-bottom:3em}.hero__heading{text-shadow:1px 1px 2px var(--color-fg-default);line-height:1.1;font-size:2.75em;font-weight:bold;font-family:var(--hero-heading-font);text-wrap:pretty;max-width:30ch;margin:0;color:var(--color-typo)}@media (max-width: 920px){.hero__heading{font-size:2.5em}}.hero__sub-heading{font-size:1.15em;font-family:var(--font-family);font-weight:500;color:var(--color-typo);max-width:52ch;text-wrap:pretty;margin-top:1em;margin-bottom:0}.hero__sub-heading a{text-decoration:underline;text-underline-offset:var(--link-text-underline-offset);text-decoration-thickness:var(--link-text-decoration-thickness);color:var(--color-typo)}.hero__sub-heading a:hover{text-decoration-thickness:var(--link-hover-text-decoration-thickness)}.hero__sub-heading strong{font-weight:bold}@media (max-width: 620px){.hero__heading{font-size:2em}.hero__sub-heading{font-size:1em}}";
186
+ const pennlibsHeroCss = ":host{--hero-height:clamp(42vh, 32rem, 26rem);--hero-heading-font:var(--font-serif);--max-width:1080px;--color-typo:var(--color-fg-on-emphasis)}*,*:before,*:after{box-sizing:inherit}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.viewport-margins{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1em}.hero{position:relative;min-height:var(--hero-height);height:100%;background-size:cover;background-repeat:no-repeat;background-position:50% 33%;display:flex}.hero::before{content:\"\";display:flex;width:100%;height:100%;top:0;position:absolute;background:linear-gradient(360deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.7) 20%, rgba(0, 0, 0, 0.4) 40%, rgba(0, 0, 0, 0.05) 100%);z-index:0}.hero::after{content:\"\";display:flex;width:100%;height:100%;top:0;position:absolute;background:linear-gradient(180deg, rgba(1, 31, 91, 1) 0%, rgba(1, 31, 91, 0.9) 10%, rgba(1, 31, 91, 0.8) 20%, rgba(1, 31, 91, 0.1) 50%, rgba(1, 31, 91, 0.0) 100%);z-index:0}.hero__content{position:relative;display:flex;flex-direction:column;width:100%;z-index:1}.hero__heading-container{margin-top:auto;padding-top:3em;padding-bottom:3em}.hero__heading{text-shadow:1px 1px 2px var(--color-fg-default);line-height:1.1;font-size:2.75em;font-weight:bold;font-family:var(--hero-heading-font);text-wrap:pretty;max-width:30ch;margin:0;color:var(--color-typo)}@media (max-width: 920px){.hero__heading{font-size:2.5em}}.hero__sub-heading{font-size:1.15em;font-family:var(--font-family);font-weight:500;color:var(--color-typo);max-width:52ch;text-wrap:pretty;margin-top:1em;margin-bottom:0}.hero__sub-heading a{text-decoration:underline;text-underline-offset:var(--link-text-underline-offset);text-decoration-thickness:var(--link-text-decoration-thickness);color:var(--color-typo)}.hero__sub-heading a:hover{text-decoration-thickness:var(--link-hover-text-decoration-thickness)}.hero__sub-heading strong{font-weight:bold}@media (max-width: 620px){.hero__heading{font-size:2em}.hero__sub-heading{font-size:1em}}";
183
187
 
184
188
  const getCurrentImageSource = (pictureElement) => {
185
189
  const imgElement = pictureElement.querySelector('img');
@@ -226,7 +230,7 @@ const Hero = class {
226
230
  }
227
231
  }
228
232
  render() {
229
- return (h("div", { key: 'a9f470be574a52eade05a10e04a12d34e60bd984', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, h("div", { key: '1d724b488bc11d0b11a01a03383465ba2b757ab2', class: "hero__content" }, h("slot", { key: 'e20ba8d4666efac20daa222f3ce79678a68c9bb7', name: "start" }), h("div", { key: '7da9a596442428179a62e269a58de00b0c19dde1', class: "hero__heading-container" }, this.heroHeadingElement && (h("div", { key: 'a06f22f686812710ec48088bf9526c9adabecca4', class: "viewport-margins" }, h("h1", { key: '3347afff89dc914dee6b7230a95f9d837df18f09', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && h("p", { key: '1342909f8f7b8413210e5a3fa16e615aa656980e', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
233
+ return (h("div", { key: 'e7da72dc8de6e2039c4b1158fb41b5ca6279b01b', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, h("div", { key: '1a17497f3da0857c01c3bf0871312c9ebe350475', class: "hero__content" }, h("slot", { key: '4b3747eeec4170ce12f3ec7e8b575e611327f39b', name: "start" }), h("div", { key: 'f915238e4b2ad0ea221b51c51ccc19b36985be12', class: "hero__heading-container" }, this.heroHeadingElement && (h("div", { key: '71181c2ae063871138a3c8338305422b2e0c7315', class: "viewport-margins" }, h("h1", { key: 'c52fbf359e35d152441d2704d271b83c9999026a', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && h("p", { key: '7acf7c6aa459cd083a8101642b218888277ccadd', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
230
234
  }
231
235
  static get assetsDirs() { return ["assets"]; }
232
236
  get hostElement() { return getElement(this); }
@@ -236,4 +240,4 @@ Hero.style = pennlibsHeroCss;
236
240
  export { Chat as pennlibs_chat, PennlibsFeedback as pennlibs_feedback, Footer as pennlibs_footer, Header as pennlibs_header, Hero as pennlibs_hero };
237
241
  //# sourceMappingURL=pennlibs-chat.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.esm.js.map
238
242
 
239
- //# sourceMappingURL=p-a921fec4.entry.js.map
243
+ //# sourceMappingURL=p-64706047.entry.js.map