@penn-libraries/web 0.3.1 → 1.0.0-dev.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.
Files changed (56) hide show
  1. package/dist/cjs/pennlibs-banner.cjs.entry.js +1 -1
  2. package/dist/cjs/pennlibs-banner.cjs.entry.js.map +1 -1
  3. package/dist/cjs/pennlibs-banner.entry.cjs.js.map +1 -1
  4. package/dist/cjs/pennlibs-chat.pennlibs-fallback-img.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.cjs.js.map +1 -1
  5. package/dist/cjs/pennlibs-chat_6.cjs.entry.js +12 -12
  6. package/dist/cjs/pennlibs-chat_6.cjs.entry.js.map +1 -1
  7. package/dist/collection/components/pennlibs-banner/pennlibs-banner.css +8 -8
  8. package/dist/collection/components/pennlibs-chat/pennlibs-chat.css +12 -6
  9. package/dist/collection/components/pennlibs-fallback-img/pennlibs-fallback-img.css +3 -3
  10. package/dist/collection/components/pennlibs-feedback/pennlibs-feedback.css +21 -16
  11. package/dist/collection/components/pennlibs-footer/pennlibs-footer.css +15 -10
  12. package/dist/collection/components/pennlibs-footer/pennlibs-footer.js +29 -4
  13. package/dist/collection/components/pennlibs-footer/pennlibs-footer.js.map +1 -1
  14. package/dist/collection/components/pennlibs-header/pennlibs-header.css +19 -14
  15. package/dist/collection/components/pennlibs-header/pennlibs-header.js +3 -2
  16. package/dist/collection/components/pennlibs-header/pennlibs-header.js.map +1 -1
  17. package/dist/collection/components/pennlibs-hero/pennlibs-hero.css +17 -18
  18. package/dist/collection/components/pennlibs-hero/pennlibs-hero.js +3 -2
  19. package/dist/collection/components/pennlibs-hero/pennlibs-hero.js.map +1 -1
  20. package/dist/components/pennlibs-banner.js +1 -1
  21. package/dist/components/pennlibs-banner.js.map +1 -1
  22. package/dist/components/pennlibs-chat.js +1 -1
  23. package/dist/components/pennlibs-chat.js.map +1 -1
  24. package/dist/components/pennlibs-fallback-img.js +1 -1
  25. package/dist/components/pennlibs-fallback-img.js.map +1 -1
  26. package/dist/components/pennlibs-feedback.js +1 -1
  27. package/dist/components/pennlibs-feedback.js.map +1 -1
  28. package/dist/components/pennlibs-footer.js +5 -5
  29. package/dist/components/pennlibs-footer.js.map +1 -1
  30. package/dist/components/pennlibs-header.js +2 -2
  31. package/dist/components/pennlibs-header.js.map +1 -1
  32. package/dist/components/pennlibs-hero.js +2 -2
  33. package/dist/components/pennlibs-hero.js.map +1 -1
  34. package/dist/docs.json +39 -6
  35. package/dist/esm/pennlibs-banner.entry.js +1 -1
  36. package/dist/esm/pennlibs-banner.entry.js.map +1 -1
  37. package/dist/esm/pennlibs-chat.pennlibs-fallback-img.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.js.map +1 -1
  38. package/dist/esm/pennlibs-chat_6.entry.js +12 -12
  39. package/dist/esm/pennlibs-chat_6.entry.js.map +1 -1
  40. package/dist/types/components/pennlibs-footer/pennlibs-footer.d.ts +25 -0
  41. package/dist/types/components/pennlibs-header/pennlibs-header.d.ts +2 -1
  42. package/dist/types/components/pennlibs-hero/pennlibs-hero.d.ts +2 -1
  43. package/dist/types/components.d.ts +96 -8
  44. package/dist/web/{p-b9fe301b.entry.js → p-5dab51f0.entry.js} +13 -13
  45. package/dist/web/p-5dab51f0.entry.js.map +1 -0
  46. package/dist/web/{p-bb31e5e2.entry.js → p-e331a309.entry.js} +2 -2
  47. package/dist/web/p-e331a309.entry.js.map +1 -0
  48. package/dist/web/pennlibs-banner.entry.esm.js.map +1 -1
  49. package/dist/web/pennlibs-chat.pennlibs-fallback-img.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.esm.js.map +1 -1
  50. package/dist/web/web.css +536 -58
  51. package/dist/web/web.esm.js +1 -1
  52. package/hydrate/index.js +42 -15
  53. package/hydrate/index.mjs +42 -15
  54. package/package.json +1 -1
  55. package/dist/web/p-b9fe301b.entry.js.map +0 -1
  56. package/dist/web/p-bb31e5e2.entry.js.map +0 -1
package/hydrate/index.js CHANGED
@@ -3121,7 +3121,7 @@ var registerHost = (elm, cmpMeta) => {
3121
3121
  };
3122
3122
  var styles = /* @__PURE__ */ new Map();
3123
3123
 
3124
- 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 var(--viewport-margins-gutter, 1em)}.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}";
3124
+ const pennlibsBannerCss = ":host{font-family:var(--pl-font-family);font-size:var(--pl-font-size);--max-width:1080px}.viewport-margins{max-width:calc(var(--max-width) + 0.5em);margin:0 auto;padding:0 var(--pl-viewport-margins-gutter, 1em)}.skip-to-content-link{position:absolute;transform:translateY(-300%);background:var(--pl-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(--pl-color-fg-default)}.universal-nav{background:var(--pl-color-penn-blue)}.universal-nav ul{display:flex;align-items:baseline;flex-wrap:wrap;scrollbar-color:var(--pl-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(--pl-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}";
3125
3125
 
3126
3126
  class Banner {
3127
3127
  constructor(hostRef) {
@@ -3143,7 +3143,7 @@ class Banner {
3143
3143
  }; }
3144
3144
  }
3145
3145
 
3146
- 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}";
3146
+ const pennlibsChatCss = ":host {\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n line-height: normal;\n}\n\n@media print {\n :host {\n display: none;\n }\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(--pl-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(--pl-link-text-underline-offset);\n text-decoration-thickness: var(--pl-link-hover-text-decoration-thickness);\n}\n\na:hover,\na:focus {\n outline: none;\n box-shadow: 0 0 0 2px var(--pl-color-bg-attention),0 0 0 4px var(--pl-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}";
3147
3147
 
3148
3148
  class Chat {
3149
3149
  constructor(hostRef) {
@@ -3170,8 +3170,33 @@ class Chat {
3170
3170
  }; }
3171
3171
  }
3172
3172
 
3173
- 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 var(--viewport-margins-gutter, 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(12em, 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}";
3173
+ const pennlibsFooterCss = ":host {\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n --padding-bottom: 5.75rem;\n}\n\n@media print {\n :host {\n display: none;\n }\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n.website-footer-wrapper {\n background: var(--pl-color-penn-blue);\n padding-bottom: var(--padding-bottom);\n}\n\n.viewport-margins {\n max-width: var(--pl-viewport-max-width);\n margin: 0 auto;\n padding: 0 var(--pl-viewport-margins-gutter, 1em);\n}\n\n.website-footer {\n background-size: cover;\n color: var(--pl-color-fg-subtle-on-emphasis);\n}\n\n.website-footer a {\n color: var(--pl-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(12em, 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(--pl-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(--pl-link-text-underline-offset);\n}";
3174
3174
 
3175
+ /**
3176
+ * A footer component for Penn Libraries websites that displays contact information,
3177
+ * social media links, and custom navigation sections. Automatically organizes
3178
+ * child content into navigation sections based on headings and links.
3179
+ *
3180
+ * @component
3181
+ * @example
3182
+ * <pennlibs-footer>
3183
+ * <section>
3184
+ * <h2>Resources</h2>
3185
+ * <a href="/databases">Databases</a>
3186
+ * <a href="/research-guides">Research Guides</a>
3187
+ * </section>
3188
+ * <section>
3189
+ * <h2>Services</h2>
3190
+ * <a href="/consultation">Research Consultation</a>
3191
+ * <a href="/instruction">Library Instruction</a>
3192
+ * </section>
3193
+ * </pennlibs-footer>
3194
+ *
3195
+ * @slot default - Custom navigation sections with h2 headings and anchor links
3196
+ *
3197
+ * @prop --pl-viewport-max-width: The maximum width of the footer content.
3198
+ * @prop --pl-viewport-margins-gutter: The gutter width of the footer content.
3199
+ */
3175
3200
  class Footer {
3176
3201
  constructor(hostRef) {
3177
3202
  registerInstance(this, hostRef);
@@ -3199,12 +3224,12 @@ class Footer {
3199
3224
  }
3200
3225
  render() {
3201
3226
  const footerBackgroundSrc = getAssetPath('./assets/footer-bg.webp');
3202
- return (hAsync("div", { key: '448d1da492c38d35d0fb016bcf573eb5b30db5d8', class: "website-footer-wrapper" }, hAsync("footer", { key: '600f377998cbd19337cd554cfaa5ce27c16df38e', class: "website-footer", style: {
3203
- background: `var(--color-penn-blue) url(${footerBackgroundSrc}) no-repeat 50% 50%`,
3227
+ return (hAsync("div", { key: '9c2bcb29ada71917ecc4a2d7fe50997680e512c7', class: "website-footer-wrapper" }, hAsync("footer", { key: '9f1407819668d47899efedd7d1a3cb56a2d21890', class: "website-footer", style: {
3228
+ background: `var(--pl-color-penn-blue) url(${footerBackgroundSrc}) no-repeat 50% 50%`,
3204
3229
  backgroundSize: 'cover',
3205
- } }, hAsync("div", { key: 'f03133cf821365bc36c373680fb136b608e304a6', class: "viewport-margins" }, hAsync("div", { key: '8610071ad39eea548d3738637b9a2848533be7b3', class: "website-footer__content" }, hAsync("div", { key: '634ce838b8dbaac61db226f6c53a765b1475058c', class: "website-footer__links-container" }, hAsync("section", { key: '70d93f0000bf2e323d2ca0250b7c357988c6603d' }, hAsync("h2", { key: 'b54fd36b15d8c2e6059a6bd9bb7b5c0958d16b93', class: "website-footer__heading" }, "Penn Libraries"), hAsync("ul", { key: 'f9815d823c8132fe83da9400b02a2a5b15f0d4db', class: "website-footer__links" }, hAsync("li", { key: 'ee6f365ce3c9f495c33f5f3005807ba1fe303cc9' }, hAsync("a", { key: '9d1d0426d0408c3ff067935bc9aa3c246a60eea6', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", hAsync("br", { key: '7ffbcaafc361ce3a9612b488270669f1fb5bd099' }), "Philadelphia, PA 19104-6206")), hAsync("li", { key: '617d67bc03b2473f91d9dd58cdc912031ad4e127' }, hAsync("a", { key: '310b0a64b3a8d0c455cc17df418e0f99b7cf35f9', href: "tel:(215) 898-7555" }, "(215) 898-7555")), hAsync("li", { key: 'ce5b511a8fbfeff9c3c44baf2ef37bcbbbd604b3' }, hAsync("a", { key: 'a2eb3b692e253aa5e8fc469586d96b2399d3f113', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), hAsync("li", { key: '43d14efe1b6716af9f4b00d3ef5748f87241692b' }, hAsync("a", { key: '975f0345fef09acf7356e75d080507088ac1f340', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), hAsync("section", { key: '630c9c1668afef59168eb992d1b3428ff47b25ff' }, hAsync("h2", { key: 'efd5ec17ef7ef2abca64fcbbfb92b7f2cc210ebb', class: "website-footer__heading" }, "Stay in touch"), hAsync("ul", { key: '8905cc1021ce510a1c0cdc13dd35b588ba02c5c3', class: "website-footer__links" }, hAsync("li", { key: '6237144b00557caab0771b40323de4d5e481d93d' }, hAsync("a", { key: '6d4aaea45a78141411f1148ab789f279a9813861', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), hAsync("li", { key: '7ad23d4cf8c74d586319e57af8e2f07423a62def' }, hAsync("a", { key: 'c04a846979d8255b8f267da008bf3076008fc989', href: "https://www.instagram.com/upennlib/" }, "Instagram")), hAsync("li", { key: '7d5a4b85547abeffdfa6091d3bbcec6ea6ced635' }, hAsync("a", { key: '2e3b040c6887216cbc6d9f8110befec48d5885ab', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), hAsync("li", { key: '50d77e20b8cd688c11930db60343d4420ec8271a' }, hAsync("a", { key: '5a94b1e6642a98bb4fe0d8148e20fe842a51a048', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
3230
+ } }, hAsync("div", { key: '4042e6d23d0628d3f460fd2d645264a8c9e078f3', class: "viewport-margins" }, hAsync("div", { key: '9fc499534305d77f5f2f7ee8ee9af9dab6feef5f', class: "website-footer__content" }, hAsync("div", { key: '3ef2da60bb255be3bc67ac3b2296a6ab894f56ad', class: "website-footer__links-container" }, hAsync("section", { key: '8464a7b015fe3ec58fed0070aa4868b2967a9afe' }, hAsync("h2", { key: 'dc99bcfe767d2d9bc077c3ebf737b739de826f17', class: "website-footer__heading" }, "Penn Libraries"), hAsync("ul", { key: 'e67fe3bc6701d03a534ddad3f3a415f86968a968', class: "website-footer__links" }, hAsync("li", { key: 'd4258dc3d05e7bee6496d302e55e248cbb323de1' }, hAsync("a", { key: 'fb1b1a029aba8e22199225acbfc579ad72a083ec', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", hAsync("br", { key: 'a2b74af1199901799942ad00039b7aa50ac18faf' }), "Philadelphia, PA 19104-6206")), hAsync("li", { key: 'b9557840862921b4afe4bb7698ac82ad5865d2da' }, hAsync("a", { key: 'd5e8ad2d102012daf8f3f1ca965073cb351f28bc', href: "tel:(215) 898-7555" }, "(215) 898-7555")), hAsync("li", { key: '1d119f2b3465c75eb5e2978b3e955cd04eff0da0' }, hAsync("a", { key: '9f8e3ac88902c4bf2669b8bcb38273d158e333b3', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), hAsync("li", { key: 'ed548eab7405dd44c14acd05899c912259c95e5e' }, hAsync("a", { key: '59bf08266f6c744623d7d92c864cc2987879b227', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), hAsync("section", { key: '0ec819bb0df59ad7b0acd47abb93ff39a66a670e' }, hAsync("h2", { key: '790eb358ecca24cb693830766e9134853cc98436', class: "website-footer__heading" }, "Stay in touch"), hAsync("ul", { key: 'bff8383fcdacc51b449eee06f88575bdc7390ccb', class: "website-footer__links" }, hAsync("li", { key: '5acd132276b6dea27c469719f39533ec32160a10' }, hAsync("a", { key: '9ae37a20fe94e7c9900fb9121985883faa66026f', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), hAsync("li", { key: 'b81d975f2301ce3f52dc21968cdfb4084f62a1dd' }, hAsync("a", { key: 'b959feb337dcded7396c45510d24a677dabe5f13', href: "https://www.instagram.com/upennlib/" }, "Instagram")), hAsync("li", { key: '76a73c4d49c707a1a3aa7744482f80c22128fb74' }, hAsync("a", { key: '0757181117c5f2c7426210e426dc2d122780d894', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), hAsync("li", { key: 'f2be8408042d5271e179eb3a1ed3370d36451d79' }, hAsync("a", { key: '360c4a8a4236ee8e9b1db3780710b4fea9189888', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
3206
3231
  this.navigationByChildren.map(section => (hAsync("section", null, hAsync("h2", { class: "website-footer__heading" }, section.heading), hAsync("ul", { class: "website-footer__links" }, section.links.map(link => (hAsync("li", null, hAsync("a", { href: link.href }, link.label))))))))
3207
- ]))), hAsync("div", { key: 'a04d676e63b6f32b3bd34956e2123e583eb9df89', class: "website-footer__footer" }, hAsync("div", { key: '5c1c5971ec865234ee5a610dc053bf51d3424714', class: "viewport-margins" }, hAsync("ul", { key: '9dd63d58bf9827af3bea1a61b1be4f51b9e615d3', class: "website-footer__links website-footer__links--footer" }, hAsync("li", { key: 'f63fd000d7bc7ecc2b3ed384bd74688b5139b0a2' }, hAsync("a", { key: '9073b5678578970edfbc28afa3ebd5acdbb4d733', href: "https://www.upenn.edu/" }, "UPenn")), hAsync("li", { key: '9f212d803845fe3b9b1d7b22c77261946755d21c' }, hAsync("a", { key: 'a86bf479465d4ed13e0951842bdacd4f40e5b856', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), hAsync("li", { key: '9c11b16f0c2982bd3d56ddbd71aac91a4d9e63a5' }, hAsync("a", { key: '26d0be64aff1d473c2adee9c2ce93ec81347a69b', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), hAsync("li", { key: '0fcff20974b7ab18d2d3221e2d07b8181a34b028' }, hAsync("a", { key: '2b1eb321365efd0ca8f23691517cf33cff8cd642', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), hAsync("li", { key: '9e6c169328723c215f2cd25ce7c20daf0159ff64' }, hAsync("a", { key: 'defb0ceaea20794de2651479a20283e12160c5da', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), hAsync("li", { key: '53852549d798d8bd1a0150f3c3fbd5e511cdbe24' }, hAsync("a", { key: 'a5ef650e278cb61e25235d1526a7483e3840dae2', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement"))))))));
3232
+ ]))), hAsync("div", { key: 'a4fb2085daf97f5b356463a2e43d800e43682b6c', class: "website-footer__footer" }, hAsync("div", { key: 'a85cac4dce8cdda27b144114aea44105fdf5be04', class: "viewport-margins" }, hAsync("ul", { key: 'f2ebd327db928ba7408b2e85f0e0e594b377f0c5', class: "website-footer__links website-footer__links--footer" }, hAsync("li", { key: 'd5bfe5300a9d69d31129c16b504539fdf097c1b4' }, hAsync("a", { key: 'e06f37953b31cae81eece04f3cc7904ab1aedb5f', href: "https://www.upenn.edu/" }, "UPenn")), hAsync("li", { key: '5fd231fd169a20096cbaec59da61db6577ed30ec' }, hAsync("a", { key: 'ddf2fefb50f1566defc3f0ddc202ee8fd0ab83c2', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), hAsync("li", { key: 'ea68f260488498455443c2afeab661dc0fa44033' }, hAsync("a", { key: '8f17fe53fc2af239a0bc7c724e9ee4637d95d8f4', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), hAsync("li", { key: '818bb632487b3b880602f065d6c3c55bb03cd0e6' }, hAsync("a", { key: '887b34e197ebd942adbe9bd29d6ad8be721ca332', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), hAsync("li", { key: '3b8ab2f7cc12bb7af048d11efe06eff5ab18ca02' }, hAsync("a", { key: '5e5e57cdc3974768005123433354ef4f7bd62540', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), hAsync("li", { key: '8968a082b9bb04d2996c9bcba7104271ee0ded4d' }, hAsync("a", { key: 'fb5373b19b964ba138053dd315e984c010384118', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement"))))))));
3208
3233
  }
3209
3234
  static get assetsDirs() { return ["assets"]; }
3210
3235
  get hostElement() { return getElement(this); }
@@ -3244,7 +3269,7 @@ const LogoBlue = () => {
3244
3269
  hAsync("path", { fill: "#fff", d: "M0 0H444.165V95H0z" })))));
3245
3270
  };
3246
3271
 
3247
- 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 var(--viewport-margins-gutter, 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}";
3272
+ const pennlibsHeaderCss = ":host{font-family:var(--pl-font-family);font-size:var(--pl-font-size);color:var(--pl-color-fg-default)}*,*:before,*:after{box-sizing:inherit}.viewport-margins{width:100%;max-width:var(--pl-viewport-max-width);margin:0 auto;padding:0 var(--pl-viewport-margins-gutter, 1em)}a{color:var(--color-fg-menu)}*:focus{box-shadow:0 0 0 2px var(--pl-color-bg-accent), 0 0 0 4px var(--pl-color-bg-accent-emphasis);outline:none}.website-header{--color-fg-service:var(--pl-color-penn-blue);--color-fg-menu:var(--pl-color-fg-default);--color-bg-menu:var(--pl-color-bg-default)}.website-header--dark{--color-fg-service:var(--pl-color-fg-on-emphasis);--color-fg-menu:var(--pl-color-fg-on-emphasis);--color-bg-menu:var(--pl-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(--pl-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}@media print{.website-header__inner-container>*:not(.website-header__logo-name-container){display:none}}";
3248
3273
 
3249
3274
  /**
3250
3275
  * A header component for Penn Libraries websites that displays the Penn Libraries logo,
@@ -3263,7 +3288,8 @@ const pennlibsHeaderCss = ":host{font-family:var(--font-family);font-size:var(--
3263
3288
  * @slot end - Content to display at the end of the header (right side)
3264
3289
  * @slot name-end - Content to display at the end of the service name (right side)
3265
3290
  *
3266
- * @prop --max-width: The maximum width of the header.
3291
+ * @prop --pl-viewport-max-width: The maximum width of the header.
3292
+ * @prop --pl-viewport-margins-gutter: The gutter width of the header content.
3267
3293
  */
3268
3294
  class Header {
3269
3295
  constructor(hostRef) {
@@ -3306,7 +3332,7 @@ class Header {
3306
3332
  return (hAsync("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24", viewBox: "0 -960 960 960", width: "24" }, hAsync("path", { fill: "currentColor", d: "M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z" })));
3307
3333
  }
3308
3334
  render() {
3309
- return (hAsync("header", { key: 'b0d541f9a2e3d21620cbd918dc87ea4c80637edf', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, hAsync("div", { key: '183210681519602789b136aaa6390973c7e5eaf0', class: "website-header__inner-container" }, hAsync("div", { key: '0649770c1890a3e8031cffb3a924b10de08a5118', class: "website-header__logo-name-container" }, hAsync("a", { key: 'c5a262169b3b4dddc9b83a8fbcd31369fb722143', href: "https://www.library.upenn.edu/", class: "website-header_logo-link", "aria-label": "Penn Libraries" }, this.theme === 'dark' ? hAsync(LogoWhite, null) : hAsync(LogoBlue, null)), this.serviceName && (hAsync("a", { key: '51e576934b1f0ac003c401bbde70e3de2b3372c7', href: "/", class: "website-header__service-link" }, hAsync("span", { key: '5e2eac2e472aba1040a7267a0291f0b641d563b3', class: "website-header__service-name" }, this.serviceName), this.serviceLede && hAsync("span", { key: '48f53ef2c2e120bb164c544da8cd35fbe5db1b41', class: "website-header__service-lede" }, this.serviceLede))), hAsync("slot", { key: 'cde06b01b63878fd7512e9d7199925ba554514e0', name: "name-end" })), this.navigation.length > 0 && (hAsync("nav", { key: 'f2acf41de326c265720e1aeae9acc88b70e849c8', class: "website-header__navigation" }, hAsync("button", { key: '30c61629bcef5ece260e919d94341f5831c6c588', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (hAsync("ol", { key: 'f9111fd2cee8e86daabd1f2bc9a1aac38c5b0b76', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => hAsync("li", { innerHTML: element.outerHTML })))))), hAsync("slot", { key: 'f87fc86c587cada45c0e8a8ec87e14f304c753c7', name: "end" }))));
3335
+ return (hAsync("header", { key: '45fe6be2cc7bbd406efbb026c1931f20b9f55e48', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, hAsync("div", { key: '4ebf135a2bba3b2285dda568d1a8845fb929841f', class: "website-header__inner-container" }, hAsync("div", { key: '5782f3fae1588cac9f818ee5a08eedbad6663925', class: "website-header__logo-name-container" }, hAsync("a", { key: '20033643e8cfd34b4d445d1a4df882c8ce6401b4', href: "https://www.library.upenn.edu/", class: "website-header_logo-link", "aria-label": "Penn Libraries" }, this.theme === 'dark' ? hAsync(LogoWhite, null) : hAsync(LogoBlue, null)), this.serviceName && (hAsync("a", { key: 'b020528632198fbe654983f025c63ebf0d1b013e', href: "/", class: "website-header__service-link" }, hAsync("span", { key: 'a00a21f06791eca0cf1989ff308b13ce1825ab63', class: "website-header__service-name" }, this.serviceName), this.serviceLede && hAsync("span", { key: 'c7e5f0b068ae893b5c6eac5c79b782fec080d0ca', class: "website-header__service-lede" }, this.serviceLede))), hAsync("slot", { key: '48c9a328f94a9d483daef354b69609ba4cb113aa', name: "name-end" })), this.navigation.length > 0 && (hAsync("nav", { key: 'd5894ef67d4a30d229d3ad2d612da66b519e0421', class: "website-header__navigation" }, hAsync("button", { key: 'fcf8bb70103057aaaa62b38ffb570ad7cecbf443', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (hAsync("ol", { key: 'e57830c7ec66374f653cadc448fc7689aebde718', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => hAsync("li", { innerHTML: element.outerHTML })))))), hAsync("slot", { key: '2962683e615d452fd5382fb34c96ecbfb9fb4ad1', name: "end" }))));
3310
3336
  }
3311
3337
  static get assetsDirs() { return ["assets"]; }
3312
3338
  get hostElement() { return getElement(this); }
@@ -3328,7 +3354,7 @@ class Header {
3328
3354
  }; }
3329
3355
  }
3330
3356
 
3331
- 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 var(--viewport-margins-gutter, 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}}";
3357
+ const pennlibsHeroCss = ":host{--pl-hero-height:clamp(42vh, 32rem, 26rem);--pl-hero-heading-font:var(--pl-font-serif);--pl-hero-color:var(--pl-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(--pl-viewport-max-width);margin:0 auto;padding:0 var(--pl-viewport-margins-gutter, 1em)}.hero{position:relative;min-height:var(--pl-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:var(--pl-space-3xl);padding-bottom:var(--pl-space-3xl)}.hero__heading{text-shadow:1px 1px 2px var(--pl-color-fg-default);line-height:1.1;font-size:2.75em;font-weight:bold;font-family:var(--pl-hero-heading-font);text-wrap:pretty;max-width:30ch;margin:0;color:var(--pl-hero-color)}@media (max-width: 920px){.hero__heading{font-size:2.5em}}.hero__sub-heading{font-size:1.15em;font-family:var(--pl-font-family);font-weight:500;color:var(--pl-hero-color);max-width:52ch;text-wrap:pretty;margin-top:1em;margin-bottom:0}.hero__sub-heading a{text-decoration:underline;text-underline-offset:var(--pl-link-text-underline-offset);text-decoration-thickness:var(--pl-link-text-decoration-thickness);color:var(--pl-hero-color)}.hero__sub-heading a:hover{text-decoration-thickness:var(--pl-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}}";
3332
3358
 
3333
3359
  const getCurrentImageSource = (pictureElement) => {
3334
3360
  const imgElement = pictureElement.querySelector('img');
@@ -3339,7 +3365,8 @@ const getCurrentImageSource = (pictureElement) => {
3339
3365
  *
3340
3366
  * @slot start - Content to display at the start (top) of the hero.
3341
3367
  *
3342
- * @prop --max-width: The maximum width of the hero inner content.
3368
+ * @prop --pl-viewport-max-width: The maximum width of the hero inner content.
3369
+ * @prop --pl-viewport-margins-gutter: The gutter width of the hero inner content.
3343
3370
  */
3344
3371
  class Hero {
3345
3372
  constructor(hostRef) {
@@ -3382,7 +3409,7 @@ class Hero {
3382
3409
  }
3383
3410
  }
3384
3411
  render() {
3385
- return (hAsync("div", { key: '838ab1a6f2d633ae5eaa703d25c3de29cc13604e', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, hAsync("div", { key: 'bcb746c35ba38046d23034112ef9a86b636ec6d8', class: "hero__content" }, hAsync("slot", { key: '2c02ba0fcdc0cff52d632a874c16dbb58a21aa5f', name: "start" }), hAsync("div", { key: '45af0d061781e3b14c9a6132249c3a600c99ea74', class: "hero__heading-container" }, this.heroHeadingElement && (hAsync("div", { key: '54915e79b942440aa68e101ddc338877c2b71d50', class: "viewport-margins" }, hAsync("h1", { key: 'd3b826151f98af69da8a8e0041de371868726a6a', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && hAsync("p", { key: '0be2c40d72e7f0b271903c3f3f0deb0a6c416992', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
3412
+ return (hAsync("div", { key: 'fa2bc27b539b4246a7ce13d84be0bbf5518d30dd', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, hAsync("div", { key: '52f802774816bcaba73c4fa25a34c9dc391f4a3f', class: "hero__content" }, hAsync("slot", { key: 'e11e8bf3909844383ee1199a3f04e8f64151466e', name: "start" }), hAsync("div", { key: 'af38875bdfa03346e5ecb3bd352adc6a7f00fc02', class: "hero__heading-container" }, this.heroHeadingElement && (hAsync("div", { key: '69e64c73f25bec3f26d95473ce01bc545beb98bc', class: "viewport-margins" }, hAsync("h1", { key: '14e726629606b794fa59128cd6ab6b21fc97c0fa', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && hAsync("p", { key: '2530d6cc635d41c2b062b7cf9c659e1877110ba7', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
3386
3413
  }
3387
3414
  static get assetsDirs() { return ["assets"]; }
3388
3415
  get hostElement() { return getElement(this); }
@@ -3402,7 +3429,7 @@ class Hero {
3402
3429
  }; }
3403
3430
  }
3404
3431
 
3405
- const pennlibsFallbackImgCss = ":host{font-family:var(--font-family);font-size:var(--font-size);display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--color-bg-subtle);aspect-ratio:3/2}.no-image__img{width:100%;max-width:150px;filter:grayscale(1) opacity(0.3)}";
3432
+ const pennlibsFallbackImgCss = ":host{font-family:var(--pl-font-family);font-size:var(--pl-font-size);display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--pl-color-bg-subtle);aspect-ratio:3/2}.no-image__img{width:100%;max-width:150px;filter:grayscale(1) opacity(0.3)}";
3406
3433
 
3407
3434
  class NoImage {
3408
3435
  constructor(hostRef) {
@@ -3424,7 +3451,7 @@ class NoImage {
3424
3451
  }; }
3425
3452
  }
3426
3453
 
3427
- const pennlibsFeedbackCss = ":host{display:block;background:#eeeff4;padding:1.5em 1em;font-family:var(--font-family);font-size:var(--font-size);color:var(--color-fg-default);line-height:1.4;box-sizing:border-box}.feedback-container{display:flex;align-items:center;flex-wrap:wrap;gap:0.5em;width:100%;max-width:1080px;margin:0 auto}@media (max-width: 26em){.feedback-container{justify-content:center}}h2{display:inline-block;margin:0 0.5em 0 0;font-family:var(--font-sans-serif);font-size:1em;font-weight:600}p{margin:0;padding:calc(0.5em + 1px) 0}strong{font-weight:600}a{color:var(--color-fg-accent);text-decoration:underline;text-underline-offset:var(--link-text-underline-offset);text-decoration-thickness:var(--link-text-decoration-thickness)}button{all:unset;display:flex;align-items:center;gap:0.5em;padding:0.5em 1.5em;font-family:var(--font-family);font-weight:500;line-height:1.4;color:var(--color-fg-default);background:var(--color-bg-default);border:solid 1px var(--color-fg-subtle);border-radius:1em;box-sizing:border-box}button:hover{cursor:pointer}button:hover span{text-decoration:underline}*:focus{outline:0;box-shadow:0 0 0 2px var(--color-bg-attention),\n 0 0 0 3px var(--color-bg-emphasis)}p:focus{outline:none;box-shadow:0 0 0 2px var(--color-bg-attention), 0 0 0 3px var(--color-bg-emphasis)}@media (max-width: 26em){h2{display:block;width:100%;text-align:center}}.help-us{display:flex;flex-direction:column;gap:0.5em}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.visually-hidden:focus,.visually-hidden:active{clip:auto;clip-path:none;height:auto;overflow:visible;position:static;white-space:normal;width:auto}";
3454
+ const pennlibsFeedbackCss = ":host{display:block;background:#eeeff4;padding:1.5em 1em;font-family:var(--pl-font-family);font-size:var(--pl-font-size);color:var(--pl-color-fg-default);line-height:1.4;box-sizing:border-box}@media print{:host{display:none}}.feedback-container{display:flex;align-items:center;flex-wrap:wrap;gap:0.5em;width:100%;justify-content:center}@media (max-width: 26em){.feedback-container{justify-content:center}}h2{display:inline-block;margin:0 0.5em 0 0;font-family:var(--pl-font-sans-serif);font-size:1em;font-weight:600}p{margin:0;padding:calc(0.5em + 1px) 0}strong{font-weight:600}a{color:var(--pl-color-fg-accent);text-decoration:underline;text-underline-offset:var(--pl-link-text-underline-offset);text-decoration-thickness:var(--pl-link-text-decoration-thickness)}button{all:unset;display:flex;align-items:center;gap:0.5em;padding:0.5em 1.5em;font-family:var(--pl-font-family);font-weight:500;line-height:1.4;color:var(--pl-color-fg-default);background:var(--pl-color-bg-default);border:solid 1px var(--pl-color-fg-subtle);border-radius:1em;box-sizing:border-box}button:hover{cursor:pointer}button:hover span{text-decoration:underline}*:focus{outline:0;box-shadow:0 0 0 2px var(--pl-color-bg-attention),\n 0 0 0 3px var(--pl-color-bg-emphasis)}p:focus{outline:none;box-shadow:0 0 0 2px var(--pl-color-bg-attention), 0 0 0 3px var(--pl-color-bg-emphasis)}@media (max-width: 26em){h2{display:block;width:100%;text-align:center}}.help-us{display:flex;flex-direction:column;gap:0.5em}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.visually-hidden:focus,.visually-hidden:active{clip:auto;clip-path:none;height:auto;overflow:visible;position:static;white-space:normal;width:auto}";
3428
3455
 
3429
3456
  const FEEDBACK_STORAGE_KEY = 'pennlibs-feedback-answer';
3430
3457
  const FEEDBACK_QUESTION = 'Did you find what you need?';
package/hydrate/index.mjs CHANGED
@@ -3119,7 +3119,7 @@ var registerHost = (elm, cmpMeta) => {
3119
3119
  };
3120
3120
  var styles = /* @__PURE__ */ new Map();
3121
3121
 
3122
- 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 var(--viewport-margins-gutter, 1em)}.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}";
3122
+ const pennlibsBannerCss = ":host{font-family:var(--pl-font-family);font-size:var(--pl-font-size);--max-width:1080px}.viewport-margins{max-width:calc(var(--max-width) + 0.5em);margin:0 auto;padding:0 var(--pl-viewport-margins-gutter, 1em)}.skip-to-content-link{position:absolute;transform:translateY(-300%);background:var(--pl-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(--pl-color-fg-default)}.universal-nav{background:var(--pl-color-penn-blue)}.universal-nav ul{display:flex;align-items:baseline;flex-wrap:wrap;scrollbar-color:var(--pl-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(--pl-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}";
3123
3123
 
3124
3124
  class Banner {
3125
3125
  constructor(hostRef) {
@@ -3141,7 +3141,7 @@ class Banner {
3141
3141
  }; }
3142
3142
  }
3143
3143
 
3144
- 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}";
3144
+ const pennlibsChatCss = ":host {\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n line-height: normal;\n}\n\n@media print {\n :host {\n display: none;\n }\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(--pl-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(--pl-link-text-underline-offset);\n text-decoration-thickness: var(--pl-link-hover-text-decoration-thickness);\n}\n\na:hover,\na:focus {\n outline: none;\n box-shadow: 0 0 0 2px var(--pl-color-bg-attention),0 0 0 4px var(--pl-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}";
3145
3145
 
3146
3146
  class Chat {
3147
3147
  constructor(hostRef) {
@@ -3168,8 +3168,33 @@ class Chat {
3168
3168
  }; }
3169
3169
  }
3170
3170
 
3171
- 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 var(--viewport-margins-gutter, 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(12em, 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}";
3171
+ const pennlibsFooterCss = ":host {\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n --padding-bottom: 5.75rem;\n}\n\n@media print {\n :host {\n display: none;\n }\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n.website-footer-wrapper {\n background: var(--pl-color-penn-blue);\n padding-bottom: var(--padding-bottom);\n}\n\n.viewport-margins {\n max-width: var(--pl-viewport-max-width);\n margin: 0 auto;\n padding: 0 var(--pl-viewport-margins-gutter, 1em);\n}\n\n.website-footer {\n background-size: cover;\n color: var(--pl-color-fg-subtle-on-emphasis);\n}\n\n.website-footer a {\n color: var(--pl-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(12em, 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(--pl-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(--pl-link-text-underline-offset);\n}";
3172
3172
 
3173
+ /**
3174
+ * A footer component for Penn Libraries websites that displays contact information,
3175
+ * social media links, and custom navigation sections. Automatically organizes
3176
+ * child content into navigation sections based on headings and links.
3177
+ *
3178
+ * @component
3179
+ * @example
3180
+ * <pennlibs-footer>
3181
+ * <section>
3182
+ * <h2>Resources</h2>
3183
+ * <a href="/databases">Databases</a>
3184
+ * <a href="/research-guides">Research Guides</a>
3185
+ * </section>
3186
+ * <section>
3187
+ * <h2>Services</h2>
3188
+ * <a href="/consultation">Research Consultation</a>
3189
+ * <a href="/instruction">Library Instruction</a>
3190
+ * </section>
3191
+ * </pennlibs-footer>
3192
+ *
3193
+ * @slot default - Custom navigation sections with h2 headings and anchor links
3194
+ *
3195
+ * @prop --pl-viewport-max-width: The maximum width of the footer content.
3196
+ * @prop --pl-viewport-margins-gutter: The gutter width of the footer content.
3197
+ */
3173
3198
  class Footer {
3174
3199
  constructor(hostRef) {
3175
3200
  registerInstance(this, hostRef);
@@ -3197,12 +3222,12 @@ class Footer {
3197
3222
  }
3198
3223
  render() {
3199
3224
  const footerBackgroundSrc = getAssetPath('./assets/footer-bg.webp');
3200
- return (hAsync("div", { key: '448d1da492c38d35d0fb016bcf573eb5b30db5d8', class: "website-footer-wrapper" }, hAsync("footer", { key: '600f377998cbd19337cd554cfaa5ce27c16df38e', class: "website-footer", style: {
3201
- background: `var(--color-penn-blue) url(${footerBackgroundSrc}) no-repeat 50% 50%`,
3225
+ return (hAsync("div", { key: '9c2bcb29ada71917ecc4a2d7fe50997680e512c7', class: "website-footer-wrapper" }, hAsync("footer", { key: '9f1407819668d47899efedd7d1a3cb56a2d21890', class: "website-footer", style: {
3226
+ background: `var(--pl-color-penn-blue) url(${footerBackgroundSrc}) no-repeat 50% 50%`,
3202
3227
  backgroundSize: 'cover',
3203
- } }, hAsync("div", { key: 'f03133cf821365bc36c373680fb136b608e304a6', class: "viewport-margins" }, hAsync("div", { key: '8610071ad39eea548d3738637b9a2848533be7b3', class: "website-footer__content" }, hAsync("div", { key: '634ce838b8dbaac61db226f6c53a765b1475058c', class: "website-footer__links-container" }, hAsync("section", { key: '70d93f0000bf2e323d2ca0250b7c357988c6603d' }, hAsync("h2", { key: 'b54fd36b15d8c2e6059a6bd9bb7b5c0958d16b93', class: "website-footer__heading" }, "Penn Libraries"), hAsync("ul", { key: 'f9815d823c8132fe83da9400b02a2a5b15f0d4db', class: "website-footer__links" }, hAsync("li", { key: 'ee6f365ce3c9f495c33f5f3005807ba1fe303cc9' }, hAsync("a", { key: '9d1d0426d0408c3ff067935bc9aa3c246a60eea6', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", hAsync("br", { key: '7ffbcaafc361ce3a9612b488270669f1fb5bd099' }), "Philadelphia, PA 19104-6206")), hAsync("li", { key: '617d67bc03b2473f91d9dd58cdc912031ad4e127' }, hAsync("a", { key: '310b0a64b3a8d0c455cc17df418e0f99b7cf35f9', href: "tel:(215) 898-7555" }, "(215) 898-7555")), hAsync("li", { key: 'ce5b511a8fbfeff9c3c44baf2ef37bcbbbd604b3' }, hAsync("a", { key: 'a2eb3b692e253aa5e8fc469586d96b2399d3f113', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), hAsync("li", { key: '43d14efe1b6716af9f4b00d3ef5748f87241692b' }, hAsync("a", { key: '975f0345fef09acf7356e75d080507088ac1f340', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), hAsync("section", { key: '630c9c1668afef59168eb992d1b3428ff47b25ff' }, hAsync("h2", { key: 'efd5ec17ef7ef2abca64fcbbfb92b7f2cc210ebb', class: "website-footer__heading" }, "Stay in touch"), hAsync("ul", { key: '8905cc1021ce510a1c0cdc13dd35b588ba02c5c3', class: "website-footer__links" }, hAsync("li", { key: '6237144b00557caab0771b40323de4d5e481d93d' }, hAsync("a", { key: '6d4aaea45a78141411f1148ab789f279a9813861', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), hAsync("li", { key: '7ad23d4cf8c74d586319e57af8e2f07423a62def' }, hAsync("a", { key: 'c04a846979d8255b8f267da008bf3076008fc989', href: "https://www.instagram.com/upennlib/" }, "Instagram")), hAsync("li", { key: '7d5a4b85547abeffdfa6091d3bbcec6ea6ced635' }, hAsync("a", { key: '2e3b040c6887216cbc6d9f8110befec48d5885ab', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), hAsync("li", { key: '50d77e20b8cd688c11930db60343d4420ec8271a' }, hAsync("a", { key: '5a94b1e6642a98bb4fe0d8148e20fe842a51a048', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
3228
+ } }, hAsync("div", { key: '4042e6d23d0628d3f460fd2d645264a8c9e078f3', class: "viewport-margins" }, hAsync("div", { key: '9fc499534305d77f5f2f7ee8ee9af9dab6feef5f', class: "website-footer__content" }, hAsync("div", { key: '3ef2da60bb255be3bc67ac3b2296a6ab894f56ad', class: "website-footer__links-container" }, hAsync("section", { key: '8464a7b015fe3ec58fed0070aa4868b2967a9afe' }, hAsync("h2", { key: 'dc99bcfe767d2d9bc077c3ebf737b739de826f17', class: "website-footer__heading" }, "Penn Libraries"), hAsync("ul", { key: 'e67fe3bc6701d03a534ddad3f3a415f86968a968', class: "website-footer__links" }, hAsync("li", { key: 'd4258dc3d05e7bee6496d302e55e248cbb323de1' }, hAsync("a", { key: 'fb1b1a029aba8e22199225acbfc579ad72a083ec', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", hAsync("br", { key: 'a2b74af1199901799942ad00039b7aa50ac18faf' }), "Philadelphia, PA 19104-6206")), hAsync("li", { key: 'b9557840862921b4afe4bb7698ac82ad5865d2da' }, hAsync("a", { key: 'd5e8ad2d102012daf8f3f1ca965073cb351f28bc', href: "tel:(215) 898-7555" }, "(215) 898-7555")), hAsync("li", { key: '1d119f2b3465c75eb5e2978b3e955cd04eff0da0' }, hAsync("a", { key: '9f8e3ac88902c4bf2669b8bcb38273d158e333b3', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), hAsync("li", { key: 'ed548eab7405dd44c14acd05899c912259c95e5e' }, hAsync("a", { key: '59bf08266f6c744623d7d92c864cc2987879b227', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), hAsync("section", { key: '0ec819bb0df59ad7b0acd47abb93ff39a66a670e' }, hAsync("h2", { key: '790eb358ecca24cb693830766e9134853cc98436', class: "website-footer__heading" }, "Stay in touch"), hAsync("ul", { key: 'bff8383fcdacc51b449eee06f88575bdc7390ccb', class: "website-footer__links" }, hAsync("li", { key: '5acd132276b6dea27c469719f39533ec32160a10' }, hAsync("a", { key: '9ae37a20fe94e7c9900fb9121985883faa66026f', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), hAsync("li", { key: 'b81d975f2301ce3f52dc21968cdfb4084f62a1dd' }, hAsync("a", { key: 'b959feb337dcded7396c45510d24a677dabe5f13', href: "https://www.instagram.com/upennlib/" }, "Instagram")), hAsync("li", { key: '76a73c4d49c707a1a3aa7744482f80c22128fb74' }, hAsync("a", { key: '0757181117c5f2c7426210e426dc2d122780d894', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), hAsync("li", { key: 'f2be8408042d5271e179eb3a1ed3370d36451d79' }, hAsync("a", { key: '360c4a8a4236ee8e9b1db3780710b4fea9189888', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
3204
3229
  this.navigationByChildren.map(section => (hAsync("section", null, hAsync("h2", { class: "website-footer__heading" }, section.heading), hAsync("ul", { class: "website-footer__links" }, section.links.map(link => (hAsync("li", null, hAsync("a", { href: link.href }, link.label))))))))
3205
- ]))), hAsync("div", { key: 'a04d676e63b6f32b3bd34956e2123e583eb9df89', class: "website-footer__footer" }, hAsync("div", { key: '5c1c5971ec865234ee5a610dc053bf51d3424714', class: "viewport-margins" }, hAsync("ul", { key: '9dd63d58bf9827af3bea1a61b1be4f51b9e615d3', class: "website-footer__links website-footer__links--footer" }, hAsync("li", { key: 'f63fd000d7bc7ecc2b3ed384bd74688b5139b0a2' }, hAsync("a", { key: '9073b5678578970edfbc28afa3ebd5acdbb4d733', href: "https://www.upenn.edu/" }, "UPenn")), hAsync("li", { key: '9f212d803845fe3b9b1d7b22c77261946755d21c' }, hAsync("a", { key: 'a86bf479465d4ed13e0951842bdacd4f40e5b856', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), hAsync("li", { key: '9c11b16f0c2982bd3d56ddbd71aac91a4d9e63a5' }, hAsync("a", { key: '26d0be64aff1d473c2adee9c2ce93ec81347a69b', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), hAsync("li", { key: '0fcff20974b7ab18d2d3221e2d07b8181a34b028' }, hAsync("a", { key: '2b1eb321365efd0ca8f23691517cf33cff8cd642', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), hAsync("li", { key: '9e6c169328723c215f2cd25ce7c20daf0159ff64' }, hAsync("a", { key: 'defb0ceaea20794de2651479a20283e12160c5da', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), hAsync("li", { key: '53852549d798d8bd1a0150f3c3fbd5e511cdbe24' }, hAsync("a", { key: 'a5ef650e278cb61e25235d1526a7483e3840dae2', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement"))))))));
3230
+ ]))), hAsync("div", { key: 'a4fb2085daf97f5b356463a2e43d800e43682b6c', class: "website-footer__footer" }, hAsync("div", { key: 'a85cac4dce8cdda27b144114aea44105fdf5be04', class: "viewport-margins" }, hAsync("ul", { key: 'f2ebd327db928ba7408b2e85f0e0e594b377f0c5', class: "website-footer__links website-footer__links--footer" }, hAsync("li", { key: 'd5bfe5300a9d69d31129c16b504539fdf097c1b4' }, hAsync("a", { key: 'e06f37953b31cae81eece04f3cc7904ab1aedb5f', href: "https://www.upenn.edu/" }, "UPenn")), hAsync("li", { key: '5fd231fd169a20096cbaec59da61db6577ed30ec' }, hAsync("a", { key: 'ddf2fefb50f1566defc3f0ddc202ee8fd0ab83c2', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), hAsync("li", { key: 'ea68f260488498455443c2afeab661dc0fa44033' }, hAsync("a", { key: '8f17fe53fc2af239a0bc7c724e9ee4637d95d8f4', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), hAsync("li", { key: '818bb632487b3b880602f065d6c3c55bb03cd0e6' }, hAsync("a", { key: '887b34e197ebd942adbe9bd29d6ad8be721ca332', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), hAsync("li", { key: '3b8ab2f7cc12bb7af048d11efe06eff5ab18ca02' }, hAsync("a", { key: '5e5e57cdc3974768005123433354ef4f7bd62540', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), hAsync("li", { key: '8968a082b9bb04d2996c9bcba7104271ee0ded4d' }, hAsync("a", { key: 'fb5373b19b964ba138053dd315e984c010384118', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement"))))))));
3206
3231
  }
3207
3232
  static get assetsDirs() { return ["assets"]; }
3208
3233
  get hostElement() { return getElement(this); }
@@ -3242,7 +3267,7 @@ const LogoBlue = () => {
3242
3267
  hAsync("path", { fill: "#fff", d: "M0 0H444.165V95H0z" })))));
3243
3268
  };
3244
3269
 
3245
- 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 var(--viewport-margins-gutter, 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}";
3270
+ const pennlibsHeaderCss = ":host{font-family:var(--pl-font-family);font-size:var(--pl-font-size);color:var(--pl-color-fg-default)}*,*:before,*:after{box-sizing:inherit}.viewport-margins{width:100%;max-width:var(--pl-viewport-max-width);margin:0 auto;padding:0 var(--pl-viewport-margins-gutter, 1em)}a{color:var(--color-fg-menu)}*:focus{box-shadow:0 0 0 2px var(--pl-color-bg-accent), 0 0 0 4px var(--pl-color-bg-accent-emphasis);outline:none}.website-header{--color-fg-service:var(--pl-color-penn-blue);--color-fg-menu:var(--pl-color-fg-default);--color-bg-menu:var(--pl-color-bg-default)}.website-header--dark{--color-fg-service:var(--pl-color-fg-on-emphasis);--color-fg-menu:var(--pl-color-fg-on-emphasis);--color-bg-menu:var(--pl-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(--pl-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}@media print{.website-header__inner-container>*:not(.website-header__logo-name-container){display:none}}";
3246
3271
 
3247
3272
  /**
3248
3273
  * A header component for Penn Libraries websites that displays the Penn Libraries logo,
@@ -3261,7 +3286,8 @@ const pennlibsHeaderCss = ":host{font-family:var(--font-family);font-size:var(--
3261
3286
  * @slot end - Content to display at the end of the header (right side)
3262
3287
  * @slot name-end - Content to display at the end of the service name (right side)
3263
3288
  *
3264
- * @prop --max-width: The maximum width of the header.
3289
+ * @prop --pl-viewport-max-width: The maximum width of the header.
3290
+ * @prop --pl-viewport-margins-gutter: The gutter width of the header content.
3265
3291
  */
3266
3292
  class Header {
3267
3293
  constructor(hostRef) {
@@ -3304,7 +3330,7 @@ class Header {
3304
3330
  return (hAsync("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24", viewBox: "0 -960 960 960", width: "24" }, hAsync("path", { fill: "currentColor", d: "M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z" })));
3305
3331
  }
3306
3332
  render() {
3307
- return (hAsync("header", { key: 'b0d541f9a2e3d21620cbd918dc87ea4c80637edf', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, hAsync("div", { key: '183210681519602789b136aaa6390973c7e5eaf0', class: "website-header__inner-container" }, hAsync("div", { key: '0649770c1890a3e8031cffb3a924b10de08a5118', class: "website-header__logo-name-container" }, hAsync("a", { key: 'c5a262169b3b4dddc9b83a8fbcd31369fb722143', href: "https://www.library.upenn.edu/", class: "website-header_logo-link", "aria-label": "Penn Libraries" }, this.theme === 'dark' ? hAsync(LogoWhite, null) : hAsync(LogoBlue, null)), this.serviceName && (hAsync("a", { key: '51e576934b1f0ac003c401bbde70e3de2b3372c7', href: "/", class: "website-header__service-link" }, hAsync("span", { key: '5e2eac2e472aba1040a7267a0291f0b641d563b3', class: "website-header__service-name" }, this.serviceName), this.serviceLede && hAsync("span", { key: '48f53ef2c2e120bb164c544da8cd35fbe5db1b41', class: "website-header__service-lede" }, this.serviceLede))), hAsync("slot", { key: 'cde06b01b63878fd7512e9d7199925ba554514e0', name: "name-end" })), this.navigation.length > 0 && (hAsync("nav", { key: 'f2acf41de326c265720e1aeae9acc88b70e849c8', class: "website-header__navigation" }, hAsync("button", { key: '30c61629bcef5ece260e919d94341f5831c6c588', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (hAsync("ol", { key: 'f9111fd2cee8e86daabd1f2bc9a1aac38c5b0b76', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => hAsync("li", { innerHTML: element.outerHTML })))))), hAsync("slot", { key: 'f87fc86c587cada45c0e8a8ec87e14f304c753c7', name: "end" }))));
3333
+ return (hAsync("header", { key: '45fe6be2cc7bbd406efbb026c1931f20b9f55e48', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, hAsync("div", { key: '4ebf135a2bba3b2285dda568d1a8845fb929841f', class: "website-header__inner-container" }, hAsync("div", { key: '5782f3fae1588cac9f818ee5a08eedbad6663925', class: "website-header__logo-name-container" }, hAsync("a", { key: '20033643e8cfd34b4d445d1a4df882c8ce6401b4', href: "https://www.library.upenn.edu/", class: "website-header_logo-link", "aria-label": "Penn Libraries" }, this.theme === 'dark' ? hAsync(LogoWhite, null) : hAsync(LogoBlue, null)), this.serviceName && (hAsync("a", { key: 'b020528632198fbe654983f025c63ebf0d1b013e', href: "/", class: "website-header__service-link" }, hAsync("span", { key: 'a00a21f06791eca0cf1989ff308b13ce1825ab63', class: "website-header__service-name" }, this.serviceName), this.serviceLede && hAsync("span", { key: 'c7e5f0b068ae893b5c6eac5c79b782fec080d0ca', class: "website-header__service-lede" }, this.serviceLede))), hAsync("slot", { key: '48c9a328f94a9d483daef354b69609ba4cb113aa', name: "name-end" })), this.navigation.length > 0 && (hAsync("nav", { key: 'd5894ef67d4a30d229d3ad2d612da66b519e0421', class: "website-header__navigation" }, hAsync("button", { key: 'fcf8bb70103057aaaa62b38ffb570ad7cecbf443', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (hAsync("ol", { key: 'e57830c7ec66374f653cadc448fc7689aebde718', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => hAsync("li", { innerHTML: element.outerHTML })))))), hAsync("slot", { key: '2962683e615d452fd5382fb34c96ecbfb9fb4ad1', name: "end" }))));
3308
3334
  }
3309
3335
  static get assetsDirs() { return ["assets"]; }
3310
3336
  get hostElement() { return getElement(this); }
@@ -3326,7 +3352,7 @@ class Header {
3326
3352
  }; }
3327
3353
  }
3328
3354
 
3329
- 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 var(--viewport-margins-gutter, 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}}";
3355
+ const pennlibsHeroCss = ":host{--pl-hero-height:clamp(42vh, 32rem, 26rem);--pl-hero-heading-font:var(--pl-font-serif);--pl-hero-color:var(--pl-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(--pl-viewport-max-width);margin:0 auto;padding:0 var(--pl-viewport-margins-gutter, 1em)}.hero{position:relative;min-height:var(--pl-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:var(--pl-space-3xl);padding-bottom:var(--pl-space-3xl)}.hero__heading{text-shadow:1px 1px 2px var(--pl-color-fg-default);line-height:1.1;font-size:2.75em;font-weight:bold;font-family:var(--pl-hero-heading-font);text-wrap:pretty;max-width:30ch;margin:0;color:var(--pl-hero-color)}@media (max-width: 920px){.hero__heading{font-size:2.5em}}.hero__sub-heading{font-size:1.15em;font-family:var(--pl-font-family);font-weight:500;color:var(--pl-hero-color);max-width:52ch;text-wrap:pretty;margin-top:1em;margin-bottom:0}.hero__sub-heading a{text-decoration:underline;text-underline-offset:var(--pl-link-text-underline-offset);text-decoration-thickness:var(--pl-link-text-decoration-thickness);color:var(--pl-hero-color)}.hero__sub-heading a:hover{text-decoration-thickness:var(--pl-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}}";
3330
3356
 
3331
3357
  const getCurrentImageSource = (pictureElement) => {
3332
3358
  const imgElement = pictureElement.querySelector('img');
@@ -3337,7 +3363,8 @@ const getCurrentImageSource = (pictureElement) => {
3337
3363
  *
3338
3364
  * @slot start - Content to display at the start (top) of the hero.
3339
3365
  *
3340
- * @prop --max-width: The maximum width of the hero inner content.
3366
+ * @prop --pl-viewport-max-width: The maximum width of the hero inner content.
3367
+ * @prop --pl-viewport-margins-gutter: The gutter width of the hero inner content.
3341
3368
  */
3342
3369
  class Hero {
3343
3370
  constructor(hostRef) {
@@ -3380,7 +3407,7 @@ class Hero {
3380
3407
  }
3381
3408
  }
3382
3409
  render() {
3383
- return (hAsync("div", { key: '838ab1a6f2d633ae5eaa703d25c3de29cc13604e', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, hAsync("div", { key: 'bcb746c35ba38046d23034112ef9a86b636ec6d8', class: "hero__content" }, hAsync("slot", { key: '2c02ba0fcdc0cff52d632a874c16dbb58a21aa5f', name: "start" }), hAsync("div", { key: '45af0d061781e3b14c9a6132249c3a600c99ea74', class: "hero__heading-container" }, this.heroHeadingElement && (hAsync("div", { key: '54915e79b942440aa68e101ddc338877c2b71d50', class: "viewport-margins" }, hAsync("h1", { key: 'd3b826151f98af69da8a8e0041de371868726a6a', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && hAsync("p", { key: '0be2c40d72e7f0b271903c3f3f0deb0a6c416992', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
3410
+ return (hAsync("div", { key: 'fa2bc27b539b4246a7ce13d84be0bbf5518d30dd', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, hAsync("div", { key: '52f802774816bcaba73c4fa25a34c9dc391f4a3f', class: "hero__content" }, hAsync("slot", { key: 'e11e8bf3909844383ee1199a3f04e8f64151466e', name: "start" }), hAsync("div", { key: 'af38875bdfa03346e5ecb3bd352adc6a7f00fc02', class: "hero__heading-container" }, this.heroHeadingElement && (hAsync("div", { key: '69e64c73f25bec3f26d95473ce01bc545beb98bc', class: "viewport-margins" }, hAsync("h1", { key: '14e726629606b794fa59128cd6ab6b21fc97c0fa', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && hAsync("p", { key: '2530d6cc635d41c2b062b7cf9c659e1877110ba7', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
3384
3411
  }
3385
3412
  static get assetsDirs() { return ["assets"]; }
3386
3413
  get hostElement() { return getElement(this); }
@@ -3400,7 +3427,7 @@ class Hero {
3400
3427
  }; }
3401
3428
  }
3402
3429
 
3403
- const pennlibsFallbackImgCss = ":host{font-family:var(--font-family);font-size:var(--font-size);display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--color-bg-subtle);aspect-ratio:3/2}.no-image__img{width:100%;max-width:150px;filter:grayscale(1) opacity(0.3)}";
3430
+ const pennlibsFallbackImgCss = ":host{font-family:var(--pl-font-family);font-size:var(--pl-font-size);display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--pl-color-bg-subtle);aspect-ratio:3/2}.no-image__img{width:100%;max-width:150px;filter:grayscale(1) opacity(0.3)}";
3404
3431
 
3405
3432
  class NoImage {
3406
3433
  constructor(hostRef) {
@@ -3422,7 +3449,7 @@ class NoImage {
3422
3449
  }; }
3423
3450
  }
3424
3451
 
3425
- const pennlibsFeedbackCss = ":host{display:block;background:#eeeff4;padding:1.5em 1em;font-family:var(--font-family);font-size:var(--font-size);color:var(--color-fg-default);line-height:1.4;box-sizing:border-box}.feedback-container{display:flex;align-items:center;flex-wrap:wrap;gap:0.5em;width:100%;max-width:1080px;margin:0 auto}@media (max-width: 26em){.feedback-container{justify-content:center}}h2{display:inline-block;margin:0 0.5em 0 0;font-family:var(--font-sans-serif);font-size:1em;font-weight:600}p{margin:0;padding:calc(0.5em + 1px) 0}strong{font-weight:600}a{color:var(--color-fg-accent);text-decoration:underline;text-underline-offset:var(--link-text-underline-offset);text-decoration-thickness:var(--link-text-decoration-thickness)}button{all:unset;display:flex;align-items:center;gap:0.5em;padding:0.5em 1.5em;font-family:var(--font-family);font-weight:500;line-height:1.4;color:var(--color-fg-default);background:var(--color-bg-default);border:solid 1px var(--color-fg-subtle);border-radius:1em;box-sizing:border-box}button:hover{cursor:pointer}button:hover span{text-decoration:underline}*:focus{outline:0;box-shadow:0 0 0 2px var(--color-bg-attention),\n 0 0 0 3px var(--color-bg-emphasis)}p:focus{outline:none;box-shadow:0 0 0 2px var(--color-bg-attention), 0 0 0 3px var(--color-bg-emphasis)}@media (max-width: 26em){h2{display:block;width:100%;text-align:center}}.help-us{display:flex;flex-direction:column;gap:0.5em}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.visually-hidden:focus,.visually-hidden:active{clip:auto;clip-path:none;height:auto;overflow:visible;position:static;white-space:normal;width:auto}";
3452
+ const pennlibsFeedbackCss = ":host{display:block;background:#eeeff4;padding:1.5em 1em;font-family:var(--pl-font-family);font-size:var(--pl-font-size);color:var(--pl-color-fg-default);line-height:1.4;box-sizing:border-box}@media print{:host{display:none}}.feedback-container{display:flex;align-items:center;flex-wrap:wrap;gap:0.5em;width:100%;justify-content:center}@media (max-width: 26em){.feedback-container{justify-content:center}}h2{display:inline-block;margin:0 0.5em 0 0;font-family:var(--pl-font-sans-serif);font-size:1em;font-weight:600}p{margin:0;padding:calc(0.5em + 1px) 0}strong{font-weight:600}a{color:var(--pl-color-fg-accent);text-decoration:underline;text-underline-offset:var(--pl-link-text-underline-offset);text-decoration-thickness:var(--pl-link-text-decoration-thickness)}button{all:unset;display:flex;align-items:center;gap:0.5em;padding:0.5em 1.5em;font-family:var(--pl-font-family);font-weight:500;line-height:1.4;color:var(--pl-color-fg-default);background:var(--pl-color-bg-default);border:solid 1px var(--pl-color-fg-subtle);border-radius:1em;box-sizing:border-box}button:hover{cursor:pointer}button:hover span{text-decoration:underline}*:focus{outline:0;box-shadow:0 0 0 2px var(--pl-color-bg-attention),\n 0 0 0 3px var(--pl-color-bg-emphasis)}p:focus{outline:none;box-shadow:0 0 0 2px var(--pl-color-bg-attention), 0 0 0 3px var(--pl-color-bg-emphasis)}@media (max-width: 26em){h2{display:block;width:100%;text-align:center}}.help-us{display:flex;flex-direction:column;gap:0.5em}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.visually-hidden:focus,.visually-hidden:active{clip:auto;clip-path:none;height:auto;overflow:visible;position:static;white-space:normal;width:auto}";
3426
3453
 
3427
3454
  const FEEDBACK_STORAGE_KEY = 'pennlibs-feedback-answer';
3428
3455
  const FEEDBACK_QUESTION = 'Did you find what you need?';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@penn-libraries/web",
3
- "version": "0.3.1",
3
+ "version": "1.0.0-dev.1",
4
4
  "description": "UPenn Libraries Web Components",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",