@penn-libraries/web 1.4.0-dev.0 → 1.4.0-dev.2
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.
- package/dist/cjs/{index-DBhvAaKX.js → index-nu4ClYFS.js} +19 -4
- package/dist/cjs/index-nu4ClYFS.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/pennlibs-autocomplete.cjs.entry.js +1 -1
- package/dist/cjs/pennlibs-banner.cjs.entry.js +1 -1
- package/dist/cjs/pennlibs-chat.cjs.entry.js +1 -1
- package/dist/cjs/pennlibs-expand-text.pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.cjs.js.map +1 -0
- package/dist/cjs/{pennlibs-feedback_3.cjs.entry.js → pennlibs-expand-text_4.cjs.entry.js} +80 -7
- package/dist/cjs/pennlibs-fallback-img.cjs.entry.js +2 -2
- package/dist/cjs/pennlibs-hero.cjs.entry.js +2 -2
- package/dist/cjs/pennlibs-iiif-img.cjs.entry.js +1 -1
- package/dist/cjs/web.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/pennlibs-expand-text/pennlibs-expand-text.css +88 -0
- package/dist/collection/components/pennlibs-expand-text/pennlibs-expand-text.js +168 -0
- package/dist/collection/components/pennlibs-expand-text/pennlibs-expand-text.js.map +1 -0
- package/dist/collection/components/pennlibs-fallback-img/pennlibs-fallback-img.js +1 -1
- package/dist/collection/components/pennlibs-feedback/pennlibs-feedback.js +1 -1
- package/dist/collection/components/pennlibs-footer/pennlibs-footer.js +3 -3
- package/dist/collection/components/pennlibs-header/pennlibs-header.js +1 -1
- package/dist/collection/components/pennlibs-hero/pennlibs-hero.js +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/pennlibs-expand-text.d.ts +11 -0
- package/dist/components/pennlibs-expand-text.js +105 -0
- package/dist/components/pennlibs-expand-text.js.map +1 -0
- package/dist/components/pennlibs-fallback-img2.js +1 -1
- package/dist/components/pennlibs-feedback.js +1 -1
- package/dist/components/pennlibs-footer.js +3 -3
- package/dist/components/pennlibs-header.js +1 -1
- package/dist/components/pennlibs-hero.js +1 -1
- package/dist/docs.json +130 -1
- package/dist/{web/p-B2uNboIg.js → esm/index-DJQvPLp9.js} +19 -5
- package/dist/esm/index-DJQvPLp9.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/pennlibs-autocomplete.entry.js +1 -1
- package/dist/esm/pennlibs-banner.entry.js +1 -1
- package/dist/esm/pennlibs-chat.entry.js +1 -1
- package/dist/esm/pennlibs-expand-text.pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.js.map +1 -0
- package/dist/esm/{pennlibs-feedback_3.entry.js → pennlibs-expand-text_4.entry.js} +80 -8
- package/dist/esm/pennlibs-fallback-img.entry.js +2 -2
- package/dist/esm/pennlibs-hero.entry.js +2 -2
- package/dist/esm/pennlibs-iiif-img.entry.js +1 -1
- package/dist/esm/web.js +3 -3
- package/dist/types/components/pennlibs-expand-text/pennlibs-expand-text.d.ts +35 -0
- package/dist/types/components.d.ts +69 -0
- package/dist/web/index.esm.js +1 -1
- package/dist/web/{p-aab8ed2e.entry.js → p-3198c994.entry.js} +1 -1
- package/dist/web/{p-2466b63f.entry.js → p-33f42a73.entry.js} +2 -2
- package/dist/{esm/index-B2uNboIg.js → web/p-DJQvPLp9.js} +19 -5
- package/dist/web/p-DJQvPLp9.js.map +1 -0
- package/dist/web/{p-45f82cb0.entry.js → p-a917779a.entry.js} +2 -2
- package/dist/web/{p-6a15d2f0.entry.js → p-aac371c4.entry.js} +1 -1
- package/dist/web/{p-5ff9bc88.entry.js → p-c0ad70c7.entry.js} +1 -1
- package/dist/web/{p-3a18e805.entry.js → p-c5190071.entry.js} +1 -1
- package/dist/web/{p-743f4899.entry.js → p-e0cb5433.entry.js} +80 -8
- package/dist/web/pennlibs-expand-text.pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.esm.js.map +1 -0
- package/dist/web/web.css +1 -5
- package/dist/web/web.esm.js +3 -3
- package/hydrate/index.js +117 -8
- package/hydrate/index.mjs +117 -8
- package/package.json +1 -1
- package/dist/cjs/index-DBhvAaKX.js.map +0 -1
- package/dist/cjs/pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.cjs.js.map +0 -1
- package/dist/esm/index-B2uNboIg.js.map +0 -1
- package/dist/esm/pennlibs-feedback.pennlibs-footer.pennlibs-header.entry.js.map +0 -1
- package/dist/web/p-B2uNboIg.js.map +0 -1
- 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 (
|
|
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,6 +3674,100 @@ class Chat {
|
|
|
3660
3674
|
}; }
|
|
3661
3675
|
}
|
|
3662
3676
|
|
|
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
|
+
|
|
3663
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
|
/**
|
|
@@ -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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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); }
|
|
@@ -3889,7 +3997,7 @@ class Hero {
|
|
|
3889
3997
|
}
|
|
3890
3998
|
}
|
|
3891
3999
|
render() {
|
|
3892
|
-
return (hAsync("div", { key: '
|
|
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: '
|
|
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: '
|
|
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 (
|
|
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,6 +3672,100 @@ class Chat {
|
|
|
3658
3672
|
}; }
|
|
3659
3673
|
}
|
|
3660
3674
|
|
|
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
|
+
|
|
3661
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
|
/**
|
|
@@ -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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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); }
|
|
@@ -3887,7 +3995,7 @@ class Hero {
|
|
|
3887
3995
|
}
|
|
3888
3996
|
}
|
|
3889
3997
|
render() {
|
|
3890
|
-
return (hAsync("div", { key: '
|
|
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: '
|
|
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: '
|
|
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.4.0-dev.
|
|
3
|
+
"version": "1.4.0-dev.2",
|
|
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",
|