@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.
Files changed (39) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.cjs.js.map +1 -0
  3. package/dist/cjs/{pennlibs-allow-tracking_4.cjs.entry.js → pennlibs-autocomplete_3.cjs.entry.js} +8 -57
  4. package/dist/cjs/pennlibs-autocomplete_3.cjs.entry.js.map +1 -0
  5. package/dist/cjs/web.cjs.js +1 -1
  6. package/dist/collection/collection-manifest.json +0 -1
  7. package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js +6 -2
  8. package/dist/collection/components/pennlibs-autocomplete/pennlibs-autocomplete.js.map +1 -1
  9. package/dist/components/index.d.ts +0 -2
  10. package/dist/components/index.js +0 -1
  11. package/dist/components/index.js.map +1 -1
  12. package/dist/components/pennlibs-autocomplete.js +6 -2
  13. package/dist/components/pennlibs-autocomplete.js.map +1 -1
  14. package/dist/docs.json +1 -20
  15. package/dist/esm/loader.js +1 -1
  16. package/dist/esm/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.js.map +1 -0
  17. package/dist/esm/{pennlibs-allow-tracking_4.entry.js → pennlibs-autocomplete_3.entry.js} +10 -58
  18. package/dist/esm/pennlibs-autocomplete_3.entry.js.map +1 -0
  19. package/dist/esm/web.js +1 -1
  20. package/dist/types/components.d.ts +0 -13
  21. package/dist/web/{p-270fd846.entry.js → p-40119068.entry.js} +10 -58
  22. package/dist/{esm/pennlibs-allow-tracking_4.entry.js.map → web/p-40119068.entry.js.map} +1 -1
  23. package/dist/web/pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.esm.js.map +1 -0
  24. package/dist/web/web.esm.js +1 -1
  25. package/hydrate/index.js +6 -66
  26. package/hydrate/index.mjs +6 -66
  27. package/package.json +1 -1
  28. package/dist/cjs/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.cjs.js.map +0 -1
  29. package/dist/cjs/pennlibs-allow-tracking_4.cjs.entry.js.map +0 -1
  30. package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.css +0 -110
  31. package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.js +0 -67
  32. package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.js.map +0 -1
  33. package/dist/components/pennlibs-allow-tracking.d.ts +0 -11
  34. package/dist/components/pennlibs-allow-tracking.js +0 -79
  35. package/dist/components/pennlibs-allow-tracking.js.map +0 -1
  36. package/dist/esm/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.js.map +0 -1
  37. package/dist/types/components/pennlibs-allow-tracking/pennlibs-allow-tracking.d.ts +0 -11
  38. package/dist/web/p-270fd846.entry.js.map +0 -1
  39. 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, h, c as createEvent, a as getElement, g as getAssetPath } from './p-CE_ILdTo.js';
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: '2091f8acacac10714c4d607e294248f3bd7e5fd7' }, h("slot", { key: '628a216ce90ee693a354a74f91bcce2fe61b74a5', name: "start" }), this.shouldShowListbox() && (h("ol", { key: '916eba0f4b2148616fac4cc96cac4c7506a9bd0e', 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 })))))));
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 { AllowTracking as pennlibs_allow_tracking, Autocomplete as pennlibs_autocomplete, Footer as pennlibs_footer, Header as pennlibs_header };
409
- //# sourceMappingURL=pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.esm.js.map
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-270fd846.entry.js.map
363
+ //# sourceMappingURL=p-40119068.entry.js.map