@tilli-pro/cookieconsent-plugin 0.2.1 → 0.2.42

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 (82) hide show
  1. package/.cache/tsbuildinfo.json +1 -1
  2. package/dist/_types.d.ts +3 -0
  3. package/dist/_types.d.ts.map +1 -0
  4. package/dist/_types.js +1 -0
  5. package/dist/_utils.d.ts +10 -0
  6. package/dist/_utils.d.ts.map +1 -0
  7. package/dist/_utils.js +31 -0
  8. package/dist/config/gui-options/scripts/cookiePrefsButtonDragObserver.d.ts.map +1 -1
  9. package/dist/config/gui-options/scripts/cookiePrefsButtonDragObserver.js +1 -1
  10. package/dist/config/gui-options/scripts/injectManageCookiePrefsButton.d.ts +2 -0
  11. package/dist/config/gui-options/scripts/injectManageCookiePrefsButton.d.ts.map +1 -1
  12. package/dist/config/gui-options/scripts/injectManageCookiePrefsButton.js +4 -1
  13. package/dist/config/index.d.ts +26 -1
  14. package/dist/config/index.d.ts.map +1 -1
  15. package/dist/config/index.js +5 -1
  16. package/dist/config/translations/de/index.d.ts +5 -0
  17. package/dist/config/translations/de/index.d.ts.map +1 -1
  18. package/dist/config/translations/de/index.js +5 -0
  19. package/dist/config/translations/en/index.d.ts +5 -0
  20. package/dist/config/translations/en/index.d.ts.map +1 -1
  21. package/dist/config/translations/en/index.js +5 -0
  22. package/dist/config/translations/es/index.d.ts +5 -0
  23. package/dist/config/translations/es/index.d.ts.map +1 -1
  24. package/dist/config/translations/es/index.js +5 -0
  25. package/dist/config/translations/fr/index.d.ts +5 -0
  26. package/dist/config/translations/fr/index.d.ts.map +1 -1
  27. package/dist/config/translations/fr/index.js +5 -0
  28. package/dist/config/translations/index.d.ts +25 -0
  29. package/dist/config/translations/index.d.ts.map +1 -1
  30. package/dist/config/translations/it/index.d.ts +5 -0
  31. package/dist/config/translations/it/index.d.ts.map +1 -1
  32. package/dist/config/translations/it/index.js +5 -0
  33. package/dist/init/brf.d.ts +2 -0
  34. package/dist/init/brf.d.ts.map +1 -0
  35. package/dist/init/brf.js +65 -0
  36. package/dist/init/tilli-website.d.ts +2 -0
  37. package/dist/init/tilli-website.d.ts.map +1 -0
  38. package/dist/init/tilli-website.js +24 -0
  39. package/dist/init/utils.d.ts +5 -0
  40. package/dist/init/utils.d.ts.map +1 -0
  41. package/dist/init/utils.js +39 -0
  42. package/dist/init/website.d.ts +2 -0
  43. package/dist/init/website.d.ts.map +1 -0
  44. package/dist/init/website.js +73 -0
  45. package/dist/init.d.ts +15 -1
  46. package/dist/init.d.ts.map +1 -1
  47. package/dist/init.js +76 -3
  48. package/dist/react-components/CookieConsentInit.client.d.ts.map +1 -1
  49. package/dist/react-components/CookieConsentInit.client.js +2 -23
  50. package/dist/react-components/CookieConsentInit.server.d.ts +2 -2
  51. package/dist/react-components/CookieConsentInit.server.d.ts.map +1 -1
  52. package/dist/react-components/CookieConsentInit.server.js +2 -2
  53. package/dist/react-components/hooks/useCookieConsent.d.ts +4 -0
  54. package/dist/react-components/hooks/useCookieConsent.d.ts.map +1 -0
  55. package/dist/react-components/hooks/useCookieConsent.js +17 -0
  56. package/dist/styles/index.d.ts +8 -0
  57. package/dist/styles/index.d.ts.map +1 -0
  58. package/dist/styles/index.js +6 -0
  59. package/package.json +1 -1
  60. package/scripts/postbuild/inject-plugin.ts +66 -18
  61. package/src/{react-components/_utils.ts → _utils.ts} +2 -2
  62. package/src/config/gui-options/scripts/cookiePrefsButtonDragObserver.ts +2 -1
  63. package/src/config/gui-options/scripts/injectManageCookiePrefsButton.ts +13 -1
  64. package/src/config/index.ts +14 -1
  65. package/src/config/translations/de/index.ts +7 -0
  66. package/src/config/translations/en/index.ts +7 -0
  67. package/src/config/translations/es/index.ts +7 -0
  68. package/src/config/translations/fr/index.ts +7 -0
  69. package/src/config/translations/it/index.ts +7 -0
  70. package/src/init/brf.ts +78 -0
  71. package/src/init/tilli-website.ts +37 -0
  72. package/src/init/utils.ts +66 -0
  73. package/src/init.ts +102 -3
  74. package/src/react-components/CookieConsentInit.client.tsx +2 -27
  75. package/src/react-components/CookieConsentInit.server.tsx +2 -2
  76. package/src/react-components/hooks/useCookieConsent.ts +30 -0
  77. package/src/styles/index.ts +6 -0
  78. package/src/styles/tenants/freeman.css +63 -0
  79. package/src/styles/tenants/frontier.css +71 -0
  80. /package/{src/react-components → dist}/styles/tenants/freeman.css +0 -0
  81. /package/{src/react-components → dist}/styles/tenants/frontier.css +0 -0
  82. /package/src/{react-components/_types.ts → _types.ts} +0 -0
@@ -0,0 +1,66 @@
1
+ import type { CookieConsentConfig } from "@tilli-pro/cookieconsent";
2
+ import type * as CookieConsent from "@tilli-pro/cookieconsent";
3
+
4
+ import { injectReactRemoveScrollToggle } from "../config/gui-options/scripts/forceDisableReactRemoveScroll";
5
+ import injectManageCookiePrefsButton from "../config/gui-options/scripts/injectManageCookiePrefsButton";
6
+
7
+ export const makeInitFn = (
8
+ initFn: typeof CookieConsent.run,
9
+ config: CookieConsentConfig,
10
+ ) => {
11
+ return async () => {
12
+ /** inject the cookie-consent banner (pop-up) */
13
+ await initFn(config);
14
+
15
+ /** ...then, inject the floating cookie consent "manage preferences" icon button into the DOM (floats @ the bottom right) */
16
+ injectManageCookiePrefsButton();
17
+
18
+ /** ...and, force-disable "react-remove-scroll" -- only upon opening up the "manage preferences" dialog
19
+ *
20
+ * > this handles the edge case where there's a shadcn (radix-ui) dialog open
21
+ * underneath the cookie banner's "manage preferences" dialog, which prevents
22
+ * the user from scrolling within the manage prefs dialog
23
+ */
24
+ injectReactRemoveScrollToggle();
25
+ };
26
+ };
27
+
28
+ export const stripInvalidLinkedCategoriesFromTranslations = (
29
+ translations: CookieConsentConfig["language"]["translations"],
30
+ categories: CookieConsentConfig["categories"],
31
+ alsoClearCookieTables: boolean = false, // FIXME: refactor this to actually just use the proper cookie table accoring to the categories var
32
+ ): CookieConsentConfig["language"]["translations"] =>
33
+ Object.fromEntries(
34
+ Object.entries(translations).map(([lang, translation]) => {
35
+ if (
36
+ translation &&
37
+ typeof translation === "object" &&
38
+ translation.preferencesModal &&
39
+ Array.isArray(translation.preferencesModal.sections)
40
+ ) {
41
+ /** filter out irrelevant sections */
42
+ const filteredSections = translation.preferencesModal.sections.filter(
43
+ (section: CookieConsent.Section) =>
44
+ !section.linkedCategory || categories[section.linkedCategory],
45
+ );
46
+
47
+ if (alsoClearCookieTables)
48
+ filteredSections.forEach(
49
+ (section: CookieConsent.Section) => (section.cookieTable = undefined),
50
+ );
51
+
52
+ return [
53
+ lang,
54
+ {
55
+ ...translation,
56
+ preferencesModal: {
57
+ ...translation.preferencesModal,
58
+ sections: filteredSections,
59
+ },
60
+ },
61
+ ];
62
+ }
63
+
64
+ return [lang, translation];
65
+ }),
66
+ );
package/src/init.ts CHANGED
@@ -1,10 +1,109 @@
1
- import "https://rawcdn.githack.com/tilli-pro/cookieconsent/0f888b603ba1077d94776af62d2bfb7247e5ffe4/dist/cookieconsent.umd.js?min=1";
1
+ import "https://cdn.jsdelivr.net/gh/tilli-pro/cookieconsent@0f888b603ba1077d94776af62d2bfb7247e5ffe4/dist/cookieconsent.umd.js";
2
2
 
3
3
  import type * as _CookieConsent from "@tilli-pro/cookieconsent";
4
- import config from "./config";
4
+ import type { CookieConsentConfig } from "@tilli-pro/cookieconsent";
5
+
6
+ import { cookieConsentTheme } from "./_utils";
7
+ import _config from "./config";
8
+ import { makeInitFn } from "./init/utils";
9
+ import styles from "./styles";
5
10
 
6
11
  declare module CookieConsent {
7
12
  const run: typeof _CookieConsent.run;
8
13
  }
9
14
 
10
- CookieConsent.run(config);
15
+ declare global {
16
+ interface Window {
17
+ cookieConsentTheme: typeof cookieConsentTheme;
18
+ }
19
+ }
20
+
21
+ const GIT_SHA = "5d10d218837ca7ecd0362b35a3333eaf07efe92d";
22
+ const GIT_REPO = "tilli-pro/cookieconsent";
23
+ const GIT_CDN_BASE_URL = "https://cdn.jsdelivr.net/gh";
24
+ const GIT_CDN_URL = `${GIT_CDN_BASE_URL}/${GIT_REPO}@${GIT_SHA}`;
25
+ const GIT_DIST_URL = `${GIT_CDN_URL}/dist`;
26
+ const makeRemoteURL = (path: string) => `${GIT_DIST_URL}/${path}`;
27
+ export const makeRemotePluginURL = (path: string) =>
28
+ makeRemoteURL(`plugin/${path}`);
29
+
30
+ const CC_CSS_URL = makeRemoteURL("cookieconsent.css");
31
+
32
+ const getFilenameWithPathFromRemoteURL = (url: string) => {
33
+ const urlObj = new URL(url);
34
+ const path = urlObj.pathname;
35
+ const file = path.split("/").pop();
36
+ return file;
37
+ };
38
+
39
+ function loadCSS(url: string) {
40
+ if (
41
+ document.querySelector(
42
+ `link[href*="${getFilenameWithPathFromRemoteURL(url)}"]`,
43
+ )
44
+ ) {
45
+ // console.debug(`CSS already loaded: ${url}`);
46
+ return; // prevent duplication
47
+ }
48
+
49
+ const link = document.createElement("link");
50
+ Object.assign(link, {
51
+ rel: "stylesheet",
52
+ type: "text/css",
53
+ href: url,
54
+ });
55
+ document.head.appendChild(link);
56
+ }
57
+
58
+ function loadNestedPluginCSS(basePath: string, obj: any): void {
59
+ for (const [key, value] of Object.entries(obj))
60
+ if (typeof value === "string") {
61
+ const url = makeRemotePluginURL(`${basePath}/${value}`);
62
+ // console.debug(`Loading plugin CSS from ${url}`);
63
+ loadCSS(url);
64
+ } else if (value && typeof value === "object") {
65
+ // console.debug(`Loading nested plugin CSS from ${basePath}/${key}`);
66
+ loadNestedPluginCSS(`${basePath}/${key}`, value);
67
+ }
68
+ }
69
+
70
+ async function always() {
71
+ loadCSS(CC_CSS_URL);
72
+ loadNestedPluginCSS("styles", styles); // TODO: make dynamic (only import dependent styles - aka if a certain `init` config is specified)
73
+ window.cookieConsentTheme = cookieConsentTheme; // used to fetch the correct classname to apply a specified theme | THIS SHOULD BE INJECTED INTO THE <HTML> TAG!!! // TODO: auto-inject (?)
74
+ }
75
+
76
+ void always();
77
+
78
+ export const run = async (
79
+ config: CookieConsentConfig = _config,
80
+ ): ReturnType<typeof CookieConsent.run> => await CookieConsent.run(config);
81
+
82
+ // ⚠️ NOTE: DISABLED THIS ENTRY MODULE SINCE ALL INITS SHOULD BE USING A SPECIFICALLY-CONFIGURED ENTRY MODULE INSTEAD (e.g. `init/brf.ts`, `init/tilli-website.ts`) !!!
83
+
84
+ // function isEntryModule(): boolean {
85
+ // if (typeof document === "undefined") return false;
86
+ // try {
87
+ // const currentModuleUrl = new URL(import.meta.url, document.baseURI).href;
88
+ // const scripts = Array.from(
89
+ // document.querySelectorAll('script[type="module"]'),
90
+ // );
91
+ // return scripts.some((script) => {
92
+ // const src = script.getAttribute("src");
93
+ // if (!src) return false;
94
+ // return new URL(src, document.baseURI).href === currentModuleUrl;
95
+ // });
96
+ // } catch (err) {
97
+ // console.error("Error checking module entry:", err);
98
+ // return false;
99
+ // }
100
+ // }
101
+
102
+ // if (isEntryModule()) {
103
+ // // console.debug(
104
+ // // { config: _config },
105
+ // // "Initializing Cookie Consent (entry module)...",
106
+ // // );
107
+ // const init = makeInitFn(run, _config);
108
+ // void init();
109
+ // }
@@ -1,34 +1,9 @@
1
1
  "use client";
2
2
 
3
- import { useEffect } from "react";
4
-
5
- import { run } from "@tilli-pro/cookieconsent";
6
-
7
- import { COOKIE_CONSENT_ENABLED } from "../_consts";
8
- import config from "../config";
9
- import { injectReactRemoveScrollToggle } from "../config/gui-options/scripts/forceDisableReactRemoveScroll";
10
- import injectManageCookiePrefsButton from "../config/gui-options/scripts/injectManageCookiePrefsButton";
3
+ import useCookieConsent from "./hooks/useCookieConsent";
11
4
 
12
5
  export default function CookieConsentInit() {
13
- useEffect(() => {
14
- if (!COOKIE_CONSENT_ENABLED) return;
15
-
16
- void (async () => {
17
- /** inject the cookie-consent banner (pop-up) */
18
- await run(config);
19
-
20
- /** ...then, inject the floating cookie consent "manage preferences" icon button into the DOM (floats @ the bottom right) */
21
- injectManageCookiePrefsButton();
22
-
23
- /** ...and, force-disable "react-remove-scroll" -- only upon opening up the "manage preferences" dialog
24
- *
25
- * > this handles the edge case where there's a shadcn (radix-ui) dialog open
26
- * underneath the cookie banner's "manage preferences" dialog, which prevents
27
- * the user from scrolling within the manage prefs dialog
28
- */
29
- injectReactRemoveScrollToggle();
30
- })();
31
- }, []);
6
+ useCookieConsent();
32
7
 
33
8
  return null;
34
9
  }
@@ -4,8 +4,8 @@ import { COOKIE_CONSENT_ENABLED } from "../_consts";
4
4
  import CookieConsentInitClient from "./CookieConsentInit.client";
5
5
 
6
6
  import "@tilli-pro/cookieconsent/dist/cookieconsent.css";
7
- import "./styles/tenants/freeman.css";
8
- import "./styles/tenants/frontier.css";
7
+ import "../styles/tenants/freeman.css";
8
+ import "../styles/tenants/frontier.css";
9
9
 
10
10
  /** we use a server component to handle dynamic injection of the script all together
11
11
  * > basically, there's no need to inject the client-side cookie-consent script if it's not in scope */
@@ -0,0 +1,30 @@
1
+ "use client";
2
+
3
+ import { useEffect } from "react";
4
+
5
+ import type * as _CookieConsent from "@tilli-pro/cookieconsent";
6
+
7
+ import { COOKIE_CONSENT_ENABLED } from "../../_consts";
8
+ import config from "../../config";
9
+ import { makeInitFn } from "../../init/utils";
10
+
11
+ declare const CookieConsent:
12
+ | {
13
+ run?: typeof _CookieConsent.run;
14
+ }
15
+ | undefined;
16
+
17
+ export const run =
18
+ typeof CookieConsent !== "undefined" &&
19
+ typeof CookieConsent.run === "function"
20
+ ? CookieConsent.run
21
+ : (await import("@tilli-pro/cookieconsent")).run;
22
+
23
+ export default function useCookieConsent() {
24
+ useEffect(() => {
25
+ if (!COOKIE_CONSENT_ENABLED) return;
26
+
27
+ const init = makeInitFn(run, config);
28
+ void init();
29
+ }, []);
30
+ }
@@ -0,0 +1,6 @@
1
+ export default {
2
+ tenants: {
3
+ freeman: "freeman.css",
4
+ frontier: "frontier.css",
5
+ },
6
+ } as const;
@@ -0,0 +1,63 @@
1
+ /** NOTE: to auto-add `!important` suffixes, simply use this RegEx w/ Find + Replace:
2
+ * > Find: (:)(?![^;]*!important)([^;]+)(;)(?!.*\^)
3
+ * > Replace: :$2 !important;
4
+ */
5
+
6
+ /** `tenant:freeman` color-scheme **/
7
+ .cc--tenant\:freeman-light {
8
+ --cc-bg: #ffffff !important;
9
+ --cc-primary-color: #2c2f31 !important;
10
+ --cc-secondary-color: #5e6266 !important;
11
+
12
+ --cc-btn-primary-bg: #00bdf6 !important;
13
+ --cc-btn-primary-color: #ffffff !important;
14
+ --cc-btn-primary-border-color: var(--cc-btn-primary-bg) !important;
15
+ --cc-btn-primary-hover-bg: #5ed6ff !important;
16
+ --cc-btn-primary-hover-color: #ffffff !important;
17
+ --cc-btn-primary-hover-border-color: var(
18
+ --cc-btn-primary-hover-bg
19
+ ) !important;
20
+
21
+ --cc-btn-secondary-bg: #e2e8f0 !important;
22
+ --cc-btn-secondary-color: #334155 !important;
23
+ --cc-btn-secondary-border-color: var(--cc-btn-secondary-bg) !important;
24
+ --cc-btn-secondary-hover-bg: #f1f5f9 !important;
25
+ --cc-btn-secondary-hover-color: #000000 !important;
26
+ --cc-btn-secondary-hover-border-color: #d4dae0 !important;
27
+
28
+ --cc-separator-border-color: #f3f8fc !important;
29
+
30
+ --cc-toggle-on-bg: var(--cc-btn-primary-bg) !important;
31
+ --cc-toggle-off-bg: #667481 !important;
32
+ --cc-toggle-on-knob-bg: #ffffff !important;
33
+ --cc-toggle-off-knob-bg: var(--cc-toggle-on-knob-bg) !important;
34
+
35
+ --cc-toggle-enabled-icon-color: var(--cc-bg) !important; /* yes (v tick) */
36
+ --cc-toggle-disabled-icon-color: var(--cc-bg) !important; /* no (x tick) */
37
+
38
+ --cc-toggle-readonly-bg: #d5dee2 !important;
39
+ --cc-toggle-readonly-knob-bg: #fff !important;
40
+ --cc-toggle-readonly-knob-icon-color: var(--cc-toggle-readonly-bg) !important;
41
+
42
+ --cc-section-category-border: var(--cc-cookie-category-block-bg) !important;
43
+
44
+ --cc-cookie-category-block-bg: #f3f8fc !important;
45
+ --cc-cookie-category-block-border: #f3f8fc !important;
46
+ --cc-cookie-category-block-hover-bg: #f0f4f7 !important;
47
+ --cc-cookie-category-block-hover-border: #f0f4f7 !important;
48
+ --cc-cookie-category-expanded-block-bg: transparent !important;
49
+ --cc-cookie-category-expanded-block-hover-bg: #dee4e9 !important;
50
+
51
+ --cc-overlay-bg: rgba(0, 0, 0, 0.65) !important;
52
+ --cc-webkit-scrollbar-bg: var(--cc-section-category-border) !important;
53
+ --cc-webkit-scrollbar-hover-bg: var(--cc-btn-primary-hover-bg) !important;
54
+
55
+ --cc-footer-bg: #f3f8fc !important;
56
+ --cc-footer-color: var(--cc-secondary-color) !important;
57
+ --cc-footer-border-color: #e4eaed !important;
58
+ }
59
+
60
+ /** font */
61
+ .cc--tenant\:freeman-light #cc-main {
62
+ font-family: var(--font-inter), var(--cc-font-family) !important;
63
+ }
@@ -0,0 +1,71 @@
1
+ /** NOTE: to auto-add `!important` suffixes, simply use this RegEx w/ Find + Replace:
2
+ * > Find: (:)(?![^;]*!important)([^;]+)(;)(?!.*\^)
3
+ * > Replace: :$2 !important;
4
+ */
5
+
6
+ /** `tenant:frontier` color-scheme **/
7
+ .cc--tenant\:frontier-light {
8
+ --cc-bg: #ffffff !important;
9
+ --cc-primary-color: #2c2f31 !important;
10
+ --cc-secondary-color: #5e6266 !important;
11
+
12
+ --cc-btn-primary-bg: #ff0037 !important;
13
+ --cc-btn-primary-color: #ffffff !important;
14
+ --cc-btn-primary-border-color: var(--cc-btn-primary-bg) !important;
15
+ --cc-btn-primary-hover-bg: #141928 !important;
16
+ --cc-btn-primary-hover-color: #ffffff !important;
17
+ --cc-btn-primary-hover-border-color: var(
18
+ --cc-btn-primary-hover-bg
19
+ ) !important;
20
+
21
+ --cc-btn-secondary-bg: #eaeff2 !important;
22
+ --cc-btn-secondary-color: var(--cc-primary-color) !important;
23
+ --cc-btn-secondary-border-color: var(--cc-btn-secondary-bg) !important;
24
+ --cc-btn-secondary-hover-bg: #d4dae0 !important;
25
+ --cc-btn-secondary-hover-color: #000000 !important;
26
+ --cc-btn-secondary-hover-border-color: #d4dae0 !important;
27
+
28
+ --cc-separator-border-color: #f0f4f7 !important;
29
+
30
+ --cc-toggle-on-bg: var(--cc-btn-primary-bg) !important;
31
+ --cc-toggle-off-bg: #667481 !important;
32
+ --cc-toggle-on-knob-bg: #ffffff !important;
33
+ --cc-toggle-off-knob-bg: var(--cc-toggle-on-knob-bg) !important;
34
+
35
+ --cc-toggle-enabled-icon-color: var(--cc-bg) !important; /* yes (v tick) */
36
+ --cc-toggle-disabled-icon-color: var(--cc-bg) !important; /* no (x tick) */
37
+
38
+ --cc-toggle-readonly-bg: #d5dee2 !important;
39
+ --cc-toggle-readonly-knob-bg: #fff !important;
40
+ --cc-toggle-readonly-knob-icon-color: var(--cc-toggle-readonly-bg) !important;
41
+
42
+ --cc-section-category-border: var(--cc-cookie-category-block-bg) !important;
43
+
44
+ --cc-cookie-category-block-bg: #f0f4f7 !important;
45
+ --cc-cookie-category-block-border: #f0f4f7 !important;
46
+ --cc-cookie-category-block-hover-bg: #e9eff4 !important;
47
+ --cc-cookie-category-block-hover-border: #e9eff4 !important;
48
+ --cc-cookie-category-expanded-block-bg: transparent !important;
49
+ --cc-cookie-category-expanded-block-hover-bg: #dee4e9 !important;
50
+
51
+ --cc-overlay-bg: rgba(0, 0, 0, 0.65) !important;
52
+ --cc-webkit-scrollbar-bg: var(--cc-section-category-border) !important;
53
+ --cc-webkit-scrollbar-hover-bg: var(--cc-btn-primary-hover-bg) !important;
54
+
55
+ --cc-footer-bg: var(--cc-btn-secondary-bg) !important;
56
+ --cc-footer-color: var(--cc-secondary-color) !important;
57
+ --cc-footer-border-color: #e4eaed !important;
58
+ }
59
+
60
+ .cc--tenant\:frontier-light button.cm__btn,
61
+ .cc--tenant\:frontier-light button.pm__btn {
62
+ border-radius: 9999px !important;
63
+ text-transform: uppercase !important;
64
+ font-weight: 700 !important;
65
+ letter-spacing: 0.025em !important;
66
+ }
67
+
68
+ /** font */
69
+ .cc--tenant\:frontier-light #cc-main {
70
+ font-family: var(--font-frontier-pp-object-sans), var(--cc-font-family) !important;
71
+ }
File without changes