@penn-libraries/web 1.1.0-dev.2 → 1.1.0-dev.3

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} +7 -57
  4. package/dist/cjs/{pennlibs-allow-tracking_4.cjs.entry.js.map → pennlibs-autocomplete_3.cjs.entry.js.map} +1 -1
  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 +5 -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 +5 -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} +9 -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-d01979e8.entry.js} +9 -58
  22. package/dist/web/p-d01979e8.entry.js.map +1 -0
  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 +5 -66
  26. package/hydrate/index.mjs +5 -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/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.css +0 -110
  30. package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.js +0 -67
  31. package/dist/collection/components/pennlibs-allow-tracking/pennlibs-allow-tracking.js.map +0 -1
  32. package/dist/components/pennlibs-allow-tracking.d.ts +0 -11
  33. package/dist/components/pennlibs-allow-tracking.js +0 -79
  34. package/dist/components/pennlibs-allow-tracking.js.map +0 -1
  35. package/dist/esm/pennlibs-allow-tracking.pennlibs-autocomplete.pennlibs-footer.pennlibs-header.entry.js.map +0 -1
  36. package/dist/esm/pennlibs-allow-tracking_4.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,110 +0,0 @@
1
- :host {
2
- background: var(--pl-color-penn-blue);
3
- display: block;
4
- margin: 0;
5
- font-family: var(--pl-font-family);
6
- font-size: var(--pl-font-size);
7
- color: var(--pl-color-fg-on-emphasis);
8
-
9
- *, *:before, *:after {
10
- box-sizing: inherit;
11
- }
12
-
13
- & h2 {
14
- font-size: var(--pl-font-size-xl);
15
- font-family: var(--pl-font-sans-serif);
16
- margin-bottom: 0;
17
- margin-top: 0;
18
- display: inline-flex;
19
- flex-wrap: wrap;
20
-
21
- & span {
22
- padding-right: var(--pl-space-xs);
23
- }
24
- }
25
-
26
- & p {
27
- margin: 0;
28
- }
29
-
30
- & *:focus {
31
- box-shadow: 0 0 0 2px var(--pl-color-bg-accent-emphasis), 0 0 0 4px var(--pl-color-bg-accent);
32
- outline: none;
33
- }
34
-
35
- & a {
36
- color: var(--pl-color-fg-on-emphasis);
37
- text-decoration: underline;
38
- text-underline-offset: var(--pl-link-text-underline-offset);
39
-
40
- &:hover {
41
- text-underline-offset: var(--pl-link-text-underline-offset);
42
- text-decoration-thickness: 0.1em;
43
- }
44
- }
45
- }
46
-
47
- .container {
48
- padding: var(--pl-space-m) 0;
49
- }
50
-
51
- .pl-viewport-margins {
52
- width: 100%;
53
- max-width: var(--pl-viewport-margins-max-width);
54
- margin: 0 auto;
55
- padding: 0 var(--pl-viewport-margins-gutter, 1em);
56
-
57
- display: flex;
58
- gap: var(--pl-space-m);
59
- align-items: center;
60
- justify-content: space-between;
61
-
62
- flex-wrap: wrap;
63
-
64
- & div:last-of-type {
65
- display: flex;
66
- gap: var(--pl-space-xs);
67
- }
68
- }
69
-
70
- button {
71
- all: unset;
72
- display: flex;
73
- align-items: center;
74
- gap: 0.5em;
75
- padding: 0.5em 1.5em;
76
- font-family: var(--pl-font-family);
77
- font-weight: 500;
78
- line-height: 1.4;
79
- color: var(--pl-color-fg-default);
80
- background: var(--pl-color-bg-default);
81
- border-radius: 1em;
82
- box-sizing: border-box;
83
-
84
- &:hover {
85
- cursor: pointer;
86
- text-decoration: underline;
87
- text-underline-offset: var(--pl-link-text-underline-offset);
88
- text-decoration-thickness: 0.1em;
89
- }
90
- }
91
-
92
- .stop-sharing {
93
- background: none;
94
- color: var(--pl-color-fg-on-emphasis);
95
- border: solid 1px var(--pl-color-fg-on-emphasis);
96
- }
97
-
98
- .tracking-message {
99
- display: flex;
100
- gap: var(--pl-space-xs);
101
- align-items: center;
102
-
103
- & svg {
104
- flex-shrink: 0;
105
- }
106
- }
107
-
108
- .tracking-options {
109
- flex-wrap: wrap;
110
- }
@@ -1,67 +0,0 @@
1
- import { h } from "@stencil/core";
2
- export class AllowTracking {
3
- constructor() {
4
- this.consentGiven = null;
5
- this.hide = true;
6
- this.handleAllow = () => {
7
- this.setCookie('pennlibs-allow-tracking', 'YES');
8
- this.consentGiven = 'YES';
9
- };
10
- this.handleDoNotTrack = () => {
11
- this.setCookie('pennlibs-allow-tracking', 'NO');
12
- this.consentGiven = 'NO';
13
- };
14
- this.handleHide = () => {
15
- this.hide = true;
16
- };
17
- }
18
- componentWillLoad() {
19
- if (navigator.cookieEnabled) {
20
- this.hide = false;
21
- }
22
- const existingConsent = this.getCookie('pennlibs-allow-tracking');
23
- if (existingConsent) {
24
- this.consentGiven = existingConsent;
25
- }
26
- }
27
- getCookie(name) {
28
- var _a;
29
- return ((_a = document.cookie
30
- .split('; ')
31
- .find(row => row.startsWith(`${name}=`))) === null || _a === void 0 ? void 0 : _a.split('=')[1]) || null;
32
- }
33
- setCookie(name, value) {
34
- document.cookie = `${name}=${value}; path=/; max-age=31536000`;
35
- }
36
- render() {
37
- if (this.hide) {
38
- return null;
39
- }
40
- if (this.consentGiven) {
41
- 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")))));
42
- }
43
- 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")))));
44
- }
45
- static get is() { return "pennlibs-allow-tracking"; }
46
- static get encapsulation() { return "shadow"; }
47
- static get originalStyleUrls() {
48
- return {
49
- "$": ["pennlibs-allow-tracking.css"]
50
- };
51
- }
52
- static get styleUrls() {
53
- return {
54
- "$": ["pennlibs-allow-tracking.css"]
55
- };
56
- }
57
- static get states() {
58
- return {
59
- "consentGiven": {},
60
- "hide": {}
61
- };
62
- }
63
- }
64
- function TrackingIcon() {
65
- 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" })));
66
- }
67
- //# sourceMappingURL=pennlibs-allow-tracking.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pennlibs-allow-tracking.js","sourceRoot":"","sources":["../../../src/components/pennlibs-allow-tracking/pennlibs-allow-tracking.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, State } from '@stencil/core';\n\n@Component({\n tag: 'pennlibs-allow-tracking',\n styleUrl: 'pennlibs-allow-tracking.css',\n shadow: true\n})\nexport class AllowTracking {\n @State() consentGiven: 'YES' | 'NO' | null = null;\n @State() hide: boolean = true;\n\n componentWillLoad() {\n if (navigator.cookieEnabled) {\n this.hide = false;\n }\n\n const existingConsent = this.getCookie('pennlibs-allow-tracking');\n if (existingConsent) {\n this.consentGiven = existingConsent as 'YES' | 'NO';\n }\n }\n\n private getCookie(name: string): string | null {\n return document.cookie\n .split('; ')\n .find(row => row.startsWith(`${name}=`))\n ?.split('=')[1] || null;\n }\n\n private setCookie(name: string, value: string) {\n document.cookie = `${name}=${value}; path=/; max-age=31536000`;\n }\n\n private handleAllow = () => {\n this.setCookie('pennlibs-allow-tracking', 'YES');\n this.consentGiven = 'YES';\n }\n\n private handleDoNotTrack = () => {\n this.setCookie('pennlibs-allow-tracking', 'NO');\n this.consentGiven = 'NO';\n }\n\n private handleHide = () => {\n this.hide = true;\n }\n\n render() {\n if (this.hide) {\n return null;\n }\n\n if (this.consentGiven) {\n return (\n <div class=\"container\">\n <div class=\"pl-viewport-margins\">\n <div>\n <p>You've <strong>{this.consentGiven === 'YES' ? 'accepted' : 'rejected'}</strong> tracking. You can <a href=\"#\">change this setting</a> at anytime.</p>\n </div>\n <div>\n <button onClick={this.handleHide}>Hide tracking message</button>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div class=\"container\">\n <div class=\"pl-viewport-margins\">\n <div class=\"tracking-message\">\n <TrackingIcon /><p><a href=\"https://www.library.upenn.edu/about/policies/penn-libraries-privacy-policy\">We use anonymized data</a> from your visit such as clicks to gather analytics and understand how we can make improvements.</p>\n </div>\n\n <div class=\"tracking-options\">\n <button onClick={this.handleAllow}>Continue sharing</button>\n <button onClick={this.handleDoNotTrack} class=\"stop-sharing\">Stop sharing</button>\n </div>\n </div>\n </div>\n );\n }\n}\n\nfunction TrackingIcon() {\n return (\n <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\"><path d=\"M14.828 14.828 21 21\"/><path d=\"M21 16v5h-5\"/><path d=\"m21 3-9 9-4-4-6 6\"/><path d=\"M21 8V3h-5\"/></svg>\n )\n}"]}
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../types/components";
2
-
3
- interface PennlibsAllowTracking extends Components.PennlibsAllowTracking, HTMLElement {}
4
- export const PennlibsAllowTracking: {
5
- prototype: PennlibsAllowTracking;
6
- new (): PennlibsAllowTracking;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1,79 +0,0 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
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 = /*@__PURE__*/ proxyCustomElement(class AllowTracking extends HTMLElement {
6
- constructor() {
7
- super();
8
- this.__registerHost();
9
- this.__attachShadow();
10
- this.consentGiven = null;
11
- this.hide = true;
12
- this.handleAllow = () => {
13
- this.setCookie('pennlibs-allow-tracking', 'YES');
14
- this.consentGiven = 'YES';
15
- };
16
- this.handleDoNotTrack = () => {
17
- this.setCookie('pennlibs-allow-tracking', 'NO');
18
- this.consentGiven = 'NO';
19
- };
20
- this.handleHide = () => {
21
- this.hide = true;
22
- };
23
- }
24
- componentWillLoad() {
25
- if (navigator.cookieEnabled) {
26
- this.hide = false;
27
- }
28
- const existingConsent = this.getCookie('pennlibs-allow-tracking');
29
- if (existingConsent) {
30
- this.consentGiven = existingConsent;
31
- }
32
- }
33
- getCookie(name) {
34
- var _a;
35
- return ((_a = document.cookie
36
- .split('; ')
37
- .find(row => row.startsWith(`${name}=`))) === null || _a === void 0 ? void 0 : _a.split('=')[1]) || null;
38
- }
39
- setCookie(name, value) {
40
- document.cookie = `${name}=${value}; path=/; max-age=31536000`;
41
- }
42
- render() {
43
- if (this.hide) {
44
- return null;
45
- }
46
- if (this.consentGiven) {
47
- 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")))));
48
- }
49
- 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")))));
50
- }
51
- static get style() { return pennlibsAllowTrackingCss; }
52
- }, [1, "pennlibs-allow-tracking", {
53
- "consentGiven": [32],
54
- "hide": [32]
55
- }]);
56
- function TrackingIcon() {
57
- 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" })));
58
- }
59
- function defineCustomElement$1() {
60
- if (typeof customElements === "undefined") {
61
- return;
62
- }
63
- const components = ["pennlibs-allow-tracking"];
64
- components.forEach(tagName => { switch (tagName) {
65
- case "pennlibs-allow-tracking":
66
- if (!customElements.get(tagName)) {
67
- customElements.define(tagName, AllowTracking);
68
- }
69
- break;
70
- } });
71
- }
72
-
73
- const PennlibsAllowTracking = AllowTracking;
74
- const defineCustomElement = defineCustomElement$1;
75
-
76
- export { PennlibsAllowTracking, defineCustomElement };
77
- //# sourceMappingURL=pennlibs-allow-tracking.js.map
78
-
79
- //# sourceMappingURL=pennlibs-allow-tracking.js.map
@@ -1 +0,0 @@
1
- {"file":"pennlibs-allow-tracking.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/components/pennlibs-allow-tracking/pennlibs-allow-tracking.css?tag=pennlibs-allow-tracking&encapsulation=shadow","src/components/pennlibs-allow-tracking/pennlibs-allow-tracking.tsx"],"sourcesContent":[":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}","import { Component, h, State } from '@stencil/core';\n\n@Component({\n tag: 'pennlibs-allow-tracking',\n styleUrl: 'pennlibs-allow-tracking.css',\n shadow: true\n})\nexport class AllowTracking {\n @State() consentGiven: 'YES' | 'NO' | null = null;\n @State() hide: boolean = true;\n\n componentWillLoad() {\n if (navigator.cookieEnabled) {\n this.hide = false;\n }\n\n const existingConsent = this.getCookie('pennlibs-allow-tracking');\n if (existingConsent) {\n this.consentGiven = existingConsent as 'YES' | 'NO';\n }\n }\n\n private getCookie(name: string): string | null {\n return document.cookie\n .split('; ')\n .find(row => row.startsWith(`${name}=`))\n ?.split('=')[1] || null;\n }\n\n private setCookie(name: string, value: string) {\n document.cookie = `${name}=${value}; path=/; max-age=31536000`;\n }\n\n private handleAllow = () => {\n this.setCookie('pennlibs-allow-tracking', 'YES');\n this.consentGiven = 'YES';\n }\n\n private handleDoNotTrack = () => {\n this.setCookie('pennlibs-allow-tracking', 'NO');\n this.consentGiven = 'NO';\n }\n\n private handleHide = () => {\n this.hide = true;\n }\n\n render() {\n if (this.hide) {\n return null;\n }\n\n if (this.consentGiven) {\n return (\n <div class=\"container\">\n <div class=\"pl-viewport-margins\">\n <div>\n <p>You've <strong>{this.consentGiven === 'YES' ? 'accepted' : 'rejected'}</strong> tracking. You can <a href=\"#\">change this setting</a> at anytime.</p>\n </div>\n <div>\n <button onClick={this.handleHide}>Hide tracking message</button>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div class=\"container\">\n <div class=\"pl-viewport-margins\">\n <div class=\"tracking-message\">\n <TrackingIcon /><p><a href=\"https://www.library.upenn.edu/about/policies/penn-libraries-privacy-policy\">We use anonymized data</a> from your visit such as clicks to gather analytics and understand how we can make improvements.</p>\n </div>\n\n <div class=\"tracking-options\">\n <button onClick={this.handleAllow}>Continue sharing</button>\n <button onClick={this.handleDoNotTrack} class=\"stop-sharing\">Stop sharing</button>\n </div>\n </div>\n </div>\n );\n }\n}\n\nfunction TrackingIcon() {\n return (\n <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\"><path d=\"M14.828 14.828 21 21\"/><path d=\"M21 16v5h-5\"/><path d=\"m21 3-9 9-4-4-6 6\"/><path d=\"M21 8V3h-5\"/></svg>\n )\n}"],"version":3}