@penn-libraries/web 1.1.0-dev.2 → 1.1.0-dev.4
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/loader.cjs.js +1 -1
- package/dist/cjs/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.cjs.js.map +1 -0
- package/dist/cjs/{pennlibs-allow-tracking_4.cjs.entry.js → pennlibs-autocomplete_3.cjs.entry.js} +8 -57
- package/dist/cjs/pennlibs-autocomplete_3.cjs.entry.js.map +1 -0
- package/dist/cjs/web.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +0 -1
- package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js +6 -2
- package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js.map +1 -1
- package/dist/components/index.d.ts +0 -2
- package/dist/components/index.js +0 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/pennlibs-autocomplete.js +6 -2
- package/dist/components/pennlibs-autocomplete.js.map +1 -1
- package/dist/docs.json +1 -20
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.js.map +1 -0
- package/dist/esm/{pennlibs-allow-tracking_4.entry.js → pennlibs-autocomplete_3.entry.js} +10 -58
- package/dist/esm/pennlibs-autocomplete_3.entry.js.map +1 -0
- package/dist/esm/web.js +1 -1
- package/dist/types/components.d.ts +0 -13
- package/dist/web/{p-270fd846.entry.js → p-40119068.entry.js} +10 -58
- package/dist/{esm/pennlibs-allow-tracking_4.entry.js.map → web/p-40119068.entry.js.map} +1 -1
- package/dist/web/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.esm.js.map +1 -0
- package/dist/web/web.esm.js +1 -1
- package/hydrate/index.js +6 -66
- package/hydrate/index.mjs +6 -66
- package/package.json +1 -1
- package/dist/cjs/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.cjs.js.map +0 -1
- package/dist/cjs/pennlibs-allow-tracking_4.cjs.entry.js.map +0 -1
- package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.css +0 -110
- package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.js +0 -67
- package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.js.map +0 -1
- package/dist/components/pennlibs-allow-tracking.d.ts +0 -11
- package/dist/components/pennlibs-allow-tracking.js +0 -79
- package/dist/components/pennlibs-allow-tracking.js.map +0 -1
- package/dist/esm/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.js.map +0 -1
- package/dist/types/components/pennlibs-allow-tracking/pennlibs-allow-tracking.d.ts +0 -11
- package/dist/web/p-270fd846.entry.js.map +0 -1
- package/dist/web/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.esm.js.map +0 -1
|
@@ -1,56 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
2
|
-
|
|
3
|
-
const pennlibsAllowTrackingCss = ":host {\n background: var(--pl-color-penn-blue);\n display: block;\n margin: 0;\n font-family: var(--pl-font-family);\n font-size: var(--pl-font-size);\n color: var(--pl-color-fg-on-emphasis);\n\n *, *:before, *:after {\n box-sizing: inherit;\n }\n\n & h2 {\n font-size: var(--pl-font-size-xl);\n font-family: var(--pl-font-sans-serif);\n margin-bottom: 0;\n margin-top: 0;\n display: inline-flex;\n flex-wrap: wrap;\n\n & span {\n padding-right: var(--pl-space-xs);\n }\n }\n\n & p {\n margin: 0;\n }\n\n & *:focus {\n box-shadow: 0 0 0 2px var(--pl-color-bg-accent-emphasis), 0 0 0 4px var(--pl-color-bg-accent);\n outline: none;\n }\n\n & a {\n color: var(--pl-color-fg-on-emphasis);\n text-decoration: underline;\n text-underline-offset: var(--pl-link-text-underline-offset);\n\n &:hover {\n text-underline-offset: var(--pl-link-text-underline-offset);\n text-decoration-thickness: 0.1em;\n }\n }\n}\n\n.container {\n padding: var(--pl-space-m) 0;\n}\n\n.pl-viewport-margins {\n width: 100%;\n max-width: var(--pl-viewport-margins-max-width);\n margin: 0 auto;\n padding: 0 var(--pl-viewport-margins-gutter, 1em);\n\n display: flex;\n gap: var(--pl-space-m);\n align-items: center;\n justify-content: space-between;\n\n flex-wrap: wrap;\n\n & div:last-of-type {\n display: flex;\n gap: var(--pl-space-xs);\n }\n}\n\nbutton {\n all: unset;\n display: flex;\n align-items: center;\n gap: 0.5em;\n padding: 0.5em 1.5em;\n font-family: var(--pl-font-family);\n font-weight: 500;\n line-height: 1.4;\n color: var(--pl-color-fg-default);\n background: var(--pl-color-bg-default);\n border-radius: 1em;\n box-sizing: border-box;\n\n &:hover {\n cursor: pointer;\n text-decoration: underline;\n text-underline-offset: var(--pl-link-text-underline-offset);\n text-decoration-thickness: 0.1em;\n }\n}\n\n.stop-sharing {\n background: none;\n color: var(--pl-color-fg-on-emphasis);\n border: solid 1px var(--pl-color-fg-on-emphasis);\n}\n\n.tracking-message {\n display: flex;\n gap: var(--pl-space-xs);\n align-items: center;\n\n & svg {\n flex-shrink: 0;\n }\n}\n\n.tracking-options {\n flex-wrap: wrap;\n}";
|
|
4
|
-
|
|
5
|
-
const AllowTracking = class {
|
|
6
|
-
constructor(hostRef) {
|
|
7
|
-
registerInstance(this, hostRef);
|
|
8
|
-
this.consentGiven = null;
|
|
9
|
-
this.hide = true;
|
|
10
|
-
this.handleAllow = () => {
|
|
11
|
-
this.setCookie('pennlibs-allow-tracking', 'YES');
|
|
12
|
-
this.consentGiven = 'YES';
|
|
13
|
-
};
|
|
14
|
-
this.handleDoNotTrack = () => {
|
|
15
|
-
this.setCookie('pennlibs-allow-tracking', 'NO');
|
|
16
|
-
this.consentGiven = 'NO';
|
|
17
|
-
};
|
|
18
|
-
this.handleHide = () => {
|
|
19
|
-
this.hide = true;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
componentWillLoad() {
|
|
23
|
-
if (navigator.cookieEnabled) {
|
|
24
|
-
this.hide = false;
|
|
25
|
-
}
|
|
26
|
-
const existingConsent = this.getCookie('pennlibs-allow-tracking');
|
|
27
|
-
if (existingConsent) {
|
|
28
|
-
this.consentGiven = existingConsent;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
getCookie(name) {
|
|
32
|
-
var _a;
|
|
33
|
-
return ((_a = document.cookie
|
|
34
|
-
.split('; ')
|
|
35
|
-
.find(row => row.startsWith(`${name}=`))) === null || _a === void 0 ? void 0 : _a.split('=')[1]) || null;
|
|
36
|
-
}
|
|
37
|
-
setCookie(name, value) {
|
|
38
|
-
document.cookie = `${name}=${value}; path=/; max-age=31536000`;
|
|
39
|
-
}
|
|
40
|
-
render() {
|
|
41
|
-
if (this.hide) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
if (this.consentGiven) {
|
|
45
|
-
return (h("div", { class: "container" }, h("div", { class: "pl-viewport-margins" }, h("div", null, h("p", null, "You've ", h("strong", null, this.consentGiven === 'YES' ? 'accepted' : 'rejected'), " tracking. You can ", h("a", { href: "#" }, "change this setting"), " at anytime.")), h("div", null, h("button", { onClick: this.handleHide }, "Hide tracking message")))));
|
|
46
|
-
}
|
|
47
|
-
return (h("div", { class: "container" }, h("div", { class: "pl-viewport-margins" }, h("div", { class: "tracking-message" }, h(TrackingIcon, null), h("p", null, h("a", { href: "https://www.library.upenn.edu/about/policies/penn-libraries-privacy-policy" }, "We use anonymized data"), " from your visit such as clicks to gather analytics and understand how we can make improvements.")), h("div", { class: "tracking-options" }, h("button", { onClick: this.handleAllow }, "Continue sharing"), h("button", { onClick: this.handleDoNotTrack, class: "stop-sharing" }, "Stop sharing")))));
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
function TrackingIcon() {
|
|
51
|
-
return (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "lucide lucide-trending-up-down-icon lucide-trending-up-down" }, h("path", { d: "M14.828 14.828 21 21" }), h("path", { d: "M21 16v5h-5" }), h("path", { d: "m21 3-9 9-4-4-6 6" }), h("path", { d: "M21 8V3h-5" })));
|
|
52
|
-
}
|
|
53
|
-
AllowTracking.style = pennlibsAllowTrackingCss;
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, a as getElement, g as getAssetPath } from './p-CE_ILdTo.js';
|
|
54
2
|
|
|
55
3
|
const pennlibsAutocompleteCss = ":host {\n display: block;\n width: 100%;\n border-radius: 1.25rem;\n padding: 0;\n border-top: 0;\n position: relative;\n}\n\n[role=listbox] {\n position: absolute;\n margin-top: var(--pl-space-xs);\n background: var(--pl-color-bg-default);\n border-radius: 1.25rem;\n box-shadow: rgba(140, 149, 159, 0.3) 0px 8px 24px 0px;\n width: 100%;\n overflow: hidden;\n z-index: 1;\n\n display: flex;\n flex-direction: column;\n}\n\np {\n margin: 0;\n font-size: var(--pl-font-size-s);\n color: var(--pl-color-fg-subtle);\n padding: var(--pl-space-xs) calc(var(--pl-space-m) + var(--pl-space-2xs));\n font-size: var(--pl-font-size-s);\n order: 2;\n font-weight: 500;\n background: var(--pl-color-bg-subtle);\n border-radius: 0 0 1.25rem 1.25rem;\n\n display: flex;\n gap: var(--pl-space-s) var(--pl-space-l);\n flex-wrap: wrap;\n}\n\nol {\n list-style: none;\n margin: 0;\n padding: var(--pl-space-xs) 0;\n order: 1;\n}\n\n[role=option] {\n color: var(--pl-color-fg-default);\n padding: var(--pl-space-s) calc(var(--pl-space-m) + var(--pl-space-2xs));\n text-decoration: none;\n font-weight: 700; \n\n &:hover {\n cursor: pointer;\n }\n\n &:hover,\n &:focus {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n }\n}\n\n[aria-selected=true] {\n text-decoration-thickness: 2px;\n text-underline-offset: 2px;\n text-decoration: underline;\n}\n\nmark {\n background: none;\n font-weight: 400;\n}\n\n.suggestion--border {\n border-bottom: solid 1px rgb(from var(--pl-color-fg-default) r g b / 0.2);\n padding-bottom: calc(var(--pl-space-2xs) + var(--pl-space-s));\n margin-bottom: var(--pl-space-2xs);\n}";
|
|
56
4
|
|
|
@@ -130,12 +78,16 @@ const Autocomplete = class {
|
|
|
130
78
|
input.setAttribute('aria-controls', 'listbox');
|
|
131
79
|
}
|
|
132
80
|
handleSlotChange() {
|
|
81
|
+
this.options = this.parseOptionsFromDOM();
|
|
133
82
|
this.setupInput();
|
|
134
83
|
}
|
|
135
84
|
handleInputEvent(event) {
|
|
136
85
|
const input = event.target;
|
|
137
|
-
if (this.isTrackedInput(input))
|
|
86
|
+
if (this.isTrackedInput(input)) {
|
|
87
|
+
// Reset active option when user manually changes input
|
|
88
|
+
this.currentIndex = -1;
|
|
138
89
|
this.openSuggestions();
|
|
90
|
+
}
|
|
139
91
|
}
|
|
140
92
|
handleFocusEvent(event) {
|
|
141
93
|
const input = event.target;
|
|
@@ -285,7 +237,7 @@ const Autocomplete = class {
|
|
|
285
237
|
return this.showSuggestions && this.options.length > 0 && this.isInputFocused();
|
|
286
238
|
}
|
|
287
239
|
render() {
|
|
288
|
-
return (h("div", { key: '
|
|
240
|
+
return (h("div", { key: 'c9d88ed9a19ef99b53d0849d03c0a64d4e08a39c' }, h("slot", { key: 'bc5c0c3e42f40269818cd7a8f78ec4bb5f5f0d49', name: "start" }), this.shouldShowListbox() && (h("ol", { key: '4ad4f80d38a7de2537f343ec02e1bad3e5c2b100', role: "listbox", id: "listbox" }, this.options.map((option, index) => (h("li", { role: "option", id: option.id, "aria-selected": this.currentIndex === index ? 'true' : 'false', tabindex: "-1", onClick: () => this.handleOptionClick(index), innerHTML: option.html })))))));
|
|
289
241
|
}
|
|
290
242
|
get el() { return getElement(this); }
|
|
291
243
|
};
|
|
@@ -405,7 +357,7 @@ const Header = class {
|
|
|
405
357
|
};
|
|
406
358
|
Header.style = pennlibsHeaderCss;
|
|
407
359
|
|
|
408
|
-
export {
|
|
409
|
-
//# sourceMappingURL=pennlibs-
|
|
360
|
+
export { Autocomplete as pennlibs_autocomplete, Footer as pennlibs_footer, Header as pennlibs_header };
|
|
361
|
+
//# sourceMappingURL=pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.esm.js.map
|
|
410
362
|
|
|
411
|
-
//# sourceMappingURL=p-
|
|
363
|
+
//# sourceMappingURL=p-40119068.entry.js.map
|