@penn-libraries/web 1.3.1 → 1.4.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 (78) hide show
  1. package/dist/cjs/{index-BZwAUTFd.js → index-DATEsMXP.js} +19 -4
  2. package/dist/cjs/index-DATEsMXP.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-autocomplete.cjs.entry.js +1 -1
  6. package/dist/cjs/pennlibs-banner.cjs.entry.js +1 -1
  7. package/dist/cjs/pennlibs-chat.cjs.entry.js +1 -1
  8. package/dist/cjs/pennlibs-expand-text.pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.cjs.js.map +1 -0
  9. package/dist/cjs/{pennlibs-feedback_3.cjs.entry.js → pennlibs-expand-text_4.cjs.entry.js} +81 -8
  10. package/dist/cjs/pennlibs-fallback-img.cjs.entry.js +2 -2
  11. package/dist/cjs/pennlibs-hero.cjs.entry.js +3 -3
  12. package/dist/cjs/pennlibs-hero.entry.cjs.js.map +1 -1
  13. package/dist/cjs/pennlibs-iiif-img.cjs.entry.js +1 -1
  14. package/dist/cjs/web.cjs.js +2 -2
  15. package/dist/collection/collection-manifest.json +1 -0
  16. package/dist/collection/components/pennlibs-expand-text/pennlibs-expand-text.css +88 -0
  17. package/dist/collection/components/pennlibs-expand-text/pennlibs-expand-text.js +168 -0
  18. package/dist/collection/components/pennlibs-expand-text/pennlibs-expand-text.js.map +1 -0
  19. package/dist/collection/components/pennlibs-fallback-img/pennlibs-fallback-img.js +1 -1
  20. package/dist/collection/components/pennlibs-feedback/pennlibs-feedback.js +1 -1
  21. package/dist/collection/components/pennlibs-footer/pennlibs-footer.css +1 -1
  22. package/dist/collection/components/pennlibs-footer/pennlibs-footer.js +3 -3
  23. package/dist/collection/components/pennlibs-header/pennlibs-header.js +1 -1
  24. package/dist/collection/components/pennlibs-hero/pennlibs-hero.css +5 -10
  25. package/dist/collection/components/pennlibs-hero/pennlibs-hero.js +1 -1
  26. package/dist/components/index.d.ts +2 -0
  27. package/dist/components/index.js +1 -0
  28. package/dist/components/index.js.map +1 -1
  29. package/dist/components/pennlibs-expand-text.d.ts +11 -0
  30. package/dist/components/pennlibs-expand-text.js +105 -0
  31. package/dist/components/pennlibs-expand-text.js.map +1 -0
  32. package/dist/components/pennlibs-fallback-img2.js +1 -1
  33. package/dist/components/pennlibs-feedback.js +1 -1
  34. package/dist/components/pennlibs-footer.js +4 -4
  35. package/dist/components/pennlibs-footer.js.map +1 -1
  36. package/dist/components/pennlibs-header.js +1 -1
  37. package/dist/components/pennlibs-hero.js +2 -2
  38. package/dist/components/pennlibs-hero.js.map +1 -1
  39. package/dist/docs.json +130 -1
  40. package/dist/{web/p-DF84VN1-.js → esm/index-CgmxDHmi.js} +19 -5
  41. package/dist/esm/index-CgmxDHmi.js.map +1 -0
  42. package/dist/esm/index.js +1 -1
  43. package/dist/esm/loader.js +3 -3
  44. package/dist/esm/pennlibs-autocomplete.entry.js +1 -1
  45. package/dist/esm/pennlibs-banner.entry.js +1 -1
  46. package/dist/esm/pennlibs-chat.entry.js +1 -1
  47. package/dist/esm/pennlibs-expand-text.pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.js.map +1 -0
  48. package/dist/esm/{pennlibs-feedback_3.entry.js → pennlibs-expand-text_4.entry.js} +81 -9
  49. package/dist/esm/pennlibs-fallback-img.entry.js +2 -2
  50. package/dist/esm/pennlibs-hero.entry.js +3 -3
  51. package/dist/esm/pennlibs-hero.entry.js.map +1 -1
  52. package/dist/esm/pennlibs-iiif-img.entry.js +1 -1
  53. package/dist/esm/web.js +3 -3
  54. package/dist/types/components/pennlibs-expand-text/pennlibs-expand-text.d.ts +35 -0
  55. package/dist/types/components.d.ts +69 -0
  56. package/dist/web/index.esm.js +1 -1
  57. package/dist/web/{p-fc772aef.entry.js → p-2d7c03b3.entry.js} +3 -3
  58. package/dist/web/{p-17a97fcf.entry.js → p-6eef97ad.entry.js} +1 -1
  59. package/dist/web/{p-c978cff4.entry.js → p-6ff0271c.entry.js} +1 -1
  60. package/dist/web/{p-4d671d86.entry.js → p-7c1febd2.entry.js} +1 -1
  61. package/dist/{esm/index-DF84VN1-.js → web/p-CgmxDHmi.js} +19 -5
  62. package/dist/web/p-CgmxDHmi.js.map +1 -0
  63. package/dist/web/{p-dc790d88.entry.js → p-b674bdca.entry.js} +2 -2
  64. package/dist/web/{p-15aaa482.entry.js → p-eda436e7.entry.js} +1 -1
  65. package/dist/web/{p-f797c7a7.entry.js → p-ee89e08f.entry.js} +81 -9
  66. package/dist/web/pennlibs-expand-text.pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.esm.js.map +1 -0
  67. package/dist/web/pennlibs-hero.entry.esm.js.map +1 -1
  68. package/dist/web/web.css +9 -1
  69. package/dist/web/web.esm.js +3 -3
  70. package/hydrate/index.js +119 -10
  71. package/hydrate/index.mjs +119 -10
  72. package/package.json +1 -1
  73. package/dist/cjs/index-BZwAUTFd.js.map +0 -1
  74. package/dist/cjs/pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.cjs.js.map +0 -1
  75. package/dist/esm/index-DF84VN1-.js.map +0 -1
  76. package/dist/esm/pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.js.map +0 -1
  77. package/dist/web/p-DF84VN1-.js.map +0 -1
  78. package/dist/web/pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.esm.js.map +0 -1
package/hydrate/index.js CHANGED
@@ -1535,6 +1535,9 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
1535
1535
  return propValue === "false" ? false : propValue === "" || !!propValue;
1536
1536
  }
1537
1537
  }
1538
+ if (propType & 2 /* Number */) {
1539
+ return typeof propValue === "string" ? parseFloat(propValue) : typeof propValue === "number" ? propValue : NaN;
1540
+ }
1538
1541
  if (propType & 1 /* String */) {
1539
1542
  return String(propValue);
1540
1543
  }
@@ -1605,7 +1608,11 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
1605
1608
  }
1606
1609
  }
1607
1610
  }
1608
- } else if (memberName === "key") ; else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
1611
+ } else if (memberName === "key") ; else if (memberName === "ref") {
1612
+ if (newValue) {
1613
+ newValue(elm);
1614
+ }
1615
+ } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
1609
1616
  if (memberName[2] === "-") {
1610
1617
  memberName = memberName.slice(3);
1611
1618
  } else if (isMemberInElement(win, ln)) {
@@ -1848,6 +1855,7 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
1848
1855
  const vnode = vnodes[index];
1849
1856
  if (vnode) {
1850
1857
  const elm = vnode.$elm$;
1858
+ nullifyVNodeRefs(vnode);
1851
1859
  if (elm) {
1852
1860
  {
1853
1861
  checkSlotFallbackVisibility = true;
@@ -2060,6 +2068,12 @@ var markSlotContentForRelocation = (elm) => {
2060
2068
  }
2061
2069
  }
2062
2070
  };
2071
+ var nullifyVNodeRefs = (vNode) => {
2072
+ {
2073
+ vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
2074
+ vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
2075
+ }
2076
+ };
2063
2077
  var insertBefore = (parent, newNode, reference) => {
2064
2078
  {
2065
2079
  return parent == null ? void 0 : parent.insertBefore(newNode, reference);
@@ -3660,7 +3674,101 @@ class Chat {
3660
3674
  }; }
3661
3675
  }
3662
3676
 
3663
- const pennlibsFooterCss = ":host {\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n --padding-bottom: 3em;\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-margins-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.built-with,\n.built-with a {\n color: var(--pl-color-fg-subtle-on-emphasis);\n}\n\n.built-with a {\n font-weight: 500;\n text-underline-offset: var(--pl-link-text-underline-offset);\n\n &:hover {\n text-decoration-thickness: var(--pl-link-hover-text-decoration-thickness);\n }\n}\n\n.built-with {\n opacity: 0.875;\n margin: 0; \n padding: 1.5em 0;\n font-size: 0.875em;\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.75em;\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}";
3677
+ const pennlibsExpandTextCss = ":host{display:inline-block;position:relative;max-width:100%;vertical-align:bottom}.expand-text{display:block}.expand-text--clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--pl-expand-text-lines, 3);line-clamp:var(--pl-expand-text-lines, 3);overflow:hidden}.expand-text--expanded{display:inline}.expand-text__fade{position:absolute;right:0;bottom:0;padding-left:2em;background:linear-gradient(\n to right,\n transparent,\n var(--pl-expand-text-bg, var(--pl-color-bg-default)) 1.5em\n );pointer-events:none}.expand-text__toggle{display:inline-block;vertical-align:baseline;pointer-events:auto;padding:var(--pl-space-3xs) var(--pl-space-s);border:none;background:var(--pl-color-bg-subtle);color:var(--pl-color-fg-default);font-family:var(--pl-font-family);border-radius:var(--pl-border-radius-subtle);font-size:var(--pl-font-size-xs);font-weight:500;line-height:1.5;letter-spacing:0.075rem;text-transform:uppercase;cursor:pointer}.expand-text__toggle:hover{text-decoration:underline;text-decoration-thickness:var(--pl-link-text-decoration-thickness);text-underline-offset:var(--pl-link-text-underline-offset)}.expand-text__toggle:focus-visible{outline:none;box-shadow:var(--pl-focus-box-shadow)}.expand-text__fade--inline{position:static;padding-left:0;background:none;margin-inline-start:var(--pl-space-2xs, 0.25rem)}";
3678
+
3679
+ /**
3680
+ * Clamp long text to a set number of lines with an inline "More" / "Less"
3681
+ * toggle. Useful for headings, descriptions, or any prose block that can
3682
+ * run long in narrow containers.
3683
+ *
3684
+ * @slot - The content to truncate. Accepts any flow content.
3685
+ */
3686
+ class ExpandText {
3687
+ constructor(hostRef) {
3688
+ registerInstance(this, hostRef);
3689
+ /**
3690
+ * Maximum number of lines to show before truncating.
3691
+ * @prop lines
3692
+ */
3693
+ this.lines = 3;
3694
+ /**
3695
+ * Label for the toggle when content is collapsed.
3696
+ * @prop expand-label
3697
+ */
3698
+ this.expandLabel = 'More';
3699
+ /**
3700
+ * Label for the toggle when content is expanded.
3701
+ * @prop collapse-label
3702
+ */
3703
+ this.collapseLabel = 'Less';
3704
+ this.expanded = false;
3705
+ this.hasOverflow = false;
3706
+ this.measured = false;
3707
+ this.checkOverflow = () => {
3708
+ if (!this.contentEl || this.expanded)
3709
+ return;
3710
+ const lineHeight = parseFloat(getComputedStyle(this.contentEl).lineHeight);
3711
+ if (Number.isFinite(lineHeight) && this.lines > 0) {
3712
+ // Require at least two full extra lines of hidden content before the
3713
+ // toggle is worth showing. A near-flush overflow (a few extra words)
3714
+ // makes the toggle look like it reveals nothing meaningful.
3715
+ this.hasOverflow = this.contentEl.scrollHeight > lineHeight * (this.lines + 2);
3716
+ }
3717
+ else {
3718
+ this.hasOverflow = this.contentEl.scrollHeight > this.contentEl.clientHeight + 1;
3719
+ }
3720
+ this.measured = true;
3721
+ };
3722
+ this.toggle = () => {
3723
+ this.expanded = !this.expanded;
3724
+ };
3725
+ }
3726
+ componentDidLoad() {
3727
+ var _a;
3728
+ if (!this.contentEl)
3729
+ return;
3730
+ // Observe the host (always inline-block) rather than the content span,
3731
+ // which becomes inline when unclamped and stops firing resize events.
3732
+ this.resizeObserver = new ResizeObserver(() => this.checkOverflow());
3733
+ this.resizeObserver.observe(this.el);
3734
+ this.checkOverflow();
3735
+ (_a = document.fonts) === null || _a === void 0 ? void 0 : _a.ready.then(() => this.checkOverflow());
3736
+ }
3737
+ disconnectedCallback() {
3738
+ var _a;
3739
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
3740
+ }
3741
+ render() {
3742
+ const isClamped = !this.expanded && (!this.measured || this.hasOverflow);
3743
+ return (hAsync(Host, { key: '9c1a5be21f67022923982179319c9b0920a3ee00', style: { '--pl-expand-text-lines': String(this.lines) } }, hAsync("span", { key: '54b5721c9df1a81b08e3823b93029f72a8e66852', class: {
3744
+ 'expand-text': true,
3745
+ 'expand-text--clamped': isClamped,
3746
+ 'expand-text--expanded': this.expanded,
3747
+ }, ref: (el) => (this.contentEl = el) }, hAsync("slot", { key: 'f4df852b0d1513741e07825551428807f8cb27c3' })), this.hasOverflow && (hAsync("span", { key: '79104493f870c13070468612a7269072c9607779', class: {
3748
+ 'expand-text__fade': true,
3749
+ 'expand-text__fade--inline': this.expanded,
3750
+ } }, hAsync("button", { key: 'f723f0265093c78b45b4f3cb6d2fce2549361cdd', type: "button", class: "expand-text__toggle", "aria-expanded": String(this.expanded), onClick: this.toggle }, this.expanded ? this.collapseLabel : this.expandLabel)))));
3751
+ }
3752
+ get el() { return getElement(this); }
3753
+ static get style() { return pennlibsExpandTextCss; }
3754
+ static get cmpMeta() { return {
3755
+ "$flags$": 265,
3756
+ "$tagName$": "pennlibs-expand-text",
3757
+ "$members$": {
3758
+ "lines": [2],
3759
+ "expandLabel": [1, "expand-label"],
3760
+ "collapseLabel": [1, "collapse-label"],
3761
+ "expanded": [32],
3762
+ "hasOverflow": [32],
3763
+ "measured": [32]
3764
+ },
3765
+ "$listeners$": undefined,
3766
+ "$lazyBundleId$": "-",
3767
+ "$attrsToReflect$": []
3768
+ }; }
3769
+ }
3770
+
3771
+ const pennlibsFooterCss = ":host {\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n --padding-bottom: 3em;\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-margins-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.built-with,\n.built-with a {\n color: var(--pl-color-fg-subtle-on-emphasis);\n}\n\n.built-with a {\n font-weight: 500;\n text-underline-offset: var(--pl-link-text-underline-offset);\n\n &:hover {\n text-decoration-thickness: var(--pl-link-hover-text-decoration-thickness);\n }\n}\n\n.built-with {\n opacity: 0.875;\n margin: 0; \n padding: 1.5em 0;\n font-size: 0.875em;\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.75em;\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.75;\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}";
3664
3772
 
3665
3773
  /**
3666
3774
  * A footer component for Penn Libraries websites that displays contact information,
@@ -3718,12 +3826,12 @@ class Footer {
3718
3826
  }
3719
3827
  render() {
3720
3828
  const footerBackgroundSrc = getAssetPath('./assets/footer-bg.webp');
3721
- return (hAsync("footer", { key: '39b1bc7336fe2aa28e8c6093d13b8dfb3dd70d3e', class: "website-footer-wrapper" }, hAsync("div", { key: '7902cf7cde3a468dec8ea71c2a139addafa5af79', class: "website-footer", style: {
3829
+ return (hAsync("footer", { key: '15d1f4477bd137e281fcbf6c1e3b70bf55a8a2e0', class: "website-footer-wrapper" }, hAsync("div", { key: '04954e3b1095b6d510e1bae4e5a453f6ff5cb0ce', class: "website-footer", style: {
3722
3830
  background: `var(--pl-color-penn-blue) url(${footerBackgroundSrc}) no-repeat 50% 50%`,
3723
3831
  backgroundSize: 'cover',
3724
- } }, hAsync("div", { key: '804f9cd3f101997ee2d15d4a4749945ef553a118', class: "viewport-margins" }, hAsync("div", { key: '3a09637400e74e729641666eb8142c0cf77d66b3', class: "website-footer__content" }, hAsync("div", { key: 'cdb9270db298aa7781859a80c799949cb4c35787', class: "website-footer__links-container" }, hAsync("section", { key: '20d953d2b85178798d2298aa8aaa9fb8e47d7af4' }, hAsync("h2", { key: '79b1fe7f4fc2dff03134c7d4e96e9fd657131fc8', class: "website-footer__heading" }, "Penn Libraries"), hAsync("ul", { key: 'ba8002b17457f979f9817c45a89f332064f0b5bb', class: "website-footer__links" }, hAsync("li", { key: 'cb65fc4ad6432ef447a4b98a8dfdc0323bf37ccc' }, hAsync("a", { key: '0b61506da9a1c18919f77410fa39d3937f7485df', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", hAsync("br", { key: 'ebd3def13a3107d1b301c0932d421b054e2bb338' }), "Philadelphia, PA 19104-6206")), hAsync("li", { key: '3f26ebab3b90a33ba2d17cd3cfd8a485f1c7e74f' }, hAsync("a", { key: 'c2dcf7a3d936eb5376b2568e677bb8a7dc7ab445', href: "tel:(215) 898-7566" }, "(215) 898-7566")), hAsync("li", { key: '8c9374110f2d386c7275fad9522ea2565daf6c06' }, hAsync("a", { key: 'd40a2fd7490f1b233e4839e38faf29d9bb04f519', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), hAsync("li", { key: 'ab3016b1cfcc8827af060ec383d8556e8346713a' }, hAsync("a", { key: '76a8d246128fb76606c1cdf24640198c23c9d317', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), hAsync("section", { key: 'fd0abacbc35ffaafbb2016064c7a6194616ee2dc' }, hAsync("h2", { key: 'a812d7d26e21a1808ce6bd115ec620e1b033a8bf', class: "website-footer__heading" }, "Stay in touch"), hAsync("ul", { key: 'fe158ff1336379e1236a88c4a3d0f5e1efd9cdb8', class: "website-footer__links" }, hAsync("li", { key: '32396df360b39190ff587400fabe405ee319a507' }, hAsync("a", { key: '07ac56362dde7a2807e86c2a22564689ed9de90c', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), hAsync("li", { key: '95abd2bf0f6a79c0597c1e57e878f986002adde2' }, hAsync("a", { key: '374044fae62fd82c9369cfba8b7c6223ded48d5a', href: "https://www.instagram.com/upennlib/" }, "Instagram")), hAsync("li", { key: '86cc74d4ec21dfb51a072cfad87ed395e961f26f' }, hAsync("a", { key: 'fda9e8c73918252b91e40dc23d289613a3fe5802', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), hAsync("li", { key: 'b1ce60d7aa5ac8a2aa8bd4f826c11cc753b1488c' }, hAsync("a", { key: 'ccfef8131fc7f9edd44936f1c212d31c08c61682', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
3832
+ } }, hAsync("div", { key: 'ba8ce4e14e0e9364863fac7a2839397e2e0b941a', class: "viewport-margins" }, hAsync("div", { key: '63f34d4f96b284e724135ed8987cc2d3d2e3fbd1', class: "website-footer__content" }, hAsync("div", { key: 'a1edf943618100610c6624d35193fc9f0f5968b3', class: "website-footer__links-container" }, hAsync("section", { key: 'c7f7f781d1c6b239d520a8dc725381aec6281b8a' }, hAsync("h2", { key: 'dc87452564eb1c1c1e75105ec8195917f7eb97a2', class: "website-footer__heading" }, "Penn Libraries"), hAsync("ul", { key: '8510d8d758daee5d1c08bdbebf2fd741f6bc3b29', class: "website-footer__links" }, hAsync("li", { key: '5975b1488a02111e692fd80e86db0f72baa4d9d3' }, hAsync("a", { key: '2715c1c9c7a0f2ad1d677906eb5a34ab4c04007c', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", hAsync("br", { key: '4d380fd2e056d972944a3866ebc52e25689cd44c' }), "Philadelphia, PA 19104-6206")), hAsync("li", { key: '3d52db897689c923b85c67159f8c53ca346e98c2' }, hAsync("a", { key: '1010c1d279e1cb11c7a853f0997b5d8aabd33bdc', href: "tel:(215) 898-7566" }, "(215) 898-7566")), hAsync("li", { key: 'f1d61d6e01c5e2a1fced55e145f101ccc37fdf29' }, hAsync("a", { key: 'f1dc654a1af81a5847aef7c9fc21e025eb8dfced', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), hAsync("li", { key: '1c96e99267b30a59b65f4e3d726ef948be202d2d' }, hAsync("a", { key: '02c308d0c96d6148ca093e5e0882d5d22aa9c1db', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), hAsync("section", { key: '639a1f5a03b1f646b8a519fa4749980512524f33' }, hAsync("h2", { key: 'e8047c4763458e63d20c4dddd6a35dd6f144c016', class: "website-footer__heading" }, "Stay in touch"), hAsync("ul", { key: 'd496f8fbea5a6c8a9d705c90588b6f750f4a8609', class: "website-footer__links" }, hAsync("li", { key: '57d3280c71d8dcf57db397641c9418910cd4cb84' }, hAsync("a", { key: 'c3203a8e36919031b5a14958765ad05c5e590e50', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), hAsync("li", { key: '0025893e79dc5fde2a86c8305ff57bd7a4bd5962' }, hAsync("a", { key: '4f20f07275a082c43e3dfdbf23b42487d0cc94da', href: "https://www.instagram.com/upennlib/" }, "Instagram")), hAsync("li", { key: '7d6e64d3f6d921e7967b9eea4f307cba5a3c326d' }, hAsync("a", { key: 'b145fc5809b8f2a8225351bd69296da5f803756d', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), hAsync("li", { key: '471174a0eede78d94704c00d28284cfafc0553e9' }, hAsync("a", { key: '031b7d1aad9f6c27a2898c57cab0b2909d5acc78', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
3725
3833
  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))))))))
3726
- ]))), hAsync("div", { key: '4430d39b9b8943d9336020d5ed04cdb80a3b91af', class: "website-footer__footer" }, hAsync("div", { key: '437f0b8894b63c3857f8871eaaaf3d28277738ad', class: "viewport-margins" }, hAsync("ul", { key: '8c4ac37a89006d543a66c8c1ba6bc9d7acc0d6db', class: "website-footer__links website-footer__links--footer" }, hAsync("li", { key: 'ac1db31f3c5331a26c0aee171974c10f22d5da08' }, hAsync("a", { key: 'ad8a6251cca9b0c904ccecff96a8800b22ed5568', href: "https://www.upenn.edu/" }, "UPenn")), hAsync("li", { key: '1189f7119ec768d34ea9435f9ff85df2764abe61' }, hAsync("a", { key: 'eb53d4f15fe49d32899d435670a34369a4e7e190', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), hAsync("li", { key: 'd2a155f7f91a31cca41df9d0c9d37f151bded247' }, hAsync("a", { key: '8e329a895a25bd139867063dd7eed9c0aa7c0060', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), hAsync("li", { key: '0b65f3da18b54b91158515d7966e010e4e0d64ac' }, hAsync("a", { key: 'f8615c438f94216372fdb8afa26ae7150bbef816', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), hAsync("li", { key: 'cbf5febfb926a1b569e73d4a57e7ca8315f6d876' }, hAsync("a", { key: '1116c792623c0fa819ce0189e105ee54c69ba73e', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), hAsync("li", { key: '385a84f264b263a9738d38d66ac917e3a6055db4' }, hAsync("a", { key: 'dcd8517fb32ae46b983cb4802adb86e33e29bd71', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement")))))), this.showBuiltWith && (hAsync("div", { key: 'd3bca43144b06b50091b54dee5c8734de4f80d60', class: "viewport-margins" }, hAsync("p", { key: 'a3d974ea56f521406bffc2a8eaf6b6e6c57bb595', class: "built-with" }, "Built with the ", hAsync("a", { key: '7aa9fc3901510e0ad7d2b0ca4abf4f8c6f92d735', href: "https://designsystem.library.upenn.edu/" }, "Penn Libraries Design System"), ".")))));
3834
+ ]))), hAsync("div", { key: '5ac97b0c44a303ceeb84c88a5da2c7a5417afa55', class: "website-footer__footer" }, hAsync("div", { key: '281481bf6d25945607e1431f634a9f6649b72300', class: "viewport-margins" }, hAsync("ul", { key: '8e4626896cd9dd360eebe55df9f8eb98d485045e', class: "website-footer__links website-footer__links--footer" }, hAsync("li", { key: '021025b20149e8f53e17cf4df1f76a2d9045a52c' }, hAsync("a", { key: '95bd80578f001c06f273800ee9b26c2069c8822c', href: "https://www.upenn.edu/" }, "UPenn")), hAsync("li", { key: 'be940d241e15c85f07ec8f229e4683ccbaf077e4' }, hAsync("a", { key: '1e8db44efbe98e135495240a42e6e74a3829c665', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), hAsync("li", { key: '14a7fb2dfdc4fe417fc66ae05b0e30db13739913' }, hAsync("a", { key: '1e572fd1b6c7c48225a65ef58c1f4cdb2f67afd6', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), hAsync("li", { key: '1aeecdc1384586c45ea1500e2a908a0bde97668e' }, hAsync("a", { key: '9e94479dd864300421900e0e9fe4fbb3251d7524', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), hAsync("li", { key: 'a9d5ce618f8ed4ff4e8360dc11568b067f66101c' }, hAsync("a", { key: '384f77c47f7d28b99fe9fbbf707948a180d973f1', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), hAsync("li", { key: 'a203f0efeea4cfd5275cdee380c12bb9d7e04a38' }, hAsync("a", { key: 'a51d4b482d562aca31ff9b97703950562604ad48', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement")))))), this.showBuiltWith && (hAsync("div", { key: '43f89da940afef08331d12e2991fa24220afce99', class: "viewport-margins" }, hAsync("p", { key: '25863d379ecb9e7f46186858974a71e150188015', class: "built-with" }, "Built with the ", hAsync("a", { key: '427150399d8b81e090315c01446452f2142bab63', href: "https://designsystem.library.upenn.edu/" }, "Penn Libraries Design System"), ".")))));
3727
3835
  }
3728
3836
  static get assetsDirs() { return ["assets"]; }
3729
3837
  get hostElement() { return getElement(this); }
@@ -3812,7 +3920,7 @@ class Header {
3812
3920
  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" })));
3813
3921
  }
3814
3922
  render() {
3815
- return (hAsync("header", { key: '6d14c72db0c06f38d66927f3f3102b7db82c1317', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, hAsync("div", { key: 'f7411c48f1f5ba8d267eb53cba7adb3d41c74aec', class: "website-header__inner-container" }, hAsync("div", { key: '78be403367c64beaf5b4cdceac458efc0007980e', class: "website-header__logo-name-container" }, hAsync("a", { key: '8b3e0da246ea69744b83debb0b5e23e271a64520', 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: '1e1208fd657497dac0f3bb8a09d6b8e8507d2d04', href: "/", class: "website-header__service-link" }, hAsync("span", { key: '33a0c53e36a064a999025eeeae5d3bab9bca11bc', class: "website-header__service-name" }, this.serviceName), this.serviceLede && hAsync("span", { key: '809ca2fdb42dbc35a80474a0e06a39bbba5fb675', class: "website-header__service-lede" }, this.serviceLede))), hAsync("slot", { key: '91cfd1e15bd1e7de19a418d0bc05095fd634870b', name: "name-end" })), this.navigation.length > 0 && (hAsync("nav", { key: 'ce1c1d9fb21fa12b81fb17f9204885c27f86e380', class: "website-header__navigation" }, hAsync("button", { key: 'bdefe1220e526611c7ff9ef9f46be67028077263', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (hAsync("ol", { key: '0af8e80d1ba55d267037e28d18caa03714600b22', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => hAsync("li", { innerHTML: element.outerHTML })))))), hAsync("slot", { key: '605d0e5b7caba6cdebf98ace0d708453ab0c4b0f', name: "end" }))));
3923
+ return (hAsync("header", { key: '5b9d608f76d32ea50d377d251c2c2153a53b1875', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, hAsync("div", { key: 'b15e4a006b6a29f671df20e8bb65d2e9e71c25f3', class: "website-header__inner-container" }, hAsync("div", { key: '5c3e13c63b317a44dee3b07c2dbcbdc4e33fb40a', class: "website-header__logo-name-container" }, hAsync("a", { key: 'aa2d4a9b55fe73eac1b433da51db7e70c2a9100d', 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: 'bff559907d2e26bb2e9f055645a68d7b35558ef5', href: "/", class: "website-header__service-link" }, hAsync("span", { key: '30376d9a13d24c78dd10f11c74acc017bb7ef9ee', class: "website-header__service-name" }, this.serviceName), this.serviceLede && hAsync("span", { key: '6bb01b158d0205a4d534b186379c0e00cb1cb076', class: "website-header__service-lede" }, this.serviceLede))), hAsync("slot", { key: 'bff814b020b3a7c4eee900c19a871e47bebbfac7', name: "name-end" })), this.navigation.length > 0 && (hAsync("nav", { key: 'f1949adb87868902885d65a65504f4ee4eb9c799', class: "website-header__navigation" }, hAsync("button", { key: '7cd866c7dfb52caa705a74c8af5bba443c55257e', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (hAsync("ol", { key: '84270b993db01e2c46ce8a94be6c61a95c59f40a', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => hAsync("li", { innerHTML: element.outerHTML })))))), hAsync("slot", { key: 'ff3234593474b8f5a63836a6f519d85a5fe73ba2', name: "end" }))));
3816
3924
  }
3817
3925
  static get assetsDirs() { return ["assets"]; }
3818
3926
  get hostElement() { return getElement(this); }
@@ -3834,7 +3942,7 @@ class Header {
3834
3942
  }; }
3835
3943
  }
3836
3944
 
3837
- 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-margins-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;font-size:var(--pl-font-size-5xl);font-weight:400;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:var(--pl-font-size-4xl)}}.hero__sub-heading{font-size:1.25em;font-family:var(--pl-font-family);font-weight:400;color:var(--pl-hero-color);max-width:52ch;text-wrap:pretty;margin-top:var(--pl-space-s);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:2.75em}.hero__sub-heading{font-size:1em}}";
3945
+ 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-margins-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;container-type:inline-size}.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;font-size:var(--pl-font-size-5xl);font-size:clamp(var(--pl-font-size-4xl), 3cqi + 1rem, var(--pl-font-size-5xl));font-weight:400;font-family:var(--pl-hero-heading-font);text-wrap:pretty;max-width:30ch;margin:0;color:var(--pl-hero-color)}.hero__sub-heading{font-size:1.25em;font-family:var(--pl-font-family);font-weight:400;color:var(--pl-hero-color);max-width:52ch;text-wrap:pretty;margin-top:var(--pl-space-s);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__sub-heading{font-size:1em}}";
3838
3946
 
3839
3947
  const getCurrentImageSource = (pictureElement) => {
3840
3948
  const imgElement = pictureElement.querySelector('img');
@@ -3889,7 +3997,7 @@ class Hero {
3889
3997
  }
3890
3998
  }
3891
3999
  render() {
3892
- return (hAsync("div", { key: 'd05bbd0346ad50b3e0f3264b8263bcf54534adb5', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, hAsync("div", { key: 'd1016edd7705c437ee065e5bb355840bd9907bcb', class: "hero__content" }, hAsync("slot", { key: '89d03122b810c823516912236b899a0b77d62af7', name: "start" }), hAsync("div", { key: '723cc18e93c02990028d7f7f19afc8b861afa0f2', class: "hero__heading-container" }, this.heroHeadingElement && (hAsync("div", { key: 'bc634a22c4de25b7780b8d46bb1bf91cb50000be', class: "viewport-margins" }, hAsync("h1", { key: '307269e0a116a254b2dc94009fdbf5679a0e169d', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && hAsync("p", { key: '3258869e6449257d517312cedc4b7749deaaaf0f', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
4000
+ return (hAsync("div", { key: '4234b8c7129b9ad562e979a62124bb8b059f4906', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, hAsync("div", { key: '48e60ea4da5432ca67ad355d79043fdefc9f916f', class: "hero__content" }, hAsync("slot", { key: 'f08f58488b758cb0a5fe88d8c05b37fda2332ca4', name: "start" }), hAsync("div", { key: '17a6b7a12512779048dcfa5ef68f58be34743541', class: "hero__heading-container" }, this.heroHeadingElement && (hAsync("div", { key: 'e059b09f3797425587c268e714e605f8abdd20d7', class: "viewport-margins" }, hAsync("h1", { key: '152d036ee2d7838c6faa072c0ea795c31ea7b120', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && hAsync("p", { key: 'e942105a04ab4e75a502dbd19d5f465efb2acb18', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
3893
4001
  }
3894
4002
  static get assetsDirs() { return ["assets"]; }
3895
4003
  get hostElement() { return getElement(this); }
@@ -4192,7 +4300,7 @@ class NoImage {
4192
4300
  }
4193
4301
  render() {
4194
4302
  const shieldImg = getAssetPath('./assets/simplified-shield.webp');
4195
- return (hAsync("img", { key: 'ba6cc227e90aac2e22b9997ad5c794fd4fd6d5ef', src: shieldImg, alt: "", class: "no-image__img" }));
4303
+ return (hAsync("img", { key: 'fcb8177bb7decae1ffc943b5bc6ddeeabc148cd2', src: shieldImg, alt: "", class: "no-image__img" }));
4196
4304
  }
4197
4305
  static get assetsDirs() { return ["assets"]; }
4198
4306
  static get style() { return pennlibsFallbackImgCss; }
@@ -4296,7 +4404,7 @@ class PennlibsFeedback {
4296
4404
  }, 600);
4297
4405
  }
4298
4406
  render() {
4299
- return (hAsync("div", { key: '12bdec6f975166a4c5d451fc1834f70fbce3b424', class: "feedback__container" }, hAsync("div", { key: '4c607ceef5f10760d540d2549a2b186a871714c7', class: "viewport-margins" }, hAsync("div", { key: 'a967498163e05ce60a12bf230d303caa31373c8d', class: "feedback__content" }, !this.hideQuestion && (this.answer === 'yes' ? (hAsync("p", null, "Thank you for letting us know.")) : this.answer === 'no' ? (hAsync("p", null, "We'd like to help. ", hAsync("a", { href: "https://www.library.upenn.edu/contact-us" }, "Contact us"), " and let us know what you're looking for.")) : (hAsync("form", { class: "feedback__inline-question", onSubmit: (e) => this.handleSubmit(e) }, hAsync("h2", null, "Did you find what you need?"), hAsync("button", { type: "submit", name: "answer", value: "yes", class: { 'selected': this.selected === 'yes' }, disabled: !!this.selected }, hAsync("span", null, "Yes"), hAsync("span", { class: "visually-hidden" }, ", I found what I needed.")), hAsync("button", { type: "submit", name: "answer", value: "no", class: { 'selected': this.selected === 'no' }, disabled: !!this.selected }, hAsync("span", null, "No"), hAsync("span", { class: "visually-hidden" }, ", I did not find what I needed."))))), hAsync("div", { key: 'f918da2833ae0c64e67a9e95551edaeb78e2ba05', class: "feedback__share-feedback" }, hAsync("p", { key: '12928af116ffadf669cbc694160ee6ca3458528b' }, "To help us improve, ", hAsync("a", { key: '7281b7423677b104fb622a7fdcf8e768517ea84e', href: `https://upenn.co1.qualtrics.com/jfe/form/SV_3xVrP7EKWS92zfE?reporting_from_url=${encodeURIComponent(window.location.href)}` }, "share your feedback"), "."))))));
4407
+ return (hAsync("div", { key: '718c9b67ab9bfec7c946489ca3fa3e607a143889', class: "feedback__container" }, hAsync("div", { key: 'f1d7fb08215224e80ec85ab381a20d017480bc4c', class: "viewport-margins" }, hAsync("div", { key: 'a80b211eb18b1144704eb9dcb7e605328acde70c', class: "feedback__content" }, !this.hideQuestion && (this.answer === 'yes' ? (hAsync("p", null, "Thank you for letting us know.")) : this.answer === 'no' ? (hAsync("p", null, "We'd like to help. ", hAsync("a", { href: "https://www.library.upenn.edu/contact-us" }, "Contact us"), " and let us know what you're looking for.")) : (hAsync("form", { class: "feedback__inline-question", onSubmit: (e) => this.handleSubmit(e) }, hAsync("h2", null, "Did you find what you need?"), hAsync("button", { type: "submit", name: "answer", value: "yes", class: { 'selected': this.selected === 'yes' }, disabled: !!this.selected }, hAsync("span", null, "Yes"), hAsync("span", { class: "visually-hidden" }, ", I found what I needed.")), hAsync("button", { type: "submit", name: "answer", value: "no", class: { 'selected': this.selected === 'no' }, disabled: !!this.selected }, hAsync("span", null, "No"), hAsync("span", { class: "visually-hidden" }, ", I did not find what I needed."))))), hAsync("div", { key: 'e441824f32084a83a0e22c0f282ca73f8295464e', class: "feedback__share-feedback" }, hAsync("p", { key: '7df4f4d3b6f6a2b893be59fbe7517aa8f63eb690' }, "To help us improve, ", hAsync("a", { key: '6defbfffc7839fb2038716844998eeb897ed71b0', href: `https://upenn.co1.qualtrics.com/jfe/form/SV_3xVrP7EKWS92zfE?reporting_from_url=${encodeURIComponent(window.location.href)}` }, "share your feedback"), "."))))));
4300
4408
  }
4301
4409
  static get style() { return pennlibsFeedbackCss; }
4302
4410
  static get cmpMeta() { return {
@@ -4317,6 +4425,7 @@ registerComponents([
4317
4425
  Autocomplete,
4318
4426
  Banner,
4319
4427
  Chat,
4428
+ ExpandText,
4320
4429
  Footer,
4321
4430
  Header,
4322
4431
  Hero,
package/hydrate/index.mjs CHANGED
@@ -1533,6 +1533,9 @@ var parsePropertyValue = (propValue, propType, isFormAssociated) => {
1533
1533
  return propValue === "false" ? false : propValue === "" || !!propValue;
1534
1534
  }
1535
1535
  }
1536
+ if (propType & 2 /* Number */) {
1537
+ return typeof propValue === "string" ? parseFloat(propValue) : typeof propValue === "number" ? propValue : NaN;
1538
+ }
1536
1539
  if (propType & 1 /* String */) {
1537
1540
  return String(propValue);
1538
1541
  }
@@ -1603,7 +1606,11 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
1603
1606
  }
1604
1607
  }
1605
1608
  }
1606
- } else if (memberName === "key") ; else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
1609
+ } else if (memberName === "key") ; else if (memberName === "ref") {
1610
+ if (newValue) {
1611
+ newValue(elm);
1612
+ }
1613
+ } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
1607
1614
  if (memberName[2] === "-") {
1608
1615
  memberName = memberName.slice(3);
1609
1616
  } else if (isMemberInElement(win, ln)) {
@@ -1846,6 +1853,7 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
1846
1853
  const vnode = vnodes[index];
1847
1854
  if (vnode) {
1848
1855
  const elm = vnode.$elm$;
1856
+ nullifyVNodeRefs(vnode);
1849
1857
  if (elm) {
1850
1858
  {
1851
1859
  checkSlotFallbackVisibility = true;
@@ -2058,6 +2066,12 @@ var markSlotContentForRelocation = (elm) => {
2058
2066
  }
2059
2067
  }
2060
2068
  };
2069
+ var nullifyVNodeRefs = (vNode) => {
2070
+ {
2071
+ vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
2072
+ vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
2073
+ }
2074
+ };
2061
2075
  var insertBefore = (parent, newNode, reference) => {
2062
2076
  {
2063
2077
  return parent == null ? void 0 : parent.insertBefore(newNode, reference);
@@ -3658,7 +3672,101 @@ class Chat {
3658
3672
  }; }
3659
3673
  }
3660
3674
 
3661
- const pennlibsFooterCss = ":host {\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n --padding-bottom: 3em;\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-margins-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.built-with,\n.built-with a {\n color: var(--pl-color-fg-subtle-on-emphasis);\n}\n\n.built-with a {\n font-weight: 500;\n text-underline-offset: var(--pl-link-text-underline-offset);\n\n &:hover {\n text-decoration-thickness: var(--pl-link-hover-text-decoration-thickness);\n }\n}\n\n.built-with {\n opacity: 0.875;\n margin: 0; \n padding: 1.5em 0;\n font-size: 0.875em;\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.75em;\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}";
3675
+ const pennlibsExpandTextCss = ":host{display:inline-block;position:relative;max-width:100%;vertical-align:bottom}.expand-text{display:block}.expand-text--clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--pl-expand-text-lines, 3);line-clamp:var(--pl-expand-text-lines, 3);overflow:hidden}.expand-text--expanded{display:inline}.expand-text__fade{position:absolute;right:0;bottom:0;padding-left:2em;background:linear-gradient(\n to right,\n transparent,\n var(--pl-expand-text-bg, var(--pl-color-bg-default)) 1.5em\n );pointer-events:none}.expand-text__toggle{display:inline-block;vertical-align:baseline;pointer-events:auto;padding:var(--pl-space-3xs) var(--pl-space-s);border:none;background:var(--pl-color-bg-subtle);color:var(--pl-color-fg-default);font-family:var(--pl-font-family);border-radius:var(--pl-border-radius-subtle);font-size:var(--pl-font-size-xs);font-weight:500;line-height:1.5;letter-spacing:0.075rem;text-transform:uppercase;cursor:pointer}.expand-text__toggle:hover{text-decoration:underline;text-decoration-thickness:var(--pl-link-text-decoration-thickness);text-underline-offset:var(--pl-link-text-underline-offset)}.expand-text__toggle:focus-visible{outline:none;box-shadow:var(--pl-focus-box-shadow)}.expand-text__fade--inline{position:static;padding-left:0;background:none;margin-inline-start:var(--pl-space-2xs, 0.25rem)}";
3676
+
3677
+ /**
3678
+ * Clamp long text to a set number of lines with an inline "More" / "Less"
3679
+ * toggle. Useful for headings, descriptions, or any prose block that can
3680
+ * run long in narrow containers.
3681
+ *
3682
+ * @slot - The content to truncate. Accepts any flow content.
3683
+ */
3684
+ class ExpandText {
3685
+ constructor(hostRef) {
3686
+ registerInstance(this, hostRef);
3687
+ /**
3688
+ * Maximum number of lines to show before truncating.
3689
+ * @prop lines
3690
+ */
3691
+ this.lines = 3;
3692
+ /**
3693
+ * Label for the toggle when content is collapsed.
3694
+ * @prop expand-label
3695
+ */
3696
+ this.expandLabel = 'More';
3697
+ /**
3698
+ * Label for the toggle when content is expanded.
3699
+ * @prop collapse-label
3700
+ */
3701
+ this.collapseLabel = 'Less';
3702
+ this.expanded = false;
3703
+ this.hasOverflow = false;
3704
+ this.measured = false;
3705
+ this.checkOverflow = () => {
3706
+ if (!this.contentEl || this.expanded)
3707
+ return;
3708
+ const lineHeight = parseFloat(getComputedStyle(this.contentEl).lineHeight);
3709
+ if (Number.isFinite(lineHeight) && this.lines > 0) {
3710
+ // Require at least two full extra lines of hidden content before the
3711
+ // toggle is worth showing. A near-flush overflow (a few extra words)
3712
+ // makes the toggle look like it reveals nothing meaningful.
3713
+ this.hasOverflow = this.contentEl.scrollHeight > lineHeight * (this.lines + 2);
3714
+ }
3715
+ else {
3716
+ this.hasOverflow = this.contentEl.scrollHeight > this.contentEl.clientHeight + 1;
3717
+ }
3718
+ this.measured = true;
3719
+ };
3720
+ this.toggle = () => {
3721
+ this.expanded = !this.expanded;
3722
+ };
3723
+ }
3724
+ componentDidLoad() {
3725
+ var _a;
3726
+ if (!this.contentEl)
3727
+ return;
3728
+ // Observe the host (always inline-block) rather than the content span,
3729
+ // which becomes inline when unclamped and stops firing resize events.
3730
+ this.resizeObserver = new ResizeObserver(() => this.checkOverflow());
3731
+ this.resizeObserver.observe(this.el);
3732
+ this.checkOverflow();
3733
+ (_a = document.fonts) === null || _a === void 0 ? void 0 : _a.ready.then(() => this.checkOverflow());
3734
+ }
3735
+ disconnectedCallback() {
3736
+ var _a;
3737
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
3738
+ }
3739
+ render() {
3740
+ const isClamped = !this.expanded && (!this.measured || this.hasOverflow);
3741
+ return (hAsync(Host, { key: '9c1a5be21f67022923982179319c9b0920a3ee00', style: { '--pl-expand-text-lines': String(this.lines) } }, hAsync("span", { key: '54b5721c9df1a81b08e3823b93029f72a8e66852', class: {
3742
+ 'expand-text': true,
3743
+ 'expand-text--clamped': isClamped,
3744
+ 'expand-text--expanded': this.expanded,
3745
+ }, ref: (el) => (this.contentEl = el) }, hAsync("slot", { key: 'f4df852b0d1513741e07825551428807f8cb27c3' })), this.hasOverflow && (hAsync("span", { key: '79104493f870c13070468612a7269072c9607779', class: {
3746
+ 'expand-text__fade': true,
3747
+ 'expand-text__fade--inline': this.expanded,
3748
+ } }, hAsync("button", { key: 'f723f0265093c78b45b4f3cb6d2fce2549361cdd', type: "button", class: "expand-text__toggle", "aria-expanded": String(this.expanded), onClick: this.toggle }, this.expanded ? this.collapseLabel : this.expandLabel)))));
3749
+ }
3750
+ get el() { return getElement(this); }
3751
+ static get style() { return pennlibsExpandTextCss; }
3752
+ static get cmpMeta() { return {
3753
+ "$flags$": 265,
3754
+ "$tagName$": "pennlibs-expand-text",
3755
+ "$members$": {
3756
+ "lines": [2],
3757
+ "expandLabel": [1, "expand-label"],
3758
+ "collapseLabel": [1, "collapse-label"],
3759
+ "expanded": [32],
3760
+ "hasOverflow": [32],
3761
+ "measured": [32]
3762
+ },
3763
+ "$listeners$": undefined,
3764
+ "$lazyBundleId$": "-",
3765
+ "$attrsToReflect$": []
3766
+ }; }
3767
+ }
3768
+
3769
+ const pennlibsFooterCss = ":host {\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n --padding-bottom: 3em;\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-margins-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.built-with,\n.built-with a {\n color: var(--pl-color-fg-subtle-on-emphasis);\n}\n\n.built-with a {\n font-weight: 500;\n text-underline-offset: var(--pl-link-text-underline-offset);\n\n &:hover {\n text-decoration-thickness: var(--pl-link-hover-text-decoration-thickness);\n }\n}\n\n.built-with {\n opacity: 0.875;\n margin: 0; \n padding: 1.5em 0;\n font-size: 0.875em;\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.75em;\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.75;\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}";
3662
3770
 
3663
3771
  /**
3664
3772
  * A footer component for Penn Libraries websites that displays contact information,
@@ -3716,12 +3824,12 @@ class Footer {
3716
3824
  }
3717
3825
  render() {
3718
3826
  const footerBackgroundSrc = getAssetPath('./assets/footer-bg.webp');
3719
- return (hAsync("footer", { key: '39b1bc7336fe2aa28e8c6093d13b8dfb3dd70d3e', class: "website-footer-wrapper" }, hAsync("div", { key: '7902cf7cde3a468dec8ea71c2a139addafa5af79', class: "website-footer", style: {
3827
+ return (hAsync("footer", { key: '15d1f4477bd137e281fcbf6c1e3b70bf55a8a2e0', class: "website-footer-wrapper" }, hAsync("div", { key: '04954e3b1095b6d510e1bae4e5a453f6ff5cb0ce', class: "website-footer", style: {
3720
3828
  background: `var(--pl-color-penn-blue) url(${footerBackgroundSrc}) no-repeat 50% 50%`,
3721
3829
  backgroundSize: 'cover',
3722
- } }, hAsync("div", { key: '804f9cd3f101997ee2d15d4a4749945ef553a118', class: "viewport-margins" }, hAsync("div", { key: '3a09637400e74e729641666eb8142c0cf77d66b3', class: "website-footer__content" }, hAsync("div", { key: 'cdb9270db298aa7781859a80c799949cb4c35787', class: "website-footer__links-container" }, hAsync("section", { key: '20d953d2b85178798d2298aa8aaa9fb8e47d7af4' }, hAsync("h2", { key: '79b1fe7f4fc2dff03134c7d4e96e9fd657131fc8', class: "website-footer__heading" }, "Penn Libraries"), hAsync("ul", { key: 'ba8002b17457f979f9817c45a89f332064f0b5bb', class: "website-footer__links" }, hAsync("li", { key: 'cb65fc4ad6432ef447a4b98a8dfdc0323bf37ccc' }, hAsync("a", { key: '0b61506da9a1c18919f77410fa39d3937f7485df', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", hAsync("br", { key: 'ebd3def13a3107d1b301c0932d421b054e2bb338' }), "Philadelphia, PA 19104-6206")), hAsync("li", { key: '3f26ebab3b90a33ba2d17cd3cfd8a485f1c7e74f' }, hAsync("a", { key: 'c2dcf7a3d936eb5376b2568e677bb8a7dc7ab445', href: "tel:(215) 898-7566" }, "(215) 898-7566")), hAsync("li", { key: '8c9374110f2d386c7275fad9522ea2565daf6c06' }, hAsync("a", { key: 'd40a2fd7490f1b233e4839e38faf29d9bb04f519', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), hAsync("li", { key: 'ab3016b1cfcc8827af060ec383d8556e8346713a' }, hAsync("a", { key: '76a8d246128fb76606c1cdf24640198c23c9d317', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), hAsync("section", { key: 'fd0abacbc35ffaafbb2016064c7a6194616ee2dc' }, hAsync("h2", { key: 'a812d7d26e21a1808ce6bd115ec620e1b033a8bf', class: "website-footer__heading" }, "Stay in touch"), hAsync("ul", { key: 'fe158ff1336379e1236a88c4a3d0f5e1efd9cdb8', class: "website-footer__links" }, hAsync("li", { key: '32396df360b39190ff587400fabe405ee319a507' }, hAsync("a", { key: '07ac56362dde7a2807e86c2a22564689ed9de90c', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), hAsync("li", { key: '95abd2bf0f6a79c0597c1e57e878f986002adde2' }, hAsync("a", { key: '374044fae62fd82c9369cfba8b7c6223ded48d5a', href: "https://www.instagram.com/upennlib/" }, "Instagram")), hAsync("li", { key: '86cc74d4ec21dfb51a072cfad87ed395e961f26f' }, hAsync("a", { key: 'fda9e8c73918252b91e40dc23d289613a3fe5802', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), hAsync("li", { key: 'b1ce60d7aa5ac8a2aa8bd4f826c11cc753b1488c' }, hAsync("a", { key: 'ccfef8131fc7f9edd44936f1c212d31c08c61682', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
3830
+ } }, hAsync("div", { key: 'ba8ce4e14e0e9364863fac7a2839397e2e0b941a', class: "viewport-margins" }, hAsync("div", { key: '63f34d4f96b284e724135ed8987cc2d3d2e3fbd1', class: "website-footer__content" }, hAsync("div", { key: 'a1edf943618100610c6624d35193fc9f0f5968b3', class: "website-footer__links-container" }, hAsync("section", { key: 'c7f7f781d1c6b239d520a8dc725381aec6281b8a' }, hAsync("h2", { key: 'dc87452564eb1c1c1e75105ec8195917f7eb97a2', class: "website-footer__heading" }, "Penn Libraries"), hAsync("ul", { key: '8510d8d758daee5d1c08bdbebf2fd741f6bc3b29', class: "website-footer__links" }, hAsync("li", { key: '5975b1488a02111e692fd80e86db0f72baa4d9d3' }, hAsync("a", { key: '2715c1c9c7a0f2ad1d677906eb5a34ab4c04007c', href: "https://maps.google.com/?q=Van Pelt Library 3420 Walnut Street, Philadelphia, PA 19104-6206" }, "3420 Walnut Street", hAsync("br", { key: '4d380fd2e056d972944a3866ebc52e25689cd44c' }), "Philadelphia, PA 19104-6206")), hAsync("li", { key: '3d52db897689c923b85c67159f8c53ca346e98c2' }, hAsync("a", { key: '1010c1d279e1cb11c7a853f0997b5d8aabd33bdc', href: "tel:(215) 898-7566" }, "(215) 898-7566")), hAsync("li", { key: 'f1d61d6e01c5e2a1fced55e145f101ccc37fdf29' }, hAsync("a", { key: 'f1dc654a1af81a5847aef7c9fc21e025eb8dfced', href: "https://www.library.upenn.edu/contact-us" }, "Contact us")), hAsync("li", { key: '1c96e99267b30a59b65f4e3d726ef948be202d2d' }, hAsync("a", { key: '02c308d0c96d6148ca093e5e0882d5d22aa9c1db', href: "https://www.library.upenn.edu/about/hours", target: "_blank" }, "Locations and hours")))), hAsync("section", { key: '639a1f5a03b1f646b8a519fa4749980512524f33' }, hAsync("h2", { key: 'e8047c4763458e63d20c4dddd6a35dd6f144c016', class: "website-footer__heading" }, "Stay in touch"), hAsync("ul", { key: 'd496f8fbea5a6c8a9d705c90588b6f750f4a8609', class: "website-footer__links" }, hAsync("li", { key: '57d3280c71d8dcf57db397641c9418910cd4cb84' }, hAsync("a", { key: 'c3203a8e36919031b5a14958765ad05c5e590e50', href: "https://www.alumni.upenn.edu/libsignup" }, "Newsletter")), hAsync("li", { key: '0025893e79dc5fde2a86c8305ff57bd7a4bd5962' }, hAsync("a", { key: '4f20f07275a082c43e3dfdbf23b42487d0cc94da', href: "https://www.instagram.com/upennlib/" }, "Instagram")), hAsync("li", { key: '7d6e64d3f6d921e7967b9eea4f307cba5a3c326d' }, hAsync("a", { key: 'b145fc5809b8f2a8225351bd69296da5f803756d', href: "https://www.facebook.com/PennLibraries/" }, "Facebook")), hAsync("li", { key: '471174a0eede78d94704c00d28284cfafc0553e9' }, hAsync("a", { key: '031b7d1aad9f6c27a2898c57cab0b2909d5acc78', href: "https://www.linkedin.com/company/penn-libraries" }, "LinkedIn")))), this.navigationByChildren && [
3723
3831
  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))))))))
3724
- ]))), hAsync("div", { key: '4430d39b9b8943d9336020d5ed04cdb80a3b91af', class: "website-footer__footer" }, hAsync("div", { key: '437f0b8894b63c3857f8871eaaaf3d28277738ad', class: "viewport-margins" }, hAsync("ul", { key: '8c4ac37a89006d543a66c8c1ba6bc9d7acc0d6db', class: "website-footer__links website-footer__links--footer" }, hAsync("li", { key: 'ac1db31f3c5331a26c0aee171974c10f22d5da08' }, hAsync("a", { key: 'ad8a6251cca9b0c904ccecff96a8800b22ed5568', href: "https://www.upenn.edu/" }, "UPenn")), hAsync("li", { key: '1189f7119ec768d34ea9435f9ff85df2764abe61' }, hAsync("a", { key: 'eb53d4f15fe49d32899d435670a34369a4e7e190', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), hAsync("li", { key: 'd2a155f7f91a31cca41df9d0c9d37f151bded247' }, hAsync("a", { key: '8e329a895a25bd139867063dd7eed9c0aa7c0060', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), hAsync("li", { key: '0b65f3da18b54b91158515d7966e010e4e0d64ac' }, hAsync("a", { key: 'f8615c438f94216372fdb8afa26ae7150bbef816', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), hAsync("li", { key: 'cbf5febfb926a1b569e73d4a57e7ca8315f6d876' }, hAsync("a", { key: '1116c792623c0fa819ce0189e105ee54c69ba73e', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), hAsync("li", { key: '385a84f264b263a9738d38d66ac917e3a6055db4' }, hAsync("a", { key: 'dcd8517fb32ae46b983cb4802adb86e33e29bd71', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement")))))), this.showBuiltWith && (hAsync("div", { key: 'd3bca43144b06b50091b54dee5c8734de4f80d60', class: "viewport-margins" }, hAsync("p", { key: 'a3d974ea56f521406bffc2a8eaf6b6e6c57bb595', class: "built-with" }, "Built with the ", hAsync("a", { key: '7aa9fc3901510e0ad7d2b0ca4abf4f8c6f92d735', href: "https://designsystem.library.upenn.edu/" }, "Penn Libraries Design System"), ".")))));
3832
+ ]))), hAsync("div", { key: '5ac97b0c44a303ceeb84c88a5da2c7a5417afa55', class: "website-footer__footer" }, hAsync("div", { key: '281481bf6d25945607e1431f634a9f6649b72300', class: "viewport-margins" }, hAsync("ul", { key: '8e4626896cd9dd360eebe55df9f8eb98d485045e', class: "website-footer__links website-footer__links--footer" }, hAsync("li", { key: '021025b20149e8f53e17cf4df1f76a2d9045a52c' }, hAsync("a", { key: '95bd80578f001c06f273800ee9b26c2069c8822c', href: "https://www.upenn.edu/" }, "UPenn")), hAsync("li", { key: 'be940d241e15c85f07ec8f229e4683ccbaf077e4' }, hAsync("a", { key: '1e8db44efbe98e135495240a42e6e74a3829c665', href: "https://www.upenn.edu/about/privacy-policy" }, "Privacy Policy")), hAsync("li", { key: '14a7fb2dfdc4fe417fc66ae05b0e30db13739913' }, hAsync("a", { key: '1e572fd1b6c7c48225a65ef58c1f4cdb2f67afd6', href: "https://accessibility.web-resources.upenn.edu/get-help" }, "Report Accessibility Issues and Get Help")), hAsync("li", { key: '1aeecdc1384586c45ea1500e2a908a0bde97668e' }, hAsync("a", { key: '9e94479dd864300421900e0e9fe4fbb3251d7524', href: "https://www.upenn.edu/about/disclaimer" }, "Disclaimer")), hAsync("li", { key: 'a9d5ce618f8ed4ff4e8360dc11568b067f66101c' }, hAsync("a", { key: '384f77c47f7d28b99fe9fbbf707948a180d973f1', href: "https://www.publicsafety.upenn.edu/contact/" }, "Emergency Services")), hAsync("li", { key: 'a203f0efeea4cfd5275cdee380c12bb9d7e04a38' }, hAsync("a", { key: 'a51d4b482d562aca31ff9b97703950562604ad48', href: "https://www.upenn.edu/about/report-copyright-infringement" }, "Report Copyright Infringement")))))), this.showBuiltWith && (hAsync("div", { key: '43f89da940afef08331d12e2991fa24220afce99', class: "viewport-margins" }, hAsync("p", { key: '25863d379ecb9e7f46186858974a71e150188015', class: "built-with" }, "Built with the ", hAsync("a", { key: '427150399d8b81e090315c01446452f2142bab63', href: "https://designsystem.library.upenn.edu/" }, "Penn Libraries Design System"), ".")))));
3725
3833
  }
3726
3834
  static get assetsDirs() { return ["assets"]; }
3727
3835
  get hostElement() { return getElement(this); }
@@ -3810,7 +3918,7 @@ class Header {
3810
3918
  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" })));
3811
3919
  }
3812
3920
  render() {
3813
- return (hAsync("header", { key: '6d14c72db0c06f38d66927f3f3102b7db82c1317', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, hAsync("div", { key: 'f7411c48f1f5ba8d267eb53cba7adb3d41c74aec', class: "website-header__inner-container" }, hAsync("div", { key: '78be403367c64beaf5b4cdceac458efc0007980e', class: "website-header__logo-name-container" }, hAsync("a", { key: '8b3e0da246ea69744b83debb0b5e23e271a64520', 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: '1e1208fd657497dac0f3bb8a09d6b8e8507d2d04', href: "/", class: "website-header__service-link" }, hAsync("span", { key: '33a0c53e36a064a999025eeeae5d3bab9bca11bc', class: "website-header__service-name" }, this.serviceName), this.serviceLede && hAsync("span", { key: '809ca2fdb42dbc35a80474a0e06a39bbba5fb675', class: "website-header__service-lede" }, this.serviceLede))), hAsync("slot", { key: '91cfd1e15bd1e7de19a418d0bc05095fd634870b', name: "name-end" })), this.navigation.length > 0 && (hAsync("nav", { key: 'ce1c1d9fb21fa12b81fb17f9204885c27f86e380', class: "website-header__navigation" }, hAsync("button", { key: 'bdefe1220e526611c7ff9ef9f46be67028077263', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (hAsync("ol", { key: '0af8e80d1ba55d267037e28d18caa03714600b22', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => hAsync("li", { innerHTML: element.outerHTML })))))), hAsync("slot", { key: '605d0e5b7caba6cdebf98ace0d708453ab0c4b0f', name: "end" }))));
3921
+ return (hAsync("header", { key: '5b9d608f76d32ea50d377d251c2c2153a53b1875', class: `viewport-margins website-header ${this.theme === 'dark' && 'website-header--dark'}` }, hAsync("div", { key: 'b15e4a006b6a29f671df20e8bb65d2e9e71c25f3', class: "website-header__inner-container" }, hAsync("div", { key: '5c3e13c63b317a44dee3b07c2dbcbdc4e33fb40a', class: "website-header__logo-name-container" }, hAsync("a", { key: 'aa2d4a9b55fe73eac1b433da51db7e70c2a9100d', 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: 'bff559907d2e26bb2e9f055645a68d7b35558ef5', href: "/", class: "website-header__service-link" }, hAsync("span", { key: '30376d9a13d24c78dd10f11c74acc017bb7ef9ee', class: "website-header__service-name" }, this.serviceName), this.serviceLede && hAsync("span", { key: '6bb01b158d0205a4d534b186379c0e00cb1cb076', class: "website-header__service-lede" }, this.serviceLede))), hAsync("slot", { key: 'bff814b020b3a7c4eee900c19a871e47bebbfac7', name: "name-end" })), this.navigation.length > 0 && (hAsync("nav", { key: 'f1949adb87868902885d65a65504f4ee4eb9c799', class: "website-header__navigation" }, hAsync("button", { key: '7cd866c7dfb52caa705a74c8af5bba443c55257e', class: "website-header__navigation-button", "aria-expanded": `${this.isMenuOpen}`, onClick: () => this.handleToggleMenu() }, this.renderMenuIcon(), " Menu"), this.navigation && (hAsync("ol", { key: '84270b993db01e2c46ce8a94be6c61a95c59f40a', class: `website-header__navigation-list ${this.isMenuOpen && 'website-header__navigation-list--visible'}` }, this.navigation.map(element => hAsync("li", { innerHTML: element.outerHTML })))))), hAsync("slot", { key: 'ff3234593474b8f5a63836a6f519d85a5fe73ba2', name: "end" }))));
3814
3922
  }
3815
3923
  static get assetsDirs() { return ["assets"]; }
3816
3924
  get hostElement() { return getElement(this); }
@@ -3832,7 +3940,7 @@ class Header {
3832
3940
  }; }
3833
3941
  }
3834
3942
 
3835
- 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-margins-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;font-size:var(--pl-font-size-5xl);font-weight:400;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:var(--pl-font-size-4xl)}}.hero__sub-heading{font-size:1.25em;font-family:var(--pl-font-family);font-weight:400;color:var(--pl-hero-color);max-width:52ch;text-wrap:pretty;margin-top:var(--pl-space-s);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:2.75em}.hero__sub-heading{font-size:1em}}";
3943
+ 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-margins-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;container-type:inline-size}.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;font-size:var(--pl-font-size-5xl);font-size:clamp(var(--pl-font-size-4xl), 3cqi + 1rem, var(--pl-font-size-5xl));font-weight:400;font-family:var(--pl-hero-heading-font);text-wrap:pretty;max-width:30ch;margin:0;color:var(--pl-hero-color)}.hero__sub-heading{font-size:1.25em;font-family:var(--pl-font-family);font-weight:400;color:var(--pl-hero-color);max-width:52ch;text-wrap:pretty;margin-top:var(--pl-space-s);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__sub-heading{font-size:1em}}";
3836
3944
 
3837
3945
  const getCurrentImageSource = (pictureElement) => {
3838
3946
  const imgElement = pictureElement.querySelector('img');
@@ -3887,7 +3995,7 @@ class Hero {
3887
3995
  }
3888
3996
  }
3889
3997
  render() {
3890
- return (hAsync("div", { key: 'd05bbd0346ad50b3e0f3264b8263bcf54534adb5', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, hAsync("div", { key: 'd1016edd7705c437ee065e5bb355840bd9907bcb', class: "hero__content" }, hAsync("slot", { key: '89d03122b810c823516912236b899a0b77d62af7', name: "start" }), hAsync("div", { key: '723cc18e93c02990028d7f7f19afc8b861afa0f2', class: "hero__heading-container" }, this.heroHeadingElement && (hAsync("div", { key: 'bc634a22c4de25b7780b8d46bb1bf91cb50000be', class: "viewport-margins" }, hAsync("h1", { key: '307269e0a116a254b2dc94009fdbf5679a0e169d', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && hAsync("p", { key: '3258869e6449257d517312cedc4b7749deaaaf0f', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
3998
+ return (hAsync("div", { key: '4234b8c7129b9ad562e979a62124bb8b059f4906', class: "hero", style: { backgroundImage: `url(${this.heroSrc})` } }, hAsync("div", { key: '48e60ea4da5432ca67ad355d79043fdefc9f916f', class: "hero__content" }, hAsync("slot", { key: 'f08f58488b758cb0a5fe88d8c05b37fda2332ca4', name: "start" }), hAsync("div", { key: '17a6b7a12512779048dcfa5ef68f58be34743541', class: "hero__heading-container" }, this.heroHeadingElement && (hAsync("div", { key: 'e059b09f3797425587c268e714e605f8abdd20d7', class: "viewport-margins" }, hAsync("h1", { key: '152d036ee2d7838c6faa072c0ea795c31ea7b120', class: "hero__heading", innerHTML: this.heroHeadingElement.innerText }), this.heroParagraphElement && hAsync("p", { key: 'e942105a04ab4e75a502dbd19d5f465efb2acb18', class: "hero__sub-heading", innerHTML: this.heroParagraphElement.innerHTML })))))));
3891
3999
  }
3892
4000
  static get assetsDirs() { return ["assets"]; }
3893
4001
  get hostElement() { return getElement(this); }
@@ -4190,7 +4298,7 @@ class NoImage {
4190
4298
  }
4191
4299
  render() {
4192
4300
  const shieldImg = getAssetPath('./assets/simplified-shield.webp');
4193
- return (hAsync("img", { key: 'ba6cc227e90aac2e22b9997ad5c794fd4fd6d5ef', src: shieldImg, alt: "", class: "no-image__img" }));
4301
+ return (hAsync("img", { key: 'fcb8177bb7decae1ffc943b5bc6ddeeabc148cd2', src: shieldImg, alt: "", class: "no-image__img" }));
4194
4302
  }
4195
4303
  static get assetsDirs() { return ["assets"]; }
4196
4304
  static get style() { return pennlibsFallbackImgCss; }
@@ -4294,7 +4402,7 @@ class PennlibsFeedback {
4294
4402
  }, 600);
4295
4403
  }
4296
4404
  render() {
4297
- return (hAsync("div", { key: '12bdec6f975166a4c5d451fc1834f70fbce3b424', class: "feedback__container" }, hAsync("div", { key: '4c607ceef5f10760d540d2549a2b186a871714c7', class: "viewport-margins" }, hAsync("div", { key: 'a967498163e05ce60a12bf230d303caa31373c8d', class: "feedback__content" }, !this.hideQuestion && (this.answer === 'yes' ? (hAsync("p", null, "Thank you for letting us know.")) : this.answer === 'no' ? (hAsync("p", null, "We'd like to help. ", hAsync("a", { href: "https://www.library.upenn.edu/contact-us" }, "Contact us"), " and let us know what you're looking for.")) : (hAsync("form", { class: "feedback__inline-question", onSubmit: (e) => this.handleSubmit(e) }, hAsync("h2", null, "Did you find what you need?"), hAsync("button", { type: "submit", name: "answer", value: "yes", class: { 'selected': this.selected === 'yes' }, disabled: !!this.selected }, hAsync("span", null, "Yes"), hAsync("span", { class: "visually-hidden" }, ", I found what I needed.")), hAsync("button", { type: "submit", name: "answer", value: "no", class: { 'selected': this.selected === 'no' }, disabled: !!this.selected }, hAsync("span", null, "No"), hAsync("span", { class: "visually-hidden" }, ", I did not find what I needed."))))), hAsync("div", { key: 'f918da2833ae0c64e67a9e95551edaeb78e2ba05', class: "feedback__share-feedback" }, hAsync("p", { key: '12928af116ffadf669cbc694160ee6ca3458528b' }, "To help us improve, ", hAsync("a", { key: '7281b7423677b104fb622a7fdcf8e768517ea84e', href: `https://upenn.co1.qualtrics.com/jfe/form/SV_3xVrP7EKWS92zfE?reporting_from_url=${encodeURIComponent(window.location.href)}` }, "share your feedback"), "."))))));
4405
+ return (hAsync("div", { key: '718c9b67ab9bfec7c946489ca3fa3e607a143889', class: "feedback__container" }, hAsync("div", { key: 'f1d7fb08215224e80ec85ab381a20d017480bc4c', class: "viewport-margins" }, hAsync("div", { key: 'a80b211eb18b1144704eb9dcb7e605328acde70c', class: "feedback__content" }, !this.hideQuestion && (this.answer === 'yes' ? (hAsync("p", null, "Thank you for letting us know.")) : this.answer === 'no' ? (hAsync("p", null, "We'd like to help. ", hAsync("a", { href: "https://www.library.upenn.edu/contact-us" }, "Contact us"), " and let us know what you're looking for.")) : (hAsync("form", { class: "feedback__inline-question", onSubmit: (e) => this.handleSubmit(e) }, hAsync("h2", null, "Did you find what you need?"), hAsync("button", { type: "submit", name: "answer", value: "yes", class: { 'selected': this.selected === 'yes' }, disabled: !!this.selected }, hAsync("span", null, "Yes"), hAsync("span", { class: "visually-hidden" }, ", I found what I needed.")), hAsync("button", { type: "submit", name: "answer", value: "no", class: { 'selected': this.selected === 'no' }, disabled: !!this.selected }, hAsync("span", null, "No"), hAsync("span", { class: "visually-hidden" }, ", I did not find what I needed."))))), hAsync("div", { key: 'e441824f32084a83a0e22c0f282ca73f8295464e', class: "feedback__share-feedback" }, hAsync("p", { key: '7df4f4d3b6f6a2b893be59fbe7517aa8f63eb690' }, "To help us improve, ", hAsync("a", { key: '6defbfffc7839fb2038716844998eeb897ed71b0', href: `https://upenn.co1.qualtrics.com/jfe/form/SV_3xVrP7EKWS92zfE?reporting_from_url=${encodeURIComponent(window.location.href)}` }, "share your feedback"), "."))))));
4298
4406
  }
4299
4407
  static get style() { return pennlibsFeedbackCss; }
4300
4408
  static get cmpMeta() { return {
@@ -4315,6 +4423,7 @@ registerComponents([
4315
4423
  Autocomplete,
4316
4424
  Banner,
4317
4425
  Chat,
4426
+ ExpandText,
4318
4427
  Footer,
4319
4428
  Header,
4320
4429
  Hero,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@penn-libraries/web",
3
- "version": "1.3.1",
3
+ "version": "1.4.0-dev.1",
4
4
  "description": "Reusable web designs for University of Pennsylvania Libraries websites. This package contains our code for shared Web Components and Cascading Style Sheets (CSS).",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",